@maizzle/framework 6.0.0-rc.8 → 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 (606) 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 +56 -23
  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} +16 -13
  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} +29 -5
  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} +17 -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} +207 -106
  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} +14 -12
  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} +270 -40
  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 -30
  452. package/dist/build.d.mts +0 -19
  453. package/dist/build.d.mts.map +0 -1
  454. package/dist/build.mjs +0 -140
  455. package/dist/build.mjs.map +0 -1
  456. package/dist/components/Divider.vue +0 -133
  457. package/dist/components/Image.vue +0 -70
  458. package/dist/components/Overlap.vue +0 -80
  459. package/dist/components/utils.d.mts +0 -5
  460. package/dist/components/utils.d.mts.map +0 -1
  461. package/dist/components/utils.mjs +0 -9
  462. package/dist/components/utils.mjs.map +0 -1
  463. package/dist/composables/defineConfig.d.mts +0 -14
  464. package/dist/composables/defineConfig.d.mts.map +0 -1
  465. package/dist/composables/defineConfig.mjs.map +0 -1
  466. package/dist/composables/renderContext.d.mts +0 -24
  467. package/dist/composables/renderContext.d.mts.map +0 -1
  468. package/dist/composables/renderContext.mjs +0 -6
  469. package/dist/composables/renderContext.mjs.map +0 -1
  470. package/dist/composables/useConfig.d.mts +0 -9
  471. package/dist/composables/useConfig.d.mts.map +0 -1
  472. package/dist/composables/useConfig.mjs +0 -13
  473. package/dist/composables/useConfig.mjs.map +0 -1
  474. package/dist/composables/useDoctype.d.mts.map +0 -1
  475. package/dist/composables/useDoctype.mjs.map +0 -1
  476. package/dist/composables/useEvent.d.mts.map +0 -1
  477. package/dist/composables/useEvent.mjs.map +0 -1
  478. package/dist/composables/usePlaintext.d.mts.map +0 -1
  479. package/dist/composables/usePlaintext.mjs.map +0 -1
  480. package/dist/composables/usePreviewText.d.mts +0 -24
  481. package/dist/composables/usePreviewText.d.mts.map +0 -1
  482. package/dist/composables/usePreviewText.mjs +0 -29
  483. package/dist/composables/usePreviewText.mjs.map +0 -1
  484. package/dist/config/defaults.d.mts.map +0 -1
  485. package/dist/config/defaults.mjs.map +0 -1
  486. package/dist/config/index.d.mts +0 -15
  487. package/dist/config/index.d.mts.map +0 -1
  488. package/dist/config/index.mjs.map +0 -1
  489. package/dist/events/index.d.mts.map +0 -1
  490. package/dist/events/index.mjs.map +0 -1
  491. package/dist/index.d.mts +0 -30
  492. package/dist/index.mjs +0 -30
  493. package/dist/plaintext.d.mts.map +0 -1
  494. package/dist/plaintext.mjs.map +0 -1
  495. package/dist/plugin.d.mts.map +0 -1
  496. package/dist/plugin.mjs.map +0 -1
  497. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
  498. package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
  499. package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
  500. package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
  501. package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
  502. package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
  503. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
  504. package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
  505. package/dist/render/createRenderer.d.mts.map +0 -1
  506. package/dist/render/createRenderer.mjs +0 -279
  507. package/dist/render/createRenderer.mjs.map +0 -1
  508. package/dist/render/index.d.mts +0 -26
  509. package/dist/render/index.d.mts.map +0 -1
  510. package/dist/render/index.mjs +0 -45
  511. package/dist/render/index.mjs.map +0 -1
  512. package/dist/serve.d.mts.map +0 -1
  513. package/dist/serve.mjs.map +0 -1
  514. package/dist/server/compatibility.d.mts +0 -5
  515. package/dist/server/compatibility.d.mts.map +0 -1
  516. package/dist/server/compatibility.mjs +0 -97
  517. package/dist/server/compatibility.mjs.map +0 -1
  518. package/dist/server/email.d.mts.map +0 -1
  519. package/dist/server/email.mjs.map +0 -1
  520. package/dist/server/linter.d.mts +0 -5
  521. package/dist/server/linter.d.mts.map +0 -1
  522. package/dist/server/linter.mjs +0 -189
  523. package/dist/server/linter.mjs.map +0 -1
  524. package/dist/transformers/addAttributes.d.mts +0 -32
  525. package/dist/transformers/addAttributes.d.mts.map +0 -1
  526. package/dist/transformers/addAttributes.mjs.map +0 -1
  527. package/dist/transformers/attributeToStyle.d.mts +0 -25
  528. package/dist/transformers/attributeToStyle.d.mts.map +0 -1
  529. package/dist/transformers/attributeToStyle.mjs +0 -80
  530. package/dist/transformers/attributeToStyle.mjs.map +0 -1
  531. package/dist/transformers/base.d.mts +0 -8
  532. package/dist/transformers/base.d.mts.map +0 -1
  533. package/dist/transformers/base.mjs.map +0 -1
  534. package/dist/transformers/entities.d.mts +0 -8
  535. package/dist/transformers/entities.d.mts.map +0 -1
  536. package/dist/transformers/entities.mjs +0 -41
  537. package/dist/transformers/entities.mjs.map +0 -1
  538. package/dist/transformers/filters/defaults.d.mts.map +0 -1
  539. package/dist/transformers/filters/defaults.mjs.map +0 -1
  540. package/dist/transformers/filters/index.d.mts +0 -22
  541. package/dist/transformers/filters/index.d.mts.map +0 -1
  542. package/dist/transformers/filters/index.mjs +0 -67
  543. package/dist/transformers/filters/index.mjs.map +0 -1
  544. package/dist/transformers/format.d.mts +0 -15
  545. package/dist/transformers/format.d.mts.map +0 -1
  546. package/dist/transformers/format.mjs +0 -26
  547. package/dist/transformers/format.mjs.map +0 -1
  548. package/dist/transformers/index.d.mts.map +0 -1
  549. package/dist/transformers/index.mjs +0 -78
  550. package/dist/transformers/index.mjs.map +0 -1
  551. package/dist/transformers/inlineCSS.d.mts +0 -17
  552. package/dist/transformers/inlineCSS.d.mts.map +0 -1
  553. package/dist/transformers/inlineCSS.mjs +0 -70
  554. package/dist/transformers/inlineCSS.mjs.map +0 -1
  555. package/dist/transformers/inlineLink.d.mts +0 -14
  556. package/dist/transformers/inlineLink.d.mts.map +0 -1
  557. package/dist/transformers/inlineLink.mjs.map +0 -1
  558. package/dist/transformers/minify.d.mts +0 -17
  559. package/dist/transformers/minify.d.mts.map +0 -1
  560. package/dist/transformers/minify.mjs +0 -24
  561. package/dist/transformers/minify.mjs.map +0 -1
  562. package/dist/transformers/purgeCSS.d.mts +0 -23
  563. package/dist/transformers/purgeCSS.d.mts.map +0 -1
  564. package/dist/transformers/purgeCSS.mjs +0 -132
  565. package/dist/transformers/purgeCSS.mjs.map +0 -1
  566. package/dist/transformers/removeAttributes.d.mts +0 -31
  567. package/dist/transformers/removeAttributes.d.mts.map +0 -1
  568. package/dist/transformers/removeAttributes.mjs +0 -63
  569. package/dist/transformers/removeAttributes.mjs.map +0 -1
  570. package/dist/transformers/replaceStrings.d.mts.map +0 -1
  571. package/dist/transformers/replaceStrings.mjs.map +0 -1
  572. package/dist/transformers/safeClassNames.d.mts +0 -22
  573. package/dist/transformers/safeClassNames.d.mts.map +0 -1
  574. package/dist/transformers/safeClassNames.mjs.map +0 -1
  575. package/dist/transformers/shorthandCSS.d.mts +0 -24
  576. package/dist/transformers/shorthandCSS.d.mts.map +0 -1
  577. package/dist/transformers/shorthandCSS.mjs +0 -48
  578. package/dist/transformers/shorthandCSS.mjs.map +0 -1
  579. package/dist/transformers/tailwindcss.d.mts.map +0 -1
  580. package/dist/transformers/tailwindcss.mjs.map +0 -1
  581. package/dist/transformers/urlQuery.d.mts +0 -24
  582. package/dist/transformers/urlQuery.d.mts.map +0 -1
  583. package/dist/transformers/urlQuery.mjs +0 -65
  584. package/dist/transformers/urlQuery.mjs.map +0 -1
  585. package/dist/types/config.d.mts.map +0 -1
  586. package/dist/types/config.mjs +0 -1
  587. package/dist/types/index.d.mts +0 -2
  588. package/dist/types/index.mjs +0 -1
  589. package/dist/utils/ast/index.d.mts +0 -4
  590. package/dist/utils/ast/index.mjs +0 -5
  591. package/dist/utils/ast/parser.d.mts.map +0 -1
  592. package/dist/utils/ast/parser.mjs.map +0 -1
  593. package/dist/utils/ast/serializer.d.mts.map +0 -1
  594. package/dist/utils/ast/serializer.mjs +0 -37
  595. package/dist/utils/ast/serializer.mjs.map +0 -1
  596. package/dist/utils/ast/walker.d.mts.map +0 -1
  597. package/dist/utils/ast/walker.mjs.map +0 -1
  598. package/dist/utils/detect.d.mts.map +0 -1
  599. package/dist/utils/detect.mjs.map +0 -1
  600. package/dist/utils/url.d.mts.map +0 -1
  601. package/dist/utils/url.mjs.map +0 -1
  602. package/node_modules/@clack/core/dist/index.mjs.map +0 -1
  603. package/node_modules/@clack/prompts/dist/index.mjs.map +0 -1
  604. package/node_modules/fast-wrap-ansi/lib/main.js.map +0 -1
  605. package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
  606. package/node_modules/tinyexec/dist/LICENSES.txt +0 -83
