@disclosureos/records 1.0.0

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 (75) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +121 -0
  4. package/dist/attachment-Hrg8uHuf.d.ts +23 -0
  5. package/dist/confidence-level-CV3P1W5_.d.ts +25 -0
  6. package/dist/constants/index.d.ts +28 -0
  7. package/dist/constants/index.js +885 -0
  8. package/dist/constants/index.js.map +1 -0
  9. package/dist/credibility-CcQ0MUfQ.d.ts +14 -0
  10. package/dist/digital-ADBJTqSi.d.ts +278 -0
  11. package/dist/domains-CjIFZGBh.d.ts +330 -0
  12. package/dist/enum-guard-DzPkp2oJ.d.ts +101 -0
  13. package/dist/extensions/document/index.d.ts +47 -0
  14. package/dist/extensions/document/index.js +31 -0
  15. package/dist/extensions/document/index.js.map +1 -0
  16. package/dist/extensions/identifiers/index.d.ts +139 -0
  17. package/dist/extensions/identifiers/index.js +47 -0
  18. package/dist/extensions/identifiers/index.js.map +1 -0
  19. package/dist/extensions/physical/index.d.ts +84 -0
  20. package/dist/extensions/physical/index.js +84 -0
  21. package/dist/extensions/physical/index.js.map +1 -0
  22. package/dist/extensions/provenance/index.d.ts +153 -0
  23. package/dist/extensions/provenance/index.js +120 -0
  24. package/dist/extensions/provenance/index.js.map +1 -0
  25. package/dist/extensions/testimony/index.d.ts +400 -0
  26. package/dist/extensions/testimony/index.js +203 -0
  27. package/dist/extensions/testimony/index.js.map +1 -0
  28. package/dist/factories/index.d.ts +31 -0
  29. package/dist/factories/index.js +905 -0
  30. package/dist/factories/index.js.map +1 -0
  31. package/dist/formatters/index.d.ts +18 -0
  32. package/dist/formatters/index.js +156 -0
  33. package/dist/formatters/index.js.map +1 -0
  34. package/dist/geo/index.d.ts +16 -0
  35. package/dist/geo/index.js +146 -0
  36. package/dist/geo/index.js.map +1 -0
  37. package/dist/guards/index.d.ts +74 -0
  38. package/dist/guards/index.js +892 -0
  39. package/dist/guards/index.js.map +1 -0
  40. package/dist/index.d.ts +42 -0
  41. package/dist/index.js +1350 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/labels/index.d.ts +33 -0
  44. package/dist/labels/index.js +181 -0
  45. package/dist/labels/index.js.map +1 -0
  46. package/dist/location-56xtMNtC.d.ts +408 -0
  47. package/dist/media/index.d.ts +3 -0
  48. package/dist/media/index.js +21 -0
  49. package/dist/media/index.js.map +1 -0
  50. package/dist/observation/index.d.ts +7 -0
  51. package/dist/observation/index.js +865 -0
  52. package/dist/observation/index.js.map +1 -0
  53. package/dist/shared/index.d.ts +29 -0
  54. package/dist/shared/index.js +87 -0
  55. package/dist/shared/index.js.map +1 -0
  56. package/dist/source/index.d.ts +51 -0
  57. package/dist/source/index.js +45 -0
  58. package/dist/source/index.js.map +1 -0
  59. package/dist/source/sensor/index.d.ts +170 -0
  60. package/dist/source/sensor/index.js +69 -0
  61. package/dist/source/sensor/index.js.map +1 -0
  62. package/dist/temporal/index.d.ts +20 -0
  63. package/dist/temporal/index.js +78 -0
  64. package/dist/temporal/index.js.map +1 -0
  65. package/dist/temporal-data-t8Mzu8Ui.d.ts +148 -0
  66. package/dist/time-of-day-DLDBwTrn.d.ts +165 -0
  67. package/dist/types-CzNfaip-.d.ts +1267 -0
  68. package/dist/types-DH_-SdHj.d.ts +11 -0
  69. package/dist/types-clxXEQOH.d.ts +27 -0
  70. package/dist/validation-C-_QLXXf.d.ts +34 -0
  71. package/dist/validators/index.d.ts +15 -0
  72. package/dist/validators/index.js +895 -0
  73. package/dist/validators/index.js.map +1 -0
  74. package/package.json +146 -0
  75. package/schema/records.schema.json +2538 -0
