@artinstack/migrator 0.1.0 → 0.1.2

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.
@@ -1,5 +1,6 @@
1
- import { d as MigrationCursor, b as EntityKey, E as EntityBundle, P as PortfolioMediaLink } from '../bundle-BfZqiKV_.js';
2
- export { A as AdapterContext, B as BundleCounts, c as EntityType, M as MigrationAdapter, a as MigrationPlatform, N as NormalizedAsset, e as NormalizedAssetExif, f as NormalizedCategory, g as NormalizedEntity, h as NormalizedPage, i as NormalizedPortfolio, j as NormalizedPost, k as NormalizedTag, l as PublishStatus, S as SourceMetadata, V as ValidationIssue, m as ValidationResult, n as bundleCounts, o as collectEntities, p as emptyBundle, q as entityKey } from '../bundle-BfZqiKV_.js';
1
+ import { d as MigrationCursor, b as EntityKey, E as EntityBundle, P as PortfolioMediaLink, V as ValidationResult } from '../bundle-DfM_jKbq.js';
2
+ export { A as AdapterContext, B as BundleCounts, c as EntityType, M as MigrationAdapter, a as MigrationPlatform, N as NormalizedAsset, e as NormalizedAssetExif, f as NormalizedCategory, g as NormalizedEntity, h as NormalizedPage, i as NormalizedPortfolio, j as NormalizedPost, k as NormalizedTag, l as PublishStatus, S as SourceMetadata, m as ValidationIssue, n as bundleCounts, o as collectEntities, p as emptyBundle, q as entityKey } from '../bundle-DfM_jKbq.js';
3
+ import { z } from 'zod';
3
4
 
4
5
  /** Portable entity state for resume / idempotency (not Directus field names). */
5
6
  type EntityState = "pending" | "done" | "failed" | "skipped";
@@ -20,4 +21,837 @@ declare function shouldProcessEntity(key: EntityKey, entities: TrackedEntity[]):
20
21
  /** Derive portfolio↔asset M2M rows from assets carrying `portfolioSourceId`. */
21
22
  declare function buildPortfolioMediaLinks(bundle: EntityBundle): PortfolioMediaLink[];
22
23
 
