@maizzle/framework 6.0.0-rc.2 → 6.0.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +3 -3
  2. package/bin/maizzle.mjs +1 -1
  3. package/dist/build.d.ts +20 -0
  4. package/dist/build.d.ts.map +1 -0
  5. package/dist/build.js +163 -0
  6. package/dist/build.js.map +1 -0
  7. package/dist/components/Body.vue +128 -0
  8. package/dist/components/Button.vue +148 -52
  9. package/dist/components/CodeBlock.vue +69 -0
  10. package/dist/components/CodeInline.vue +49 -0
  11. package/dist/components/Column.vue +108 -0
  12. package/dist/components/Container.vue +123 -0
  13. package/dist/components/Font.vue +96 -0
  14. package/dist/components/Head.vue +30 -0
  15. package/dist/components/Heading.vue +28 -0
  16. package/dist/components/Hr.vue +33 -0
  17. package/dist/components/Html.vue +137 -0
  18. package/dist/components/Img.vue +70 -0
  19. package/dist/components/Layout.vue +143 -0
  20. package/dist/components/Link.vue +26 -0
  21. package/dist/components/Markdown.vue +89 -0
  22. package/dist/components/MarkdownLayout.vue +39 -0
  23. package/dist/components/NotPlaintext.vue +14 -0
  24. package/dist/components/Outlook.vue +74 -11
  25. package/dist/components/OutlookBg.vue +241 -0
  26. package/dist/components/Overlap.vue +156 -0
  27. package/dist/components/Plaintext.vue +14 -0
  28. package/dist/components/Preheader.vue +15 -0
  29. package/dist/components/QrCode.vue +157 -0
  30. package/dist/components/Raw.vue +28 -0
  31. package/dist/components/Row.vue +184 -0
  32. package/dist/components/Section.vue +124 -0
  33. package/dist/components/Spacer.vue +70 -21
  34. package/dist/components/Tailwind.vue +43 -0
  35. package/dist/components/Text.vue +29 -0
  36. package/dist/components/utils.d.ts +28 -0
  37. package/dist/components/utils.d.ts.map +1 -0
  38. package/dist/components/utils.js +50 -0
  39. package/dist/components/utils.js.map +1 -0
  40. package/dist/components/utils.ts +51 -0
  41. package/dist/composables/{defineConfig.d.mts → defineConfig.d.ts} +2 -2
  42. package/dist/composables/defineConfig.d.ts.map +1 -0
  43. package/dist/composables/{defineConfig.mjs → defineConfig.js} +4 -5
  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.mjs → renderContext.js} +2 -2
  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.mts → useConfig.d.ts} +2 -2
  54. package/dist/composables/useConfig.d.ts.map +1 -0
  55. package/dist/composables/{useConfig.mjs → useConfig.js} +2 -3
  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 +35 -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/{usePlaintext.d.mts → usePlaintext.d.ts} +3 -1
  78. package/dist/composables/usePlaintext.d.ts.map +1 -0
  79. package/dist/composables/{usePlaintext.mjs → usePlaintext.js} +4 -4
  80. package/dist/composables/usePlaintext.js.map +1 -0
  81. package/dist/composables/usePreheader.d.ts +24 -0
  82. package/dist/composables/usePreheader.d.ts.map +1 -0
  83. package/dist/composables/usePreheader.js +28 -0
  84. package/dist/composables/usePreheader.js.map +1 -0
  85. package/dist/composables/useTransformers.d.ts +34 -0
  86. package/dist/composables/useTransformers.d.ts.map +1 -0
  87. package/dist/composables/useTransformers.js +48 -0
  88. package/dist/composables/useTransformers.js.map +1 -0
  89. package/dist/composables/useUrlQuery.d.ts +19 -0
  90. package/dist/composables/useUrlQuery.d.ts.map +1 -0
  91. package/dist/composables/useUrlQuery.js +26 -0
  92. package/dist/composables/useUrlQuery.js.map +1 -0
  93. package/dist/config/{defaults.d.mts → defaults.d.ts} +2 -2
  94. package/dist/config/defaults.d.ts.map +1 -0
  95. package/dist/config/{defaults.mjs → defaults.js} +10 -6
  96. package/dist/config/defaults.js.map +1 -0
  97. package/dist/config/{index.d.mts → index.d.ts} +4 -4
  98. package/dist/config/index.d.ts.map +1 -0
  99. package/dist/config/{index.mjs → index.js} +12 -10
  100. package/dist/config/index.js.map +1 -0
  101. package/dist/events/{index.d.mts → index.d.ts} +30 -12
  102. package/dist/events/index.d.ts.map +1 -0
  103. package/dist/events/{index.mjs → index.js} +26 -13
  104. package/dist/events/index.js.map +1 -0
  105. package/dist/index.d.ts +39 -0
  106. package/dist/index.js +38 -0
  107. package/dist/{plaintext.d.mts → plaintext.d.ts} +1 -1
  108. package/dist/plaintext.d.ts.map +1 -0
  109. package/dist/{plaintext.mjs → plaintext.js} +4 -5
  110. package/dist/plaintext.js.map +1 -0
  111. package/dist/{plugin.d.mts → plugin.d.ts} +2 -2
  112. package/dist/plugin.d.ts.map +1 -0
  113. package/dist/plugin.js +57 -0
  114. package/dist/plugin.js.map +1 -0
  115. package/dist/plugins/postcss/{mergeMediaQueries.d.mts → mergeMediaQueries.d.ts} +2 -2
  116. package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -0
  117. package/dist/plugins/postcss/{mergeMediaQueries.mjs → mergeMediaQueries.js} +2 -3
  118. package/dist/plugins/postcss/mergeMediaQueries.js.map +1 -0
  119. package/dist/plugins/postcss/{pruneVars.d.mts → pruneVars.d.ts} +1 -1
  120. package/dist/plugins/postcss/pruneVars.d.ts.map +1 -0
  121. package/dist/plugins/postcss/{pruneVars.mjs → pruneVars.js} +2 -2
  122. package/dist/plugins/postcss/pruneVars.js.map +1 -0
  123. package/dist/plugins/postcss/quoteFontFamilies.d.ts +13 -0
  124. package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -0
  125. package/dist/plugins/postcss/quoteFontFamilies.js +84 -0
  126. package/dist/plugins/postcss/quoteFontFamilies.js.map +1 -0
  127. package/dist/plugins/postcss/{removeDeclarations.d.mts → removeDeclarations.d.ts} +1 -1
  128. package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -0
  129. package/dist/plugins/postcss/{removeDeclarations.mjs → removeDeclarations.js} +2 -2
  130. package/dist/plugins/postcss/removeDeclarations.js.map +1 -0
  131. package/dist/plugins/postcss/resolveMaizzleImports.d.ts +16 -0
  132. package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -0
  133. package/dist/plugins/postcss/resolveMaizzleImports.js +39 -0
  134. package/dist/plugins/postcss/resolveMaizzleImports.js.map +1 -0
  135. package/dist/plugins/postcss/resolveProps.d.ts +8 -0
  136. package/dist/plugins/postcss/resolveProps.d.ts.map +1 -0
  137. package/dist/plugins/postcss/resolveProps.js +144 -0
  138. package/dist/plugins/postcss/resolveProps.js.map +1 -0
  139. package/dist/plugins/postcss/{tailwindCleanup.d.mts → tailwindCleanup.d.ts} +2 -2
  140. package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -0
  141. package/dist/plugins/postcss/tailwindCleanup.js +68 -0
  142. package/dist/plugins/postcss/tailwindCleanup.js.map +1 -0
  143. package/dist/prepare.d.ts +17 -0
  144. package/dist/prepare.d.ts.map +1 -0
  145. package/dist/prepare.js +44 -0
  146. package/dist/prepare.js.map +1 -0
  147. package/dist/render/active.d.ts +8 -0
  148. package/dist/render/active.d.ts.map +1 -0
  149. package/dist/render/active.js +12 -0
  150. package/dist/render/active.js.map +1 -0
  151. package/dist/render/{createRenderer.d.mts → createRenderer.d.ts} +15 -7
  152. package/dist/render/createRenderer.d.ts.map +1 -0
  153. package/dist/render/createRenderer.js +320 -0
  154. package/dist/render/createRenderer.js.map +1 -0
  155. package/dist/render/index.d.ts +18 -0
  156. package/dist/render/index.d.ts.map +1 -0
  157. package/dist/render/index.js +53 -0
  158. package/dist/render/index.js.map +1 -0
  159. package/dist/render/injectFonts.d.ts +15 -0
  160. package/dist/render/injectFonts.d.ts.map +1 -0
  161. package/dist/render/injectFonts.js +45 -0
  162. package/dist/render/injectFonts.js.map +1 -0
  163. package/dist/render/plugins/codeBlockExtract.d.ts +14 -0
  164. package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -0
  165. package/dist/render/plugins/codeBlockExtract.js +34 -0
  166. package/dist/render/plugins/codeBlockExtract.js.map +1 -0
  167. package/dist/render/plugins/markdownExtract.d.ts +12 -0
  168. package/dist/render/plugins/markdownExtract.d.ts.map +1 -0
  169. package/dist/render/plugins/markdownExtract.js +49 -0
  170. package/dist/render/plugins/markdownExtract.js.map +1 -0
  171. package/dist/render/plugins/rawExtract.d.ts +14 -0
  172. package/dist/render/plugins/rawExtract.d.ts.map +1 -0
  173. package/dist/render/plugins/rawExtract.js +34 -0
  174. package/dist/render/plugins/rawExtract.js.map +1 -0
  175. package/dist/render/plugins/rowSourceLocation.d.ts +18 -0
  176. package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -0
  177. package/dist/render/plugins/rowSourceLocation.js +45 -0
  178. package/dist/render/plugins/rowSourceLocation.js.map +1 -0
  179. package/dist/{serve.d.mts → serve.d.ts} +4 -2
  180. package/dist/serve.d.ts.map +1 -0
  181. package/dist/{serve.mjs → serve.js} +203 -78
  182. package/dist/serve.js.map +1 -0
  183. package/dist/server/compatibility.d.ts +59 -0
  184. package/dist/server/compatibility.d.ts.map +1 -0
  185. package/dist/server/compatibility.js +911 -0
  186. package/dist/server/compatibility.js.map +1 -0
  187. package/dist/server/email.d.ts +17 -0
  188. package/dist/server/email.d.ts.map +1 -0
  189. package/dist/server/email.js +40 -0
  190. package/dist/server/email.js.map +1 -0
  191. package/dist/server/linter.d.ts +20 -0
  192. package/dist/server/linter.d.ts.map +1 -0
  193. package/dist/server/linter.js +339 -0
  194. package/dist/server/linter.js.map +1 -0
  195. package/dist/server/sfc-utils.d.ts +21 -0
  196. package/dist/server/sfc-utils.d.ts.map +1 -0
  197. package/dist/server/sfc-utils.js +198 -0
  198. package/dist/server/sfc-utils.js.map +1 -0
  199. package/dist/server/ui/App.vue +253 -77
  200. package/dist/server/ui/components/SidebarClose.vue +12 -0
  201. package/dist/server/ui/components/ui/checkbox/Checkbox.vue +35 -0
  202. package/dist/server/ui/components/ui/checkbox/index.ts +1 -0
  203. package/dist/server/ui/components/ui/command/Command.vue +5 -1
  204. package/dist/server/ui/components/ui/command/CommandDialog.vue +1 -1
  205. package/dist/server/ui/components/ui/command/CommandInput.vue +19 -1
  206. package/dist/server/ui/components/ui/command/CommandItem.vue +1 -1
  207. package/dist/server/ui/components/ui/command/CommandList.vue +1 -1
  208. package/dist/server/ui/components/ui/command/CommandShortcut.vue +1 -1
  209. package/dist/server/ui/components/ui/dialog/DialogOverlay.vue +9 -1
  210. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -1
  211. package/dist/server/ui/components/ui/input/Input.vue +1 -1
  212. package/dist/server/ui/components/ui/scroll-area/ScrollBar.vue +1 -1
  213. package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
  214. package/dist/server/ui/components/ui/sheet/SheetOverlay.vue +9 -1
  215. package/dist/server/ui/components/ui/sidebar/Sidebar.vue +8 -1
  216. package/dist/server/ui/components/ui/sidebar/SidebarProvider.vue +1 -1
  217. package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +5 -4
  218. package/dist/server/ui/components/ui/tags-input/TagsInput.vue +26 -0
  219. package/dist/server/ui/components/ui/tags-input/TagsInputInput.vue +17 -0
  220. package/dist/server/ui/components/ui/tags-input/TagsInputItem.vue +19 -0
  221. package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
  222. package/dist/server/ui/components/ui/tags-input/TagsInputItemText.vue +17 -0
  223. package/dist/server/ui/components/ui/tags-input/index.ts +5 -0
  224. package/dist/server/ui/components/ui/toggle/index.ts +3 -3
  225. package/dist/server/ui/components/ui/toggle-group/ToggleGroup.vue +1 -1
  226. package/dist/server/ui/components/ui/toggle-group/ToggleGroupItem.vue +2 -2
  227. package/dist/server/ui/lib/emulated-dark-mode.ts +131 -0
  228. package/dist/server/ui/main.css +20 -20
  229. package/dist/server/ui/pages/Home.vue +12 -5
  230. package/dist/server/ui/pages/Preview.vue +716 -276
  231. package/dist/tests/render/_helpers.d.ts +6 -0
  232. package/dist/tests/render/_helpers.d.ts.map +1 -0
  233. package/dist/tests/render/_helpers.js +16 -0
  234. package/dist/tests/render/_helpers.js.map +1 -0
  235. package/dist/transformers/{addAttributes.d.mts → addAttributes.d.ts} +2 -2
  236. package/dist/transformers/addAttributes.d.ts.map +1 -0
  237. package/dist/transformers/{addAttributes.mjs → addAttributes.js} +16 -13
  238. package/dist/transformers/addAttributes.js.map +1 -0
  239. package/dist/transformers/attributeToStyle.d.ts +38 -0
  240. package/dist/transformers/attributeToStyle.d.ts.map +1 -0
  241. package/dist/transformers/attributeToStyle.js +94 -0
  242. package/dist/transformers/attributeToStyle.js.map +1 -0
  243. package/dist/transformers/base.d.ts +71 -0
  244. package/dist/transformers/base.d.ts.map +1 -0
  245. package/dist/transformers/{base.mjs → base.js} +56 -30
  246. package/dist/transformers/base.js.map +1 -0
  247. package/dist/transformers/columnWidth.d.ts +31 -0
  248. package/dist/transformers/columnWidth.d.ts.map +1 -0
  249. package/dist/transformers/columnWidth.js +546 -0
  250. package/dist/transformers/columnWidth.js.map +1 -0
  251. package/dist/transformers/entities.d.ts +37 -0
  252. package/dist/transformers/entities.d.ts.map +1 -0
  253. package/dist/transformers/entities.js +73 -0
  254. package/dist/transformers/entities.js.map +1 -0
  255. package/dist/transformers/filters/defaults.d.ts +6 -0
  256. package/dist/transformers/filters/defaults.d.ts.map +1 -0
  257. package/dist/transformers/filters/defaults.js +78 -0
  258. package/dist/transformers/filters/defaults.js.map +1 -0
  259. package/dist/transformers/filters/index.d.ts +43 -0
  260. package/dist/transformers/filters/index.d.ts.map +1 -0
  261. package/dist/transformers/filters/index.js +89 -0
  262. package/dist/transformers/filters/index.js.map +1 -0
  263. package/dist/transformers/format.d.ts +22 -0
  264. package/dist/transformers/format.d.ts.map +1 -0
  265. package/dist/transformers/format.js +30 -0
  266. package/dist/transformers/format.js.map +1 -0
  267. package/dist/transformers/{index.d.mts → index.d.ts} +14 -11
  268. package/dist/transformers/index.d.ts.map +1 -0
  269. package/dist/transformers/index.js +133 -0
  270. package/dist/transformers/index.js.map +1 -0
  271. package/dist/transformers/inlineCss.d.ts +84 -0
  272. package/dist/transformers/inlineCss.d.ts.map +1 -0
  273. package/dist/transformers/inlineCss.js +91 -0
  274. package/dist/transformers/inlineCss.js.map +1 -0
  275. package/dist/transformers/inlineLink.d.ts +35 -0
  276. package/dist/transformers/inlineLink.d.ts.map +1 -0
  277. package/dist/transformers/{inlineLink.mjs → inlineLink.js} +34 -10
  278. package/dist/transformers/inlineLink.js.map +1 -0
  279. package/dist/transformers/minify.d.ts +21 -0
  280. package/dist/transformers/minify.d.ts.map +1 -0
  281. package/dist/transformers/minify.js +25 -0
  282. package/dist/transformers/minify.js.map +1 -0
  283. package/dist/transformers/msoPlaceholders.d.ts +28 -0
  284. package/dist/transformers/msoPlaceholders.d.ts.map +1 -0
  285. package/dist/transformers/msoPlaceholders.js +88 -0
  286. package/dist/transformers/msoPlaceholders.js.map +1 -0
  287. package/dist/transformers/purgeCss.d.ts +43 -0
  288. package/dist/transformers/purgeCss.d.ts.map +1 -0
  289. package/dist/transformers/purgeCss.js +181 -0
  290. package/dist/transformers/purgeCss.js.map +1 -0
  291. package/dist/transformers/removeAttributes.d.ts +54 -0
  292. package/dist/transformers/removeAttributes.d.ts.map +1 -0
  293. package/dist/transformers/removeAttributes.js +70 -0
  294. package/dist/transformers/removeAttributes.js.map +1 -0
  295. package/dist/transformers/{replaceStrings.d.mts → replaceStrings.d.ts} +2 -2
  296. package/dist/transformers/replaceStrings.d.ts.map +1 -0
  297. package/dist/transformers/{replaceStrings.mjs → replaceStrings.js} +2 -2
  298. package/dist/transformers/replaceStrings.js.map +1 -0
  299. package/dist/transformers/{safeClassNames.d.mts → safeClassNames.d.ts} +2 -2
  300. package/dist/transformers/safeClassNames.d.ts.map +1 -0
  301. package/dist/transformers/{safeClassNames.mjs → safeClassNames.js} +4 -5
  302. package/dist/transformers/safeClassNames.js.map +1 -0
  303. package/dist/transformers/shorthandCss.d.ts +47 -0
  304. package/dist/transformers/shorthandCss.d.ts.map +1 -0
  305. package/dist/transformers/shorthandCss.js +61 -0
  306. package/dist/transformers/shorthandCss.js.map +1 -0
  307. package/dist/transformers/sixHex.d.ts +25 -0
  308. package/dist/transformers/sixHex.d.ts.map +1 -0
  309. package/dist/transformers/sixHex.js +42 -0
  310. package/dist/transformers/sixHex.js.map +1 -0
  311. package/dist/transformers/tailwindComponent.d.ts +16 -0
  312. package/dist/transformers/tailwindComponent.d.ts.map +1 -0
  313. package/dist/transformers/tailwindComponent.js +92 -0
  314. package/dist/transformers/tailwindComponent.js.map +1 -0
  315. package/dist/transformers/{tailwindcss.d.mts → tailwindcss.d.ts} +8 -4
  316. package/dist/transformers/tailwindcss.d.ts.map +1 -0
  317. package/dist/transformers/tailwindcss.js +97 -0
  318. package/dist/transformers/tailwindcss.js.map +1 -0
  319. package/dist/transformers/urlQuery.d.ts +36 -0
  320. package/dist/transformers/urlQuery.d.ts.map +1 -0
  321. package/dist/transformers/urlQuery.js +77 -0
  322. package/dist/transformers/urlQuery.js.map +1 -0
  323. package/dist/types/config.d.ts +737 -0
  324. package/dist/types/config.d.ts.map +1 -0
  325. package/dist/types/config.js +1 -0
  326. package/dist/types/index.d.ts +2 -0
  327. package/dist/types/index.js +1 -0
  328. package/dist/utils/ast/index.d.ts +4 -0
  329. package/dist/utils/ast/index.js +4 -0
  330. package/dist/utils/ast/{parser.d.mts → parser.d.ts} +1 -1
  331. package/dist/utils/ast/parser.d.ts.map +1 -0
  332. package/dist/utils/ast/{parser.mjs → parser.js} +2 -3
  333. package/dist/utils/ast/parser.js.map +1 -0
  334. package/dist/utils/ast/serializer.d.ts +8 -0
  335. package/dist/utils/ast/serializer.d.ts.map +1 -0
  336. package/dist/utils/ast/serializer.js +36 -0
  337. package/dist/utils/ast/serializer.js.map +1 -0
  338. package/dist/utils/ast/{walker.d.mts → walker.d.ts} +1 -1
  339. package/dist/utils/ast/walker.d.ts.map +1 -0
  340. package/dist/utils/ast/{walker.mjs → walker.js} +2 -2
  341. package/dist/utils/ast/walker.js.map +1 -0
  342. package/dist/utils/compileTailwindCss.d.ts +16 -0
  343. package/dist/utils/compileTailwindCss.d.ts.map +1 -0
  344. package/dist/utils/compileTailwindCss.js +54 -0
  345. package/dist/utils/compileTailwindCss.js.map +1 -0
  346. package/dist/utils/componentSources.d.ts +50 -0
  347. package/dist/utils/componentSources.d.ts.map +1 -0
  348. package/dist/utils/componentSources.js +50 -0
  349. package/dist/utils/componentSources.js.map +1 -0
  350. package/dist/utils/decodeStyleEntities.d.ts +15 -0
  351. package/dist/utils/decodeStyleEntities.d.ts.map +1 -0
  352. package/dist/utils/decodeStyleEntities.js +18 -0
  353. package/dist/utils/decodeStyleEntities.js.map +1 -0
  354. package/dist/utils/detect.d.ts +5 -0
  355. package/dist/utils/detect.d.ts.map +1 -0
  356. package/dist/utils/detect.js +10 -0
  357. package/dist/utils/detect.js.map +1 -0
  358. package/dist/utils/output-markers.d.ts +29 -0
  359. package/dist/utils/output-markers.d.ts.map +1 -0
  360. package/dist/utils/output-markers.js +68 -0
  361. package/dist/utils/output-markers.js.map +1 -0
  362. package/dist/utils/{url.d.mts → url.d.ts} +1 -1
  363. package/dist/utils/url.d.ts.map +1 -0
  364. package/dist/utils/{url.mjs → url.js} +2 -3
  365. package/dist/utils/url.js.map +1 -0
  366. package/dist/utils/watchPaths.d.ts +11 -0
  367. package/dist/utils/watchPaths.d.ts.map +1 -0
  368. package/dist/utils/watchPaths.js +19 -0
  369. package/dist/utils/watchPaths.js.map +1 -0
  370. package/node_modules/@clack/core/CHANGELOG.md +8 -0
  371. package/node_modules/@clack/core/dist/index.d.mts +18 -4
  372. package/node_modules/@clack/core/dist/index.mjs +16 -10
  373. package/node_modules/@clack/core/dist/index.mjs.map +1 -1
  374. package/node_modules/@clack/core/package.json +5 -2
  375. package/node_modules/@clack/prompts/CHANGELOG.md +15 -0
  376. package/node_modules/@clack/prompts/README.md +107 -2
  377. package/node_modules/@clack/prompts/dist/index.d.mts +16 -11
  378. package/node_modules/@clack/prompts/dist/index.mjs +114 -107
  379. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -1
  380. package/node_modules/@clack/prompts/package.json +7 -4
  381. package/node_modules/fast-string-truncated-width/dist/index.js +36 -96
  382. package/node_modules/fast-string-truncated-width/dist/types.d.ts +0 -3
  383. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +3 -3
  384. package/node_modules/fast-string-truncated-width/dist/utils.js +14 -9
  385. package/node_modules/fast-string-truncated-width/package.json +1 -1
  386. package/node_modules/fast-string-truncated-width/readme.md +2 -3
  387. package/node_modules/fast-string-width/package.json +2 -2
  388. package/node_modules/fast-string-width/readme.md +0 -3
  389. package/node_modules/fast-wrap-ansi/lib/main.js +4 -1
  390. package/node_modules/fast-wrap-ansi/lib/main.js.map +1 -1
  391. package/node_modules/fast-wrap-ansi/package.json +2 -2
  392. package/node_modules/maizzle/README.md +24 -0
  393. package/node_modules/maizzle/dist/commands/make/component.mjs +1 -1
  394. package/node_modules/maizzle/dist/commands/make/config.mjs +1 -1
  395. package/node_modules/maizzle/dist/commands/make/layout.mjs +3 -3
  396. package/node_modules/maizzle/dist/commands/make/scaffold.mjs +1 -1
  397. package/node_modules/maizzle/dist/commands/make/stubs/Layout.vue +146 -0
  398. package/node_modules/maizzle/dist/commands/make/stubs/component.vue +2 -4
  399. package/node_modules/maizzle/dist/commands/make/stubs/config.ts +1 -5
  400. package/node_modules/maizzle/dist/commands/make/template.mjs +1 -1
  401. package/node_modules/maizzle/dist/commands/new.mjs +32 -52
  402. package/node_modules/maizzle/dist/index.d.mts +1 -0
  403. package/node_modules/maizzle/dist/index.mjs +30 -7
  404. package/node_modules/maizzle/package.json +4 -3
  405. package/node_modules/nypm/dist/cli.mjs +28 -5
  406. package/node_modules/nypm/dist/index.d.mts +0 -8
  407. package/node_modules/nypm/dist/index.mjs +27 -4
  408. package/node_modules/nypm/package.json +12 -12
  409. package/node_modules/tinyexec/README.md +1 -1
  410. package/node_modules/tinyexec/dist/main.d.mts +6 -6
  411. package/node_modules/tinyexec/dist/main.mjs +126 -134
  412. package/node_modules/tinyexec/package.json +9 -9
  413. package/package.json +31 -21
  414. package/dist/build.d.mts +0 -19
  415. package/dist/build.d.mts.map +0 -1
  416. package/dist/build.mjs +0 -139
  417. package/dist/build.mjs.map +0 -1
  418. package/dist/components/Divider.vue +0 -105
  419. package/dist/components/Vml.vue +0 -89
  420. package/dist/components/utils.d.mts +0 -5
  421. package/dist/components/utils.d.mts.map +0 -1
  422. package/dist/components/utils.mjs +0 -9
  423. package/dist/components/utils.mjs.map +0 -1
  424. package/dist/composables/defineConfig.d.mts.map +0 -1
  425. package/dist/composables/defineConfig.mjs.map +0 -1
  426. package/dist/composables/renderContext.d.mts +0 -19
  427. package/dist/composables/renderContext.d.mts.map +0 -1
  428. package/dist/composables/renderContext.mjs.map +0 -1
  429. package/dist/composables/useConfig.d.mts.map +0 -1
  430. package/dist/composables/useConfig.mjs.map +0 -1
  431. package/dist/composables/useDoctype.d.mts.map +0 -1
  432. package/dist/composables/useDoctype.mjs.map +0 -1
  433. package/dist/composables/useEvent.d.mts.map +0 -1
  434. package/dist/composables/useEvent.mjs.map +0 -1
  435. package/dist/composables/usePlaintext.d.mts.map +0 -1
  436. package/dist/composables/usePlaintext.mjs.map +0 -1
  437. package/dist/config/defaults.d.mts.map +0 -1
  438. package/dist/config/defaults.mjs.map +0 -1
  439. package/dist/config/index.d.mts.map +0 -1
  440. package/dist/config/index.mjs.map +0 -1
  441. package/dist/events/index.d.mts.map +0 -1
  442. package/dist/events/index.mjs.map +0 -1
  443. package/dist/index.d.mts +0 -29
  444. package/dist/index.mjs +0 -29
  445. package/dist/plaintext.d.mts.map +0 -1
  446. package/dist/plaintext.mjs.map +0 -1
  447. package/dist/plugin.d.mts.map +0 -1
  448. package/dist/plugin.mjs +0 -41
  449. package/dist/plugin.mjs.map +0 -1
  450. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
  451. package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
  452. package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
  453. package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
  454. package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
  455. package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
  456. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
  457. package/dist/plugins/postcss/tailwindCleanup.mjs +0 -35
  458. package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
  459. package/dist/render/createRenderer.d.mts.map +0 -1
  460. package/dist/render/createRenderer.mjs +0 -155
  461. package/dist/render/createRenderer.mjs.map +0 -1
  462. package/dist/render/index.d.mts +0 -26
  463. package/dist/render/index.d.mts.map +0 -1
  464. package/dist/render/index.mjs +0 -44
  465. package/dist/render/index.mjs.map +0 -1
  466. package/dist/serve.d.mts.map +0 -1
  467. package/dist/serve.mjs.map +0 -1
  468. package/dist/server/compatibility.d.mts +0 -6
  469. package/dist/server/compatibility.d.mts.map +0 -1
  470. package/dist/server/compatibility.mjs +0 -83
  471. package/dist/server/compatibility.mjs.map +0 -1
  472. package/dist/server/linter.d.mts +0 -6
  473. package/dist/server/linter.d.mts.map +0 -1
  474. package/dist/server/linter.mjs +0 -200
  475. package/dist/server/linter.mjs.map +0 -1
  476. package/dist/server/ui/components/ui/resizable/ResizableHandle.vue +0 -30
  477. package/dist/server/ui/components/ui/resizable/ResizablePanel.vue +0 -21
  478. package/dist/server/ui/components/ui/resizable/ResizablePanelGroup.vue +0 -25
  479. package/dist/server/ui/components/ui/resizable/index.ts +0 -3
  480. package/dist/transformers/addAttributes.d.mts.map +0 -1
  481. package/dist/transformers/addAttributes.mjs.map +0 -1
  482. package/dist/transformers/attributeToStyle.d.mts +0 -25
  483. package/dist/transformers/attributeToStyle.d.mts.map +0 -1
  484. package/dist/transformers/attributeToStyle.mjs +0 -80
  485. package/dist/transformers/attributeToStyle.mjs.map +0 -1
  486. package/dist/transformers/base.d.mts +0 -8
  487. package/dist/transformers/base.d.mts.map +0 -1
  488. package/dist/transformers/base.mjs.map +0 -1
  489. package/dist/transformers/entities.d.mts +0 -8
  490. package/dist/transformers/entities.d.mts.map +0 -1
  491. package/dist/transformers/entities.mjs +0 -38
  492. package/dist/transformers/entities.mjs.map +0 -1
  493. package/dist/transformers/format.d.mts +0 -15
  494. package/dist/transformers/format.d.mts.map +0 -1
  495. package/dist/transformers/format.mjs +0 -26
  496. package/dist/transformers/format.mjs.map +0 -1
  497. package/dist/transformers/index.d.mts.map +0 -1
  498. package/dist/transformers/index.mjs +0 -73
  499. package/dist/transformers/index.mjs.map +0 -1
  500. package/dist/transformers/inlineCSS.d.mts +0 -30
  501. package/dist/transformers/inlineCSS.d.mts.map +0 -1
  502. package/dist/transformers/inlineCSS.mjs +0 -79
  503. package/dist/transformers/inlineCSS.mjs.map +0 -1
  504. package/dist/transformers/inlineLink.d.mts +0 -14
  505. package/dist/transformers/inlineLink.d.mts.map +0 -1
  506. package/dist/transformers/inlineLink.mjs.map +0 -1
  507. package/dist/transformers/minify.d.mts +0 -17
  508. package/dist/transformers/minify.d.mts.map +0 -1
  509. package/dist/transformers/minify.mjs +0 -24
  510. package/dist/transformers/minify.mjs.map +0 -1
  511. package/dist/transformers/purgeCSS.d.mts +0 -23
  512. package/dist/transformers/purgeCSS.d.mts.map +0 -1
  513. package/dist/transformers/purgeCSS.mjs +0 -66
  514. package/dist/transformers/purgeCSS.mjs.map +0 -1
  515. package/dist/transformers/removeAttributes.d.mts +0 -31
  516. package/dist/transformers/removeAttributes.d.mts.map +0 -1
  517. package/dist/transformers/removeAttributes.mjs +0 -63
  518. package/dist/transformers/removeAttributes.mjs.map +0 -1
  519. package/dist/transformers/replaceStrings.d.mts.map +0 -1
  520. package/dist/transformers/replaceStrings.mjs.map +0 -1
  521. package/dist/transformers/safeClassNames.d.mts.map +0 -1
  522. package/dist/transformers/safeClassNames.mjs.map +0 -1
  523. package/dist/transformers/shorthandCSS.d.mts +0 -24
  524. package/dist/transformers/shorthandCSS.d.mts.map +0 -1
  525. package/dist/transformers/shorthandCSS.mjs +0 -48
  526. package/dist/transformers/shorthandCSS.mjs.map +0 -1
  527. package/dist/transformers/tailwindcss.d.mts.map +0 -1
  528. package/dist/transformers/tailwindcss.mjs +0 -136
  529. package/dist/transformers/tailwindcss.mjs.map +0 -1
  530. package/dist/transformers/urlQuery.d.mts +0 -24
  531. package/dist/transformers/urlQuery.d.mts.map +0 -1
  532. package/dist/transformers/urlQuery.mjs +0 -65
  533. package/dist/transformers/urlQuery.mjs.map +0 -1
  534. package/dist/types/config.d.mts +0 -149
  535. package/dist/types/config.d.mts.map +0 -1
  536. package/dist/types/config.mjs +0 -1
  537. package/dist/types/index.d.mts +0 -2
  538. package/dist/types/index.mjs +0 -1
  539. package/dist/utils/ast/index.d.mts +0 -4
  540. package/dist/utils/ast/index.mjs +0 -5
  541. package/dist/utils/ast/parser.d.mts.map +0 -1
  542. package/dist/utils/ast/parser.mjs.map +0 -1
  543. package/dist/utils/ast/serializer.d.mts +0 -7
  544. package/dist/utils/ast/serializer.d.mts.map +0 -1
  545. package/dist/utils/ast/serializer.mjs +0 -13
  546. package/dist/utils/ast/serializer.mjs.map +0 -1
  547. package/dist/utils/ast/walker.d.mts.map +0 -1
  548. package/dist/utils/ast/walker.mjs.map +0 -1
  549. package/dist/utils/url.d.mts.map +0 -1
  550. package/dist/utils/url.mjs.map +0 -1
  551. package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
