@maizzle/framework 6.0.0-rc.9 → 6.0.1

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 (624) 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 +73 -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 +33 -0
  102. package/dist/config/index.d.ts.map +1 -0
  103. package/dist/config/index.js +136 -0
  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} +248 -119
  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-N1X0OxKs.js +8800 -0
  235. package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-N1X0OxKs.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 +38 -31
  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 +0 -71
  490. package/dist/config/index.mjs.map +0 -1
  491. package/dist/events/index.d.mts.map +0 -1
  492. package/dist/events/index.mjs.map +0 -1
  493. package/dist/index.d.mts +0 -31
  494. package/dist/index.mjs +0 -31
  495. package/dist/node_modules/picomatch/index.mjs +0 -13
  496. package/dist/node_modules/picomatch/index.mjs.map +0 -1
  497. package/dist/node_modules/picomatch/lib/constants.mjs +0 -174
  498. package/dist/node_modules/picomatch/lib/constants.mjs.map +0 -1
  499. package/dist/node_modules/picomatch/lib/parse.mjs +0 -1067
  500. package/dist/node_modules/picomatch/lib/parse.mjs.map +0 -1
  501. package/dist/node_modules/picomatch/lib/picomatch.mjs +0 -304
  502. package/dist/node_modules/picomatch/lib/picomatch.mjs.map +0 -1
  503. package/dist/node_modules/picomatch/lib/scan.mjs +0 -296
  504. package/dist/node_modules/picomatch/lib/scan.mjs.map +0 -1
  505. package/dist/node_modules/picomatch/lib/utils.mjs +0 -53
  506. package/dist/node_modules/picomatch/lib/utils.mjs.map +0 -1
  507. package/dist/plaintext.d.mts.map +0 -1
  508. package/dist/plaintext.mjs.map +0 -1
  509. package/dist/plugin.d.mts.map +0 -1
  510. package/dist/plugin.mjs.map +0 -1
  511. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
  512. package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
  513. package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
  514. package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
  515. package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
  516. package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
  517. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
  518. package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
  519. package/dist/render/createRenderer.d.mts.map +0 -1
  520. package/dist/render/createRenderer.mjs +0 -286
  521. package/dist/render/createRenderer.mjs.map +0 -1
  522. package/dist/render/index.d.mts +0 -26
  523. package/dist/render/index.d.mts.map +0 -1
  524. package/dist/render/index.mjs +0 -46
  525. package/dist/render/index.mjs.map +0 -1
  526. package/dist/serve.d.mts.map +0 -1
  527. package/dist/serve.mjs.map +0 -1
  528. package/dist/server/compatibility.d.mts +0 -5
  529. package/dist/server/compatibility.d.mts.map +0 -1
  530. package/dist/server/compatibility.mjs +0 -97
  531. package/dist/server/compatibility.mjs.map +0 -1
  532. package/dist/server/email.d.mts.map +0 -1
  533. package/dist/server/email.mjs.map +0 -1
  534. package/dist/server/linter.d.mts +0 -5
  535. package/dist/server/linter.d.mts.map +0 -1
  536. package/dist/server/linter.mjs +0 -189
  537. package/dist/server/linter.mjs.map +0 -1
  538. package/dist/transformers/addAttributes.d.mts +0 -32
  539. package/dist/transformers/addAttributes.d.mts.map +0 -1
  540. package/dist/transformers/addAttributes.mjs.map +0 -1
  541. package/dist/transformers/attributeToStyle.d.mts +0 -25
  542. package/dist/transformers/attributeToStyle.d.mts.map +0 -1
  543. package/dist/transformers/attributeToStyle.mjs +0 -80
  544. package/dist/transformers/attributeToStyle.mjs.map +0 -1
  545. package/dist/transformers/base.d.mts +0 -8
  546. package/dist/transformers/base.d.mts.map +0 -1
  547. package/dist/transformers/base.mjs.map +0 -1
  548. package/dist/transformers/entities.d.mts +0 -8
  549. package/dist/transformers/entities.d.mts.map +0 -1
  550. package/dist/transformers/entities.mjs +0 -41
  551. package/dist/transformers/entities.mjs.map +0 -1
  552. package/dist/transformers/filters/defaults.d.mts.map +0 -1
  553. package/dist/transformers/filters/defaults.mjs.map +0 -1
  554. package/dist/transformers/filters/index.d.mts +0 -22
  555. package/dist/transformers/filters/index.d.mts.map +0 -1
  556. package/dist/transformers/filters/index.mjs +0 -67
  557. package/dist/transformers/filters/index.mjs.map +0 -1
  558. package/dist/transformers/format.d.mts +0 -15
  559. package/dist/transformers/format.d.mts.map +0 -1
  560. package/dist/transformers/format.mjs +0 -26
  561. package/dist/transformers/format.mjs.map +0 -1
  562. package/dist/transformers/index.d.mts.map +0 -1
  563. package/dist/transformers/index.mjs +0 -81
  564. package/dist/transformers/index.mjs.map +0 -1
  565. package/dist/transformers/inlineCSS.d.mts +0 -17
  566. package/dist/transformers/inlineCSS.d.mts.map +0 -1
  567. package/dist/transformers/inlineCSS.mjs +0 -70
  568. package/dist/transformers/inlineCSS.mjs.map +0 -1
  569. package/dist/transformers/inlineLink.d.mts +0 -14
  570. package/dist/transformers/inlineLink.d.mts.map +0 -1
  571. package/dist/transformers/inlineLink.mjs.map +0 -1
  572. package/dist/transformers/minify.d.mts +0 -17
  573. package/dist/transformers/minify.d.mts.map +0 -1
  574. package/dist/transformers/minify.mjs +0 -24
  575. package/dist/transformers/minify.mjs.map +0 -1
  576. package/dist/transformers/purgeCSS.d.mts +0 -23
  577. package/dist/transformers/purgeCSS.d.mts.map +0 -1
  578. package/dist/transformers/purgeCSS.mjs +0 -132
  579. package/dist/transformers/purgeCSS.mjs.map +0 -1
  580. package/dist/transformers/removeAttributes.d.mts +0 -31
  581. package/dist/transformers/removeAttributes.d.mts.map +0 -1
  582. package/dist/transformers/removeAttributes.mjs +0 -63
  583. package/dist/transformers/removeAttributes.mjs.map +0 -1
  584. package/dist/transformers/replaceStrings.d.mts.map +0 -1
  585. package/dist/transformers/replaceStrings.mjs.map +0 -1
  586. package/dist/transformers/safeClassNames.d.mts +0 -22
  587. package/dist/transformers/safeClassNames.d.mts.map +0 -1
  588. package/dist/transformers/safeClassNames.mjs.map +0 -1
  589. package/dist/transformers/shorthandCSS.d.mts +0 -24
  590. package/dist/transformers/shorthandCSS.d.mts.map +0 -1
  591. package/dist/transformers/shorthandCSS.mjs +0 -48
  592. package/dist/transformers/shorthandCSS.mjs.map +0 -1
  593. package/dist/transformers/sixHex.d.mts +0 -16
  594. package/dist/transformers/sixHex.d.mts.map +0 -1
  595. package/dist/transformers/sixHex.mjs +0 -30
  596. package/dist/transformers/sixHex.mjs.map +0 -1
  597. package/dist/transformers/tailwindcss.d.mts.map +0 -1
  598. package/dist/transformers/tailwindcss.mjs.map +0 -1
  599. package/dist/transformers/urlQuery.d.mts +0 -24
  600. package/dist/transformers/urlQuery.d.mts.map +0 -1
  601. package/dist/transformers/urlQuery.mjs +0 -65
  602. package/dist/transformers/urlQuery.mjs.map +0 -1
  603. package/dist/types/config.d.mts.map +0 -1
  604. package/dist/types/config.mjs +0 -1
  605. package/dist/types/index.d.mts +0 -2
  606. package/dist/types/index.mjs +0 -1
  607. package/dist/utils/ast/index.d.mts +0 -4
  608. package/dist/utils/ast/index.mjs +0 -5
  609. package/dist/utils/ast/parser.d.mts.map +0 -1
  610. package/dist/utils/ast/parser.mjs.map +0 -1
  611. package/dist/utils/ast/serializer.d.mts.map +0 -1
  612. package/dist/utils/ast/serializer.mjs +0 -37
  613. package/dist/utils/ast/serializer.mjs.map +0 -1
  614. package/dist/utils/ast/walker.d.mts.map +0 -1
  615. package/dist/utils/ast/walker.mjs.map +0 -1
  616. package/dist/utils/detect.d.mts.map +0 -1
  617. package/dist/utils/detect.mjs.map +0 -1
  618. package/dist/utils/url.d.mts.map +0 -1
  619. package/dist/utils/url.mjs.map +0 -1
  620. package/node_modules/@clack/core/dist/index.mjs.map +0 -1
  621. package/node_modules/@clack/prompts/dist/index.mjs.map +0 -1
  622. package/node_modules/fast-wrap-ansi/lib/main.js.map +0 -1
  623. package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
  624. package/node_modules/tinyexec/dist/LICENSES.txt +0 -83
