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

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 (242) hide show
  1. package/dist/build.d.ts.map +1 -1
  2. package/dist/build.js +11 -0
  3. package/dist/build.js.map +1 -1
  4. package/dist/components/Body.vue +1 -1
  5. package/dist/components/CodeBlock.vue +1 -1
  6. package/dist/components/CodeInline.vue +72 -2
  7. package/dist/components/Column.vue +2 -1
  8. package/dist/components/Container.vue +1 -11
  9. package/dist/components/Heading.vue +1 -1
  10. package/dist/components/Img.vue +252 -7
  11. package/dist/components/Link.vue +1 -1
  12. package/dist/components/Preheader.vue +35 -5
  13. package/dist/components/Section.vue +9 -14
  14. package/dist/components/Tailwind.vue +4 -2
  15. package/dist/components/Text.vue +2 -2
  16. package/dist/components/Vml.vue +354 -0
  17. package/dist/components/utils.d.ts.map +1 -1
  18. package/dist/components/utils.js.map +1 -1
  19. package/dist/composables/defineConfig.d.ts +3 -4
  20. package/dist/composables/defineConfig.d.ts.map +1 -1
  21. package/dist/composables/defineConfig.js +3 -4
  22. package/dist/composables/defineConfig.js.map +1 -1
  23. package/dist/composables/renderContext.d.ts +0 -1
  24. package/dist/composables/renderContext.d.ts.map +1 -1
  25. package/dist/composables/renderContext.js.map +1 -1
  26. package/dist/composables/useBaseUrl.d.ts.map +1 -1
  27. package/dist/composables/useBaseUrl.js.map +1 -1
  28. package/dist/composables/useConfig.d.ts.map +1 -1
  29. package/dist/composables/useConfig.js.map +1 -1
  30. package/dist/composables/useCurrentTemplate.d.ts.map +1 -1
  31. package/dist/composables/useCurrentTemplate.js +10 -3
  32. package/dist/composables/useCurrentTemplate.js.map +1 -1
  33. package/dist/composables/useDoctype.d.ts.map +1 -1
  34. package/dist/composables/useDoctype.js.map +1 -1
  35. package/dist/composables/useEvent.js.map +1 -1
  36. package/dist/composables/useFont.d.ts.map +1 -1
  37. package/dist/composables/useFont.js.map +1 -1
  38. package/dist/composables/useOutlookFallback.d.ts.map +1 -1
  39. package/dist/composables/useOutlookFallback.js.map +1 -1
  40. package/dist/composables/usePlaintext.d.ts.map +1 -1
  41. package/dist/composables/usePlaintext.js.map +1 -1
  42. package/dist/composables/usePreheader.d.ts +6 -5
  43. package/dist/composables/usePreheader.d.ts.map +1 -1
  44. package/dist/composables/usePreheader.js +3 -3
  45. package/dist/composables/usePreheader.js.map +1 -1
  46. package/dist/composables/useTransformers.d.ts +1 -1
  47. package/dist/composables/useTransformers.d.ts.map +1 -1
  48. package/dist/composables/useTransformers.js +1 -1
  49. package/dist/composables/useTransformers.js.map +1 -1
  50. package/dist/composables/useUrlQuery.d.ts.map +1 -1
  51. package/dist/composables/useUrlQuery.js.map +1 -1
  52. package/dist/config/defaults.d.ts.map +1 -1
  53. package/dist/config/defaults.js.map +1 -1
  54. package/dist/config/index.js +12 -0
  55. package/dist/config/index.js.map +1 -1
  56. package/dist/events/index.d.ts +5 -0
  57. package/dist/events/index.d.ts.map +1 -1
  58. package/dist/events/index.js +5 -0
  59. package/dist/events/index.js.map +1 -1
  60. package/dist/index.d.ts +2 -2
  61. package/dist/index.js +2 -2
  62. package/dist/plaintext.d.ts.map +1 -1
  63. package/dist/plaintext.js.map +1 -1
  64. package/dist/plugin.js.map +1 -1
  65. package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -1
  66. package/dist/plugins/postcss/mergeMediaQueries.js.map +1 -1
  67. package/dist/plugins/postcss/pruneVars.d.ts.map +1 -1
  68. package/dist/plugins/postcss/pruneVars.js.map +1 -1
  69. package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -1
  70. package/dist/plugins/postcss/quoteFontFamilies.js.map +1 -1
  71. package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -1
  72. package/dist/plugins/postcss/removeDeclarations.js.map +1 -1
  73. package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -1
  74. package/dist/plugins/postcss/resolveMaizzleImports.js.map +1 -1
  75. package/dist/plugins/postcss/resolveProps.d.ts.map +1 -1
  76. package/dist/plugins/postcss/resolveProps.js +14 -0
  77. package/dist/plugins/postcss/resolveProps.js.map +1 -1
  78. package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -1
  79. package/dist/plugins/postcss/tailwindCleanup.js.map +1 -1
  80. package/dist/prepare.d.ts.map +1 -1
  81. package/dist/prepare.js.map +1 -1
  82. package/dist/render/active.d.ts.map +1 -1
  83. package/dist/render/active.js.map +1 -1
  84. package/dist/render/createRenderer.d.ts.map +1 -1
  85. package/dist/render/createRenderer.js +91 -3
  86. package/dist/render/createRenderer.js.map +1 -1
  87. package/dist/render/index.d.ts.map +1 -1
  88. package/dist/render/index.js +6 -0
  89. package/dist/render/index.js.map +1 -1
  90. package/dist/render/injectFonts.js.map +1 -1
  91. package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -1
  92. package/dist/render/plugins/codeBlockExtract.js +4 -0
  93. package/dist/render/plugins/codeBlockExtract.js.map +1 -1
  94. package/dist/render/plugins/markdownExtract.d.ts.map +1 -1
  95. package/dist/render/plugins/markdownExtract.js.map +1 -1
  96. package/dist/render/plugins/rawExtract.d.ts.map +1 -1
  97. package/dist/render/plugins/rawExtract.js.map +1 -1
  98. package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -1
  99. package/dist/render/plugins/rowSourceLocation.js.map +1 -1
  100. package/dist/serve.d.ts.map +1 -1
  101. package/dist/serve.js +48 -15
  102. package/dist/serve.js.map +1 -1
  103. package/dist/server/compatibility.d.ts.map +1 -1
  104. package/dist/server/compatibility.js +48 -0
  105. package/dist/server/compatibility.js.map +1 -1
  106. package/dist/server/email.js.map +1 -1
  107. package/dist/server/linter.js +6 -0
  108. package/dist/server/linter.js.map +1 -1
  109. package/dist/server/sfc-utils.d.ts.map +1 -1
  110. package/dist/server/sfc-utils.js.map +1 -1
  111. package/dist/server/ui/App.vue +17 -16
  112. package/dist/server/ui/components/Markdown.vue +17 -0
  113. package/dist/server/ui/components/SidebarClose.vue +1 -1
  114. package/dist/server/ui/components/ui/checkbox/Checkbox.vue +1 -1
  115. package/dist/server/ui/components/ui/command/CommandInput.vue +2 -2
  116. package/dist/server/ui/components/ui/dialog/DialogContent.vue +1 -1
  117. package/dist/server/ui/components/ui/dialog/DialogScrollContent.vue +1 -1
  118. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +1 -1
  119. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +1 -1
  120. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +1 -1
  121. package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
  122. package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +1 -1
  123. package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +1 -1
  124. package/dist/server/ui/lib/emulated-dark-mode.ts +25 -10
  125. package/dist/server/ui/pages/Home.vue +1 -1
  126. package/dist/server/ui/pages/Preview.vue +32 -18
  127. package/dist/tests/render/_helpers.js.map +1 -1
  128. package/dist/transformers/addAttributes.d.ts +18 -8
  129. package/dist/transformers/addAttributes.d.ts.map +1 -1
  130. package/dist/transformers/addAttributes.js +22 -8
  131. package/dist/transformers/addAttributes.js.map +1 -1
  132. package/dist/transformers/attributeToStyle.d.ts.map +1 -1
  133. package/dist/transformers/attributeToStyle.js.map +1 -1
  134. package/dist/transformers/base.d.ts.map +1 -1
  135. package/dist/transformers/base.js +4 -0
  136. package/dist/transformers/base.js.map +1 -1
  137. package/dist/transformers/columnWidth.d.ts.map +1 -1
  138. package/dist/transformers/columnWidth.js +136 -150
  139. package/dist/transformers/columnWidth.js.map +1 -1
  140. package/dist/transformers/entities.d.ts.map +1 -1
  141. package/dist/transformers/entities.js +1 -0
  142. package/dist/transformers/entities.js.map +1 -1
  143. package/dist/transformers/filters/defaults.d.ts.map +1 -1
  144. package/dist/transformers/filters/defaults.js.map +1 -1
  145. package/dist/transformers/filters/index.d.ts.map +1 -1
  146. package/dist/transformers/filters/index.js.map +1 -1
  147. package/dist/transformers/format.d.ts.map +1 -1
  148. package/dist/transformers/format.js.map +1 -1
  149. package/dist/transformers/index.d.ts.map +1 -1
  150. package/dist/transformers/index.js +33 -5
  151. package/dist/transformers/index.js.map +1 -1
  152. package/dist/transformers/inlineCss.d.ts.map +1 -1
  153. package/dist/transformers/inlineCss.js +27 -9
  154. package/dist/transformers/inlineCss.js.map +1 -1
  155. package/dist/transformers/inlineLink.d.ts.map +1 -1
  156. package/dist/transformers/inlineLink.js.map +1 -1
  157. package/dist/transformers/minify.d.ts.map +1 -1
  158. package/dist/transformers/minify.js.map +1 -1
  159. package/dist/transformers/minifyCodeInline.d.ts +29 -0
  160. package/dist/transformers/minifyCodeInline.d.ts.map +1 -0
  161. package/dist/transformers/minifyCodeInline.js +36 -0
  162. package/dist/transformers/minifyCodeInline.js.map +1 -0
  163. package/dist/transformers/msoPlaceholders.d.ts +10 -5
  164. package/dist/transformers/msoPlaceholders.d.ts.map +1 -1
  165. package/dist/transformers/msoPlaceholders.js +38 -7
  166. package/dist/transformers/msoPlaceholders.js.map +1 -1
  167. package/dist/transformers/purgeCss.d.ts.map +1 -1
  168. package/dist/transformers/purgeCss.js +29 -3
  169. package/dist/transformers/purgeCss.js.map +1 -1
  170. package/dist/transformers/removeAttributes.d.ts.map +1 -1
  171. package/dist/transformers/removeAttributes.js.map +1 -1
  172. package/dist/transformers/replaceStrings.d.ts.map +1 -1
  173. package/dist/transformers/replaceStrings.js.map +1 -1
  174. package/dist/transformers/safeSelectors.d.ts +37 -0
  175. package/dist/transformers/safeSelectors.d.ts.map +1 -0
  176. package/dist/transformers/{safeClassNames.js → safeSelectors.js} +37 -6
  177. package/dist/transformers/safeSelectors.js.map +1 -0
  178. package/dist/transformers/shorthandCss.d.ts.map +1 -1
  179. package/dist/transformers/shorthandCss.js +38 -7
  180. package/dist/transformers/shorthandCss.js.map +1 -1
  181. package/dist/transformers/sixHex.d.ts.map +1 -1
  182. package/dist/transformers/sixHex.js.map +1 -1
  183. package/dist/transformers/tailwindComponent.js +9 -0
  184. package/dist/transformers/tailwindComponent.js.map +1 -1
  185. package/dist/transformers/tailwindcss.d.ts.map +1 -1
  186. package/dist/transformers/tailwindcss.js +22 -0
  187. package/dist/transformers/tailwindcss.js.map +1 -1
  188. package/dist/transformers/urlQuery.d.ts.map +1 -1
  189. package/dist/transformers/urlQuery.js.map +1 -1
  190. package/dist/types/config.d.ts +6 -10
  191. package/dist/types/config.d.ts.map +1 -1
  192. package/dist/types/index.d.ts +1 -1
  193. package/dist/utils/ast/parser.d.ts.map +1 -1
  194. package/dist/utils/ast/parser.js.map +1 -1
  195. package/dist/utils/ast/serializer.d.ts.map +1 -1
  196. package/dist/utils/ast/serializer.js +27 -17
  197. package/dist/utils/ast/serializer.js.map +1 -1
  198. package/dist/utils/ast/walker.d.ts.map +1 -1
  199. package/dist/utils/ast/walker.js.map +1 -1
  200. package/dist/utils/compileTailwindCss.d.ts.map +1 -1
  201. package/dist/utils/compileTailwindCss.js.map +1 -1
  202. package/dist/utils/componentSources.d.ts.map +1 -1
  203. package/dist/utils/componentSources.js.map +1 -1
  204. package/dist/utils/cssBox.d.ts +42 -0
  205. package/dist/utils/cssBox.d.ts.map +1 -0
  206. package/dist/utils/cssBox.js +156 -0
  207. package/dist/utils/cssBox.js.map +1 -0
  208. package/dist/utils/decodeStyleEntities.d.ts.map +1 -1
  209. package/dist/utils/decodeStyleEntities.js.map +1 -1
  210. package/dist/utils/detect.d.ts.map +1 -1
  211. package/dist/utils/detect.js.map +1 -1
  212. package/dist/utils/output-markers.d.ts.map +1 -1
  213. package/dist/utils/output-markers.js.map +1 -1
  214. package/dist/utils/url.d.ts.map +1 -1
  215. package/dist/utils/url.js.map +1 -1
  216. package/dist/utils/watchPaths.js.map +1 -1
  217. package/node_modules/@clack/core/CHANGELOG.md +6 -0
  218. package/node_modules/@clack/core/dist/index.d.mts +1 -1
  219. package/node_modules/@clack/core/dist/index.mjs +8 -8
  220. package/node_modules/@clack/core/dist/index.mjs.map +1 -1
  221. package/node_modules/@clack/core/package.json +1 -1
  222. package/node_modules/@clack/prompts/CHANGELOG.md +13 -0
  223. package/node_modules/@clack/prompts/README.md +2 -2
  224. package/node_modules/@clack/prompts/dist/index.d.mts +98 -0
  225. package/node_modules/@clack/prompts/dist/index.mjs +122 -121
  226. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -1
  227. package/node_modules/@clack/prompts/package.json +2 -2
  228. package/node_modules/fast-wrap-ansi/lib/main.js +0 -1
  229. package/node_modules/fast-wrap-ansi/package.json +10 -10
  230. package/node_modules/maizzle/dist/commands/make/config.mjs +7 -6
  231. package/node_modules/maizzle/dist/commands/new.mjs +15 -84
  232. package/node_modules/maizzle/package.json +2 -2
  233. package/node_modules/tinyexec/README.md +8 -0
  234. package/node_modules/tinyexec/dist/main.d.mts +16 -1
  235. package/node_modules/tinyexec/dist/main.mjs +163 -457
  236. package/node_modules/tinyexec/package.json +12 -14
  237. package/package.json +3 -4
  238. package/dist/transformers/safeClassNames.d.ts +0 -22
  239. package/dist/transformers/safeClassNames.d.ts.map +0 -1
  240. package/dist/transformers/safeClassNames.js.map +0 -1
  241. package/node_modules/fast-wrap-ansi/lib/main.js.map +0 -1
  242. package/node_modules/tinyexec/dist/LICENSES.txt +0 -83
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clack/prompts",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.mjs",
6
6
  "module": "./dist/index.mjs",