@@ -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,8 +3,8 @@ 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
9
  const starters = [
10
10
  {
@@ -160,9 +160,9 @@ async function newProject(starterArg, dirArg, options = {}) {
160
160
  path: () => p.text({
161
161
  message: "Where should we create your project?",
162
162
  placeholder: "./maizzle",
163
+ initialValue: "./maizzle",
163
164
  validate: (value) => {
164
165
  if (!value) return "Please enter a path.";
165
- if (value[0] !== ".") return "Please enter a relative path.";
166
166
  if (existsSync(value)) return "That directory already exists. Please enter a different path.";
167
167
  }
168
168
  }),
@@ -210,63 +210,43 @@ async function newProject(starterArg, dirArg, options = {}) {
210
210
  message: "Install dependencies?",
211
211
  initialValue: true
212
212
  }),
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
- }
213
+ pm: async () => options.pm || "npm"
239
214
  }, { onCancel: () => {
240
215
  p.cancel("💀");
241
216
  process.exit(0);
242
217
  } });
243
218
  }
244
- const spinner = p.spinner();
245
- spinner.start("Creating project");
246
219
  const starter = starters.find((s) => s.value === project.starter);
247
220
  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")}`);
221
+ if (project.install) try {
222
+ execSync(`${project.pm} --version`, { stdio: "ignore" });
223
+ } catch {
224
+ p.log.error(`${project.pm} is not installed. Please install it first.`);
225
+ process.exit(1);
269
226
  }
