@maizzle/framework 6.0.0-rc.3 → 6.0.0-rc.4
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.
- package/dist/types/config.d.mts +358 -13
- package/dist/types/config.d.mts.map +1 -1
- package/package.json +1 -1
package/dist/types/config.d.mts
CHANGED
|
@@ -4,62 +4,282 @@ import * as unplugin_vue_markdown_types0 from "unplugin-vue-markdown/types";
|
|
|
4
4
|
|
|
5
5
|
//#region src/types/config.d.ts
|
|
6
6
|
interface UrlQueryOptions {
|
|
7
|
+
/**
|
|
8
|
+
* CSS selectors for elements to process.
|
|
9
|
+
*
|
|
10
|
+
* @default ['a']
|
|
11
|
+
*/
|
|
7
12
|
tags?: string[];
|
|
13
|
+
/**
|
|
14
|
+
* HTML attributes containing URLs to append query params to.
|
|
15
|
+
*
|
|
16
|
+
* @default ['src', 'href', 'poster', 'srcset', 'background']
|
|
17
|
+
*/
|
|
8
18
|
attributes?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* When `true`, only appends query params to absolute URLs.
|
|
21
|
+
*
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
9
24
|
strict?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Options forwarded to the `query-string` library for controlling serialization.
|
|
27
|
+
*
|
|
28
|
+
* @default { encode: false }
|
|
29
|
+
*/
|
|
10
30
|
qs?: Record<string, unknown>;
|
|
11
31
|
}
|
|
12
32
|
type UrlQuery = Record<string, unknown> & {
|
|
13
33
|
_options?: UrlQueryOptions;
|
|
14
34
|
};
|
|
15
35
|
interface UrlConfig {
|
|
36
|
+
/**
|
|
37
|
+
* Append query parameters to URLs in your HTML.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* url: {
|
|
41
|
+
* query: {
|
|
42
|
+
* utm_source: 'maizzle',
|
|
43
|
+
* utm_medium: 'email',
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
*/
|
|
16
47
|
query?: UrlQuery;
|
|
48
|
+
/**
|
|
49
|
+
* Prepend a base URL to relative paths.
|
|
50
|
+
*
|
|
51
|
+
* Pass a string to prepend to all tags, or an object for fine-grained control.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* url: {
|
|
55
|
+
* base: 'https://cdn.example.com/emails/',
|
|
56
|
+
* }
|
|
57
|
+
*/
|
|
17
58
|
base?: string | {
|
|
18
|
-
url?: string;
|
|
19
|
-
tags?: string[] | Record<string, Record<string, string | boolean>>;
|
|
20
|
-
attributes?: Record<string, string>;
|
|
21
|
-
styleTag?: boolean;
|
|
59
|
+
/** The base URL to prepend. */url?: string; /** Tags or tag-attribute map to process. */
|
|
60
|
+
tags?: string[] | Record<string, Record<string, string | boolean>>; /** Attributes to process. */
|
|
61
|
+
attributes?: Record<string, string>; /** Also apply to URLs in `<style>` tags. */
|
|
62
|
+
styleTag?: boolean; /** Also apply to URLs in inline `style` attributes. */
|
|
22
63
|
inlineCss?: boolean;
|
|
23
64
|
};
|
|
24
65
|
}
|
|
25
66
|
interface CssConfig {
|
|
67
|
+
/**
|
|
68
|
+
* Base directory for Tailwind CSS `@source` resolution.
|
|
69
|
+
*
|
|
70
|
+
* Automatically set to `root` when `root` is configured.
|
|
71
|
+
*/
|
|
26
72
|
base?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Remove unused CSS.
|
|
75
|
+
*
|
|
76
|
+
* Set to `true` to enable with defaults, or pass an options object.
|
|
77
|
+
*
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
27
80
|
purge?: boolean | Record<string, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* Inline CSS from `<style>` tags into matching HTML elements.
|
|
83
|
+
*
|
|
84
|
+
* Set to `true` to enable with defaults, or pass an options object for fine-grained control.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* css: {
|
|
88
|
+
* inline: {
|
|
89
|
+
* removeStyleTags: true,
|
|
90
|
+
* applyWidthAttributes: true,
|
|
91
|
+
* }
|
|
92
|
+
* }
|
|
93
|
+
*/
|
|
28
94
|
inline?: boolean | {
|
|
95
|
+
/**
|
|
96
|
+
* Convert HTML attributes like `width`, `height`, `bgcolor`, and `valign`
|
|
97
|
+
* to inline CSS styles. Set to `true` for all, or pass an array of attribute names.
|
|
98
|
+
*
|
|
99
|
+
* @default false
|
|
100
|
+
*/
|
|
29
101
|
attributeToStyle?: boolean | string[];
|
|
102
|
+
/**
|
|
103
|
+
* Remove `<style>` tags after inlining.
|
|
104
|
+
*
|
|
105
|
+
* @default false
|
|
106
|
+
*/
|
|
30
107
|
removeStyleTags?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Remove selectors from `<style>` tags after they have been inlined.
|
|
110
|
+
*
|
|
111
|
+
* @default true
|
|
112
|
+
*/
|
|
31
113
|
removeInlinedSelectors?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Convert `0px`, `0em` etc. to `0` in inline styles.
|
|
116
|
+
*
|
|
117
|
+
* @default true
|
|
118
|
+
*/
|
|
32
119
|
preferUnitlessValues?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* CSS selectors to preserve in `<style>` tags, even after inlining.
|
|
122
|
+
*
|
|
123
|
+
* @default []
|
|
124
|
+
*/
|
|
33
125
|
safelist?: string[];
|
|
126
|
+
/**
|
|
127
|
+
* Duplicate CSS properties to HTML attributes.
|
|
128
|
+
*
|
|
129
|
+
* @default {}
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* styleToAttribute: {
|
|
133
|
+
* 'background-color': 'bgcolor',
|
|
134
|
+
* }
|
|
135
|
+
*/
|
|
34
136
|
styleToAttribute?: Record<string, string>;
|
|
137
|
+
/**
|
|
138
|
+
* Add `width` HTML attributes based on inline CSS width values.
|
|
139
|
+
*
|
|
140
|
+
* @default true
|
|
141
|
+
*/
|
|
35
142
|
applyWidthAttributes?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Add `height` HTML attributes based on inline CSS height values.
|
|
145
|
+
*
|
|
146
|
+
* @default true
|
|
147
|
+
*/
|
|
36
148
|
applyHeightAttributes?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Elements that can receive `width` HTML attributes.
|
|
151
|
+
*
|
|
152
|
+
* @default ['img', 'video']
|
|
153
|
+
*/
|
|
37
154
|
widthElements?: string[];
|
|
155
|
+
/**
|
|
156
|
+
* Elements that can receive `height` HTML attributes.
|
|
157
|
+
*
|
|
158
|
+
* @default ['img', 'video']
|
|
159
|
+
*/
|
|
38
160
|
heightElements?: string[];
|
|
161
|
+
/**
|
|
162
|
+
* CSS properties to exclude from inlining.
|
|
163
|
+
*
|
|
164
|
+
* @default []
|
|
165
|
+
*/
|
|
39
166
|
excludedProperties?: string[];
|
|
167
|
+
/**
|
|
168
|
+
* Template language code blocks to preserve during inlining.
|
|
169
|
+
*
|
|
170
|
+
* @default { EJS: { start: '<%', end: '%>' }, HBS: { start: '\{\{', end: '}}' } }
|
|
171
|
+
*/
|
|
40
172
|
codeBlocks?: Record<string, {
|
|
41
173
|
start: string;
|
|
42
174
|
end: string;
|
|
43
175
|
}>;
|
|
176
|
+
/**
|
|
177
|
+
* Additional CSS string to inline alongside `<style>` tag contents.
|
|
178
|
+
*/
|
|
44
179
|
customCSS?: string;
|
|
45
|
-
[key: string]: unknown;
|
|
46
180
|
};
|
|
181
|
+
/**
|
|
182
|
+
* Merge duplicate `@media` queries and sort them.
|
|
183
|
+
*
|
|
184
|
+
* Enabled by default. Set to `false` to disable, or pass an object to control sort order.
|
|
185
|
+
*
|
|
186
|
+
* @default true
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* css: {
|
|
190
|
+
* media: { sort: 'desktop-first' },
|
|
191
|
+
* }
|
|
192
|
+
*/
|
|
47
193
|
media?: boolean | {
|
|
194
|
+
/**
|
|
195
|
+
* Sort order for media queries.
|
|
196
|
+
*
|
|
197
|
+
* @default 'mobile-first'
|
|
198
|
+
*/
|
|
48
199
|
sort?: 'mobile-first' | 'desktop-first' | ((a: string, b: string) => number);
|
|
49
200
|
};
|
|
201
|
+
/**
|
|
202
|
+
* Convert unitless CSS values to their unitless equivalents.
|
|
203
|
+
*
|
|
204
|
+
* For example, `line-height: 24px` with a `16px` font becomes `line-height: 1.5`.
|
|
205
|
+
*
|
|
206
|
+
* @default true
|
|
207
|
+
*/
|
|
50
208
|
preferUnitless?: boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Resolve CSS `calc()` expressions to static values where possible.
|
|
211
|
+
*
|
|
212
|
+
* @default true
|
|
213
|
+
*/
|
|
51
214
|
resolveCalc?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Resolve CSS custom properties (`var()`) to their computed values.
|
|
217
|
+
*
|
|
218
|
+
* @default true
|
|
219
|
+
*/
|
|
52
220
|
resolveProps?: boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Replace unsafe CSS class names with email-safe equivalents.
|
|
223
|
+
*
|
|
224
|
+
* @default true
|
|
225
|
+
*/
|
|
53
226
|
safe?: boolean | Record<string, string>;
|
|
54
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Rewrite longhand CSS to shorthand where possible.
|
|
229
|
+
*
|
|
230
|
+
* For example, `padding: 10px 20px 10px 20px` becomes `padding: 10px 20px`.
|
|
231
|
+
*
|
|
232
|
+
* @default false
|
|
233
|
+
*/
|
|
55
234
|
shorthand?: boolean | {
|
|
56
235
|
tags?: string[];
|
|
57
236
|
};
|
|
237
|
+
/**
|
|
238
|
+
* Remove specific CSS declarations by selector.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* css: {
|
|
242
|
+
* removeDeclarations: {
|
|
243
|
+
* ':root': '*',
|
|
244
|
+
* }
|
|
245
|
+
* }
|
|
246
|
+
*/
|
|
58
247
|
removeDeclarations?: Record<string, RemoveValue>;
|
|
248
|
+
/**
|
|
249
|
+
* File paths to exclude from CSS processing.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* css: {
|
|
253
|
+
* exclude: ['emails/amp/**'],
|
|
254
|
+
* }
|
|
255
|
+
*/
|
|
59
256
|
exclude?: string[];
|
|
60
257
|
}
|
|
61
258
|
interface AttributesConfig {
|
|
259
|
+
/**
|
|
260
|
+
* Add attributes to HTML elements.
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* html: {
|
|
264
|
+
* attributes: {
|
|
265
|
+
* add: {
|
|
266
|
+
* table: { cellpadding: 0, cellspacing: 0, role: 'none' },
|
|
267
|
+
* img: { alt: '' },
|
|
268
|
+
* }
|
|
269
|
+
* }
|
|
270
|
+
* }
|
|
271
|
+
*/
|
|
62
272
|
add?: false | Record<string, Record<string, string | boolean | number>>;
|
|
273
|
+
/**
|
|
274
|
+
* Remove attributes from HTML elements by name or name-value pair.
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* html: {
|
|
278
|
+
* attributes: {
|
|
279
|
+
* remove: ['data-test', { name: 'class', value: /^js-/ }],
|
|
280
|
+
* }
|
|
281
|
+
* }
|
|
282
|
+
*/
|
|
63
283
|
remove?: Array<string | {
|
|
64
284
|
name: string;
|
|
65
285
|
value?: string | RegExp;
|
|
@@ -67,77 +287,202 @@ interface AttributesConfig {
|
|
|
67
287
|
}
|
|
68
288
|
type EntitiesConfig = boolean | Record<string, string>;
|
|
69
289
|
interface PostcssConfig {
|
|
70
|
-
/**
|
|
290
|
+
/**
|
|
291
|
+
* Selector prefixes to strip from compiled CSS.
|
|
292
|
+
*
|
|
293
|
+
* @default [':host', ':lang']
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* postcss: {
|
|
297
|
+
* removeSelectors: [':host', ':lang', ':root'],
|
|
298
|
+
* }
|
|
299
|
+
*/
|
|
71
300
|
removeSelectors?: string[];
|
|
72
|
-
/**
|
|
301
|
+
/**
|
|
302
|
+
* At-rule names to strip from compiled CSS.
|
|
303
|
+
*
|
|
304
|
+
* @default ['layer', 'property']
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* postcss: {
|
|
308
|
+
* removeAtRules: ['layer', 'property', 'charset'],
|
|
309
|
+
* }
|
|
310
|
+
*/
|
|
73
311
|
removeAtRules?: string[];
|
|
74
|
-
[key: string]: unknown;
|
|
75
312
|
}
|
|
76
313
|
interface HtmlConfig {
|
|
314
|
+
/** Configure HTML attribute transformations. */
|
|
77
315
|
attributes?: AttributesConfig;
|
|
316
|
+
/**
|
|
317
|
+
* Decode HTML entities.
|
|
318
|
+
*
|
|
319
|
+
* Set to `true` to decode all, or pass a map of entities to decode.
|
|
320
|
+
*
|
|
321
|
+
* @default true
|
|
322
|
+
*/
|
|
78
323
|
decodeEntities?: EntitiesConfig;
|
|
324
|
+
/**
|
|
325
|
+
* Pretty-print the HTML output.
|
|
326
|
+
*
|
|
327
|
+
* Set to `true` to enable with defaults, or pass options.
|
|
328
|
+
*/
|
|
79
329
|
format?: boolean | oxfmt.FormatOptions;
|
|
330
|
+
/**
|
|
331
|
+
* Minify the HTML output.
|
|
332
|
+
*
|
|
333
|
+
* Set to `true` to enable with defaults, or pass options.
|
|
334
|
+
*/
|
|
80
335
|
minify?: boolean | Record<string, unknown>;
|
|
81
336
|
}
|
|
82
337
|
interface MaizzleConfig {
|
|
83
338
|
/**
|
|
84
339
|
* Root directory for the Maizzle email project.
|
|
85
340
|
*
|
|
86
|
-
* When set, relative paths for `content`, `static.source`,
|
|
87
|
-
*
|
|
88
|
-
* resolved relative to this directory.
|
|
341
|
+
* When set, relative paths for `content`, `static.source`,
|
|
342
|
+
* and `css.base` are all resolved relative to this directory.
|
|
89
343
|
*
|
|
90
344
|
* Defaults to `process.cwd()`.
|
|
91
345
|
*
|
|
92
346
|
* @example
|
|
93
|
-
* // In a Laravel app where emails live under resources/js/emails:
|
|
94
347
|
* maizzle({
|
|
95
348
|
* root: 'resources/js/emails',
|
|
96
349
|
* content: ['./**\/*.vue'],
|
|
97
350
|
* })
|
|
98
351
|
*/
|
|
99
352
|
root?: string;
|
|
353
|
+
/** Options passed to `unplugin-vue-markdown` for Markdown template support. */
|
|
100
354
|
markdown?: unplugin_vue_markdown_types0.Options;
|
|
355
|
+
/**
|
|
356
|
+
* Glob patterns for email template files to process.
|
|
357
|
+
*
|
|
358
|
+
* Resolved relative to `root`.
|
|
359
|
+
*
|
|
360
|
+
* @default ['emails/**\/*.{vue,md}']
|
|
361
|
+
*/
|
|
101
362
|
content?: string[];
|
|
363
|
+
/** Output configuration for built email templates. */
|
|
102
364
|
output?: {
|
|
365
|
+
/**
|
|
366
|
+
* Directory to write compiled HTML files to.
|
|
367
|
+
*
|
|
368
|
+
* @default 'dist'
|
|
369
|
+
*/
|
|
103
370
|
path?: string;
|
|
371
|
+
/**
|
|
372
|
+
* File extension for compiled templates.
|
|
373
|
+
*
|
|
374
|
+
* @default 'html'
|
|
375
|
+
*
|
|
376
|
+
* @example
|
|
377
|
+
* output: {
|
|
378
|
+
* extension: 'blade.php',
|
|
379
|
+
* }
|
|
380
|
+
*/
|
|
104
381
|
extension?: string;
|
|
105
382
|
};
|
|
383
|
+
/** Static file copying configuration. */
|
|
106
384
|
static?: {
|
|
385
|
+
/**
|
|
386
|
+
* Glob patterns for static files to copy to the output directory.
|
|
387
|
+
*
|
|
388
|
+
* @default ['public/**\/*.*']
|
|
389
|
+
*/
|
|
107
390
|
source?: string[];
|
|
391
|
+
/**
|
|
392
|
+
* Subdirectory in the output folder where static files are placed.
|
|
393
|
+
*
|
|
394
|
+
* @default 'public'
|
|
395
|
+
*/
|
|
108
396
|
destination?: string;
|
|
109
397
|
};
|
|
398
|
+
/** Component auto-import configuration. */
|
|
110
399
|
components?: {
|
|
400
|
+
/**
|
|
401
|
+
* Additional directories to scan for auto-imported Vue components.
|
|
402
|
+
*
|
|
403
|
+
* Resolved relative to `cwd` (not `root`), so paths outside the
|
|
404
|
+
* email root directory work as expected.
|
|
405
|
+
*
|
|
406
|
+
* @example
|
|
407
|
+
* components: {
|
|
408
|
+
* source: ['resources/js/components/email'],
|
|
409
|
+
* }
|
|
410
|
+
*/
|
|
111
411
|
source?: string | string[];
|
|
112
412
|
};
|
|
413
|
+
/** Dev server configuration. */
|
|
113
414
|
server?: {
|
|
415
|
+
/**
|
|
416
|
+
* Port for the dev server.
|
|
417
|
+
*
|
|
418
|
+
* @default 3000
|
|
419
|
+
*/
|
|
114
420
|
port?: number;
|
|
421
|
+
/**
|
|
422
|
+
* Additional file paths to watch for changes.
|
|
423
|
+
*
|
|
424
|
+
* @default []
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* server: {
|
|
428
|
+
* watch: ['./tailwind.config.ts'],
|
|
429
|
+
* }
|
|
430
|
+
*/
|
|
115
431
|
watch?: string[];
|
|
116
432
|
};
|
|
433
|
+
/** Tailwind CSS and email CSS optimization settings. */
|
|
117
434
|
css?: CssConfig;
|
|
435
|
+
/**
|
|
436
|
+
* Generate a plaintext version of the email.
|
|
437
|
+
*
|
|
438
|
+
* Set to `true` to enable, or pass a string path or options object.
|
|
439
|
+
*
|
|
440
|
+
* @default false
|
|
441
|
+
*/
|
|
118
442
|
plaintext?: boolean | string | Record<string, unknown>;
|
|
443
|
+
/** PostCSS processing options. */
|
|
119
444
|
postcss?: PostcssConfig;
|
|
445
|
+
/**
|
|
446
|
+
* Enable the transformer pipeline (CSS inlining, purging, shorthand, etc).
|
|
447
|
+
*
|
|
448
|
+
* @default true
|
|
449
|
+
*/
|
|
120
450
|
useTransformers?: boolean;
|
|
451
|
+
/**
|
|
452
|
+
* Replace strings in the final HTML output.
|
|
453
|
+
*
|
|
454
|
+
* @example
|
|
455
|
+
* replaceStrings: {
|
|
456
|
+
* '{{ year }}': new Date().getFullYear().toString(),
|
|
457
|
+
* }
|
|
458
|
+
*/
|
|
121
459
|
replaceStrings?: Record<string, string>;
|
|
460
|
+
/** URL transformation settings (base URL, query string appending). */
|
|
122
461
|
url?: UrlConfig;
|
|
462
|
+
/** HTML post-processing settings (attributes, formatting, minification). */
|
|
123
463
|
html?: HtmlConfig;
|
|
464
|
+
/** Called before any templates are processed. */
|
|
124
465
|
beforeCreate?: (params: {
|
|
125
466
|
config: MaizzleConfig;
|
|
126
467
|
}) => void | Promise<void>;
|
|
468
|
+
/** Called before each template is rendered. Return a string to replace the template source. */
|
|
127
469
|
beforeRender?: (params: {
|
|
128
470
|
config: MaizzleConfig;
|
|
129
471
|
template: string;
|
|
130
472
|
}) => string | void | Promise<string | void>;
|
|
473
|
+
/** Called after each template is rendered but before transformers run. Return a string to replace the output HTML. */
|
|
131
474
|
afterRender?: (params: {
|
|
132
475
|
config: MaizzleConfig;
|
|
133
476
|
template: string;
|
|
134
477
|
html: string;
|
|
135
478
|
}) => string | void | Promise<string | void>;
|
|
479
|
+
/** Called after transformers have run on each template. Return a string to replace the output HTML. */
|
|
136
480
|
afterTransform?: (params: {
|
|
137
481
|
config: MaizzleConfig;
|
|
138
482
|
template: string;
|
|
139
483
|
html: string;
|
|
140
484
|
}) => string | void | Promise<string | void>;
|
|
485
|
+
/** Called after all templates have been built. */
|
|
141
486
|
afterBuild?: (params: {
|
|
142
487
|
files: string[];
|
|
143
488
|
config: MaizzleConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.mts","names":[],"sources":["../../src/types/config.ts"],"mappings":";;;;;UAAiB,eAAA;
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../../src/types/config.ts"],"mappings":"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"}
|