@mavogel/cdk-vscode-server 0.0.2

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 (439) hide show
  1. package/.jsii +4351 -0
  2. package/API.md +367 -0
  3. package/CONTRIBUTING.md +59 -0
  4. package/LICENSE +202 -0
  5. package/README.md +183 -0
  6. package/assets/installer/installer.lambda/index.js +112 -0
  7. package/assets/secret-retriever/secret-retriever.lambda/index.js +57 -0
  8. package/docs/img/vscode-server-ui-login-min.png +0 -0
  9. package/docs/img/vscode-server-ui-min.png +0 -0
  10. package/docs/img/vscode-server.drawio +108 -0
  11. package/docs/img/vscode-server.drawio-min.png +0 -0
  12. package/integ-tests/code-server login.html +48 -0
  13. package/integ-tests/functions/login-handler.ts +63 -0
  14. package/integ-tests/integ.al2023.ts +69 -0
  15. package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.assets.json +32 -0
  16. package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json +337 -0
  17. package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.assets.json +110 -0
  18. package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.template.json +2459 -0
  19. package/integ-tests/integ.al2023.ts.snapshot/asset.23732f3d1982f7fb0da3bd6638a8107337bb767fea165b45eae12000a1dd67ce/index.js +6169 -0
  20. package/integ-tests/integ.al2023.ts.snapshot/asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d/index.js +1 -0
  21. package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/cfn-response.js +1 -0
  22. package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/consts.js +1 -0
  23. package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/framework.js +3 -0
  24. package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/outbound.js +1 -0
  25. package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/util.js +1 -0
  26. package/integ-tests/integ.al2023.ts.snapshot/asset.512cf155ada4793b37a885c1aa6d9bb8f534e88bac6f63c69672d4d73df2decf.lambda/index.js +112 -0
  27. package/integ-tests/integ.al2023.ts.snapshot/asset.781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.lambda/index.js +57 -0
  28. package/integ-tests/integ.al2023.ts.snapshot/asset.c504585dae89ce8e394d7744ccae054318e7d1aff14afb545438d173d51dc97d.bundle/index.js +30572 -0
  29. package/integ-tests/integ.al2023.ts.snapshot/asset.ce2f3595a340d6c519a65888ef97e3b9b64f053f83608e32cc28162e22d7d99a/index.js +1 -0
  30. package/integ-tests/integ.al2023.ts.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/__entrypoint__.js +1 -0
  31. package/integ-tests/integ.al2023.ts.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/index.js +1 -0
  32. package/integ-tests/integ.al2023.ts.snapshot/cdk.out +1 -0
  33. package/integ-tests/integ.al2023.ts.snapshot/integ.json +22 -0
  34. package/integ-tests/integ.al2023.ts.snapshot/manifest.json +510 -0
  35. package/integ-tests/integ.al2023.ts.snapshot/tree.json +2944 -0
  36. package/integ-tests/integ.ubuntu.ts +66 -0
  37. package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +32 -0
  38. package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +337 -0
  39. package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.assets.json +110 -0
  40. package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.template.json +2477 -0
  41. package/integ-tests/integ.ubuntu.ts.snapshot/asset.23732f3d1982f7fb0da3bd6638a8107337bb767fea165b45eae12000a1dd67ce/index.js +6169 -0
  42. package/integ-tests/integ.ubuntu.ts.snapshot/asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d/index.js +1 -0
  43. package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/cfn-response.js +1 -0
  44. package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/consts.js +1 -0
  45. package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/framework.js +3 -0
  46. package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/outbound.js +1 -0
  47. package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/util.js +1 -0
  48. package/integ-tests/integ.ubuntu.ts.snapshot/asset.512cf155ada4793b37a885c1aa6d9bb8f534e88bac6f63c69672d4d73df2decf.lambda/index.js +112 -0
  49. package/integ-tests/integ.ubuntu.ts.snapshot/asset.781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.lambda/index.js +57 -0
  50. package/integ-tests/integ.ubuntu.ts.snapshot/asset.c504585dae89ce8e394d7744ccae054318e7d1aff14afb545438d173d51dc97d.bundle/index.js +30572 -0
  51. package/integ-tests/integ.ubuntu.ts.snapshot/asset.ce2f3595a340d6c519a65888ef97e3b9b64f053f83608e32cc28162e22d7d99a/index.js +1 -0
  52. package/integ-tests/integ.ubuntu.ts.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/__entrypoint__.js +1 -0
  53. package/integ-tests/integ.ubuntu.ts.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/index.js +1 -0
  54. package/integ-tests/integ.ubuntu.ts.snapshot/cdk.out +1 -0
  55. package/integ-tests/integ.ubuntu.ts.snapshot/integ.json +22 -0
  56. package/integ-tests/integ.ubuntu.ts.snapshot/manifest.json +510 -0
  57. package/integ-tests/integ.ubuntu.ts.snapshot/tree.json +2962 -0
  58. package/lib/index.d.ts +1 -0
  59. package/lib/index.js +18 -0
  60. package/lib/installer/installer-function.d.ts +13 -0
  61. package/lib/installer/installer-function.js +23 -0
  62. package/lib/installer/installer.d.ts +64 -0
  63. package/lib/installer/installer.js +707 -0
  64. package/lib/installer/installer.lambda.d.ts +3 -0
  65. package/lib/installer/installer.lambda.js +94 -0
  66. package/lib/mappings.d.ts +2 -0
  67. package/lib/mappings.js +25 -0
  68. package/lib/prefixlist-retriever/prefixlist-retriever.d.ts +16 -0
  69. package/lib/prefixlist-retriever/prefixlist-retriever.js +56 -0
  70. package/lib/secret-retriever/secret-retriever-function.d.ts +13 -0
  71. package/lib/secret-retriever/secret-retriever-function.js +23 -0
  72. package/lib/secret-retriever/secret-retriever.d.ts +33 -0
  73. package/lib/secret-retriever/secret-retriever.js +72 -0
  74. package/lib/secret-retriever/secret-retriever.lambda.d.ts +2 -0
  75. package/lib/secret-retriever/secret-retriever.lambda.js +36 -0
  76. package/lib/vscode-server.d.ts +97 -0
  77. package/lib/vscode-server.js +417 -0
  78. package/node_modules/boolbase/README.md +10 -0
  79. package/node_modules/boolbase/index.js +8 -0
  80. package/node_modules/boolbase/package.json +23 -0
  81. package/node_modules/css-select/LICENSE +11 -0
  82. package/node_modules/css-select/README.md +264 -0
  83. package/node_modules/css-select/lib/attributes.d.ts +7 -0
  84. package/node_modules/css-select/lib/attributes.d.ts.map +1 -0
  85. package/node_modules/css-select/lib/attributes.js +236 -0
  86. package/node_modules/css-select/lib/attributes.js.map +1 -0
  87. package/node_modules/css-select/lib/compile.d.ts +13 -0
  88. package/node_modules/css-select/lib/compile.d.ts.map +1 -0
  89. package/node_modules/css-select/lib/compile.js +151 -0
  90. package/node_modules/css-select/lib/compile.js.map +1 -0
  91. package/node_modules/css-select/lib/esm/attributes.d.ts +7 -0
  92. package/node_modules/css-select/lib/esm/attributes.d.ts.map +1 -0
  93. package/node_modules/css-select/lib/esm/attributes.js +222 -0
  94. package/node_modules/css-select/lib/esm/attributes.js.map +1 -0
  95. package/node_modules/css-select/lib/esm/compile.d.ts +13 -0
  96. package/node_modules/css-select/lib/esm/compile.d.ts.map +1 -0
  97. package/node_modules/css-select/lib/esm/compile.js +115 -0
  98. package/node_modules/css-select/lib/esm/compile.js.map +1 -0
  99. package/node_modules/css-select/lib/esm/general.d.ts +3 -0
  100. package/node_modules/css-select/lib/esm/general.d.ts.map +1 -0
  101. package/node_modules/css-select/lib/esm/general.js +144 -0
  102. package/node_modules/css-select/lib/esm/general.js.map +1 -0
  103. package/node_modules/css-select/lib/esm/index.d.ts +50 -0
  104. package/node_modules/css-select/lib/esm/index.d.ts.map +1 -0
  105. package/node_modules/css-select/lib/esm/index.js +115 -0
  106. package/node_modules/css-select/lib/esm/index.js.map +1 -0
  107. package/node_modules/css-select/lib/esm/package.json +1 -0
  108. package/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts +5 -0
  109. package/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts.map +1 -0
  110. package/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js +35 -0
  111. package/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js.map +1 -0
  112. package/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts +4 -0
  113. package/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts.map +1 -0
  114. package/node_modules/css-select/lib/esm/pseudo-selectors/filters.js +143 -0
  115. package/node_modules/css-select/lib/esm/pseudo-selectors/filters.js.map +1 -0
  116. package/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts +8 -0
  117. package/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts.map +1 -0
  118. package/node_modules/css-select/lib/esm/pseudo-selectors/index.js +40 -0
  119. package/node_modules/css-select/lib/esm/pseudo-selectors/index.js.map +1 -0
  120. package/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts +6 -0
  121. package/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts.map +1 -0
  122. package/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js +79 -0
  123. package/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js.map +1 -0
  124. package/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts +9 -0
  125. package/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts.map +1 -0
  126. package/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js +94 -0
  127. package/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js.map +1 -0
  128. package/node_modules/css-select/lib/esm/sort.d.ts +12 -0
  129. package/node_modules/css-select/lib/esm/sort.d.ts.map +1 -0
  130. package/node_modules/css-select/lib/esm/sort.js +79 -0
  131. package/node_modules/css-select/lib/esm/sort.js.map +1 -0
  132. package/node_modules/css-select/lib/esm/types.d.ts +167 -0
  133. package/node_modules/css-select/lib/esm/types.d.ts.map +1 -0
  134. package/node_modules/css-select/lib/esm/types.js +2 -0
  135. package/node_modules/css-select/lib/esm/types.js.map +1 -0
  136. package/node_modules/css-select/lib/general.d.ts +3 -0
  137. package/node_modules/css-select/lib/general.d.ts.map +1 -0
  138. package/node_modules/css-select/lib/general.js +148 -0
  139. package/node_modules/css-select/lib/general.js.map +1 -0
  140. package/node_modules/css-select/lib/index.d.ts +50 -0
  141. package/node_modules/css-select/lib/index.d.ts.map +1 -0
  142. package/node_modules/css-select/lib/index.js +154 -0
  143. package/node_modules/css-select/lib/index.js.map +1 -0
  144. package/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts +5 -0
  145. package/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts.map +1 -0
  146. package/node_modules/css-select/lib/pseudo-selectors/aliases.js +34 -0
  147. package/node_modules/css-select/lib/pseudo-selectors/aliases.js.map +1 -0
  148. package/node_modules/css-select/lib/pseudo-selectors/filters.d.ts +4 -0
  149. package/node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map +1 -0
  150. package/node_modules/css-select/lib/pseudo-selectors/filters.js +157 -0
  151. package/node_modules/css-select/lib/pseudo-selectors/filters.js.map +1 -0
  152. package/node_modules/css-select/lib/pseudo-selectors/index.d.ts +8 -0
  153. package/node_modules/css-select/lib/pseudo-selectors/index.d.ts.map +1 -0
  154. package/node_modules/css-select/lib/pseudo-selectors/index.js +46 -0
  155. package/node_modules/css-select/lib/pseudo-selectors/index.js.map +1 -0
  156. package/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts +6 -0
  157. package/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map +1 -0
  158. package/node_modules/css-select/lib/pseudo-selectors/pseudos.js +93 -0
  159. package/node_modules/css-select/lib/pseudo-selectors/pseudos.js.map +1 -0
  160. package/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts +9 -0
  161. package/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map +1 -0
  162. package/node_modules/css-select/lib/pseudo-selectors/subselects.js +112 -0
  163. package/node_modules/css-select/lib/pseudo-selectors/subselects.js.map +1 -0
  164. package/node_modules/css-select/lib/sort.d.ts +12 -0
  165. package/node_modules/css-select/lib/sort.d.ts.map +1 -0
  166. package/node_modules/css-select/lib/sort.js +84 -0
  167. package/node_modules/css-select/lib/sort.js.map +1 -0
  168. package/node_modules/css-select/lib/types.d.ts +167 -0
  169. package/node_modules/css-select/lib/types.d.ts.map +1 -0
  170. package/node_modules/css-select/lib/types.js +3 -0
  171. package/node_modules/css-select/lib/types.js.map +1 -0
  172. package/node_modules/css-select/package.json +81 -0
  173. package/node_modules/css-what/LICENSE +11 -0
  174. package/node_modules/css-what/lib/commonjs/index.d.ts +4 -0
  175. package/node_modules/css-what/lib/commonjs/index.d.ts.map +1 -0
  176. package/node_modules/css-what/lib/commonjs/index.js +23 -0
  177. package/node_modules/css-what/lib/commonjs/parse.d.ts +20 -0
  178. package/node_modules/css-what/lib/commonjs/parse.d.ts.map +1 -0
  179. package/node_modules/css-what/lib/commonjs/parse.js +425 -0
  180. package/node_modules/css-what/lib/commonjs/stringify.d.ts +8 -0
  181. package/node_modules/css-what/lib/commonjs/stringify.d.ts.map +1 -0
  182. package/node_modules/css-what/lib/commonjs/stringify.js +138 -0
  183. package/node_modules/css-what/lib/commonjs/types.d.ts +70 -0
  184. package/node_modules/css-what/lib/commonjs/types.d.ts.map +1 -0
  185. package/node_modules/css-what/lib/commonjs/types.js +42 -0
  186. package/node_modules/css-what/lib/es/index.d.ts +4 -0
  187. package/node_modules/css-what/lib/es/index.d.ts.map +1 -0
  188. package/node_modules/css-what/lib/es/index.js +3 -0
  189. package/node_modules/css-what/lib/es/parse.d.ts +20 -0
  190. package/node_modules/css-what/lib/es/parse.d.ts.map +1 -0
  191. package/node_modules/css-what/lib/es/parse.js +420 -0
  192. package/node_modules/css-what/lib/es/stringify.d.ts +8 -0
  193. package/node_modules/css-what/lib/es/stringify.d.ts.map +1 -0
  194. package/node_modules/css-what/lib/es/stringify.js +126 -0
  195. package/node_modules/css-what/lib/es/types.d.ts +70 -0
  196. package/node_modules/css-what/lib/es/types.d.ts.map +1 -0
  197. package/node_modules/css-what/lib/es/types.js +39 -0
  198. package/node_modules/css-what/package.json +59 -0
  199. package/node_modules/css-what/readme.md +69 -0
  200. package/node_modules/dom-serializer/LICENSE +11 -0
  201. package/node_modules/dom-serializer/README.md +109 -0
  202. package/node_modules/dom-serializer/lib/esm/foreignNames.d.ts +3 -0
  203. package/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map +1 -0
  204. package/node_modules/dom-serializer/lib/esm/foreignNames.js +100 -0
  205. package/node_modules/dom-serializer/lib/esm/index.d.ts +52 -0
  206. package/node_modules/dom-serializer/lib/esm/index.d.ts.map +1 -0
  207. package/node_modules/dom-serializer/lib/esm/index.js +190 -0
  208. package/node_modules/dom-serializer/lib/esm/package.json +1 -0
  209. package/node_modules/dom-serializer/lib/foreignNames.d.ts +3 -0
  210. package/node_modules/dom-serializer/lib/foreignNames.d.ts.map +1 -0
  211. package/node_modules/dom-serializer/lib/foreignNames.js +103 -0
  212. package/node_modules/dom-serializer/lib/index.d.ts +52 -0
  213. package/node_modules/dom-serializer/lib/index.d.ts.map +1 -0
  214. package/node_modules/dom-serializer/lib/index.js +229 -0
  215. package/node_modules/dom-serializer/package.json +69 -0
  216. package/node_modules/domelementtype/LICENSE +11 -0
  217. package/node_modules/domelementtype/lib/esm/index.d.ts +48 -0
  218. package/node_modules/domelementtype/lib/esm/index.d.ts.map +1 -0
  219. package/node_modules/domelementtype/lib/esm/index.js +51 -0
  220. package/node_modules/domelementtype/lib/esm/package.json +1 -0
  221. package/node_modules/domelementtype/lib/index.d.ts +48 -0
  222. package/node_modules/domelementtype/lib/index.d.ts.map +1 -0
  223. package/node_modules/domelementtype/lib/index.js +55 -0
  224. package/node_modules/domelementtype/package.json +54 -0
  225. package/node_modules/domelementtype/readme.md +1 -0
  226. package/node_modules/domhandler/LICENSE +11 -0
  227. package/node_modules/domhandler/lib/esm/index.d.ts +76 -0
  228. package/node_modules/domhandler/lib/esm/index.d.ts.map +1 -0
  229. package/node_modules/domhandler/lib/esm/index.js +146 -0
  230. package/node_modules/domhandler/lib/esm/node.d.ts +245 -0
  231. package/node_modules/domhandler/lib/esm/node.d.ts.map +1 -0
  232. package/node_modules/domhandler/lib/esm/node.js +338 -0
  233. package/node_modules/domhandler/lib/esm/package.json +1 -0
  234. package/node_modules/domhandler/lib/index.d.ts +76 -0
  235. package/node_modules/domhandler/lib/index.d.ts.map +1 -0
  236. package/node_modules/domhandler/lib/index.js +165 -0
  237. package/node_modules/domhandler/lib/node.d.ts +245 -0
  238. package/node_modules/domhandler/lib/node.d.ts.map +1 -0
  239. package/node_modules/domhandler/lib/node.js +474 -0
  240. package/node_modules/domhandler/package.json +73 -0
  241. package/node_modules/domhandler/readme.md +92 -0
  242. package/node_modules/domutils/LICENSE +11 -0
  243. package/node_modules/domutils/lib/esm/feeds.d.ts +71 -0
  244. package/node_modules/domutils/lib/esm/feeds.d.ts.map +1 -0
  245. package/node_modules/domutils/lib/esm/feeds.js +183 -0
  246. package/node_modules/domutils/lib/esm/feeds.js.map +1 -0
  247. package/node_modules/domutils/lib/esm/helpers.d.ts +59 -0
  248. package/node_modules/domutils/lib/esm/helpers.d.ts.map +1 -0
  249. package/node_modules/domutils/lib/esm/helpers.js +136 -0
  250. package/node_modules/domutils/lib/esm/helpers.js.map +1 -0
  251. package/node_modules/domutils/lib/esm/index.d.ts +10 -0
  252. package/node_modules/domutils/lib/esm/index.d.ts.map +1 -0
  253. package/node_modules/domutils/lib/esm/index.js +10 -0
  254. package/node_modules/domutils/lib/esm/index.js.map +1 -0
  255. package/node_modules/domutils/lib/esm/legacy.d.ts +79 -0
  256. package/node_modules/domutils/lib/esm/legacy.d.ts.map +1 -0
  257. package/node_modules/domutils/lib/esm/legacy.js +152 -0
  258. package/node_modules/domutils/lib/esm/legacy.js.map +1 -0
  259. package/node_modules/domutils/lib/esm/manipulation.d.ts +49 -0
  260. package/node_modules/domutils/lib/esm/manipulation.d.ts.map +1 -0
  261. package/node_modules/domutils/lib/esm/manipulation.js +134 -0
  262. package/node_modules/domutils/lib/esm/manipulation.js.map +1 -0
  263. package/node_modules/domutils/lib/esm/package.json +1 -0
  264. package/node_modules/domutils/lib/esm/querying.d.ts +64 -0
  265. package/node_modules/domutils/lib/esm/querying.d.ts.map +1 -0
  266. package/node_modules/domutils/lib/esm/querying.js +142 -0
  267. package/node_modules/domutils/lib/esm/querying.js.map +1 -0
  268. package/node_modules/domutils/lib/esm/stringify.d.ts +46 -0
  269. package/node_modules/domutils/lib/esm/stringify.d.ts.map +1 -0
  270. package/node_modules/domutils/lib/esm/stringify.js +81 -0
  271. package/node_modules/domutils/lib/esm/stringify.js.map +1 -0
  272. package/node_modules/domutils/lib/esm/traversal.d.ts +67 -0
  273. package/node_modules/domutils/lib/esm/traversal.d.ts.map +1 -0
  274. package/node_modules/domutils/lib/esm/traversal.js +112 -0
  275. package/node_modules/domutils/lib/esm/traversal.js.map +1 -0
  276. package/node_modules/domutils/lib/feeds.d.ts +71 -0
  277. package/node_modules/domutils/lib/feeds.d.ts.map +1 -0
  278. package/node_modules/domutils/lib/feeds.js +190 -0
  279. package/node_modules/domutils/lib/feeds.js.map +1 -0
  280. package/node_modules/domutils/lib/helpers.d.ts +59 -0
  281. package/node_modules/domutils/lib/helpers.d.ts.map +1 -0
  282. package/node_modules/domutils/lib/helpers.js +142 -0
  283. package/node_modules/domutils/lib/helpers.js.map +1 -0
  284. package/node_modules/domutils/lib/index.d.ts +10 -0
  285. package/node_modules/domutils/lib/index.d.ts.map +1 -0
  286. package/node_modules/domutils/lib/index.js +33 -0
  287. package/node_modules/domutils/lib/index.js.map +1 -0
  288. package/node_modules/domutils/lib/legacy.d.ts +79 -0
  289. package/node_modules/domutils/lib/legacy.d.ts.map +1 -0
  290. package/node_modules/domutils/lib/legacy.js +168 -0
  291. package/node_modules/domutils/lib/legacy.js.map +1 -0
  292. package/node_modules/domutils/lib/manipulation.d.ts +49 -0
  293. package/node_modules/domutils/lib/manipulation.d.ts.map +1 -0
  294. package/node_modules/domutils/lib/manipulation.js +142 -0
  295. package/node_modules/domutils/lib/manipulation.js.map +1 -0
  296. package/node_modules/domutils/lib/querying.d.ts +64 -0
  297. package/node_modules/domutils/lib/querying.d.ts.map +1 -0
  298. package/node_modules/domutils/lib/querying.js +155 -0
  299. package/node_modules/domutils/lib/querying.js.map +1 -0
  300. package/node_modules/domutils/lib/stringify.d.ts +46 -0
  301. package/node_modules/domutils/lib/stringify.d.ts.map +1 -0
  302. package/node_modules/domutils/lib/stringify.js +91 -0
  303. package/node_modules/domutils/lib/stringify.js.map +1 -0
  304. package/node_modules/domutils/lib/traversal.d.ts +67 -0
  305. package/node_modules/domutils/lib/traversal.d.ts.map +1 -0
  306. package/node_modules/domutils/lib/traversal.js +125 -0
  307. package/node_modules/domutils/lib/traversal.js.map +1 -0
  308. package/node_modules/domutils/package.json +79 -0
  309. package/node_modules/domutils/readme.md +31 -0
  310. package/node_modules/entities/LICENSE +11 -0
  311. package/node_modules/entities/lib/decode.d.ts +211 -0
  312. package/node_modules/entities/lib/decode.d.ts.map +1 -0
  313. package/node_modules/entities/lib/decode.js +536 -0
  314. package/node_modules/entities/lib/decode.js.map +1 -0
  315. package/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
  316. package/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
  317. package/node_modules/entities/lib/decode_codepoint.js +76 -0
  318. package/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  319. package/node_modules/entities/lib/encode.d.ts +22 -0
  320. package/node_modules/entities/lib/encode.d.ts.map +1 -0
  321. package/node_modules/entities/lib/encode.js +77 -0
  322. package/node_modules/entities/lib/encode.js.map +1 -0
  323. package/node_modules/entities/lib/escape.d.ts +43 -0
  324. package/node_modules/entities/lib/escape.d.ts.map +1 -0
  325. package/node_modules/entities/lib/escape.js +122 -0
  326. package/node_modules/entities/lib/escape.js.map +1 -0
  327. package/node_modules/entities/lib/esm/decode.d.ts +211 -0
  328. package/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
  329. package/node_modules/entities/lib/esm/decode.js +496 -0
  330. package/node_modules/entities/lib/esm/decode.js.map +1 -0
  331. package/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
  332. package/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
  333. package/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
  334. package/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  335. package/node_modules/entities/lib/esm/encode.d.ts +22 -0
  336. package/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
  337. package/node_modules/entities/lib/esm/encode.js +69 -0
  338. package/node_modules/entities/lib/esm/encode.js.map +1 -0
  339. package/node_modules/entities/lib/esm/escape.d.ts +43 -0
  340. package/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
  341. package/node_modules/entities/lib/esm/escape.js +116 -0
  342. package/node_modules/entities/lib/esm/escape.js.map +1 -0
  343. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
  344. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  345. package/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
  346. package/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  347. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
  348. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  349. package/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
  350. package/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  351. package/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
  352. package/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
  353. package/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
  354. package/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
  355. package/node_modules/entities/lib/esm/index.d.ts +96 -0
  356. package/node_modules/entities/lib/esm/index.d.ts.map +1 -0
  357. package/node_modules/entities/lib/esm/index.js +99 -0
  358. package/node_modules/entities/lib/esm/index.js.map +1 -0
  359. package/node_modules/entities/lib/esm/package.json +1 -0
  360. package/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
  361. package/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
  362. package/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  363. package/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  364. package/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
  365. package/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
  366. package/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  367. package/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  368. package/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
  369. package/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
  370. package/node_modules/entities/lib/generated/encode-html.js +12 -0
  371. package/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  372. package/node_modules/entities/lib/index.d.ts +96 -0
  373. package/node_modules/entities/lib/index.d.ts.map +1 -0
  374. package/node_modules/entities/lib/index.js +126 -0
  375. package/node_modules/entities/lib/index.js.map +1 -0
  376. package/node_modules/entities/package.json +90 -0
  377. package/node_modules/entities/readme.md +122 -0
  378. package/node_modules/he/LICENSE-MIT.txt +20 -0
  379. package/node_modules/he/README.md +379 -0
  380. package/node_modules/he/bin/he +148 -0
  381. package/node_modules/he/he.js +345 -0
  382. package/node_modules/he/man/he.1 +78 -0
  383. package/node_modules/he/package.json +58 -0
  384. package/node_modules/node-html-parser/CHANGELOG.md +137 -0
  385. package/node_modules/node-html-parser/LICENSE +7 -0
  386. package/node_modules/node-html-parser/README.md +365 -0
  387. package/node_modules/node-html-parser/dist/back.d.ts +1 -0
  388. package/node_modules/node-html-parser/dist/back.js +6 -0
  389. package/node_modules/node-html-parser/dist/index.d.ts +20 -0
  390. package/node_modules/node-html-parser/dist/index.js +32 -0
  391. package/node_modules/node-html-parser/dist/main.js +1646 -0
  392. package/node_modules/node-html-parser/dist/matcher.d.ts +6 -0
  393. package/node_modules/node-html-parser/dist/matcher.js +106 -0
  394. package/node_modules/node-html-parser/dist/nodes/comment.d.ts +20 -0
  395. package/node_modules/node-html-parser/dist/nodes/comment.js +57 -0
  396. package/node_modules/node-html-parser/dist/nodes/html.d.ts +240 -0
  397. package/node_modules/node-html-parser/dist/nodes/html.js +1218 -0
  398. package/node_modules/node-html-parser/dist/nodes/node.d.ts +24 -0
  399. package/node_modules/node-html-parser/dist/nodes/node.js +52 -0
  400. package/node_modules/node-html-parser/dist/nodes/text.d.ts +44 -0
  401. package/node_modules/node-html-parser/dist/nodes/text.js +144 -0
  402. package/node_modules/node-html-parser/dist/nodes/type.d.ts +6 -0
  403. package/node_modules/node-html-parser/dist/nodes/type.js +9 -0
  404. package/node_modules/node-html-parser/dist/parse.d.ts +1 -0
  405. package/node_modules/node-html-parser/dist/parse.js +5 -0
  406. package/node_modules/node-html-parser/dist/valid.d.ts +6 -0
  407. package/node_modules/node-html-parser/dist/valid.js +13 -0
  408. package/node_modules/node-html-parser/dist/void-tag.d.ts +7 -0
  409. package/node_modules/node-html-parser/dist/void-tag.js +29 -0
  410. package/node_modules/node-html-parser/package.json +114 -0
  411. package/node_modules/nth-check/LICENSE +11 -0
  412. package/node_modules/nth-check/README.md +136 -0
  413. package/node_modules/nth-check/lib/compile.d.ts +55 -0
  414. package/node_modules/nth-check/lib/compile.d.ts.map +1 -0
  415. package/node_modules/nth-check/lib/compile.js +121 -0
  416. package/node_modules/nth-check/lib/compile.js.map +1 -0
  417. package/node_modules/nth-check/lib/esm/compile.d.ts +55 -0
  418. package/node_modules/nth-check/lib/esm/compile.d.ts.map +1 -0
  419. package/node_modules/nth-check/lib/esm/compile.js +113 -0
  420. package/node_modules/nth-check/lib/esm/compile.js.map +1 -0
  421. package/node_modules/nth-check/lib/esm/index.d.ts +59 -0
  422. package/node_modules/nth-check/lib/esm/index.d.ts.map +1 -0
  423. package/node_modules/nth-check/lib/esm/index.js +63 -0
  424. package/node_modules/nth-check/lib/esm/index.js.map +1 -0
  425. package/node_modules/nth-check/lib/esm/package.json +1 -0
  426. package/node_modules/nth-check/lib/esm/parse.d.ts +9 -0
  427. package/node_modules/nth-check/lib/esm/parse.d.ts.map +1 -0
  428. package/node_modules/nth-check/lib/esm/parse.js +73 -0
  429. package/node_modules/nth-check/lib/esm/parse.js.map +1 -0
  430. package/node_modules/nth-check/lib/index.d.ts +59 -0
  431. package/node_modules/nth-check/lib/index.d.ts.map +1 -0
  432. package/node_modules/nth-check/lib/index.js +70 -0
  433. package/node_modules/nth-check/lib/index.js.map +1 -0
  434. package/node_modules/nth-check/lib/parse.d.ts +9 -0
  435. package/node_modules/nth-check/lib/parse.d.ts.map +1 -0
  436. package/node_modules/nth-check/lib/parse.js +77 -0
  437. package/node_modules/nth-check/lib/parse.js.map +1 -0
  438. package/node_modules/nth-check/package.json +78 -0
  439. package/package.json +154 -0