227
+ await p.tasks([{
228
+ title: "Creating project",
229
+ task: async () => {
230
+ await downloadTemplate(source.includes(":") ? source : `gh:${source}`, { dir: project.path });
231
+ await rm(`${project.path}/.github`, {
232
+ recursive: true,
233
+ force: true
234
+ });
235
+ return `Created project in ${project.path}`;
236
+ }
237
+ }, {
238
+ title: "Installing dependencies",
239
+ enabled: project.install,
240
+ task: async () => {
241
+ const startTime = Date.now();
242
+ await installDependencies({
243
+ cwd: project.path,
244
+ silent: true,
245
+ packageManager: project.pm
246
+ });
247
+ return `Installed dependencies ${color.gray((Date.now() - startTime) / 1e3 + "s")}`;
248
+ }
249
+ }]);
270
250
  const pm = project.pm || "npm";
271
251
  const runCmd = pm === "yarn" ? "yarn dev" : `${pm} run dev`;
272
252
  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.0",
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"
@@ -35,7 +36,7 @@
35
36
  "@types/node": "^25.2.3",
36
37
  "@vitest/coverage-v8": "^4.1.3",
37
38
  "tsdown": "^0.21.7",
38
- "typescript": "^5.9.3",
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"
@@ -66,7 +66,7 @@ The options object can have the following properties:
66
66
 
