@shipsite.dev/core 0.2.37 → 0.2.40

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/config.d.ts CHANGED
@@ -1,34 +1,18 @@
1
1
  import { z } from 'zod';
2
- declare const PageConfigSchema: z.ZodObject<{
2
+ export declare const PageConfigSchema: z.ZodObject<{
3
3
  slug: z.ZodString;
4
4
  type: z.ZodString;
5
5
  content: z.ZodString;
6
- locales: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7
- }, "strip", z.ZodTypeAny, {
8
- type: string;
9
- slug: string;
10
- content: string;
11
- locales?: string[] | undefined;
12
- }, {
13
- type: string;
14
- slug: string;
15
- content: string;
16
- locales?: string[] | undefined;
17
- }>;
18
- declare const ShipSiteConfigSchema: z.ZodObject<{
6
+ locales: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ }, z.core.$strip>;
8
+ export declare const ShipSiteConfigSchema: z.ZodObject<{
19
9
  $schema: z.ZodOptional<z.ZodString>;
20
10
  name: z.ZodString;
21
11
  url: z.ZodString;
22
- logo: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
12
+ logo: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
23
13
  light: z.ZodString;
24
14
  dark: z.ZodString;
25
- }, "strip", z.ZodTypeAny, {
26
- light: string;
27
- dark: string;
28
- }, {
29
- light: string;
30
- dark: string;
31
- }>]>>;
15
+ }, z.core.$strip>]>>;
32
16
  favicon: z.ZodOptional<z.ZodString>;
33
17
  ogImage: z.ZodOptional<z.ZodString>;