@@ -0,0 +1,190 @@
1
+ /*
2
+ * Module dependencies
3
+ */
4
+ import * as ElementType from "domelementtype";
5
+ import { encodeXML, escapeAttribute, escapeText } from "entities";
6
+ /**
7
+ * Mixed-case SVG and MathML tags & attributes
8
+ * recognized by the HTML parser.
9
+ *
10
+ * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign
11
+ */
12
+ import { elementNames, attributeNames } from "./foreignNames.js";
13
+ const unencodedElements = new Set([
14
+ "style",
15
+ "script",
16
+ "xmp",
17
+ "iframe",
18
+ "noembed",
19
+ "noframes",
20
+ "plaintext",
21
+ "noscript",
22
+ ]);
23
+ function replaceQuotes(value) {
24
+ return value.replace(/"/g, """);
25
+ }
26
+ /**
27
+ * Format attributes
28
+ */
29
+ function formatAttributes(attributes, opts) {
30
+ var _a;
31
+ if (!attributes)
32
+ return;
33
+ const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false
34
+ ? replaceQuotes
35
+ : opts.xmlMode || opts.encodeEntities !== "utf8"
36
+ ? encodeXML
37
+ : escapeAttribute;
38
+ return Object.keys(attributes)
39
+ .map((key) => {
40
+ var _a, _b;
41
+ const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : "";
42
+ if (opts.xmlMode === "foreign") {
43
+ /* Fix up mixed-case attribute names */
44
+ key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;
45
+ }
46
+ if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
47
+ return key;
48
+ }
49
+ return `${key}="${encode(value)}"`;
50
+ })
51
+ .join(" ");
52
+ }
53
+ /**
54
+ * Self-enclosing tags
55
+ */
56
+ const singleTag = new Set([
57
+ "area",
58
+ "base",
59
+ "basefont",
60
+ "br",
61
+ "col",
62
+ "command",
63
+ "embed",
64
+ "frame",
65
+ "hr",
66
+ "img",
67
+ "input",
68
+ "isindex",
69
+ "keygen",
70
+ "link",
71
+ "meta",
72
+ "param",
73
+ "source",
74
+ "track",
75
+ "wbr",
76
+ ]);
77
+ /**
78
+ * Renders a DOM node or an array of DOM nodes to a string.
79
+ *
80
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
81
+ *
82
+ * @param node Node to be rendered.
83
+ * @param options Changes serialization behavior
84
+ */
85
+ export function render(node, options = {}) {
86
+ const nodes = "length" in node ? node : [node];
87
+ let output = "";
88
+ for (let i = 0; i < nodes.length; i++) {
89
+ output += renderNode(nodes[i], options);
90
+ }
91
+ return output;
92
+ }
93
+ export default render;
94
+ function renderNode(node, options) {
95
+ switch (node.type) {
96
+ case ElementType.Root:
97
+ return render(node.children, options);
98
+ // @ts-expect-error We don't use `Doctype` yet
99
+ case ElementType.Doctype:
100
+ case ElementType.Directive:
101
+ return renderDirective(node);
102
+ case ElementType.Comment:
103
+ return renderComment(node);
104
+ case ElementType.CDATA:
105
+ return renderCdata(node);
106
+ case ElementType.Script:
107
+ case ElementType.Style:
108
+ case ElementType.Tag:
109
+ return renderTag(node, options);
110
+ case ElementType.Text:
111
+ return renderText(node, options);
112
+ }
113
+ }
114
+ const foreignModeIntegrationPoints = new Set([
115
+ "mi",
116
+ "mo",
117
+ "mn",
118
+ "ms",
119
+ "mtext",
120
+ "annotation-xml",
121
+ "foreignObject",
122
+ "desc",
123
+ "title",
124
+ ]);
125
+ const foreignElements = new Set(["svg", "math"]);
126
+ function renderTag(elem, opts) {
127
+ var _a;
128
+ // Handle SVG / MathML in HTML
129
+ if (opts.xmlMode === "foreign") {
130
+ /* Fix up mixed-case element names */
131
+ elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;
132
+ /* Exit foreign mode at integration points */
133
+ if (elem.parent &&
134
+ foreignModeIntegrationPoints.has(elem.parent.name)) {
135
+ opts = { ...opts, xmlMode: false };
136
+ }
137
+ }
138
+ if (!opts.xmlMode && foreignElements.has(elem.name)) {
139
+ opts = { ...opts, xmlMode: "foreign" };
140
+ }
141
+ let tag = `<${elem.name}`;
142
+ const attribs = formatAttributes(elem.attribs, opts);
143
+ if (attribs) {
144
+ tag += ` ${attribs}`;
145
+ }
146
+ if (elem.children.length === 0 &&
147
+ (opts.xmlMode
148
+ ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
149
+ opts.selfClosingTags !== false
150
+ : // User explicitly asked for self-closing tags, even in HTML mode
151
+ opts.selfClosingTags && singleTag.has(elem.name))) {
152
+ if (!opts.xmlMode)
153
+ tag += " ";
154
+ tag += "/>";
155
+ }
156
+ else {
157
+ tag += ">";
158
+ if (elem.children.length > 0) {
159
+ tag += render(elem.children, opts);
160
+ }
161
+ if (opts.xmlMode || !singleTag.has(elem.name)) {
162
+ tag += `</${elem.name}>`;
163
+ }
164
+ }
165
+ return tag;
166
+ }
167
+ function renderDirective(elem) {
168
+ return `<${elem.data}>`;
169
+ }
170
+ function renderText(elem, opts) {
171
+ var _a;
172
+ let data = elem.data || "";
173
+ // If entities weren't decoded, no need to encode them back
174
+ if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&
175
+ !(!opts.xmlMode &&
176
+ elem.parent &&
177
+ unencodedElements.has(elem.parent.name))) {
178
+ data =
179
+ opts.xmlMode || opts.encodeEntities !== "utf8"
180
+ ? encodeXML(data)
181
+ : escapeText(data);
182
+ }
183
+ return data;
184
+ }
185
+ function renderCdata(elem) {
186
+ return `<![CDATA[${elem.children[0].data}]]>`;
187
+ }
188
+ function renderComment(elem) {
189
+ return `<!--${elem.data}-->`;
190
+ }
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,3 @@
1
+ export declare const elementNames: Map<string, string>;
2
+ export declare const attributeNames: Map<string, string>;
3
+ //# sourceMappingURL=foreignNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foreignNames.d.ts","sourceRoot":"","sources":["../src/foreignNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,qBAwCxB,CAAC;AACF,eAAO,MAAM,cAAc,qBA8D1B,CAAC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attributeNames = exports.elementNames = void 0;
4
+ exports.elementNames = new Map([
5
+ "altGlyph",
6
+ "altGlyphDef",
7
+ "altGlyphItem",
8
+ "animateColor",
9
+ "animateMotion",
10
+ "animateTransform",
11
+ "clipPath",
12
+ "feBlend",
13
+ "feColorMatrix",
14
+ "feComponentTransfer",
15
+ "feComposite",
16
+ "feConvolveMatrix",
17
+ "feDiffuseLighting",
18
+ "feDisplacementMap",
19
+ "feDistantLight",
20
+ "feDropShadow",
21
+ "feFlood",
22
+ "feFuncA",
23
+ "feFuncB",
24
+ "feFuncG",
25
+ "feFuncR",
26
+ "feGaussianBlur",
27
+ "feImage",
28
+ "feMerge",
29
+ "feMergeNode",
30
+ "feMorphology",
31
+ "feOffset",
32
+ "fePointLight",
33
+ "feSpecularLighting",
34
+ "feSpotLight",
35
+ "feTile",
36
+ "feTurbulence",
37
+ "foreignObject",
38
+ "glyphRef",
39
+ "linearGradient",
40
+ "radialGradient",
41
+ "textPath",
42
+ ].map(function (val) { return [val.toLowerCase(), val]; }));
43
+ exports.attributeNames = new Map([
44
+ "definitionURL",
45
+ "attributeName",
46
+ "attributeType",
47
+ "baseFrequency",
48
+ "baseProfile",
49
+ "calcMode",
50
+ "clipPathUnits",
51
+ "diffuseConstant",
52
+ "edgeMode",
53
+ "filterUnits",
54
+ "glyphRef",
55
+ "gradientTransform",
56
+ "gradientUnits",
57
+ "kernelMatrix",
58
+ "kernelUnitLength",
59
+ "keyPoints",
60
+ "keySplines",
61
+ "keyTimes",
62
+ "lengthAdjust",
63
+ "limitingConeAngle",
64
+ "markerHeight",
65
+ "markerUnits",
66
+ "markerWidth",
67
+ "maskContentUnits",
68
+ "maskUnits",
69
+ "numOctaves",
70
+ "pathLength",
71
+ "patternContentUnits",
72
+ "patternTransform",
73
+ "patternUnits",
74
+ "pointsAtX",
75
+ "pointsAtY",
76
+ "pointsAtZ",
77
+ "preserveAlpha",
78
+ "preserveAspectRatio",
79
+ "primitiveUnits",
80
+ "refX",
81
+ "refY",
82
+ "repeatCount",
83
+ "repeatDur",
84
+ "requiredExtensions",
85
+ "requiredFeatures",
86
+ "specularConstant",
87
+ "specularExponent",
88
+ "spreadMethod",
89
+ "startOffset",
90
+ "stdDeviation",
91
+ "stitchTiles",
92
+ "surfaceScale",
93
+ "systemLanguage",
94
+ "tableValues",
95
+ "targetX",
96
+ "targetY",
97
+ "textLength",
98
+ "viewBox",
99
+ "viewTarget",
100
+ "xChannelSelector",
101
+ "yChannelSelector",
102
+ "zoomAndPan",
103
+ ].map(function (val) { return [val.toLowerCase(), val]; }));
@@ -0,0 +1,52 @@
1
+ import type { AnyNode } from "domhandler";
2
+ export interface DomSerializerOptions {
3
+ /**
4
+ * Print an empty attribute's value.
5
+ *
6
+ * @default xmlMode
7
+ * @example With <code>emptyAttrs: false</code>: <code>&lt;input checked&gt;</code>
8
+ * @example With <code>emptyAttrs: true</code>: <code>&lt;input checked=""&gt;</code>
9
+ */
10
+ emptyAttrs?: boolean;
11
+ /**
12
+ * Print self-closing tags for tags without contents.
13
+ *
14
+ * @default xmlMode
15
+ * @example With <code>selfClosingTags: false</code>: <code>&lt;foo&gt;&lt;/foo&gt;</code>
16
+ * @example With <code>selfClosingTags: true</code>: <code>&lt;foo /&gt;</code>
17
+ */
18
+ selfClosingTags?: boolean;
19
+ /**
20
+ * Treat the input as an XML document; enables the `emptyAttrs` and `selfClosingTags` options.
21
+ *
22
+ * If the value is `"foreign"`, it will try to correct mixed-case attribute names.
23
+ *
24
+ * @default false
25
+ */
26
+ xmlMode?: boolean | "foreign";
27
+ /**
28
+ * Encode characters that are either reserved in HTML or XML.
29
+ *
30
+ * If `xmlMode` is `true` or the value not `'utf8'`, characters outside of the utf8 range will be encoded as well.
31
+ *
32
+ * @default `decodeEntities`
33
+ */
34
+ encodeEntities?: boolean | "utf8";
35
+ /**
36
+ * Option inherited from parsing; will be used as the default value for `encodeEntities`.
37
+ *
38
+ * @default true
39
+ */
40
+ decodeEntities?: boolean;
41
+ }
42
+ /**
43
+ * Renders a DOM node or an array of DOM nodes to a string.
44
+ *
45
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
46
+ *
47
+ * @param node Node to be rendered.
48
+ * @param options Changes serialization behavior
49
+ */
50
+ export declare function render(node: AnyNode | ArrayLike<AnyNode>, options?: DomSerializerOptions): string;
51
+ export default render;
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA4ED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,EAClC,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAUR;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.render = void 0;
38
+ /*
39
+ * Module dependencies
40
+ */
41
+ var ElementType = __importStar(require("domelementtype"));
42
+ var entities_1 = require("entities");
43
+ /**
44
+ * Mixed-case SVG and MathML tags & attributes
45
+ * recognized by the HTML parser.
46
+ *
47
+ * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign
48
+ */
49
+ var foreignNames_js_1 = require("./foreignNames.js");
50
+ var unencodedElements = new Set([
51
+ "style",
52
+ "script",
53
+ "xmp",
54
+ "iframe",
55
+ "noembed",
56
+ "noframes",
57
+ "plaintext",
58
+ "noscript",
59
+ ]);
60
+ function replaceQuotes(value) {
61
+ return value.replace(/"/g, "&quot;");
62
+ }
63
+ /**
64
+ * Format attributes
65
+ */
66
+ function formatAttributes(attributes, opts) {
67
+ var _a;
68
+ if (!attributes)
69
+ return;
70
+ var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false
71
+ ? replaceQuotes
72
+ : opts.xmlMode || opts.encodeEntities !== "utf8"
73
+ ? entities_1.encodeXML
74
+ : entities_1.escapeAttribute;
75
+ return Object.keys(attributes)
76
+ .map(function (key) {
77
+ var _a, _b;
78
+ var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : "";
79
+ if (opts.xmlMode === "foreign") {
80
+ /* Fix up mixed-case attribute names */
81
+ key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;
82
+ }
83
+ if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
84
+ return key;
85
+ }
86
+ return "".concat(key, "=\"").concat(encode(value), "\"");
87
+ })
88
+ .join(" ");
89
+ }
90
+ /**
91
+ * Self-enclosing tags
92
+ */
93
+ var singleTag = new Set([
94
+ "area",
95
+ "base",
96
+ "basefont",
97
+ "br",
98
+ "col",
99
+ "command",
100
+ "embed",
101
+ "frame",
102
+ "hr",
103
+ "img",
104
+ "input",
105
+ "isindex",
106
+ "keygen",
107
+ "link",
108
+ "meta",
109
+ "param",
110
+ "source",
111
+ "track",
112
+ "wbr",
113
+ ]);
114
+ /**
115
+ * Renders a DOM node or an array of DOM nodes to a string.
116
+ *
117
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
118
+ *
119
+ * @param node Node to be rendered.
120
+ * @param options Changes serialization behavior
121
+ */
122
+ function render(node, options) {
123
+ if (options === void 0) { options = {}; }
124
+ var nodes = "length" in node ? node : [node];
125
+ var output = "";
126
+ for (var i = 0; i < nodes.length; i++) {
127
+ output += renderNode(nodes[i], options);
128
+ }
129
+ return output;
130
+ }
131
+ exports.render = render;
132
+ exports.default = render;
133
+ function renderNode(node, options) {
134
+ switch (node.type) {
135
+ case ElementType.Root:
136
+ return render(node.children, options);
137
+ // @ts-expect-error We don't use `Doctype` yet
138
+ case ElementType.Doctype:
139
+ case ElementType.Directive:
140
+ return renderDirective(node);
141
+ case ElementType.Comment:
142
+ return renderComment(node);
143
+ case ElementType.CDATA:
144
+ return renderCdata(node);
145
+ case ElementType.Script:
146
+ case ElementType.Style:
147
+ case ElementType.Tag:
148
+ return renderTag(node, options);
149
+ case ElementType.Text:
150
+ return renderText(node, options);
151
+ }
152
+ }
153
+ var foreignModeIntegrationPoints = new Set([
154
+ "mi",
155
+ "mo",
156
+ "mn",
157
+ "ms",
158
+ "mtext",
159
+ "annotation-xml",
160
+ "foreignObject",
161
+ "desc",
162
+ "title",
163
+ ]);
164
+ var foreignElements = new Set(["svg", "math"]);
165
+ function renderTag(elem, opts) {
166
+ var _a;
167
+ // Handle SVG / MathML in HTML
168
+ if (opts.xmlMode === "foreign") {
169
+ /* Fix up mixed-case element names */
170
+ elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;
171
+ /* Exit foreign mode at integration points */
172
+ if (elem.parent &&
173
+ foreignModeIntegrationPoints.has(elem.parent.name)) {
174
+ opts = __assign(__assign({}, opts), { xmlMode: false });
175
+ }
176
+ }
177
+ if (!opts.xmlMode && foreignElements.has(elem.name)) {
178
+ opts = __assign(__assign({}, opts), { xmlMode: "foreign" });
179
+ }
180
+ var tag = "<".concat(elem.name);
181
+ var attribs = formatAttributes(elem.attribs, opts);
182
+ if (attribs) {
183
+ tag += " ".concat(attribs);
184
+ }
185
+ if (elem.children.length === 0 &&
186
+ (opts.xmlMode
187
+ ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
188
+ opts.selfClosingTags !== false
189
+ : // User explicitly asked for self-closing tags, even in HTML mode
190
+ opts.selfClosingTags && singleTag.has(elem.name))) {
191
+ if (!opts.xmlMode)
192
+ tag += " ";
193
+ tag += "/>";
194
+ }
195
+ else {
196
+ tag += ">";
197
+ if (elem.children.length > 0) {
198
+ tag += render(elem.children, opts);
199
+ }
200
+ if (opts.xmlMode || !singleTag.has(elem.name)) {
201
+ tag += "</".concat(elem.name, ">");
202
+ }
203
+ }
204
+ return tag;
205
+ }
206
+ function renderDirective(elem) {
207
+ return "<".concat(elem.data, ">");
208
+ }
209
+ function renderText(elem, opts) {
210
+ var _a;
211
+ var data = elem.data || "";
212
+ // If entities weren't decoded, no need to encode them back
213
+ if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&
214
+ !(!opts.xmlMode &&
215
+ elem.parent &&
216
+ unencodedElements.has(elem.parent.name))) {
217
+ data =
218
+ opts.xmlMode || opts.encodeEntities !== "utf8"
219
+ ? (0, entities_1.encodeXML)(data)
220
+ : (0, entities_1.escapeText)(data);
221
+ }
222
+ return data;
223
+ }
224
+ function renderCdata(elem) {
225
+ return "<![CDATA[".concat(elem.children[0].data, "]]>");
226
+ }
227
+ function renderComment(elem) {
228
+ return "<!--".concat(elem.data, "-->");
229
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "dom-serializer",
3
+ "version": "2.0.0",
4
+ "description": "render domhandler DOM nodes to a string",
5
+ "author": "Felix Boehm <me@feedic.com>",
6
+ "sideEffects": false,
7
+ "keywords": [
8
+ "html",
9
+ "xml",
10
+ "render"
11
+ ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git://github.com/cheeriojs/dom-serializer.git"
15
+ },
16
+ "main": "lib/index.js",
17
+ "types": "lib/index.d.ts",
18
+ "module": "lib/esm/index.js",
19
+ "exports": {
20
+ "require": "./lib/index.js",
21
+ "import": "./lib/esm/index.js"
22
+ },
23
+ "files": [
24
+ "lib/**/*"
25
+ ],
26
+ "dependencies": {
27
+ "domelementtype": "^2.3.0",
28
+ "domhandler": "^5.0.2",
29
+ "entities": "^4.2.0"
30
+ },
31
+ "devDependencies": {
32
+ "@types/jest": "^27.4.1",
33
+ "@types/node": "^17.0.23",
34
+ "@typescript-eslint/eslint-plugin": "^5.18.0",
35
+ "@typescript-eslint/parser": "^5.18.0",
36
+ "cheerio": "^1.0.0-rc.9",
37
+ "eslint": "^8.12.0",
38
+ "eslint-config-prettier": "^8.5.0",
39
+ "htmlparser2": "^7.2.0",
40
+ "jest": "^27.5.1",
41
+ "prettier": "^2.6.2",
42
+ "ts-jest": "^27.1.4",
43
+ "typescript": "^4.6.3"
44
+ },
45
+ "scripts": {
46
+ "test": "npm run test:jest && npm run lint",
47
+ "test:jest": "jest",
48
+ "lint": "npm run lint:es && npm run lint:prettier",
49
+ "lint:es": "eslint --ignore-path .gitignore .",
50
+ "lint:prettier": "npm run prettier -- --check",
51
+ "format": "npm run format:es && npm run format:prettier",
52
+ "format:es": "npm run lint:es -- --fix",
53
+ "format:prettier": "npm run prettier -- --write",
54
+ "prettier": "prettier \"**/*.{ts,md,json,yml}\" --ignore-path .gitignore",
55
+ "build": "npm run build:cjs && npm run build:esm",
56
+ "build:cjs": "tsc",
57
+ "build:esm": "tsc --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json",
58
+ "prepare": "npm run build"
59
+ },
60
+ "jest": {
61
+ "preset": "ts-jest",
62
+ "testEnvironment": "node",
63
+ "moduleNameMapper": {
64
+ "^(.*)\\.js$": "$1"
65
+ }
66
+ },
67
+ "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1",
68
+ "license": "MIT"
69
+ }
@@ -0,0 +1,11 @@
1
+ Copyright (c) Felix Böhm
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5
+
6
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7
+
8
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9
+
10
+ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
11
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.