@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,425 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parse = exports.isTraversal = void 0;
4
+ var types_1 = require("./types");
5
+ var reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/;
6
+ var reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi;
7
+ var actionTypes = new Map([
8
+ [126 /* Tilde */, types_1.AttributeAction.Element],
9
+ [94 /* Circumflex */, types_1.AttributeAction.Start],
10
+ [36 /* Dollar */, types_1.AttributeAction.End],
11
+ [42 /* Asterisk */, types_1.AttributeAction.Any],
12
+ [33 /* ExclamationMark */, types_1.AttributeAction.Not],
13
+ [124 /* Pipe */, types_1.AttributeAction.Hyphen],
14
+ ]);
15
+ // Pseudos, whose data property is parsed as well.
16
+ var unpackPseudos = new Set([
17
+ "has",
18
+ "not",
19
+ "matches",
20
+ "is",
21
+ "where",
22
+ "host",
23
+ "host-context",
24
+ ]);
25
+ /**
26
+ * Checks whether a specific selector is a traversal.
27
+ * This is useful eg. in swapping the order of elements that
28
+ * are not traversals.
29
+ *
30
+ * @param selector Selector to check.
31
+ */
32
+ function isTraversal(selector) {
33
+ switch (selector.type) {
34
+ case types_1.SelectorType.Adjacent:
35
+ case types_1.SelectorType.Child:
36
+ case types_1.SelectorType.Descendant:
37
+ case types_1.SelectorType.Parent:
38
+ case types_1.SelectorType.Sibling:
39
+ case types_1.SelectorType.ColumnCombinator:
40
+ return true;
41
+ default:
42
+ return false;
43
+ }
44
+ }
45
+ exports.isTraversal = isTraversal;
46
+ var stripQuotesFromPseudos = new Set(["contains", "icontains"]);
47
+ // Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152
48
+ function funescape(_, escaped, escapedWhitespace) {
49
+ var high = parseInt(escaped, 16) - 0x10000;
50
+ // NaN means non-codepoint
51
+ return high !== high || escapedWhitespace
52
+ ? escaped
53
+ : high < 0
54
+ ? // BMP codepoint
55
+ String.fromCharCode(high + 0x10000)
56
+ : // Supplemental Plane codepoint (surrogate pair)
57
+ String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);
58
+ }
59
+ function unescapeCSS(str) {
60
+ return str.replace(reEscape, funescape);
61
+ }
62
+ function isQuote(c) {
63
+ return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;
64
+ }
65
+ function isWhitespace(c) {
66
+ return (c === 32 /* Space */ ||
67
+ c === 9 /* Tab */ ||
68
+ c === 10 /* NewLine */ ||
69
+ c === 12 /* FormFeed */ ||
70
+ c === 13 /* CarriageReturn */);
71
+ }
72
+ /**
73
+ * Parses `selector`, optionally with the passed `options`.
74
+ *
75
+ * @param selector Selector to parse.
76
+ * @param options Options for parsing.
77
+ * @returns Returns a two-dimensional array.
78
+ * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),
79
+ * the second contains the relevant tokens for that selector.
80
+ */
81
+ function parse(selector) {
82
+ var subselects = [];
83
+ var endIndex = parseSelector(subselects, "".concat(selector), 0);
84
+ if (endIndex < selector.length) {
85
+ throw new Error("Unmatched selector: ".concat(selector.slice(endIndex)));
86
+ }
87
+ return subselects;
88
+ }
89
+ exports.parse = parse;
90
+ function parseSelector(subselects, selector, selectorIndex) {
91
+ var tokens = [];
92
+ function getName(offset) {
93
+ var match = selector.slice(selectorIndex + offset).match(reName);
94
+ if (!match) {
95
+ throw new Error("Expected name, found ".concat(selector.slice(selectorIndex)));
96
+ }
97
+ var name = match[0];
98
+ selectorIndex += offset + name.length;
99
+ return unescapeCSS(name);
100
+ }
101
+ function stripWhitespace(offset) {
102
+ selectorIndex += offset;
103
+ while (selectorIndex < selector.length &&
104
+ isWhitespace(selector.charCodeAt(selectorIndex))) {
105
+ selectorIndex++;
106
+ }
107
+ }
108
+ function readValueWithParenthesis() {
109
+ selectorIndex += 1;
110
+ var start = selectorIndex;
111
+ var counter = 1;
112
+ for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {
113
+ if (selector.charCodeAt(selectorIndex) ===
114
+ 40 /* LeftParenthesis */ &&
115
+ !isEscaped(selectorIndex)) {
116
+ counter++;
117
+ }
118
+ else if (selector.charCodeAt(selectorIndex) ===
119
+ 41 /* RightParenthesis */ &&
120
+ !isEscaped(selectorIndex)) {
121
+ counter--;
122
+ }
123
+ }
124
+ if (counter) {
125
+ throw new Error("Parenthesis not matched");
126
+ }
127
+ return unescapeCSS(selector.slice(start, selectorIndex - 1));
128
+ }
129
+ function isEscaped(pos) {
130
+ var slashCount = 0;
131
+ while (selector.charCodeAt(--pos) === 92 /* BackSlash */)
132
+ slashCount++;
133
+ return (slashCount & 1) === 1;
134
+ }
135
+ function ensureNotTraversal() {
136
+ if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {
137
+ throw new Error("Did not expect successive traversals.");
138
+ }
139
+ }
140
+ function addTraversal(type) {
141
+ if (tokens.length > 0 &&
142
+ tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) {
143
+ tokens[tokens.length - 1].type = type;
144
+ return;
145
+ }
146
+ ensureNotTraversal();
147
+ tokens.push({ type: type });
148
+ }
149
+ function addSpecialAttribute(name, action) {
150
+ tokens.push({
151
+ type: types_1.SelectorType.Attribute,
152
+ name: name,
153
+ action: action,
154
+ value: getName(1),
155
+ namespace: null,
156
+ ignoreCase: "quirks",
157
+ });
158
+ }
159
+ /**
160
+ * We have finished parsing the current part of the selector.
161
+ *
162
+ * Remove descendant tokens at the end if they exist,
163
+ * and return the last index, so that parsing can be
164
+ * picked up from here.
165
+ */
166
+ function finalizeSubselector() {
167
+ if (tokens.length &&
168
+ tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) {
169
+ tokens.pop();
170
+ }
171
+ if (tokens.length === 0) {
172
+ throw new Error("Empty sub-selector");
173
+ }
174
+ subselects.push(tokens);
175
+ }
176
+ stripWhitespace(0);
177
+ if (selector.length === selectorIndex) {
178
+ return selectorIndex;
179
+ }
180
+ loop: while (selectorIndex < selector.length) {
181
+ var firstChar = selector.charCodeAt(selectorIndex);
182
+ switch (firstChar) {
183
+ // Whitespace
184
+ case 32 /* Space */:
185
+ case 9 /* Tab */:
186
+ case 10 /* NewLine */:
187
+ case 12 /* FormFeed */:
188
+ case 13 /* CarriageReturn */: {
189
+ if (tokens.length === 0 ||
190
+ tokens[0].type !== types_1.SelectorType.Descendant) {
191
+ ensureNotTraversal();
192
+ tokens.push({ type: types_1.SelectorType.Descendant });
193
+ }
194
+ stripWhitespace(1);
195
+ break;
196
+ }
197
+ // Traversals
198
+ case 62 /* GreaterThan */: {
199
+ addTraversal(types_1.SelectorType.Child);
200
+ stripWhitespace(1);
201
+ break;
202
+ }
203
+ case 60 /* LessThan */: {
204
+ addTraversal(types_1.SelectorType.Parent);
205
+ stripWhitespace(1);
206
+ break;
207
+ }
208
+ case 126 /* Tilde */: {
209
+ addTraversal(types_1.SelectorType.Sibling);
210
+ stripWhitespace(1);
211
+ break;
212
+ }
213
+ case 43 /* Plus */: {
214
+ addTraversal(types_1.SelectorType.Adjacent);
215
+ stripWhitespace(1);
216
+ break;
217
+ }
218
+ // Special attribute selectors: .class, #id
219
+ case 46 /* Period */: {
220
+ addSpecialAttribute("class", types_1.AttributeAction.Element);
221
+ break;
222
+ }
223
+ case 35 /* Hash */: {
224
+ addSpecialAttribute("id", types_1.AttributeAction.Equals);
225
+ break;
226
+ }
227
+ case 91 /* LeftSquareBracket */: {
228
+ stripWhitespace(1);
229
+ // Determine attribute name and namespace
230
+ var name_1 = void 0;
231
+ var namespace = null;
232
+ if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {
233
+ // Equivalent to no namespace
234
+ name_1 = getName(1);
235
+ }
236
+ else if (selector.startsWith("*|", selectorIndex)) {
237
+ namespace = "*";
238
+ name_1 = getName(2);
239
+ }
240
+ else {
241
+ name_1 = getName(0);
242
+ if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&
243
+ selector.charCodeAt(selectorIndex + 1) !==
244
+ 61 /* Equal */) {
245
+ namespace = name_1;
246
+ name_1 = getName(1);
247
+ }
248
+ }
249
+ stripWhitespace(0);
250
+ // Determine comparison operation
251
+ var action = types_1.AttributeAction.Exists;
252
+ var possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));
253
+ if (possibleAction) {
254
+ action = possibleAction;
255
+ if (selector.charCodeAt(selectorIndex + 1) !==
256
+ 61 /* Equal */) {
257
+ throw new Error("Expected `=`");
258
+ }
259
+ stripWhitespace(2);
260
+ }
261
+ else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {
262
+ action = types_1.AttributeAction.Equals;
263
+ stripWhitespace(1);
264
+ }
265
+ // Determine value
266
+ var value = "";
267
+ var ignoreCase = null;
268
+ if (action !== "exists") {
269
+ if (isQuote(selector.charCodeAt(selectorIndex))) {
270
+ var quote = selector.charCodeAt(selectorIndex);
271
+ var sectionEnd = selectorIndex + 1;
272
+ while (sectionEnd < selector.length &&
273
+ (selector.charCodeAt(sectionEnd) !== quote ||
274
+ isEscaped(sectionEnd))) {
275
+ sectionEnd += 1;
276
+ }
277
+ if (selector.charCodeAt(sectionEnd) !== quote) {
278
+ throw new Error("Attribute value didn't end");
279
+ }
280
+ value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));
281
+ selectorIndex = sectionEnd + 1;
282
+ }
283
+ else {
284
+ var valueStart = selectorIndex;
285
+ while (selectorIndex < selector.length &&
286
+ ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&
287
+ selector.charCodeAt(selectorIndex) !==
288
+ 93 /* RightSquareBracket */) ||
289
+ isEscaped(selectorIndex))) {
290
+ selectorIndex += 1;
291
+ }
292
+ value = unescapeCSS(selector.slice(valueStart, selectorIndex));
293
+ }
294
+ stripWhitespace(0);
295
+ // See if we have a force ignore flag
296
+ var forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;
297
+ // If the forceIgnore flag is set (either `i` or `s`), use that value
298
+ if (forceIgnore === 115 /* LowerS */) {
299
+ ignoreCase = false;
300
+ stripWhitespace(1);
301
+ }
302
+ else if (forceIgnore === 105 /* LowerI */) {
303
+ ignoreCase = true;
304
+ stripWhitespace(1);
305
+ }
306
+ }
307
+ if (selector.charCodeAt(selectorIndex) !==
308
+ 93 /* RightSquareBracket */) {
309
+ throw new Error("Attribute selector didn't terminate");
310
+ }
311
+ selectorIndex += 1;
312
+ var attributeSelector = {
313
+ type: types_1.SelectorType.Attribute,
314
+ name: name_1,
315
+ action: action,
316
+ value: value,
317
+ namespace: namespace,
318
+ ignoreCase: ignoreCase,
319
+ };
320
+ tokens.push(attributeSelector);
321
+ break;
322
+ }
323
+ case 58 /* Colon */: {
324
+ if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {
325
+ tokens.push({
326
+ type: types_1.SelectorType.PseudoElement,
327
+ name: getName(2).toLowerCase(),
328
+ data: selector.charCodeAt(selectorIndex) ===
329
+ 40 /* LeftParenthesis */
330
+ ? readValueWithParenthesis()
331
+ : null,
332
+ });
333
+ continue;
334
+ }
335
+ var name_2 = getName(1).toLowerCase();
336
+ var data = null;
337
+ if (selector.charCodeAt(selectorIndex) ===
338
+ 40 /* LeftParenthesis */) {
339
+ if (unpackPseudos.has(name_2)) {
340
+ if (isQuote(selector.charCodeAt(selectorIndex + 1))) {
341
+ throw new Error("Pseudo-selector ".concat(name_2, " cannot be quoted"));
342
+ }
343
+ data = [];
344
+ selectorIndex = parseSelector(data, selector, selectorIndex + 1);
345
+ if (selector.charCodeAt(selectorIndex) !==
346
+ 41 /* RightParenthesis */) {
347
+ throw new Error("Missing closing parenthesis in :".concat(name_2, " (").concat(selector, ")"));
348
+ }
349
+ selectorIndex += 1;
350
+ }
351
+ else {
352
+ data = readValueWithParenthesis();
353
+ if (stripQuotesFromPseudos.has(name_2)) {
354
+ var quot = data.charCodeAt(0);
355
+ if (quot === data.charCodeAt(data.length - 1) &&
356
+ isQuote(quot)) {
357
+ data = data.slice(1, -1);
358
+ }
359
+ }
360
+ data = unescapeCSS(data);
361
+ }
362
+ }
363
+ tokens.push({ type: types_1.SelectorType.Pseudo, name: name_2, data: data });
364
+ break;
365
+ }
366
+ case 44 /* Comma */: {
367
+ finalizeSubselector();
368
+ tokens = [];
369
+ stripWhitespace(1);
370
+ break;
371
+ }
372
+ default: {
373
+ if (selector.startsWith("/*", selectorIndex)) {
374
+ var endIndex = selector.indexOf("*/", selectorIndex + 2);
375
+ if (endIndex < 0) {
376
+ throw new Error("Comment was not terminated");
377
+ }
378
+ selectorIndex = endIndex + 2;
379
+ // Remove leading whitespace
380
+ if (tokens.length === 0) {
381
+ stripWhitespace(0);
382
+ }
383
+ break;
384
+ }
385
+ var namespace = null;
386
+ var name_3 = void 0;
387
+ if (firstChar === 42 /* Asterisk */) {
388
+ selectorIndex += 1;
389
+ name_3 = "*";
390
+ }
391
+ else if (firstChar === 124 /* Pipe */) {
392
+ name_3 = "";
393
+ if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {
394
+ addTraversal(types_1.SelectorType.ColumnCombinator);
395
+ stripWhitespace(2);
396
+ break;
397
+ }
398
+ }
399
+ else if (reName.test(selector.slice(selectorIndex))) {
400
+ name_3 = getName(0);
401
+ }
402
+ else {
403
+ break loop;
404
+ }
405
+ if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&
406
+ selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {
407
+ namespace = name_3;
408
+ if (selector.charCodeAt(selectorIndex + 1) ===
409
+ 42 /* Asterisk */) {
410
+ name_3 = "*";
411
+ selectorIndex += 2;
412
+ }
413
+ else {
414
+ name_3 = getName(1);
415
+ }
416
+ }
417
+ tokens.push(name_3 === "*"
418
+ ? { type: types_1.SelectorType.Universal, namespace: namespace }
419
+ : { type: types_1.SelectorType.Tag, name: name_3, namespace: namespace });
420
+ }
421
+ }
422
+ }
423
+ finalizeSubselector();
424
+ return selectorIndex;
425
+ }
@@ -0,0 +1,8 @@
1
+ import { Selector } from "./types";
2
+ /**
3
+ * Turns `selector` back into a string.
4
+ *
5
+ * @param selector Selector to stringify.
6
+ */
7
+ export declare function stringify(selector: Selector[][]): string;
8
+ //# sourceMappingURL=stringify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringify.d.ts","sourceRoot":"","sources":["../../src/stringify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiC,MAAM,SAAS,CAAC;AA6BlE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAIxD"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.stringify = void 0;
13
+ var types_1 = require("./types");
14
+ var attribValChars = ["\\", '"'];
15
+ var pseudoValChars = __spreadArray(__spreadArray([], attribValChars, true), ["(", ")"], false);
16
+ var charsToEscapeInAttributeValue = new Set(attribValChars.map(function (c) { return c.charCodeAt(0); }));
17
+ var charsToEscapeInPseudoValue = new Set(pseudoValChars.map(function (c) { return c.charCodeAt(0); }));
18
+ var charsToEscapeInName = new Set(__spreadArray(__spreadArray([], pseudoValChars, true), [
19
+ "~",
20
+ "^",
21
+ "$",
22
+ "*",
23
+ "+",
24
+ "!",
25
+ "|",
26
+ ":",
27
+ "[",
28
+ "]",
29
+ " ",
30
+ ".",
31
+ ], false).map(function (c) { return c.charCodeAt(0); }));
32
+ /**
33
+ * Turns `selector` back into a string.
34
+ *
35
+ * @param selector Selector to stringify.
36
+ */
37
+ function stringify(selector) {
38
+ return selector
39
+ .map(function (token) { return token.map(stringifyToken).join(""); })
40
+ .join(", ");
41
+ }
42
+ exports.stringify = stringify;
43
+ function stringifyToken(token, index, arr) {
44
+ switch (token.type) {
45
+ // Simple types
46
+ case types_1.SelectorType.Child:
47
+ return index === 0 ? "> " : " > ";
48
+ case types_1.SelectorType.Parent:
49
+ return index === 0 ? "< " : " < ";
50
+ case types_1.SelectorType.Sibling:
51
+ return index === 0 ? "~ " : " ~ ";
52
+ case types_1.SelectorType.Adjacent:
53
+ return index === 0 ? "+ " : " + ";
54
+ case types_1.SelectorType.Descendant:
55
+ return " ";
56
+ case types_1.SelectorType.ColumnCombinator:
57
+ return index === 0 ? "|| " : " || ";
58
+ case types_1.SelectorType.Universal:
59
+ // Return an empty string if the selector isn't needed.
60
+ return token.namespace === "*" &&
61
+ index + 1 < arr.length &&
62
+ "name" in arr[index + 1]
63
+ ? ""
64
+ : "".concat(getNamespace(token.namespace), "*");
65
+ case types_1.SelectorType.Tag:
66
+ return getNamespacedName(token);
67
+ case types_1.SelectorType.PseudoElement:
68
+ return "::".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null
69
+ ? ""
70
+ : "(".concat(escapeName(token.data, charsToEscapeInPseudoValue), ")"));
71
+ case types_1.SelectorType.Pseudo:
72
+ return ":".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null
73
+ ? ""
74
+ : "(".concat(typeof token.data === "string"
75
+ ? escapeName(token.data, charsToEscapeInPseudoValue)
76
+ : stringify(token.data), ")"));
77
+ case types_1.SelectorType.Attribute: {
78
+ if (token.name === "id" &&
79
+ token.action === types_1.AttributeAction.Equals &&
80
+ token.ignoreCase === "quirks" &&
81
+ !token.namespace) {
82
+ return "#".concat(escapeName(token.value, charsToEscapeInName));
83
+ }
84
+ if (token.name === "class" &&
85
+ token.action === types_1.AttributeAction.Element &&
86
+ token.ignoreCase === "quirks" &&
87
+ !token.namespace) {
88
+ return ".".concat(escapeName(token.value, charsToEscapeInName));
89
+ }
90
+ var name_1 = getNamespacedName(token);
91
+ if (token.action === types_1.AttributeAction.Exists) {
92
+ return "[".concat(name_1, "]");
93
+ }
94
+ return "[".concat(name_1).concat(getActionValue(token.action), "=\"").concat(escapeName(token.value, charsToEscapeInAttributeValue), "\"").concat(token.ignoreCase === null ? "" : token.ignoreCase ? " i" : " s", "]");
95
+ }
96
+ }
97
+ }
98
+ function getActionValue(action) {
99
+ switch (action) {
100
+ case types_1.AttributeAction.Equals:
101
+ return "";
102
+ case types_1.AttributeAction.Element:
103
+ return "~";
104
+ case types_1.AttributeAction.Start:
105
+ return "^";
106
+ case types_1.AttributeAction.End:
107
+ return "$";
108
+ case types_1.AttributeAction.Any:
109
+ return "*";
110
+ case types_1.AttributeAction.Not:
111
+ return "!";
112
+ case types_1.AttributeAction.Hyphen:
113
+ return "|";
114
+ case types_1.AttributeAction.Exists:
115
+ throw new Error("Shouldn't be here");
116
+ }
117
+ }
118
+ function getNamespacedName(token) {
119
+ return "".concat(getNamespace(token.namespace)).concat(escapeName(token.name, charsToEscapeInName));
120
+ }
121
+ function getNamespace(namespace) {
122
+ return namespace !== null
123
+ ? "".concat(namespace === "*"
124
+ ? "*"
125
+ : escapeName(namespace, charsToEscapeInName), "|")
126
+ : "";
127
+ }
128
+ function escapeName(str, charsToEscape) {
129
+ var lastIdx = 0;
130
+ var ret = "";
131
+ for (var i = 0; i < str.length; i++) {
132
+ if (charsToEscape.has(str.charCodeAt(i))) {
133
+ ret += "".concat(str.slice(lastIdx, i), "\\").concat(str.charAt(i));
134
+ lastIdx = i + 1;
135
+ }
136
+ }
137
+ return ret.length > 0 ? ret + str.slice(lastIdx) : str;
138
+ }
@@ -0,0 +1,70 @@
1
+ export declare type Selector = PseudoSelector | PseudoElement | AttributeSelector | TagSelector | UniversalSelector | Traversal;
2
+ export declare enum SelectorType {
3
+ Attribute = "attribute",
4
+ Pseudo = "pseudo",
5
+ PseudoElement = "pseudo-element",
6
+ Tag = "tag",
7
+ Universal = "universal",
8
+ Adjacent = "adjacent",
9
+ Child = "child",
10
+ Descendant = "descendant",
11
+ Parent = "parent",
12
+ Sibling = "sibling",
13
+ ColumnCombinator = "column-combinator"
14
+ }
15
+ /**
16
+ * Modes for ignore case.
17
+ *
18
+ * This could be updated to an enum, and the object is
19
+ * the current stand-in that will allow code to be updated
20
+ * without big changes.
21
+ */
22
+ export declare const IgnoreCaseMode: {
23
+ readonly Unknown: null;
24
+ readonly QuirksMode: "quirks";
25
+ readonly IgnoreCase: true;
26
+ readonly CaseSensitive: false;
27
+ };
28
+ export interface AttributeSelector {
29
+ type: SelectorType.Attribute;
30
+ name: string;
31
+ action: AttributeAction;
32
+ value: string;
33
+ ignoreCase: "quirks" | boolean | null;
34
+ namespace: string | null;
35
+ }
36
+ export declare type DataType = Selector[][] | null | string;
37
+ export interface PseudoSelector {
38
+ type: SelectorType.Pseudo;
39
+ name: string;
40
+ data: DataType;
41
+ }
42
+ export interface PseudoElement {
43
+ type: SelectorType.PseudoElement;
44
+ name: string;
45
+ data: string | null;
46
+ }
47
+ export interface TagSelector {
48
+ type: SelectorType.Tag;
49
+ name: string;
50
+ namespace: string | null;
51
+ }
52
+ export interface UniversalSelector {
53
+ type: SelectorType.Universal;
54
+ namespace: string | null;
55
+ }
56
+ export interface Traversal {
57
+ type: TraversalType;
58
+ }
59
+ export declare enum AttributeAction {
60
+ Any = "any",
61
+ Element = "element",
62
+ End = "end",
63
+ Equals = "equals",
64
+ Exists = "exists",
65
+ Hyphen = "hyphen",
66
+ Not = "not",
67
+ Start = "start"
68
+ }
69
+ export declare type TraversalType = SelectorType.Adjacent | SelectorType.Child | SelectorType.Descendant | SelectorType.Parent | SelectorType.Sibling | SelectorType.ColumnCombinator;
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ,GACd,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,SAAS,CAAC;AAEhB,oBAAY,YAAY;IACpB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,aAAa,mBAAmB;IAChC,GAAG,QAAQ;IACX,SAAS,cAAc;IAGvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,gBAAgB,sBAAsB;CACzC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,oBAAY,QAAQ,GAAG,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,aAAa,CAAC;CACvB;AAED,oBAAY,eAAe;IACvB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,KAAK,UAAU;CAClB;AAED,oBAAY,aAAa,GACnB,YAAY,CAAC,QAAQ,GACrB,YAAY,CAAC,KAAK,GAClB,YAAY,CAAC,UAAU,GACvB,YAAY,CAAC,MAAM,GACnB,YAAY,CAAC,OAAO,GACpB,YAAY,CAAC,gBAAgB,CAAC"}