@@ -0,0 +1,1267 @@
1
+ import { z } from 'zod';
2
+ import { L as LocationData } from './location-56xtMNtC.js';
3
+ import { T as TemporalData } from './temporal-data-t8Mzu8Ui.js';
4
+
5
+ declare const PublicationStatusSchema: z.ZodEnum<{
6
+ archived: "archived";
7
+ draft: "draft";
8
+ review: "review";
9
+ published: "published";
10
+ retracted: "retracted";
11
+ }>;
12
+ type PublicationStatus = z.infer<typeof PublicationStatusSchema>;
13
+ /**
14
+ * Open extension seam for cross-package slots.
15
+ *
16
+ * `records` declares this empty. The layer packages `@disclosureos/observables`
17
+ * and `@disclosureos/origins` augment it via `declare module '@disclosureos/records'`
18
+ * so that **importing a layer package automatically types its slot on
19
+ * `Observation`** — no manual intersection, no `unknown` casts. (`@disclosureos/scoring`
20
+ * does NOT augment — it only *consumes* these slots.) Slots are absent on the
21
+ * type until their owning package is imported into the compilation. They are
22
+ * intentionally NOT part of `ObservationSchema` (records can't import its
23
+ * satellites); JSON-Schema composition of the slots happens at the all-packages
24
+ * bundling step.
25
+ */
26
+ interface ObservationExtensions {
27
+ }
28
+ /**
29
+ * Core observation record schema — the single source of truth for the record
30
+ * lexicon. Satellite slots (`observableAssessments`, `origin`, …) attach via
31
+ * module augmentation of {@link ObservationExtensions}, not this schema.
32
+ *
33
+ * ⚠️ STRIP HAZARD: because the augmented slots are not part of this `z.object`,
34
+ * `ObservationSchema.parse(record)` SILENTLY DROPS `observableAssessments` /
35
+ * `origin` (Zod strips unknown keys by default). Use {@link validateObservation}
36
+ * (which returns issues without stripping the caller's object) to validate, and
37
+ * do NOT use a raw `.parse()` round-trip to "clean" an enriched record. The
38
+ * non-stripping composed parse + JSON-Schema composition lands at the
39
+ * all-packages bundling step (Phase 4 `composeObservationSchema`).
40
+ */
41
+ declare const ObservationSchema: z.ZodObject<{
42
+ id: z.ZodString;
43
+ temporal: z.ZodObject<{
44
+ date: z.ZodString;
45
+ dateCertainty: z.ZodEnum<{
46
+ exact: "exact";
47
+ approximate: "approximate";
48
+ estimated: "estimated";
49
+ unknown: "unknown";
50
+ }>;
51
+ dateGranularity: z.ZodOptional<z.ZodEnum<{
52
+ exact: "exact";
53
+ unknown: "unknown";
54
+ month: "month";
55
+ quarter: "quarter";
56
+ year: "year";
57
+ decade: "decade";
58
+ century: "century";
59
+ }>>;
60
+ time: z.ZodOptional<z.ZodString>;
61
+ timezone: z.ZodOptional<z.ZodString>;
62
+ utcTime: z.ZodOptional<z.ZodString>;
63
+ timeCertainty: z.ZodOptional<z.ZodEnum<{
64
+ exact: "exact";
65
+ approximate: "approximate";
66
+ estimated: "estimated";
67
+ unknown: "unknown";
68
+ }>>;
69
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
70
+ durationDescription: z.ZodOptional<z.ZodString>;
71
+ timeOfDay: z.ZodOptional<z.ZodEnum<{
72
+ unknown: "unknown";
73
+ astronomical_dawn: "astronomical_dawn";
74
+ nautical_dawn: "nautical_dawn";
75
+ civil_dawn: "civil_dawn";
76
+ sunrise: "sunrise";
77
+ morning: "morning";
78
+ noon: "noon";
79
+ afternoon: "afternoon";
80
+ sunset: "sunset";
81
+ civil_dusk: "civil_dusk";
82
+ nautical_dusk: "nautical_dusk";
83
+ astronomical_dusk: "astronomical_dusk";
84
+ night: "night";
85
+ }>>;
86
+ isDaylightSaving: z.ZodOptional<z.ZodBoolean>;
87
+ moonPhase: z.ZodOptional<z.ZodNumber>;
88
+ moonIllumination: z.ZodOptional<z.ZodNumber>;
89
+ dateRange: z.ZodOptional<z.ZodObject<{
90
+ start: z.ZodObject<{
91
+ value: z.ZodString;
92
+ granularity: z.ZodEnum<{
93
+ exact: "exact";
94
+ unknown: "unknown";
95
+ month: "month";
96
+ quarter: "quarter";
97
+ year: "year";
98
+ decade: "decade";
99
+ century: "century";
100
+ }>;
101
+ certainty: z.ZodEnum<{
102
+ exact: "exact";
103
+ approximate: "approximate";
104
+ estimated: "estimated";
105
+ unknown: "unknown";
106
+ }>;
107
+ quarter: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
108
+ display: z.ZodOptional<z.ZodString>;
109
+ notes: z.ZodOptional<z.ZodString>;
110
+ }, z.core.$strip>;
111
+ end: z.ZodObject<{
112
+ value: z.ZodString;
113
+ granularity: z.ZodEnum<{
114
+ exact: "exact";
115
+ unknown: "unknown";
116
+ month: "month";
117
+ quarter: "quarter";
118
+ year: "year";
119
+ decade: "decade";
120
+ century: "century";
121
+ }>;
122
+ certainty: z.ZodEnum<{
123
+ exact: "exact";
124
+ approximate: "approximate";
125
+ estimated: "estimated";
126
+ unknown: "unknown";
127
+ }>;
128
+ quarter: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
129
+ display: z.ZodOptional<z.ZodString>;
130
+ notes: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strip>;
132
+ type: z.ZodEnum<{
133
+ span: "span";
134
+ uncertainty: "uncertainty";
135
+ active_period: "active_period";
136
+ investigation_period: "investigation_period";
137
+ observation_window: "observation_window";
138
+ }>;
139
+ display: z.ZodOptional<z.ZodString>;
140
+ inclusive: z.ZodOptional<z.ZodBoolean>;
141
+ }, z.core.$strip>>;
142
+ relativeDate: z.ZodOptional<z.ZodObject<{
143
+ referenceEvent: z.ZodString;
144
+ referenceDate: z.ZodOptional<z.ZodObject<{
145
+ value: z.ZodString;
146
+ granularity: z.ZodEnum<{
147
+ exact: "exact";
148
+ unknown: "unknown";
149
+ month: "month";
150
+ quarter: "quarter";
151
+ year: "year";
152
+ decade: "decade";
153
+ century: "century";
154
+ }>;
155
+ certainty: z.ZodEnum<{
156
+ exact: "exact";
157
+ approximate: "approximate";
158
+ estimated: "estimated";
159
+ unknown: "unknown";
160
+ }>;
161
+ quarter: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
162
+ display: z.ZodOptional<z.ZodString>;
163
+ notes: z.ZodOptional<z.ZodString>;
164
+ }, z.core.$strip>>;
165
+ relation: z.ZodEnum<{
166
+ before: "before";
167
+ after: "after";
168
+ during: "during";
169
+ around: "around";
170
+ }>;
171
+ offset: z.ZodOptional<z.ZodObject<{
172
+ value: z.ZodNumber;
173
+ unit: z.ZodEnum<{
174
+ minutes: "minutes";
175
+ hours: "hours";
176
+ days: "days";
177
+ weeks: "weeks";
178
+ months: "months";
179
+ years: "years";
180
+ }>;
181
+ approximate: z.ZodOptional<z.ZodBoolean>;
182
+ }, z.core.$strip>>;
183
+ display: z.ZodOptional<z.ZodString>;
184
+ }, z.core.$strip>>;
185
+ }, z.core.$strip>;
186
+ location: z.ZodObject<{
187
+ id: z.ZodString;
188
+ name: z.ZodString;
189
+ country: z.ZodString;
190
+ countryCode: z.ZodOptional<z.ZodString>;
191
+ region: z.ZodOptional<z.ZodString>;
192
+ city: z.ZodOptional<z.ZodString>;
193
+ address: z.ZodOptional<z.ZodString>;
194
+ longitude: z.ZodNumber;
195
+ latitude: z.ZodNumber;
196
+ coordinatePrecision: z.ZodOptional<z.ZodEnum<{
197
+ exact: "exact";
198
+ approximate: "approximate";
199
+ unknown: "unknown";
200
+ address: "address";
201
+ locality: "locality";
202
+ region: "region";
203
+ }>>;
204
+ coordinatePrecisionMeters: z.ZodOptional<z.ZodNumber>;
205
+ coordinatesApproximate: z.ZodOptional<z.ZodBoolean>;
206
+ elevationMeters: z.ZodOptional<z.ZodNumber>;
207
+ elevationSource: z.ZodOptional<z.ZodEnum<{
208
+ estimated: "estimated";
209
+ unknown: "unknown";
210
+ map: "map";
211
+ gps: "gps";
212
+ }>>;
213
+ siteType: z.ZodEnum<{
214
+ unknown: "unknown";
215
+ military_air_base: "military_air_base";
216
+ military_naval_base: "military_naval_base";
217
+ military_army_base: "military_army_base";
218
+ military_missile_site: "military_missile_site";
219
+ military_radar_station: "military_radar_station";
220
+ military_research_facility: "military_research_facility";
221
+ military_training_area: "military_training_area";
222
+ military_other: "military_other";
223
+ nuclear_power_plant: "nuclear_power_plant";
224
+ nuclear_weapons_storage: "nuclear_weapons_storage";
225
+ nuclear_research_facility: "nuclear_research_facility";
226
+ nuclear_waste_storage: "nuclear_waste_storage";
227
+ nuclear_other: "nuclear_other";
228
+ civilian_airport: "civilian_airport";
229
+ private_airfield: "private_airfield";
230
+ heliport: "heliport";
231
+ seaport: "seaport";
232
+ offshore_platform: "offshore_platform";
233
+ naval_vessel: "naval_vessel";
234
+ government_facility: "government_facility";
235
+ embassy: "embassy";
236
+ intelligence_facility: "intelligence_facility";
237
+ power_plant: "power_plant";
238
+ dam: "dam";
239
+ telecommunications: "telecommunications";
240
+ water_treatment: "water_treatment";
241
+ research_facility: "research_facility";
242
+ test_range: "test_range";
243
+ space_station: "space_station";
244
+ archaeological_site: "archaeological_site";
245
+ volcano: "volcano";
246
+ command_center: "command_center";
247
+ residential: "residential";
248
+ commercial: "commercial";
249
+ industrial: "industrial";
250
+ agricultural: "agricultural";
251
+ wilderness: "wilderness";
252
+ ocean: "ocean";
253
+ lake: "lake";
254
+ mountain: "mountain";
255
+ desert: "desert";
256
+ forest: "forest";
257
+ urban: "urban";
258
+ suburban: "suburban";
259
+ rural: "rural";
260
+ other: "other";
261
+ }>;
262
+ secondarySiteTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
263
+ unknown: "unknown";
264
+ military_air_base: "military_air_base";
265
+ military_naval_base: "military_naval_base";
266
+ military_army_base: "military_army_base";
267
+ military_missile_site: "military_missile_site";
268
+ military_radar_station: "military_radar_station";
269
+ military_research_facility: "military_research_facility";
270
+ military_training_area: "military_training_area";
271
+ military_other: "military_other";
272
+ nuclear_power_plant: "nuclear_power_plant";
273
+ nuclear_weapons_storage: "nuclear_weapons_storage";
274
+ nuclear_research_facility: "nuclear_research_facility";
275
+ nuclear_waste_storage: "nuclear_waste_storage";
276
+ nuclear_other: "nuclear_other";
277
+ civilian_airport: "civilian_airport";
278
+ private_airfield: "private_airfield";
279
+ heliport: "heliport";
280
+ seaport: "seaport";
281
+ offshore_platform: "offshore_platform";
282
+ naval_vessel: "naval_vessel";
283
+ government_facility: "government_facility";
284
+ embassy: "embassy";
285
+ intelligence_facility: "intelligence_facility";
286
+ power_plant: "power_plant";
287
+ dam: "dam";
288
+ telecommunications: "telecommunications";
289
+ water_treatment: "water_treatment";
290
+ research_facility: "research_facility";
291
+ test_range: "test_range";
292
+ space_station: "space_station";
293
+ archaeological_site: "archaeological_site";
294
+ volcano: "volcano";
295
+ command_center: "command_center";
296
+ residential: "residential";
297
+ commercial: "commercial";
298
+ industrial: "industrial";
299
+ agricultural: "agricultural";
300
+ wilderness: "wilderness";
301
+ ocean: "ocean";
302
+ lake: "lake";
303
+ mountain: "mountain";
304
+ desert: "desert";
305
+ forest: "forest";
306
+ urban: "urban";
307
+ suburban: "suburban";
308
+ rural: "rural";
309
+ other: "other";
310
+ }>>>;
311
+ terrain: z.ZodOptional<z.ZodEnum<{
312
+ unknown: "unknown";
313
+ ocean: "ocean";
314
+ lake: "lake";
315
+ desert: "desert";
316
+ forest: "forest";
317
+ urban: "urban";
318
+ suburban: "suburban";
319
+ rural: "rural";
320
+ coastal: "coastal";
321
+ river: "river";
322
+ wetland: "wetland";
323
+ plains: "plains";
324
+ hills: "hills";
325
+ mountains: "mountains";
326
+ jungle: "jungle";
327
+ tundra: "tundra";
328
+ arctic: "arctic";
329
+ underground: "underground";
330
+ underwater: "underwater";
331
+ airborne: "airborne";
332
+ space: "space";
333
+ }>>;
334
+ airspaceClass: z.ZodOptional<z.ZodEnum<{
335
+ unknown: "unknown";
336
+ A: "A";
337
+ B: "B";
338
+ C: "C";
339
+ D: "D";
340
+ E: "E";
341
+ G: "G";
342
+ restricted: "restricted";
343
+ prohibited: "prohibited";
344
+ warning: "warning";
345
+ moa: "moa";
346
+ alert: "alert";
347
+ cfa: "cfa";
348
+ national_security: "national_security";
349
+ tfr: "tfr";
350
+ international: "international";
351
+ }>>;
352
+ locationSensitivity: z.ZodOptional<z.ZodEnum<{
353
+ critical: "critical";
354
+ high: "high";
355
+ moderate: "moderate";
356
+ standard: "standard";
357
+ none: "none";
358
+ }>>;
359
+ proximitySites: z.ZodOptional<z.ZodArray<z.ZodObject<{
360
+ siteType: z.ZodEnum<{
361
+ unknown: "unknown";
362
+ military_air_base: "military_air_base";
363
+ military_naval_base: "military_naval_base";
364
+ military_army_base: "military_army_base";
365
+ military_missile_site: "military_missile_site";
366
+ military_radar_station: "military_radar_station";
367
+ military_research_facility: "military_research_facility";
368
+ military_training_area: "military_training_area";
369
+ military_other: "military_other";
370
+ nuclear_power_plant: "nuclear_power_plant";
371
+ nuclear_weapons_storage: "nuclear_weapons_storage";
372
+ nuclear_research_facility: "nuclear_research_facility";
373
+ nuclear_waste_storage: "nuclear_waste_storage";
374
+ nuclear_other: "nuclear_other";
375
+ civilian_airport: "civilian_airport";
376
+ private_airfield: "private_airfield";
377
+ heliport: "heliport";
378
+ seaport: "seaport";
379
+ offshore_platform: "offshore_platform";
380
+ naval_vessel: "naval_vessel";
381
+ government_facility: "government_facility";
382
+ embassy: "embassy";
383
+ intelligence_facility: "intelligence_facility";
384
+ power_plant: "power_plant";
385
+ dam: "dam";
386
+ telecommunications: "telecommunications";
387
+ water_treatment: "water_treatment";
388
+ research_facility: "research_facility";
389
+ test_range: "test_range";
390
+ space_station: "space_station";
391
+ archaeological_site: "archaeological_site";
392
+ volcano: "volcano";
393
+ command_center: "command_center";
394
+ residential: "residential";
395
+ commercial: "commercial";
396
+ industrial: "industrial";
397
+ agricultural: "agricultural";
398
+ wilderness: "wilderness";
399
+ ocean: "ocean";
400
+ lake: "lake";
401
+ mountain: "mountain";
402
+ desert: "desert";
403
+ forest: "forest";
404
+ urban: "urban";
405
+ suburban: "suburban";
406
+ rural: "rural";
407
+ other: "other";
408
+ }>;
409
+ siteName: z.ZodOptional<z.ZodString>;
410
+ distanceKm: z.ZodNumber;
411
+ bearing: z.ZodOptional<z.ZodNumber>;
412
+ }, z.core.$strip>>>;
413
+ nearestMilitaryKm: z.ZodOptional<z.ZodNumber>;
414
+ nearestNuclearKm: z.ZodOptional<z.ZodNumber>;
415
+ nearestAirportKm: z.ZodOptional<z.ZodNumber>;
416
+ waterDepthMeters: z.ZodOptional<z.ZodNumber>;
417
+ vesselName: z.ZodOptional<z.ZodString>;
418
+ vesselType: z.ZodOptional<z.ZodString>;
419
+ aircraftType: z.ZodOptional<z.ZodString>;
420
+ aircraftCallsign: z.ZodOptional<z.ZodString>;
421
+ flightNumber: z.ZodOptional<z.ZodString>;
422
+ observerAltitudeMeters: z.ZodOptional<z.ZodNumber>;
423
+ }, z.core.$strip>;
424
+ status: z.ZodEnum<{
425
+ archived: "archived";
426
+ draft: "draft";
427
+ review: "review";
428
+ published: "published";
429
+ retracted: "retracted";
430
+ }>;
431
+ createdAt: z.ZodString;
432
+ updatedAt: z.ZodString;
433
+ summary: z.ZodOptional<z.ZodString>;
434
+ description: z.ZodOptional<z.ZodString>;
435
+ objectCharacteristics: z.ZodOptional<z.ZodObject<{
436
+ shape: z.ZodOptional<z.ZodEnum<{
437
+ unknown: "unknown";
438
+ other: "other";
439
+ sphere: "sphere";
440
+ orb: "orb";
441
+ disc: "disc";
442
+ saucer: "saucer";
443
+ oval: "oval";
444
+ egg: "egg";
445
+ cylinder: "cylinder";
446
+ cigar: "cigar";
447
+ tic_tac: "tic_tac";
448
+ triangle: "triangle";
449
+ delta: "delta";
450
+ boomerang: "boomerang";
451
+ chevron: "chevron";
452
+ diamond: "diamond";
453
+ rectangle: "rectangle";
454
+ square: "square";
455
+ cube: "cube";
456
+ cross: "cross";
457
+ star: "star";
458
+ amorphous: "amorphous";
459
+ changing: "changing";
460
+ light_only: "light_only";
461
+ }>>;
462
+ size: z.ZodOptional<z.ZodString>;
463
+ sizeMeters: z.ZodOptional<z.ZodNumber>;
464
+ color: z.ZodOptional<z.ZodString>;
465
+ secondaryColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
466
+ luminosity: z.ZodOptional<z.ZodString>;
467
+ sound: z.ZodOptional<z.ZodString>;
468
+ soundDescription: z.ZodOptional<z.ZodString>;
469
+ surfaceDetails: z.ZodOptional<z.ZodString>;
470
+ numberObserved: z.ZodOptional<z.ZodNumber>;
471
+ formation: z.ZodOptional<z.ZodString>;
472
+ structuralFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
473
+ }, z.core.$strip>>;
474
+ eventType: z.ZodOptional<z.ZodString>;
475
+ sourceData: z.ZodOptional<z.ZodObject<{
476
+ primarySource: z.ZodOptional<z.ZodObject<{
477
+ sourceId: z.ZodString;
478
+ type: z.ZodEnum<{
479
+ other: "other";
480
+ foia: "foia";
481
+ official_report: "official_report";
482
+ official_statement: "official_statement";
483
+ congressional_testimony: "congressional_testimony";
484
+ congressional_report: "congressional_report";
485
+ military_document: "military_document";
486
+ intelligence_document: "intelligence_document";
487
+ whistleblower: "whistleblower";
488
+ firsthand_witness: "firsthand_witness";
489
+ secondhand_account: "secondhand_account";
490
+ news_article: "news_article";
491
+ documentary: "documentary";
492
+ interview: "interview";
493
+ book: "book";
494
+ academic_paper: "academic_paper";
495
+ investigation_report: "investigation_report";
496
+ database_entry: "database_entry";
497
+ social_media: "social_media";
498
+ website: "website";
499
+ }>;
500
+ title: z.ZodString;
501
+ author: z.ZodOptional<z.ZodString>;
502
+ organization: z.ZodOptional<z.ZodString>;
503
+ date: z.ZodOptional<z.ZodString>;
504
+ url: z.ZodOptional<z.ZodString>;
505
+ archiveUrl: z.ZodOptional<z.ZodString>;
506
+ reference: z.ZodOptional<z.ZodString>;
507
+ credibility: z.ZodEnum<{
508
+ unknown: "unknown";
509
+ verified: "verified";
510
+ unverified: "unverified";
511
+ official: "official";
512
+ credible: "credible";
513
+ questionable: "questionable";
514
+ disputed: "disputed";
515
+ }>;
516
+ isPrimarySource: z.ZodOptional<z.ZodBoolean>;
517
+ classificationLevel: z.ZodOptional<z.ZodString>;
518
+ notes: z.ZodOptional<z.ZodString>;
519
+ }, z.core.$strip>>;
520
+ sources: z.ZodOptional<z.ZodArray<z.ZodObject<{
521
+ sourceId: z.ZodString;
522
+ type: z.ZodEnum<{
523
+ other: "other";
524
+ foia: "foia";
525
+ official_report: "official_report";
526
+ official_statement: "official_statement";
527
+ congressional_testimony: "congressional_testimony";
528
+ congressional_report: "congressional_report";
529
+ military_document: "military_document";
530
+ intelligence_document: "intelligence_document";
531
+ whistleblower: "whistleblower";
532
+ firsthand_witness: "firsthand_witness";
533
+ secondhand_account: "secondhand_account";
534
+ news_article: "news_article";
535
+ documentary: "documentary";
536
+ interview: "interview";
537
+ book: "book";
538
+ academic_paper: "academic_paper";
539
+ investigation_report: "investigation_report";
540
+ database_entry: "database_entry";
541
+ social_media: "social_media";
542
+ website: "website";
543
+ }>;
544
+ title: z.ZodString;
545
+ author: z.ZodOptional<z.ZodString>;
546
+ organization: z.ZodOptional<z.ZodString>;
547
+ date: z.ZodOptional<z.ZodString>;
548
+ url: z.ZodOptional<z.ZodString>;
549
+ archiveUrl: z.ZodOptional<z.ZodString>;
550
+ reference: z.ZodOptional<z.ZodString>;
551
+ credibility: z.ZodEnum<{
552
+ unknown: "unknown";
553
+ verified: "verified";
554
+ unverified: "unverified";
555
+ official: "official";
556
+ credible: "credible";
557
+ questionable: "questionable";
558
+ disputed: "disputed";
559
+ }>;
560
+ isPrimarySource: z.ZodOptional<z.ZodBoolean>;
561
+ classificationLevel: z.ZodOptional<z.ZodString>;
562
+ notes: z.ZodOptional<z.ZodString>;
563
+ }, z.core.$strip>>>;
564
+ originalClassification: z.ZodOptional<z.ZodString>;
565
+ declassificationDate: z.ZodOptional<z.ZodString>;
566
+ foiaRequestId: z.ZodOptional<z.ZodString>;
567
+ archiveLocation: z.ZodOptional<z.ZodString>;
568
+ }, z.core.$strip>>;
569
+ investigation: z.ZodOptional<z.ZodObject<{
570
+ investigatingBody: z.ZodOptional<z.ZodString>;
571
+ investigatingBodies: z.ZodOptional<z.ZodArray<z.ZodString>>;
572
+ caseNumber: z.ZodOptional<z.ZodString>;
573
+ investigationDate: z.ZodOptional<z.ZodString>;
574
+ conclusion: z.ZodOptional<z.ZodString>;
575
+ confidence: z.ZodOptional<z.ZodEnum<{
576
+ high: "high";
577
+ moderate: "moderate";
578
+ low: "low";
579
+ unassessed: "unassessed";
580
+ very_high: "very_high";
581
+ very_low: "very_low";
582
+ }>>;
583
+ methodologies: z.ZodOptional<z.ZodArray<z.ZodString>>;
584
+ findings: z.ZodOptional<z.ZodString>;
585
+ recommendations: z.ZodOptional<z.ZodString>;
586
+ }, z.core.$strip>>;
587
+ movement: z.ZodOptional<z.ZodObject<{
588
+ speed: z.ZodOptional<z.ZodString>;
589
+ speedKmh: z.ZodOptional<z.ZodNumber>;
590
+ altitude: z.ZodOptional<z.ZodString>;
591
+ altitudeMeters: z.ZodOptional<z.ZodNumber>;
592
+ heading: z.ZodOptional<z.ZodNumber>;
593
+ flightPath: z.ZodOptional<z.ZodString>;
594
+ maneuvers: z.ZodOptional<z.ZodArray<z.ZodEnum<{
595
+ other: "other";
596
+ hover: "hover";
597
+ instant_acceleration: "instant_acceleration";
598
+ instant_stop: "instant_stop";
599
+ right_angle_turn: "right_angle_turn";
600
+ zigzag: "zigzag";
601
+ pendulum: "pendulum";
602
+ split: "split";
603
+ merge: "merge";
604
+ disappear: "disappear";
605
+ appear: "appear";
606
+ transmedium_entry: "transmedium_entry";
607
+ transmedium_exit: "transmedium_exit";
608
+ vertical_ascent: "vertical_ascent";
609
+ vertical_descent: "vertical_descent";
610
+ rotation: "rotation";
611
+ wobble: "wobble";
612
+ }>>>;
613
+ maneuverDescriptions: z.ZodOptional<z.ZodArray<z.ZodString>>;
614
+ radarData: z.ZodOptional<z.ZodBoolean>;
615
+ infraredSignature: z.ZodOptional<z.ZodBoolean>;
616
+ trajectory: z.ZodOptional<z.ZodString>;
617
+ }, z.core.$strip>>;
618
+ witnesses: z.ZodOptional<z.ZodObject<{
619
+ count: z.ZodOptional<z.ZodNumber>;
620
+ categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
621
+ militaryWitnesses: z.ZodOptional<z.ZodBoolean>;
622
+ aviationWitnesses: z.ZodOptional<z.ZodBoolean>;
623
+ multipleIndependent: z.ZodOptional<z.ZodBoolean>;
624
+ professionalObservers: z.ZodOptional<z.ZodBoolean>;
625
+ descriptions: z.ZodOptional<z.ZodArray<z.ZodString>>;
626
+ }, z.core.$strip>>;
627
+ sensorEvidence: z.ZodOptional<z.ZodObject<{
628
+ sensors: z.ZodArray<z.ZodObject<{
629
+ id: z.ZodString;
630
+ sensorType: z.ZodEnum<{
631
+ other: "other";
632
+ military_radar: "military_radar";
633
+ civilian_radar: "civilian_radar";
634
+ airborne_radar: "airborne_radar";
635
+ shipborne_radar: "shipborne_radar";
636
+ ground_radar: "ground_radar";
637
+ flir: "flir";
638
+ eo_sensor: "eo_sensor";
639
+ satellite: "satellite";
640
+ sonar: "sonar";
641
+ electromagnetic_sensor: "electromagnetic_sensor";
642
+ radiation_sensor: "radiation_sensor";
643
+ civilian_camera: "civilian_camera";
644
+ security_camera: "security_camera";
645
+ dashcam: "dashcam";
646
+ phone_camera: "phone_camera";
647
+ }>;
648
+ detectionMethod: z.ZodEnum<{
649
+ unknown: "unknown";
650
+ other: "other";
651
+ radar_primary: "radar_primary";
652
+ radar_secondary: "radar_secondary";
653
+ radar_doppler: "radar_doppler";
654
+ radar_phased_array: "radar_phased_array";
655
+ infrared_flir: "infrared_flir";
656
+ infrared_other: "infrared_other";
657
+ electro_optical: "electro_optical";
658
+ visual_camera: "visual_camera";
659
+ satellite_imagery: "satellite_imagery";
660
+ sonar_active: "sonar_active";
661
+ sonar_passive: "sonar_passive";
662
+ electromagnetic: "electromagnetic";
663
+ radiation_detector: "radiation_detector";
664
+ magnetometer: "magnetometer";
665
+ gravimeter: "gravimeter";
666
+ acoustic: "acoustic";
667
+ seismic: "seismic";
668
+ lidar: "lidar";
669
+ spectroscopic: "spectroscopic";
670
+ radio_frequency: "radio_frequency";
671
+ multiple: "multiple";
672
+ }>;
673
+ platform: z.ZodOptional<z.ZodString>;
674
+ operator: z.ZodOptional<z.ZodString>;
675
+ timestamp: z.ZodOptional<z.ZodString>;
676
+ duration: z.ZodOptional<z.ZodNumber>;
677
+ rawDataAvailable: z.ZodOptional<z.ZodBoolean>;
678
+ calibrated: z.ZodOptional<z.ZodBoolean>;
679
+ readings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
680
+ notes: z.ZodOptional<z.ZodString>;
681
+ }, z.core.$strip>>;
682
+ multiSensorCorrelation: z.ZodOptional<z.ZodBoolean>;
683
+ dataRetentionStatus: z.ZodOptional<z.ZodEnum<{
684
+ unknown: "unknown";
685
+ available: "available";
686
+ archived: "archived";
687
+ destroyed: "destroyed";
688
+ classified: "classified";
689
+ }>>;
690
+ anomalies: z.ZodOptional<z.ZodArray<z.ZodString>>;
691
+ }, z.core.$strip>>;
692
+ responseImpact: z.ZodOptional<z.ZodObject<{
693
+ officialResponse: z.ZodOptional<z.ZodString>;
694
+ mediaAttention: z.ZodOptional<z.ZodBoolean>;
695
+ publicImpact: z.ZodOptional<z.ZodString>;
696
+ policyImpact: z.ZodOptional<z.ZodString>;
697
+ militaryResponse: z.ZodOptional<z.ZodString>;
698
+ coverUpAlleged: z.ZodOptional<z.ZodBoolean>;
699
+ }, z.core.$strip>>;
700
+ environment: z.ZodOptional<z.ZodObject<{
701
+ weather: z.ZodOptional<z.ZodString>;
702
+ visibility: z.ZodOptional<z.ZodString>;
703
+ cloudCover: z.ZodOptional<z.ZodString>;
704
+ windSpeed: z.ZodOptional<z.ZodString>;
705
+ temperature: z.ZodOptional<z.ZodNumber>;
706
+ humidity: z.ZodOptional<z.ZodNumber>;
707
+ celestialConditions: z.ZodOptional<z.ZodString>;
708
+ moonPhase: z.ZodOptional<z.ZodString>;
709
+ precipitation: z.ZodOptional<z.ZodString>;
710
+ }, z.core.$strip>>;
711
+ relations: z.ZodOptional<z.ZodObject<{
712
+ edges: z.ZodOptional<z.ZodArray<z.ZodObject<{
713
+ kind: z.ZodEnum<{
714
+ corroborates: "corroborates";
715
+ contradicts: "contradicts";
716
+ duplicate_of: "duplicate_of";
717
+ same_object: "same_object";
718
+ supersedes: "supersedes";
719
+ superseded_by: "superseded_by";
720
+ re_analysis_of: "re_analysis_of";
721
+ part_of: "part_of";
722
+ }>;
723
+ targetId: z.ZodString;
724
+ note: z.ZodOptional<z.ZodString>;
725
+ }, z.core.$strip>>>;
726
+ flap: z.ZodOptional<z.ZodString>;
727
+ wave: z.ZodOptional<z.ZodString>;
728
+ cluster: z.ZodOptional<z.ZodString>;
729
+ relatedObservationIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
730
+ precedingEvents: z.ZodOptional<z.ZodArray<z.ZodString>>;
731
+ followingEvents: z.ZodOptional<z.ZodArray<z.ZodString>>;
732
+ }, z.core.$strip>>;
733
+ aviation: z.ZodOptional<z.ZodObject<{
734
+ aircraftType: z.ZodOptional<z.ZodString>;
735
+ aircraftDesignation: z.ZodOptional<z.ZodString>;
736
+ squadron: z.ZodOptional<z.ZodString>;
737
+ flightMission: z.ZodOptional<z.ZodString>;
738
+ altitude: z.ZodOptional<z.ZodNumber>;
739
+ speed: z.ZodOptional<z.ZodNumber>;
740
+ heading: z.ZodOptional<z.ZodNumber>;
741
+ radarContact: z.ZodOptional<z.ZodBoolean>;
742
+ weaponsSystemEngaged: z.ZodOptional<z.ZodBoolean>;
743
+ interceptAttempted: z.ZodOptional<z.ZodBoolean>;
744
+ }, z.core.$strip>>;
745
+ media: z.ZodOptional<z.ZodArray<z.ZodObject<{
746
+ id: z.ZodString;
747
+ type: z.ZodEnum<{
748
+ image: "image";
749
+ video: "video";
750
+ document: "document";
751
+ audio: "audio";
752
+ }>;
753
+ url: z.ZodString;
754
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
755
+ caption: z.ZodOptional<z.ZodString>;
756
+ credit: z.ZodOptional<z.ZodString>;
757
+ mimeType: z.ZodOptional<z.ZodString>;
758
+ fileSize: z.ZodOptional<z.ZodNumber>;
759
+ duration: z.ZodOptional<z.ZodNumber>;
760
+ width: z.ZodOptional<z.ZodNumber>;
761
+ height: z.ZodOptional<z.ZodNumber>;
762
+ }, z.core.$strip>>>;
763
+ featuredMedia: z.ZodOptional<z.ZodObject<{
764
+ id: z.ZodString;
765
+ type: z.ZodEnum<{
766
+ image: "image";
767
+ video: "video";
768
+ document: "document";
769
+ audio: "audio";
770
+ }>;
771
+ url: z.ZodString;
772
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
773
+ caption: z.ZodOptional<z.ZodString>;
774
+ credit: z.ZodOptional<z.ZodString>;
775
+ mimeType: z.ZodOptional<z.ZodString>;
776
+ fileSize: z.ZodOptional<z.ZodNumber>;
777
+ duration: z.ZodOptional<z.ZodNumber>;
778
+ width: z.ZodOptional<z.ZodNumber>;
779
+ height: z.ZodOptional<z.ZodNumber>;
780
+ }, z.core.$strip>>;
781
+ provenance: z.ZodOptional<z.ZodObject<{
782
+ custodyStatus: z.ZodOptional<z.ZodEnum<{
783
+ unknown: "unknown";
784
+ destroyed: "destroyed";
785
+ classified: "classified";
786
+ verified: "verified";
787
+ partial: "partial";
788
+ unverified: "unverified";
789
+ government_held: "government_held";
790
+ private_held: "private_held";
791
+ lost: "lost";
792
+ }>>;
793
+ custody: z.ZodOptional<z.ZodObject<{
794
+ evidenceId: z.ZodString;
795
+ status: z.ZodEnum<{
796
+ unknown: "unknown";
797
+ destroyed: "destroyed";
798
+ classified: "classified";
799
+ verified: "verified";
800
+ partial: "partial";
801
+ unverified: "unverified";
802
+ government_held: "government_held";
803
+ private_held: "private_held";
804
+ lost: "lost";
805
+ }>;
806
+ entries: z.ZodArray<z.ZodObject<{
807
+ entryId: z.ZodString;
808
+ date: z.ZodString;
809
+ action: z.ZodEnum<{
810
+ other: "other";
811
+ creation: "creation";
812
+ collection: "collection";
813
+ transfer: "transfer";
814
+ storage: "storage";
815
+ analysis: "analysis";
816
+ release: "release";
817
+ classification: "classification";
818
+ destruction: "destruction";
819
+ loss: "loss";
820
+ recovery: "recovery";
821
+ }>;
822
+ from: z.ZodOptional<z.ZodString>;
823
+ to: z.ZodOptional<z.ZodString>;
824
+ location: z.ZodOptional<z.ZodString>;
825
+ reference: z.ZodOptional<z.ZodString>;
826
+ notes: z.ZodOptional<z.ZodString>;
827
+ }, z.core.$strip>>;
828
+ }, z.core.$strip>>;
829
+ digital: z.ZodOptional<z.ZodObject<{
830
+ hash: z.ZodOptional<z.ZodObject<{
831
+ algorithm: z.ZodEnum<{
832
+ sha256: "sha256";
833
+ sha512: "sha512";
834
+ sha1: "sha1";
835
+ md5: "md5";
836
+ }>;
837
+ value: z.ZodString;
838
+ }, z.core.$strip>>;
839
+ additionalHashes: z.ZodOptional<z.ZodArray<z.ZodObject<{
840
+ algorithm: z.ZodEnum<{
841
+ sha256: "sha256";
842
+ sha512: "sha512";
843
+ sha1: "sha1";
844
+ md5: "md5";
845
+ }>;
846
+ value: z.ZodString;
847
+ }, z.core.$strip>>>;
848
+ captureMetadata: z.ZodOptional<z.ZodObject<{
849
+ device: z.ZodOptional<z.ZodString>;
850
+ manufacturer: z.ZodOptional<z.ZodString>;
851
+ model: z.ZodOptional<z.ZodString>;
852
+ software: z.ZodOptional<z.ZodString>;
853
+ originalFilename: z.ZodOptional<z.ZodString>;
854
+ originalCreationDate: z.ZodOptional<z.ZodString>;
855
+ gpsCoordinates: z.ZodOptional<z.ZodObject<{
856
+ latitude: z.ZodNumber;
857
+ longitude: z.ZodNumber;
858
+ altitude: z.ZodOptional<z.ZodNumber>;
859
+ }, z.core.$strip>>;
860
+ metadataPreserved: z.ZodOptional<z.ZodBoolean>;
861
+ metadataStripped: z.ZodOptional<z.ZodBoolean>;
862
+ strippedReason: z.ZodOptional<z.ZodString>;
863
+ }, z.core.$strip>>;
864
+ verifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
865
+ verifier: z.ZodString;
866
+ organization: z.ZodOptional<z.ZodString>;
867
+ credentials: z.ZodOptional<z.ZodString>;
868
+ date: z.ZodString;
869
+ method: z.ZodEnum<{
870
+ other: "other";
871
+ metadata_analysis: "metadata_analysis";
872
+ forensic_analysis: "forensic_analysis";
873
+ hash_verification: "hash_verification";
874
+ chain_of_custody: "chain_of_custody";
875
+ source_confirmation: "source_confirmation";
876
+ expert_review: "expert_review";
877
+ ai_analysis: "ai_analysis";
878
+ }>;
879
+ methodDescription: z.ZodOptional<z.ZodString>;
880
+ result: z.ZodEnum<{
881
+ unknown: "unknown";
882
+ authentic: "authentic";
883
+ likely_authentic: "likely_authentic";
884
+ inconclusive: "inconclusive";
885
+ likely_manipulated: "likely_manipulated";
886
+ manipulated: "manipulated";
887
+ ai_generated: "ai_generated";
888
+ deepfake: "deepfake";
889
+ composite: "composite";
890
+ }>;
891
+ confidence: z.ZodOptional<z.ZodEnum<{
892
+ high: "high";
893
+ medium: "medium";
894
+ low: "low";
895
+ }>>;
896
+ findings: z.ZodOptional<z.ZodString>;
897
+ reportUrl: z.ZodOptional<z.ZodString>;
898
+ }, z.core.$strip>>>;
899
+ provenanceChain: z.ZodOptional<z.ZodArray<z.ZodString>>;
900
+ manipulationDetected: z.ZodOptional<z.ZodBoolean>;
901
+ manipulationDescription: z.ZodOptional<z.ZodString>;
902
+ authenticityAssessment: z.ZodOptional<z.ZodEnum<{
903
+ unknown: "unknown";
904
+ authentic: "authentic";
905
+ likely_authentic: "likely_authentic";
906
+ inconclusive: "inconclusive";
907
+ likely_manipulated: "likely_manipulated";
908
+ manipulated: "manipulated";
909
+ ai_generated: "ai_generated";
910
+ deepfake: "deepfake";
911
+ composite: "composite";
912
+ }>>;
913
+ authenticityConfidence: z.ZodOptional<z.ZodEnum<{
914
+ high: "high";
915
+ medium: "medium";
916
+ low: "low";
917
+ unassessed: "unassessed";
918
+ }>>;
919
+ lastUpdated: z.ZodOptional<z.ZodString>;
920
+ notes: z.ZodOptional<z.ZodString>;
921
+ }, z.core.$strip>>;
922
+ }, z.core.$strip>>;
923
+ identifiers: z.ZodOptional<z.ZodObject<{
924
+ primary: z.ZodOptional<z.ZodObject<{
925
+ system: z.ZodEnum<{
926
+ custom: "custom";
927
+ url: "url";
928
+ nuforc: "nuforc";
929
+ mufon: "mufon";
930
+ geipan: "geipan";
931
+ cufos: "cufos";
932
+ nicap: "nicap";
933
+ bluebook: "bluebook";
934
+ nara: "nara";
935
+ foia: "foia";
936
+ aaro: "aaro";
937
+ congress: "congress";
938
+ doi: "doi";
939
+ arxiv: "arxiv";
940
+ orcid: "orcid";
941
+ pubmed: "pubmed";
942
+ isbn: "isbn";
943
+ issn: "issn";
944
+ youtube: "youtube";
945
+ vimeo: "vimeo";
946
+ internet_archive: "internet_archive";
947
+ wayback: "wayback";
948
+ uri: "uri";
949
+ }>;
950
+ systemName: z.ZodOptional<z.ZodString>;
951
+ value: z.ZodString;
952
+ url: z.ZodOptional<z.ZodString>;
953
+ verified: z.ZodOptional<z.ZodBoolean>;
954
+ verifiedDate: z.ZodOptional<z.ZodString>;
955
+ accessible: z.ZodOptional<z.ZodBoolean>;
956
+ accessCheckedDate: z.ZodOptional<z.ZodString>;
957
+ notes: z.ZodOptional<z.ZodString>;
958
+ }, z.core.$strip>>;
959
+ identifiers: z.ZodArray<z.ZodObject<{
960
+ system: z.ZodEnum<{
961
+ custom: "custom";
962
+ url: "url";
963
+ nuforc: "nuforc";
964
+ mufon: "mufon";
965
+ geipan: "geipan";
966
+ cufos: "cufos";
967
+ nicap: "nicap";
968
+ bluebook: "bluebook";
969
+ nara: "nara";
970
+ foia: "foia";
971
+ aaro: "aaro";
972
+ congress: "congress";
973
+ doi: "doi";
974
+ arxiv: "arxiv";
975
+ orcid: "orcid";
976
+ pubmed: "pubmed";
977
+ isbn: "isbn";
978
+ issn: "issn";
979
+ youtube: "youtube";
980
+ vimeo: "vimeo";
981
+ internet_archive: "internet_archive";
982
+ wayback: "wayback";
983
+ uri: "uri";
984
+ }>;
985
+ systemName: z.ZodOptional<z.ZodString>;
986
+ value: z.ZodString;
987
+ url: z.ZodOptional<z.ZodString>;
988
+ verified: z.ZodOptional<z.ZodBoolean>;
989
+ verifiedDate: z.ZodOptional<z.ZodString>;
990
+ accessible: z.ZodOptional<z.ZodBoolean>;
991
+ accessCheckedDate: z.ZodOptional<z.ZodString>;
992
+ notes: z.ZodOptional<z.ZodString>;
993
+ }, z.core.$strip>>;
994
+ }, z.core.$strip>>;
995
+ testimony: z.ZodOptional<z.ZodArray<z.ZodObject<{
996
+ statementId: z.ZodString;
997
+ witness: z.ZodObject<{
998
+ witnessId: z.ZodString;
999
+ category: z.ZodEnum<{
1000
+ unknown: "unknown";
1001
+ military_other: "military_other";
1002
+ military_pilot: "military_pilot";
1003
+ military_aircrew: "military_aircrew";
1004
+ military_ground: "military_ground";
1005
+ military_naval: "military_naval";
1006
+ military_radar_operator: "military_radar_operator";
1007
+ commercial_pilot: "commercial_pilot";
1008
+ commercial_aircrew: "commercial_aircrew";
1009
+ private_pilot: "private_pilot";
1010
+ air_traffic_controller: "air_traffic_controller";
1011
+ aviation_other: "aviation_other";
1012
+ government_official: "government_official";
1013
+ elected_official: "elected_official";
1014
+ intelligence_officer: "intelligence_officer";
1015
+ law_enforcement: "law_enforcement";
1016
+ scientist: "scientist";
1017
+ astronomer: "astronomer";
1018
+ meteorologist: "meteorologist";
1019
+ engineer: "engineer";
1020
+ medical_professional: "medical_professional";
1021
+ maritime: "maritime";
1022
+ civilian: "civilian";
1023
+ civilian_group: "civilian_group";
1024
+ anonymous: "anonymous";
1025
+ }>;
1026
+ anonymous: z.ZodBoolean;
1027
+ publicName: z.ZodOptional<z.ZodString>;
1028
+ pseudonym: z.ZodOptional<z.ZodString>;
1029
+ role: z.ZodOptional<z.ZodString>;
1030
+ organization: z.ZodOptional<z.ZodString>;
1031
+ experienceYears: z.ZodOptional<z.ZodNumber>;
1032
+ securityClearance: z.ZodOptional<z.ZodEnum<{
1033
+ unknown: "unknown";
1034
+ none: "none";
1035
+ confidential: "confidential";
1036
+ secret: "secret";
1037
+ top_secret: "top_secret";
1038
+ sci: "sci";
1039
+ }>>;
1040
+ credibility: z.ZodOptional<z.ZodObject<{
1041
+ rating: z.ZodOptional<z.ZodEnum<{
1042
+ high: "high";
1043
+ moderate: "moderate";
1044
+ low: "low";
1045
+ unassessed: "unassessed";
1046
+ very_high: "very_high";
1047
+ very_low: "very_low";
1048
+ }>>;
1049
+ factors: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1050
+ professional_training: "professional_training";
1051
+ official_capacity: "official_capacity";
1052
+ sworn_statement: "sworn_statement";
1053
+ contemporaneous_record: "contemporaneous_record";
1054
+ corroborating_witnesses: "corroborating_witnesses";
1055
+ corroborating_evidence: "corroborating_evidence";
1056
+ consistent_account: "consistent_account";
1057
+ no_apparent_motive: "no_apparent_motive";
1058
+ reputation_risk: "reputation_risk";
1059
+ security_clearance: "security_clearance";
1060
+ }>>>;
1061
+ detractors: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1062
+ anonymous: "anonymous";
1063
+ inconsistent_account: "inconsistent_account";
1064
+ delayed_report: "delayed_report";
1065
+ known_fabricator: "known_fabricator";
1066
+ financial_motive: "financial_motive";
1067
+ single_witness: "single_witness";
1068
+ impaired_state: "impaired_state";
1069
+ recovered_memory: "recovered_memory";
1070
+ }>>>;
1071
+ isProfessionalObserver: z.ZodOptional<z.ZodBoolean>;
1072
+ hasAviationExperience: z.ZodOptional<z.ZodBoolean>;
1073
+ hasMilitaryExperience: z.ZodOptional<z.ZodBoolean>;
1074
+ hasScientificBackground: z.ZodOptional<z.ZodBoolean>;
1075
+ hasPriorUAPKnowledge: z.ZodOptional<z.ZodBoolean>;
1076
+ wasSkepticPrior: z.ZodOptional<z.ZodBoolean>;
1077
+ underOathTestimony: z.ZodOptional<z.ZodBoolean>;
1078
+ polygraphAdministered: z.ZodOptional<z.ZodBoolean>;
1079
+ polygraphPassed: z.ZodOptional<z.ZodBoolean>;
1080
+ consistentTestimony: z.ZodOptional<z.ZodBoolean>;
1081
+ willingToBeIdentified: z.ZodOptional<z.ZodBoolean>;
1082
+ notes: z.ZodOptional<z.ZodString>;
1083
+ }, z.core.$strip>>;
1084
+ statementSummary: z.ZodOptional<z.ZodString>;
1085
+ interviewAvailable: z.ZodOptional<z.ZodBoolean>;
1086
+ writtenReportAvailable: z.ZodOptional<z.ZodBoolean>;
1087
+ }, z.core.$strip>;
1088
+ context: z.ZodEnum<{
1089
+ congressional_testimony: "congressional_testimony";
1090
+ sworn_affidavit: "sworn_affidavit";
1091
+ deposition: "deposition";
1092
+ official_interview: "official_interview";
1093
+ written_statement: "written_statement";
1094
+ recorded_interview: "recorded_interview";
1095
+ informal_account: "informal_account";
1096
+ anonymous_tip: "anonymous_tip";
1097
+ whistleblower_disclosure: "whistleblower_disclosure";
1098
+ }>;
1099
+ date: z.ZodObject<{
1100
+ date: z.ZodString;
1101
+ certainty: z.ZodEnum<{
1102
+ exact: "exact";
1103
+ approximate: "approximate";
1104
+ estimated: "estimated";
1105
+ unknown: "unknown";
1106
+ }>;
1107
+ }, z.core.$strip>;
1108
+ content: z.ZodOptional<z.ZodString>;
1109
+ summary: z.ZodOptional<z.ZodString>;
1110
+ sourceDocument: z.ZodOptional<z.ZodObject<{
1111
+ sourceId: z.ZodString;
1112
+ type: z.ZodEnum<{
1113
+ other: "other";
1114
+ foia: "foia";
1115
+ official_report: "official_report";
1116
+ official_statement: "official_statement";
1117
+ congressional_testimony: "congressional_testimony";
1118
+ congressional_report: "congressional_report";
1119
+ military_document: "military_document";
1120
+ intelligence_document: "intelligence_document";
1121
+ whistleblower: "whistleblower";
1122
+ firsthand_witness: "firsthand_witness";
1123
+ secondhand_account: "secondhand_account";
1124
+ news_article: "news_article";
1125
+ documentary: "documentary";
1126
+ interview: "interview";
1127
+ book: "book";
1128
+ academic_paper: "academic_paper";
1129
+ investigation_report: "investigation_report";
1130
+ database_entry: "database_entry";
1131
+ social_media: "social_media";
1132
+ website: "website";
1133
+ }>;
1134
+ title: z.ZodString;
1135
+ author: z.ZodOptional<z.ZodString>;
1136
+ organization: z.ZodOptional<z.ZodString>;
1137
+ date: z.ZodOptional<z.ZodString>;
1138
+ url: z.ZodOptional<z.ZodString>;
1139
+ archiveUrl: z.ZodOptional<z.ZodString>;
1140
+ reference: z.ZodOptional<z.ZodString>;
1141
+ credibility: z.ZodEnum<{
1142
+ unknown: "unknown";
1143
+ verified: "verified";
1144
+ unverified: "unverified";
1145
+ official: "official";
1146
+ credible: "credible";
1147
+ questionable: "questionable";
1148
+ disputed: "disputed";
1149
+ }>;
1150
+ isPrimarySource: z.ZodOptional<z.ZodBoolean>;
1151
+ classificationLevel: z.ZodOptional<z.ZodString>;
1152
+ notes: z.ZodOptional<z.ZodString>;
1153
+ }, z.core.$strip>>;
1154
+ chainOfCustody: z.ZodOptional<z.ZodEnum<{
1155
+ unknown: "unknown";
1156
+ destroyed: "destroyed";
1157
+ classified: "classified";
1158
+ verified: "verified";
1159
+ partial: "partial";
1160
+ unverified: "unverified";
1161
+ government_held: "government_held";
1162
+ private_held: "private_held";
1163
+ lost: "lost";
1164
+ }>>;
1165
+ additionalEvidenceIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1166
+ }, z.core.$strip>>>;
1167
+ physicalEvidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
1168
+ id: z.ZodString;
1169
+ type: z.ZodEnum<{
1170
+ other: "other";
1171
+ video: "video";
1172
+ material_sample: "material_sample";
1173
+ ground_trace: "ground_trace";
1174
+ radiation_reading: "radiation_reading";
1175
+ electromagnetic_recording: "electromagnetic_recording";
1176
+ photographic: "photographic";
1177
+ audio_recording: "audio_recording";
1178
+ biological_sample: "biological_sample";
1179
+ implant: "implant";
1180
+ debris: "debris";
1181
+ soil_sample: "soil_sample";
1182
+ water_sample: "water_sample";
1183
+ vegetation_sample: "vegetation_sample";
1184
+ impression: "impression";
1185
+ burn_mark: "burn_mark";
1186
+ }>;
1187
+ quality: z.ZodEnum<{
1188
+ unknown: "unknown";
1189
+ laboratory_grade: "laboratory_grade";
1190
+ field_collected: "field_collected";
1191
+ uncontrolled: "uncontrolled";
1192
+ degraded: "degraded";
1193
+ contaminated: "contaminated";
1194
+ }>;
1195
+ description: z.ZodOptional<z.ZodString>;
1196
+ collectionDate: z.ZodOptional<z.ZodString>;
1197
+ collectionMethod: z.ZodOptional<z.ZodString>;
1198
+ collectorName: z.ZodOptional<z.ZodString>;
1199
+ collectorOrganization: z.ZodOptional<z.ZodString>;
1200
+ storageLocation: z.ZodOptional<z.ZodString>;
1201
+ chainOfCustody: z.ZodOptional<z.ZodEnum<{
1202
+ unknown: "unknown";
1203
+ destroyed: "destroyed";
1204
+ classified: "classified";
1205
+ verified: "verified";
1206
+ partial: "partial";
1207
+ unverified: "unverified";
1208
+ government_held: "government_held";
1209
+ private_held: "private_held";
1210
+ lost: "lost";
1211
+ }>>;
1212
+ analysisPerformed: z.ZodOptional<z.ZodArray<z.ZodString>>;
1213
+ analysisResults: z.ZodOptional<z.ZodString>;
1214
+ photographed: z.ZodOptional<z.ZodBoolean>;
1215
+ labReport: z.ZodOptional<z.ZodBoolean>;
1216
+ notes: z.ZodOptional<z.ZodString>;
1217
+ }, z.core.$strip>>>;
1218
+ documents: z.ZodOptional<z.ZodArray<z.ZodObject<{
1219
+ documentType: z.ZodEnum<{
1220
+ other: "other";
1221
+ official_report: "official_report";
1222
+ foia_release: "foia_release";
1223
+ congressional_record: "congressional_record";
1224
+ military_memo: "military_memo";
1225
+ intelligence_assessment: "intelligence_assessment";
1226
+ inspector_general: "inspector_general";
1227
+ presidential_directive: "presidential_directive";
1228
+ executive_order: "executive_order";
1229
+ declassified_cable: "declassified_cable";
1230
+ investigation_file: "investigation_file";
1231
+ }>;
1232
+ classificationLevel: z.ZodOptional<z.ZodString>;
1233
+ originatingAgency: z.ZodOptional<z.ZodString>;
1234
+ controlNumbers: z.ZodOptional<z.ZodArray<z.ZodString>>;
1235
+ foiaRequestNumber: z.ZodOptional<z.ZodString>;
1236
+ declassificationDate: z.ZodOptional<z.ZodString>;
1237
+ originalClassification: z.ZodOptional<z.ZodString>;
1238
+ pageCount: z.ZodOptional<z.ZodNumber>;
1239
+ redactionLevel: z.ZodOptional<z.ZodEnum<{
1240
+ unknown: "unknown";
1241
+ none: "none";
1242
+ partial: "partial";
1243
+ heavy: "heavy";
1244
+ }>>;
1245
+ }, z.core.$strip>>>;
1246
+ dataSourceId: z.ZodOptional<z.ZodString>;
1247
+ schemaVersion: z.ZodOptional<z.ZodString>;
1248
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1249
+ internalNotes: z.ZodOptional<z.ZodString>;
1250
+ }, z.core.$strip>;
1251
+ /**
1252
+ * The primary record type. Core fields come from {@link ObservationSchema};
1253
+ * cross-package slots merge in via {@link ObservationExtensions} augmentation.
1254
+ */
1255
+ type Observation = z.infer<typeof ObservationSchema> & ObservationExtensions;
1256
+ type ObservationInput = Omit<Partial<Observation>, 'temporal' | 'location'> & {
1257
+ temporal: TemporalData;
1258
+ location: Partial<LocationData> & {
1259
+ name: string;
1260
+ country: string;
1261
+ longitude: number;
1262
+ latitude: number;
1263
+ siteType: LocationData['siteType'];
1264
+ };
1265
+ };
1266
+
1267
+ export { type Observation as O, type PublicationStatus as P, type ObservationExtensions as a, type ObservationInput as b, ObservationSchema as c, PublicationStatusSchema as d };