@@ -1,1067 +0,0 @@
1
- import { __commonJSMin } from "../../../_virtual/_rolldown/runtime.mjs";
2
- import { require_constants } from "./constants.mjs";
3
- import { require_utils } from "./utils.mjs";
4
-
5
- //#region node_modules/picomatch/lib/parse.js
6
- var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7
- const constants = require_constants();
8
- const utils = require_utils();
9
- /**
10
- * Constants
11
- */
12
- const { MAX_LENGTH, POSIX_REGEX_SOURCE, REGEX_NON_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_BACKREF, REPLACEMENTS } = constants;
13
- /**
14
- * Helpers
15
- */
16
- const expandRange = (args, options) => {
17
- if (typeof options.expandRange === "function") return options.expandRange(...args, options);
18
- args.sort();
19
- const value = `[${args.join("-")}]`;
20
- try {
21
- new RegExp(value);
22
- } catch (ex) {
23
- return args.map((v) => utils.escapeRegex(v)).join("..");
24
- }
25
- return value;
26
- };
27
- /**
28
- * Create the message for a syntax error
29
- */
30
- const syntaxError = (type, char) => {
31
- return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
32
- };
33
- const splitTopLevel = (input) => {
34
- const parts = [];
35
- let bracket = 0;
36
- let paren = 0;
37
- let quote = 0;
38
- let value = "";
39
- let escaped = false;
40
- for (const ch of input) {
41
- if (escaped === true) {
42
- value += ch;
43
- escaped = false;
44
- continue;
45
- }
46
- if (ch === "\\") {
47
- value += ch;
48
- escaped = true;
49
- continue;
50
- }
51
- if (ch === "\"") {
52
- quote = quote === 1 ? 0 : 1;
53
- value += ch;
54
- continue;
55
- }
56
- if (quote === 0) {
57
- if (ch === "[") bracket++;
58
- else if (ch === "]" && bracket > 0) bracket--;
59
- else if (bracket === 0) {
60
- if (ch === "(") paren++;
61
- else if (ch === ")" && paren > 0) paren--;
62
- else if (ch === "|" && paren === 0) {
63
- parts.push(value);
64
- value = "";
65
- continue;
66
- }
67
- }
68
- }
69
- value += ch;
70
- }
71
- parts.push(value);
72
- return parts;
73
- };
74
- const isPlainBranch = (branch) => {
75
- let escaped = false;
76
- for (const ch of branch) {
77
- if (escaped === true) {
78
- escaped = false;
79
- continue;
80
- }
81
- if (ch === "\\") {
82
- escaped = true;
83
- continue;
84
- }
85
- if (/[?*+@!()[\]{}]/.test(ch)) return false;
86
- }
87
- return true;
88
- };
89
- const normalizeSimpleBranch = (branch) => {
90
- let value = branch.trim();
91
- let changed = true;
92
- while (changed === true) {
93
- changed = false;
94
- if (/^@\([^\\()[\]{}|]+\)$/.test(value)) {
95
- value = value.slice(2, -1);
96
- changed = true;
97
- }
98
- }
99
- if (!isPlainBranch(value)) return;
100
- return value.replace(/\\(.)/g, "$1");
101
- };
102
- const hasRepeatedCharPrefixOverlap = (branches) => {
103
- const values = branches.map(normalizeSimpleBranch).filter(Boolean);
104
- for (let i = 0; i < values.length; i++) for (let j = i + 1; j < values.length; j++) {
105
- const a = values[i];
106
- const b = values[j];
107
- const char = a[0];
108
- if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) continue;
109
- if (a === b || a.startsWith(b) || b.startsWith(a)) return true;
110
- }
111
- return false;
112
- };
113
- const parseRepeatedExtglob = (pattern, requireEnd = true) => {
114
- if (pattern[0] !== "+" && pattern[0] !== "*" || pattern[1] !== "(") return;
115
- let bracket = 0;
116
- let paren = 0;
117
- let quote = 0;
118
- let escaped = false;
119
- for (let i = 1; i < pattern.length; i++) {
120
- const ch = pattern[i];
121
- if (escaped === true) {
122
- escaped = false;
123
- continue;
124
- }
125
- if (ch === "\\") {
126
- escaped = true;
127
- continue;
128
- }
129
- if (ch === "\"") {
130
- quote = quote === 1 ? 0 : 1;
131
- continue;
132
- }
133
- if (quote === 1) continue;
134
- if (ch === "[") {
135
- bracket++;
136
- continue;
137
- }
138
- if (ch === "]" && bracket > 0) {
139
- bracket--;
140
- continue;
141
- }
142
- if (bracket > 0) continue;
143
- if (ch === "(") {
144
- paren++;
145
- continue;
146
- }
147
- if (ch === ")") {
148
- paren--;
149
- if (paren === 0) {
150
- if (requireEnd === true && i !== pattern.length - 1) return;
151
- return {
152
- type: pattern[0],
153
- body: pattern.slice(2, i),
154
- end: i
155
- };
156
- }
157
- }
158
- }
159
- };
160
- const getStarExtglobSequenceOutput = (pattern) => {
161
- let index = 0;
162
- const chars = [];
163
- while (index < pattern.length) {
164
- const match = parseRepeatedExtglob(pattern.slice(index), false);
165
- if (!match || match.type !== "*") return;
166
- const branches = splitTopLevel(match.body).map((branch) => branch.trim());
167
- if (branches.length !== 1) return;
168
- const branch = normalizeSimpleBranch(branches[0]);
169
- if (!branch || branch.length !== 1) return;
170
- chars.push(branch);
171
- index += match.end + 1;
172
- }
173
- if (chars.length < 1) return;
174
- return `${chars.length === 1 ? utils.escapeRegex(chars[0]) : `[${chars.map((ch) => utils.escapeRegex(ch)).join("")}]`}*`;
175
- };
176
- const repeatedExtglobRecursion = (pattern) => {
177
- let depth = 0;
178
- let value = pattern.trim();
179
- let match = parseRepeatedExtglob(value);
180
- while (match) {
181
- depth++;
182
- value = match.body.trim();
183
- match = parseRepeatedExtglob(value);
184
- }
185
- return depth;
186
- };
187
- const analyzeRepeatedExtglob = (body, options) => {
188
- if (options.maxExtglobRecursion === false) return { risky: false };
189
- const max = typeof options.maxExtglobRecursion === "number" ? options.maxExtglobRecursion : constants.DEFAULT_MAX_EXTGLOB_RECURSION;
190
- const branches = splitTopLevel(body).map((branch) => branch.trim());
191
- if (branches.length > 1) {
192
- if (branches.some((branch) => branch === "") || branches.some((branch) => /^[*?]+$/.test(branch)) || hasRepeatedCharPrefixOverlap(branches)) return { risky: true };
193
- }
194
- for (const branch of branches) {
195
- const safeOutput = getStarExtglobSequenceOutput(branch);
196
- if (safeOutput) return {
197
- risky: true,
198
- safeOutput
199
- };
200
- if (repeatedExtglobRecursion(branch) > max) return { risky: true };
201
- }
202
- return { risky: false };
203
- };
204
- /**
205
- * Parse the given input string.
206
- * @param {String} input
207
- * @param {Object} options
208
- * @return {Object}
209
- */
210
- const parse = (input, options) => {
211
- if (typeof input !== "string") throw new TypeError("Expected a string");
212
- input = REPLACEMENTS[input] || input;
213
- const opts = { ...options };
214
- const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
215
- let len = input.length;
216
- if (len > max) throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
217
- const bos = {
218
- type: "bos",
219
- value: "",
220
- output: opts.prepend || ""
221
- };
222
- const tokens = [bos];
223
- const capture = opts.capture ? "" : "?:";
224
- const win32 = utils.isWindows(options);
225
- const PLATFORM_CHARS = constants.globChars(win32);
226
- const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);
227
- const { DOT_LITERAL, PLUS_LITERAL, SLASH_LITERAL, ONE_CHAR, DOTS_SLASH, NO_DOT, NO_DOT_SLASH, NO_DOTS_SLASH, QMARK, QMARK_NO_DOT, STAR, START_ANCHOR } = PLATFORM_CHARS;
228
- const globstar = (opts) => {
229
- return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
230
- };
231
- const nodot = opts.dot ? "" : NO_DOT;
232
- const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;
233
- let star = opts.bash === true ? globstar(opts) : STAR;
234
- if (opts.capture) star = `(${star})`;
235
- if (typeof opts.noext === "boolean") opts.noextglob = opts.noext;
236
- const state = {
237
- input,
238
- index: -1,
239
- start: 0,
240
- dot: opts.dot === true,
241
- consumed: "",
242
- output: "",
243
- prefix: "",
244
- backtrack: false,
245
- negated: false,
246
- brackets: 0,
247
- braces: 0,
248
- parens: 0,
249
- quotes: 0,
250
- globstar: false,
251
- tokens
252
- };
253
- input = utils.removePrefix(input, state);
254
- len = input.length;
255
- const extglobs = [];
256
- const braces = [];
257
- const stack = [];
258
- let prev = bos;
259
- let value;
260
- /**
261
- * Tokenizing helpers
262
- */
263
- const eos = () => state.index === len - 1;
264
- const peek = state.peek = (n = 1) => input[state.index + n];
265
- const advance = state.advance = () => input[++state.index] || "";
266
- const remaining = () => input.slice(state.index + 1);
267
- const consume = (value = "", num = 0) => {
268
- state.consumed += value;
269
- state.index += num;
270
- };
271
- const append = (token) => {
272
- state.output += token.output != null ? token.output : token.value;
273
- consume(token.value);
274
- };
275
- const negate = () => {
276
- let count = 1;
277
- while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) {
278
- advance();
279
- state.start++;
280
- count++;
281
- }
282
- if (count % 2 === 0) return false;
283
- state.negated = true;
284
- state.start++;
285
- return true;
286
- };
287
- const increment = (type) => {
288
- state[type]++;
289
- stack.push(type);
290
- };
291
- const decrement = (type) => {
292
- state[type]--;
293
- stack.pop();
294
- };
295
- /**
296
- * Push tokens onto the tokens array. This helper speeds up
297
- * tokenizing by 1) helping us avoid backtracking as much as possible,
298
- * and 2) helping us avoid creating extra tokens when consecutive
299
- * characters are plain text. This improves performance and simplifies
300
- * lookbehinds.
301
- */
302
- const push = (tok) => {
303
- if (prev.type === "globstar") {
304
- const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace");
305
- const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren");
306
- if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) {
307
- state.output = state.output.slice(0, -prev.output.length);
308
- prev.type = "star";
309
- prev.value = "*";
310
- prev.output = star;
311
- state.output += prev.output;
312
- }
313
- }
314
- if (extglobs.length && tok.type !== "paren") extglobs[extglobs.length - 1].inner += tok.value;
315
- if (tok.value || tok.output) append(tok);
316
- if (prev && prev.type === "text" && tok.type === "text") {
317
- prev.value += tok.value;
318
- prev.output = (prev.output || "") + tok.value;
319
- return;
320
- }
321
- tok.prev = prev;
322
- tokens.push(tok);
323
- prev = tok;
324
- };
325
- const extglobOpen = (type, value) => {
326
- const token = {
327
- ...EXTGLOB_CHARS[value],
328
- conditions: 1,
329
- inner: ""
330
- };
331
- token.prev = prev;
332
- token.parens = state.parens;
333
- token.output = state.output;
334
- token.startIndex = state.index;
335
- token.tokensIndex = tokens.length;
336
- const output = (opts.capture ? "(" : "") + token.open;
337
- increment("parens");
338
- push({
339
- type,
340
- value,
341
- output: state.output ? "" : ONE_CHAR
342
- });
343
- push({
344
- type: "paren",
345
- extglob: true,
346
- value: advance(),
347
- output
348
- });
349
- extglobs.push(token);
350
- };
351
- const extglobClose = (token) => {
352
- const literal = input.slice(token.startIndex, state.index + 1);
353
- const analysis = analyzeRepeatedExtglob(input.slice(token.startIndex + 2, state.index), opts);
354
- if ((token.type === "plus" || token.type === "star") && analysis.risky) {
355
- const safeOutput = analysis.safeOutput ? (token.output ? "" : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput) : void 0;
356
- const open = tokens[token.tokensIndex];
357
- open.type = "text";
358
- open.value = literal;
359
- open.output = safeOutput || utils.escapeRegex(literal);
360
- for (let i = token.tokensIndex + 1; i < tokens.length; i++) {
361
- tokens[i].value = "";
362
- tokens[i].output = "";
363
- delete tokens[i].suffix;
364
- }
365
- state.output = token.output + open.output;
366
- state.backtrack = true;
367
- push({
368
- type: "paren",
369
- extglob: true,
370
- value,
371
- output: ""
372
- });
373
- decrement("parens");
374
- return;
375
- }
376
- let output = token.close + (opts.capture ? ")" : "");
377
- let rest;
378
- if (token.type === "negate") {
379
- let extglobStar = star;
380
- if (token.inner && token.inner.length > 1 && token.inner.includes("/")) extglobStar = globstar(opts);
381
- if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) output = token.close = `)$))${extglobStar}`;
382
- if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) output = token.close = `)${parse(rest, {
383
- ...options,
384
- fastpaths: false
385
- }).output})${extglobStar})`;
386
- if (token.prev.type === "bos") state.negatedExtglob = true;
387
- }
388
- push({
389
- type: "paren",
390
- extglob: true,
391
- value,
392
- output
393
- });
394
- decrement("parens");
395
- };
396
- /**
397
- * Fast paths
398
- */
399
- if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) {
400
- let backslashes = false;
401
- let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {
402
- if (first === "\\") {
403
- backslashes = true;
404
- return m;
405
- }
406
- if (first === "?") {
407
- if (esc) return esc + first + (rest ? QMARK.repeat(rest.length) : "");
408
- if (index === 0) return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : "");
409
- return QMARK.repeat(chars.length);
410
- }
411
- if (first === ".") return DOT_LITERAL.repeat(chars.length);
412
- if (first === "*") {
413
- if (esc) return esc + first + (rest ? star : "");
414
- return star;
415
- }
416
- return esc ? m : `\\${m}`;
417
- });
418
- if (backslashes === true) if (opts.unescape === true) output = output.replace(/\\/g, "");
419
- else output = output.replace(/\\+/g, (m) => {
420
- return m.length % 2 === 0 ? "\\\\" : m ? "\\" : "";
421
- });
422
- if (output === input && opts.contains === true) {
423
- state.output = input;
424
- return state;
425
- }
426
- state.output = utils.wrapOutput(output, state, options);
427
- return state;
428
- }
429
- /**
430
- * Tokenize input until we reach end-of-string
431
- */
432
- while (!eos()) {
433
- value = advance();
434
- if (value === "\0") continue;
435
- /**
436
- * Escaped characters
437
- */
438
- if (value === "\\") {
439
- const next = peek();
440
- if (next === "/" && opts.bash !== true) continue;
441
- if (next === "." || next === ";") continue;
442
- if (!next) {
443
- value += "\\";
444
- push({
445
- type: "text",
446
- value
447
- });
448
- continue;
449
- }
450
- const match = /^\\+/.exec(remaining());
451
- let slashes = 0;
452
- if (match && match[0].length > 2) {
453
- slashes = match[0].length;
454
- state.index += slashes;
455
- if (slashes % 2 !== 0) value += "\\";
456
- }
457
- if (opts.unescape === true) value = advance();
458
- else value += advance();
459
- if (state.brackets === 0) {
460
- push({
461
- type: "text",
462
- value
463
- });
464
- continue;
465
- }
466
- }
467
- /**
468
- * If we're inside a regex character class, continue
469
- * until we reach the closing bracket.
470
- */
471
- if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) {
472
- if (opts.posix !== false && value === ":") {
473
- const inner = prev.value.slice(1);
474
- if (inner.includes("[")) {
475
- prev.posix = true;
476
- if (inner.includes(":")) {
477
- const idx = prev.value.lastIndexOf("[");
478
- const pre = prev.value.slice(0, idx);
479
- const posix = POSIX_REGEX_SOURCE[prev.value.slice(idx + 2)];
480
- if (posix) {
481
- prev.value = pre + posix;
482
- state.backtrack = true;
483
- advance();
484
- if (!bos.output && tokens.indexOf(prev) === 1) bos.output = ONE_CHAR;
485
- continue;
486
- }
487
- }
488
- }
489
- }
490
- if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") value = `\\${value}`;
491
- if (value === "]" && (prev.value === "[" || prev.value === "[^")) value = `\\${value}`;
492
- if (opts.posix === true && value === "!" && prev.value === "[") value = "^";
493
- prev.value += value;
494
- append({ value });
495
- continue;
496
- }
497
- /**
498
- * If we're inside a quoted string, continue
499
- * until we reach the closing double quote.
500
- */
501
- if (state.quotes === 1 && value !== "\"") {
502
- value = utils.escapeRegex(value);
503
- prev.value += value;
504
- append({ value });
505
- continue;
506
- }
507
- /**
508
- * Double quotes
509
- */
510
- if (value === "\"") {
511
- state.quotes = state.quotes === 1 ? 0 : 1;
512
- if (opts.keepQuotes === true) push({
513
- type: "text",
514
- value
515
- });
516
- continue;
517
- }
518
- /**
519
- * Parentheses
520
- */
521
- if (value === "(") {
522
- increment("parens");
523
- push({
524
- type: "paren",
525
- value
526
- });
527
- continue;
528
- }
529
- if (value === ")") {
530
- if (state.parens === 0 && opts.strictBrackets === true) throw new SyntaxError(syntaxError("opening", "("));
531
- const extglob = extglobs[extglobs.length - 1];
532
- if (extglob && state.parens === extglob.parens + 1) {
533
- extglobClose(extglobs.pop());
534
- continue;
535
- }
536
- push({
537
- type: "paren",
538
- value,
539
- output: state.parens ? ")" : "\\)"
540
- });
541
- decrement("parens");
542
- continue;
543
- }
544
- /**
545
- * Square brackets
546
- */
547
- if (value === "[") {
548
- if (opts.nobracket === true || !remaining().includes("]")) {
549
- if (opts.nobracket !== true && opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "]"));
550
- value = `\\${value}`;
551
- } else increment("brackets");
552
- push({
553
- type: "bracket",
554
- value
555
- });
556
- continue;
557
- }
558
- if (value === "]") {
559
- if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) {
560
- push({
561
- type: "text",
562
- value,
563
- output: `\\${value}`
564
- });
565
- continue;
566
- }
567
- if (state.brackets === 0) {
568
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("opening", "["));
569
- push({
570
- type: "text",
571
- value,
572
- output: `\\${value}`
573
- });
574
- continue;
575
- }
576
- decrement("brackets");
577
- const prevValue = prev.value.slice(1);
578
- if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) value = `/${value}`;
579
- prev.value += value;
580
- append({ value });
581
- if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) continue;
582
- const escaped = utils.escapeRegex(prev.value);
583
- state.output = state.output.slice(0, -prev.value.length);
584
- if (opts.literalBrackets === true) {
585
- state.output += escaped;
586
- prev.value = escaped;
587
- continue;
588
- }
589
- prev.value = `(${capture}${escaped}|${prev.value})`;
590
- state.output += prev.value;
591
- continue;
592
- }
593
- /**
594
- * Braces
595
- */
596
- if (value === "{" && opts.nobrace !== true) {
597
- increment("braces");
598
- const open = {
599
- type: "brace",
600
- value,
601
- output: "(",
602
- outputIndex: state.output.length,
603
- tokensIndex: state.tokens.length
604
- };
605
- braces.push(open);
606
- push(open);
607
- continue;
608
- }
609
- if (value === "}") {
610
- const brace = braces[braces.length - 1];
611
- if (opts.nobrace === true || !brace) {
612
- push({
613
- type: "text",
614
- value,
615
- output: value
616
- });
617
- continue;
618
- }
619
- let output = ")";
620
- if (brace.dots === true) {
621
- const arr = tokens.slice();
622
- const range = [];
623
- for (let i = arr.length - 1; i >= 0; i--) {
624
- tokens.pop();
625
- if (arr[i].type === "brace") break;
626
- if (arr[i].type !== "dots") range.unshift(arr[i].value);
627
- }
628
- output = expandRange(range, opts);
629
- state.backtrack = true;
630
- }
631
- if (brace.comma !== true && brace.dots !== true) {
632
- const out = state.output.slice(0, brace.outputIndex);
633
- const toks = state.tokens.slice(brace.tokensIndex);
634
- brace.value = brace.output = "\\{";
635
- value = output = "\\}";
636
- state.output = out;
637
- for (const t of toks) state.output += t.output || t.value;
638
- }
639
- push({
640
- type: "brace",
641
- value,
642
- output
643
- });
644
- decrement("braces");
645
- braces.pop();
646
- continue;
647
- }
648
- /**
649
- * Pipes
650
- */
651
- if (value === "|") {
652
- if (extglobs.length > 0) extglobs[extglobs.length - 1].conditions++;
653
- push({
654
- type: "text",
655
- value
656
- });
657
- continue;
658
- }
659
- /**
660
- * Commas
661
- */
662
- if (value === ",") {
663
- let output = value;
664
- const brace = braces[braces.length - 1];
665
- if (brace && stack[stack.length - 1] === "braces") {
666
- brace.comma = true;
667
- output = "|";
668
- }
669
- push({
670
- type: "comma",
671
- value,
672
- output
673
- });
674
- continue;
675
- }
676
- /**
677
- * Slashes
678
- */
679
- if (value === "/") {
680
- if (prev.type === "dot" && state.index === state.start + 1) {
681
- state.start = state.index + 1;
682
- state.consumed = "";
683
- state.output = "";
684
- tokens.pop();
685
- prev = bos;
686
- continue;
687
- }
688
- push({
689
- type: "slash",
690
- value,
691
- output: SLASH_LITERAL
692
- });
693
- continue;
694
- }
695
- /**
696
- * Dots
697
- */
698
- if (value === ".") {
699
- if (state.braces > 0 && prev.type === "dot") {
700
- if (prev.value === ".") prev.output = DOT_LITERAL;
701
- const brace = braces[braces.length - 1];
702
- prev.type = "dots";
703
- prev.output += value;
704
- prev.value += value;
705
- brace.dots = true;
706
- continue;
707
- }
708
- if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") {
709
- push({
710
- type: "text",
711
- value,
712
- output: DOT_LITERAL
713
- });
714
- continue;
715
- }
716
- push({
717
- type: "dot",
718
- value,
719
- output: DOT_LITERAL
720
- });
721
- continue;
722
- }
723
- /**
724
- * Question marks
725
- */
726
- if (value === "?") {
727
- if (!(prev && prev.value === "(") && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") {
728
- extglobOpen("qmark", value);
729
- continue;
730
- }
731
- if (prev && prev.type === "paren") {
732
- const next = peek();
733
- let output = value;
734
- if (next === "<" && !utils.supportsLookbehinds()) throw new Error("Node.js v10 or higher is required for regex lookbehinds");
735
- if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) output = `\\${value}`;
736
- push({
737
- type: "text",
738
- value,
739
- output
740
- });
741
- continue;
742
- }
743
- if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) {
744
- push({
745
- type: "qmark",
746
- value,
747
- output: QMARK_NO_DOT
748
- });
749
- continue;
750
- }
751
- push({
752
- type: "qmark",
753
- value,
754
- output: QMARK
755
- });
756
- continue;
757
- }
758
- /**
759
- * Exclamation
760
- */
761
- if (value === "!") {
762
- if (opts.noextglob !== true && peek() === "(") {
763
- if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) {
764
- extglobOpen("negate", value);
765
- continue;
766
- }
767
- }
768
- if (opts.nonegate !== true && state.index === 0) {
769
- negate();
770
- continue;
771
- }
772
- }
773
- /**
774
- * Plus
775
- */
776
- if (value === "+") {
777
- if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") {
778
- extglobOpen("plus", value);
779
- continue;
780
- }
781
- if (prev && prev.value === "(" || opts.regex === false) {
782
- push({
783
- type: "plus",
784
- value,
785
- output: PLUS_LITERAL
786
- });
787
- continue;
788
- }
789
- if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) {
790
- push({
791
- type: "plus",
792
- value
793
- });
794
- continue;
795
- }
796
- push({
797
- type: "plus",
798
- value: PLUS_LITERAL
799
- });
800
- continue;
801
- }
802
- /**
803
- * Plain text
804
- */
805
- if (value === "@") {
806
- if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") {
807
- push({
808
- type: "at",
809
- extglob: true,
810
- value,
811
- output: ""
812
- });
813
- continue;
814
- }
815
- push({
816
- type: "text",
817
- value
818
- });
819
- continue;
820
- }
821
- /**
822
- * Plain text
823
- */
824
- if (value !== "*") {
825
- if (value === "$" || value === "^") value = `\\${value}`;
826
- const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());
827
- if (match) {
828
- value += match[0];
829
- state.index += match[0].length;
830
- }
831
- push({
832
- type: "text",
833
- value
834
- });
835
- continue;
836
- }
837
- /**
838
- * Stars
839
- */
840
- if (prev && (prev.type === "globstar" || prev.star === true)) {
841
- prev.type = "star";
842
- prev.star = true;
843
- prev.value += value;
844
- prev.output = star;
845
- state.backtrack = true;
846
- state.globstar = true;
847
- consume(value);
848
- continue;
849
- }
850
- let rest = remaining();
851
- if (opts.noextglob !== true && /^\([^?]/.test(rest)) {
852
- extglobOpen("star", value);
853
- continue;
854
- }
855
- if (prev.type === "star") {
856
- if (opts.noglobstar === true) {
857
- consume(value);
858
- continue;
859
- }
860
- const prior = prev.prev;
861
- const before = prior.prev;
862
- const isStart = prior.type === "slash" || prior.type === "bos";
863
- const afterStar = before && (before.type === "star" || before.type === "globstar");
864
- if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) {
865
- push({
866
- type: "star",
867
- value,
868
- output: ""
869
- });
870
- continue;
871
- }
872
- const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace");
873
- const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren");
874
- if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) {
875
- push({
876
- type: "star",
877
- value,
878
- output: ""
879
- });
880
- continue;
881
- }
882
- while (rest.slice(0, 3) === "/**") {
883
- const after = input[state.index + 4];
884
- if (after && after !== "/") break;
885
- rest = rest.slice(3);
886
- consume("/**", 3);
887
- }
888
- if (prior.type === "bos" && eos()) {
889
- prev.type = "globstar";
890
- prev.value += value;
891
- prev.output = globstar(opts);
892
- state.output = prev.output;
893
- state.globstar = true;
894
- consume(value);
895
- continue;
896
- }
897
- if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) {
898
- state.output = state.output.slice(0, -(prior.output + prev.output).length);
899
- prior.output = `(?:${prior.output}`;
900
- prev.type = "globstar";
901
- prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)");
902
- prev.value += value;
903
- state.globstar = true;
904
- state.output += prior.output + prev.output;
905
- consume(value);
906
- continue;
907
- }
908
- if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") {
909
- const end = rest[1] !== void 0 ? "|$" : "";
910
- state.output = state.output.slice(0, -(prior.output + prev.output).length);
911
- prior.output = `(?:${prior.output}`;
912
- prev.type = "globstar";
913
- prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
914
- prev.value += value;
915
- state.output += prior.output + prev.output;
916
- state.globstar = true;
917
- consume(value + advance());
918
- push({
919
- type: "slash",
920
- value: "/",
921
- output: ""
922
- });
923
- continue;
924
- }
925
- if (prior.type === "bos" && rest[0] === "/") {
926
- prev.type = "globstar";
927
- prev.value += value;
928
- prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
929
- state.output = prev.output;
930
- state.globstar = true;
931
- consume(value + advance());
932
- push({
933
- type: "slash",
934
- value: "/",
935
- output: ""
936
- });
937
- continue;
938
- }
939
- state.output = state.output.slice(0, -prev.output.length);
940
- prev.type = "globstar";
941
- prev.output = globstar(opts);
942
- prev.value += value;
943
- state.output += prev.output;
944
- state.globstar = true;
945
- consume(value);
946
- continue;
947
- }
948
- const token = {
949
- type: "star",
950
- value,
951
- output: star
952
- };
953
- if (opts.bash === true) {
954
- token.output = ".*?";
955
- if (prev.type === "bos" || prev.type === "slash") token.output = nodot + token.output;
956
- push(token);
957
- continue;
958
- }
959
- if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) {
960
- token.output = value;
961
- push(token);
962
- continue;
963
- }
964
- if (state.index === state.start || prev.type === "slash" || prev.type === "dot") {
965
- if (prev.type === "dot") {
966
- state.output += NO_DOT_SLASH;
967
- prev.output += NO_DOT_SLASH;
968
- } else if (opts.dot === true) {
969
- state.output += NO_DOTS_SLASH;
970
- prev.output += NO_DOTS_SLASH;
971
- } else {
972
- state.output += nodot;
973
- prev.output += nodot;
974
- }
975
- if (peek() !== "*") {
976
- state.output += ONE_CHAR;
977
- prev.output += ONE_CHAR;
978
- }
979
- }
980
- push(token);
981
- }
982
- while (state.brackets > 0) {
983
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "]"));
984
- state.output = utils.escapeLast(state.output, "[");
985
- decrement("brackets");
986
- }
987
- while (state.parens > 0) {
988
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", ")"));
989
- state.output = utils.escapeLast(state.output, "(");
990
- decrement("parens");
991
- }
992
- while (state.braces > 0) {
993
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "}"));
994
- state.output = utils.escapeLast(state.output, "{");
995
- decrement("braces");
996
- }
997
- if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) push({
998
- type: "maybe_slash",
999
- value: "",
1000
- output: `${SLASH_LITERAL}?`
1001
- });
1002
- if (state.backtrack === true) {
1003
- state.output = "";
1004
- for (const token of state.tokens) {
1005
- state.output += token.output != null ? token.output : token.value;
1006
- if (token.suffix) state.output += token.suffix;
1007
- }
1008
- }
1009
- return state;
1010
- };
1011
- /**
1012
- * Fast paths for creating regular expressions for common glob patterns.
1013
- * This can significantly speed up processing and has very little downside
1014
- * impact when none of the fast paths match.
1015
- */
1016
- parse.fastpaths = (input, options) => {
1017
- const opts = { ...options };
1018
- const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
1019
- const len = input.length;
1020
- if (len > max) throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
1021
- input = REPLACEMENTS[input] || input;
1022
- const win32 = utils.isWindows(options);
1023
- const { DOT_LITERAL, SLASH_LITERAL, ONE_CHAR, DOTS_SLASH, NO_DOT, NO_DOTS, NO_DOTS_SLASH, STAR, START_ANCHOR } = constants.globChars(win32);
1024
- const nodot = opts.dot ? NO_DOTS : NO_DOT;
1025
- const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
1026
- const capture = opts.capture ? "" : "?:";
1027
- const state = {
1028
- negated: false,
1029
- prefix: ""
1030
- };
1031
- let star = opts.bash === true ? ".*?" : STAR;
1032
- if (opts.capture) star = `(${star})`;
1033
- const globstar = (opts) => {
1034
- if (opts.noglobstar === true) return star;
1035
- return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
1036
- };
1037
- const create = (str) => {
1038
- switch (str) {
1039
- case "*": return `${nodot}${ONE_CHAR}${star}`;
1040
- case ".*": return `${DOT_LITERAL}${ONE_CHAR}${star}`;
1041
- case "*.*": return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
1042
- case "*/*": return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
1043
- case "**": return nodot + globstar(opts);
1044
- case "**/*": return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
1045
- case "**/*.*": return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
1046
- case "**/.*": return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
1047
- default: {
1048
- const match = /^(.*?)\.(\w+)$/.exec(str);
1049
- if (!match) return;
1050
- const source = create(match[1]);
1051
- if (!source) return;
1052
- return source + DOT_LITERAL + match[2];
1053
- }
1054
- }
1055
- };
1056
- let source = create(utils.removePrefix(input, state));
1057
- if (source && opts.strictSlashes !== true) source += `${SLASH_LITERAL}?`;
1058
- return source;
1059
- };
1060
- module.exports = parse;
1061
- }));
1062
-
1063
- //#endregion
1064
- export default require_parse();
1065
-
1066
- export { require_parse };
1067
- //# sourceMappingURL=parse.mjs.map