elm-pages 3.0.0-beta.20 → 3.0.0-beta.21

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 (433) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.cjs +111 -99
  3. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +1 -0
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +38 -0
  43. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +29673 -0
  44. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +1 -0
  45. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +27 -0
  46. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  47. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  48. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  49. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  50. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  51. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +37 -107
  52. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  53. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  54. package/generator/dead-code-review/node_modules/.package-lock.json +484 -0
  55. package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +345 -0
  56. package/generator/dead-code-review/node_modules/ansi-styles/index.js +163 -0
  57. package/generator/dead-code-review/node_modules/ansi-styles/license +9 -0
  58. package/generator/dead-code-review/node_modules/ansi-styles/package.json +56 -0
  59. package/generator/dead-code-review/node_modules/ansi-styles/readme.md +152 -0
  60. package/generator/dead-code-review/node_modules/anymatch/LICENSE +15 -0
  61. package/generator/dead-code-review/node_modules/anymatch/README.md +87 -0
  62. package/generator/dead-code-review/node_modules/anymatch/index.d.ts +20 -0
  63. package/generator/dead-code-review/node_modules/anymatch/index.js +104 -0
  64. package/generator/dead-code-review/node_modules/anymatch/package.json +48 -0
  65. package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  66. package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +21 -0
  67. package/generator/dead-code-review/node_modules/balanced-match/README.md +97 -0
  68. package/generator/dead-code-review/node_modules/balanced-match/index.js +62 -0
  69. package/generator/dead-code-review/node_modules/balanced-match/package.json +48 -0
  70. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +260 -0
  71. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
  72. package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +14 -0
  73. package/generator/dead-code-review/node_modules/binary-extensions/index.js +1 -0
  74. package/generator/dead-code-review/node_modules/binary-extensions/license +9 -0
  75. package/generator/dead-code-review/node_modules/binary-extensions/package.json +38 -0
  76. package/generator/dead-code-review/node_modules/binary-extensions/readme.md +41 -0
  77. package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  78. package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +21 -0
  79. package/generator/dead-code-review/node_modules/brace-expansion/README.md +135 -0
  80. package/generator/dead-code-review/node_modules/brace-expansion/index.js +203 -0
  81. package/generator/dead-code-review/node_modules/brace-expansion/package.json +46 -0
  82. package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +184 -0
  83. package/generator/dead-code-review/node_modules/braces/LICENSE +21 -0
  84. package/generator/dead-code-review/node_modules/braces/README.md +593 -0
  85. package/generator/dead-code-review/node_modules/braces/index.js +170 -0
  86. package/generator/dead-code-review/node_modules/braces/lib/compile.js +57 -0
  87. package/generator/dead-code-review/node_modules/braces/lib/constants.js +57 -0
  88. package/generator/dead-code-review/node_modules/braces/lib/expand.js +113 -0
  89. package/generator/dead-code-review/node_modules/braces/lib/parse.js +333 -0
  90. package/generator/dead-code-review/node_modules/braces/lib/stringify.js +32 -0
  91. package/generator/dead-code-review/node_modules/braces/lib/utils.js +112 -0
  92. package/generator/dead-code-review/node_modules/braces/package.json +77 -0
  93. package/generator/dead-code-review/node_modules/chalk/index.d.ts +415 -0
  94. package/generator/dead-code-review/node_modules/chalk/license +9 -0
  95. package/generator/dead-code-review/node_modules/chalk/package.json +68 -0
  96. package/generator/dead-code-review/node_modules/chalk/readme.md +341 -0
  97. package/generator/dead-code-review/node_modules/chalk/source/index.js +229 -0
  98. package/generator/dead-code-review/node_modules/chalk/source/templates.js +134 -0
  99. package/generator/dead-code-review/node_modules/chalk/source/util.js +39 -0
  100. package/generator/dead-code-review/node_modules/chokidar/LICENSE +21 -0
  101. package/generator/dead-code-review/node_modules/chokidar/README.md +308 -0
  102. package/generator/dead-code-review/node_modules/chokidar/index.js +973 -0
  103. package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +65 -0
  104. package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +524 -0
  105. package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +654 -0
  106. package/generator/dead-code-review/node_modules/chokidar/package.json +85 -0
  107. package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +188 -0
  108. package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +54 -0
  109. package/generator/dead-code-review/node_modules/color-convert/LICENSE +21 -0
  110. package/generator/dead-code-review/node_modules/color-convert/README.md +68 -0
  111. package/generator/dead-code-review/node_modules/color-convert/conversions.js +839 -0
  112. package/generator/dead-code-review/node_modules/color-convert/index.js +81 -0
  113. package/generator/dead-code-review/node_modules/color-convert/package.json +48 -0
  114. package/generator/dead-code-review/node_modules/color-convert/route.js +97 -0
  115. package/generator/dead-code-review/node_modules/color-name/LICENSE +8 -0
  116. package/generator/dead-code-review/node_modules/color-name/README.md +11 -0
  117. package/generator/dead-code-review/node_modules/color-name/index.js +152 -0
  118. package/generator/dead-code-review/node_modules/color-name/package.json +28 -0
  119. package/generator/dead-code-review/node_modules/commander/LICENSE +22 -0
  120. package/generator/dead-code-review/node_modules/commander/Readme.md +1118 -0
  121. package/generator/dead-code-review/node_modules/commander/esm.mjs +16 -0
  122. package/generator/dead-code-review/node_modules/commander/index.js +27 -0
  123. package/generator/dead-code-review/node_modules/commander/lib/argument.js +147 -0
  124. package/generator/dead-code-review/node_modules/commander/lib/command.js +2160 -0
  125. package/generator/dead-code-review/node_modules/commander/lib/error.js +45 -0
  126. package/generator/dead-code-review/node_modules/commander/lib/help.js +406 -0
  127. package/generator/dead-code-review/node_modules/commander/lib/option.js +326 -0
  128. package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +100 -0
  129. package/generator/dead-code-review/node_modules/commander/package-support.json +16 -0
  130. package/generator/dead-code-review/node_modules/commander/package.json +80 -0
  131. package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +881 -0
  132. package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +130 -0
  133. package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +21 -0
  134. package/generator/dead-code-review/node_modules/cross-spawn/README.md +96 -0
  135. package/generator/dead-code-review/node_modules/cross-spawn/index.js +39 -0
  136. package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +59 -0
  137. package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +91 -0
  138. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +45 -0
  139. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  140. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  141. package/generator/dead-code-review/node_modules/cross-spawn/package.json +73 -0
  142. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +373 -0
  143. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +64 -0
  144. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +22 -0
  145. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +419 -0
  146. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
  147. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +27 -0
  148. package/generator/dead-code-review/node_modules/elm-test/LICENSE +27 -0
  149. package/generator/dead-code-review/node_modules/elm-test/README.md +192 -0
  150. package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +3 -0
  151. package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +25 -0
  152. package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +217 -0
  153. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +30 -0
  154. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +39 -0
  155. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +212 -0
  156. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +207 -0
  157. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +48 -0
  158. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +161 -0
  159. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +158 -0
  160. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +53 -0
  161. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +113 -0
  162. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +38 -0
  163. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +230 -0
  164. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +326 -0
  165. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +440 -0
  166. package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +110 -0
  167. package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +343 -0
  168. package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +109 -0
  169. package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +47 -0
  170. package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +194 -0
  171. package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +276 -0
  172. package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +294 -0
  173. package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +290 -0
  174. package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +941 -0
  175. package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +117 -0
  176. package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +23 -0
  177. package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +322 -0
  178. package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +76 -0
  179. package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +294 -0
  180. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +45 -0
  181. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +36 -0
  182. package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +318 -0
  183. package/generator/dead-code-review/node_modules/elm-test/package.json +69 -0
  184. package/generator/dead-code-review/node_modules/elm-test/templates/after.js +29 -0
  185. package/generator/dead-code-review/node_modules/elm-test/templates/before.js +58 -0
  186. package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +10 -0
  187. package/generator/dead-code-review/node_modules/fill-range/LICENSE +21 -0
  188. package/generator/dead-code-review/node_modules/fill-range/README.md +237 -0
  189. package/generator/dead-code-review/node_modules/fill-range/index.js +249 -0
  190. package/generator/dead-code-review/node_modules/fill-range/package.json +69 -0
  191. package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +43 -0
  192. package/generator/dead-code-review/node_modules/fs.realpath/README.md +33 -0
  193. package/generator/dead-code-review/node_modules/fs.realpath/index.js +66 -0
  194. package/generator/dead-code-review/node_modules/fs.realpath/old.js +303 -0
  195. package/generator/dead-code-review/node_modules/fs.realpath/package.json +26 -0
  196. package/generator/dead-code-review/node_modules/fsevents/LICENSE +22 -0
  197. package/generator/dead-code-review/node_modules/fsevents/README.md +83 -0
  198. package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +46 -0
  199. package/generator/dead-code-review/node_modules/fsevents/fsevents.js +82 -0
  200. package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
  201. package/generator/dead-code-review/node_modules/fsevents/package.json +62 -0
  202. package/generator/dead-code-review/node_modules/glob/LICENSE +15 -0
  203. package/generator/dead-code-review/node_modules/glob/README.md +378 -0
  204. package/generator/dead-code-review/node_modules/glob/common.js +240 -0
  205. package/generator/dead-code-review/node_modules/glob/glob.js +790 -0
  206. package/generator/dead-code-review/node_modules/glob/package.json +55 -0
  207. package/generator/dead-code-review/node_modules/glob/sync.js +486 -0
  208. package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +110 -0
  209. package/generator/dead-code-review/node_modules/glob-parent/LICENSE +15 -0
  210. package/generator/dead-code-review/node_modules/glob-parent/README.md +137 -0
  211. package/generator/dead-code-review/node_modules/glob-parent/index.js +42 -0
  212. package/generator/dead-code-review/node_modules/glob-parent/package.json +48 -0
  213. package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +15 -0
  214. package/generator/dead-code-review/node_modules/graceful-fs/README.md +143 -0
  215. package/generator/dead-code-review/node_modules/graceful-fs/clone.js +23 -0
  216. package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +448 -0
  217. package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +118 -0
  218. package/generator/dead-code-review/node_modules/graceful-fs/package.json +50 -0
  219. package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +355 -0
  220. package/generator/dead-code-review/node_modules/has-flag/index.d.ts +39 -0
  221. package/generator/dead-code-review/node_modules/has-flag/index.js +8 -0
  222. package/generator/dead-code-review/node_modules/has-flag/license +9 -0
  223. package/generator/dead-code-review/node_modules/has-flag/package.json +46 -0
  224. package/generator/dead-code-review/node_modules/has-flag/readme.md +89 -0
  225. package/generator/dead-code-review/node_modules/inflight/LICENSE +15 -0
  226. package/generator/dead-code-review/node_modules/inflight/README.md +37 -0
  227. package/generator/dead-code-review/node_modules/inflight/inflight.js +54 -0
  228. package/generator/dead-code-review/node_modules/inflight/package.json +29 -0
  229. package/generator/dead-code-review/node_modules/inherits/LICENSE +16 -0
  230. package/generator/dead-code-review/node_modules/inherits/README.md +42 -0
  231. package/generator/dead-code-review/node_modules/inherits/inherits.js +9 -0
  232. package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +27 -0
  233. package/generator/dead-code-review/node_modules/inherits/package.json +29 -0
  234. package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +17 -0
  235. package/generator/dead-code-review/node_modules/is-binary-path/index.js +7 -0
  236. package/generator/dead-code-review/node_modules/is-binary-path/license +9 -0
  237. package/generator/dead-code-review/node_modules/is-binary-path/package.json +40 -0
  238. package/generator/dead-code-review/node_modules/is-binary-path/readme.md +34 -0
  239. package/generator/dead-code-review/node_modules/is-extglob/LICENSE +21 -0
  240. package/generator/dead-code-review/node_modules/is-extglob/README.md +107 -0
  241. package/generator/dead-code-review/node_modules/is-extglob/index.js +20 -0
  242. package/generator/dead-code-review/node_modules/is-extglob/package.json +69 -0
  243. package/generator/dead-code-review/node_modules/is-glob/LICENSE +21 -0
  244. package/generator/dead-code-review/node_modules/is-glob/README.md +206 -0
  245. package/generator/dead-code-review/node_modules/is-glob/index.js +150 -0
  246. package/generator/dead-code-review/node_modules/is-glob/package.json +81 -0
  247. package/generator/dead-code-review/node_modules/is-number/LICENSE +21 -0
  248. package/generator/dead-code-review/node_modules/is-number/README.md +187 -0
  249. package/generator/dead-code-review/node_modules/is-number/index.js +18 -0
  250. package/generator/dead-code-review/node_modules/is-number/package.json +82 -0
  251. package/generator/dead-code-review/node_modules/isexe/LICENSE +15 -0
  252. package/generator/dead-code-review/node_modules/isexe/README.md +51 -0
  253. package/generator/dead-code-review/node_modules/isexe/index.js +57 -0
  254. package/generator/dead-code-review/node_modules/isexe/mode.js +41 -0
  255. package/generator/dead-code-review/node_modules/isexe/package.json +31 -0
  256. package/generator/dead-code-review/node_modules/isexe/test/basic.js +221 -0
  257. package/generator/dead-code-review/node_modules/isexe/windows.js +42 -0
  258. package/generator/dead-code-review/node_modules/minimatch/LICENSE +15 -0
  259. package/generator/dead-code-review/node_modules/minimatch/README.md +259 -0
  260. package/generator/dead-code-review/node_modules/minimatch/lib/path.js +4 -0
  261. package/generator/dead-code-review/node_modules/minimatch/minimatch.js +906 -0
  262. package/generator/dead-code-review/node_modules/minimatch/package.json +32 -0
  263. package/generator/dead-code-review/node_modules/normalize-path/LICENSE +21 -0
  264. package/generator/dead-code-review/node_modules/normalize-path/README.md +127 -0
  265. package/generator/dead-code-review/node_modules/normalize-path/index.js +35 -0
  266. package/generator/dead-code-review/node_modules/normalize-path/package.json +77 -0
  267. package/generator/dead-code-review/node_modules/once/LICENSE +15 -0
  268. package/generator/dead-code-review/node_modules/once/README.md +79 -0
  269. package/generator/dead-code-review/node_modules/once/once.js +42 -0
  270. package/generator/dead-code-review/node_modules/once/package.json +33 -0
  271. package/generator/dead-code-review/node_modules/path-key/index.d.ts +40 -0
  272. package/generator/dead-code-review/node_modules/path-key/index.js +16 -0
  273. package/generator/dead-code-review/node_modules/path-key/license +9 -0
  274. package/generator/dead-code-review/node_modules/path-key/package.json +39 -0
  275. package/generator/dead-code-review/node_modules/path-key/readme.md +61 -0
  276. package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +136 -0
  277. package/generator/dead-code-review/node_modules/picomatch/LICENSE +21 -0
  278. package/generator/dead-code-review/node_modules/picomatch/README.md +708 -0
  279. package/generator/dead-code-review/node_modules/picomatch/index.js +3 -0
  280. package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +179 -0
  281. package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +1091 -0
  282. package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +342 -0
  283. package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +391 -0
  284. package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +64 -0
  285. package/generator/dead-code-review/node_modules/picomatch/package.json +81 -0
  286. package/generator/dead-code-review/node_modules/readdirp/LICENSE +21 -0
  287. package/generator/dead-code-review/node_modules/readdirp/README.md +122 -0
  288. package/generator/dead-code-review/node_modules/readdirp/index.d.ts +43 -0
  289. package/generator/dead-code-review/node_modules/readdirp/index.js +287 -0
  290. package/generator/dead-code-review/node_modules/readdirp/package.json +122 -0
  291. package/generator/dead-code-review/node_modules/shebang-command/index.js +19 -0
  292. package/generator/dead-code-review/node_modules/shebang-command/license +9 -0
  293. package/generator/dead-code-review/node_modules/shebang-command/package.json +34 -0
  294. package/generator/dead-code-review/node_modules/shebang-command/readme.md +34 -0
  295. package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +22 -0
  296. package/generator/dead-code-review/node_modules/shebang-regex/index.js +2 -0
  297. package/generator/dead-code-review/node_modules/shebang-regex/license +9 -0
  298. package/generator/dead-code-review/node_modules/shebang-regex/package.json +35 -0
  299. package/generator/dead-code-review/node_modules/shebang-regex/readme.md +33 -0
  300. package/generator/dead-code-review/node_modules/split/.travis.yml +3 -0
  301. package/generator/dead-code-review/node_modules/split/LICENCE +22 -0
  302. package/generator/dead-code-review/node_modules/split/examples/pretty.js +26 -0
  303. package/generator/dead-code-review/node_modules/split/index.js +63 -0
  304. package/generator/dead-code-review/node_modules/split/package.json +30 -0
  305. package/generator/dead-code-review/node_modules/split/readme.markdown +72 -0
  306. package/generator/dead-code-review/node_modules/split/test/options.asynct.js +46 -0
  307. package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +34 -0
  308. package/generator/dead-code-review/node_modules/split/test/split.asynct.js +137 -0
  309. package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +51 -0
  310. package/generator/dead-code-review/node_modules/supports-color/browser.js +5 -0
  311. package/generator/dead-code-review/node_modules/supports-color/index.js +135 -0
  312. package/generator/dead-code-review/node_modules/supports-color/license +9 -0
  313. package/generator/dead-code-review/node_modules/supports-color/package.json +53 -0
  314. package/generator/dead-code-review/node_modules/supports-color/readme.md +76 -0
  315. package/generator/dead-code-review/node_modules/through/.travis.yml +5 -0
  316. package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +15 -0
  317. package/generator/dead-code-review/node_modules/through/LICENSE.MIT +24 -0
  318. package/generator/dead-code-review/node_modules/through/index.js +108 -0
  319. package/generator/dead-code-review/node_modules/through/package.json +36 -0
  320. package/generator/dead-code-review/node_modules/through/readme.markdown +64 -0
  321. package/generator/dead-code-review/node_modules/through/test/async.js +28 -0
  322. package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +30 -0
  323. package/generator/dead-code-review/node_modules/through/test/buffering.js +71 -0
  324. package/generator/dead-code-review/node_modules/through/test/end.js +45 -0
  325. package/generator/dead-code-review/node_modules/through/test/index.js +133 -0
  326. package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +21 -0
  327. package/generator/dead-code-review/node_modules/to-regex-range/README.md +305 -0
  328. package/generator/dead-code-review/node_modules/to-regex-range/index.js +288 -0
  329. package/generator/dead-code-review/node_modules/to-regex-range/package.json +88 -0
  330. package/generator/dead-code-review/node_modules/which/CHANGELOG.md +166 -0
  331. package/generator/dead-code-review/node_modules/which/LICENSE +15 -0
  332. package/generator/dead-code-review/node_modules/which/README.md +54 -0
  333. package/generator/dead-code-review/node_modules/which/bin/node-which +52 -0
  334. package/generator/dead-code-review/node_modules/which/package.json +43 -0
  335. package/generator/dead-code-review/node_modules/which/which.js +125 -0
  336. package/generator/dead-code-review/node_modules/wrappy/LICENSE +15 -0
  337. package/generator/dead-code-review/node_modules/wrappy/README.md +36 -0
  338. package/generator/dead-code-review/node_modules/wrappy/package.json +29 -0
  339. package/generator/dead-code-review/node_modules/wrappy/wrappy.js +33 -0
  340. package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +6 -0
  341. package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +23 -0
  342. package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +593 -0
  343. package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +21 -0
  344. package/generator/dead-code-review/node_modules/xmlbuilder/README.md +103 -0
  345. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  346. package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  347. package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +25 -0
  348. package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  349. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +88 -0
  350. package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  351. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
  352. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
  353. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
  354. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
  355. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
  356. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
  357. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
  358. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
  359. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
  360. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
  361. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
  362. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
  363. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
  364. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
  365. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
  366. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
  367. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
  368. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
  369. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
  370. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
  371. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
  372. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
  373. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
  374. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
  375. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
  376. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
  377. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
  378. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +291 -0
  379. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +82 -0
  380. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
  381. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
  382. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
  383. package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +120 -0
  384. package/generator/dead-code-review/node_modules/xmlbuilder/package.json +51 -0
  385. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
  386. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
  387. package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +161 -0
  388. package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +11 -0
  389. package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +1771 -0
  390. package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
  391. package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
  392. package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
  393. 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
  394. 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
  395. 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
  396. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +25 -0
  397. 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
  398. 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
  399. 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
  400. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +41 -0
  401. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  402. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  403. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +1 -1
  404. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  405. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  406. package/generator/src/cli.js +15 -7
  407. package/generator/src/compatibility-key.js +3 -1
  408. package/generator/src/dev-server.js +0 -13
  409. package/generator/src/pre-render-html.js +4 -6
  410. package/generator/src/render-worker.js +4 -1
  411. package/generator/src/request-cache.js +59 -8
  412. package/generator/template/app/Api.elm +4 -3
  413. package/generator/template/app/Effect.elm +123 -0
  414. package/generator/template/app/ErrorPage.elm +37 -6
  415. package/generator/template/app/Route/Index.elm +14 -7
  416. package/generator/template/app/Shared.elm +23 -46
  417. package/generator/template/app/Site.elm +11 -3
  418. package/generator/template/app/View.elm +1 -8
  419. package/generator/template/elm-tooling.json +0 -3
  420. package/generator/template/elm.json +34 -25
  421. package/generator/template/package.json +10 -4
  422. package/package.json +1 -1
  423. package/src/BackendTask/Custom.elm +110 -6
  424. package/src/Form/Field.elm +21 -9
  425. package/src/Form/FieldView.elm +14 -4
  426. package/src/Form.elm +61 -53
  427. package/src/Pages/Internal/Platform/Cli.elm +262 -235
  428. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  429. package/src/Pages/Internal/Platform.elm +56 -35
  430. package/src/Result/Extra.elm +6 -1
  431. package/src/Scaffold/Form.elm +474 -0
  432. package/src/{Pages/Generate.elm → Scaffold/Route.elm} +35 -5
  433. package/src/Test/Html/Internal/ElmHtml/ToString.elm +8 -9