23
- export { EntityBundle, EntityKey, type EntityState, type MigrationCheckpoint, MigrationCursor, PortfolioMediaLink, type TrackedEntity, buildPortfolioMediaLinks, isTerminalState, shouldProcessEntity };
24
+ declare const sourceMetadataSchema: z.ZodObject<{
25
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
26
+ id: z.ZodString;
27
+ url: z.ZodOptional<z.ZodString>;
28
+ path: z.ZodOptional<z.ZodString>;
29
+ exportedAt: z.ZodOptional<z.ZodString>;
30
+ }, "strip", z.ZodTypeAny, {
31
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
32
+ id: string;
33
+ url?: string | undefined;
34
+ path?: string | undefined;
35
+ exportedAt?: string | undefined;
36
+ }, {
37
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
38
+ id: string;
39
+ url?: string | undefined;
40
+ path?: string | undefined;
41
+ exportedAt?: string | undefined;
42
+ }>;
43
+ declare const normalizedPostSchema: z.ZodObject<{
44
+ type: z.ZodLiteral<"post">;
45
+ source: z.ZodObject<{
46
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
47
+ id: z.ZodString;
48
+ url: z.ZodOptional<z.ZodString>;
49
+ path: z.ZodOptional<z.ZodString>;
50
+ exportedAt: z.ZodOptional<z.ZodString>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
53
+ id: string;
54
+ url?: string | undefined;
55
+ path?: string | undefined;
56
+ exportedAt?: string | undefined;
57
+ }, {
58
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
59
+ id: string;
60
+ url?: string | undefined;
61
+ path?: string | undefined;
62
+ exportedAt?: string | undefined;
63
+ }>;
64
+ sourceId: z.ZodString;
65
+ title: z.ZodString;
66
+ slug: z.ZodString;
67
+ excerpt: z.ZodOptional<z.ZodString>;
68
+ contentHtml: z.ZodString;
69
+ publishedAt: z.ZodOptional<z.ZodString>;
70
+ status: z.ZodEnum<["draft", "published", "archived"]>;
71
+ categorySlugs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
72
+ tagSlugs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
73
+ sourceFeaturedMediaId: z.ZodOptional<z.ZodString>;
74
+ featuredAssetSourceId: z.ZodOptional<z.ZodString>;
75
+ seoTitle: z.ZodOptional<z.ZodString>;
76
+ seoDescription: z.ZodOptional<z.ZodString>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ type: "post";
79
+ status: "draft" | "published" | "archived";
80
+ source: {
81
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
82
+ id: string;
83
+ url?: string | undefined;
84
+ path?: string | undefined;
85
+ exportedAt?: string | undefined;
86
+ };
87
+ sourceId: string;
88
+ title: string;
89
+ slug: string;
90
+ contentHtml: string;
91
+ excerpt?: string | undefined;
92
+ publishedAt?: string | undefined;
93
+ categorySlugs?: string[] | undefined;
94
+ tagSlugs?: string[] | undefined;
95
+ sourceFeaturedMediaId?: string | undefined;
96
+ featuredAssetSourceId?: string | undefined;
97
+ seoTitle?: string | undefined;
98
+ seoDescription?: string | undefined;
99
+ }, {
100
+ type: "post";
101
+ status: "draft" | "published" | "archived";
102
+ source: {
103
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
104
+ id: string;
105
+ url?: string | undefined;
106
+ path?: string | undefined;
107
+ exportedAt?: string | undefined;
108
+ };
109
+ sourceId: string;
110
+ title: string;
111
+ slug: string;
112
+ contentHtml: string;
113
+ excerpt?: string | undefined;
114
+ publishedAt?: string | undefined;
115
+ categorySlugs?: string[] | undefined;
116
+ tagSlugs?: string[] | undefined;
117
+ sourceFeaturedMediaId?: string | undefined;
118
+ featuredAssetSourceId?: string | undefined;
119
+ seoTitle?: string | undefined;
120
+ seoDescription?: string | undefined;
121
+ }>;
122
+ declare const normalizedPageSchema: z.ZodObject<{
123
+ type: z.ZodLiteral<"page">;
124
+ source: z.ZodObject<{
125
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
126
+ id: z.ZodString;
127
+ url: z.ZodOptional<z.ZodString>;
128
+ path: z.ZodOptional<z.ZodString>;
129
+ exportedAt: z.ZodOptional<z.ZodString>;
130
+ }, "strip", z.ZodTypeAny, {
131
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
132
+ id: string;
133
+ url?: string | undefined;
134
+ path?: string | undefined;
135
+ exportedAt?: string | undefined;
136
+ }, {
137
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
138
+ id: string;
139
+ url?: string | undefined;
140
+ path?: string | undefined;
141
+ exportedAt?: string | undefined;
142
+ }>;
143
+ sourceId: z.ZodString;
144
+ title: z.ZodString;
145
+ slug: z.ZodString;
146
+ contentHtml: z.ZodString;
147
+ contentCss: z.ZodOptional<z.ZodString>;
148
+ isHomePage: z.ZodOptional<z.ZodBoolean>;
149
+ status: z.ZodEnum<["draft", "published", "archived"]>;
150
+ seoTitle: z.ZodOptional<z.ZodString>;
151
+ seoDescription: z.ZodOptional<z.ZodString>;
152
+ }, "strip", z.ZodTypeAny, {
153
+ type: "page";
154
+ status: "draft" | "published" | "archived";
155
+ source: {
156
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
157
+ id: string;
158
+ url?: string | undefined;
159
+ path?: string | undefined;
160
+ exportedAt?: string | undefined;
161
+ };
162
+ sourceId: string;
163
+ title: string;
164
+ slug: string;
165
+ contentHtml: string;
166
+ seoTitle?: string | undefined;
167
+ seoDescription?: string | undefined;
168
+ contentCss?: string | undefined;
169
+ isHomePage?: boolean | undefined;
170
+ }, {
171
+ type: "page";
172
+ status: "draft" | "published" | "archived";
173
+ source: {
174
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
175
+ id: string;
176
+ url?: string | undefined;
177
+ path?: string | undefined;
178
+ exportedAt?: string | undefined;
179
+ };
180
+ sourceId: string;
181
+ title: string;
182
+ slug: string;
183
+ contentHtml: string;
184
+ seoTitle?: string | undefined;
185
+ seoDescription?: string | undefined;
186
+ contentCss?: string | undefined;
187
+ isHomePage?: boolean | undefined;
188
+ }>;
189
+ declare const normalizedAssetExifSchema: z.ZodObject<{
190
+ iso: z.ZodOptional<z.ZodNumber>;
191
+ aperture: z.ZodOptional<z.ZodNumber>;
192
+ shutter: z.ZodOptional<z.ZodString>;
193
+ focalLength: z.ZodOptional<z.ZodNumber>;
194
+ }, "strip", z.ZodTypeAny, {
195
+ iso?: number | undefined;
196
+ aperture?: number | undefined;
197
+ shutter?: string | undefined;
198
+ focalLength?: number | undefined;
199
+ }, {
200
+ iso?: number | undefined;
201
+ aperture?: number | undefined;
202
+ shutter?: string | undefined;
203
+ focalLength?: number | undefined;
204
+ }>;
205
+ declare const normalizedAssetSchema: z.ZodObject<{
206
+ type: z.ZodLiteral<"asset">;
207
+ source: z.ZodObject<{
208
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
209
+ id: z.ZodString;
210
+ url: z.ZodOptional<z.ZodString>;
211
+ path: z.ZodOptional<z.ZodString>;
212
+ exportedAt: z.ZodOptional<z.ZodString>;
213
+ }, "strip", z.ZodTypeAny, {
214
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
215
+ id: string;
216
+ url?: string | undefined;
217
+ path?: string | undefined;
218
+ exportedAt?: string | undefined;
219
+ }, {
220
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
221
+ id: string;
222
+ url?: string | undefined;
223
+ path?: string | undefined;
224
+ exportedAt?: string | undefined;
225
+ }>;
226
+ sourceId: z.ZodString;
227
+ sourceUrl: z.ZodString;
228
+ filename: z.ZodString;
229
+ mimeType: z.ZodOptional<z.ZodString>;
230
+ caption: z.ZodOptional<z.ZodString>;
231
+ altText: z.ZodOptional<z.ZodString>;
232
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
233
+ exif: z.ZodOptional<z.ZodObject<{
234
+ iso: z.ZodOptional<z.ZodNumber>;
235
+ aperture: z.ZodOptional<z.ZodNumber>;
236
+ shutter: z.ZodOptional<z.ZodString>;
237
+ focalLength: z.ZodOptional<z.ZodNumber>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ iso?: number | undefined;
240
+ aperture?: number | undefined;
241
+ shutter?: string | undefined;
242
+ focalLength?: number | undefined;
243
+ }, {
244
+ iso?: number | undefined;
245
+ aperture?: number | undefined;
246
+ shutter?: string | undefined;
247
+ focalLength?: number | undefined;
248
+ }>>;
249
+ portfolioSourceId: z.ZodOptional<z.ZodString>;
250
+ sort: z.ZodOptional<z.ZodNumber>;
251
+ }, "strip", z.ZodTypeAny, {
252
+ type: "asset";
253
+ source: {
254
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
255
+ id: string;
256
+ url?: string | undefined;
257
+ path?: string | undefined;
258
+ exportedAt?: string | undefined;
259
+ };
260
+ sourceId: string;
261
+ sourceUrl: string;
262
+ filename: string;
263
+ sort?: number | undefined;
264
+ mimeType?: string | undefined;
265
+ caption?: string | undefined;
266
+ altText?: string | undefined;
267
+ keywords?: string[] | undefined;
268
+ exif?: {
269
+ iso?: number | undefined;
270
+ aperture?: number | undefined;
271
+ shutter?: string | undefined;
272
+ focalLength?: number | undefined;
273
+ } | undefined;
274
+ portfolioSourceId?: string | undefined;
275
+ }, {
276
+ type: "asset";
277
+ source: {
278
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
279
+ id: string;
280
+ url?: string | undefined;
281
+ path?: string | undefined;
282
+ exportedAt?: string | undefined;
283
+ };
284
+ sourceId: string;
285
+ sourceUrl: string;
286
+ filename: string;
287
+ sort?: number | undefined;
288
+ mimeType?: string | undefined;
289
+ caption?: string | undefined;
290
+ altText?: string | undefined;
291
+ keywords?: string[] | undefined;
292
+ exif?: {
293
+ iso?: number | undefined;
294
+ aperture?: number | undefined;
295
+ shutter?: string | undefined;
296
+ focalLength?: number | undefined;
297
+ } | undefined;
298
+ portfolioSourceId?: string | undefined;
299
+ }>;
300
+ declare const normalizedPortfolioSchema: z.ZodObject<{
301
+ type: z.ZodLiteral<"portfolio">;
302
+ source: z.ZodObject<{
303
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
304
+ id: z.ZodString;
305
+ url: z.ZodOptional<z.ZodString>;
306
+ path: z.ZodOptional<z.ZodString>;
307
+ exportedAt: z.ZodOptional<z.ZodString>;
308
+ }, "strip", z.ZodTypeAny, {
309
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
310
+ id: string;
311
+ url?: string | undefined;
312
+ path?: string | undefined;
313
+ exportedAt?: string | undefined;
314
+ }, {
315
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
316
+ id: string;
317
+ url?: string | undefined;
318
+ path?: string | undefined;
319
+ exportedAt?: string | undefined;
320
+ }>;
321
+ sourceId: z.ZodString;
322
+ title: z.ZodString;
323
+ slug: z.ZodString;
324
+ description: z.ZodOptional<z.ZodString>;
325
+ parentSourceId: z.ZodOptional<z.ZodString>;
326
+ }, "strip", z.ZodTypeAny, {
327
+ type: "portfolio";
328
+ source: {
329
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
330
+ id: string;
331
+ url?: string | undefined;
332
+ path?: string | undefined;
333
+ exportedAt?: string | undefined;
334
+ };
335
+ sourceId: string;
336
+ title: string;
337
+ slug: string;
338
+ description?: string | undefined;
339
+ parentSourceId?: string | undefined;
340
+ }, {
341
+ type: "portfolio";
342
+ source: {
343
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
344
+ id: string;
345
+ url?: string | undefined;
346
+ path?: string | undefined;
347
+ exportedAt?: string | undefined;
348
+ };
349
+ sourceId: string;
350
+ title: string;
351
+ slug: string;
352
+ description?: string | undefined;
353
+ parentSourceId?: string | undefined;
354
+ }>;
355
+ declare const normalizedCategorySchema: z.ZodObject<{
356
+ type: z.ZodLiteral<"category">;
357
+ source: z.ZodObject<{
358
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
359
+ id: z.ZodString;
360
+ url: z.ZodOptional<z.ZodString>;
361
+ path: z.ZodOptional<z.ZodString>;
362
+ exportedAt: z.ZodOptional<z.ZodString>;
363
+ }, "strip", z.ZodTypeAny, {
364
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
365
+ id: string;
366
+ url?: string | undefined;
367
+ path?: string | undefined;
368
+ exportedAt?: string | undefined;
369
+ }, {
370
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
371
+ id: string;
372
+ url?: string | undefined;
373
+ path?: string | undefined;
374
+ exportedAt?: string | undefined;
375
+ }>;
376
+ sourceId: z.ZodString;
377
+ name: z.ZodString;
378
+ slug: z.ZodString;
379
+ }, "strip", z.ZodTypeAny, {
380
+ type: "category";
381
+ source: {
382
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
383
+ id: string;
384
+ url?: string | undefined;
385
+ path?: string | undefined;
386
+ exportedAt?: string | undefined;
387
+ };
388
+ sourceId: string;
389
+ slug: string;
390
+ name: string;
391
+ }, {
392
+ type: "category";
393
+ source: {
394
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
395
+ id: string;
396
+ url?: string | undefined;
397
+ path?: string | undefined;
398
+ exportedAt?: string | undefined;
399
+ };
400
+ sourceId: string;
401
+ slug: string;
402
+ name: string;
403
+ }>;
404
+ declare const normalizedTagSchema: z.ZodObject<{
405
+ type: z.ZodLiteral<"tag">;
406
+ source: z.ZodObject<{
407
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
408
+ id: z.ZodString;
409
+ url: z.ZodOptional<z.ZodString>;
410
+ path: z.ZodOptional<z.ZodString>;
411
+ exportedAt: z.ZodOptional<z.ZodString>;
412
+ }, "strip", z.ZodTypeAny, {
413
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
414
+ id: string;
415
+ url?: string | undefined;
416
+ path?: string | undefined;
417
+ exportedAt?: string | undefined;
418
+ }, {
419
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
420
+ id: string;
421
+ url?: string | undefined;
422
+ path?: string | undefined;
423
+ exportedAt?: string | undefined;
424
+ }>;
425
+ sourceId: z.ZodString;
426
+ name: z.ZodString;
427
+ slug: z.ZodString;
428
+ }, "strip", z.ZodTypeAny, {
429
+ type: "tag";
430
+ source: {
431
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
432
+ id: string;
433
+ url?: string | undefined;
434
+ path?: string | undefined;
435
+ exportedAt?: string | undefined;
436
+ };
437
+ sourceId: string;
438
+ slug: string;
439
+ name: string;
440
+ }, {
441
+ type: "tag";
442
+ source: {
443
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
444
+ id: string;
445
+ url?: string | undefined;
446
+ path?: string | undefined;
447
+ exportedAt?: string | undefined;
448
+ };
449
+ sourceId: string;
450
+ slug: string;
451
+ name: string;
452
+ }>;
453
+ declare const normalizedEntitySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
454
+ type: z.ZodLiteral<"post">;
455
+ source: z.ZodObject<{
456
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
457
+ id: z.ZodString;
458
+ url: z.ZodOptional<z.ZodString>;
459
+ path: z.ZodOptional<z.ZodString>;
460
+ exportedAt: z.ZodOptional<z.ZodString>;
461
+ }, "strip", z.ZodTypeAny, {
462
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
463
+ id: string;
464
+ url?: string | undefined;
465
+ path?: string | undefined;
466
+ exportedAt?: string | undefined;
467
+ }, {
468
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
469
+ id: string;
470
+ url?: string | undefined;
471
+ path?: string | undefined;
472
+ exportedAt?: string | undefined;
473
+ }>;
474
+ sourceId: z.ZodString;
475
+ title: z.ZodString;
476
+ slug: z.ZodString;
477
+ excerpt: z.ZodOptional<z.ZodString>;
478
+ contentHtml: z.ZodString;
479
+ publishedAt: z.ZodOptional<z.ZodString>;
480
+ status: z.ZodEnum<["draft", "published", "archived"]>;
481
+ categorySlugs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
482
+ tagSlugs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
483
+ sourceFeaturedMediaId: z.ZodOptional<z.ZodString>;
484
+ featuredAssetSourceId: z.ZodOptional<z.ZodString>;
485
+ seoTitle: z.ZodOptional<z.ZodString>;
486
+ seoDescription: z.ZodOptional<z.ZodString>;
487
+ }, "strip", z.ZodTypeAny, {
488
+ type: "post";
489
+ status: "draft" | "published" | "archived";
490
+ source: {
491
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
492
+ id: string;
493
+ url?: string | undefined;
494
+ path?: string | undefined;
495
+ exportedAt?: string | undefined;
496
+ };
497
+ sourceId: string;
498
+ title: string;
499
+ slug: string;
500
+ contentHtml: string;
501
+ excerpt?: string | undefined;
502
+ publishedAt?: string | undefined;
503
+ categorySlugs?: string[] | undefined;
504
+ tagSlugs?: string[] | undefined;
505
+ sourceFeaturedMediaId?: string | undefined;
506
+ featuredAssetSourceId?: string | undefined;
507
+ seoTitle?: string | undefined;
508
+ seoDescription?: string | undefined;
509
+ }, {
510
+ type: "post";
511
+ status: "draft" | "published" | "archived";
512
+ source: {
513
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
514
+ id: string;
515
+ url?: string | undefined;
516
+ path?: string | undefined;
517
+ exportedAt?: string | undefined;
518
+ };
519
+ sourceId: string;
520
+ title: string;
521
+ slug: string;
522
+ contentHtml: string;
523
+ excerpt?: string | undefined;
524
+ publishedAt?: string | undefined;
525
+ categorySlugs?: string[] | undefined;
526
+ tagSlugs?: string[] | undefined;
527
+ sourceFeaturedMediaId?: string | undefined;
528
+ featuredAssetSourceId?: string | undefined;
529
+ seoTitle?: string | undefined;
530
+ seoDescription?: string | undefined;
531
+ }>, z.ZodObject<{
532
+ type: z.ZodLiteral<"page">;
533
+ source: z.ZodObject<{
534
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
535
+ id: z.ZodString;
536
+ url: z.ZodOptional<z.ZodString>;
537
+ path: z.ZodOptional<z.ZodString>;
538
+ exportedAt: z.ZodOptional<z.ZodString>;
539
+ }, "strip", z.ZodTypeAny, {
540
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
541
+ id: string;
542
+ url?: string | undefined;
543
+ path?: string | undefined;
544
+ exportedAt?: string | undefined;
545
+ }, {
546
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
547
+ id: string;
548
+ url?: string | undefined;
549
+ path?: string | undefined;
550
+ exportedAt?: string | undefined;
551
+ }>;
552
+ sourceId: z.ZodString;
553
+ title: z.ZodString;
554
+ slug: z.ZodString;
555
+ contentHtml: z.ZodString;
556
+ contentCss: z.ZodOptional<z.ZodString>;
557
+ isHomePage: z.ZodOptional<z.ZodBoolean>;
558
+ status: z.ZodEnum<["draft", "published", "archived"]>;
559
+ seoTitle: z.ZodOptional<z.ZodString>;
560
+ seoDescription: z.ZodOptional<z.ZodString>;
561
+ }, "strip", z.ZodTypeAny, {
562
+ type: "page";
563
+ status: "draft" | "published" | "archived";
564
+ source: {
565
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
566
+ id: string;
567
+ url?: string | undefined;
568
+ path?: string | undefined;
569
+ exportedAt?: string | undefined;
570
+ };
571
+ sourceId: string;
572
+ title: string;
573
+ slug: string;
574
+ contentHtml: string;
575
+ seoTitle?: string | undefined;
576
+ seoDescription?: string | undefined;
577
+ contentCss?: string | undefined;
578
+ isHomePage?: boolean | undefined;
579
+ }, {
580
+ type: "page";
581
+ status: "draft" | "published" | "archived";
582
+ source: {
583
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
584
+ id: string;
585
+ url?: string | undefined;
586
+ path?: string | undefined;
587
+ exportedAt?: string | undefined;
588
+ };
589
+ sourceId: string;
590
+ title: string;
591
+ slug: string;
592
+ contentHtml: string;
593
+ seoTitle?: string | undefined;
594
+ seoDescription?: string | undefined;
595
+ contentCss?: string | undefined;
596
+ isHomePage?: boolean | undefined;
597
+ }>, z.ZodObject<{
598
+ type: z.ZodLiteral<"asset">;
599
+ source: z.ZodObject<{
600
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
601
+ id: z.ZodString;
602
+ url: z.ZodOptional<z.ZodString>;
603
+ path: z.ZodOptional<z.ZodString>;
604
+ exportedAt: z.ZodOptional<z.ZodString>;
605
+ }, "strip", z.ZodTypeAny, {
606
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
607
+ id: string;
608
+ url?: string | undefined;
609
+ path?: string | undefined;
610
+ exportedAt?: string | undefined;
611
+ }, {
612
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
613
+ id: string;
614
+ url?: string | undefined;
615
+ path?: string | undefined;
616
+ exportedAt?: string | undefined;
617
+ }>;
618
+ sourceId: z.ZodString;
619
+ sourceUrl: z.ZodString;
620
+ filename: z.ZodString;
621
+ mimeType: z.ZodOptional<z.ZodString>;
622
+ caption: z.ZodOptional<z.ZodString>;
623
+ altText: z.ZodOptional<z.ZodString>;
624
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
625
+ exif: z.ZodOptional<z.ZodObject<{
626
+ iso: z.ZodOptional<z.ZodNumber>;
627
+ aperture: z.ZodOptional<z.ZodNumber>;
628
+ shutter: z.ZodOptional<z.ZodString>;
629
+ focalLength: z.ZodOptional<z.ZodNumber>;
630
+ }, "strip", z.ZodTypeAny, {
631
+ iso?: number | undefined;
632
+ aperture?: number | undefined;
633
+ shutter?: string | undefined;
634
+ focalLength?: number | undefined;
635
+ }, {
636
+ iso?: number | undefined;
637
+ aperture?: number | undefined;
638
+ shutter?: string | undefined;
639
+ focalLength?: number | undefined;
640
+ }>>;
641
+ portfolioSourceId: z.ZodOptional<z.ZodString>;
642
+ sort: z.ZodOptional<z.ZodNumber>;
643
+ }, "strip", z.ZodTypeAny, {
644
+ type: "asset";
645
+ source: {
646
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
647
+ id: string;
648
+ url?: string | undefined;
649
+ path?: string | undefined;
650
+ exportedAt?: string | undefined;
651
+ };
652
+ sourceId: string;
653
+ sourceUrl: string;
654
+ filename: string;
655
+ sort?: number | undefined;
656
+ mimeType?: string | undefined;
657
+ caption?: string | undefined;
658
+ altText?: string | undefined;
659
+ keywords?: string[] | undefined;
660
+ exif?: {
661
+ iso?: number | undefined;
662
+ aperture?: number | undefined;
663
+ shutter?: string | undefined;
664
+ focalLength?: number | undefined;
665
+ } | undefined;
666
+ portfolioSourceId?: string | undefined;
667
+ }, {
668
+ type: "asset";
669
+ source: {
670
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
671
+ id: string;
672
+ url?: string | undefined;
673
+ path?: string | undefined;
674
+ exportedAt?: string | undefined;
675
+ };
676
+ sourceId: string;
677
+ sourceUrl: string;
678
+ filename: string;
679
+ sort?: number | undefined;
680
+ mimeType?: string | undefined;
681
+ caption?: string | undefined;
682
+ altText?: string | undefined;
683
+ keywords?: string[] | undefined;
684
+ exif?: {
685
+ iso?: number | undefined;
686
+ aperture?: number | undefined;
687
+ shutter?: string | undefined;
688
+ focalLength?: number | undefined;
689
+ } | undefined;
690
+ portfolioSourceId?: string | undefined;
691
+ }>, z.ZodObject<{
692
+ type: z.ZodLiteral<"portfolio">;
693
+ source: z.ZodObject<{
694
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
695
+ id: z.ZodString;
696
+ url: z.ZodOptional<z.ZodString>;
697
+ path: z.ZodOptional<z.ZodString>;
698
+ exportedAt: z.ZodOptional<z.ZodString>;
699
+ }, "strip", z.ZodTypeAny, {
700
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
701
+ id: string;
702
+ url?: string | undefined;
703
+ path?: string | undefined;
704
+ exportedAt?: string | undefined;
705
+ }, {
706
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
707
+ id: string;
708
+ url?: string | undefined;
709
+ path?: string | undefined;
710
+ exportedAt?: string | undefined;
711
+ }>;
712
+ sourceId: z.ZodString;
713
+ title: z.ZodString;
714
+ slug: z.ZodString;
715
+ description: z.ZodOptional<z.ZodString>;
716
+ parentSourceId: z.ZodOptional<z.ZodString>;
717
+ }, "strip", z.ZodTypeAny, {
718
+ type: "portfolio";
719
+ source: {
720
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
721
+ id: string;
722
+ url?: string | undefined;
723
+ path?: string | undefined;
724
+ exportedAt?: string | undefined;
725
+ };
726
+ sourceId: string;
727
+ title: string;
728
+ slug: string;
729
+ description?: string | undefined;
730
+ parentSourceId?: string | undefined;
731
+ }, {
732
+ type: "portfolio";
733
+ source: {
734
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
735
+ id: string;
736
+ url?: string | undefined;
737
+ path?: string | undefined;
738
+ exportedAt?: string | undefined;
739
+ };
740
+ sourceId: string;
741
+ title: string;
742
+ slug: string;
743
+ description?: string | undefined;
744
+ parentSourceId?: string | undefined;
745
+ }>, z.ZodObject<{
746
+ type: z.ZodLiteral<"category">;
747
+ source: z.ZodObject<{
748
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
749
+ id: z.ZodString;
750
+ url: z.ZodOptional<z.ZodString>;
751
+ path: z.ZodOptional<z.ZodString>;
752
+ exportedAt: z.ZodOptional<z.ZodString>;
753
+ }, "strip", z.ZodTypeAny, {
754
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
755
+ id: string;
756
+ url?: string | undefined;
757
+ path?: string | undefined;
758
+ exportedAt?: string | undefined;
759
+ }, {
760
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
761
+ id: string;
762
+ url?: string | undefined;
763
+ path?: string | undefined;
764
+ exportedAt?: string | undefined;
765
+ }>;
766
+ sourceId: z.ZodString;
767
+ name: z.ZodString;
768
+ slug: z.ZodString;
769
+ }, "strip", z.ZodTypeAny, {
770
+ type: "category";
771
+ source: {
772
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
773
+ id: string;
774
+ url?: string | undefined;
775
+ path?: string | undefined;
776
+ exportedAt?: string | undefined;
777
+ };
778
+ sourceId: string;
779
+ slug: string;
780
+ name: string;
781
+ }, {
782
+ type: "category";
783
+ source: {
784
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
785
+ id: string;
786
+ url?: string | undefined;
787
+ path?: string | undefined;
788
+ exportedAt?: string | undefined;
789
+ };
790
+ sourceId: string;
791
+ slug: string;
792
+ name: string;
793
+ }>, z.ZodObject<{
794
+ type: z.ZodLiteral<"tag">;
795
+ source: z.ZodObject<{
796
+ platform: z.ZodEnum<["wordpress", "smugmug", "squarespace", "wix"]>;
797
+ id: z.ZodString;
798
+ url: z.ZodOptional<z.ZodString>;
799
+ path: z.ZodOptional<z.ZodString>;
800
+ exportedAt: z.ZodOptional<z.ZodString>;
801
+ }, "strip", z.ZodTypeAny, {
802
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
803
+ id: string;
804
+ url?: string | undefined;
805
+ path?: string | undefined;
806
+ exportedAt?: string | undefined;
807
+ }, {
808
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
809
+ id: string;
810
+ url?: string | undefined;
811
+ path?: string | undefined;
812
+ exportedAt?: string | undefined;
813
+ }>;
814
+ sourceId: z.ZodString;
815
+ name: z.ZodString;
816
+ slug: z.ZodString;
817
+ }, "strip", z.ZodTypeAny, {
818
+ type: "tag";
819
+ source: {
820
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
821
+ id: string;
822
+ url?: string | undefined;
823
+ path?: string | undefined;
824
+ exportedAt?: string | undefined;
825
+ };
826
+ sourceId: string;
827
+ slug: string;
828
+ name: string;
829
+ }, {
830
+ type: "tag";
831
+ source: {
832
+ platform: "wordpress" | "smugmug" | "squarespace" | "wix";
833
+ id: string;
834
+ url?: string | undefined;
835
+ path?: string | undefined;
836
+ exportedAt?: string | undefined;
837
+ };
838
+ sourceId: string;
839
+ slug: string;
840
+ name: string;
841
+ }>]>;
842
+ /** Opt-in structural check for a normalized post DTO (no cross-entity FK validation). */
843
+ declare function validateNormalizedPost(post: unknown): ValidationResult;
844
+ /** Opt-in structural check for a normalized page DTO (no cross-entity FK validation). */
845
+ declare function validateNormalizedPage(page: unknown): ValidationResult;
846
+ /** Opt-in structural check for a normalized asset DTO. */
847
+ declare function validateNormalizedAsset(asset: unknown): ValidationResult;
848
+ /** Opt-in structural check for a normalized portfolio DTO. */
849
+ declare function validateNormalizedPortfolio(portfolio: unknown): ValidationResult;
850
+ /** Opt-in structural check for a normalized category DTO. */
851
+ declare function validateNormalizedCategory(category: unknown): ValidationResult;
852
+ /** Opt-in structural check for a normalized tag DTO. */
853
+ declare function validateNormalizedTag(tag: unknown): ValidationResult;
854
+ /** Opt-in structural check for any normalized entity discriminated by `type`. */
855
+ declare function validateNormalizedEntity(entity: unknown): ValidationResult;
856
+
857
+ export { EntityBundle, EntityKey, type EntityState, type MigrationCheckpoint, MigrationCursor, PortfolioMediaLink, type TrackedEntity, ValidationResult, buildPortfolioMediaLinks, isTerminalState, normalizedAssetExifSchema, normalizedAssetSchema, normalizedCategorySchema, normalizedEntitySchema, normalizedPageSchema, normalizedPortfolioSchema, normalizedPostSchema, normalizedTagSchema, shouldProcessEntity, sourceMetadataSchema, validateNormalizedAsset, validateNormalizedCategory, validateNormalizedEntity, validateNormalizedPage, validateNormalizedPortfolio, validateNormalizedPost, validateNormalizedTag };