34
18
  colors: z.ZodOptional<z.ZodObject<{
@@ -36,483 +20,96 @@ declare const ShipSiteConfigSchema: z.ZodObject<{
36
20
  accent: z.ZodOptional<z.ZodString>;
37
21
  background: z.ZodOptional<z.ZodString>;
38
22
  text: z.ZodOptional<z.ZodString>;
39
- }, "strip", z.ZodTypeAny, {
40
- primary: string;
41
- accent?: string | undefined;
42
- background?: string | undefined;
43
- text?: string | undefined;
44
- }, {
45
- primary: string;
46
- accent?: string | undefined;
47
- background?: string | undefined;
48
- text?: string | undefined;
49
- }>>;
23
+ }, z.core.$strip>>;
50
24
  fonts: z.ZodOptional<z.ZodObject<{
51
25
  heading: z.ZodOptional<z.ZodString>;
52
26
  body: z.ZodOptional<z.ZodString>;
53
- }, "strip", z.ZodTypeAny, {
54
- body?: string | undefined;
55
- heading?: string | undefined;
56
- }, {
57
- body?: string | undefined;
58
- heading?: string | undefined;
59
- }>>;
27
+ }, z.core.$strip>>;
60
28
  i18n: z.ZodOptional<z.ZodObject<{
61
29
  defaultLocale: z.ZodDefault<z.ZodString>;
62
- locales: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
63
- localePrefix: z.ZodDefault<z.ZodEnum<["as-needed", "always", "never"]>>;
64
- }, "strip", z.ZodTypeAny, {
65
- locales: string[];
66
- defaultLocale: string;
67
- localePrefix: "never" | "as-needed" | "always";
68
- }, {
69
- locales?: string[] | undefined;
70
- defaultLocale?: string | undefined;
71
- localePrefix?: "never" | "as-needed" | "always" | undefined;
72
- }>>;
30
+ locales: z.ZodDefault<z.ZodArray<z.ZodString>>;
31
+ localePrefix: z.ZodDefault<z.ZodEnum<{
32
+ never: "never";
33
+ "as-needed": "as-needed";
34
+ always: "always";
35
+ }>>;
36
+ }, z.core.$strip>>;
73
37
  navigation: z.ZodOptional<z.ZodObject<{
74
38
  items: z.ZodArray<z.ZodObject<{
75
- label: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
39
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
76
40
  href: z.ZodString;
77
- }, "strip", z.ZodTypeAny, {
78
- label: string | Record<string, string>;
79
- href: string;
80
- }, {
81
- label: string | Record<string, string>;
82
- href: string;
83
- }>, "many">;
41
+ }, z.core.$strip>>;
84
42
  cta: z.ZodOptional<z.ZodObject<{
85
- label: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
43
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
86
44
  href: z.ZodString;
87
- }, "strip", z.ZodTypeAny, {
88
- label: string | Record<string, string>;
89
- href: string;
90
- }, {
91
- label: string | Record<string, string>;
92
- href: string;
93
- }>>;
94
- }, "strip", z.ZodTypeAny, {
95
- items: {
96
- label: string | Record<string, string>;
97
- href: string;
98
- }[];
99
- cta?: {
100
- label: string | Record<string, string>;
101
- href: string;
102
- } | undefined;
103
- }, {
104
- items: {
105
- label: string | Record<string, string>;
106
- href: string;
107
- }[];
108
- cta?: {
109
- label: string | Record<string, string>;
110
- href: string;
111
- } | undefined;
112
- }>>;
45
+ }, z.core.$strip>>;
46
+ }, z.core.$strip>>;
113
47
  footer: z.ZodOptional<z.ZodObject<{
114
48
  columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
115
- title: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
49
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
116
50
  links: z.ZodArray<z.ZodObject<{
117
- label: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
51
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
118
52
  href: z.ZodString;
119
- }, "strip", z.ZodTypeAny, {
120
- label: string | Record<string, string>;
121
- href: string;
122
- }, {
123
- label: string | Record<string, string>;
124
- href: string;
125
- }>, "many">;
126
- }, "strip", z.ZodTypeAny, {
127
- title: string | Record<string, string>;
128
- links: {
129
- label: string | Record<string, string>;
130
- href: string;
131
- }[];
132
- }, {
133
- title: string | Record<string, string>;
134
- links: {
135
- label: string | Record<string, string>;
136
- href: string;
137
- }[];
138
- }>, "many">>;
53
+ }, z.core.$strip>>;
54
+ }, z.core.$strip>>>;
139
55
  social: z.ZodOptional<z.ZodArray<z.ZodObject<{
140
56
  platform: z.ZodString;
141
57
  href: z.ZodString;
142
- }, "strip", z.ZodTypeAny, {
143
- href: string;
144
- platform: string;
145
- }, {
146
- href: string;
147
- platform: string;
148
- }>, "many">>;
149
- copyright: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
150
- }, "strip", z.ZodTypeAny, {
151
- columns?: {
152
- title: string | Record<string, string>;
153
- links: {
154
- label: string | Record<string, string>;
155
- href: string;
156
- }[];
157
- }[] | undefined;
158
- social?: {
159
- href: string;
160
- platform: string;
161
- }[] | undefined;
162
- copyright?: string | Record<string, string> | undefined;
163
- }, {
164
- columns?: {
165
- title: string | Record<string, string>;
166
- links: {
167
- label: string | Record<string, string>;
168
- href: string;
169
- }[];
170
- }[] | undefined;
171
- social?: {
172
- href: string;
173
- platform: string;
174
- }[] | undefined;
175
- copyright?: string | Record<string, string> | undefined;
176
- }>>;
58
+ }, z.core.$strip>>>;
59
+ copyright: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
60
+ }, z.core.$strip>>;
177
61
  pages: z.ZodArray<z.ZodObject<{
178
62
  slug: z.ZodString;
179
63
  type: z.ZodString;
180
64
  content: z.ZodString;
181
- locales: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
182
- }, "strip", z.ZodTypeAny, {
183
- type: string;
184
- slug: string;
185
- content: string;
186
- locales?: string[] | undefined;
187
- }, {
188
- type: string;
189
- slug: string;
190
- content: string;
191
- locales?: string[] | undefined;
192
- }>, "many">;
65
+ locales: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ }, z.core.$strip>>;
193
67
  blog: z.ZodOptional<z.ZodObject<{
194
68
  authors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
195
69
  name: z.ZodString;
196
- role: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
70
+ role: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
197
71
  image: z.ZodOptional<z.ZodString>;
198
- bio: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
199
- }, "strip", z.ZodTypeAny, {
200
- name: string;
201
- role?: string | Record<string, string> | undefined;
202
- image?: string | undefined;
203
- bio?: string | Record<string, string> | undefined;
204
- }, {
205
- name: string;
206
- role?: string | Record<string, string> | undefined;
207
- image?: string | undefined;
208
- bio?: string | Record<string, string> | undefined;
209
- }>>>;
72
+ bio: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
73
+ }, z.core.$strip>>>;
210
74
  categories: z.ZodOptional<z.ZodArray<z.ZodObject<{
211
75
  key: z.ZodString;
212
76
  label: z.ZodRecord<z.ZodString, z.ZodString>;
213
- }, "strip", z.ZodTypeAny, {
214
- label: Record<string, string>;
215
- key: string;
216
- }, {
217
- label: Record<string, string>;
218
- key: string;
219
- }>, "many">>;
77
+ }, z.core.$strip>>>;
220
78
  categoryMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
221
- }, "strip", z.ZodTypeAny, {
222
- authors?: Record<string, {
223
- name: string;
224
- role?: string | Record<string, string> | undefined;
225
- image?: string | undefined;
226
- bio?: string | Record<string, string> | undefined;
227
- }> | undefined;
228
- categories?: {
229
- label: Record<string, string>;
230
- key: string;
231
- }[] | undefined;
232
- categoryMap?: Record<string, string> | undefined;
233
- }, {
234
- authors?: Record<string, {
235
- name: string;
236
- role?: string | Record<string, string> | undefined;
237
- image?: string | undefined;
238
- bio?: string | Record<string, string> | undefined;
239
- }> | undefined;
240
- categories?: {
241
- label: Record<string, string>;
242
- key: string;
243
- }[] | undefined;
244
- categoryMap?: Record<string, string> | undefined;
245
- }>>;
79
+ }, z.core.$strip>>;
246
80
  redirects: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
247
81
  source: z.ZodString;
248
82
  destination: z.ZodString;
249
83
  permanent: z.ZodDefault<z.ZodBoolean>;