@@ -53,7 +53,7 @@
53
53
  "fast-string-width": "^3.0.2",
54
54
  "fast-wrap-ansi": "^0.2.0",
55
55
  "sisteransi": "^1.0.5",
56
- "@clack/core": "1.3.0"
56
+ "@clack/core": "1.3.1"
57
57
  },
58
58
  "devDependencies": {
59
59
  "is-unicode-supported": "^1.3.0",
@@ -216,4 +216,3 @@ export function wrapAnsi(string, columns, options) {
216
216
  .map((line) => exec(line, columns, options))
217
217
  .join('\n');
218
218
  }
219
- //# sourceMappingURL=main.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fast-wrap-ansi",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "files": [
5
5
  "lib"
6
6
  ],
@@ -33,17 +33,17 @@
33
33
  "test": "vitest run"
34
34
  },
35
35
  "devDependencies": {
36
- "@eslint/js": "^9.32.0",
37
- "@types/node": "^24.2.0",
38
- "eslint": "^9.32.0",
36
+ "@eslint/js": "^10.0.1",
37
+ "@types/node": "^25.8.0",
38
+ "eslint": "^10.4.0",
39
39
  "fast-wrap-ansi-prod": "npm:fast-wrap-ansi@*",
40
40
  "picocolors": "^1.1.1",
41
- "prettier": "^3.6.2",
42
- "tinybench": "^5.0.1",
43
- "typescript": "^5.8.3",
44
- "typescript-eslint": "^8.38.0",
45
- "vitest": "^3.2.4",
46
- "wrap-ansi": "^9.0.2"
41
+ "prettier": "^3.8.3",
42
+ "tinybench": "^6.0.2",
43
+ "typescript": "^6.0.3",
44
+ "typescript-eslint": "^8.59.3",
45
+ "vitest": "^4.1.6",
46
+ "wrap-ansi": "^10.0.0"
47
47
  },