@@ -0,0 +1,906 @@
1
+ const minimatch = module.exports = (p, pattern, options = {}) => {
2
+ assertValidPattern(pattern)
3
+
4
+ // shortcut: comments match nothing.
5
+ if (!options.nocomment && pattern.charAt(0) === '#') {
6
+ return false
7
+ }
8
+
9
+ return new Minimatch(pattern, options).match(p)
10
+ }
11
+
12
+ module.exports = minimatch
13
+
14
+ const path = require('./lib/path.js')
15
+ minimatch.sep = path.sep
16
+
17
+ const GLOBSTAR = Symbol('globstar **')
18
+ minimatch.GLOBSTAR = GLOBSTAR
19
+ const expand = require('brace-expansion')
20
+
21
+ const plTypes = {
22
+ '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
23
+ '?': { open: '(?:', close: ')?' },
24
+ '+': { open: '(?:', close: ')+' },
25
+ '*': { open: '(?:', close: ')*' },
26
+ '@': { open: '(?:', close: ')' }
27
+ }
28
+
29
+ // any single thing other than /
30
+ // don't need to escape / when using new RegExp()
31
+ const qmark = '[^/]'
32
+
33
+ // * => any number of characters
34
+ const star = qmark + '*?'
35
+
36
+ // ** when dots are allowed. Anything goes, except .. and .
37
+ // not (^ or / followed by one or two dots followed by $ or /),
38
+ // followed by anything, any number of times.
39
+ const twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
40
+
41
+ // not a ^ or / followed by a dot,
42
+ // followed by anything, any number of times.
43
+ const twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
44
+
45
+ // "abc" -> { a:true, b:true, c:true }
46
+ const charSet = s => s.split('').reduce((set, c) => {
47
+ set[c] = true
48
+ return set
49
+ }, {})
50
+
51
+ // characters that need to be escaped in RegExp.
52
+ const reSpecials = charSet('().*{}+?[]^$\\!')
53
+
54
+ // characters that indicate we have to add the pattern start
55
+ const addPatternStartSet = charSet('[.(')
56
+
57
+ // normalizes slashes.
58
+ const slashSplit = /\/+/
59
+
60
+ minimatch.filter = (pattern, options = {}) =>
61
+ (p, i, list) => minimatch(p, pattern, options)
62
+
63
+ const ext = (a, b = {}) => {
64
+ const t = {}
65
+ Object.keys(a).forEach(k => t[k] = a[k])
66
+ Object.keys(b).forEach(k => t[k] = b[k])
67
+ return t
68
+ }
69
+
70
+ minimatch.defaults = def => {
71
+ if (!def || typeof def !== 'object' || !Object.keys(def).length) {
72
+ return minimatch
73
+ }
74
+
75
+ const orig = minimatch
76
+
77
+ const m = (p, pattern, options) => orig(p, pattern, ext(def, options))
78
+ m.Minimatch = class Minimatch extends orig.Minimatch {
79
+ constructor (pattern, options) {
80
+ super(pattern, ext(def, options))
81
+ }
82
+ }
83
+ m.Minimatch.defaults = options => orig.defaults(ext(def, options)).Minimatch
84
+ m.filter = (pattern, options) => orig.filter(pattern, ext(def, options))
85
+ m.defaults = options => orig.defaults(ext(def, options))
86
+ m.makeRe = (pattern, options) => orig.makeRe(pattern, ext(def, options))
87
+ m.braceExpand = (pattern, options) => orig.braceExpand(pattern, ext(def, options))
88
+ m.match = (list, pattern, options) => orig.match(list, pattern, ext(def, options))
89
+
90
+ return m
91
+ }
92
+
93
+
94
+
95
+
96
+
97
+ // Brace expansion:
98
+ // a{b,c}d -> abd acd
99
+ // a{b,}c -> abc ac
100
+ // a{0..3}d -> a0d a1d a2d a3d
101
+ // a{b,c{d,e}f}g -> abg acdfg acefg
102
+ // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
103
+ //
104
+ // Invalid sets are not expanded.
105
+ // a{2..}b -> a{2..}b
106
+ // a{b}c -> a{b}c
107
+ minimatch.braceExpand = (pattern, options) => braceExpand(pattern, options)
108
+
109
+ const braceExpand = (pattern, options = {}) => {
110
+ assertValidPattern(pattern)
111
+
112
+ // Thanks to Yeting Li <https://github.com/yetingli> for
113
+ // improving this regexp to avoid a ReDOS vulnerability.
114
+ if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
115
+ // shortcut. no need to expand.
116
+ return [pattern]
117
+ }
118
+
119
+ return expand(pattern)
120
+ }
121
+
122
+ const MAX_PATTERN_LENGTH = 1024 * 64
123
+ const assertValidPattern = pattern => {
124
+ if (typeof pattern !== 'string') {
125
+ throw new TypeError('invalid pattern')
126
+ }
127
+
128
+ if (pattern.length > MAX_PATTERN_LENGTH) {
129
+ throw new TypeError('pattern is too long')
130
+ }
131
+ }
132
+
133
+ // parse a component of the expanded set.
134
+ // At this point, no pattern may contain "/" in it
135
+ // so we're going to return a 2d array, where each entry is the full
136
+ // pattern, split on '/', and then turned into a regular expression.
137
+ // A regexp is made at the end which joins each array with an
138
+ // escaped /, and another full one which joins each regexp with |.
139
+ //
140
+ // Following the lead of Bash 4.1, note that "**" only has special meaning
141
+ // when it is the *only* thing in a path portion. Otherwise, any series
142
+ // of * is equivalent to a single *. Globstar behavior is enabled by
143
+ // default, and can be disabled by setting options.noglobstar.
144
+ const SUBPARSE = Symbol('subparse')
145
+
146
+ minimatch.makeRe = (pattern, options) =>
147
+ new Minimatch(pattern, options || {}).makeRe()
148
+
149
+ minimatch.match = (list, pattern, options = {}) => {
150
+ const mm = new Minimatch(pattern, options)
151
+ list = list.filter(f => mm.match(f))
152
+ if (mm.options.nonull && !list.length) {
153
+ list.push(pattern)
154
+ }
155
+ return list
156
+ }
157
+
158
+ // replace stuff like \* with *
159
+ const globUnescape = s => s.replace(/\\(.)/g, '$1')
160
+ const regExpEscape = s => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
161
+
162
+ class Minimatch {
163
+ constructor (pattern, options) {
164
+ assertValidPattern(pattern)
165
+
166
+ if (!options) options = {}
167
+
168
+ this.options = options
169
+ this.set = []
170
+ this.pattern = pattern
171
+ this.windowsPathsNoEscape = !!options.windowsPathsNoEscape ||
172
+ options.allowWindowsEscape === false
173
+ if (this.windowsPathsNoEscape) {
174
+ this.pattern = this.pattern.replace(/\\/g, '/')
175
+ }
176
+ this.regexp = null
177
+ this.negate = false
178
+ this.comment = false
179
+ this.empty = false
180
+ this.partial = !!options.partial
181
+
182
+ // make the set of regexps etc.
183
+ this.make()
184
+ }
185
+
186
+ debug () {}
187
+
188
+ make () {
189
+ const pattern = this.pattern
190
+ const options = this.options
191
+
192
+ // empty patterns and comments match nothing.
193
+ if (!options.nocomment && pattern.charAt(0) === '#') {
194
+ this.comment = true
195
+ return
196
+ }
197
+ if (!pattern) {
198
+ this.empty = true
199
+ return
200
+ }
201
+
202
+ // step 1: figure out negation, etc.
203
+ this.parseNegate()
204
+
205
+ // step 2: expand braces
206
+ let set = this.globSet = this.braceExpand()
207
+
208
+ if (options.debug) this.debug = (...args) => console.error(...args)
209
+
210
+ this.debug(this.pattern, set)
211
+
212
+ // step 3: now we have a set, so turn each one into a series of path-portion
213
+ // matching patterns.
214
+ // These will be regexps, except in the case of "**", which is
215
+ // set to the GLOBSTAR object for globstar behavior,
216
+ // and will not contain any / characters
217
+ set = this.globParts = set.map(s => s.split(slashSplit))
218
+
219
+ this.debug(this.pattern, set)
220
+
221
+ // glob --> regexps
222
+ set = set.map((s, si, set) => s.map(this.parse, this))
223
+
224
+ this.debug(this.pattern, set)
225
+
226
+ // filter out everything that didn't compile properly.
227
+ set = set.filter(s => s.indexOf(false) === -1)
228
+
229
+ this.debug(this.pattern, set)
230
+
231
+ this.set = set
232
+ }
233
+
234
+ parseNegate () {
235
+ if (this.options.nonegate) return
236
+
237
+ const pattern = this.pattern
238
+ let negate = false
239
+ let negateOffset = 0
240
+
241
+ for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {
242
+ negate = !negate
243
+ negateOffset++
244
+ }
245
+
246
+ if (negateOffset) this.pattern = pattern.slice(negateOffset)
247
+ this.negate = negate
248
+ }
249
+
250
+ // set partial to true to test if, for example,
251
+ // "/a/b" matches the start of "/*/b/*/d"
252
+ // Partial means, if you run out of file before you run
253
+ // out of pattern, then that's fine, as long as all
254
+ // the parts match.
255
+ matchOne (file, pattern, partial) {
256
+ var options = this.options
257
+
258
+ this.debug('matchOne',
259
+ { 'this': this, file: file, pattern: pattern })
260
+
261
+ this.debug('matchOne', file.length, pattern.length)
262
+
263
+ for (var fi = 0,
264
+ pi = 0,
265
+ fl = file.length,
266
+ pl = pattern.length
267
+ ; (fi < fl) && (pi < pl)
268
+ ; fi++, pi++) {
269
+ this.debug('matchOne loop')
270
+ var p = pattern[pi]
271
+ var f = file[fi]
272
+
273
+ this.debug(pattern, p, f)
274
+
275
+ // should be impossible.
276
+ // some invalid regexp stuff in the set.
277
+ /* istanbul ignore if */
278
+ if (p === false) return false
279
+
280
+ if (p === GLOBSTAR) {
281
+ this.debug('GLOBSTAR', [pattern, p, f])
282
+
283
+ // "**"
284
+ // a/**/b/**/c would match the following:
285
+ // a/b/x/y/z/c
286
+ // a/x/y/z/b/c
287
+ // a/b/x/b/x/c
288
+ // a/b/c
289
+ // To do this, take the rest of the pattern after
290
+ // the **, and see if it would match the file remainder.
291
+ // If so, return success.
292
+ // If not, the ** "swallows" a segment, and try again.
293
+ // This is recursively awful.
294
+ //
295
+ // a/**/b/**/c matching a/b/x/y/z/c
296
+ // - a matches a
297
+ // - doublestar
298
+ // - matchOne(b/x/y/z/c, b/**/c)
299
+ // - b matches b
300
+ // - doublestar
301
+ // - matchOne(x/y/z/c, c) -> no
302
+ // - matchOne(y/z/c, c) -> no
303
+ // - matchOne(z/c, c) -> no
304
+ // - matchOne(c, c) yes, hit
305
+ var fr = fi
306
+ var pr = pi + 1
307
+ if (pr === pl) {
308
+ this.debug('** at the end')
309
+ // a ** at the end will just swallow the rest.
310
+ // We have found a match.
311
+ // however, it will not swallow /.x, unless
312
+ // options.dot is set.
313
+ // . and .. are *never* matched by **, for explosively
314
+ // exponential reasons.
315
+ for (; fi < fl; fi++) {
316
+ if (file[fi] === '.' || file[fi] === '..' ||
317
+ (!options.dot && file[fi].charAt(0) === '.')) return false
318
+ }
319
+ return true
320
+ }
321
+
322
+ // ok, let's see if we can swallow whatever we can.
323
+ while (fr < fl) {
324
+ var swallowee = file[fr]
325
+
326
+ this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
327
+
328
+ // XXX remove this slice. Just pass the start index.
329
+ if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
330
+ this.debug('globstar found match!', fr, fl, swallowee)
331
+ // found a match.
332
+ return true
333
+ } else {
334
+ // can't swallow "." or ".." ever.
335
+ // can only swallow ".foo" when explicitly asked.
336
+ if (swallowee === '.' || swallowee === '..' ||
337
+ (!options.dot && swallowee.charAt(0) === '.')) {
338
+ this.debug('dot detected!', file, fr, pattern, pr)
339
+ break
340
+ }
341
+
342
+ // ** swallows a segment, and continue.
343
+ this.debug('globstar swallow a segment, and continue')
344
+ fr++
345
+ }
346
+ }
347
+
348
+ // no match was found.
349
+ // However, in partial mode, we can't say this is necessarily over.
350
+ // If there's more *pattern* left, then
351
+ /* istanbul ignore if */
352
+ if (partial) {
353
+ // ran out of file
354
+ this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
355
+ if (fr === fl) return true
356
+ }
357
+ return false
358
+ }
359
+
360
+ // something other than **
361
+ // non-magic patterns just have to match exactly
362
+ // patterns with magic have been turned into regexps.
363
+ var hit
364
+ if (typeof p === 'string') {
365
+ hit = f === p
366
+ this.debug('string match', p, f, hit)
367
+ } else {
368
+ hit = f.match(p)
369
+ this.debug('pattern match', p, f, hit)
370
+ }
371
+
372
+ if (!hit) return false
373
+ }
374
+
375
+ // Note: ending in / means that we'll get a final ""
376
+ // at the end of the pattern. This can only match a
377
+ // corresponding "" at the end of the file.
378
+ // If the file ends in /, then it can only match a
379
+ // a pattern that ends in /, unless the pattern just
380
+ // doesn't have any more for it. But, a/b/ should *not*
381
+ // match "a/b/*", even though "" matches against the
382
+ // [^/]*? pattern, except in partial mode, where it might
383
+ // simply not be reached yet.
384
+ // However, a/b/ should still satisfy a/*
385
+
386
+ // now either we fell off the end of the pattern, or we're done.
387
+ if (fi === fl && pi === pl) {
388
+ // ran out of pattern and filename at the same time.
389
+ // an exact hit!
390
+ return true
391
+ } else if (fi === fl) {
392
+ // ran out of file, but still had pattern left.
393
+ // this is ok if we're doing the match as part of
394
+ // a glob fs traversal.
395
+ return partial
396
+ } else /* istanbul ignore else */ if (pi === pl) {
397
+ // ran out of pattern, still have file left.
398
+ // this is only acceptable if we're on the very last
399
+ // empty segment of a file with a trailing slash.
400
+ // a/* should match a/b/
401
+ return (fi === fl - 1) && (file[fi] === '')
402
+ }
403
+
404
+ // should be unreachable.
405
+ /* istanbul ignore next */
406
+ throw new Error('wtf?')
407
+ }
408
+
409
+ braceExpand () {
410
+ return braceExpand(this.pattern, this.options)
411
+ }
412
+
413
+ parse (pattern, isSub) {
414
+ assertValidPattern(pattern)
415
+
416
+ const options = this.options
417
+
418
+ // shortcuts
419
+ if (pattern === '**') {
420
+ if (!options.noglobstar)
421
+ return GLOBSTAR
422
+ else
423
+ pattern = '*'
424
+ }
425
+ if (pattern === '') return ''
426
+
427
+ let re = ''
428
+ let hasMagic = !!options.nocase
429
+ let escaping = false
430
+ // ? => one single character
431
+ const patternListStack = []
432
+ const negativeLists = []
433
+ let stateChar
434
+ let inClass = false
435
+ let reClassStart = -1
436
+ let classStart = -1
437
+ let cs
438
+ let pl
439
+ let sp
440
+ // . and .. never match anything that doesn't start with .,
441
+ // even when options.dot is set.
442
+ const patternStart = pattern.charAt(0) === '.' ? '' // anything
443
+ // not (start or / followed by . or .. followed by / or end)
444
+ : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
445
+ : '(?!\\.)'
446
+
447
+ const clearStateChar = () => {
448
+ if (stateChar) {
449
+ // we had some state-tracking character
450
+ // that wasn't consumed by this pass.
451
+ switch (stateChar) {
452
+ case '*':
453
+ re += star
454
+ hasMagic = true
455
+ break
456
+ case '?':
457
+ re += qmark
458
+ hasMagic = true
459
+ break
460
+ default:
461
+ re += '\\' + stateChar
462
+ break
463
+ }
464
+ this.debug('clearStateChar %j %j', stateChar, re)
465
+ stateChar = false
466
+ }
467
+ }
468
+
469
+ for (let i = 0, c; (i < pattern.length) && (c = pattern.charAt(i)); i++) {
470
+ this.debug('%s\t%s %s %j', pattern, i, re, c)
471
+
472
+ // skip over any that are escaped.
473
+ if (escaping) {
474
+ /* istanbul ignore next - completely not allowed, even escaped. */
475
+ if (c === '/') {
476
+ return false
477
+ }
478
+
479
+ if (reSpecials[c]) {
480
+ re += '\\'
481
+ }
482
+ re += c
483
+ escaping = false
484
+ continue
485
+ }
486
+
487
+ switch (c) {
488
+ /* istanbul ignore next */
489
+ case '/': {
490
+ // Should already be path-split by now.
491
+ return false
492
+ }
493
+
494
+ case '\\':
495
+ clearStateChar()
496
+ escaping = true
497
+ continue
498
+
499
+ // the various stateChar values
500
+ // for the "extglob" stuff.
501
+ case '?':
502
+ case '*':
503
+ case '+':
504
+ case '@':
505
+ case '!':
506
+ this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
507
+
508
+ // all of those are literals inside a class, except that
509
+ // the glob [!a] means [^a] in regexp
510
+ if (inClass) {
511
+ this.debug(' in class')
512
+ if (c === '!' && i === classStart + 1) c = '^'
513
+ re += c
514
+ continue
515
+ }
516
+
517
+ // if we already have a stateChar, then it means
518
+ // that there was something like ** or +? in there.
519
+ // Handle the stateChar, then proceed with this one.
520
+ this.debug('call clearStateChar %j', stateChar)
521
+ clearStateChar()
522
+ stateChar = c
523
+ // if extglob is disabled, then +(asdf|foo) isn't a thing.
524
+ // just clear the statechar *now*, rather than even diving into
525
+ // the patternList stuff.
526
+ if (options.noext) clearStateChar()
527
+ continue
528
+
529
+ case '(':
530
+ if (inClass) {
531
+ re += '('
532
+ continue
533
+ }
534
+
535
+ if (!stateChar) {
536
+ re += '\\('
537
+ continue
538
+ }
539
+
540
+ patternListStack.push({
541
+ type: stateChar,
542
+ start: i - 1,
543
+ reStart: re.length,
544
+ open: plTypes[stateChar].open,
545
+ close: plTypes[stateChar].close
546
+ })
547
+ // negation is (?:(?!js)[^/]*)
548
+ re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
549
+ this.debug('plType %j %j', stateChar, re)
550
+ stateChar = false
551
+ continue
552
+
553
+ case ')':
554
+ if (inClass || !patternListStack.length) {
555
+ re += '\\)'
556
+ continue
557
+ }
558
+
559
+ clearStateChar()
560
+ hasMagic = true
561
+ pl = patternListStack.pop()
562
+ // negation is (?:(?!js)[^/]*)
563
+ // The others are (?:<pattern>)<type>
564
+ re += pl.close
565
+ if (pl.type === '!') {
566
+ negativeLists.push(pl)
567
+ }
568
+ pl.reEnd = re.length
569
+ continue
570
+
571
+ case '|':
572
+ if (inClass || !patternListStack.length) {
573
+ re += '\\|'
574
+ continue
575
+ }
576
+
577
+ clearStateChar()
578
+ re += '|'
579
+ continue
580
+
581
+ // these are mostly the same in regexp and glob
582
+ case '[':
583
+ // swallow any state-tracking char before the [
584
+ clearStateChar()
585
+
586
+ if (inClass) {
587
+ re += '\\' + c
588
+ continue
589
+ }
590
+
591
+ inClass = true
592
+ classStart = i
593
+ reClassStart = re.length
594
+ re += c
595
+ continue
596
+
597
+ case ']':
598
+ // a right bracket shall lose its special
599
+ // meaning and represent itself in
600
+ // a bracket expression if it occurs
601
+ // first in the list. -- POSIX.2 2.8.3.2
602
+ if (i === classStart + 1 || !inClass) {
603
+ re += '\\' + c
604
+ continue
605
+ }
606
+
607
+ // handle the case where we left a class open.
608
+ // "[z-a]" is valid, equivalent to "\[z-a\]"
609
+ // split where the last [ was, make sure we don't have
610
+ // an invalid re. if so, re-walk the contents of the
611
+ // would-be class to re-translate any characters that
612
+ // were passed through as-is
613
+ // TODO: It would probably be faster to determine this
614
+ // without a try/catch and a new RegExp, but it's tricky
615
+ // to do safely. For now, this is safe and works.
616
+ cs = pattern.substring(classStart + 1, i)
617
+ try {
618
+ RegExp('[' + cs + ']')
619
+ } catch (er) {
620
+ // not a valid class!
621
+ sp = this.parse(cs, SUBPARSE)
622
+ re = re.substring(0, reClassStart) + '\\[' + sp[0] + '\\]'
623
+ hasMagic = hasMagic || sp[1]
624
+ inClass = false
625
+ continue
626
+ }
627
+
628
+ // finish up the class.
629
+ hasMagic = true
630
+ inClass = false
631
+ re += c
632
+ continue
633
+
634
+ default:
635
+ // swallow any state char that wasn't consumed
636
+ clearStateChar()
637
+
638
+ if (reSpecials[c] && !(c === '^' && inClass)) {
639
+ re += '\\'
640
+ }
641
+
642
+ re += c
643
+ break
644
+
645
+ } // switch
646
+ } // for
647
+
648
+ // handle the case where we left a class open.
649
+ // "[abc" is valid, equivalent to "\[abc"
650
+ if (inClass) {
651
+ // split where the last [ was, and escape it
652
+ // this is a huge pita. We now have to re-walk
653
+ // the contents of the would-be class to re-translate
654
+ // any characters that were passed through as-is
655
+ cs = pattern.slice(classStart + 1)
656
+ sp = this.parse(cs, SUBPARSE)
657
+ re = re.substring(0, reClassStart) + '\\[' + sp[0]
658
+ hasMagic = hasMagic || sp[1]
659
+ }
660
+
661
+ // handle the case where we had a +( thing at the *end*
662
+ // of the pattern.
663
+ // each pattern list stack adds 3 chars, and we need to go through
664
+ // and escape any | chars that were passed through as-is for the regexp.
665
+ // Go through and escape them, taking care not to double-escape any
666
+ // | chars that were already escaped.
667
+ for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
668
+ let tail
669
+ tail = re.slice(pl.reStart + pl.open.length)
670
+ this.debug('setting tail', re, pl)
671
+ // maybe some even number of \, then maybe 1 \, followed by a |
672
+ tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, (_, $1, $2) => {
673
+ /* istanbul ignore else - should already be done */
674
+ if (!$2) {
675
+ // the | isn't already escaped, so escape it.
676
+ $2 = '\\'
677
+ }
678
+
679
+ // need to escape all those slashes *again*, without escaping the
680
+ // one that we need for escaping the | character. As it works out,
681
+ // escaping an even number of slashes can be done by simply repeating
682
+ // it exactly after itself. That's why this trick works.
683
+ //
684
+ // I am sorry that you have to see this.
685
+ return $1 + $1 + $2 + '|'
686
+ })
687
+
688
+ this.debug('tail=%j\n %s', tail, tail, pl, re)
689
+ const t = pl.type === '*' ? star
690
+ : pl.type === '?' ? qmark
691
+ : '\\' + pl.type
692
+
693
+ hasMagic = true
694
+ re = re.slice(0, pl.reStart) + t + '\\(' + tail
695
+ }
696
+
697
+ // handle trailing things that only matter at the very end.
698
+ clearStateChar()
699
+ if (escaping) {
700
+ // trailing \\
701
+ re += '\\\\'
702
+ }
703
+
704
+ // only need to apply the nodot start if the re starts with
705
+ // something that could conceivably capture a dot
706
+ const addPatternStart = addPatternStartSet[re.charAt(0)]
707
+
708
+ // Hack to work around lack of negative lookbehind in JS
709
+ // A pattern like: *.!(x).!(y|z) needs to ensure that a name
710
+ // like 'a.xyz.yz' doesn't match. So, the first negative
711
+ // lookahead, has to look ALL the way ahead, to the end of
712
+ // the pattern.
713
+ for (let n = negativeLists.length - 1; n > -1; n--) {
714
+ const nl = negativeLists[n]
715
+
716
+ const nlBefore = re.slice(0, nl.reStart)
717
+ const nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
718
+ let nlAfter = re.slice(nl.reEnd)
719
+ const nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + nlAfter
720
+
721
+ // Handle nested stuff like *(*.js|!(*.json)), where open parens
722
+ // mean that we should *not* include the ) in the bit that is considered
723
+ // "after" the negated section.
724
+ const openParensBefore = nlBefore.split('(').length - 1
725
+ let cleanAfter = nlAfter
726
+ for (let i = 0; i < openParensBefore; i++) {
727
+ cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
728
+ }
729
+ nlAfter = cleanAfter
730
+
731
+ const dollar = nlAfter === '' && isSub !== SUBPARSE ? '$' : ''
732
+ re = nlBefore + nlFirst + nlAfter + dollar + nlLast
733
+ }
734
+
735
+ // if the re is not "" at this point, then we need to make sure
736
+ // it doesn't match against an empty path part.
737
+ // Otherwise a/* will match a/, which it should not.
738
+ if (re !== '' && hasMagic) {
739
+ re = '(?=.)' + re
740
+ }
741
+
742
+ if (addPatternStart) {
743
+ re = patternStart + re
744
+ }
745
+
746
+ // parsing just a piece of a larger pattern.
747
+ if (isSub === SUBPARSE) {
748
+ return [re, hasMagic]
749
+ }
750
+
751
+ // skip the regexp for non-magical patterns
752
+ // unescape anything in it, though, so that it'll be
753
+ // an exact match against a file etc.
754
+ if (!hasMagic) {
755
+ return globUnescape(pattern)
756
+ }
757
+
758
+ const flags = options.nocase ? 'i' : ''
759
+ try {
760
+ return Object.assign(new RegExp('^' + re + '$', flags), {
761
+ _glob: pattern,
762
+ _src: re,
763
+ })
764
+ } catch (er) /* istanbul ignore next - should be impossible */ {
765
+ // If it was an invalid regular expression, then it can't match
766
+ // anything. This trick looks for a character after the end of
767
+ // the string, which is of course impossible, except in multi-line
768
+ // mode, but it's not a /m regex.
769
+ return new RegExp('$.')
770
+ }
771
+ }
772
+
773
+ makeRe () {
774
+ if (this.regexp || this.regexp === false) return this.regexp
775
+
776
+ // at this point, this.set is a 2d array of partial
777
+ // pattern strings, or "**".
778
+ //
779
+ // It's better to use .match(). This function shouldn't
780
+ // be used, really, but it's pretty convenient sometimes,
781
+ // when you just want to work with a regex.
782
+ const set = this.set
783
+
784
+ if (!set.length) {
785
+ this.regexp = false
786
+ return this.regexp
787
+ }
788
+ const options = this.options
789
+
790
+ const twoStar = options.noglobstar ? star
791
+ : options.dot ? twoStarDot
792
+ : twoStarNoDot
793
+ const flags = options.nocase ? 'i' : ''
794
+
795
+ // coalesce globstars and regexpify non-globstar patterns
796
+ // if it's the only item, then we just do one twoStar
797
+ // if it's the first, and there are more, prepend (\/|twoStar\/)? to next
798
+ // if it's the last, append (\/twoStar|) to previous
799
+ // if it's in the middle, append (\/|\/twoStar\/) to previous
800
+ // then filter out GLOBSTAR symbols
801
+ let re = set.map(pattern => {
802
+ pattern = pattern.map(p =>
803
+ typeof p === 'string' ? regExpEscape(p)
804
+ : p === GLOBSTAR ? GLOBSTAR
805
+ : p._src
806
+ ).reduce((set, p) => {
807
+ if (!(set[set.length - 1] === GLOBSTAR && p === GLOBSTAR)) {
808
+ set.push(p)
809
+ }
810
+ return set
811
+ }, [])
812
+ pattern.forEach((p, i) => {
813
+ if (p !== GLOBSTAR || pattern[i-1] === GLOBSTAR) {
814
+ return
815
+ }
816
+ if (i === 0) {
817
+ if (pattern.length > 1) {
818
+ pattern[i+1] = '(?:\\\/|' + twoStar + '\\\/)?' + pattern[i+1]
819
+ } else {
820
+ pattern[i] = twoStar
821
+ }
822
+ } else if (i === pattern.length - 1) {
823
+ pattern[i-1] += '(?:\\\/|' + twoStar + ')?'
824
+ } else {
825
+ pattern[i-1] += '(?:\\\/|\\\/' + twoStar + '\\\/)' + pattern[i+1]
826
+ pattern[i+1] = GLOBSTAR
827
+ }
828
+ })
829
+ return pattern.filter(p => p !== GLOBSTAR).join('/')
830
+ }).join('|')
831
+
832
+ // must match entire pattern
833
+ // ending in a * or ** will make it less strict.
834
+ re = '^(?:' + re + ')$'
835
+
836
+ // can match anything, as long as it's not this.
837
+ if (this.negate) re = '^(?!' + re + ').*$'
838
+
839
+ try {
840
+ this.regexp = new RegExp(re, flags)
841
+ } catch (ex) /* istanbul ignore next - should be impossible */ {
842
+ this.regexp = false
843
+ }
844
+ return this.regexp
845
+ }
846
+
847
+ match (f, partial = this.partial) {
848
+ this.debug('match', f, this.pattern)
849
+ // short-circuit in the case of busted things.
850
+ // comments, etc.
851
+ if (this.comment) return false
852
+ if (this.empty) return f === ''
853
+
854
+ if (f === '/' && partial) return true
855
+
856
+ const options = this.options
857
+
858
+ // windows: need to use /, not \
859
+ if (path.sep !== '/') {
860
+ f = f.split(path.sep).join('/')
861
+ }
862
+
863
+ // treat the test path as a set of pathparts.
864
+ f = f.split(slashSplit)
865
+ this.debug(this.pattern, 'split', f)
866
+
867
+ // just ONE of the pattern sets in this.set needs to match
868
+ // in order for it to be valid. If negating, then just one
869
+ // match means that we have failed.
870
+ // Either way, return on the first hit.
871
+
872
+ const set = this.set
873
+ this.debug(this.pattern, 'set', set)
874
+
875
+ // Find the basename of the path by looking for the last non-empty segment
876
+ let filename
877
+ for (let i = f.length - 1; i >= 0; i--) {
878
+ filename = f[i]
879
+ if (filename) break
880
+ }
881
+
882
+ for (let i = 0; i < set.length; i++) {
883
+ const pattern = set[i]
884
+ let file = f
885
+ if (options.matchBase && pattern.length === 1) {
886
+ file = [filename]
887
+ }
888
+ const hit = this.matchOne(file, pattern, partial)
889
+ if (hit) {
890
+ if (options.flipNegate) return true
891
+ return !this.negate
892
+ }
893
+ }
894
+
895
+ // didn't get any hits. this is success if it's a negative
896
+ // pattern, failure otherwise.
897
+ if (options.flipNegate) return false
898
+ return this.negate
899
+ }
900
+
901
+ static defaults (def) {
902
+ return minimatch.defaults(def).Minimatch
903
+ }
904
+ }
905
+
906
+ minimatch.Minimatch = Minimatch