250
- }, "strip", z.ZodTypeAny, {
251
- source: string;
252
- destination: string;
253
- permanent: boolean;
254
- }, {
255
- source: string;
256
- destination: string;
257
- permanent?: boolean | undefined;
258
- }>, "many">>>;
84
+ }, z.core.$strip>>>>;
259
85
  analytics: z.ZodOptional<z.ZodObject<{
260
86
  vercel: z.ZodOptional<z.ZodBoolean>;
261
87
  cloudflare: z.ZodOptional<z.ZodString>;
262
88
  googleTagManager: z.ZodOptional<z.ZodString>;
263
89
  googleAnalytics: z.ZodOptional<z.ZodString>;
264
- plausible: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
90
+ plausible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
265
91
  posthog: z.ZodOptional<z.ZodObject<{
266
92
  apiKey: z.ZodString;
267
93
  apiHost: z.ZodOptional<z.ZodString>;
268
- }, "strip", z.ZodTypeAny, {
269
- apiKey: string;
270
- apiHost?: string | undefined;
271
- }, {
272
- apiKey: string;
273
- apiHost?: string | undefined;
274
- }>>;
275
- }, "strip", z.ZodTypeAny, {
276
- vercel?: boolean | undefined;
277
- cloudflare?: string | undefined;
278
- googleTagManager?: string | undefined;
279
- googleAnalytics?: string | undefined;
280
- plausible?: string | boolean | undefined;
281
- posthog?: {
282
- apiKey: string;
283
- apiHost?: string | undefined;
284
- } | undefined;
285
- }, {
286
- vercel?: boolean | undefined;
287
- cloudflare?: string | undefined;
288
- googleTagManager?: string | undefined;
289
- googleAnalytics?: string | undefined;
290
- plausible?: string | boolean | undefined;
291
- posthog?: {
292
- apiKey: string;
293
- apiHost?: string | undefined;
294
- } | undefined;
295
- }>>;
296
- scripts: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
94
+ }, z.core.$strip>>;
95
+ }, z.core.$strip>>;
96
+ scripts: z.ZodOptional<z.ZodArray<z.ZodObject<{
297
97
  src: z.ZodOptional<z.ZodString>;
298
98
  content: z.ZodOptional<z.ZodString>;
299
- strategy: z.ZodDefault<z.ZodEnum<["afterInteractive", "beforeInteractive", "lazyOnload"]>>;
300
- location: z.ZodDefault<z.ZodEnum<["head", "body"]>>;
301
- }, "strip", z.ZodTypeAny, {
302
- strategy: "afterInteractive" | "beforeInteractive" | "lazyOnload";
303
- location: "head" | "body";
304
- content?: string | undefined;
305
- src?: string | undefined;
306
- }, {
307
- content?: string | undefined;
308
- src?: string | undefined;
309
- strategy?: "afterInteractive" | "beforeInteractive" | "lazyOnload" | undefined;
310
- location?: "head" | "body" | undefined;
311
- }>, {
312
- strategy: "afterInteractive" | "beforeInteractive" | "lazyOnload";
313
- location: "head" | "body";
314
- content?: string | undefined;
315
- src?: string | undefined;
316
- }, {
317
- content?: string | undefined;
318
- src?: string | undefined;
319
- strategy?: "afterInteractive" | "beforeInteractive" | "lazyOnload" | undefined;
320
- location?: "head" | "body" | undefined;
321
- }>, "many">>;
99
+ strategy: z.ZodDefault<z.ZodEnum<{
100
+ afterInteractive: "afterInteractive";
101
+ beforeInteractive: "beforeInteractive";
102
+ lazyOnload: "lazyOnload";
103
+ }>>;
104
+ location: z.ZodDefault<z.ZodEnum<{
105
+ head: "head";
106
+ body: "body";
107
+ }>>;
108
+ }, z.core.$strip>>>;
322
109
  seo: z.ZodOptional<z.ZodObject<{
323
110
  llmsTxt: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
324
- }, "strip", z.ZodTypeAny, {
325
- llmsTxt: boolean;
326
- }, {
327
- llmsTxt?: boolean | undefined;
328
- }>>;
329
- }, "strip", z.ZodTypeAny, {
330
- name: string;
331
- url: string;
332
- pages: {
333
- type: string;
334
- slug: string;
335
- content: string;
336
- locales?: string[] | undefined;
337
- }[];
338
- redirects: {
339
- source: string;
340
- destination: string;
341
- permanent: boolean;
342
- }[];
343
- $schema?: string | undefined;
344
- logo?: string | {
345
- light: string;
346
- dark: string;
347
- } | undefined;
348
- favicon?: string | undefined;
349
- ogImage?: string | undefined;
350
- colors?: {
351
- primary: string;
352
- accent?: string | undefined;
353
- background?: string | undefined;
354
- text?: string | undefined;
355
- } | undefined;
356
- fonts?: {
357
- body?: string | undefined;
358
- heading?: string | undefined;
359
- } | undefined;
360
- i18n?: {
361
- locales: string[];
362
- defaultLocale: string;
363
- localePrefix: "never" | "as-needed" | "always";
364
- } | undefined;
365
- navigation?: {
366
- items: {
367
- label: string | Record<string, string>;
368
- href: string;
369
- }[];
370
- cta?: {
371
- label: string | Record<string, string>;
372
- href: string;
373
- } | undefined;
374
- } | undefined;
375
- footer?: {
376
- columns?: {
377
- title: string | Record<string, string>;
378
- links: {
379
- label: string | Record<string, string>;
380
- href: string;
381
- }[];
382
- }[] | undefined;
383
- social?: {
384
- href: string;
385
- platform: string;
386
- }[] | undefined;
387
- copyright?: string | Record<string, string> | undefined;
388
- } | undefined;
389
- blog?: {
390
- authors?: Record<string, {
391
- name: string;
392
- role?: string | Record<string, string> | undefined;
393
- image?: string | undefined;
394
- bio?: string | Record<string, string> | undefined;
395
- }> | undefined;
396
- categories?: {
397
- label: Record<string, string>;
398
- key: string;
399
- }[] | undefined;
400
- categoryMap?: Record<string, string> | undefined;
401
- } | undefined;
402
- analytics?: {
403
- vercel?: boolean | undefined;
404
- cloudflare?: string | undefined;
405
- googleTagManager?: string | undefined;
406
- googleAnalytics?: string | undefined;
407
- plausible?: string | boolean | undefined;
408
- posthog?: {
409
- apiKey: string;
410
- apiHost?: string | undefined;
411
- } | undefined;
412
- } | undefined;
413
- scripts?: {
414
- strategy: "afterInteractive" | "beforeInteractive" | "lazyOnload";
415
- location: "head" | "body";
416
- content?: string | undefined;
417
- src?: string | undefined;
418
- }[] | undefined;
419
- seo?: {
420
- llmsTxt: boolean;
421
- } | undefined;
422
- }, {
423
- name: string;
424
- url: string;
425
- pages: {
426
- type: string;
427
- slug: string;
428
- content: string;
429
- locales?: string[] | undefined;
430
- }[];
431
- $schema?: string | undefined;
432
- logo?: string | {
433
- light: string;
434
- dark: string;
435
- } | undefined;
436
- favicon?: string | undefined;
437
- ogImage?: string | undefined;
438
- colors?: {
439
- primary: string;
440
- accent?: string | undefined;
441
- background?: string | undefined;
442
- text?: string | undefined;
443
- } | undefined;
444
- fonts?: {
445
- body?: string | undefined;
446
- heading?: string | undefined;
447
- } | undefined;
448
- i18n?: {
449
- locales?: string[] | undefined;
450
- defaultLocale?: string | undefined;
451
- localePrefix?: "never" | "as-needed" | "always" | undefined;
452
- } | undefined;
453
- navigation?: {
454
- items: {
455
- label: string | Record<string, string>;
456
- href: string;
457
- }[];
458
- cta?: {
459
- label: string | Record<string, string>;
460
- href: string;
461
- } | undefined;
462
- } | undefined;
463
- footer?: {
464
- columns?: {
465
- title: string | Record<string, string>;
466
- links: {
467
- label: string | Record<string, string>;
468
- href: string;
469
- }[];
470
- }[] | undefined;
471
- social?: {
472
- href: string;
473
- platform: string;
474
- }[] | undefined;
475
- copyright?: string | Record<string, string> | undefined;
476
- } | undefined;
477
- blog?: {
478
- authors?: Record<string, {
479
- name: string;
480
- role?: string | Record<string, string> | undefined;
481
- image?: string | undefined;
482
- bio?: string | Record<string, string> | undefined;
483
- }> | undefined;
484
- categories?: {
485
- label: Record<string, string>;
486
- key: string;
487
- }[] | undefined;
488
- categoryMap?: Record<string, string> | undefined;
489
- } | undefined;
490
- redirects?: {
491
- source: string;
492
- destination: string;
493
- permanent?: boolean | undefined;
494
- }[] | undefined;
495
- analytics?: {
496
- vercel?: boolean | undefined;
497
- cloudflare?: string | undefined;
498
- googleTagManager?: string | undefined;
499
- googleAnalytics?: string | undefined;
500
- plausible?: string | boolean | undefined;
501
- posthog?: {
502
- apiKey: string;
503
- apiHost?: string | undefined;
504
- } | undefined;
505
- } | undefined;
506
- scripts?: {
507
- content?: string | undefined;
508
- src?: string | undefined;
509
- strategy?: "afterInteractive" | "beforeInteractive" | "lazyOnload" | undefined;
510
- location?: "head" | "body" | undefined;
511
- }[] | undefined;
512
- seo?: {
513
- llmsTxt?: boolean | undefined;
514
- } | undefined;
515
- }>;
111
+ }, z.core.$strip>>;
112
+ }, z.core.$strip>;
516
113
  export type ShipSiteConfig = z.infer<typeof ShipSiteConfigSchema>;