67
67
  ### Passing a string to stdin
68
68
 
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:
69
+ 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
70
 
71
71
  ```ts
72
72
  const result = await x('gh', ['auth', 'login', '--with-token'], {
@@ -25,7 +25,7 @@ interface CommonOutputApi {
25
25
  interface OutputApi extends AsyncIterable<string>, CommonOutputApi {
26
26
  process: ChildProcess | undefined;
27
27
  get aborted(): boolean;
28
- pipe(command: string, args?: string[], options?: Partial<PipeOptions>): Result;
28
+ pipe(command: string, args?: readonly string[], options?: Partial<PipeOptions>): Result;
29
29
  kill(signal?: KillSignal): boolean;
30
30
  }
31
31
  interface OutputApiSync extends Iterable<string>, CommonOutputApi {}
@@ -45,25 +45,25 @@ interface SyncOptions extends CommonOptions {
45
45
  nodeOptions: SpawnSyncOptions;
46
46
  }
47
47
  interface TinyExec {
48
- (command: string, args?: string[], options?: Partial<Options>): Result;
48
+ (command: string, args?: readonly string[], options?: Partial<Options>): Result;
49
49
  }
50
50
  declare class ExecProcess implements Result {
51
51
  protected _process?: ChildProcess;
52
52
  protected _aborted: boolean;
53
53
  protected _options: Partial<Options>;
54
54
  protected _command: string;
55
- protected _args: string[];
55
+ protected _args: readonly string[];
56
56
  protected _resolveClose?: () => void;
57
57
  protected _processClosed: Promise<void>;
58
58
  protected _thrownError?: Error;
59
59
  get process(): ChildProcess | undefined;
60
60
  get pid(): number | undefined;
61
61
  get exitCode(): number | undefined;
62
- constructor(command: string, args?: string[], options?: Partial<Options>);
62
+ constructor(command: string, args?: readonly string[], options?: Partial<Options>);
63
63
  kill(signal?: KillSignal): boolean;
64
64
  get aborted(): boolean;
65
65
  get killed(): boolean;
66
- pipe(command: string, args?: string[], options?: Partial<PipeOptions>): Result;
66
+ pipe(command: string, args?: readonly string[], options?: Partial<PipeOptions>): Result;
67
67
  [Symbol.asyncIterator](): AsyncIterator<string>;
68
68
  protected _waitForOutput(): Promise<Output>;
69
69
  then<TResult1 = Output, TResult2 = never>(onfulfilled?: ((value: Output) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
@@ -74,7 +74,7 @@ declare class ExecProcess implements Result {
74
74
  protected _onError: (err: Error) => void;
75
75
  protected _onClose: () => void;
76
76
  }
77
- declare function xSync(command: string, args?: string[], options?: Partial<SyncOptions>): SyncResult;
77
+ declare function xSync(command: string, args?: readonly string[], options?: Partial<SyncOptions>): SyncResult;
78
78
  declare const x: TinyExec;
79
79
  declare const exec: TinyExec;
80
80
  declare const execSync: typeof xSync;