@maizzle/framework 6.0.0-rc.9 → 6.0.0

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 (623) hide show
  1. package/README.md +3 -3
  2. package/bin/maizzle.mjs +1 -1
  3. package/dist/build.d.ts +38 -0
  4. package/dist/build.d.ts.map +1 -0
  5. package/dist/build.js +234 -0
  6. package/dist/build.js.map +1 -0
  7. package/dist/components/Body.vue +32 -3
  8. package/dist/components/Button.vue +91 -62
  9. package/dist/components/CodeBlock.vue +6 -4
  10. package/dist/components/CodeInline.vue +77 -6
  11. package/dist/components/Column.vue +67 -31
  12. package/dist/components/Container.vue +73 -12
  13. package/dist/components/Font.vue +96 -0
  14. package/dist/components/Head.vue +1 -1
  15. package/dist/components/Heading.vue +1 -1
  16. package/dist/components/Hr.vue +33 -0
  17. package/dist/components/Html.vue +36 -3
  18. package/dist/components/Img.vue +332 -0
  19. package/dist/components/Layout.vue +71 -21
  20. package/dist/components/Link.vue +1 -1
  21. package/dist/components/Markdown.vue +51 -24
  22. package/dist/components/MarkdownLayout.vue +39 -0
  23. package/dist/components/NotPlaintext.vue +14 -0
  24. package/dist/components/Outlook.vue +38 -11
  25. package/dist/components/OutlookBg.vue +241 -0
  26. package/dist/components/Plaintext.vue +14 -0
  27. package/dist/components/Preheader.vue +35 -10
  28. package/dist/components/QrCode.vue +157 -0
  29. package/dist/components/Raw.vue +28 -0
  30. package/dist/components/Row.vue +115 -22
  31. package/dist/components/Section.vue +65 -26
  32. package/dist/components/Spacer.vue +35 -29
  33. package/dist/components/Tailwind.vue +45 -0
  34. package/dist/components/Text.vue +3 -3
  35. package/dist/components/Vml.vue +207 -94
  36. package/dist/components/utils.d.ts +53 -0
  37. package/dist/components/utils.d.ts.map +1 -0
  38. package/dist/components/utils.js +80 -0
  39. package/dist/components/utils.js.map +1 -0
  40. package/dist/components/utils.ts +102 -0
  41. package/dist/composables/defineConfig.d.ts +13 -0
  42. package/dist/composables/defineConfig.d.ts.map +1 -0
  43. package/dist/composables/{defineConfig.mjs → defineConfig.js} +7 -9
  44. package/dist/composables/defineConfig.js.map +1 -0
  45. package/dist/composables/renderContext.d.ts +37 -0
  46. package/dist/composables/renderContext.d.ts.map +1 -0
  47. package/dist/composables/renderContext.js +6 -0
  48. package/dist/composables/renderContext.js.map +1 -0
  49. package/dist/composables/useBaseUrl.d.ts +19 -0
  50. package/dist/composables/useBaseUrl.d.ts.map +1 -0
  51. package/dist/composables/useBaseUrl.js +26 -0
  52. package/dist/composables/useBaseUrl.js.map +1 -0
  53. package/dist/composables/useConfig.d.ts +16 -0
  54. package/dist/composables/useConfig.d.ts.map +1 -0
  55. package/dist/composables/useConfig.js +19 -0
  56. package/dist/composables/useConfig.js.map +1 -0
  57. package/dist/composables/useCurrentTemplate.d.ts +31 -0
  58. package/dist/composables/useCurrentTemplate.d.ts.map +1 -0
  59. package/dist/composables/useCurrentTemplate.js +42 -0
  60. package/dist/composables/useCurrentTemplate.js.map +1 -0
  61. package/dist/composables/{useDoctype.d.mts → useDoctype.d.ts} +1 -1
  62. package/dist/composables/useDoctype.d.ts.map +1 -0
  63. package/dist/composables/{useDoctype.mjs → useDoctype.js} +3 -4
  64. package/dist/composables/useDoctype.js.map +1 -0
  65. package/dist/composables/{useEvent.d.mts → useEvent.d.ts} +3 -3
  66. package/dist/composables/useEvent.d.ts.map +1 -0
  67. package/dist/composables/{useEvent.mjs → useEvent.js} +4 -5
  68. package/dist/composables/useEvent.js.map +1 -0
  69. package/dist/composables/useFont.d.ts +50 -0
  70. package/dist/composables/useFont.d.ts.map +1 -0
  71. package/dist/composables/useFont.js +92 -0
  72. package/dist/composables/useFont.js.map +1 -0
  73. package/dist/composables/useOutlookFallback.d.ts +21 -0
  74. package/dist/composables/useOutlookFallback.d.ts.map +1 -0
  75. package/dist/composables/useOutlookFallback.js +29 -0
  76. package/dist/composables/useOutlookFallback.js.map +1 -0
  77. package/dist/composables/useOutputPath.d.ts +17 -0
  78. package/dist/composables/useOutputPath.d.ts.map +1 -0
  79. package/dist/composables/useOutputPath.js +23 -0
  80. package/dist/composables/useOutputPath.js.map +1 -0
  81. package/dist/composables/{usePlaintext.d.mts → usePlaintext.d.ts} +3 -1
  82. package/dist/composables/usePlaintext.d.ts.map +1 -0
  83. package/dist/composables/{usePlaintext.mjs → usePlaintext.js} +4 -4
  84. package/dist/composables/usePlaintext.js.map +1 -0
  85. package/dist/composables/usePreheader.d.ts +25 -0
  86. package/dist/composables/usePreheader.d.ts.map +1 -0
  87. package/dist/composables/usePreheader.js +28 -0
  88. package/dist/composables/usePreheader.js.map +1 -0
  89. package/dist/composables/useTransformers.d.ts +34 -0
  90. package/dist/composables/useTransformers.d.ts.map +1 -0
  91. package/dist/composables/useTransformers.js +48 -0
  92. package/dist/composables/useTransformers.js.map +1 -0
  93. package/dist/composables/useUrlQuery.d.ts +19 -0
  94. package/dist/composables/useUrlQuery.d.ts.map +1 -0
  95. package/dist/composables/useUrlQuery.js +26 -0
  96. package/dist/composables/useUrlQuery.js.map +1 -0
  97. package/dist/config/{defaults.d.mts → defaults.d.ts} +2 -2
  98. package/dist/config/defaults.d.ts.map +1 -0
  99. package/dist/config/{defaults.mjs → defaults.js} +10 -6
  100. package/dist/config/defaults.js.map +1 -0
  101. package/dist/config/index.d.ts +24 -0
  102. package/dist/config/index.d.ts.map +1 -0
  103. package/dist/config/{index.mjs → index.js} +45 -14
  104. package/dist/config/index.js.map +1 -0
  105. package/dist/events/{index.d.mts → index.d.ts} +35 -12
  106. package/dist/events/index.d.ts.map +1 -0
  107. package/dist/events/{index.mjs → index.js} +31 -13
  108. package/dist/events/index.js.map +1 -0
  109. package/dist/index.d.ts +41 -0
  110. package/dist/index.js +40 -0
  111. package/dist/{plaintext.d.mts → plaintext.d.ts} +1 -1
  112. package/dist/plaintext.d.ts.map +1 -0
  113. package/dist/{plaintext.mjs → plaintext.js} +4 -5
  114. package/dist/plaintext.js.map +1 -0
  115. package/dist/{plugin.d.mts → plugin.d.ts} +2 -2
  116. package/dist/plugin.d.ts.map +1 -0
  117. package/dist/{plugin.mjs → plugin.js} +8 -9
  118. package/dist/plugin.js.map +1 -0
  119. package/dist/plugins/postcss/{mergeMediaQueries.d.mts → mergeMediaQueries.d.ts} +2 -2
  120. package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -0
  121. package/dist/plugins/postcss/{mergeMediaQueries.mjs → mergeMediaQueries.js} +2 -3
  122. package/dist/plugins/postcss/mergeMediaQueries.js.map +1 -0
  123. package/dist/plugins/postcss/{pruneVars.d.mts → pruneVars.d.ts} +1 -1
  124. package/dist/plugins/postcss/pruneVars.d.ts.map +1 -0
  125. package/dist/plugins/postcss/{pruneVars.mjs → pruneVars.js} +2 -2
  126. package/dist/plugins/postcss/pruneVars.js.map +1 -0
  127. package/dist/plugins/postcss/quoteFontFamilies.d.ts +13 -0
  128. package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -0
  129. package/dist/plugins/postcss/quoteFontFamilies.js +84 -0
  130. package/dist/plugins/postcss/quoteFontFamilies.js.map +1 -0
  131. package/dist/plugins/postcss/{removeDeclarations.d.mts → removeDeclarations.d.ts} +1 -1
  132. package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -0
  133. package/dist/plugins/postcss/{removeDeclarations.mjs → removeDeclarations.js} +2 -2
  134. package/dist/plugins/postcss/removeDeclarations.js.map +1 -0
  135. package/dist/plugins/postcss/resolveMaizzleImports.d.ts +16 -0
  136. package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -0
  137. package/dist/plugins/postcss/resolveMaizzleImports.js +39 -0
  138. package/dist/plugins/postcss/resolveMaizzleImports.js.map +1 -0
  139. package/dist/plugins/postcss/resolveProps.d.ts +8 -0
  140. package/dist/plugins/postcss/resolveProps.d.ts.map +1 -0
  141. package/dist/plugins/postcss/resolveProps.js +155 -0
  142. package/dist/plugins/postcss/resolveProps.js.map +1 -0
  143. package/dist/plugins/postcss/{tailwindCleanup.d.mts → tailwindCleanup.d.ts} +2 -2
  144. package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -0
  145. package/dist/plugins/postcss/{tailwindCleanup.mjs → tailwindCleanup.js} +5 -3
  146. package/dist/plugins/postcss/tailwindCleanup.js.map +1 -0
  147. package/dist/prepare.d.ts +17 -0
  148. package/dist/prepare.d.ts.map +1 -0
  149. package/dist/prepare.js +44 -0
  150. package/dist/prepare.js.map +1 -0
  151. package/dist/render/active.d.ts +8 -0
  152. package/dist/render/active.d.ts.map +1 -0
  153. package/dist/render/active.js +12 -0
  154. package/dist/render/active.js.map +1 -0
  155. package/dist/render/buildTemplate.d.ts +49 -0
  156. package/dist/render/buildTemplate.d.ts.map +1 -0
  157. package/dist/render/buildTemplate.js +141 -0
  158. package/dist/render/buildTemplate.js.map +1 -0
  159. package/dist/render/{createRenderer.d.mts → createRenderer.d.ts} +14 -6
  160. package/dist/render/createRenderer.d.ts.map +1 -0
  161. package/dist/render/createRenderer.js +468 -0
  162. package/dist/render/createRenderer.js.map +1 -0
  163. package/dist/render/index.d.ts +18 -0
  164. package/dist/render/index.d.ts.map +1 -0
  165. package/dist/render/index.js +59 -0
  166. package/dist/render/index.js.map +1 -0
  167. package/dist/render/injectFonts.d.ts +15 -0
  168. package/dist/render/injectFonts.d.ts.map +1 -0
  169. package/dist/render/injectFonts.js +45 -0
  170. package/dist/render/injectFonts.js.map +1 -0
  171. package/dist/render/parallel/buildWorker.d.ts +31 -0
  172. package/dist/render/parallel/buildWorker.d.ts.map +1 -0
  173. package/dist/render/parallel/buildWorker.js +66 -0
  174. package/dist/render/parallel/buildWorker.js.map +1 -0
  175. package/dist/render/parallel/worker.mjs +28 -0
  176. package/dist/render/plugins/codeBlockExtract.d.ts +14 -0
  177. package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -0
  178. package/dist/render/plugins/codeBlockExtract.js +38 -0
  179. package/dist/render/plugins/codeBlockExtract.js.map +1 -0
  180. package/dist/render/plugins/markdownExtract.d.ts +12 -0
  181. package/dist/render/plugins/markdownExtract.d.ts.map +1 -0
  182. package/dist/render/plugins/markdownExtract.js +49 -0
  183. package/dist/render/plugins/markdownExtract.js.map +1 -0
  184. package/dist/render/plugins/rawExtract.d.ts +14 -0
  185. package/dist/render/plugins/rawExtract.d.ts.map +1 -0
  186. package/dist/render/plugins/rawExtract.js +34 -0
  187. package/dist/render/plugins/rawExtract.js.map +1 -0
  188. package/dist/render/plugins/rowSourceLocation.d.ts +18 -0
  189. package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -0
  190. package/dist/render/plugins/rowSourceLocation.js +45 -0
  191. package/dist/render/plugins/rowSourceLocation.js.map +1 -0
  192. package/dist/{serve.d.mts → serve.d.ts} +5 -3
  193. package/dist/serve.d.ts.map +1 -0
  194. package/dist/{serve.mjs → serve.js} +201 -107
  195. package/dist/serve.js.map +1 -0
  196. package/dist/server/compatibility.d.ts +59 -0
  197. package/dist/server/compatibility.d.ts.map +1 -0
  198. package/dist/server/compatibility.js +959 -0
  199. package/dist/server/compatibility.js.map +1 -0
  200. package/dist/server/{email.d.mts → email.d.ts} +2 -2
  201. package/dist/server/email.d.ts.map +1 -0
  202. package/dist/server/{email.mjs → email.js} +2 -3
  203. package/dist/server/email.js.map +1 -0
  204. package/dist/server/linter.d.ts +20 -0
  205. package/dist/server/linter.d.ts.map +1 -0
  206. package/dist/server/linter.js +345 -0
  207. package/dist/server/linter.js.map +1 -0
  208. package/dist/server/sfc-utils.d.ts +21 -0
  209. package/dist/server/sfc-utils.d.ts.map +1 -0
  210. package/dist/server/sfc-utils.js +198 -0
  211. package/dist/server/sfc-utils.js.map +1 -0
  212. package/dist/server/ui/.vite/deps/@lucide_vue.js +44967 -0
  213. package/dist/server/ui/.vite/deps/@lucide_vue.js.map +1 -0
  214. package/dist/server/ui/.vite/deps/@vueuse_core.js +8155 -0
  215. package/dist/server/ui/.vite/deps/@vueuse_core.js.map +1 -0
  216. package/dist/server/ui/.vite/deps/@vueuse_shared.js +1859 -0
  217. package/dist/server/ui/.vite/deps/@vueuse_shared.js.map +1 -0
  218. package/dist/server/ui/.vite/deps/_metadata.json +78 -0
  219. package/dist/server/ui/.vite/deps/chunk-EAsCxrDo.js +14 -0
  220. package/dist/server/ui/.vite/deps/class-variance-authority.js +57 -0
  221. package/dist/server/ui/.vite/deps/class-variance-authority.js.map +1 -0
  222. package/dist/server/ui/.vite/deps/clsx.js +18 -0
  223. package/dist/server/ui/.vite/deps/clsx.js.map +1 -0
  224. package/dist/server/ui/.vite/deps/culori.js +4312 -0
  225. package/dist/server/ui/.vite/deps/culori.js.map +1 -0
  226. package/dist/server/ui/.vite/deps/package.json +3 -0
  227. package/dist/server/ui/.vite/deps/reka-ui.js +44464 -0
  228. package/dist/server/ui/.vite/deps/reka-ui.js.map +1 -0
  229. package/dist/server/ui/.vite/deps/tailwind-merge.js +3458 -0
  230. package/dist/server/ui/.vite/deps/tailwind-merge.js.map +1 -0
  231. package/dist/server/ui/.vite/deps/vue-router.js +6383 -0
  232. package/dist/server/ui/.vite/deps/vue-router.js.map +1 -0
  233. package/dist/server/ui/.vite/deps/vue.js +2 -0
  234. package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-DaqjATE_.js +8785 -0
  235. package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-DaqjATE_.js.map +1 -0
  236. package/dist/server/ui/App.vue +106 -66
  237. package/dist/server/ui/components/SidebarClose.vue +12 -0
  238. package/dist/server/ui/components/ui/checkbox/Checkbox.vue +1 -1
  239. package/dist/server/ui/components/ui/command/Command.vue +5 -1
  240. package/dist/server/ui/components/ui/command/CommandInput.vue +2 -2
  241. package/dist/server/ui/components/ui/dialog/DialogContent.vue +1 -1
  242. package/dist/server/ui/components/ui/dialog/DialogScrollContent.vue +1 -1
  243. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +1 -1
  244. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +1 -1
  245. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +1 -1
  246. package/dist/server/ui/components/ui/input/Input.vue +1 -1
  247. package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
  248. package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +2 -2
  249. package/dist/server/ui/components/ui/tags-input/TagsInputInput.vue +1 -1
  250. package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +1 -1
  251. package/dist/server/ui/lib/emulated-dark-mode.ts +146 -0
  252. package/dist/server/ui/main.css +25 -0
  253. package/dist/server/ui/pages/Home.vue +1 -1
  254. package/dist/server/ui/pages/Preview.vue +377 -186
  255. package/dist/server/ui/vite-env.d.ts +1 -0
  256. package/dist/tests/render/_helpers.d.ts +6 -0
  257. package/dist/tests/render/_helpers.d.ts.map +1 -0
  258. package/dist/tests/render/_helpers.js +16 -0
  259. package/dist/tests/render/_helpers.js.map +1 -0
  260. package/dist/transformers/addAttributes.d.ts +42 -0
  261. package/dist/transformers/addAttributes.d.ts.map +1 -0
  262. package/dist/transformers/{addAttributes.mjs → addAttributes.js} +40 -24
  263. package/dist/transformers/addAttributes.js.map +1 -0
  264. package/dist/transformers/attributeToStyle.d.ts +38 -0
  265. package/dist/transformers/attributeToStyle.d.ts.map +1 -0
  266. package/dist/transformers/attributeToStyle.js +94 -0
  267. package/dist/transformers/attributeToStyle.js.map +1 -0
  268. package/dist/transformers/base.d.ts +71 -0
  269. package/dist/transformers/base.d.ts.map +1 -0
  270. package/dist/transformers/{base.mjs → base.js} +65 -40
  271. package/dist/transformers/base.js.map +1 -0
  272. package/dist/transformers/columnWidth.d.ts +31 -0
  273. package/dist/transformers/columnWidth.d.ts.map +1 -0
  274. package/dist/transformers/columnWidth.js +527 -0
  275. package/dist/transformers/columnWidth.js.map +1 -0
  276. package/dist/transformers/entities.d.ts +37 -0
  277. package/dist/transformers/entities.d.ts.map +1 -0
  278. package/dist/transformers/entities.js +74 -0
  279. package/dist/transformers/entities.js.map +1 -0
  280. package/dist/transformers/filters/{defaults.d.mts → defaults.d.ts} +1 -1
  281. package/dist/transformers/filters/defaults.d.ts.map +1 -0
  282. package/dist/transformers/filters/{defaults.mjs → defaults.js} +2 -2
  283. package/dist/transformers/filters/defaults.js.map +1 -0
  284. package/dist/transformers/filters/index.d.ts +43 -0
  285. package/dist/transformers/filters/index.d.ts.map +1 -0
  286. package/dist/transformers/filters/index.js +89 -0
  287. package/dist/transformers/filters/index.js.map +1 -0
  288. package/dist/transformers/format.d.ts +22 -0
  289. package/dist/transformers/format.d.ts.map +1 -0
  290. package/dist/transformers/format.js +30 -0
  291. package/dist/transformers/format.js.map +1 -0
  292. package/dist/transformers/imgWidth.d.ts +20 -0
  293. package/dist/transformers/imgWidth.d.ts.map +1 -0
  294. package/dist/transformers/imgWidth.js +76 -0
  295. package/dist/transformers/imgWidth.js.map +1 -0
  296. package/dist/transformers/{index.d.mts → index.d.ts} +4 -3
  297. package/dist/transformers/index.d.ts.map +1 -0
  298. package/dist/transformers/index.js +163 -0
  299. package/dist/transformers/index.js.map +1 -0
  300. package/dist/transformers/inlineCss.d.ts +85 -0
  301. package/dist/transformers/inlineCss.d.ts.map +1 -0
  302. package/dist/transformers/inlineCss.js +112 -0
  303. package/dist/transformers/inlineCss.js.map +1 -0
  304. package/dist/transformers/inlineLink.d.ts +35 -0
  305. package/dist/transformers/inlineLink.d.ts.map +1 -0
  306. package/dist/transformers/{inlineLink.mjs → inlineLink.js} +35 -11
  307. package/dist/transformers/inlineLink.js.map +1 -0
  308. package/dist/transformers/minify.d.ts +21 -0
  309. package/dist/transformers/minify.d.ts.map +1 -0
  310. package/dist/transformers/minify.js +25 -0
  311. package/dist/transformers/minify.js.map +1 -0
  312. package/dist/transformers/minifyCodeInline.d.ts +29 -0
  313. package/dist/transformers/minifyCodeInline.d.ts.map +1 -0
  314. package/dist/transformers/minifyCodeInline.js +36 -0
  315. package/dist/transformers/minifyCodeInline.js.map +1 -0
  316. package/dist/transformers/msoPlaceholders.d.ts +33 -0
  317. package/dist/transformers/msoPlaceholders.d.ts.map +1 -0
  318. package/dist/transformers/msoPlaceholders.js +114 -0
  319. package/dist/transformers/msoPlaceholders.js.map +1 -0
  320. package/dist/transformers/purgeCss.d.ts +43 -0
  321. package/dist/transformers/purgeCss.d.ts.map +1 -0
  322. package/dist/transformers/purgeCss.js +207 -0
  323. package/dist/transformers/purgeCss.js.map +1 -0
  324. package/dist/transformers/removeAttributes.d.ts +54 -0
  325. package/dist/transformers/removeAttributes.d.ts.map +1 -0
  326. package/dist/transformers/removeAttributes.js +72 -0
  327. package/dist/transformers/removeAttributes.js.map +1 -0
  328. package/dist/transformers/{replaceStrings.d.mts → replaceStrings.d.ts} +2 -2
  329. package/dist/transformers/replaceStrings.d.ts.map +1 -0
  330. package/dist/transformers/{replaceStrings.mjs → replaceStrings.js} +2 -2
  331. package/dist/transformers/replaceStrings.js.map +1 -0
  332. package/dist/transformers/safeSelectors.d.ts +37 -0
  333. package/dist/transformers/safeSelectors.d.ts.map +1 -0
  334. package/dist/transformers/{safeClassNames.mjs → safeSelectors.js} +40 -10
  335. package/dist/transformers/safeSelectors.js.map +1 -0
  336. package/dist/transformers/shorthandCss.d.ts +47 -0
  337. package/dist/transformers/shorthandCss.d.ts.map +1 -0
  338. package/dist/transformers/shorthandCss.js +92 -0
  339. package/dist/transformers/shorthandCss.js.map +1 -0
  340. package/dist/transformers/sixHex.d.ts +25 -0
  341. package/dist/transformers/sixHex.d.ts.map +1 -0
  342. package/dist/transformers/sixHex.js +42 -0
  343. package/dist/transformers/sixHex.js.map +1 -0
  344. package/dist/transformers/tailwindComponent.d.ts +16 -0
  345. package/dist/transformers/tailwindComponent.d.ts.map +1 -0
  346. package/dist/transformers/tailwindComponent.js +101 -0
  347. package/dist/transformers/tailwindComponent.js.map +1 -0
  348. package/dist/transformers/{tailwindcss.d.mts → tailwindcss.d.ts} +2 -2
  349. package/dist/transformers/tailwindcss.d.ts.map +1 -0
  350. package/dist/transformers/{tailwindcss.mjs → tailwindcss.js} +33 -74
  351. package/dist/transformers/tailwindcss.js.map +1 -0
  352. package/dist/transformers/urlQuery.d.ts +36 -0
  353. package/dist/transformers/urlQuery.d.ts.map +1 -0
  354. package/dist/transformers/urlQuery.js +77 -0
  355. package/dist/transformers/urlQuery.js.map +1 -0
  356. package/dist/types/{config.d.mts → config.d.ts} +231 -46
  357. package/dist/types/config.d.ts.map +1 -0
  358. package/dist/types/config.js +1 -0
  359. package/dist/types/index.d.ts +2 -0
  360. package/dist/types/index.js +1 -0
  361. package/dist/utils/ast/index.d.ts +4 -0
  362. package/dist/utils/ast/index.js +4 -0
  363. package/dist/utils/ast/{parser.d.mts → parser.d.ts} +1 -1
  364. package/dist/utils/ast/parser.d.ts.map +1 -0
  365. package/dist/utils/ast/{parser.mjs → parser.js} +2 -3
  366. package/dist/utils/ast/parser.js.map +1 -0
  367. package/dist/utils/ast/{serializer.d.mts → serializer.d.ts} +1 -1
  368. package/dist/utils/ast/serializer.d.ts.map +1 -0
  369. package/dist/utils/ast/serializer.js +46 -0
  370. package/dist/utils/ast/serializer.js.map +1 -0
  371. package/dist/utils/ast/{walker.d.mts → walker.d.ts} +1 -1
  372. package/dist/utils/ast/walker.d.ts.map +1 -0
  373. package/dist/utils/ast/{walker.mjs → walker.js} +2 -2
  374. package/dist/utils/ast/walker.js.map +1 -0
  375. package/dist/utils/cloneConfig.d.ts +13 -0
  376. package/dist/utils/cloneConfig.d.ts.map +1 -0
  377. package/dist/utils/cloneConfig.js +21 -0
  378. package/dist/utils/cloneConfig.js.map +1 -0
  379. package/dist/utils/compileTailwindCss.d.ts +16 -0
  380. package/dist/utils/compileTailwindCss.d.ts.map +1 -0
  381. package/dist/utils/compileTailwindCss.js +55 -0
  382. package/dist/utils/compileTailwindCss.js.map +1 -0
  383. package/dist/utils/componentSources.d.ts +50 -0
  384. package/dist/utils/componentSources.d.ts.map +1 -0
  385. package/dist/utils/componentSources.js +50 -0
  386. package/dist/utils/componentSources.js.map +1 -0
  387. package/dist/utils/cssBox.d.ts +42 -0
  388. package/dist/utils/cssBox.d.ts.map +1 -0
  389. package/dist/utils/cssBox.js +151 -0
  390. package/dist/utils/cssBox.js.map +1 -0
  391. package/dist/utils/decodeStyleEntities.d.ts +15 -0
  392. package/dist/utils/decodeStyleEntities.d.ts.map +1 -0
  393. package/dist/utils/decodeStyleEntities.js +18 -0
  394. package/dist/utils/decodeStyleEntities.js.map +1 -0
  395. package/dist/utils/{detect.d.mts → detect.d.ts} +1 -1
  396. package/dist/utils/detect.d.ts.map +1 -0
  397. package/dist/utils/{detect.mjs → detect.js} +2 -3
  398. package/dist/utils/detect.js.map +1 -0
  399. package/dist/utils/output-markers.d.ts +29 -0
  400. package/dist/utils/output-markers.d.ts.map +1 -0
  401. package/dist/utils/output-markers.js +68 -0
  402. package/dist/utils/output-markers.js.map +1 -0
  403. package/dist/utils/{url.d.mts → url.d.ts} +1 -1
  404. package/dist/utils/url.d.ts.map +1 -0
  405. package/dist/utils/{url.mjs → url.js} +2 -3
  406. package/dist/utils/url.js.map +1 -0
  407. package/dist/utils/watchPaths.d.ts +11 -0
  408. package/dist/utils/watchPaths.d.ts.map +1 -0
  409. package/dist/utils/watchPaths.js +19 -0
  410. package/dist/utils/watchPaths.js.map +1 -0
  411. package/node_modules/@clack/core/CHANGELOG.md +44 -0
  412. package/node_modules/@clack/core/dist/index.d.mts +125 -5
  413. package/node_modules/@clack/core/dist/index.mjs +972 -11
  414. package/node_modules/@clack/core/package.json +6 -2
  415. package/node_modules/@clack/prompts/CHANGELOG.md +70 -0
  416. package/node_modules/@clack/prompts/README.md +129 -3
  417. package/node_modules/@clack/prompts/dist/index.d.mts +567 -33
  418. package/node_modules/@clack/prompts/dist/index.mjs +1378 -133
  419. package/node_modules/@clack/prompts/package.json +7 -4
  420. package/node_modules/fast-string-truncated-width/dist/index.js +36 -96
  421. package/node_modules/fast-string-truncated-width/dist/types.d.ts +0 -3
  422. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +3 -3
  423. package/node_modules/fast-string-truncated-width/dist/utils.js +14 -9
  424. package/node_modules/fast-string-truncated-width/package.json +1 -1
  425. package/node_modules/fast-string-truncated-width/readme.md +2 -3
  426. package/node_modules/fast-string-width/package.json +2 -2
  427. package/node_modules/fast-string-width/readme.md +0 -3
  428. package/node_modules/fast-wrap-ansi/lib/main.js +4 -2
  429. package/node_modules/fast-wrap-ansi/package.json +11 -11
  430. package/node_modules/maizzle/README.md +24 -0
  431. package/node_modules/maizzle/dist/commands/make/component.mjs +1 -1
  432. package/node_modules/maizzle/dist/commands/make/config.mjs +8 -7
  433. package/node_modules/maizzle/dist/commands/make/layout.mjs +3 -3
  434. package/node_modules/maizzle/dist/commands/make/scaffold.mjs +1 -1
  435. package/node_modules/maizzle/dist/commands/make/stubs/Layout.vue +146 -0
  436. package/node_modules/maizzle/dist/commands/make/stubs/component.vue +2 -4
  437. package/node_modules/maizzle/dist/commands/make/stubs/config.ts +1 -5
  438. package/node_modules/maizzle/dist/commands/make/template.mjs +1 -1
  439. package/node_modules/maizzle/dist/commands/new.mjs +46 -135
  440. package/node_modules/maizzle/dist/index.d.mts +1 -0
  441. package/node_modules/maizzle/dist/index.mjs +30 -7
  442. package/node_modules/maizzle/package.json +5 -4
  443. package/node_modules/nypm/dist/cli.mjs +28 -5
  444. package/node_modules/nypm/dist/index.d.mts +0 -8
  445. package/node_modules/nypm/dist/index.mjs +27 -4
  446. package/node_modules/nypm/package.json +12 -12
  447. package/node_modules/tinyexec/README.md +9 -1
  448. package/node_modules/tinyexec/dist/main.d.mts +22 -7
  449. package/node_modules/tinyexec/dist/main.mjs +189 -491
  450. package/node_modules/tinyexec/package.json +14 -16
  451. package/package.json +37 -30
  452. package/dist/_virtual/_rolldown/runtime.mjs +0 -32
  453. package/dist/build.d.mts +0 -19
  454. package/dist/build.d.mts.map +0 -1
  455. package/dist/build.mjs +0 -141
  456. package/dist/build.mjs.map +0 -1
  457. package/dist/components/Divider.vue +0 -133
  458. package/dist/components/Image.vue +0 -70
  459. package/dist/components/Overlap.vue +0 -80
  460. package/dist/components/utils.d.mts +0 -5
  461. package/dist/components/utils.d.mts.map +0 -1
  462. package/dist/components/utils.mjs +0 -9
  463. package/dist/components/utils.mjs.map +0 -1
  464. package/dist/composables/defineConfig.d.mts +0 -14
  465. package/dist/composables/defineConfig.d.mts.map +0 -1
  466. package/dist/composables/defineConfig.mjs.map +0 -1
  467. package/dist/composables/renderContext.d.mts +0 -24
  468. package/dist/composables/renderContext.d.mts.map +0 -1
  469. package/dist/composables/renderContext.mjs +0 -6
  470. package/dist/composables/renderContext.mjs.map +0 -1
  471. package/dist/composables/useConfig.d.mts +0 -9
  472. package/dist/composables/useConfig.d.mts.map +0 -1
  473. package/dist/composables/useConfig.mjs +0 -13
  474. package/dist/composables/useConfig.mjs.map +0 -1
  475. package/dist/composables/useDoctype.d.mts.map +0 -1
  476. package/dist/composables/useDoctype.mjs.map +0 -1
  477. package/dist/composables/useEvent.d.mts.map +0 -1
  478. package/dist/composables/useEvent.mjs.map +0 -1
  479. package/dist/composables/usePlaintext.d.mts.map +0 -1
  480. package/dist/composables/usePlaintext.mjs.map +0 -1
  481. package/dist/composables/usePreviewText.d.mts +0 -24
  482. package/dist/composables/usePreviewText.d.mts.map +0 -1
  483. package/dist/composables/usePreviewText.mjs +0 -29
  484. package/dist/composables/usePreviewText.mjs.map +0 -1
  485. package/dist/config/defaults.d.mts.map +0 -1
  486. package/dist/config/defaults.mjs.map +0 -1
  487. package/dist/config/index.d.mts +0 -15
  488. package/dist/config/index.d.mts.map +0 -1
  489. package/dist/config/index.mjs.map +0 -1
  490. package/dist/events/index.d.mts.map +0 -1
  491. package/dist/events/index.mjs.map +0 -1
  492. package/dist/index.d.mts +0 -31
  493. package/dist/index.mjs +0 -31
  494. package/dist/node_modules/picomatch/index.mjs +0 -13
  495. package/dist/node_modules/picomatch/index.mjs.map +0 -1
  496. package/dist/node_modules/picomatch/lib/constants.mjs +0 -174
  497. package/dist/node_modules/picomatch/lib/constants.mjs.map +0 -1
  498. package/dist/node_modules/picomatch/lib/parse.mjs +0 -1067
  499. package/dist/node_modules/picomatch/lib/parse.mjs.map +0 -1
  500. package/dist/node_modules/picomatch/lib/picomatch.mjs +0 -304
  501. package/dist/node_modules/picomatch/lib/picomatch.mjs.map +0 -1
  502. package/dist/node_modules/picomatch/lib/scan.mjs +0 -296
  503. package/dist/node_modules/picomatch/lib/scan.mjs.map +0 -1
  504. package/dist/node_modules/picomatch/lib/utils.mjs +0 -53
  505. package/dist/node_modules/picomatch/lib/utils.mjs.map +0 -1
  506. package/dist/plaintext.d.mts.map +0 -1
  507. package/dist/plaintext.mjs.map +0 -1
  508. package/dist/plugin.d.mts.map +0 -1
  509. package/dist/plugin.mjs.map +0 -1
  510. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
  511. package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
  512. package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
  513. package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
  514. package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
  515. package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
  516. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
  517. package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
  518. package/dist/render/createRenderer.d.mts.map +0 -1
  519. package/dist/render/createRenderer.mjs +0 -286
  520. package/dist/render/createRenderer.mjs.map +0 -1
  521. package/dist/render/index.d.mts +0 -26
  522. package/dist/render/index.d.mts.map +0 -1
  523. package/dist/render/index.mjs +0 -46
  524. package/dist/render/index.mjs.map +0 -1
  525. package/dist/serve.d.mts.map +0 -1
  526. package/dist/serve.mjs.map +0 -1
  527. package/dist/server/compatibility.d.mts +0 -5
  528. package/dist/server/compatibility.d.mts.map +0 -1
  529. package/dist/server/compatibility.mjs +0 -97
  530. package/dist/server/compatibility.mjs.map +0 -1
  531. package/dist/server/email.d.mts.map +0 -1
  532. package/dist/server/email.mjs.map +0 -1
  533. package/dist/server/linter.d.mts +0 -5
  534. package/dist/server/linter.d.mts.map +0 -1
  535. package/dist/server/linter.mjs +0 -189
  536. package/dist/server/linter.mjs.map +0 -1
  537. package/dist/transformers/addAttributes.d.mts +0 -32
  538. package/dist/transformers/addAttributes.d.mts.map +0 -1
  539. package/dist/transformers/addAttributes.mjs.map +0 -1
  540. package/dist/transformers/attributeToStyle.d.mts +0 -25
  541. package/dist/transformers/attributeToStyle.d.mts.map +0 -1
  542. package/dist/transformers/attributeToStyle.mjs +0 -80
  543. package/dist/transformers/attributeToStyle.mjs.map +0 -1
  544. package/dist/transformers/base.d.mts +0 -8
  545. package/dist/transformers/base.d.mts.map +0 -1
  546. package/dist/transformers/base.mjs.map +0 -1
  547. package/dist/transformers/entities.d.mts +0 -8
  548. package/dist/transformers/entities.d.mts.map +0 -1
  549. package/dist/transformers/entities.mjs +0 -41
  550. package/dist/transformers/entities.mjs.map +0 -1
  551. package/dist/transformers/filters/defaults.d.mts.map +0 -1
  552. package/dist/transformers/filters/defaults.mjs.map +0 -1
  553. package/dist/transformers/filters/index.d.mts +0 -22
  554. package/dist/transformers/filters/index.d.mts.map +0 -1
  555. package/dist/transformers/filters/index.mjs +0 -67
  556. package/dist/transformers/filters/index.mjs.map +0 -1
  557. package/dist/transformers/format.d.mts +0 -15
  558. package/dist/transformers/format.d.mts.map +0 -1
  559. package/dist/transformers/format.mjs +0 -26
  560. package/dist/transformers/format.mjs.map +0 -1
  561. package/dist/transformers/index.d.mts.map +0 -1
  562. package/dist/transformers/index.mjs +0 -81
  563. package/dist/transformers/index.mjs.map +0 -1
  564. package/dist/transformers/inlineCSS.d.mts +0 -17
  565. package/dist/transformers/inlineCSS.d.mts.map +0 -1
  566. package/dist/transformers/inlineCSS.mjs +0 -70
  567. package/dist/transformers/inlineCSS.mjs.map +0 -1
  568. package/dist/transformers/inlineLink.d.mts +0 -14
  569. package/dist/transformers/inlineLink.d.mts.map +0 -1
  570. package/dist/transformers/inlineLink.mjs.map +0 -1
  571. package/dist/transformers/minify.d.mts +0 -17
  572. package/dist/transformers/minify.d.mts.map +0 -1
  573. package/dist/transformers/minify.mjs +0 -24
  574. package/dist/transformers/minify.mjs.map +0 -1
  575. package/dist/transformers/purgeCSS.d.mts +0 -23
  576. package/dist/transformers/purgeCSS.d.mts.map +0 -1
  577. package/dist/transformers/purgeCSS.mjs +0 -132
  578. package/dist/transformers/purgeCSS.mjs.map +0 -1
  579. package/dist/transformers/removeAttributes.d.mts +0 -31
  580. package/dist/transformers/removeAttributes.d.mts.map +0 -1
  581. package/dist/transformers/removeAttributes.mjs +0 -63
  582. package/dist/transformers/removeAttributes.mjs.map +0 -1
  583. package/dist/transformers/replaceStrings.d.mts.map +0 -1
  584. package/dist/transformers/replaceStrings.mjs.map +0 -1
  585. package/dist/transformers/safeClassNames.d.mts +0 -22
  586. package/dist/transformers/safeClassNames.d.mts.map +0 -1
  587. package/dist/transformers/safeClassNames.mjs.map +0 -1
  588. package/dist/transformers/shorthandCSS.d.mts +0 -24
  589. package/dist/transformers/shorthandCSS.d.mts.map +0 -1
  590. package/dist/transformers/shorthandCSS.mjs +0 -48
  591. package/dist/transformers/shorthandCSS.mjs.map +0 -1
  592. package/dist/transformers/sixHex.d.mts +0 -16
  593. package/dist/transformers/sixHex.d.mts.map +0 -1
  594. package/dist/transformers/sixHex.mjs +0 -30
  595. package/dist/transformers/sixHex.mjs.map +0 -1
  596. package/dist/transformers/tailwindcss.d.mts.map +0 -1
  597. package/dist/transformers/tailwindcss.mjs.map +0 -1
  598. package/dist/transformers/urlQuery.d.mts +0 -24
  599. package/dist/transformers/urlQuery.d.mts.map +0 -1
  600. package/dist/transformers/urlQuery.mjs +0 -65
  601. package/dist/transformers/urlQuery.mjs.map +0 -1
  602. package/dist/types/config.d.mts.map +0 -1
  603. package/dist/types/config.mjs +0 -1
  604. package/dist/types/index.d.mts +0 -2
  605. package/dist/types/index.mjs +0 -1
  606. package/dist/utils/ast/index.d.mts +0 -4
  607. package/dist/utils/ast/index.mjs +0 -5
  608. package/dist/utils/ast/parser.d.mts.map +0 -1
  609. package/dist/utils/ast/parser.mjs.map +0 -1
  610. package/dist/utils/ast/serializer.d.mts.map +0 -1
  611. package/dist/utils/ast/serializer.mjs +0 -37
  612. package/dist/utils/ast/serializer.mjs.map +0 -1
  613. package/dist/utils/ast/walker.d.mts.map +0 -1
  614. package/dist/utils/ast/walker.mjs.map +0 -1
  615. package/dist/utils/detect.d.mts.map +0 -1
  616. package/dist/utils/detect.mjs.map +0 -1
  617. package/dist/utils/url.d.mts.map +0 -1
  618. package/dist/utils/url.mjs.map +0 -1
  619. package/node_modules/@clack/core/dist/index.mjs.map +0 -1
  620. package/node_modules/@clack/prompts/dist/index.mjs.map +0 -1
  621. package/node_modules/fast-wrap-ansi/lib/main.js.map +0 -1
  622. package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
  623. package/node_modules/tinyexec/dist/LICENSES.txt +0 -83
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.mjs","names":[],"sources":["../../../../node_modules/picomatch/lib/parse.js"],"sourcesContent":["'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\nconst splitTopLevel = input => {\n const parts = [];\n let bracket = 0;\n let paren = 0;\n let quote = 0;\n let value = '';\n let escaped = false;\n\n for (const ch of input) {\n if (escaped === true) {\n value += ch;\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n value += ch;\n escaped = true;\n continue;\n }\n\n if (ch === '\"') {\n quote = quote === 1 ? 0 : 1;\n value += ch;\n continue;\n }\n\n if (quote === 0) {\n if (ch === '[') {\n bracket++;\n } else if (ch === ']' && bracket > 0) {\n bracket--;\n } else if (bracket === 0) {\n if (ch === '(') {\n paren++;\n } else if (ch === ')' && paren > 0) {\n paren--;\n } else if (ch === '|' && paren === 0) {\n parts.push(value);\n value = '';\n continue;\n }\n }\n }\n\n value += ch;\n }\n\n parts.push(value);\n return parts;\n};\n\nconst isPlainBranch = branch => {\n let escaped = false;\n\n for (const ch of branch) {\n if (escaped === true) {\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n escaped = true;\n continue;\n }\n\n if (/[?*+@!()[\\]{}]/.test(ch)) {\n return false;\n }\n }\n\n return true;\n};\n\nconst normalizeSimpleBranch = branch => {\n let value = branch.trim();\n let changed = true;\n\n while (changed === true) {\n changed = false;\n\n if (/^@\\([^\\\\()[\\]{}|]+\\)$/.test(value)) {\n value = value.slice(2, -1);\n changed = true;\n }\n }\n\n if (!isPlainBranch(value)) {\n return;\n }\n\n return value.replace(/\\\\(.)/g, '$1');\n};\n\nconst hasRepeatedCharPrefixOverlap = branches => {\n const values = branches.map(normalizeSimpleBranch).filter(Boolean);\n\n for (let i = 0; i < values.length; i++) {\n for (let j = i + 1; j < values.length; j++) {\n const a = values[i];\n const b = values[j];\n const char = a[0];\n\n if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {\n continue;\n }\n\n if (a === b || a.startsWith(b) || b.startsWith(a)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nconst parseRepeatedExtglob = (pattern, requireEnd = true) => {\n if ((pattern[0] !== '+' && pattern[0] !== '*') || pattern[1] !== '(') {\n return;\n }\n\n let bracket = 0;\n let paren = 0;\n let quote = 0;\n let escaped = false;\n\n for (let i = 1; i < pattern.length; i++) {\n const ch = pattern[i];\n\n if (escaped === true) {\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n escaped = true;\n continue;\n }\n\n if (ch === '\"') {\n quote = quote === 1 ? 0 : 1;\n continue;\n }\n\n if (quote === 1) {\n continue;\n }\n\n if (ch === '[') {\n bracket++;\n continue;\n }\n\n if (ch === ']' && bracket > 0) {\n bracket--;\n continue;\n }\n\n if (bracket > 0) {\n continue;\n }\n\n if (ch === '(') {\n paren++;\n continue;\n }\n\n if (ch === ')') {\n paren--;\n\n if (paren === 0) {\n if (requireEnd === true && i !== pattern.length - 1) {\n return;\n }\n\n return {\n type: pattern[0],\n body: pattern.slice(2, i),\n end: i\n };\n }\n }\n }\n};\n\nconst getStarExtglobSequenceOutput = pattern => {\n let index = 0;\n const chars = [];\n\n while (index < pattern.length) {\n const match = parseRepeatedExtglob(pattern.slice(index), false);\n\n if (!match || match.type !== '*') {\n return;\n }\n\n const branches = splitTopLevel(match.body).map(branch => branch.trim());\n if (branches.length !== 1) {\n return;\n }\n\n const branch = normalizeSimpleBranch(branches[0]);\n if (!branch || branch.length !== 1) {\n return;\n }\n\n chars.push(branch);\n index += match.end + 1;\n }\n\n if (chars.length < 1) {\n return;\n }\n\n const source = chars.length === 1\n ? utils.escapeRegex(chars[0])\n : `[${chars.map(ch => utils.escapeRegex(ch)).join('')}]`;\n\n return `${source}*`;\n};\n\nconst repeatedExtglobRecursion = pattern => {\n let depth = 0;\n let value = pattern.trim();\n let match = parseRepeatedExtglob(value);\n\n while (match) {\n depth++;\n value = match.body.trim();\n match = parseRepeatedExtglob(value);\n }\n\n return depth;\n};\n\nconst analyzeRepeatedExtglob = (body, options) => {\n if (options.maxExtglobRecursion === false) {\n return { risky: false };\n }\n\n const max =\n typeof options.maxExtglobRecursion === 'number'\n ? options.maxExtglobRecursion\n : constants.DEFAULT_MAX_EXTGLOB_RECURSION;\n\n const branches = splitTopLevel(body).map(branch => branch.trim());\n\n if (branches.length > 1) {\n if (\n branches.some(branch => branch === '') ||\n branches.some(branch => /^[*?]+$/.test(branch)) ||\n hasRepeatedCharPrefixOverlap(branches)\n ) {\n return { risky: true };\n }\n }\n\n for (const branch of branches) {\n const safeOutput = getStarExtglobSequenceOutput(branch);\n if (safeOutput) {\n return { risky: true, safeOutput };\n }\n\n if (repeatedExtglobRecursion(branch) > max) {\n return { risky: true };\n }\n }\n\n return { risky: false };\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n token.startIndex = state.index;\n token.tokensIndex = tokens.length;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n const literal = input.slice(token.startIndex, state.index + 1);\n const body = input.slice(token.startIndex + 2, state.index);\n const analysis = analyzeRepeatedExtglob(body, opts);\n\n if ((token.type === 'plus' || token.type === 'star') && analysis.risky) {\n const safeOutput = analysis.safeOutput\n ? (token.output ? '' : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput)\n : undefined;\n const open = tokens[token.tokensIndex];\n\n open.type = 'text';\n open.value = literal;\n open.output = safeOutput || utils.escapeRegex(literal);\n\n for (let i = token.tokensIndex + 1; i < tokens.length; i++) {\n tokens[i].value = '';\n tokens[i].output = '';\n delete tokens[i].suffix;\n }\n\n state.output = token.output + open.output;\n state.backtrack = true;\n\n push({ type: 'paren', extglob: true, value, output: '' });\n decrement('parens');\n return;\n }\n\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,304 +0,0 @@
1
- import { __commonJSMin, __require } from "../../../_virtual/_rolldown/runtime.mjs";
2
- import { require_constants } from "./constants.mjs";
3
- import { require_utils } from "./utils.mjs";
4
- import { require_scan } from "./scan.mjs";
5
- import { require_parse } from "./parse.mjs";
6
-
7
- //#region node_modules/picomatch/lib/picomatch.js
8
- var require_picomatch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9
- const path = __require("path");
10
- const scan = require_scan();
11
- const parse = require_parse();
12
- const utils = require_utils();
13
- const constants = require_constants();
14
- const isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
15
- /**
16
- * Creates a matcher function from one or more glob patterns. The
17
- * returned function takes a string to match as its first argument,
18
- * and returns true if the string is a match. The returned matcher
19
- * function also takes a boolean as the second argument that, when true,
20
- * returns an object with additional information.
21
- *
22
- * ```js
23
- * const picomatch = require('picomatch');
24
- * // picomatch(glob[, options]);
25
- *
26
- * const isMatch = picomatch('*.!(*a)');
27
- * console.log(isMatch('a.a')); //=> false
28
- * console.log(isMatch('a.b')); //=> true
29
- * ```
30
- * @name picomatch
31
- * @param {String|Array} `globs` One or more glob patterns.
32
- * @param {Object=} `options`
33
- * @return {Function=} Returns a matcher function.
34
- * @api public
35
- */
36
- const picomatch = (glob, options, returnState = false) => {
37
- if (Array.isArray(glob)) {
38
- const fns = glob.map((input) => picomatch(input, options, returnState));
39
- const arrayMatcher = (str) => {
40
- for (const isMatch of fns) {
41
- const state = isMatch(str);
42
- if (state) return state;
43
- }
44
- return false;
45
- };
46
- return arrayMatcher;
47
- }
48
- const isState = isObject(glob) && glob.tokens && glob.input;
49
- if (glob === "" || typeof glob !== "string" && !isState) throw new TypeError("Expected pattern to be a non-empty string");
50
- const opts = options || {};
51
- const posix = utils.isWindows(options);
52
- const regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true);
53
- const state = regex.state;
54
- delete regex.state;
55
- let isIgnored = () => false;
56
- if (opts.ignore) {
57
- const ignoreOpts = {
58
- ...options,
59
- ignore: null,
60
- onMatch: null,
61
- onResult: null
62
- };
63
- isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);
64
- }
65
- const matcher = (input, returnObject = false) => {
66
- const { isMatch, match, output } = picomatch.test(input, regex, options, {
67
- glob,
68
- posix
69
- });
70
- const result = {
71
- glob,
72
- state,
73
- regex,
74
- posix,
75
- input,
76
- output,
77
- match,
78
- isMatch
79
- };
80
- if (typeof opts.onResult === "function") opts.onResult(result);
81
- if (isMatch === false) {
82
- result.isMatch = false;
83
- return returnObject ? result : false;
84
- }
85
- if (isIgnored(input)) {
86
- if (typeof opts.onIgnore === "function") opts.onIgnore(result);
87
- result.isMatch = false;
88
- return returnObject ? result : false;
89
- }
90
- if (typeof opts.onMatch === "function") opts.onMatch(result);
91
- return returnObject ? result : true;
92
- };
93
- if (returnState) matcher.state = state;
94
- return matcher;
95
- };
96
- /**
97
- * Test `input` with the given `regex`. This is used by the main
98
- * `picomatch()` function to test the input string.
99
- *
100
- * ```js
101
- * const picomatch = require('picomatch');
102
- * // picomatch.test(input, regex[, options]);
103
- *
104
- * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/));
105
- * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }
106
- * ```
107
- * @param {String} `input` String to test.
108
- * @param {RegExp} `regex`
109
- * @return {Object} Returns an object with matching info.
110
- * @api public
111
- */
112
- picomatch.test = (input, regex, options, { glob, posix } = {}) => {
113
- if (typeof input !== "string") throw new TypeError("Expected input to be a string");
114
- if (input === "") return {
115
- isMatch: false,
116
- output: ""
117
- };
118
- const opts = options || {};
119
- const format = opts.format || (posix ? utils.toPosixSlashes : null);
120
- let match = input === glob;
121
- let output = match && format ? format(input) : input;
122
- if (match === false) {
123
- output = format ? format(input) : input;
124
- match = output === glob;
125
- }
126
- if (match === false || opts.capture === true) if (opts.matchBase === true || opts.basename === true) match = picomatch.matchBase(input, regex, options, posix);
127
- else match = regex.exec(output);
128
- return {
129
- isMatch: Boolean(match),
130
- match,
131
- output
132
- };
133
- };
134
- /**
135
- * Match the basename of a filepath.
136
- *
137
- * ```js
138
- * const picomatch = require('picomatch');
139
- * // picomatch.matchBase(input, glob[, options]);
140
- * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true
141
- * ```
142
- * @param {String} `input` String to test.
143
- * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).
144
- * @return {Boolean}
145
- * @api public
146
- */
147
- picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {
148
- return (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path.basename(input));
149
- };
150
- /**
151
- * Returns true if **any** of the given glob `patterns` match the specified `string`.
152
- *
153
- * ```js
154
- * const picomatch = require('picomatch');
155
- * // picomatch.isMatch(string, patterns[, options]);
156
- *
157
- * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true
158
- * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false
159
- * ```
160
- * @param {String|Array} str The string to test.
161
- * @param {String|Array} patterns One or more glob patterns to use for matching.
162
- * @param {Object} [options] See available [options](#options).
163
- * @return {Boolean} Returns true if any patterns match `str`
164
- * @api public
165
- */
166
- picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
167
- /**
168
- * Parse a glob pattern to create the source string for a regular
169
- * expression.
170
- *
171
- * ```js
172
- * const picomatch = require('picomatch');
173
- * const result = picomatch.parse(pattern[, options]);
174
- * ```
175
- * @param {String} `pattern`
176
- * @param {Object} `options`
177
- * @return {Object} Returns an object with useful properties and output to be used as a regex source string.
178
- * @api public
179
- */
180
- picomatch.parse = (pattern, options) => {
181
- if (Array.isArray(pattern)) return pattern.map((p) => picomatch.parse(p, options));
182
- return parse(pattern, {
183
- ...options,
184
- fastpaths: false
185
- });
186
- };
187
- /**
188
- * Scan a glob pattern to separate the pattern into segments.
189
- *
190
- * ```js
191
- * const picomatch = require('picomatch');
192
- * // picomatch.scan(input[, options]);
193
- *
194
- * const result = picomatch.scan('!./foo/*.js');
195
- * console.log(result);
196
- * { prefix: '!./',
197
- * input: '!./foo/*.js',
198
- * start: 3,
199
- * base: 'foo',
200
- * glob: '*.js',
201
- * isBrace: false,
202
- * isBracket: false,
203
- * isGlob: true,
204
- * isExtglob: false,
205
- * isGlobstar: false,
206
- * negated: true }
207
- * ```
208
- * @param {String} `input` Glob pattern to scan.
209
- * @param {Object} `options`
210
- * @return {Object} Returns an object with
211
- * @api public
212
- */
213
- picomatch.scan = (input, options) => scan(input, options);
214
- /**
215
- * Compile a regular expression from the `state` object returned by the
216
- * [parse()](#parse) method.
217
- *
218
- * @param {Object} `state`
219
- * @param {Object} `options`
220
- * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.
221
- * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.
222
- * @return {RegExp}
223
- * @api public
224
- */
225
- picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {
226
- if (returnOutput === true) return state.output;
227
- const opts = options || {};
228
- const prepend = opts.contains ? "" : "^";
229
- const append = opts.contains ? "" : "$";
230
- let source = `${prepend}(?:${state.output})${append}`;
231
- if (state && state.negated === true) source = `^(?!${source}).*$`;
232
- const regex = picomatch.toRegex(source, options);
233
- if (returnState === true) regex.state = state;
234
- return regex;
235
- };
236
- /**
237
- * Create a regular expression from a parsed glob pattern.
238
- *
239
- * ```js
240
- * const picomatch = require('picomatch');
241
- * const state = picomatch.parse('*.js');
242
- * // picomatch.compileRe(state[, options]);
243
- *
244
- * console.log(picomatch.compileRe(state));
245
- * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
246
- * ```
247
- * @param {String} `state` The object returned from the `.parse` method.
248
- * @param {Object} `options`
249
- * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.
250
- * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.
251
- * @return {RegExp} Returns a regex created from the given pattern.
252
- * @api public
253
- */
254
- picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {
255
- if (!input || typeof input !== "string") throw new TypeError("Expected a non-empty string");
256
- let parsed = {
257
- negated: false,
258
- fastpaths: true
259
- };
260
- if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) parsed.output = parse.fastpaths(input, options);
261
- if (!parsed.output) parsed = parse(input, options);
262
- return picomatch.compileRe(parsed, options, returnOutput, returnState);
263
- };
264
- /**
265
- * Create a regular expression from the given regex source string.
266
- *
267
- * ```js
268
- * const picomatch = require('picomatch');
269
- * // picomatch.toRegex(source[, options]);
270
- *
271
- * const { output } = picomatch.parse('*.js');
272
- * console.log(picomatch.toRegex(output));
273
- * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
274
- * ```
275
- * @param {String} `source` Regular expression source string.
276
- * @param {Object} `options`
277
- * @return {RegExp}
278
- * @api public
279
- */
280
- picomatch.toRegex = (source, options) => {
281
- try {
282
- const opts = options || {};
283
- return new RegExp(source, opts.flags || (opts.nocase ? "i" : ""));
284
- } catch (err) {
285
- if (options && options.debug === true) throw err;
286
- return /$^/;
287
- }
288
- };
289
- /**
290
- * Picomatch constants.
291
- * @return {Object}
292
- */
293
- picomatch.constants = constants;
294
- /**
295
- * Expose "picomatch"
296
- */
297
- module.exports = picomatch;
298
- }));
299
-
300
- //#endregion
301
- export default require_picomatch();
302
-
303
- export { require_picomatch };
304
- //# sourceMappingURL=picomatch.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"picomatch.mjs","names":[],"sources":["../../../../node_modules/picomatch/lib/picomatch.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n"],"x_google_ignoreList":[0],"mappings":"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"}