517
114
  export type PageConfig = z.infer<typeof PageConfigSchema>;
518
115
  export declare function loadConfig(rootDir?: string): ShipSiteConfig;
@@ -521,5 +118,4 @@ export declare function getSiteUrl(): string;
521
118
  export declare function getLocales(): string[];
522
119
  export declare function getDefaultLocale(): string;
523
120
  export declare function getLocalePrefix(): string;
524
- export {};
525
121
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;EAKpB,CAAC;AA2CH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DxB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAK1D,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAS3D;AAED,wBAAgB,SAAS,IAAI,cAAc,CAK1C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AA2CH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0D/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAK1D,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAS3D;AAED,wBAAgB,SAAS,IAAI,cAAc,CAK1C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
package/dist/config.js CHANGED
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import { readFileSync } from 'fs';
3
3
  import { join } from 'path';
4
4
  // ─── Schema ────────────────────────────────────────────────────
5
- const LocalizedString = z.union([z.string(), z.record(z.string())]);
5
+ const LocalizedString = z.union([z.string(), z.record(z.string(), z.string())]);
6
6
  const NavigationItemSchema = z.object({
7
7
  label: LocalizedString,
8
8
  href: z.string(),
@@ -24,7 +24,7 @@ const FooterSchema = z.object({
24
24
  social: z.array(SocialLinkSchema).optional(),
25
25
  copyright: LocalizedString.optional(),
26
26
  });
27
- const PageConfigSchema = z.object({
27
+ export const PageConfigSchema = z.object({
28
28
  slug: z.string(),
29
29
  type: z.string(),
30
30
  content: z.string(),
@@ -32,20 +32,20 @@ const PageConfigSchema = z.object({
32
32
  });
33
33
  const AuthorSchema = z.object({
34
34
  name: z.string(),
35
- role: z.union([z.string(), z.record(z.string())]).optional(),
35
+ role: z.union([z.string(), z.record(z.string(), z.string())]).optional(),
36
36
  image: z.string().optional(),
37
- bio: z.union([z.string(), z.record(z.string())]).optional(),
37
+ bio: z.union([z.string(), z.record(z.string(), z.string())]).optional(),
38
38
  });
39
39
  const BlogConfigSchema = z
40
40
  .object({
41
- authors: z.record(AuthorSchema).optional(),
41
+ authors: z.record(z.string(), AuthorSchema).optional(),
42
42
  categories: z
43
43
  .array(z.object({
44
44
  key: z.string(),
45
- label: z.record(z.string()),
45
+ label: z.record(z.string(), z.string()),
46
46
  }))
47
47
  .optional(),
48
- categoryMap: z.record(z.string()).optional(),
48
+ categoryMap: z.record(z.string(), z.string()).optional(),
49
49
  })
50
50
  .optional();
51
51
  const CustomScriptSchema = z
@@ -65,7 +65,7 @@ const RedirectSchema = z.object({
65
65
  destination: z.string(),
66
66
  permanent: z.boolean().default(true),
67
67
  });
68
- const ShipSiteConfigSchema = z.object({
68
+ export const ShipSiteConfigSchema = z.object({
69
69
  $schema: z.string().optional(),
70
70
  name: z.string(),
71
71
  url: z.string().url(),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -22,35 +22,7 @@ export declare const sitePages: import("@content-collections/core").Collection<"
22
22
  excerpt: z.ZodOptional<z.ZodString>;
23
23
  hidden: z.ZodOptional<z.ZodBoolean>;
24
24
  noindex: z.ZodOptional<z.ZodBoolean>;
25
- }, "strip", z.ZodTypeAny, {
26
- title: string;
27
- content: string;
28
- description: string;
29
- date?: string | undefined;
30
- slug?: string | undefined;
31
- image?: string | undefined;
32
- category?: string | undefined;
33
- readingTime?: number | undefined;
34
- featured?: boolean | undefined;
35
- author?: string | undefined;
36
- excerpt?: string | undefined;
37
- hidden?: boolean | undefined;
38
- noindex?: boolean | undefined;
39
- }, {
40
- title: string;
41
- content: string;
42
- description: string;
43
- date?: string | undefined;
44
- slug?: string | undefined;
45
- image?: string | undefined;
46
- category?: string | undefined;
47
- readingTime?: number | undefined;
48
- featured?: boolean | undefined;
49
- author?: string | undefined;
50
- excerpt?: string | undefined;
51
- hidden?: boolean | undefined;
52
- noindex?: boolean | undefined;
53
- }>, "frontmatter", import("@content-collections/core").Schema<"frontmatter", z.ZodObject<{
25
+ }, z.core.$strip>, "frontmatter", import("@content-collections/core").Schema<"frontmatter", z.ZodObject<{
54
26
  content: z.ZodString;
55
27
  title: z.ZodString;
56
28
  description: z.ZodString;
@@ -64,35 +36,7 @@ export declare const sitePages: import("@content-collections/core").Collection<"
64
36
  excerpt: z.ZodOptional<z.ZodString>;
65
37
  hidden: z.ZodOptional<z.ZodBoolean>;
66
38
  noindex: z.ZodOptional<z.ZodBoolean>;
67
- }, "strip", z.ZodTypeAny, {
68
- title: string;
69
- content: string;
70
- description: string;
71
- date?: string | undefined;
72
- slug?: string | undefined;
73
- image?: string | undefined;
74
- category?: string | undefined;
75
- readingTime?: number | undefined;
76
- featured?: boolean | undefined;
77
- author?: string | undefined;
78
- excerpt?: string | undefined;
79
- hidden?: boolean | undefined;
80
- noindex?: boolean | undefined;
81
- }, {
82
- title: string;
83
- content: string;
84
- description: string;
85
- date?: string | undefined;
86
- slug?: string | undefined;
87
- image?: string | undefined;
88
- category?: string | undefined;
89
- readingTime?: number | undefined;
90
- featured?: boolean | undefined;
91
- author?: string | undefined;
92
- excerpt?: string | undefined;
93
- hidden?: boolean | undefined;
94
- noindex?: boolean | undefined;
95
- }>>, {
39
+ }, z.core.$strip>>, {
96
40
  locale: string;
97
41
  contentFolder: string;
98
42
  contentId: string;
@@ -101,16 +45,16 @@ export declare const sitePages: import("@content-collections/core").Collection<"
101
45
  body: {
102
46
  raw: string;
103
47
  };
104
- title: string;
105
48
  content: string;
49
+ title: string;
106
50
  description: string;
51
+ category?: string | undefined;
107
52
  date?: string | undefined;
108
- slug?: string | undefined;
109
53
  image?: string | undefined;
110
- category?: string | undefined;
111
54
  readingTime?: number | undefined;
112
55
  featured?: boolean | undefined;
113
56
  author?: string | undefined;
57
+ slug?: string | undefined;
114
58
  hidden?: boolean | undefined;
115
59
  noindex?: boolean | undefined;
116
60
  _meta: import("@content-collections/core").Meta;
@@ -123,16 +67,16 @@ export declare const sitePages: import("@content-collections/core").Collection<"
123
67
  body: {
124
68
  raw: string;
125
69
  };
126
- title: string;
127
70
  content: string;
71
+ title: string;
128
72
  description: string;
73
+ category?: string | undefined;
129
74
  date?: string | undefined;
130
- slug?: string | undefined;
131
75
  image?: string | undefined;
132
- category?: string | undefined;
133
76
  readingTime?: number | undefined;
134
77
  featured?: boolean | undefined;
135
78
  author?: string | undefined;
79
+ slug?: string | undefined;
136
80
  hidden?: boolean | undefined;
137
81
  noindex?: boolean | undefined;
138
82
  _meta: {
@@ -157,35 +101,7 @@ export declare function createContentCollectionsConfig(): import("@content-colle
157
101
  excerpt: z.ZodOptional<z.ZodString>;
158
102
  hidden: z.ZodOptional<z.ZodBoolean>;
159
103
  noindex: z.ZodOptional<z.ZodBoolean>;
160
- }, "strip", z.ZodTypeAny, {
161
- title: string;
162
- content: string;
163
- description: string;
164
- date?: string | undefined;
165
- slug?: string | undefined;
166
- image?: string | undefined;
167
- category?: string | undefined;
168
- readingTime?: number | undefined;
169
- featured?: boolean | undefined;
170
- author?: string | undefined;
171
- excerpt?: string | undefined;
172
- hidden?: boolean | undefined;
173
- noindex?: boolean | undefined;
174
- }, {
175
- title: string;
176
- content: string;
177
- description: string;
178
- date?: string | undefined;
179
- slug?: string | undefined;
180
- image?: string | undefined;
181
- category?: string | undefined;
182
- readingTime?: number | undefined;
183
- featured?: boolean | undefined;
184
- author?: string | undefined;
185
- excerpt?: string | undefined;
186
- hidden?: boolean | undefined;
187
- noindex?: boolean | undefined;
188
- }>, "frontmatter", import("@content-collections/core").Schema<"frontmatter", z.ZodObject<{
104
+ }, z.core.$strip>, "frontmatter", import("@content-collections/core").Schema<"frontmatter", z.ZodObject<{
189
105
  content: z.ZodString;
190
106
  title: z.ZodString;
191
107
  description: z.ZodString;
@@ -199,35 +115,7 @@ export declare function createContentCollectionsConfig(): import("@content-colle
199
115
  excerpt: z.ZodOptional<z.ZodString>;
200
116
  hidden: z.ZodOptional<z.ZodBoolean>;
201
117
  noindex: z.ZodOptional<z.ZodBoolean>;
202
- }, "strip", z.ZodTypeAny, {
203
- title: string;
204
- content: string;
205
- description: string;
206
- date?: string | undefined;
207
- slug?: string | undefined;
208
- image?: string | undefined;
209
- category?: string | undefined;
210
- readingTime?: number | undefined;
211
- featured?: boolean | undefined;
212
- author?: string | undefined;
213
- excerpt?: string | undefined;
214
- hidden?: boolean | undefined;
215
- noindex?: boolean | undefined;
216
- }, {
217
- title: string;
218
- content: string;
219
- description: string;
220
- date?: string | undefined;
221
- slug?: string | undefined;
222
- image?: string | undefined;
223
- category?: string | undefined;
224
- readingTime?: number | undefined;
225
- featured?: boolean | undefined;
226
- author?: string | undefined;
227
- excerpt?: string | undefined;
228
- hidden?: boolean | undefined;
229
- noindex?: boolean | undefined;
230
- }>>, {
118
+ }, z.core.$strip>>, {
231
119
  locale: string;
232
120
  contentFolder: string;
233
121
  contentId: string;
@@ -236,16 +124,16 @@ export declare function createContentCollectionsConfig(): import("@content-colle
236
124
  body: {
237
125
  raw: string;
238
126
  };
239
- title: string;
240
127
  content: string;
128
+ title: string;
241
129
  description: string;
130
+ category?: string | undefined;
242
131
  date?: string | undefined;
243
- slug?: string | undefined;
244
132
  image?: string | undefined;
245
- category?: string | undefined;
246
133
  readingTime?: number | undefined;
247
134
  featured?: boolean | undefined;
248
135
  author?: string | undefined;
136
+ slug?: string | undefined;
249
137
  hidden?: boolean | undefined;
250
138
  noindex?: boolean | undefined;
251
139
  _meta: import("@content-collections/core").Meta;
@@ -258,16 +146,16 @@ export declare function createContentCollectionsConfig(): import("@content-colle
258
146
  body: {
259
147
  raw: string;
260
148
  };
261
- title: string;
262
149
  content: string;
150
+ title: string;
263
151
  description: string;
152
+ category?: string | undefined;
264
153
  date?: string | undefined;
265
- slug?: string | undefined;
266
154
  image?: string | undefined;
267
- category?: string | undefined;
268
155
  readingTime?: number | undefined;
269
156
  featured?: boolean | undefined;
270
157
  author?: string | undefined;
158
+ slug?: string | undefined;
271
159
  hidden?: boolean | undefined;
272
160
  noindex?: boolean | undefined;
273
161
  _meta: {
@@ -1 +1 @@
1
- {"version":3,"file":"content-collections.d.ts","sourceRoot":"","sources":["../src/content-collections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEnG;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCpB,CAAC;AAEH,wBAAgB,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAI7C"}
1
+ {"version":3,"file":"content-collections.d.ts","sourceRoot":"","sources":["../src/content-collections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEnG;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCpB,CAAC;AAEH,wBAAgB,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAI7C"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Page templates for creating new content pages.
3
+ * Used by the CLI scaffolder and the Cloud editor.
4
+ */
5
+ export interface PageTemplate {
6
+ id: string;
7
+ name: string;
8
+ description: string;
9
+ pageType: string;
10
+ frontmatter: Record<string, string>;
11
+ body: string;
12
+ }
13
+ export declare function getTemplates(slug?: string): PageTemplate[];
14
+ /**
15
+ * Generate a full MDX file from a template.
16
+ */
17
+ export declare function renderTemplate(template: PageTemplate): string;
18
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAYD,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CA0L1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAU7D"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Page templates for creating new content pages.
3
+ * Used by the CLI scaffolder and the Cloud editor.
4
+ */
5
+ function toTitle(slug) {
6
+ return slug
7
+ .replace(/-/g, " ")
8
+ .replace(/\b\w/g, (c) => c.toUpperCase());
9
+ }
10
+ function today() {
11
+ return new Date().toISOString().split("T")[0];
12
+ }
13
+ export function getTemplates(slug) {
14
+ const title = slug ? toTitle(slug) : "Your Page Title";
15
+ return [
16
+ {
17
+ id: "landing",
18
+ name: "Landing Page",
19
+ description: "Hero, features, testimonials, and CTA",
20
+ pageType: "landing",
21
+ frontmatter: {
22
+ title: `${title} — Site Name`,
23
+ description: "A compelling description of your product or service.",
24
+ },
25
+ body: `<Hero
26
+ title="${title}"
27
+ description="A compelling subtitle that explains your value proposition."
28
+ primaryCta={{ label: "Get Started", href: "#" }}
29
+ secondaryCta={{ label: "Learn More", href: "#features" }}
30
+ />
31
+
32
+ <Features id="features" title="Why Choose Us">
33
+ <Feature title="Fast" description="Built for speed from the ground up." />
34
+ <Feature title="Simple" description="No complex configuration required." />
35
+ <Feature title="Reliable" description="99.9% uptime guaranteed." />
36
+ </Features>
37
+
38
+ <Testimonials title="What People Say">
39
+ <TestimonialCard name="Jane Doe" role="CEO, Acme" rating={5}>
40
+ This product transformed our workflow completely.
41
+ </TestimonialCard>
42
+ <TestimonialCard name="John Smith" role="CTO, Startup" rating={5}>
43
+ The best tool we have adopted this year.
44
+ </TestimonialCard>
45
+ </Testimonials>
46
+
47
+ <BannerCTA
48
+ title="Ready to get started?"
49
+ buttonText="Start Free Trial"
50
+ buttonHref="#"
51
+ />`,
52
+ },
53
+ {
54
+ id: "pricing",
55
+ name: "Pricing Page",
56
+ description: "Pricing tiers with feature comparison",
57
+ pageType: "page",
58
+ frontmatter: {
59
+ title: "Pricing — Site Name",
60
+ description: "Simple, transparent pricing. No hidden fees.",
61
+ },
62
+ body: `<PricingSection title="Simple, Transparent Pricing" description="Choose the plan that works for you.">
63
+ <PricingPlan
64
+ name="Free"
65
+ price="$0"
66
+ period="/month"
67
+ description="For individuals getting started."
68
+ features={["1 project", "Basic analytics", "Community support"]}
69
+ buttonText="Get Started"
70
+ buttonHref="#"
71
+ />
72
+ <PricingPlan
73
+ name="Pro"
74
+ price="$19"
75
+ period="/month"
76
+ description="For growing teams."
77
+ features={["5 projects", "Advanced analytics", "Priority support", "Custom domains"]}
78
+ buttonText="Start Free Trial"
79
+ buttonHref="#"
80
+ highlighted={true}
81
+ />
82
+ <PricingPlan
83
+ name="Enterprise"
84
+ price="Custom"
85
+ description="For large organizations."
86
+ features={["Unlimited projects", "Dedicated support", "SLA", "SSO"]}
87
+ buttonText="Contact Sales"
88
+ buttonHref="#"
89
+ />
90
+ </PricingSection>
91
+
92
+ <FAQ title="Frequently Asked Questions">
93
+ <FAQItem question="Can I change plans later?">
94
+ Yes, you can upgrade or downgrade at any time.
95
+ </FAQItem>
96
+ <FAQItem question="Is there a free trial?">
97
+ Yes, all paid plans come with a 14-day free trial.
98
+ </FAQItem>
99
+ </FAQ>`,
100
+ },
101
+ {
102
+ id: "blog-article",
103
+ name: "Blog Article",
104
+ description: "Blog post with author, date, and reading time",
105
+ pageType: "blog-article",
106
+ frontmatter: {
107
+ title: title,
108
+ description: "A brief summary of this article.",
109
+ date: today(),
110
+ author: "default",
111
+ readingTime: "5",
112
+ },
113
+ body: `<BlogArticle>
114
+
115
+ ## Introduction
116
+
117
+ Start your article with a compelling introduction that hooks the reader.
118
+
119
+ ## Main Section
120
+
121
+ Develop your main argument or story here. Use subheadings to break up long content.
122
+
123
+ ### Key Point
124
+
125
+ Expand on important details with examples and evidence.
126
+
127
+ ## Conclusion
128
+
129
+ Wrap up your article with a summary and call to action.
130
+
131
+ </BlogArticle>`,
132
+ },
133
+ {
134
+ id: "about",
135
+ name: "About Page",
136
+ description: "Company info with mission and team",
137
+ pageType: "page",
138
+ frontmatter: {
139
+ title: "About Us — Site Name",
140
+ description: "Learn about our mission, values, and the team behind the product.",
141
+ },
142
+ body: `<PageHero
143
+ title="About Us"
144
+ description="We are on a mission to make the web better."
145
+ />
146
+
147
+ ## Our Mission
148
+
149
+ Describe your company mission and what drives your team.
150
+
151
+ ## Our Values
152
+
153
+ <Features>
154
+ <Feature title="Transparency" description="We believe in open communication." />
155
+ <Feature title="Quality" description="We ship products we are proud of." />
156
+ <Feature title="Community" description="We build for and with our users." />
157
+ </Features>
158
+
159
+ <BannerCTA
160
+ title="Want to join our team?"
161
+ buttonText="View Open Positions"
162
+ buttonHref="#"
163
+ />`,
164
+ },
165
+ {
166
+ id: "legal",
167
+ name: "Legal Page",
168
+ description: "Privacy policy, terms of service",
169
+ pageType: "legal",
170
+ frontmatter: {
171
+ title: title,
172
+ description: `${title} for our service.`,
173
+ },
174
+ body: `<ContentPage title="${title}" lastUpdated="${today()}">
175
+ <ContentSection title="1. Introduction">
176
+ This document outlines the terms and conditions for using our service.
177
+ </ContentSection>
178
+ <ContentSection title="2. Data Collection">
179
+ Describe what data you collect and how it is used.
180
+ </ContentSection>
181
+ <ContentSection title="3. Contact">
182
+ If you have questions, contact us at support@example.com.
183
+ </ContentSection>
184
+ </ContentPage>`,
185
+ },
186
+ {
187
+ id: "blank",
188
+ name: "Blank Page",
189
+ description: "Empty page with just frontmatter",
190
+ pageType: "page",
191
+ frontmatter: {
192
+ title: title,
193
+ description: "",
194
+ },
195
+ body: "",
196
+ },
197
+ ];
198
+ }
199
+ /**
200
+ * Generate a full MDX file from a template.
201
+ */
202
+ export function renderTemplate(template) {
203
+ const frontmatterLines = Object.entries(template.frontmatter)
204
+ .map(([key, value]) => `${key}: "${value}"`)
205
+ .join("\n");
206
+ const parts = [`---\n${frontmatterLines}\n---`];
207
+ if (template.body) {
208
+ parts.push(template.body);
209
+ }
210
+ return parts.join("\n\n") + "\n";
211
+ }
212
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipsite.dev/core",
3
- "version": "0.2.37",
3
+ "version": "0.2.40",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/shipsite/shipsite",
@@ -50,6 +50,10 @@
50
50
  "./llms-txt": {
51
51
  "types": "./dist/llms-txt.d.ts",
52
52
  "default": "./dist/llms-txt.js"
53
+ },
54
+ "./templates": {
55
+ "types": "./dist/templates.d.ts",
56
+ "default": "./dist/templates.js"
53
57
  }
54
58
  },
55
59
  "files": [
@@ -73,7 +77,7 @@
73
77
  "react": "19.2.3",
74
78
  "react-dom": "19.2.3",
75
79
  "remark-gfm": "^4.0.1",
76
- "zod": "^3.24.0"
80
+ "zod": "^4.0.0"
77
81
  },
78
82
  "devDependencies": {
79
83
  "@types/node": "^20",