@@ -1,7 +1,5 @@
1
- <script setup lang="ts">
2
- defineProps({
3
- //
4
- })
1
+ <script setup>
2
+
5
3
  </script>
6
4
 
7
5
  <template>
@@ -1,9 +1,5 @@
1
1
  import { defineConfig } from '@maizzle/framework'
2
2
 
3
3
  export default defineConfig({
4
- css: {
5
- purge: true,
6
- inline: true,
7
- shorthand: true,
8
- },
4
+
9
5
  })
@@ -19,9 +19,9 @@ async function makeTemplate(filePath) {
19
19
  path: () => p.text({
20
20
  message: "Directory to place it in",
21
21
  placeholder: "./emails",
22
+ initialValue: "./emails",
22
23
  validate: (value) => {
23
24
  if (!value) return "Please enter a path.";
24
- if (value[0] !== ".") return "Please enter a relative path.";
25
25
  }
26
26
  })
27
27
  }, { onCancel });
@@ -3,56 +3,9 @@ import color from "picocolors";
3
3
  import * as p from "@clack/prompts";
4
4
  import { rm } from "node:fs/promises";
5
5
  import { existsSync } from "node:fs";
6
- import { execFileSync } from "node:child_process";
7
- import { detectPackageManager, installDependencies } from "nypm";
6
+ import { execSync } from "node:child_process";
7
+ import { installDependencies } from "nypm";
8
8
  //#region src/commands/new.ts