48
48
  "dependencies": {
49
49
  "fast-string-width": "^3.0.2"
@@ -4,18 +4,19 @@ import * as p from "@clack/prompts";
4
4
  //#region src/commands/make/config.ts
5
5
  async function makeConfig(name) {
6
6
  if (name) {
7
- await scaffold(`${name}.config.ts`, "config.ts");
7
+ await scaffold(name, "config.ts");
8
8
  return;
9
9
  }
10
10
  p.intro(`${color.bgCyan(color.black(" maizzle make:config "))}`);
11
- await scaffold(`${(await p.group({ name: () => p.text({
12
- message: "Config name",
13
- placeholder: "production",
11
+ await scaffold((await p.group({ name: () => p.text({
12
+ message: "File name",
13
+ placeholder: "i.e. maizzle.config.ts",
14
14
  validate: (value) => {
15
- if (!value) return "Please enter a config name.";
15
+ if (!value) return "Please enter a file name.";
16
16
  if (value.includes(" ")) return "Use - or . instead of spaces.";
17
+ if (!/\.(js|ts)$/.test(value)) return "File must end in .js or .ts";
17
18
  }
18
- }) }, { onCancel })).name}.config.ts`, "config.ts");
19
+ }) }, { onCancel })).name, "config.ts");
19
20
  }
