elm-pages 3.0.0-beta.13 → 3.0.0-beta.14

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 (465) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.js +1497 -1127
  3. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +152 -40
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  12. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  13. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +58 -10
  14. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +45 -29
  15. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  16. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  17. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  18. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  19. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +46 -5
  20. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  21. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  22. package/generator/src/RouteBuilder.elm +66 -52
  23. package/generator/src/SharedTemplate.elm +3 -2
  24. package/generator/src/SiteConfig.elm +3 -2
  25. package/generator/src/build.js +5 -5
  26. package/generator/src/cli.js +7 -6
  27. package/generator/src/compatibility-key.js +1 -1
  28. package/generator/src/dev-server.js +7 -7
  29. package/generator/src/render-test.js +109 -0
  30. package/generator/src/render.js +77 -51
  31. package/generator/src/request-cache.js +149 -158
  32. package/generator/template/app/Api.elm +2 -2
  33. package/generator/template/app/Route/Index.elm +3 -3
  34. package/generator/template/app/Shared.elm +3 -3
  35. package/generator/template/app/Site.elm +3 -3
  36. package/package.json +10 -10
  37. package/src/ApiRoute.elm +63 -57
  38. package/src/BackendTask/Env.elm +87 -0
  39. package/src/{DataSource → BackendTask}/File.elm +89 -43
  40. package/src/{DataSource → BackendTask}/Glob.elm +134 -125
  41. package/src/BackendTask/Http.elm +637 -0
  42. package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
  43. package/src/BackendTask/Internal/Request.elm +28 -0
  44. package/src/BackendTask/Port.elm +202 -0
  45. package/src/{DataSource.elm → BackendTask.elm} +223 -207
  46. package/src/Exception.elm +37 -0
  47. package/src/Form.elm +20 -20
  48. package/src/Head.elm +7 -7
  49. package/src/Internal/ApiRoute.elm +7 -5
  50. package/src/PageServerResponse.elm +6 -1
  51. package/src/Pages/Generate.elm +35 -63
  52. package/src/Pages/Internal/Platform/Cli.elm +422 -731
  53. package/src/Pages/Internal/Platform/Cli.elm.bak +22 -22
  54. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  55. package/src/Pages/Internal/Platform/Effect.elm +0 -1
  56. package/src/Pages/Internal/Platform/GeneratorApplication.elm +51 -111
  57. package/src/Pages/Internal/Platform/StaticResponses.elm +73 -287
  58. package/src/Pages/Internal/Platform/ToJsPayload.elm +4 -4
  59. package/src/Pages/Internal/Platform.elm +25 -31
  60. package/src/Pages/Internal/Script.elm +3 -2
  61. package/src/Pages/Internal/StaticHttpBody.elm +35 -1
  62. package/src/Pages/Manifest.elm +5 -4
  63. package/src/Pages/ProgramConfig.elm +8 -7
  64. package/src/Pages/Script.elm +28 -13
  65. package/src/Pages/SiteConfig.elm +3 -2
  66. package/src/Pages/StaticHttp/Request.elm +2 -2
  67. package/src/Pages/StaticHttpRequest.elm +39 -94
  68. package/src/RequestsAndPending.elm +8 -19
  69. package/src/Server/Request.elm +14 -14
  70. package/src/Server/Session.elm +34 -34
  71. package/src/Server/SetCookie.elm +1 -1
  72. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +0 -1
  73. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmi +0 -0
  74. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmo +0 -0
  75. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  76. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  77. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmi +0 -0
  78. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  79. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmi +0 -0
  80. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmo +0 -0
  81. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmi +0 -0
  82. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmo +0 -0
  83. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmi +0 -0
  84. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmo +0 -0
  85. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmi +0 -0
  86. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmo +0 -0
  87. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmi +0 -0
  88. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmo +0 -0
  89. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmi +0 -0
  90. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmo +0 -0
  91. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmi +0 -0
  92. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmo +0 -0
  93. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmi +0 -0
  94. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmo +0 -0
  95. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmi +0 -0
  96. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmo +0 -0
  97. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmi +0 -0
  98. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmo +0 -0
  99. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmi +0 -0
  100. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmo +0 -0
  101. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmi +0 -0
  102. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmo +0 -0
  103. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmi +0 -0
  104. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmo +0 -0
  105. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmi +0 -0
  106. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmo +0 -0
  107. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/d.dat +0 -0
  108. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/i.dat +0 -0
  109. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/lock +0 -0
  110. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/o.dat +0 -0
  111. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +0 -38
  112. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +0 -29603
  113. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +0 -1
  114. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +0 -27
  115. package/generator/dead-code-review/node_modules/.package-lock.json +0 -484
  116. package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +0 -345
  117. package/generator/dead-code-review/node_modules/ansi-styles/index.js +0 -163
  118. package/generator/dead-code-review/node_modules/ansi-styles/license +0 -9
  119. package/generator/dead-code-review/node_modules/ansi-styles/package.json +0 -56
  120. package/generator/dead-code-review/node_modules/ansi-styles/readme.md +0 -152
  121. package/generator/dead-code-review/node_modules/anymatch/LICENSE +0 -15
  122. package/generator/dead-code-review/node_modules/anymatch/README.md +0 -87
  123. package/generator/dead-code-review/node_modules/anymatch/index.d.ts +0 -20
  124. package/generator/dead-code-review/node_modules/anymatch/index.js +0 -104
  125. package/generator/dead-code-review/node_modules/anymatch/package.json +0 -48
  126. package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  127. package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +0 -21
  128. package/generator/dead-code-review/node_modules/balanced-match/README.md +0 -97
  129. package/generator/dead-code-review/node_modules/balanced-match/index.js +0 -62
  130. package/generator/dead-code-review/node_modules/balanced-match/package.json +0 -48
  131. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +0 -260
  132. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +0 -3
  133. package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +0 -14
  134. package/generator/dead-code-review/node_modules/binary-extensions/index.js +0 -1
  135. package/generator/dead-code-review/node_modules/binary-extensions/license +0 -9
  136. package/generator/dead-code-review/node_modules/binary-extensions/package.json +0 -38
  137. package/generator/dead-code-review/node_modules/binary-extensions/readme.md +0 -41
  138. package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  139. package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +0 -21
  140. package/generator/dead-code-review/node_modules/brace-expansion/README.md +0 -135
  141. package/generator/dead-code-review/node_modules/brace-expansion/index.js +0 -203
  142. package/generator/dead-code-review/node_modules/brace-expansion/package.json +0 -46
  143. package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +0 -184
  144. package/generator/dead-code-review/node_modules/braces/LICENSE +0 -21
  145. package/generator/dead-code-review/node_modules/braces/README.md +0 -593
  146. package/generator/dead-code-review/node_modules/braces/index.js +0 -170
  147. package/generator/dead-code-review/node_modules/braces/lib/compile.js +0 -57
  148. package/generator/dead-code-review/node_modules/braces/lib/constants.js +0 -57
  149. package/generator/dead-code-review/node_modules/braces/lib/expand.js +0 -113
  150. package/generator/dead-code-review/node_modules/braces/lib/parse.js +0 -333
  151. package/generator/dead-code-review/node_modules/braces/lib/stringify.js +0 -32
  152. package/generator/dead-code-review/node_modules/braces/lib/utils.js +0 -112
  153. package/generator/dead-code-review/node_modules/braces/package.json +0 -77
  154. package/generator/dead-code-review/node_modules/chalk/index.d.ts +0 -415
  155. package/generator/dead-code-review/node_modules/chalk/license +0 -9
  156. package/generator/dead-code-review/node_modules/chalk/package.json +0 -68
  157. package/generator/dead-code-review/node_modules/chalk/readme.md +0 -341
  158. package/generator/dead-code-review/node_modules/chalk/source/index.js +0 -229
  159. package/generator/dead-code-review/node_modules/chalk/source/templates.js +0 -134
  160. package/generator/dead-code-review/node_modules/chalk/source/util.js +0 -39
  161. package/generator/dead-code-review/node_modules/chokidar/LICENSE +0 -21
  162. package/generator/dead-code-review/node_modules/chokidar/README.md +0 -308
  163. package/generator/dead-code-review/node_modules/chokidar/index.js +0 -973
  164. package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +0 -65
  165. package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +0 -524
  166. package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +0 -654
  167. package/generator/dead-code-review/node_modules/chokidar/package.json +0 -85
  168. package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +0 -188
  169. package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +0 -54
  170. package/generator/dead-code-review/node_modules/color-convert/LICENSE +0 -21
  171. package/generator/dead-code-review/node_modules/color-convert/README.md +0 -68
  172. package/generator/dead-code-review/node_modules/color-convert/conversions.js +0 -839
  173. package/generator/dead-code-review/node_modules/color-convert/index.js +0 -81
  174. package/generator/dead-code-review/node_modules/color-convert/package.json +0 -48
  175. package/generator/dead-code-review/node_modules/color-convert/route.js +0 -97
  176. package/generator/dead-code-review/node_modules/color-name/LICENSE +0 -8
  177. package/generator/dead-code-review/node_modules/color-name/README.md +0 -11
  178. package/generator/dead-code-review/node_modules/color-name/index.js +0 -152
  179. package/generator/dead-code-review/node_modules/color-name/package.json +0 -28
  180. package/generator/dead-code-review/node_modules/commander/LICENSE +0 -22
  181. package/generator/dead-code-review/node_modules/commander/Readme.md +0 -1118
  182. package/generator/dead-code-review/node_modules/commander/esm.mjs +0 -16
  183. package/generator/dead-code-review/node_modules/commander/index.js +0 -27
  184. package/generator/dead-code-review/node_modules/commander/lib/argument.js +0 -147
  185. package/generator/dead-code-review/node_modules/commander/lib/command.js +0 -2160
  186. package/generator/dead-code-review/node_modules/commander/lib/error.js +0 -45
  187. package/generator/dead-code-review/node_modules/commander/lib/help.js +0 -406
  188. package/generator/dead-code-review/node_modules/commander/lib/option.js +0 -326
  189. package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +0 -100
  190. package/generator/dead-code-review/node_modules/commander/package-support.json +0 -16
  191. package/generator/dead-code-review/node_modules/commander/package.json +0 -80
  192. package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +0 -881
  193. package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +0 -130
  194. package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +0 -21
  195. package/generator/dead-code-review/node_modules/cross-spawn/README.md +0 -96
  196. package/generator/dead-code-review/node_modules/cross-spawn/index.js +0 -39
  197. package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +0 -59
  198. package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +0 -91
  199. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +0 -45
  200. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
  201. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
  202. package/generator/dead-code-review/node_modules/cross-spawn/package.json +0 -73
  203. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +0 -373
  204. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +0 -64
  205. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +0 -22
  206. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +0 -419
  207. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
  208. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +0 -27
  209. package/generator/dead-code-review/node_modules/elm-test/LICENSE +0 -27
  210. package/generator/dead-code-review/node_modules/elm-test/README.md +0 -192
  211. package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +0 -3
  212. package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +0 -25
  213. package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +0 -217
  214. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +0 -30
  215. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +0 -39
  216. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +0 -212
  217. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +0 -207
  218. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +0 -48
  219. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +0 -161
  220. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +0 -158
  221. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +0 -53
  222. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +0 -113
  223. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +0 -38
  224. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +0 -230
  225. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +0 -326
  226. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +0 -440
  227. package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +0 -110
  228. package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +0 -343
  229. package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +0 -109
  230. package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +0 -47
  231. package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +0 -194
  232. package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +0 -276
  233. package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +0 -294
  234. package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +0 -290
  235. package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +0 -941
  236. package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +0 -117
  237. package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +0 -23
  238. package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +0 -322
  239. package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +0 -76
  240. package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +0 -294
  241. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +0 -45
  242. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +0 -36
  243. package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +0 -318
  244. package/generator/dead-code-review/node_modules/elm-test/package.json +0 -69
  245. package/generator/dead-code-review/node_modules/elm-test/templates/after.js +0 -29
  246. package/generator/dead-code-review/node_modules/elm-test/templates/before.js +0 -58
  247. package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +0 -10
  248. package/generator/dead-code-review/node_modules/fill-range/LICENSE +0 -21
  249. package/generator/dead-code-review/node_modules/fill-range/README.md +0 -237
  250. package/generator/dead-code-review/node_modules/fill-range/index.js +0 -249
  251. package/generator/dead-code-review/node_modules/fill-range/package.json +0 -69
  252. package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +0 -43
  253. package/generator/dead-code-review/node_modules/fs.realpath/README.md +0 -33
  254. package/generator/dead-code-review/node_modules/fs.realpath/index.js +0 -66
  255. package/generator/dead-code-review/node_modules/fs.realpath/old.js +0 -303
  256. package/generator/dead-code-review/node_modules/fs.realpath/package.json +0 -26
  257. package/generator/dead-code-review/node_modules/fsevents/LICENSE +0 -22
  258. package/generator/dead-code-review/node_modules/fsevents/README.md +0 -83
  259. package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +0 -46
  260. package/generator/dead-code-review/node_modules/fsevents/fsevents.js +0 -82
  261. package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
  262. package/generator/dead-code-review/node_modules/fsevents/package.json +0 -62
  263. package/generator/dead-code-review/node_modules/glob/LICENSE +0 -15
  264. package/generator/dead-code-review/node_modules/glob/README.md +0 -378
  265. package/generator/dead-code-review/node_modules/glob/common.js +0 -240
  266. package/generator/dead-code-review/node_modules/glob/glob.js +0 -790
  267. package/generator/dead-code-review/node_modules/glob/package.json +0 -55
  268. package/generator/dead-code-review/node_modules/glob/sync.js +0 -486
  269. package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +0 -110
  270. package/generator/dead-code-review/node_modules/glob-parent/LICENSE +0 -15
  271. package/generator/dead-code-review/node_modules/glob-parent/README.md +0 -137
  272. package/generator/dead-code-review/node_modules/glob-parent/index.js +0 -42
  273. package/generator/dead-code-review/node_modules/glob-parent/package.json +0 -48
  274. package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +0 -15
  275. package/generator/dead-code-review/node_modules/graceful-fs/README.md +0 -143
  276. package/generator/dead-code-review/node_modules/graceful-fs/clone.js +0 -23
  277. package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +0 -448
  278. package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +0 -118
  279. package/generator/dead-code-review/node_modules/graceful-fs/package.json +0 -50
  280. package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +0 -355
  281. package/generator/dead-code-review/node_modules/has-flag/index.d.ts +0 -39
  282. package/generator/dead-code-review/node_modules/has-flag/index.js +0 -8
  283. package/generator/dead-code-review/node_modules/has-flag/license +0 -9
  284. package/generator/dead-code-review/node_modules/has-flag/package.json +0 -46
  285. package/generator/dead-code-review/node_modules/has-flag/readme.md +0 -89
  286. package/generator/dead-code-review/node_modules/inflight/LICENSE +0 -15
  287. package/generator/dead-code-review/node_modules/inflight/README.md +0 -37
  288. package/generator/dead-code-review/node_modules/inflight/inflight.js +0 -54
  289. package/generator/dead-code-review/node_modules/inflight/package.json +0 -29
  290. package/generator/dead-code-review/node_modules/inherits/LICENSE +0 -16
  291. package/generator/dead-code-review/node_modules/inherits/README.md +0 -42
  292. package/generator/dead-code-review/node_modules/inherits/inherits.js +0 -9
  293. package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +0 -27
  294. package/generator/dead-code-review/node_modules/inherits/package.json +0 -29
  295. package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +0 -17
  296. package/generator/dead-code-review/node_modules/is-binary-path/index.js +0 -7
  297. package/generator/dead-code-review/node_modules/is-binary-path/license +0 -9
  298. package/generator/dead-code-review/node_modules/is-binary-path/package.json +0 -40
  299. package/generator/dead-code-review/node_modules/is-binary-path/readme.md +0 -34
  300. package/generator/dead-code-review/node_modules/is-extglob/LICENSE +0 -21
  301. package/generator/dead-code-review/node_modules/is-extglob/README.md +0 -107
  302. package/generator/dead-code-review/node_modules/is-extglob/index.js +0 -20
  303. package/generator/dead-code-review/node_modules/is-extglob/package.json +0 -69
  304. package/generator/dead-code-review/node_modules/is-glob/LICENSE +0 -21
  305. package/generator/dead-code-review/node_modules/is-glob/README.md +0 -206
  306. package/generator/dead-code-review/node_modules/is-glob/index.js +0 -150
  307. package/generator/dead-code-review/node_modules/is-glob/package.json +0 -81
  308. package/generator/dead-code-review/node_modules/is-number/LICENSE +0 -21
  309. package/generator/dead-code-review/node_modules/is-number/README.md +0 -187
  310. package/generator/dead-code-review/node_modules/is-number/index.js +0 -18
  311. package/generator/dead-code-review/node_modules/is-number/package.json +0 -82
  312. package/generator/dead-code-review/node_modules/isexe/LICENSE +0 -15
  313. package/generator/dead-code-review/node_modules/isexe/README.md +0 -51
  314. package/generator/dead-code-review/node_modules/isexe/index.js +0 -57
  315. package/generator/dead-code-review/node_modules/isexe/mode.js +0 -41
  316. package/generator/dead-code-review/node_modules/isexe/package.json +0 -31
  317. package/generator/dead-code-review/node_modules/isexe/test/basic.js +0 -221
  318. package/generator/dead-code-review/node_modules/isexe/windows.js +0 -42
  319. package/generator/dead-code-review/node_modules/minimatch/LICENSE +0 -15
  320. package/generator/dead-code-review/node_modules/minimatch/README.md +0 -259
  321. package/generator/dead-code-review/node_modules/minimatch/lib/path.js +0 -4
  322. package/generator/dead-code-review/node_modules/minimatch/minimatch.js +0 -906
  323. package/generator/dead-code-review/node_modules/minimatch/package.json +0 -32
  324. package/generator/dead-code-review/node_modules/normalize-path/LICENSE +0 -21
  325. package/generator/dead-code-review/node_modules/normalize-path/README.md +0 -127
  326. package/generator/dead-code-review/node_modules/normalize-path/index.js +0 -35
  327. package/generator/dead-code-review/node_modules/normalize-path/package.json +0 -77
  328. package/generator/dead-code-review/node_modules/once/LICENSE +0 -15
  329. package/generator/dead-code-review/node_modules/once/README.md +0 -79
  330. package/generator/dead-code-review/node_modules/once/once.js +0 -42
  331. package/generator/dead-code-review/node_modules/once/package.json +0 -33
  332. package/generator/dead-code-review/node_modules/path-key/index.d.ts +0 -40
  333. package/generator/dead-code-review/node_modules/path-key/index.js +0 -16
  334. package/generator/dead-code-review/node_modules/path-key/license +0 -9
  335. package/generator/dead-code-review/node_modules/path-key/package.json +0 -39
  336. package/generator/dead-code-review/node_modules/path-key/readme.md +0 -61
  337. package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +0 -136
  338. package/generator/dead-code-review/node_modules/picomatch/LICENSE +0 -21
  339. package/generator/dead-code-review/node_modules/picomatch/README.md +0 -708
  340. package/generator/dead-code-review/node_modules/picomatch/index.js +0 -3
  341. package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +0 -179
  342. package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +0 -1091
  343. package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +0 -342
  344. package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +0 -391
  345. package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +0 -64
  346. package/generator/dead-code-review/node_modules/picomatch/package.json +0 -81
  347. package/generator/dead-code-review/node_modules/readdirp/LICENSE +0 -21
  348. package/generator/dead-code-review/node_modules/readdirp/README.md +0 -122
  349. package/generator/dead-code-review/node_modules/readdirp/index.d.ts +0 -43
  350. package/generator/dead-code-review/node_modules/readdirp/index.js +0 -287
  351. package/generator/dead-code-review/node_modules/readdirp/package.json +0 -122
  352. package/generator/dead-code-review/node_modules/shebang-command/index.js +0 -19
  353. package/generator/dead-code-review/node_modules/shebang-command/license +0 -9
  354. package/generator/dead-code-review/node_modules/shebang-command/package.json +0 -34
  355. package/generator/dead-code-review/node_modules/shebang-command/readme.md +0 -34
  356. package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +0 -22
  357. package/generator/dead-code-review/node_modules/shebang-regex/index.js +0 -2
  358. package/generator/dead-code-review/node_modules/shebang-regex/license +0 -9
  359. package/generator/dead-code-review/node_modules/shebang-regex/package.json +0 -35
  360. package/generator/dead-code-review/node_modules/shebang-regex/readme.md +0 -33
  361. package/generator/dead-code-review/node_modules/split/.travis.yml +0 -3
  362. package/generator/dead-code-review/node_modules/split/LICENCE +0 -22
  363. package/generator/dead-code-review/node_modules/split/examples/pretty.js +0 -26
  364. package/generator/dead-code-review/node_modules/split/index.js +0 -63
  365. package/generator/dead-code-review/node_modules/split/package.json +0 -30
  366. package/generator/dead-code-review/node_modules/split/readme.markdown +0 -72
  367. package/generator/dead-code-review/node_modules/split/test/options.asynct.js +0 -46
  368. package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +0 -34
  369. package/generator/dead-code-review/node_modules/split/test/split.asynct.js +0 -137
  370. package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +0 -51
  371. package/generator/dead-code-review/node_modules/supports-color/browser.js +0 -5
  372. package/generator/dead-code-review/node_modules/supports-color/index.js +0 -135
  373. package/generator/dead-code-review/node_modules/supports-color/license +0 -9
  374. package/generator/dead-code-review/node_modules/supports-color/package.json +0 -53
  375. package/generator/dead-code-review/node_modules/supports-color/readme.md +0 -76
  376. package/generator/dead-code-review/node_modules/through/.travis.yml +0 -5
  377. package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +0 -15
  378. package/generator/dead-code-review/node_modules/through/LICENSE.MIT +0 -24
  379. package/generator/dead-code-review/node_modules/through/index.js +0 -108
  380. package/generator/dead-code-review/node_modules/through/package.json +0 -36
  381. package/generator/dead-code-review/node_modules/through/readme.markdown +0 -64
  382. package/generator/dead-code-review/node_modules/through/test/async.js +0 -28
  383. package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +0 -30
  384. package/generator/dead-code-review/node_modules/through/test/buffering.js +0 -71
  385. package/generator/dead-code-review/node_modules/through/test/end.js +0 -45
  386. package/generator/dead-code-review/node_modules/through/test/index.js +0 -133
  387. package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +0 -21
  388. package/generator/dead-code-review/node_modules/to-regex-range/README.md +0 -305
  389. package/generator/dead-code-review/node_modules/to-regex-range/index.js +0 -288
  390. package/generator/dead-code-review/node_modules/to-regex-range/package.json +0 -88
  391. package/generator/dead-code-review/node_modules/which/CHANGELOG.md +0 -166
  392. package/generator/dead-code-review/node_modules/which/LICENSE +0 -15
  393. package/generator/dead-code-review/node_modules/which/README.md +0 -54
  394. package/generator/dead-code-review/node_modules/which/bin/node-which +0 -52
  395. package/generator/dead-code-review/node_modules/which/package.json +0 -43
  396. package/generator/dead-code-review/node_modules/which/which.js +0 -125
  397. package/generator/dead-code-review/node_modules/wrappy/LICENSE +0 -15
  398. package/generator/dead-code-review/node_modules/wrappy/README.md +0 -36
  399. package/generator/dead-code-review/node_modules/wrappy/package.json +0 -29
  400. package/generator/dead-code-review/node_modules/wrappy/wrappy.js +0 -33
  401. package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +0 -6
  402. package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +0 -23
  403. package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +0 -593
  404. package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +0 -21
  405. package/generator/dead-code-review/node_modules/xmlbuilder/README.md +0 -103
  406. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +0 -10
  407. package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +0 -12
  408. package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +0 -25
  409. package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +0 -11
  410. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +0 -88
  411. package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +0 -10
  412. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +0 -130
  413. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +0 -41
  414. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +0 -86
  415. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +0 -41
  416. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +0 -80
  417. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +0 -20
  418. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +0 -55
  419. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +0 -44
  420. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +0 -66
  421. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +0 -44
  422. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +0 -115
  423. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +0 -66
  424. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +0 -51
  425. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +0 -235
  426. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +0 -282
  427. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +0 -650
  428. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +0 -21
  429. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +0 -39
  430. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +0 -334
  431. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +0 -77
  432. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +0 -999
  433. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +0 -51
  434. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +0 -45
  435. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +0 -56
  436. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +0 -40
  437. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +0 -209
  438. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +0 -40
  439. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +0 -291
  440. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +0 -82
  441. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +0 -23
  442. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +0 -27
  443. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +0 -485
  444. package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +0 -120
  445. package/generator/dead-code-review/node_modules/xmlbuilder/package.json +0 -51
  446. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +0 -244
  447. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +0 -21
  448. package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +0 -161
  449. package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +0 -11
  450. package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +0 -1771
  451. package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
  452. package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
  453. package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
  454. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/d.dat +0 -0
  455. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/i.dat +0 -0
  456. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/o.dat +0 -0
  457. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +0 -25
  458. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/d.dat +0 -0
  459. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/i.dat +0 -0
  460. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/o.dat +0 -0
  461. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +0 -41
  462. package/src/DataSource/Env.elm +0 -62
  463. package/src/DataSource/Http.elm +0 -446
  464. package/src/DataSource/Internal/Request.elm +0 -20
  465. package/src/DataSource/Port.elm +0 -90