9
- const starters = [
10
- {
11
- label: "Default",
12
- value: "maizzle/maizzle",
13
- path: "gh:maizzle/maizzle#master"
14
- },
15
- {
16
- label: "v4.x",
17
- value: "maizzle/starter-v4",
18
- path: "gh:maizzle/starter-v4#master"
19
- },
20
- {
21
- label: "API",
22
- value: "maizzle/starter-api",
23
- path: "gh:maizzle/starter-api#main"
24
- },
25
- {
26
- label: "AMP4Email",
27
- value: "maizzle/starter-amp4email",
28
- path: "gh:maizzle/starter-amp4email#master"
29
- },
30
- {
31
- label: "Liquid",
32
- value: "maizzle/starter-liquid",
33
- path: "gh:maizzle/starter-liquid#master"
34
- },
35
- {
36
- label: "Mailchimp",
37
- value: "maizzle/starter-mailchimp",
38
- path: "gh:maizzle/starter-mailchimp#main"
39
- },
40
- {
41
- label: "Markdown",
42
- value: "maizzle/starter-markdown",
43
- path: "gh:maizzle/starter-markdown#main"
44
- },
45
- {
46
- label: "RSS",
47
- value: "maizzle/starter-rss",
48
- path: "gh:maizzle/starter-rss#master"
49
- },
50
- {
51
- label: "WordPress API",
52
- value: "maizzle/starter-wordpress-api",
53
- path: "gh:maizzle/starter-wordpress-api#master"
54
- }
55
- ];
56
9
  function renderHeader() {
57
10
  const lines = [
58
11
  " ███╗ ███╗ █████╗ ██╗ ███████╗ ███████╗ ██╗ ███████╗",
@@ -160,113 +113,71 @@ async function newProject(starterArg, dirArg, options = {}) {
160
113
  path: () => p.text({
161
114
  message: "Where should we create your project?",
162
115
  placeholder: "./maizzle",
116
+ initialValue: "./maizzle",
163
117
  validate: (value) => {
164
118
  if (!value) return "Please enter a path.";
165
- if (value[0] !== ".") return "Please enter a relative path.";
166
119
  if (existsSync(value)) return "That directory already exists. Please enter a different path.";
167
120
  }
168
121
  }),
169
122
  starter: async () => {
170
123
  const starter = await p.select({
171
124
  message: "Select a Starter",
172
- initialValue: "maizzle/maizzle",
173
- options: [
174
- {
175
- value: "maizzle/maizzle",
176
- label: "Default"
177
- },
178
- {
179
- value: "custom",
180
- label: "Custom"
181
- },
182
- {
183
- value: "maizzle6-beta",
184
- label: "Maizzle 6 (beta)"
185
- }
186
- ]
125
+ initialValue: "maizzle/maizzle#next",
126
+ options: [{
127
+ value: "maizzle/maizzle#next",
128
+ label: "Default"
129
+ }, {
130
+ value: "custom",
131
+ label: "Custom"
132
+ }]
133
+ });
134
+ if (starter === "custom") return p.text({
135
+ message: "Enter a GitHub `user/repo` path or a full Git repository URL.",
136
+ validate: (value) => {
137
+ if (!value) return "Please enter a value.";
138
+ }
187
139
  });
188
- if (starter === "maizzle6-beta") return "maizzle/maizzle#next";
189
- if (starter === "custom") {
190
- const customStarter = await p.select({
191
- message: "Select a custom Starter",
192
- initialValue: "maizzle/maizzle",
193
- options: [...starters, {
194
- value: "git",
195
- label: "Git",
196
- hint: "user/repo"
197
- }]
198
- });
199
- if (customStarter === "git") return p.text({
200
- message: "Enter a `user/repo` path or a full Git repository URL.",
201
- validate: (value) => {
202
- if (!value) return "Please enter a value.";
203
- }
204
- });
205
- return customStarter;
206
- }
207
140
  return starter;
208
141
  },
209
142
  install: () => p.confirm({
210
143
  message: "Install dependencies?",
211
144
  initialValue: true
212
145
  }),
213
- pm: async ({ results }) => {
214
- if (!results.install) return "npm";
215
- const detected = await detectPackageManager(process.cwd()).catch(() => null);
216
- return p.select({
217
- message: "Select a package manager",
218
- initialValue: detected?.name || "npm",
219
- options: [
220
- {
221
- value: "npm",
222
- label: "npm"
223
- },
224
- {
225
- value: "pnpm",
226
- label: "pnpm"
227
- },
228
- {
229
- value: "yarn",
230
- label: "yarn"
231
- },
232
- {
233
- value: "bun",
234
- label: "bun"
235
- }
236
- ]
237
- });
238
- }
146
+ pm: async () => options.pm || "npm"
239
147
  }, { onCancel: () => {
240
148
  p.cancel("💀");
241
149
  process.exit(0);
242
150
  } });
243
151
  }