20
21
  //#endregion
21
22
  export { makeConfig as default };
@@ -6,53 +6,6 @@ import { existsSync } from "node:fs";
6
6
  import { execSync } from "node:child_process";
7
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
  " ███╗ ███╗ █████╗ ██╗ ███████╗ ███████╗ ██╗ ███████╗",
@@ -169,41 +122,21 @@ async function newProject(starterArg, dirArg, options = {}) {
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({
@@ -216,8 +149,6 @@ async function newProject(starterArg, dirArg, options = {}) {
216
149
  process.exit(0);
217
150
  } });
218
151
  }
219
- const starter = starters.find((s) => s.value === project.starter);
220
- const source = starter ? starter.path : project.starter;
221
152
  if (project.install) try {
222
153
  execSync(`${project.pm} --version`, { stdio: "ignore" });
223
154
  } catch {
@@ -227,7 +158,7 @@ async function newProject(starterArg, dirArg, options = {}) {
227
158
  await p.tasks([{
228
159
  title: "Creating project",
229
160
  task: async () => {
230
- await downloadTemplate(source.includes(":") ? source : `gh:${source}`, { dir: project.path });
161
+ await downloadTemplate(project.starter.includes(":") ? project.starter : `gh:${project.starter}`, { dir: project.path });
231
162
  await rm(`${project.path}/.github`, {
232
163
  recursive: true,
233
164
  force: true
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maizzle",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "CLI tool for the Maizzle Email Framework",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,7 +35,7 @@
35
35
  "devDependencies": {
36
36
  "@types/node": "^25.2.3",
37
37
  "@vitest/coverage-v8": "^4.1.3",
38
- "tsdown": "^0.21.7",
38
+ "tsdown": "^0.22.0",
39
39
  "typescript": "^6.0.2",
40
40
  "vitest": "^4.1.3"
41
41
  },
@@ -63,6 +63,7 @@ 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
 
@@ -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;
@@ -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;
@@ -79,4 +94,4 @@ 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 };