@@ -1,1091 +0,0 @@
1
- 'use strict';
2
-
3
- const constants = require('./constants');
4
- const utils = require('./utils');
5
-
6
- /**
7
- * Constants
8
- */
9
-
10
- const {
11
- MAX_LENGTH,
12
- POSIX_REGEX_SOURCE,
13
- REGEX_NON_SPECIAL_CHARS,
14
- REGEX_SPECIAL_CHARS_BACKREF,
15
- REPLACEMENTS
16
- } = constants;
17
-
18
- /**
19
- * Helpers
20
- */
21
-
22
- const expandRange = (args, options) => {
23
- if (typeof options.expandRange === 'function') {
24
- return options.expandRange(...args, options);
25
- }
26
-
27
- args.sort();
28
- const value = `[${args.join('-')}]`;
29
-
30
- try {
31
- /* eslint-disable-next-line no-new */
32
- new RegExp(value);
33
- } catch (ex) {
34
- return args.map(v => utils.escapeRegex(v)).join('..');
35
- }
36
-
37
- return value;
38
- };
39
-
40
- /**
41
- * Create the message for a syntax error
42
- */
43
-
44
- const syntaxError = (type, char) => {
45
- return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
46
- };
47
-
48
- /**
49
- * Parse the given input string.
50
- * @param {String} input
51
- * @param {Object} options
52
- * @return {Object}
53
- */
54
-
55
- const parse = (input, options) => {
56
- if (typeof input !== 'string') {
57
- throw new TypeError('Expected a string');
58
- }
59
-
60
- input = REPLACEMENTS[input] || input;
61
-
62
- const opts = { ...options };
63
- const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
64
-
65
- let len = input.length;
66
- if (len > max) {
67
- throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
68
- }
69
-
70
- const bos = { type: 'bos', value: '', output: opts.prepend || '' };
71
- const tokens = [bos];
72
-
73
- const capture = opts.capture ? '' : '?:';
74
- const win32 = utils.isWindows(options);
75
-
76
- // create constants based on platform, for windows or posix
77
- const PLATFORM_CHARS = constants.globChars(win32);
78
- const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);
79
-
80
- const {
81
- DOT_LITERAL,
82
- PLUS_LITERAL,
83
- SLASH_LITERAL,
84
- ONE_CHAR,
85
- DOTS_SLASH,
86
- NO_DOT,
87
- NO_DOT_SLASH,
88
- NO_DOTS_SLASH,
89
- QMARK,
90
- QMARK_NO_DOT,
91
- STAR,
92
- START_ANCHOR
93
- } = PLATFORM_CHARS;
94
-
95
- const globstar = opts => {
96
- return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
97
- };
98
-
99
- const nodot = opts.dot ? '' : NO_DOT;
100
- const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;
101
- let star = opts.bash === true ? globstar(opts) : STAR;
102
-
103
- if (opts.capture) {
104
- star = `(${star})`;
105
- }
106
-
107
- // minimatch options support
108
- if (typeof opts.noext === 'boolean') {
109
- opts.noextglob = opts.noext;
110
- }
111
-
112
- const state = {
113
- input,
114
- index: -1,
115
- start: 0,
116
- dot: opts.dot === true,
117
- consumed: '',
118
- output: '',
119
- prefix: '',
120
- backtrack: false,
121
- negated: false,
122
- brackets: 0,
123
- braces: 0,
124
- parens: 0,
125
- quotes: 0,
126
- globstar: false,
127
- tokens
128
- };
129
-
130
- input = utils.removePrefix(input, state);
131
- len = input.length;
132
-
133
- const extglobs = [];
134
- const braces = [];
135
- const stack = [];
136
- let prev = bos;
137
- let value;
138
-
139
- /**
140
- * Tokenizing helpers
141
- */
142
-
143
- const eos = () => state.index === len - 1;
144
- const peek = state.peek = (n = 1) => input[state.index + n];
145
- const advance = state.advance = () => input[++state.index] || '';
146
- const remaining = () => input.slice(state.index + 1);
147
- const consume = (value = '', num = 0) => {
148
- state.consumed += value;
149
- state.index += num;
150
- };
151
-
152
- const append = token => {
153
- state.output += token.output != null ? token.output : token.value;
154
- consume(token.value);
155
- };
156
-
157
- const negate = () => {
158
- let count = 1;
159
-
160
- while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {
161
- advance();
162
- state.start++;
163
- count++;
164
- }
165
-
166
- if (count % 2 === 0) {
167
- return false;
168
- }
169
-
170
- state.negated = true;
171
- state.start++;
172
- return true;
173
- };
174
-
175
- const increment = type => {
176
- state[type]++;
177
- stack.push(type);
178
- };
179
-
180
- const decrement = type => {
181
- state[type]--;
182
- stack.pop();
183
- };
184
-
185
- /**
186
- * Push tokens onto the tokens array. This helper speeds up
187
- * tokenizing by 1) helping us avoid backtracking as much as possible,
188
- * and 2) helping us avoid creating extra tokens when consecutive
189
- * characters are plain text. This improves performance and simplifies
190
- * lookbehinds.
191
- */
192
-
193
- const push = tok => {
194
- if (prev.type === 'globstar') {
195
- const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');
196
- const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));
197
-
198
- if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {
199
- state.output = state.output.slice(0, -prev.output.length);
200
- prev.type = 'star';
201
- prev.value = '*';
202
- prev.output = star;
203
- state.output += prev.output;
204
- }
205
- }
206
-
207
- if (extglobs.length && tok.type !== 'paren') {
208
- extglobs[extglobs.length - 1].inner += tok.value;
209
- }
210
-
211
- if (tok.value || tok.output) append(tok);
212
- if (prev && prev.type === 'text' && tok.type === 'text') {
213
- prev.value += tok.value;
214
- prev.output = (prev.output || '') + tok.value;
215
- return;
216
- }
217
-
218
- tok.prev = prev;
219
- tokens.push(tok);
220
- prev = tok;
221
- };
222
-
223
- const extglobOpen = (type, value) => {
224
- const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };
225
-
226
- token.prev = prev;
227
- token.parens = state.parens;
228
- token.output = state.output;
229
- const output = (opts.capture ? '(' : '') + token.open;
230
-
231
- increment('parens');
232
- push({ type, value, output: state.output ? '' : ONE_CHAR });
233
- push({ type: 'paren', extglob: true, value: advance(), output });
234
- extglobs.push(token);
235
- };
236
-
237
- const extglobClose = token => {
238
- let output = token.close + (opts.capture ? ')' : '');
239
- let rest;
240
-
241
- if (token.type === 'negate') {
242
- let extglobStar = star;
243
-
244
- if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {
245
- extglobStar = globstar(opts);
246
- }
247
-
248
- if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) {
249
- output = token.close = `)$))${extglobStar}`;
250
- }
251
-
252
- if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
253
- // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.
254
- // In this case, we need to parse the string and use it in the output of the original pattern.
255
- // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.
256
- //
257
- // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.
258
- const expression = parse(rest, { ...options, fastpaths: false }).output;
259
-
260
- output = token.close = `)${expression})${extglobStar})`;
261
- }
262
-
263
- if (token.prev.type === 'bos') {
264
- state.negatedExtglob = true;
265
- }
266
- }
267
-
268
- push({ type: 'paren', extglob: true, value, output });
269
- decrement('parens');
270
- };
271
-
272
- /**
273
- * Fast paths
274
- */
275
-
276
- if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) {
277
- let backslashes = false;
278
-
279
- let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {
280
- if (first === '\\') {
281
- backslashes = true;
282
- return m;
283
- }
284
-
285
- if (first === '?') {
286
- if (esc) {
287
- return esc + first + (rest ? QMARK.repeat(rest.length) : '');
288
- }
289
- if (index === 0) {
290
- return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');
291
- }
292
- return QMARK.repeat(chars.length);
293
- }
294
-
295
- if (first === '.') {
296
- return DOT_LITERAL.repeat(chars.length);
297
- }
298
-
299
- if (first === '*') {
300
- if (esc) {
301
- return esc + first + (rest ? star : '');
302
- }
303
- return star;
304
- }
305
- return esc ? m : `\\${m}`;
306
- });
307
-
308
- if (backslashes === true) {
309
- if (opts.unescape === true) {
310
- output = output.replace(/\\/g, '');
311
- } else {
312
- output = output.replace(/\\+/g, m => {
313
- return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : '');
314
- });
315
- }
316
- }
317
-
318
- if (output === input && opts.contains === true) {
319
- state.output = input;
320
- return state;
321
- }
322
-
323
- state.output = utils.wrapOutput(output, state, options);
324
- return state;
325
- }
326
-
327
- /**
328
- * Tokenize input until we reach end-of-string
329
- */
330
-
331
- while (!eos()) {
332
- value = advance();
333
-
334
- if (value === '\u0000') {
335
- continue;
336
- }
337
-
338
- /**
339
- * Escaped characters
340
- */
341
-
342
- if (value === '\\') {
343
- const next = peek();
344
-
345
- if (next === '/' && opts.bash !== true) {
346
- continue;
347
- }
348
-
349
- if (next === '.' || next === ';') {
350
- continue;
351
- }
352
-
353
- if (!next) {
354
- value += '\\';
355
- push({ type: 'text', value });
356
- continue;
357
- }
358
-
359
- // collapse slashes to reduce potential for exploits
360
- const match = /^\\+/.exec(remaining());
361
- let slashes = 0;
362
-
363
- if (match && match[0].length > 2) {
364
- slashes = match[0].length;
365
- state.index += slashes;
366
- if (slashes % 2 !== 0) {
367
- value += '\\';
368
- }
369
- }
370
-
371
- if (opts.unescape === true) {
372
- value = advance();
373
- } else {
374
- value += advance();
375
- }
376
-
377
- if (state.brackets === 0) {
378
- push({ type: 'text', value });
379
- continue;
380
- }
381
- }
382
-
383
- /**
384
- * If we're inside a regex character class, continue
385
- * until we reach the closing bracket.
386
- */
387
-
388
- if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {
389
- if (opts.posix !== false && value === ':') {
390
- const inner = prev.value.slice(1);
391
- if (inner.includes('[')) {
392
- prev.posix = true;
393
-
394
- if (inner.includes(':')) {
395
- const idx = prev.value.lastIndexOf('[');
396
- const pre = prev.value.slice(0, idx);
397
- const rest = prev.value.slice(idx + 2);
398
- const posix = POSIX_REGEX_SOURCE[rest];
399
- if (posix) {
400
- prev.value = pre + posix;
401
- state.backtrack = true;
402
- advance();
403
-
404
- if (!bos.output && tokens.indexOf(prev) === 1) {
405
- bos.output = ONE_CHAR;
406
- }
407
- continue;
408
- }
409
- }
410
- }
411
- }
412
-
413
- if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {
414
- value = `\\${value}`;
415
- }
416
-
417
- if (value === ']' && (prev.value === '[' || prev.value === '[^')) {
418
- value = `\\${value}`;
419
- }
420
-
421
- if (opts.posix === true && value === '!' && prev.value === '[') {
422
- value = '^';
423
- }
424
-
425
- prev.value += value;
426
- append({ value });
427
- continue;
428
- }
429
-
430
- /**
431
- * If we're inside a quoted string, continue
432
- * until we reach the closing double quote.
433
- */
434
-
435
- if (state.quotes === 1 && value !== '"') {
436
- value = utils.escapeRegex(value);
437
- prev.value += value;
438
- append({ value });
439
- continue;
440
- }
441
-
442
- /**
443
- * Double quotes
444
- */
445
-
446
- if (value === '"') {
447
- state.quotes = state.quotes === 1 ? 0 : 1;
448
- if (opts.keepQuotes === true) {
449
- push({ type: 'text', value });
450
- }
451
- continue;
452
- }
453
-
454
- /**
455
- * Parentheses
456
- */
457
-
458
- if (value === '(') {
459
- increment('parens');
460
- push({ type: 'paren', value });
461
- continue;
462
- }
463
-
464
- if (value === ')') {
465
- if (state.parens === 0 && opts.strictBrackets === true) {
466
- throw new SyntaxError(syntaxError('opening', '('));
467
- }
468
-
469
- const extglob = extglobs[extglobs.length - 1];
470
- if (extglob && state.parens === extglob.parens + 1) {
471
- extglobClose(extglobs.pop());
472
- continue;
473
- }
474
-
475
- push({ type: 'paren', value, output: state.parens ? ')' : '\\)' });
476
- decrement('parens');
477
- continue;
478
- }
479
-
480
- /**
481
- * Square brackets
482
- */
483
-
484
- if (value === '[') {
485
- if (opts.nobracket === true || !remaining().includes(']')) {
486
- if (opts.nobracket !== true && opts.strictBrackets === true) {
487
- throw new SyntaxError(syntaxError('closing', ']'));
488
- }
489
-
490
- value = `\\${value}`;
491
- } else {
492
- increment('brackets');
493
- }
494
-
495
- push({ type: 'bracket', value });
496
- continue;
497
- }
498
-
499
- if (value === ']') {
500
- if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {
501
- push({ type: 'text', value, output: `\\${value}` });
502
- continue;
503
- }
504
-
505
- if (state.brackets === 0) {
506
- if (opts.strictBrackets === true) {
507
- throw new SyntaxError(syntaxError('opening', '['));
508
- }
509
-
510
- push({ type: 'text', value, output: `\\${value}` });
511
- continue;
512
- }
513
-
514
- decrement('brackets');
515
-
516
- const prevValue = prev.value.slice(1);
517
- if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {
518
- value = `/${value}`;
519
- }
520
-
521
- prev.value += value;
522
- append({ value });
523
-
524
- // when literal brackets are explicitly disabled
525
- // assume we should match with a regex character class
526
- if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {
527
- continue;
528
- }
529
-
530
- const escaped = utils.escapeRegex(prev.value);
531
- state.output = state.output.slice(0, -prev.value.length);
532
-
533
- // when literal brackets are explicitly enabled
534
- // assume we should escape the brackets to match literal characters
535
- if (opts.literalBrackets === true) {
536
- state.output += escaped;
537
- prev.value = escaped;
538
- continue;
539
- }
540
-
541
- // when the user specifies nothing, try to match both
542
- prev.value = `(${capture}${escaped}|${prev.value})`;
543
- state.output += prev.value;
544
- continue;
545
- }
546
-
547
- /**
548
- * Braces
549
- */
550
-
551
- if (value === '{' && opts.nobrace !== true) {
552
- increment('braces');
553
-
554
- const open = {
555
- type: 'brace',
556
- value,
557
- output: '(',
558
- outputIndex: state.output.length,
559
- tokensIndex: state.tokens.length
560
- };
561
-
562
- braces.push(open);
563
- push(open);
564
- continue;
565
- }
566
-
567
- if (value === '}') {
568
- const brace = braces[braces.length - 1];
569
-
570
- if (opts.nobrace === true || !brace) {
571
- push({ type: 'text', value, output: value });
572
- continue;
573
- }
574
-
575
- let output = ')';
576
-
577
- if (brace.dots === true) {
578
- const arr = tokens.slice();
579
- const range = [];
580
-
581
- for (let i = arr.length - 1; i >= 0; i--) {
582
- tokens.pop();
583
- if (arr[i].type === 'brace') {
584
- break;
585
- }
586
- if (arr[i].type !== 'dots') {
587
- range.unshift(arr[i].value);
588
- }
589
- }
590
-
591
- output = expandRange(range, opts);
592
- state.backtrack = true;
593
- }
594
-
595
- if (brace.comma !== true && brace.dots !== true) {
596
- const out = state.output.slice(0, brace.outputIndex);
597
- const toks = state.tokens.slice(brace.tokensIndex);
598
- brace.value = brace.output = '\\{';
599
- value = output = '\\}';
600
- state.output = out;
601
- for (const t of toks) {
602
- state.output += (t.output || t.value);
603
- }
604
- }
605
-
606
- push({ type: 'brace', value, output });
607
- decrement('braces');
608
- braces.pop();
609
- continue;
610
- }
611
-
612
- /**
613
- * Pipes
614
- */
615
-
616
- if (value === '|') {
617
- if (extglobs.length > 0) {
618
- extglobs[extglobs.length - 1].conditions++;
619
- }
620
- push({ type: 'text', value });
621
- continue;
622
- }
623
-
624
- /**
625
- * Commas
626
- */
627
-
628
- if (value === ',') {
629
- let output = value;
630
-
631
- const brace = braces[braces.length - 1];
632
- if (brace && stack[stack.length - 1] === 'braces') {
633
- brace.comma = true;
634
- output = '|';
635
- }
636
-
637
- push({ type: 'comma', value, output });
638
- continue;
639
- }
640
-
641
- /**
642
- * Slashes
643
- */
644
-
645
- if (value === '/') {
646
- // if the beginning of the glob is "./", advance the start
647
- // to the current index, and don't add the "./" characters
648
- // to the state. This greatly simplifies lookbehinds when
649
- // checking for BOS characters like "!" and "." (not "./")
650
- if (prev.type === 'dot' && state.index === state.start + 1) {
651
- state.start = state.index + 1;
652
- state.consumed = '';
653
- state.output = '';
654
- tokens.pop();
655
- prev = bos; // reset "prev" to the first token
656
- continue;
657
- }
658
-
659
- push({ type: 'slash', value, output: SLASH_LITERAL });
660
- continue;
661
- }
662
-
663
- /**
664
- * Dots
665
- */
666
-
667
- if (value === '.') {
668
- if (state.braces > 0 && prev.type === 'dot') {
669
- if (prev.value === '.') prev.output = DOT_LITERAL;
670
- const brace = braces[braces.length - 1];
671
- prev.type = 'dots';
672
- prev.output += value;
673
- prev.value += value;
674
- brace.dots = true;
675
- continue;
676
- }
677
-
678
- if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {
679
- push({ type: 'text', value, output: DOT_LITERAL });
680
- continue;
681
- }
682
-
683
- push({ type: 'dot', value, output: DOT_LITERAL });
684
- continue;
685
- }
686
-
687
- /**
688
- * Question marks
689
- */
690
-
691
- if (value === '?') {
692
- const isGroup = prev && prev.value === '(';
693
- if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
694
- extglobOpen('qmark', value);
695
- continue;
696
- }
697
-
698
- if (prev && prev.type === 'paren') {
699
- const next = peek();
700
- let output = value;
701
-
702
- if (next === '<' && !utils.supportsLookbehinds()) {
703
- throw new Error('Node.js v10 or higher is required for regex lookbehinds');
704
- }
705
-
706
- if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) {
707
- output = `\\${value}`;
708
- }
709
-
710
- push({ type: 'text', value, output });
711
- continue;
712
- }
713
-
714
- if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {
715
- push({ type: 'qmark', value, output: QMARK_NO_DOT });
716
- continue;
717
- }
718
-
719
- push({ type: 'qmark', value, output: QMARK });
720
- continue;
721
- }
722
-
723
- /**
724
- * Exclamation
725
- */
726
-
727
- if (value === '!') {
728
- if (opts.noextglob !== true && peek() === '(') {
729
- if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {
730
- extglobOpen('negate', value);
731
- continue;
732
- }
733
- }
734
-
735
- if (opts.nonegate !== true && state.index === 0) {
736
- negate();
737
- continue;
738
- }
739
- }
740
-
741
- /**
742
- * Plus
743
- */
744
-
745
- if (value === '+') {
746
- if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
747
- extglobOpen('plus', value);
748
- continue;
749
- }
750
-
751
- if ((prev && prev.value === '(') || opts.regex === false) {
752
- push({ type: 'plus', value, output: PLUS_LITERAL });
753
- continue;
754
- }
755
-
756
- if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {
757
- push({ type: 'plus', value });
758
- continue;
759
- }
760
-
761
- push({ type: 'plus', value: PLUS_LITERAL });
762
- continue;
763
- }
764
-
765
- /**
766
- * Plain text
767
- */
768
-
769
- if (value === '@') {
770
- if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
771
- push({ type: 'at', extglob: true, value, output: '' });
772
- continue;
773
- }
774
-
775
- push({ type: 'text', value });
776
- continue;
777
- }
778
-
779
- /**
780
- * Plain text
781
- */
782
-
783
- if (value !== '*') {
784
- if (value === '$' || value === '^') {
785
- value = `\\${value}`;
786
- }
787
-
788
- const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());
789
- if (match) {
790
- value += match[0];
791
- state.index += match[0].length;
792
- }
793
-
794
- push({ type: 'text', value });
795
- continue;
796
- }
797
-
798
- /**
799
- * Stars
800
- */
801
-
802
- if (prev && (prev.type === 'globstar' || prev.star === true)) {
803
- prev.type = 'star';
804
- prev.star = true;
805
- prev.value += value;
806
- prev.output = star;
807
- state.backtrack = true;
808
- state.globstar = true;
809
- consume(value);
810
- continue;
811
- }
812
-
813
- let rest = remaining();
814
- if (opts.noextglob !== true && /^\([^?]/.test(rest)) {
815
- extglobOpen('star', value);
816
- continue;
817
- }
818
-
819
- if (prev.type === 'star') {
820
- if (opts.noglobstar === true) {
821
- consume(value);
822
- continue;
823
- }
824
-
825
- const prior = prev.prev;
826
- const before = prior.prev;
827
- const isStart = prior.type === 'slash' || prior.type === 'bos';
828
- const afterStar = before && (before.type === 'star' || before.type === 'globstar');
829
-
830
- if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {
831
- push({ type: 'star', value, output: '' });
832
- continue;
833
- }
834
-
835
- const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');
836
- const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');
837
- if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {
838
- push({ type: 'star', value, output: '' });
839
- continue;
840
- }
841
-
842
- // strip consecutive `/**/`
843
- while (rest.slice(0, 3) === '/**') {
844
- const after = input[state.index + 4];
845
- if (after && after !== '/') {
846
- break;
847
- }
848
- rest = rest.slice(3);
849
- consume('/**', 3);
850
- }
851
-
852
- if (prior.type === 'bos' && eos()) {
853
- prev.type = 'globstar';
854
- prev.value += value;
855
- prev.output = globstar(opts);
856
- state.output = prev.output;
857
- state.globstar = true;
858
- consume(value);
859
- continue;
860
- }
861
-
862
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
863
- state.output = state.output.slice(0, -(prior.output + prev.output).length);
864
- prior.output = `(?:${prior.output}`;
865
-
866
- prev.type = 'globstar';
867
- prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');
868
- prev.value += value;
869
- state.globstar = true;
870
- state.output += prior.output + prev.output;
871
- consume(value);
872
- continue;
873
- }
874
-
875
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {
876
- const end = rest[1] !== void 0 ? '|$' : '';
877
-
878
- state.output = state.output.slice(0, -(prior.output + prev.output).length);
879
- prior.output = `(?:${prior.output}`;
880
-
881
- prev.type = 'globstar';
882
- prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
883
- prev.value += value;
884
-
885
- state.output += prior.output + prev.output;
886
- state.globstar = true;
887
-
888
- consume(value + advance());
889
-
890
- push({ type: 'slash', value: '/', output: '' });
891
- continue;
892
- }
893
-
894
- if (prior.type === 'bos' && rest[0] === '/') {
895
- prev.type = 'globstar';
896
- prev.value += value;
897
- prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
898
- state.output = prev.output;
899
- state.globstar = true;
900
- consume(value + advance());
901
- push({ type: 'slash', value: '/', output: '' });
902
- continue;
903
- }
904
-
905
- // remove single star from output
906
- state.output = state.output.slice(0, -prev.output.length);
907
-
908
- // reset previous token to globstar
909
- prev.type = 'globstar';
910
- prev.output = globstar(opts);
911
- prev.value += value;
912
-
913
- // reset output with globstar
914
- state.output += prev.output;
915
- state.globstar = true;
916
- consume(value);
917
- continue;
918
- }
919
-
920
- const token = { type: 'star', value, output: star };
921
-
922
- if (opts.bash === true) {
923
- token.output = '.*?';
924
- if (prev.type === 'bos' || prev.type === 'slash') {
925
- token.output = nodot + token.output;
926
- }
927
- push(token);
928
- continue;
929
- }
930
-
931
- if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {
932
- token.output = value;
933
- push(token);
934
- continue;
935
- }
936
-
937
- if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {
938
- if (prev.type === 'dot') {
939
- state.output += NO_DOT_SLASH;
940
- prev.output += NO_DOT_SLASH;
941
-
942
- } else if (opts.dot === true) {
943
- state.output += NO_DOTS_SLASH;
944
- prev.output += NO_DOTS_SLASH;
945
-
946
- } else {
947
- state.output += nodot;
948
- prev.output += nodot;
949
- }
950
-
951
- if (peek() !== '*') {
952
- state.output += ONE_CHAR;
953
- prev.output += ONE_CHAR;
954
- }
955
- }
956
-
957
- push(token);
958
- }
959
-
960
- while (state.brackets > 0) {
961
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));
962
- state.output = utils.escapeLast(state.output, '[');
963
- decrement('brackets');
964
- }
965
-
966
- while (state.parens > 0) {
967
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));
968
- state.output = utils.escapeLast(state.output, '(');
969
- decrement('parens');
970
- }
971
-
972
- while (state.braces > 0) {
973
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));
974
- state.output = utils.escapeLast(state.output, '{');
975
- decrement('braces');
976
- }
977
-
978
- if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
979
- push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });
980
- }
981
-
982
- // rebuild the output if we had to backtrack at any point
983
- if (state.backtrack === true) {
984
- state.output = '';
985
-
986
- for (const token of state.tokens) {
987
- state.output += token.output != null ? token.output : token.value;
988
-
989
- if (token.suffix) {
990
- state.output += token.suffix;
991
- }
992
- }
993
- }
994
-
995
- return state;
996
- };
997
-
998
- /**
999
- * Fast paths for creating regular expressions for common glob patterns.
1000
- * This can significantly speed up processing and has very little downside
1001
- * impact when none of the fast paths match.
1002
- */
1003
-
1004
- parse.fastpaths = (input, options) => {
1005
- const opts = { ...options };
1006
- const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
1007
- const len = input.length;
1008
- if (len > max) {
1009
- throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
1010
- }
1011
-
1012
- input = REPLACEMENTS[input] || input;
1013
- const win32 = utils.isWindows(options);
1014
-
1015
- // create constants based on platform, for windows or posix
1016
- const {
1017
- DOT_LITERAL,
1018
- SLASH_LITERAL,
1019
- ONE_CHAR,
1020
- DOTS_SLASH,
1021
- NO_DOT,
1022
- NO_DOTS,
1023
- NO_DOTS_SLASH,
1024
- STAR,
1025
- START_ANCHOR
1026
- } = constants.globChars(win32);
1027
-
1028
- const nodot = opts.dot ? NO_DOTS : NO_DOT;
1029
- const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
1030
- const capture = opts.capture ? '' : '?:';
1031
- const state = { negated: false, prefix: '' };
1032
- let star = opts.bash === true ? '.*?' : STAR;
1033
-
1034
- if (opts.capture) {
1035
- star = `(${star})`;
1036
- }
1037
-
1038
- const globstar = opts => {
1039
- if (opts.noglobstar === true) return star;
1040
- return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
1041
- };
1042
-
1043
- const create = str => {
1044
- switch (str) {
1045
- case '*':
1046
- return `${nodot}${ONE_CHAR}${star}`;
1047
-
1048
- case '.*':
1049
- return `${DOT_LITERAL}${ONE_CHAR}${star}`;
1050
-
1051
- case '*.*':
1052
- return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
1053
-
1054
- case '*/*':
1055
- return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
1056
-
1057
- case '**':
1058
- return nodot + globstar(opts);
1059
-
1060
- case '**/*':
1061
- return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
1062
-
1063
- case '**/*.*':
1064
- return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
1065
-
1066
- case '**/.*':
1067
- return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
1068
-
1069
- default: {
1070
- const match = /^(.*?)\.(\w+)$/.exec(str);
1071
- if (!match) return;
1072
-
1073
- const source = create(match[1]);
1074
- if (!source) return;
1075
-
1076
- return source + DOT_LITERAL + match[2];
1077
- }
1078
- }
1079
- };
1080
-
1081
- const output = utils.removePrefix(input, state);
1082
- let source = create(output);
1083
-
1084
- if (source && opts.strictSlashes !== true) {
1085
- source += `${SLASH_LITERAL}?`;
1086
- }
1087
-
1088
- return source;
1089
- };
1090
-
1091
- module.exports = parse;