244
- const spinner = p.spinner();
245
- spinner.start("Creating project");
246
- const starter = starters.find((s) => s.value === project.starter);
247
- const source = starter ? starter.path : project.starter;
248
- await downloadTemplate(source.includes(":") ? source : `gh:${source}`, { dir: project.path });
249
- await rm(`${project.path}/.github`, {
250
- recursive: true,
251
- force: true
252
- });
253
- spinner.stop(`Created project in ${project.path}`);
254
- if (project.install) {
255
- try {
256
- execFileSync(project.pm, ["--version"], { stdio: "ignore" });
257
- } catch {
258
- p.log.error(`${project.pm} is not installed. Please install it first.`);
259
- process.exit(1);
260
- }
261
- spinner.start("Installing dependencies");
262
- const startTime = Date.now();
263
- await installDependencies({
264
- cwd: project.path,
265
- silent: true,
266
- packageManager: project.pm
267
- });
268
- spinner.stop(`Installed dependencies ${color.gray((Date.now() - startTime) / 1e3 + "s")}`);
152
+ if (project.install) try {
153
+ execSync(`${project.pm} --version`, { stdio: "ignore" });
154
+ } catch {
155
+ p.log.error(`${project.pm} is not installed. Please install it first.`);
156
+ process.exit(1);
269
157
  }
158
+ await p.tasks([{
159
+ title: "Creating project",
160
+ task: async () => {
161
+ await downloadTemplate(project.starter.includes(":") ? project.starter : `gh:${project.starter}`, { dir: project.path });
162
+ await rm(`${project.path}/.github`, {
163
+ recursive: true,
164
+ force: true
165
+ });
166
+ return `Created project in ${project.path}`;
167
+ }
168
+ }, {
169
+ title: "Installing dependencies",
170
+ enabled: project.install,
171
+ task: async () => {
172
+ const startTime = Date.now();
173
+ await installDependencies({
174
+ cwd: project.path,
175
+ silent: true,
176
+ packageManager: project.pm
177
+ });
178
+ return `Installed dependencies ${color.gray((Date.now() - startTime) / 1e3 + "s")}`;
179
+ }
180
+ }]);
270
181
  const pm = project.pm || "npm";
271
182
  const runCmd = pm === "yarn" ? "yarn dev" : `${pm} run dev`;
272
183
  const nextSteps = `cd ${project.path} \n\n${project.install ? "" : `${pm} install\n\n`}${runCmd}`;
@@ -2,6 +2,7 @@
2
2
  interface Framework {
3
3
  serve: (options?: any) => Promise<any>;
4
4
  build: (options?: any) => Promise<any>;
5
+ prepare: (options?: any) => Promise<any>;
5
6
  }
6
7
  declare function bootstrap(framework?: Framework): Promise<void>;
7
8
  //#endregion
@@ -7,20 +7,43 @@ import { Command } from "commander";
7
7
  //#region src/index.ts
8
8
  async function bootstrap(framework) {
9
9
  const program = new Command();
10
- program.name("maizzle").description("Maizzle CLI").version("1.0.0");
10
+ program.name("maizzle").description("Maizzle CLI").version("1.2.0");
11
11
  if (framework) {
12
- program.command("serve").description("Start the Maizzle dev server with HMR").option("-c, --config <path>", "Path to maizzle config file").option("-p, --port <number>", "Dev server port").option("--host [address]", "Expose on network").action(async (options) => {
12
+ program.command("serve").alias("dev").description("Start the Maizzle dev server with HMR").option("-c, --config <path>", "Path to a Maizzle config file").option("-p, --port <number>", "Dev server port").option("--host [address]", "Expose on network").action(async (options) => {
13
13
  await framework.serve({
14
14
  config: options.config,
15
15
  port: options.port ? parseInt(options.port, 10) : void 0,
16
16
  host: options.host
17
17
  });
18
18
  });
19
- program.command("build").description("Build email templates to HTML").option("-c, --config <path>", "Path to maizzle config file").option("-o, --output <path>", "Output directory").action(async (options) => {
20
- await framework.build({
21
- config: options.config,
22
- output: options.output
23
- });
19
+ program.command("build").description("Build email templates to HTML").option("-c, --config <path>", "Path to a Maizzle config file").option("-o, --output <path>", "Output directory").option("--pretty", "Pretty-print HTML output").option("--minify", "Minify HTML output").option("--plaintext", "Generate plaintext versions").option("--dir <path>", "Source directory for email templates").option("--ext <extension>", "Output file extension").action(async (options) => {
20
+ if (options.config) {
21
+ await framework.build(options.config);
22
+ return;
23
+ }
24
+ const overrides = {};
25
+ if (options.output) overrides.output = {
26
+ ...overrides.output,
27
+ path: options.output
28
+ };
29
+ if (options.ext) overrides.output = {
30
+ ...overrides.output,
31
+ extension: options.ext
32
+ };
33
+ if (options.pretty) overrides.html = {
34
+ ...overrides.html,
35
+ format: true
36
+ };
37
+ if (options.minify) overrides.html = {
38
+ ...overrides.html,
39
+ minify: true
40
+ };
41
+ if (options.plaintext) overrides.plaintext = true;
42
+ if (options.dir) overrides.content = [`${options.dir}/**/*.{vue,md}`];
43
+ await framework.build(Object.keys(overrides).length ? overrides : void 0);
44
+ });
45
+ program.command("prepare").description("Generate IDE type definitions in .maizzle/").option("-c, --config <path>", "Path to a Maizzle config file").action(async (options) => {
46
+ await framework.prepare({ config: options.config });
24
47
  });
25
48
  }
26
49
  program.command("new [starter] [directory]").description("Create a new Maizzle project").option("-i, --install", "Install dependencies").option("--pm <manager>", "Package manager to use").action(async (starter, directory, options) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maizzle",
3
- "version": "1.0.1",
3
+ "version": "1.2.1",
4
4
  "description": "CLI tool for the Maizzle Email Framework",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,7 +19,8 @@
19
19
  ],
20
20
  "scripts": {
21
21
  "build": "tsdown",
22
- "prepublishOnly": "npm run build",
22
+ "typecheck": "tsc --noEmit",
23
+ "prepublishOnly": "npm run typecheck && npm run build",
23
24
  "dev": "vitest",
24
25
  "test": "vitest run --coverage",
25
26
  "release": "npm run build && npx np"
@@ -34,8 +35,8 @@
34
35
  "devDependencies": {
35
36
  "@types/node": "^25.2.3",
36
37
  "@vitest/coverage-v8": "^4.1.3",
37
- "tsdown": "^0.21.7",
38
- "typescript": "^5.9.3",
38
+ "tsdown": "^0.22.0",
39
+ "typescript": "^6.0.2",
39
40
  "vitest": "^4.1.3"
40
41
  },
41
42
  "repository": {
@@ -8,7 +8,7 @@ import { existsSync } from "node:fs";
8
8
  import { readFile } from "node:fs/promises";
9
9
  import { join as join$1 } from "node:path";
10
10
  var name = "nypm";
11
- var version = "0.6.4";
11
+ var version = "0.6.5";
12
12
  var description = "Unified Package Manager for Node.js";
13
13
  const packageManagers = [
14
14
  {
@@ -86,11 +86,32 @@ async function findup(cwd, match, options = {}) {
86
86
  segments.pop();
87
87
  }
88
88
  }
89
- async function readPackageJSON(cwd) {
89
+ async function readPackageJSON(cwd, options = {}) {
90
90
  return findup(cwd, (p) => {
91
91
  const pkgPath = join$1(p, "package.json");
92
92
  if (existsSync(pkgPath)) return readFile(pkgPath, "utf8").then((data) => JSON.parse(data));
93
- });
93
+ }, options);
94
+ }
95
+ async function readInstalledPackageJSON(pkgName, cwd) {
96
+ const pkgJSONPath = await findup(cwd, (p) => {
97
+ const candidate = join$1(p, "node_modules", pkgName, "package.json");
98
+ if (existsSync(candidate)) return candidate;
99
+ }, { includeParentDirs: true });
100
+ if (!pkgJSONPath) return null;
101
+ try {
102
+ return JSON.parse(await readFile(pkgJSONPath, "utf8"));
103
+ } catch {
104
+ return null;
105
+ }
106
+ }
107
+ async function readPackageJSONFromResolver(requireFn, pkgName) {
108
+ let resolved;
109
+ try {
110
+ resolved = requireFn.resolve(pkgName);
111
+ } catch {
112
+ return null;
113
+ }
114
+ return readPackageJSON(resolved, { includeParentDirs: true });
94
115
  }
95
116
  function cached(fn) {
96
117
  let v;
@@ -222,8 +243,10 @@ async function addDependency(name, options = {}) {
222
243
  const _require = createRequire(join$1(resolvedOptions.cwd, "/_.js"));
223
244
  for (const _name of names) {
224
245
  const pkgName = _name.match(/^(.[^@]+)/)?.[0];
225
- const pkg = await readPackageJSON(_require.resolve(pkgName));
226
- if (!pkg?.peerDependencies || pkg?.name !== pkgName) continue;
246
+ if (!pkgName) continue;
247
+ let pkg = await readPackageJSONFromResolver(_require, pkgName);
248
+ if (pkg?.name !== pkgName) pkg = await readInstalledPackageJSON(pkgName, resolvedOptions.cwd);
249
+ if (!pkg?.peerDependencies) continue;
227
250
  for (const [peerDependency, version] of Object.entries(pkg.peerDependencies)) {
228
251
  if (pkg.peerDependenciesMeta?.[peerDependency]?.optional) continue;
229
252
  if (existingPkg?.dependencies?.[peerDependency] || existingPkg?.devDependencies?.[peerDependency]) continue;
@@ -1,4 +1,3 @@
1
- //#region src/types.d.ts
2
1
  type PackageManagerName = "npm" | "yarn" | "pnpm" | "bun" | "deno";
3
2
  type PackageManager = {
4
3
  name: PackageManagerName;
@@ -27,8 +26,6 @@ type OperationResult = {
27
26
  args: string[];
28
27
  };
29
28
  };
30
- //#endregion
31
- //#region src/package-manager.d.ts
32
29
  type DetectPackageManagerOptions = {
33
30
  /**
34
31
  * Whether to ignore the lock file
@@ -64,8 +61,6 @@ declare const packageManagers: PackageManager[];
64
61
  declare function detectPackageManager(cwd: string, options?: DetectPackageManagerOptions): Promise<(PackageManager & {
65
62
  warnings?: string[];
66
63
  }) | undefined>;
67
- //#endregion
68
- //#region src/api.d.ts
69
64
  /**
70
65
  * Installs project dependencies.
71
66
  *
@@ -172,8 +167,6 @@ declare function dlx(name: string, options?: Pick<OperationOptions, "cwd" | "env
172
167
  short?: boolean;
173
168
  packages?: string[];
174
169
  }): Promise<OperationResult>;
175
- //#endregion
176
- //#region src/cmd.d.ts
177
170
  /**
178
171
  * Get the command to install dependencies with the package manager.
179
172
  */
@@ -205,5 +198,4 @@ declare function dlxCommand(packageManager: PackageManagerName, name: string, op
205
198
  short?: boolean;
206
199
  packages?: string[];
207
200
  }): string;
208
- //#endregion
209
201
  export { DetectPackageManagerOptions, OperationOptions, OperationResult, PackageManager, PackageManagerName, addDependency, addDependencyCommand, addDevDependency, dedupeDependencies, detectPackageManager, dlx, dlxCommand, ensureDependencyInstalled, installDependencies, installDependenciesCommand, packageManagers, removeDependency, runScript, runScriptCommand };
@@ -13,11 +13,32 @@ async function findup(cwd, match, options = {}) {
13
13
  segments.pop();
14
14
  }
15
15
  }
16
- async function readPackageJSON(cwd) {
16
+ async function readPackageJSON(cwd, options = {}) {
17
17
  return findup(cwd, (p) => {
18
18
  const pkgPath = join$1(p, "package.json");
19
19
  if (existsSync(pkgPath)) return readFile(pkgPath, "utf8").then((data) => JSON.parse(data));
20
- });
20
+ }, options);
21
+ }
22
+ async function readInstalledPackageJSON(pkgName, cwd) {
23
+ const pkgJSONPath = await findup(cwd, (p) => {
24
+ const candidate = join$1(p, "node_modules", pkgName, "package.json");
25
+ if (existsSync(candidate)) return candidate;
26
+ }, { includeParentDirs: true });
27
+ if (!pkgJSONPath) return null;
28
+ try {
29
+ return JSON.parse(await readFile(pkgJSONPath, "utf8"));
30
+ } catch {
31
+ return null;
32
+ }
33
+ }
34
+ async function readPackageJSONFromResolver(requireFn, pkgName) {
35
+ let resolved;
36
+ try {
37
+ resolved = requireFn.resolve(pkgName);
38
+ } catch {
39
+ return null;
40
+ }
41
+ return readPackageJSON(resolved, { includeParentDirs: true });
21
42
  }
22
43
  function cached(fn) {
23
44
  let v;
@@ -307,8 +328,10 @@ async function addDependency(name, options = {}) {
307
328
  const _require = createRequire(join$1(resolvedOptions.cwd, "/_.js"));
308
329
  for (const _name of names) {
309
330
  const pkgName = _name.match(/^(.[^@]+)/)?.[0];
310
- const pkg = await readPackageJSON(_require.resolve(pkgName));
311
- if (!pkg?.peerDependencies || pkg?.name !== pkgName) continue;
331
+ if (!pkgName) continue;
332
+ let pkg = await readPackageJSONFromResolver(_require, pkgName);
333
+ if (pkg?.name !== pkgName) pkg = await readInstalledPackageJSON(pkgName, resolvedOptions.cwd);
334
+ if (!pkg?.peerDependencies) continue;
312
335
  for (const [peerDependency, version] of Object.entries(pkg.peerDependencies)) {
313
336
  if (pkg.peerDependenciesMeta?.[peerDependency]?.optional) continue;
314
337
  if (existingPkg?.dependencies?.[peerDependency] || existingPkg?.devDependencies?.[peerDependency]) continue;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nypm",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "description": "Unified Package Manager for Node.js",
5
5
  "license": "MIT",
6
6
  "repository": "unjs/nypm",
@@ -18,25 +18,25 @@
18
18
  ".": "./dist/index.mjs"
19
19
  },
20
20
  "dependencies": {
21
- "citty": "^0.2.0",
21
+ "citty": "^0.2.2",
22
22
  "pathe": "^2.0.3",
23
- "tinyexec": "^1.0.2"
23
+ "tinyexec": "^1.1.1"
24
24
  },
25
25
  "devDependencies": {
26
- "@types/node": "^25.2.1",
27
- "@typescript/native-preview": "^7.0.0-dev.20260205.1",
28
- "@vitest/coverage-v8": "^4.0.18",
26
+ "@types/node": "^25.6.0",
27
+ "@typescript/native-preview": "^7.0.0-dev.20260424.1",
28
+ "@vitest/coverage-v8": "^4.1.5",
29
29
  "automd": "^0.4.3",
30
30
  "changelogen": "^0.6.2",
31
31
  "eslint-config-unjs": "^0.6.2",
32
- "obuild": "^0.4.22",
33
- "oxfmt": "^0.28.0",
34
- "oxlint": "^1.43.0",
32
+ "obuild": "^0.4.33",
33
+ "oxfmt": "^0.46.0",
34
+ "oxlint": "^1.61.0",
35
35
  "pkg-types": "^2.3.0",
36
- "std-env": "^3.10.0",
37
- "typescript": "^5.9.3",
36
+ "std-env": "^4.1.0",
37
+ "typescript": "^6.0.3",
38
38
  "ufo": "^1.6.3",
39
- "vitest": "^4.0.18"
39
+ "vitest": "^4.1.5"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=18"
@@ -63,10 +63,11 @@ The options object can have the following properties:
63
63
  - `stdin` - `string` or another `Result` that will be used as the input to the process
64
64
  - `nodeOptions` - any valid options to node's underlying `spawn` function
65
65
  - `throwOnError` - if true, non-zero exit codes will throw an error
66
+ - `nodePath` - if `false`, `node_modules/.bin` directories and the current node executable's directory will not be prepended to `PATH` (defaults to `true`)
66
67
 
67
68
  ### Passing a string to stdin
68
69
 
69
- You can pass a string to `stdin`, which is useful for whitespace-sensitive values and for secrets you shouldn’t be exposed in shell history:
70
+ You can pass a string to `stdin`, which is useful for whitespace-sensitive values and for secrets that shouldn’t be exposed in shell history:
70
71
 
71
72
  ```ts
72
73
  const result = await x('gh', ['auth', 'login', '--with-token'], {
@@ -123,6 +124,13 @@ await x('eslint', ['.']);
123
124
 
124
125
  In this example, `eslint` will come from the locally installed `node_modules`.
125
126
 
127
+ If you'd rather not have `node_modules/.bin` (or the directory of the current
128
+ `node` executable) prepended to `PATH`, pass `nodePath: false`:
129
+
130
+ ```ts
131
+ await x('eslint', ['.'], {nodePath: false});
132
+ ```
133
+
126
134
  ### Using an abort signal
127
135
 
128
136
  An abort signal can be passed to a process in order to abort it at a later
@@ -1,6 +1,20 @@
1
1
  import { ChildProcess, SpawnOptions, SpawnSyncOptions } from "node:child_process";
2
2
  import { Readable } from "node:stream";
3
3
 
4
+ //#region src/normalize.d.ts
5
+ interface NormalizedSpawnCommand {
6
+ command: string;
7
+ args: readonly string[];
8
+ options: SpawnOptions;
9
+ }
10
+ /**
11
+ * Normalizes the command and arguments to work cross-platform.
12
+ * On Windows, this basically handles things like shebangs, calling
13
+ * `node_modules/.bin` commands, and escaping meta characters.
14
+ * On other platforms, it just returns the command and arguments as-is.
15
+ */
16
+ declare function normalizeSpawnCommand(command: string, args?: readonly string[], options?: SpawnOptions): NormalizedSpawnCommand;
17
+ //#endregion
4
18
  //#region src/non-zero-exit-error.d.ts
5
19
  declare class NonZeroExitError extends Error {
6
20
  readonly result: CommonOutputApi;
@@ -25,7 +39,7 @@ interface CommonOutputApi {
25
39
  interface OutputApi extends AsyncIterable<string>, CommonOutputApi {
26
40
  process: ChildProcess | undefined;
27
41
  get aborted(): boolean;
28
- pipe(command: string, args?: string[], options?: Partial<PipeOptions>): Result;
42
+ pipe(command: string, args?: readonly string[], options?: Partial<PipeOptions>): Result;
29
43
  kill(signal?: KillSignal): boolean;
30
44
  }
31
45
  interface OutputApiSync extends Iterable<string>, CommonOutputApi {}
@@ -34,6 +48,7 @@ type SyncResult = Output & OutputApiSync;
34
48
  interface CommonOptions {
35
49
  timeout: number;
36
50
  throwOnError: boolean;
51
+ nodePath: boolean;
37
52
  }
38
53
  interface Options extends CommonOptions {
39
54
  signal: AbortSignal;
@@ -45,25 +60,25 @@ interface SyncOptions extends CommonOptions {
45
60
  nodeOptions: SpawnSyncOptions;
46
61
  }
47
62
  interface TinyExec {
48
- (command: string, args?: string[], options?: Partial<Options>): Result;
63
+ (command: string, args?: readonly string[], options?: Partial<Options>): Result;
49
64
  }
50
65
  declare class ExecProcess implements Result {
51
66
  protected _process?: ChildProcess;
52
67
  protected _aborted: boolean;
53
68
  protected _options: Partial<Options>;
54
69
  protected _command: string;
55
- protected _args: string[];
70
+ protected _args: readonly string[];
56
71
  protected _resolveClose?: () => void;
57
72
  protected _processClosed: Promise<void>;
58
73
  protected _thrownError?: Error;
59
74
  get process(): ChildProcess | undefined;
60
75
  get pid(): number | undefined;
61
76
  get exitCode(): number | undefined;
62
- constructor(command: string, args?: string[], options?: Partial<Options>);
77
+ constructor(command: string, args?: readonly string[], options?: Partial<Options>);
63
78
  kill(signal?: KillSignal): boolean;
64
79
  get aborted(): boolean;
65
80
  get killed(): boolean;
66
- pipe(command: string, args?: string[], options?: Partial<PipeOptions>): Result;
81
+ pipe(command: string, args?: readonly string[], options?: Partial<PipeOptions>): Result;
67
82
  [Symbol.asyncIterator](): AsyncIterator<string>;
68
83
  protected _waitForOutput(): Promise<Output>;
69
84
  then<TResult1 = Output, TResult2 = never>(onfulfilled?: ((value: Output) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
@@ -74,9 +89,9 @@ declare class ExecProcess implements Result {
74
89
  protected _onError: (err: Error) => void;
75
90
  protected _onClose: () => void;
76
91
  }
77
- declare function xSync(command: string, args?: string[], options?: Partial<SyncOptions>): SyncResult;
92
+ declare function xSync(command: string, args?: readonly string[], options?: Partial<SyncOptions>): SyncResult;
78
93
  declare const x: TinyExec;
79
94
  declare const exec: TinyExec;
80
95
  declare const execSync: typeof xSync;
81
96
  //#endregion
82
- export { CommonOptions, CommonOutputApi, ExecProcess, KillSignal, NonZeroExitError, Options, Output, OutputApi, OutputApiSync, PipeOptions, Result, SyncOptions, SyncResult, TinyExec, exec, execSync, x, xSync };
97
+ export { CommonOptions, CommonOutputApi, ExecProcess, KillSignal, NonZeroExitError, Options, Output, OutputApi, OutputApiSync, PipeOptions, Result, SyncOptions, SyncResult, TinyExec, exec, execSync, normalizeSpawnCommand, x, xSync };