ochre-sdk 1.0.13 → 1.0.14

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 (51) hide show
  1. package/dist/constants.d.mts +17 -0
  2. package/dist/constants.mjs +85 -0
  3. package/dist/fetchers/gallery.d.mts +38 -0
  4. package/dist/fetchers/gallery.mjs +91 -0
  5. package/dist/fetchers/item-links.d.mts +32 -0
  6. package/dist/fetchers/item-links.mjs +120 -0
  7. package/dist/fetchers/item.d.mts +74 -0
  8. package/dist/fetchers/item.mjs +146 -0
  9. package/dist/fetchers/set/items.d.mts +48 -0
  10. package/dist/fetchers/set/items.mjs +268 -0
  11. package/dist/fetchers/set/property-values.d.mts +46 -0
  12. package/dist/fetchers/set/property-values.mjs +514 -0
  13. package/dist/fetchers/website.d.mts +25 -0
  14. package/dist/fetchers/website.mjs +38 -0
  15. package/dist/getters.d.mts +193 -0
  16. package/dist/getters.mjs +341 -0
  17. package/dist/helpers.d.mts +18 -0
  18. package/dist/helpers.mjs +33 -0
  19. package/dist/index.d.mts +12 -1971
  20. package/dist/index.mjs +9 -7236
  21. package/dist/parsers/helpers.d.mts +27 -0
  22. package/dist/parsers/helpers.mjs +53 -0
  23. package/dist/parsers/index.d.mts +65 -0
  24. package/dist/parsers/index.mjs +1338 -0
  25. package/dist/parsers/mdx.d.mts +4 -0
  26. package/dist/parsers/mdx.mjs +9 -0
  27. package/dist/parsers/multilingual.d.mts +189 -0
  28. package/dist/parsers/multilingual.mjs +410 -0
  29. package/dist/parsers/string.d.mts +29 -0
  30. package/dist/parsers/string.mjs +477 -0
  31. package/dist/parsers/website/index.d.mts +20 -0
  32. package/dist/parsers/website/index.mjs +1245 -0
  33. package/dist/parsers/website/reader.d.mts +29 -0
  34. package/dist/parsers/website/reader.mjs +75 -0
  35. package/dist/query.d.mts +13 -0
  36. package/dist/query.mjs +827 -0
  37. package/dist/schemas.d.mts +84 -0
  38. package/dist/schemas.mjs +232 -0
  39. package/dist/types/index.d.mts +840 -0
  40. package/dist/types/index.mjs +1 -0
  41. package/dist/types/website.d.mts +501 -0
  42. package/dist/types/website.mjs +1 -0
  43. package/dist/utils.d.mts +34 -0
  44. package/dist/utils.mjs +172 -0
  45. package/dist/xml/metadata.d.mts +5 -0
  46. package/dist/xml/metadata.mjs +30 -0
  47. package/dist/xml/schemas.d.mts +13 -0
  48. package/dist/xml/schemas.mjs +849 -0
  49. package/dist/xml/types.d.mts +901 -0
  50. package/dist/xml/types.mjs +1 -0
  51. package/package.json +19 -17
@@ -0,0 +1,849 @@
1
+ import { isPseudoUuid } from "../utils.mjs";
2
+ import * as v from "valibot";
3
+ import { isValid, parseISO } from "date-fns";
4
+ //#region src/xml/schemas.ts
5
+ function getXMLStringPayload(value) {
6
+ return typeof value === "string" ? value : value.payload ?? null;
7
+ }
8
+ function parseXMLDate(value) {
9
+ return parseISO(getXMLStringPayload(value)?.replace(" ", "T") ?? "");
10
+ }
11
+ function isXMLDate(value) {
12
+ return isValid(parseXMLDate(value));
13
+ }
14
+ function isXMLNumber(value) {
15
+ const payload = getXMLStringPayload(value);
16
+ return payload != null && !Number.isNaN(Number(payload));
17
+ }
18
+ function isOptionalXMLNumber(value) {
19
+ const payload = getXMLStringPayload(value);
20
+ return payload == null || payload === "" || !Number.isNaN(Number(payload));
21
+ }
22
+ function parseXMLNumber(value) {
23
+ return Number(getXMLStringPayload(value));
24
+ }
25
+ function parseOptionalXMLNumber(value) {
26
+ const payload = getXMLStringPayload(value);
27
+ return payload == null || payload === "" ? void 0 : Number(payload);
28
+ }
29
+ const ITEM_CATEGORIES = [
30
+ "tree",
31
+ "bibliography",
32
+ "spatialUnit",
33
+ "concept",
34
+ "period",
35
+ "person",
36
+ "propertyVariable",
37
+ "variable",
38
+ "propertyValue",
39
+ "value",
40
+ "resource",
41
+ "text",
42
+ "set"
43
+ ];
44
+ const XMLItemCategory = v.picklist(ITEM_CATEGORIES);
45
+ const XMLString = v.lazy(() => v.object({
46
+ payload: v.optional(v.string("XMLString: payload is string and optional")),
47
+ rend: v.optional(v.string("XMLString: rend is string and optional")),
48
+ whitespace: v.optional(v.string("XMLString: whitespace is string and optional")),
49
+ links: v.optional(v.lazy(() => XMLLink)),
50
+ properties: v.optional(v.object({ property: v.array(v.lazy(() => XMLProperty), "XMLString: properties is array of XMLProperty") })),
51
+ annotation: v.optional(v.string("XMLString: annotation is string and optional")),
52
+ string: v.optional(v.array(XMLString, "XMLString: string is array of XMLString"))
53
+ }, "XMLString: Shape error"));
54
+ const XMLContent = v.object({ content: v.array(v.object({
55
+ string: v.array(XMLString),
56
+ title: v.optional(v.string("XMLContent: title is string and optional")),
57
+ lang: v.string("XMLContent: lang is string and required")
58
+ }), "XMLContent: content is array of object with string, title, and lang") }, "XMLContent: Shape error");
59
+ const XMLNumber = v.pipe(v.union([v.string("XMLNumber: string is string and required"), XMLString]), v.check(isXMLNumber, "XMLNumber: string is not a number"), v.transform(parseXMLNumber));
60
+ const XMLOptionalNumber = v.optional(v.pipe(v.union([v.string("XMLNumber: string is string and required"), XMLString]), v.check(isOptionalXMLNumber, "XMLNumber: string is not a number"), v.transform(parseOptionalXMLNumber)));
61
+ const XMLBoolean = v.pipe(v.union([v.string("XMLBoolean: string is string and required"), XMLString]), v.check((val) => {
62
+ const payload = getXMLStringPayload(val);
63
+ return payload === "true" || payload === "false";
64
+ }, "XMLBoolean: string is not a boolean"), v.transform((val) => getXMLStringPayload(val) === "true"));
65
+ function customDateTime(message) {
66
+ return v.pipe(v.union([v.string(message), XMLString]), v.check(isXMLDate, message ?? "Invalid datetime format. Expected ISO date/time or YYYY-MM-DD HH:mm:ss"), v.transform(parseXMLDate));
67
+ }
68
+ const XMLIdentification = v.object({
69
+ label: v.union([XMLContent, XMLString]),
70
+ abbreviation: v.optional(v.union([XMLContent, XMLString])),
71
+ code: v.optional(v.union([XMLString, v.string("XMLIdentification: code is string and optional")])),
72
+ email: v.optional(v.union([XMLString, v.string("XMLIdentification: email is string and optional")])),
73
+ website: v.optional(v.union([XMLString, v.string("XMLIdentification: website is string and optional")]))
74
+ }, "XMLIdentification: Shape error");
75
+ const XMLMetadata = v.object({
76
+ dataset: XMLString,
77
+ description: XMLString,
78
+ publisher: v.union([XMLString, v.array(XMLString)]),
79
+ identifier: XMLString,
80
+ language: v.optional(v.array(v.object({
81
+ payload: v.string("XMLMetadata: language is string and required"),
82
+ default: v.optional(v.literal("true", "XMLMetadata: default is true"))
83
+ }, "XMLMetadata: language is array of object with payload and default"), "XMLMetadata: language is array of object with payload and default")),
84
+ project: v.optional(v.object({
85
+ uuid: v.optional(v.pipe(v.string("XMLMetadata: uuid is string and optional"), v.check(isPseudoUuid, "XMLMetadata: uuid is not a valid pseudo-UUID"))),
86
+ identification: XMLIdentification,
87
+ dateFormat: v.optional(v.string("XMLMetadata: dateFormat is string and optional")),
88
+ page: v.optional(v.picklist(["item", "entry"], "XMLMetadata: page is item or entry and optional"))
89
+ }, "XMLMetadata: project is object with uuid and identification")),
90
+ collection: v.optional(v.object({
91
+ uuid: v.pipe(v.string("XMLMetadata: uuid is string and required"), v.check(isPseudoUuid, "XMLMetadata: uuid is not a valid pseudo-UUID")),
92
+ identification: XMLIdentification,
93
+ page: v.picklist(["item", "entry"], "XMLMetadata: page is item or entry")
94
+ }, "XMLMetadata: collection is object with uuid, identification, and page")),
95
+ publication: v.optional(v.object({
96
+ uuid: v.pipe(v.string("XMLMetadata: uuid is string and required"), v.check(isPseudoUuid, "XMLMetadata: uuid is not a valid pseudo-UUID")),
97
+ identification: XMLIdentification,
98
+ page: v.picklist(["item", "entry"], "XMLMetadata: page is item or entry and required")
99
+ }, "XMLMetadata: publication is object with uuid, identification, and page")),
100
+ item: v.optional(v.object({
101
+ uuid: v.optional(v.pipe(v.string("XMLMetadata: uuid is string and optional"), v.check(isPseudoUuid, "XMLMetadata: uuid is not a valid pseudo-UUID"))),
102
+ identification: XMLIdentification,
103
+ category: XMLItemCategory,
104
+ type: v.string("XMLMetadata: type is string and required"),
105
+ maxLength: XMLOptionalNumber
106
+ }, "XMLMetadata: item is object with identification, category, type, and maxLength"))
107
+ });
108
+ const XMLLicense = v.object({
109
+ payload: v.string("XMLLicense: payload is string and required"),
110
+ target: v.optional(v.pipe(v.string("XMLLicense: target is string and optional"), v.url("XMLLicense: target is not a valid URL")))
111
+ }, "XMLLicense: Shape error");
112
+ const XMLContextValue = v.object({
113
+ uuid: v.optional(v.pipe(v.string("XMLContextValue: uuid is string and optional"), v.check(isPseudoUuid, "XMLContextValue: uuid is not a valid pseudo-UUID"))),
114
+ publicationDateTime: v.optional(customDateTime("XMLContextValue: publicationDateTime is not a valid datetime")),
115
+ n: XMLNumber,
116
+ payload: v.string("XMLContextValue: payload is string and required")
117
+ }, "XMLContextValue: Shape error");
118
+ const XMLContextItem = v.objectWithRest({
119
+ project: XMLContextValue,
120
+ tree: v.array(XMLContextValue),
121
+ displayPath: v.string("XMLContextItem: displayPath is string and required")
122
+ }, v.array(XMLContextValue), "XMLContextItem: Shape error");
123
+ const XMLEmptyContext = v.object({ payload: v.string("XMLEmptyContext: payload is string and required") }, "XMLEmptyContext: Shape error");
124
+ const XMLContextGroup = v.object({
125
+ context: v.array(v.union([XMLContextItem, XMLEmptyContext]), "XMLContextGroup: context is array of XMLContextItem or XMLEmptyContext"),
126
+ displayPath: v.string("XMLContextGroup: displayPath is string and required")
127
+ }, "XMLContextGroup: Shape error");
128
+ const XMLContext = v.array(v.union([XMLContextGroup, XMLEmptyContext], "XMLContext: item is XMLContextGroup or XMLEmptyContext"));
129
+ const XMLEvent = v.object({
130
+ dateTime: v.optional(customDateTime("XMLEvent: dateTime is not a valid datetime")),
131
+ endDateTime: v.optional(customDateTime("XMLEvent: endDateTime is not a valid datetime")),
132
+ agent: v.optional(v.object({
133
+ ...XMLContent.entries,
134
+ uuid: v.pipe(v.string("XMLEvent: uuid is string and required"), v.check(isPseudoUuid, "XMLEvent: uuid is not a valid pseudo-UUID")),
135
+ publicationDateTime: v.optional(customDateTime("XMLEvent: publicationDateTime is not a valid datetime"))
136
+ }, "XMLEvent: agent is object with uuid and payload")),
137
+ location: v.optional(v.object({
138
+ ...XMLContent.entries,
139
+ uuid: v.pipe(v.string("XMLEvent: uuid is string and required"), v.check(isPseudoUuid, "XMLEvent: uuid is not a valid pseudo-UUID")),
140
+ publicationDateTime: v.optional(customDateTime("XMLEvent: publicationDateTime is not a valid datetime"))
141
+ }, "XMLEvent: location is object with uuid")),
142
+ comment: v.optional(XMLContent),
143
+ label: XMLContent,
144
+ other: v.optional(v.object({
145
+ ...XMLContent.entries,
146
+ uuid: v.optional(v.pipe(v.string("XMLEvent: uuid is string and optional"), v.check(isPseudoUuid, "XMLEvent: uuid is not a valid pseudo-UUID"))),
147
+ category: v.optional(XMLItemCategory)
148
+ }, "XMLEvent: other is object"))
149
+ }, "XMLEvent: Shape error");
150
+ const XMLCoordinatesSourceLabel = v.object({
151
+ ...XMLContent.entries,
152
+ uuid: v.pipe(v.string("XMLCoordinatesSource: uuid is string and required"), v.check(isPseudoUuid, "XMLCoordinatesSource: uuid is not a valid UUID"))
153
+ }, "XMLCoordinatesSource: Shape error");
154
+ const XMLCoordinatesSourceValue = v.intersect([v.union([XMLContent, XMLString]), v.object({ uuid: v.optional(v.pipe(v.string("XMLCoordinatesSource: uuid is string and optional"), v.check(isPseudoUuid, "XMLCoordinatesSource: uuid is not a valid UUID"))) })]);
155
+ const XMLCoordinatesSource = v.variant("context", [
156
+ v.object({
157
+ context: v.literal("self", "XMLCoordinatesSource: context is self"),
158
+ label: XMLCoordinatesSourceLabel
159
+ }, "XMLCoordinatesSource: Shape error"),
160
+ v.object({
161
+ context: v.literal("related", "XMLCoordinatesSource: context is related"),
162
+ label: XMLCoordinatesSourceLabel,
163
+ value: v.array(XMLCoordinatesSourceValue)
164
+ }, "XMLCoordinatesSource: Shape error"),
165
+ v.object({
166
+ context: v.literal("inherited", "XMLCoordinatesSource: context is inherited"),
167
+ label: XMLCoordinatesSourceLabel,
168
+ value: v.optional(v.array(XMLCoordinatesSourceValue)),
169
+ item: v.object({
170
+ uuid: v.optional(v.pipe(v.string("XMLCoordinatesSource: uuid is string and optional"), v.check(isPseudoUuid, "XMLCoordinatesSource: uuid is not a valid UUID"))),
171
+ label: XMLCoordinatesSourceValue
172
+ }, "XMLCoordinatesSource: Shape error")
173
+ }, "XMLCoordinatesSource: Shape error")
174
+ ]);
175
+ const XMLCoordinate = v.variant("type", [v.object({
176
+ type: v.literal("point", "XMLCoordinates: type is point"),
177
+ latitude: XMLNumber,
178
+ longitude: XMLNumber,
179
+ altitude: XMLOptionalNumber,
180
+ source: v.optional(XMLCoordinatesSource)
181
+ }, "XMLCoordinates: Shape error"), v.object({
182
+ type: v.literal("plane", "XMLCoordinates: type is plane"),
183
+ minimum: v.object({
184
+ latitude: XMLNumber,
185
+ longitude: XMLNumber
186
+ }, "XMLCoordinates: minimum is object with latitude and longitude"),
187
+ maximum: v.object({
188
+ latitude: XMLNumber,
189
+ longitude: XMLNumber
190
+ }, "XMLCoordinates: maximum is object with latitude and longitude"),
191
+ source: v.optional(XMLCoordinatesSource)
192
+ }, "XMLCoordinates: Shape error")], "XMLCoordinates: Shape error");
193
+ const XMLCoordinates = v.object({ coord: v.array(XMLCoordinate) }, "XMLCoordinates: Shape error");
194
+ const XMLImage = v.object({
195
+ publicationDateTime: v.optional(customDateTime("XMLImage: publicationDateTime is not a valid datetime")),
196
+ identification: v.optional(XMLIdentification),
197
+ href: v.optional(v.pipe(v.string("XMLImage: href is string and optional"), v.url("XMLImage: href is not a valid URL"))),
198
+ htmlImgSrcPrefix: v.optional(v.string("XMLImage: htmlImgSrcPrefix is string and optional")),
199
+ height: XMLOptionalNumber,
200
+ width: XMLOptionalNumber,
201
+ fileSize: XMLOptionalNumber,
202
+ payload: v.optional(v.string("XMLImage: payload is string and optional"))
203
+ }, "XMLImage: Shape error");
204
+ const XMLImageMapArea = v.object({
205
+ uuid: v.pipe(v.string("XMLImageMapArea: uuid is string and required"), v.check(isPseudoUuid, "XMLImageMapArea: uuid is not a valid pseudo-UUID")),
206
+ publicationDateTime: customDateTime("XMLImageMapArea: publicationDateTime is not a valid datetime"),
207
+ type: v.string("XMLImageMapArea: type is string and required"),
208
+ title: v.string("XMLImageMapArea: title is string and required"),
209
+ slug: v.optional(v.string("XMLImageMapArea: slug is string and optional")),
210
+ shape: v.picklist([
211
+ "rect",
212
+ "circle",
213
+ "poly"
214
+ ], "XMLImageMapArea: shape is rect, circle, or poly"),
215
+ coords: v.string("XMLImageMapArea: coords is string and required")
216
+ }, "XMLImageMapArea: Shape error");
217
+ const XMLImageMap = v.object({
218
+ area: v.array(XMLImageMapArea, "XMLImageMap: area is array of XMLImageMapArea"),
219
+ width: XMLNumber,
220
+ height: XMLNumber
221
+ }, "XMLImageMap: Shape error");
222
+ const XMLNote = v.object({
223
+ content: v.optional(XMLContent.entries.content),
224
+ payload: v.optional(v.string("XMLNote: payload is string and optional")),
225
+ rend: v.optional(v.string("XMLNote: rend is string and optional")),
226
+ whitespace: v.optional(v.string("XMLNote: whitespace is string and optional")),
227
+ noteNo: XMLOptionalNumber,
228
+ title: v.optional(v.string("XMLNote: title is string and optional")),
229
+ date: v.optional(customDateTime("XMLNote: date is not a valid datetime")),
230
+ authors: v.optional(v.object({ author: v.array(v.lazy(() => XMLPerson)) }, "XMLNote: authors is object with author array of XMLPerson"))
231
+ }, "XMLNote: Shape error");
232
+ const XMLProperty = v.lazy(() => v.object({
233
+ label: v.intersect([v.union([XMLContent, XMLString]), v.object({
234
+ uuid: v.union([v.literal(""), v.pipe(v.string("XMLProperty: uuid is string and required"), v.check(isPseudoUuid, "XMLProperty: uuid is not a valid pseudo-UUID"))], "XMLProperty: uuid is string and required"),
235
+ publicationDateTime: v.optional(customDateTime("XMLProperty: publicationDateTime is not a valid datetime"))
236
+ }, "XMLProperty: label is object with uuid")]),
237
+ value: v.optional(v.array(v.object({
238
+ ...v.partial(XMLContent).entries,
239
+ i: XMLOptionalNumber,
240
+ inherited: v.optional(XMLBoolean),
241
+ uuid: v.optional(v.union([v.literal(""), v.pipe(v.string("XMLProperty: uuid is string and optional"), v.check(isPseudoUuid, "XMLProperty: uuid is not a valid pseudo-UUID"))])),
242
+ publicationDateTime: v.optional(customDateTime("XMLProperty: publicationDateTime is not a valid datetime")),
243
+ dataType: v.optional(v.string("XMLProperty: dataType is string and optional")),
244
+ category: v.optional(v.string("XMLProperty: category is string and optional")),
245
+ type: v.optional(v.string("XMLProperty: type is string and optional")),
246
+ slug: v.optional(v.string("XMLProperty: slug is string and optional")),
247
+ unit: v.optional(v.string("XMLProperty: unit is string and optional")),
248
+ height: XMLOptionalNumber,
249
+ width: XMLOptionalNumber,
250
+ fileSize: XMLOptionalNumber,
251
+ rawValue: v.optional(v.string("XMLProperty: rawValue is string and optional")),
252
+ isUncertain: v.optional(v.literal("true", "XMLProperty: isUncertain is true")),
253
+ href: v.optional(v.string("XMLProperty: href is string and optional")),
254
+ payload: v.optional(v.string("XMLProperty: payload is string and optional"))
255
+ }), "XMLProperty: value is array of objects with payload")),
256
+ comment: v.optional(XMLContent),
257
+ property: v.optional(v.array(XMLProperty, "XMLProperty: property is array of XMLProperty"))
258
+ }, "XMLProperty: Shape error"));
259
+ const XMLSimplifiedProperty = v.lazy(() => v.object({
260
+ label: v.intersect([v.union([XMLContent, XMLString]), v.object({
261
+ uuid: v.union([v.literal(""), v.pipe(v.string("XMLSimplifiedProperty: uuid is string and required"), v.check(isPseudoUuid, "XMLSimplifiedProperty: uuid is not a valid pseudo-UUID"))], "XMLSimplifiedProperty: uuid is string and required"),
262
+ publicationDateTime: v.optional(customDateTime("XMLSimplifiedProperty: publicationDateTime is not a valid datetime"))
263
+ }, "XMLSimplifiedProperty: label is object with uuid")]),
264
+ value: v.optional(v.array(v.object({
265
+ ...v.partial(XMLContent).entries,
266
+ i: XMLOptionalNumber,
267
+ inherited: v.optional(XMLBoolean),
268
+ uuid: v.optional(v.union([v.literal(""), v.pipe(v.string("XMLSimplifiedProperty: uuid is string and optional"), v.check(isPseudoUuid, "XMLSimplifiedProperty: uuid is not a valid pseudo-UUID"))])),
269
+ publicationDateTime: v.optional(customDateTime("XMLSimplifiedProperty: publicationDateTime is not a valid datetime")),
270
+ dataType: v.optional(v.string("XMLSimplifiedProperty: dataType is string and optional")),
271
+ category: v.optional(v.string("XMLSimplifiedProperty: category is string and optional")),
272
+ type: v.optional(v.string("XMLSimplifiedProperty: type is string and optional")),
273
+ slug: v.optional(v.string("XMLSimplifiedProperty: slug is string and optional")),
274
+ unit: v.optional(v.string("XMLSimplifiedProperty: unit is string and optional")),
275
+ height: XMLOptionalNumber,
276
+ width: XMLOptionalNumber,
277
+ fileSize: XMLOptionalNumber,
278
+ rawValue: v.optional(v.string("XMLSimplifiedProperty: rawValue is string and optional")),
279
+ isUncertain: v.optional(v.literal("true", "XMLSimplifiedProperty: isUncertain is true")),
280
+ href: v.optional(v.string("XMLSimplifiedProperty: href is string and optional")),
281
+ payload: v.optional(v.string("XMLSimplifiedProperty: payload is string"))
282
+ }), "XMLSimplifiedProperty: value is array of objects with payload")),
283
+ comment: v.optional(XMLContent),
284
+ property: v.optional(v.array(XMLSimplifiedProperty, "XMLSimplifiedProperty: property is array of XMLSimplifiedProperty"))
285
+ }, "XMLSimplifiedProperty: Shape error"));
286
+ const XMLBaseItem = v.object({
287
+ uuid: v.pipe(v.string("XMLBaseItem: uuid is string and required"), v.check(isPseudoUuid, "XMLBaseItem: uuid is not a valid pseudo-UUID")),
288
+ publicationDateTime: v.optional(customDateTime("XMLBaseItem: publicationDateTime is not a valid datetime")),
289
+ date: v.optional(v.union([customDateTime(), XMLString])),
290
+ availability: v.optional(v.object({ license: XMLLicense })),
291
+ copyright: v.optional(v.union([XMLContent, XMLString])),
292
+ watermark: v.optional(v.union([XMLContent, XMLString])),
293
+ identification: XMLIdentification,
294
+ context: v.optional(XMLContext),
295
+ creators: v.optional(v.object({ creator: v.array(v.lazy(() => XMLPerson)) }, "XMLBaseItem: creators is object with creator array of XMLPerson")),
296
+ description: v.optional(XMLContent),
297
+ events: v.optional(v.object({ event: v.array(XMLEvent) }, "XMLBaseItem: events is object with event array of XMLEvent"))
298
+ }, "XMLBaseItem: Shape error");
299
+ const XMLLinkedBaseItem = v.object({
300
+ ...v.partial(XMLBaseItem).entries,
301
+ uuid: v.pipe(v.string("XMLLinkedBaseItem: uuid is string and required"), v.check(isPseudoUuid, "XMLLinkedBaseItem: uuid is not a valid pseudo-UUID"))
302
+ }, "XMLLinkedBaseItem: Shape error");
303
+ const XMLLinkedTree = v.object({
304
+ ...XMLLinkedBaseItem.entries,
305
+ type: v.optional(v.string("XMLLinkedTree: type is string and optional"))
306
+ }, "XMLLinkedTree: Shape error");
307
+ const XMLLinkedSet = v.object({
308
+ ...XMLLinkedBaseItem.entries,
309
+ type: v.optional(v.string("XMLLinkedSet: type is string and optional"))
310
+ }, "XMLLinkedSet: Shape error");
311
+ const XMLLinkedConcept = v.object({
312
+ ...XMLLinkedBaseItem.entries,
313
+ image: v.optional(XMLImage),
314
+ coordinates: v.optional(XMLCoordinates)
315
+ }, "XMLLinkedConcept: Shape error");
316
+ const XMLLinkedSpatialUnit = v.object({
317
+ ...XMLLinkedBaseItem.entries,
318
+ image: v.optional(XMLImage),
319
+ coordinates: v.optional(XMLCoordinates)
320
+ }, "XMLLinkedSpatialUnit: Shape error");
321
+ const XMLLinkedPeriod = v.object({
322
+ ...XMLLinkedBaseItem.entries,
323
+ type: v.optional(v.string("XMLLinkedPeriod: type is string and optional")),
324
+ coordinates: v.optional(XMLCoordinates)
325
+ }, "XMLLinkedPeriod: Shape error");
326
+ const XMLLinkedPerson = v.object({
327
+ ...XMLLinkedBaseItem.entries,
328
+ type: v.optional(v.string("XMLLinkedPerson: type is string and optional")),
329
+ coordinates: v.optional(XMLCoordinates)
330
+ }, "XMLLinkedPerson: Shape error");
331
+ const XMLLinkedPropertyVariable = v.object({
332
+ ...XMLLinkedBaseItem.entries,
333
+ type: v.optional(v.string("XMLLinkedPropertyVariable: type is string and optional")),
334
+ coordinates: v.optional(XMLCoordinates)
335
+ }, "XMLLinkedPropertyVariable: Shape error");
336
+ const XMLLinkedPropertyValue = v.object({
337
+ ...XMLLinkedBaseItem.entries,
338
+ coordinates: v.optional(XMLCoordinates)
339
+ }, "XMLLinkedPropertyValue: Shape error");
340
+ const XMLLinkedResource = v.object({
341
+ ...XMLLinkedBaseItem.entries,
342
+ type: v.optional(v.string("XMLLinkedResource: type is string and optional")),
343
+ date: v.optional(v.union([customDateTime("XMLLinkedResource: date is not a valid datetime"), XMLString])),
344
+ href: v.optional(v.string("XMLLinkedResource: href is string and optional")),
345
+ fileFormat: v.optional(v.string("XMLLinkedResource: fileFormat is string and optional")),
346
+ fileSize: XMLOptionalNumber,
347
+ rend: v.optional(v.literal("inline", "XMLLinkedResource: rend is inline")),
348
+ isPrimary: v.optional(XMLBoolean),
349
+ height: XMLOptionalNumber,
350
+ width: XMLOptionalNumber,
351
+ image: v.optional(XMLImage),
352
+ coordinates: v.optional(XMLCoordinates)
353
+ }, "XMLLinkedResource: Shape error");
354
+ const XMLLinkedText = v.object({
355
+ ...XMLLinkedBaseItem.entries,
356
+ type: v.optional(v.string("XMLLinkedText: type is string and optional")),
357
+ text: v.optional(v.string("XMLLinkedText: text is string and optional")),
358
+ language: v.optional(v.string("XMLLinkedText: language is string and optional")),
359
+ image: v.optional(XMLImage),
360
+ coordinates: v.optional(XMLCoordinates)
361
+ }, "XMLLinkedText: Shape error");
362
+ const XMLDictionaryUnit = v.object({ ...XMLLinkedBaseItem.entries }, "XMLDictionaryUnit: Shape error");
363
+ const XMLLinkedBibliography = v.object({
364
+ ...XMLLinkedBaseItem.entries,
365
+ type: v.optional(v.string("XMLLinkedBibliography: type is string and optional")),
366
+ zoteroId: v.optional(v.string("XMLLinkedBibliography: zoteroId is string and optional")),
367
+ sourceDocument: v.optional(v.object({
368
+ uuid: v.pipe(v.string("XMLLinkedBibliography: uuid is string and required"), v.check(isPseudoUuid, "XMLLinkedBibliography: uuid is not a valid pseudo-UUID")),
369
+ payload: v.string("XMLLinkedBibliography: payload is string and required"),
370
+ href: v.optional(v.string("XMLLinkedBibliography: href is string and optional")),
371
+ publicationDateTime: v.optional(customDateTime("XMLLinkedBibliography: publicationDateTime is not a valid datetime"))
372
+ }, "XMLLinkedBibliography: sourceDocument is object with uuid and payload")),
373
+ image: v.optional(XMLImage),
374
+ publicationInfo: v.optional(v.object({
375
+ publishers: v.optional(v.union([v.object({ publisher: v.array(v.lazy(() => XMLLinkedPerson)) }), v.object({ publishers: v.object({ person: v.array(v.lazy(() => XMLLinkedPerson)) }) })])),
376
+ startDate: v.optional(v.object({
377
+ month: XMLOptionalNumber,
378
+ year: XMLOptionalNumber,
379
+ day: XMLOptionalNumber
380
+ }))
381
+ }, "XMLLinkedBibliography: publicationInfo is object with publishers and startDate")),
382
+ entryInfo: v.optional(v.object({
383
+ payload: v.optional(v.string("XMLLinkedBibliography: payload is string and optional")),
384
+ startIssue: v.optional(v.string("XMLLinkedBibliography: startIssue is string and optional")),
385
+ startVolume: v.optional(v.string("XMLLinkedBibliography: startVolume is string and optional")),
386
+ startPage: v.optional(v.string("XMLLinkedBibliography: startPage is string and optional")),
387
+ endPage: v.optional(v.string("XMLLinkedBibliography: endPage is string and optional"))
388
+ }, "XMLLinkedBibliography: entryInfo is object")),
389
+ citationDetails: v.optional(v.string("XMLLinkedBibliography: citationDetails is string and optional")),
390
+ citationFormat: v.optional(v.union([XMLString, v.string()])),
391
+ citationFormatSpan: v.optional(XMLString),
392
+ referenceFormatDiv: v.optional(XMLString),
393
+ source: v.optional(v.union([v.lazy(() => XMLLink), v.lazy(() => XMLDataItem)])),
394
+ authors: v.optional(v.object({ person: v.array(v.lazy(() => XMLLinkedPerson)) })),
395
+ periods: v.optional(v.object({ period: v.array(v.lazy(() => XMLLinkedPeriod)) })),
396
+ properties: v.optional(v.object({ property: v.array(XMLProperty) }))
397
+ }, "XMLLinkedBibliography: Shape error");
398
+ const XMLHeading = v.intersect([v.object({
399
+ name: v.string("XMLHeading: name is string and required"),
400
+ abbreviation: v.optional(v.string("XMLHeading: abbreviation is string and optional")),
401
+ heading: v.optional(v.array(v.lazy(() => XMLHeading)))
402
+ }, "XMLHeading: Shape error"), v.union([
403
+ v.optional(v.object({ person: v.array(v.lazy(() => XMLPerson)) })),
404
+ v.optional(v.object({ propertyVariable: v.array(v.lazy(() => XMLPropertyVariable)) })),
405
+ v.optional(v.object({ variable: v.array(v.lazy(() => XMLPropertyVariable)) })),
406
+ v.optional(v.object({ propertyValue: v.array(v.lazy(() => XMLPropertyValue)) })),
407
+ v.optional(v.object({ resource: v.array(v.union([v.lazy(() => XMLResource), v.object({ resource: v.array(v.lazy(() => XMLResource)) })])) })),
408
+ v.optional(v.object({ text: v.array(v.lazy(() => XMLText)) })),
409
+ v.optional(v.object({ set: v.array(v.lazy(() => XMLSet)) }))
410
+ ])]);
411
+ const XMLTree = v.object({
412
+ ...XMLBaseItem.entries,
413
+ date: v.optional(v.union([customDateTime("XMLTree: date is not a valid datetime"), XMLString])),
414
+ links: v.optional(v.lazy(() => XMLLink)),
415
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
416
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
417
+ bibliographies: v.optional(v.object({ bibliography: v.array(v.lazy(() => XMLBibliography)) })),
418
+ items: v.optional(v.object({
419
+ heading: v.optional(v.array(v.lazy(() => XMLHeading))),
420
+ bibliography: v.optional(v.array(v.lazy(() => XMLBibliography))),
421
+ concept: v.optional(v.array(v.lazy(() => XMLConcept))),
422
+ spatialUnit: v.optional(v.array(v.lazy(() => XMLSpatialUnit))),
423
+ period: v.optional(v.array(v.lazy(() => XMLPeriod))),
424
+ person: v.optional(v.array(v.lazy(() => XMLPerson))),
425
+ propertyVariable: v.optional(v.array(v.lazy(() => XMLPropertyVariable))),
426
+ variable: v.optional(v.array(v.lazy(() => XMLPropertyVariable))),
427
+ propertyValue: v.optional(v.array(v.lazy(() => XMLPropertyValue))),
428
+ resource: v.optional(v.array(v.union([v.lazy(() => XMLResource), v.object({ resource: v.array(v.lazy(() => XMLResource)) })]))),
429
+ text: v.optional(v.array(v.lazy(() => XMLText))),
430
+ set: v.optional(v.array(v.lazy(() => XMLSet)))
431
+ }))
432
+ }, "XMLTree: Shape error");
433
+ const XMLSet = v.object({
434
+ ...XMLBaseItem.entries,
435
+ type: v.optional(v.string("XMLSet: type is string and optional")),
436
+ suppressBlanks: v.optional(XMLBoolean),
437
+ tabularStructure: v.optional(XMLBoolean),
438
+ links: v.optional(v.lazy(() => XMLLink)),
439
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
440
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
441
+ items: v.optional(v.object({
442
+ tree: v.optional(v.array(v.lazy(() => XMLTree))),
443
+ bibliography: v.optional(v.array(v.lazy(() => XMLBibliography))),
444
+ concept: v.optional(v.array(v.lazy(() => XMLConcept))),
445
+ spatialUnit: v.optional(v.array(v.lazy(() => XMLSpatialUnit))),
446
+ period: v.optional(v.array(v.lazy(() => XMLPeriod))),
447
+ person: v.optional(v.array(v.lazy(() => XMLPerson))),
448
+ propertyVariable: v.optional(v.array(v.lazy(() => XMLPropertyVariable))),
449
+ variable: v.optional(v.array(v.lazy(() => XMLPropertyVariable))),
450
+ propertyValue: v.optional(v.array(v.lazy(() => XMLPropertyValue))),
451
+ resource: v.optional(v.array(v.union([v.lazy(() => XMLResource), v.object({ resource: v.array(v.lazy(() => XMLResource)) })]))),
452
+ text: v.optional(v.array(v.lazy(() => XMLText))),
453
+ set: v.optional(v.array(v.lazy(() => XMLSet)))
454
+ }))
455
+ }, "XMLSet: Shape error");
456
+ const XMLBibliography = v.object({
457
+ ...v.partial(XMLBaseItem).entries,
458
+ type: v.optional(v.string("XMLBibliography: type is string and optional")),
459
+ zoteroId: v.optional(v.string("XMLBibliography: zoteroId is string and optional")),
460
+ sourceDocument: v.optional(v.object({
461
+ uuid: v.pipe(v.string("XMLBibliography: uuid is string and required"), v.check(isPseudoUuid, "XMLBibliography: uuid is not a valid pseudo-UUID")),
462
+ payload: v.string("XMLBibliography: payload is string and required"),
463
+ href: v.optional(v.string("XMLBibliography: href is string and optional")),
464
+ publicationDateTime: v.optional(customDateTime("XMLBibliography: publicationDateTime is not a valid datetime"))
465
+ }, "XMLBibliography: sourceDocument is object with uuid and payload")),
466
+ image: v.optional(XMLImage),
467
+ publicationInfo: v.optional(v.object({
468
+ publishers: v.optional(v.union([v.object({ publisher: v.array(v.lazy(() => XMLPerson)) }), v.object({ publishers: v.object({ person: v.array(v.lazy(() => XMLPerson)) }) })])),
469
+ startDate: v.optional(v.object({
470
+ month: XMLOptionalNumber,
471
+ year: XMLOptionalNumber,
472
+ day: XMLOptionalNumber
473
+ }))
474
+ }, "XMLBibliography: publicationInfo is object with publishers and startDate")),
475
+ entryInfo: v.optional(v.object({
476
+ payload: v.optional(v.string("XMLBibliography: payload is string and optional")),
477
+ startIssue: v.optional(v.string("XMLBibliography: startIssue is string and optional")),
478
+ startVolume: v.optional(v.string("XMLBibliography: startVolume is string and optional")),
479
+ startPage: v.optional(v.string("XMLBibliography: startPage is string and optional")),
480
+ endPage: v.optional(v.string("XMLBibliography: endPage is string and optional"))
481
+ }, "XMLBibliography: entryInfo is object")),
482
+ citationDetails: v.optional(v.string("XMLBibliography: citationDetails is string and optional")),
483
+ citationFormat: v.optional(v.union([XMLString, v.string()])),
484
+ citationFormatSpan: v.optional(XMLString),
485
+ referenceFormatDiv: v.optional(XMLString),
486
+ source: v.optional(v.lazy(() => XMLDataItem)),
487
+ authors: v.optional(v.object({ person: v.array(v.lazy(() => XMLPerson)) })),
488
+ periods: v.optional(v.object({ period: v.array(v.lazy(() => XMLPeriod)) })),
489
+ links: v.optional(v.lazy(() => XMLLink)),
490
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
491
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
492
+ bibliographies: v.optional(v.object({ bibliography: v.array(v.lazy(() => XMLBibliography)) })),
493
+ bibliography: v.optional(v.array(v.lazy(() => XMLBibliography)))
494
+ }, "XMLBibliography: Shape error");
495
+ const XMLInterpretation = v.object({
496
+ interpretationNo: XMLNumber,
497
+ date: v.optional(customDateTime("XMLInterpretation: date is not a valid datetime")),
498
+ observers: v.optional(v.object({ observer: v.array(v.lazy(() => XMLPerson)) })),
499
+ periods: v.optional(v.object({ period: v.array(v.lazy(() => XMLPeriod)) })),
500
+ links: v.optional(v.lazy(() => XMLLink)),
501
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
502
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
503
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) }))
504
+ }, "XMLInterpretation: Shape error");
505
+ const XMLConcept = v.object({
506
+ ...XMLBaseItem.entries,
507
+ image: v.optional(XMLImage),
508
+ interpretations: v.optional(v.object({ interpretation: v.array(XMLInterpretation) })),
509
+ coordinates: v.optional(XMLCoordinates),
510
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
511
+ concept: v.optional(v.array(v.lazy(() => XMLConcept)))
512
+ }, "XMLConcept: Shape error");
513
+ const XMLObservation = v.object({
514
+ observationNo: XMLNumber,
515
+ date: v.optional(customDateTime("XMLObservation: date is not a valid datetime")),
516
+ observers: v.optional(v.object({ observer: v.array(v.lazy(() => XMLPerson)) })),
517
+ periods: v.optional(v.object({ period: v.array(v.lazy(() => XMLPeriod)) })),
518
+ links: v.optional(v.lazy(() => XMLLink)),
519
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
520
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
521
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) }))
522
+ }, "XMLObservation: Shape error");
523
+ const XMLSpatialUnit = v.object({
524
+ ...XMLBaseItem.entries,
525
+ image: v.optional(XMLImage),
526
+ coordinates: v.optional(XMLCoordinates),
527
+ mapData: v.optional(v.object({ geoJSON: v.object({
528
+ multiPolygon: v.object({ payload: v.string("XMLSpatialUnit: multiPolygon is string and required") }),
529
+ EPSG: XMLNumber
530
+ }) }, "XMLSpatialUnit: mapData is object with geoJSON")),
531
+ observations: v.optional(v.object({ observation: v.array(XMLObservation) })),
532
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
533
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) })),
534
+ spatialUnit: v.optional(v.array(v.lazy(() => XMLSpatialUnit)))
535
+ }, "XMLSpatialUnit: Shape error");
536
+ const XMLPeriod = v.object({
537
+ ...XMLBaseItem.entries,
538
+ type: v.optional(v.string("XMLPeriod: type is string and optional")),
539
+ coordinates: v.optional(XMLCoordinates),
540
+ links: v.optional(v.lazy(() => XMLDataItem)),
541
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
542
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
543
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) })),
544
+ period: v.optional(v.array(v.lazy(() => XMLPeriod)))
545
+ }, "XMLPeriod: Shape error");
546
+ const XMLPerson = v.object({
547
+ ...XMLBaseItem.entries,
548
+ ...v.partial(XMLContent).entries,
549
+ type: v.optional(v.string("XMLPerson: type is string and optional")),
550
+ image: v.optional(XMLImage),
551
+ address: v.optional(v.object({
552
+ country: v.optional(v.union([XMLString, v.string("XMLPerson: country is string and optional")])),
553
+ city: v.optional(v.union([XMLString, v.string("XMLPerson: city is string and optional")])),
554
+ state: v.optional(v.union([XMLString, v.string("XMLPerson: state is string and optional")])),
555
+ postalCode: v.optional(v.union([XMLString, v.string("XMLPerson: postalCode is string and optional")]))
556
+ }, "XMLPerson: address is object with country, city, and state")),
557
+ coordinates: v.optional(XMLCoordinates),
558
+ periods: v.optional(v.object({ period: v.array(XMLPeriod) })),
559
+ links: v.optional(v.lazy(() => XMLLink)),
560
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
561
+ properties: v.optional(v.object({ property: v.array(XMLProperty) }))
562
+ }, "XMLPerson: Shape error");
563
+ const XMLPropertyValue = v.object({
564
+ ...XMLBaseItem.entries,
565
+ coordinates: v.optional(XMLCoordinates),
566
+ links: v.optional(v.lazy(() => XMLLink)),
567
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
568
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
569
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) }))
570
+ }, "XMLPropertyValue: Shape error");
571
+ const XMLPropertyVariable = v.object({
572
+ ...XMLBaseItem.entries,
573
+ type: v.optional(v.string("XMLPropertyVariable: type is string and optional")),
574
+ coordinates: v.optional(XMLCoordinates),
575
+ links: v.optional(v.lazy(() => XMLLink)),
576
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
577
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) }))
578
+ }, "XMLPropertyVariable: Shape error");
579
+ const XMLResource = v.object({
580
+ ...XMLBaseItem.entries,
581
+ type: v.optional(v.string("XMLResource: type is string and optional")),
582
+ date: v.optional(v.union([customDateTime("XMLResource: date is not a valid datetime"), XMLString])),
583
+ href: v.optional(v.pipe(v.string("XMLResource: href is string and optional"), v.url("XMLResource: href is not a valid URL"))),
584
+ fileFormat: v.optional(v.string("XMLResource: fileFormat is string and optional")),
585
+ fileSize: XMLOptionalNumber,
586
+ rend: v.optional(v.literal("inline", "XMLResource: rend is inline")),
587
+ height: XMLOptionalNumber,
588
+ width: XMLOptionalNumber,
589
+ image: v.optional(XMLImage),
590
+ imagemap: v.optional(XMLImageMap),
591
+ document: v.optional(XMLContent),
592
+ coordinates: v.optional(XMLCoordinates),
593
+ periods: v.optional(v.object({ period: v.array(XMLPeriod) })),
594
+ links: v.optional(v.lazy(() => XMLLink)),
595
+ reverseLinks: v.optional(v.union([
596
+ v.lazy(() => XMLLink),
597
+ v.lazy(() => XMLDataItem),
598
+ v.array(v.union([v.lazy(() => XMLLink), v.lazy(() => XMLDataItem)]))
599
+ ])),
600
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
601
+ properties: v.optional(v.object({ property: v.array(XMLProperty) })),
602
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) })),
603
+ resource: v.optional(v.array(v.lazy(() => XMLResource))),
604
+ view: v.optional(v.object({ resource: v.optional(v.array(v.lazy(() => XMLWebsiteResource))) }))
605
+ }, "XMLResource: Shape error");
606
+ const XMLSection = v.object({
607
+ uuid: v.pipe(v.string("XMLSection: uuid is string and required"), v.check(isPseudoUuid, "XMLSection: uuid is not a valid pseudo-UUID")),
608
+ publicationDateTime: v.optional(customDateTime("XMLSection: publicationDateTime is not a valid datetime")),
609
+ type: v.string("XMLSection: type is string and required"),
610
+ identification: XMLIdentification,
611
+ project: v.optional(v.object({ identification: XMLIdentification }))
612
+ }, "XMLSection: Shape error");
613
+ const XMLText = v.object({
614
+ ...XMLBaseItem.entries,
615
+ type: v.optional(v.string("XMLText: type is string and optional")),
616
+ text: v.optional(v.string("XMLText: text is string and optional")),
617
+ language: v.optional(v.string("XMLText: language is string and optional")),
618
+ image: v.optional(XMLImage),
619
+ coordinates: v.optional(XMLCoordinates),
620
+ links: v.optional(v.lazy(() => XMLLink)),
621
+ reverseLinks: v.optional(v.union([
622
+ v.lazy(() => XMLLink),
623
+ v.lazy(() => XMLDataItem),
624
+ v.array(v.union([v.lazy(() => XMLLink), v.lazy(() => XMLDataItem)]))
625
+ ])),
626
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
627
+ sections: v.optional(v.union([XMLString, v.object({
628
+ translation: v.optional(v.array(v.object({ section: v.array(XMLSection) }))),
629
+ phonemic: v.optional(v.array(v.object({ section: v.array(XMLSection) })))
630
+ })])),
631
+ periods: v.optional(v.object({ period: v.array(XMLPeriod) })),
632
+ creators: v.optional(v.object({ creator: v.array(v.lazy(() => XMLPerson)) }, "XMLText: creators is object with creator array of XMLPerson")),
633
+ editions: v.optional(v.object({
634
+ edition: v.optional(v.array(v.lazy(() => XMLPerson))),
635
+ editor: v.optional(v.array(v.lazy(() => XMLPerson))),
636
+ publisher: v.optional(v.array(v.lazy(() => XMLPerson)))
637
+ }, "XMLText: editions is object with edition array of XMLPerson"))
638
+ }, "XMLText: Shape error");
639
+ const XMLLink = v.pipe(v.object({
640
+ tree: v.optional(v.array(XMLLinkedTree)),
641
+ bibliography: v.optional(v.array(XMLLinkedBibliography)),
642
+ concept: v.optional(v.array(XMLLinkedConcept)),
643
+ spatialUnit: v.optional(v.array(XMLLinkedSpatialUnit)),
644
+ period: v.optional(v.array(XMLLinkedPeriod)),
645
+ person: v.optional(v.array(XMLLinkedPerson)),
646
+ propertyVariable: v.optional(v.array(XMLLinkedPropertyVariable)),
647
+ variable: v.optional(v.array(XMLLinkedPropertyVariable)),
648
+ propertyValue: v.optional(v.array(XMLLinkedPropertyValue)),
649
+ value: v.optional(v.array(XMLLinkedPropertyValue)),
650
+ resource: v.optional(v.array(XMLLinkedResource)),
651
+ text: v.optional(v.array(XMLLinkedText)),
652
+ set: v.optional(v.array(XMLLinkedSet)),
653
+ dictionaryUnit: v.optional(v.array(XMLDictionaryUnit))
654
+ }, "XMLLink: Shape error"), v.check((val) => {
655
+ if (Object.keys(val).length > 0) return true;
656
+ for (const knownCategory of ITEM_CATEGORIES) if (val[knownCategory] != null) return true;
657
+ return false;
658
+ }, "XMLLink: at least one link category is required"));
659
+ const XMLWebsiteContextLevel = v.intersect([XMLString, v.object({
660
+ payload: v.string("XMLWebsiteContextLevel: payload is required"),
661
+ dataType: v.optional(v.string("XMLWebsiteContextLevel: dataType is optional string"))
662
+ }, "XMLWebsiteContextLevel: Shape error")]);
663
+ const XMLWebsiteContextItem = v.object({
664
+ identification: XMLIdentification,
665
+ levels: v.optional(v.object({ level: v.array(XMLWebsiteContextLevel) }, "XMLWebsiteContextItem: levels is object with level"))
666
+ }, "XMLWebsiteContextItem: Shape error");
667
+ const XMLWebsiteFilterContextItem = v.object({
668
+ identification: XMLIdentification,
669
+ levels: v.optional(v.object({ level: v.array(XMLWebsiteContextLevel) }, "XMLWebsiteFilterContextItem: levels is object with level")),
670
+ filterType: v.optional(v.picklist([
671
+ "property",
672
+ "coordinates",
673
+ "bibliography",
674
+ "period"
675
+ ], "XMLWebsiteFilterContextItem: filterType is invalid")),
676
+ filterOption: v.optional(v.picklist([
677
+ "inline-displayed",
678
+ "inline-sidebar-displayed-closed",
679
+ "inline-sidebar-displayed-open",
680
+ "sidebar-displayed-closed",
681
+ "sidebar-displayed-open",
682
+ "inline-sidebar-hidden"
683
+ ], "XMLWebsiteFilterContextItem: filterOption is invalid"))
684
+ }, "XMLWebsiteFilterContextItem: Shape error");
685
+ const XMLWebsiteContext = v.object({ context: v.array(XMLWebsiteContextItem) }, "XMLWebsiteContext: Shape error");
686
+ const XMLWebsiteFilterContext = v.object({ context: v.array(XMLWebsiteFilterContextItem) }, "XMLWebsiteFilterContext: Shape error");
687
+ const XMLWebsiteScope = v.object({
688
+ uuid: v.intersect([XMLString, v.object({
689
+ payload: v.pipe(v.string("XMLWebsiteScope: uuid payload is required"), v.check(isPseudoUuid, "XMLWebsiteScope: uuid payload is not a valid pseudo-UUID")),
690
+ type: v.string("XMLWebsiteScope: type is required")
691
+ }, "XMLWebsiteScope: uuid is object with payload and type")]),
692
+ identification: XMLIdentification
693
+ }, "XMLWebsiteScope: Shape error");
694
+ const XMLWebsiteOptions = v.object({
695
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
696
+ scopes: v.optional(v.object({ scope: v.array(XMLWebsiteScope) })),
697
+ flattenContexts: v.optional(v.array(XMLWebsiteContext)),
698
+ suppressContexts: v.optional(v.array(XMLWebsiteContext)),
699
+ filterContexts: v.optional(v.array(XMLWebsiteFilterContext)),
700
+ sortContexts: v.optional(v.array(XMLWebsiteContext)),
701
+ detailContexts: v.optional(v.array(XMLWebsiteContext)),
702
+ downloadContexts: v.optional(v.array(XMLWebsiteContext)),
703
+ labelContexts: v.optional(v.array(XMLWebsiteContext)),
704
+ prominentContexts: v.optional(v.array(XMLWebsiteContext))
705
+ }, "XMLWebsiteOptions: Shape error");
706
+ const XMLWebsiteStyle = v.intersect([XMLString, v.objectWithRest({
707
+ payload: v.string("XMLWebsiteStyle: payload is required"),
708
+ variableUuid: v.pipe(v.string("XMLWebsiteStyle: variableUuid is required"), v.check(isPseudoUuid, "XMLWebsiteStyle: variableUuid is not a valid pseudo-UUID")),
709
+ valueUuid: v.optional(v.pipe(v.string("XMLWebsiteStyle: valueUuid is optional"), v.check(isPseudoUuid, "XMLWebsiteStyle: valueUuid is not a valid pseudo-UUID"))),
710
+ category: v.optional(v.string("XMLWebsiteStyle: category is optional")),
711
+ lucideIcon: v.optional(v.string("XMLWebsiteStyle: lucideIcon is optional"))
712
+ }, v.unknown(), "XMLWebsiteStyle: Shape error")]);
713
+ const XMLWebsiteProperties = v.object({
714
+ property: v.array(XMLSimplifiedProperty),
715
+ simplify: v.optional(XMLBoolean)
716
+ }, "XMLWebsiteProperties: Shape error");
717
+ const XMLWebsiteResourceGroup = v.lazy(() => v.object({ resource: v.array(XMLWebsiteResource) }, "XMLWebsiteResourceGroup: Shape error"));
718
+ const XMLWebsiteSegment = v.lazy(() => v.object({
719
+ segments: v.object({ tree: v.array(XMLWebsiteTree) }, "XMLWebsiteSegment: segments is object with tree array"),
720
+ uuid: v.pipe(v.string("XMLWebsiteSegment: uuid is string and required"), v.check(isPseudoUuid, "XMLWebsiteSegment: uuid is not a valid pseudo-UUID")),
721
+ publicationDateTime: v.optional(customDateTime("XMLWebsiteSegment: publicationDateTime is not a valid datetime"))
722
+ }, "XMLWebsiteSegment: Shape error"));
723
+ const XMLWebsiteResourceItem = v.lazy(() => v.union([
724
+ XMLWebsiteResource,
725
+ XMLWebsiteResourceGroup,
726
+ XMLWebsiteSegment
727
+ ]));
728
+ const XMLWebsiteResource = v.lazy(() => v.object({
729
+ ...XMLBaseItem.entries,
730
+ type: v.optional(v.string("XMLWebsiteResource: type is string and optional")),
731
+ date: v.optional(v.union([customDateTime("XMLWebsiteResource: date is not a valid datetime"), XMLString])),
732
+ href: v.optional(v.pipe(v.string("XMLWebsiteResource: href is string and optional"), v.url("XMLWebsiteResource: href is not a valid URL"))),
733
+ fileFormat: v.optional(v.string("XMLWebsiteResource: fileFormat is string and optional")),
734
+ fileSize: XMLOptionalNumber,
735
+ rend: v.optional(v.literal("inline", "XMLWebsiteResource: rend is inline")),
736
+ height: XMLOptionalNumber,
737
+ width: XMLOptionalNumber,
738
+ image: v.optional(XMLImage),
739
+ imagemap: v.optional(XMLImageMap),
740
+ document: v.optional(XMLContent),
741
+ coordinates: v.optional(XMLCoordinates),
742
+ periods: v.optional(v.object({ period: v.array(XMLPeriod) })),
743
+ links: v.optional(v.lazy(() => XMLLink)),
744
+ reverseLinks: v.optional(v.union([
745
+ v.lazy(() => XMLLink),
746
+ v.lazy(() => XMLDataItem),
747
+ v.array(v.union([v.lazy(() => XMLLink), v.lazy(() => XMLDataItem)]))
748
+ ])),
749
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
750
+ bibliographies: v.optional(v.object({ bibliography: v.array(XMLBibliography) })),
751
+ format: v.optional(v.string("XMLWebsiteResource: format is optional")),
752
+ slug: v.optional(v.string("XMLWebsiteResource: slug is optional")),
753
+ options: v.optional(XMLWebsiteOptions),
754
+ properties: v.optional(XMLWebsiteProperties),
755
+ resource: v.optional(v.array(XMLWebsiteResourceItem))
756
+ }, "XMLWebsiteResource: Shape error"));
757
+ const XMLWebsiteTree = v.lazy(() => v.object({
758
+ ...XMLBaseItem.entries,
759
+ type: v.optional(v.string("XMLWebsiteTree: type is string and optional")),
760
+ date: v.optional(v.union([customDateTime("XMLWebsiteTree: date is not a valid datetime"), XMLString])),
761
+ links: v.optional(v.lazy(() => XMLLink)),
762
+ notes: v.optional(v.object({ note: v.array(XMLNote) })),
763
+ bibliographies: v.optional(v.object({ bibliography: v.array(v.lazy(() => XMLBibliography)) })),
764
+ options: v.optional(XMLWebsiteOptions),
765
+ styleOptions: v.optional(v.object({ style: v.array(XMLWebsiteStyle) })),
766
+ properties: v.optional(XMLWebsiteProperties),
767
+ items: v.optional(v.object({ resource: v.optional(v.array(XMLWebsiteResourceItem)) }))
768
+ }, "XMLWebsiteTree: Shape error"));
769
+ const XMLDataItem = v.union([
770
+ v.object({ tree: v.array(XMLTree) }, "XMLDataItem: tree is array of XMLTree"),
771
+ v.object({ bibliography: v.array(XMLBibliography) }, "XMLDataItem: bibliography is array of XMLBibliography"),
772
+ v.object({ concept: v.array(XMLConcept) }, "XMLDataItem: concept is array of XMLConcept"),
773
+ v.object({ spatialUnit: v.array(XMLSpatialUnit) }, "XMLDataItem: spatialUnit is array of XMLSpatialUnit"),
774
+ v.object({ period: v.array(XMLPeriod) }, "XMLDataItem: period is array of XMLPeriod"),
775
+ v.object({ person: v.array(XMLPerson) }, "XMLDataItem: person is array of XMLPerson"),
776
+ v.object({ propertyVariable: v.array(XMLPropertyVariable) }, "XMLDataItem: propertyVariable is array of XMLPropertyVariable"),
777
+ v.object({ variable: v.array(XMLPropertyVariable) }, "XMLDataItem: variable is array of XMLPropertyVariable"),
778
+ v.object({ propertyValue: v.array(XMLPropertyValue) }, "XMLDataItem: propertyValue is array of XMLPropertyValue"),
779
+ v.object({ value: v.array(XMLPropertyValue) }, "XMLDataItem: value is array of XMLPropertyValue"),
780
+ v.object({ resource: v.array(XMLResource) }, "XMLDataItem: resource is array of XMLResource"),
781
+ v.object({ text: v.array(XMLText) }, "XMLDataItem: text is array of XMLText"),
782
+ v.object({ set: v.array(XMLSet) }, "XMLDataItem: set is array of XMLSet")
783
+ ], "XMLDataItem: Shape error");
784
+ const XMLItemLinks = v.object({
785
+ payload: v.optional(v.string("XMLItemLinks: payload is string and optional")),
786
+ tree: v.optional(v.array(XMLTree, "XMLItemLinks: tree is array of XMLTree")),
787
+ bibliography: v.optional(v.array(XMLBibliography, "XMLItemLinks: bibliography is array of XMLBibliography")),
788
+ concept: v.optional(v.array(XMLConcept, "XMLItemLinks: concept is array of XMLConcept")),
789
+ spatialUnit: v.optional(v.array(XMLSpatialUnit, "XMLItemLinks: spatialUnit is array of XMLSpatialUnit")),
790
+ period: v.optional(v.array(XMLPeriod, "XMLItemLinks: period is array of XMLPeriod")),
791
+ person: v.optional(v.array(XMLPerson, "XMLItemLinks: person is array of XMLPerson")),
792
+ propertyVariable: v.optional(v.array(XMLPropertyVariable, "XMLItemLinks: propertyVariable is array of XMLPropertyVariable")),
793
+ variable: v.optional(v.array(XMLPropertyVariable, "XMLItemLinks: variable is array of XMLPropertyVariable")),
794
+ propertyValue: v.optional(v.array(XMLPropertyValue, "XMLItemLinks: propertyValue is array of XMLPropertyValue")),
795
+ value: v.optional(v.array(XMLPropertyValue, "XMLItemLinks: value is array of XMLPropertyValue")),
796
+ resource: v.optional(v.array(XMLResource, "XMLItemLinks: resource is array of XMLResource")),
797
+ text: v.optional(v.array(XMLText, "XMLItemLinks: text is array of XMLText")),
798
+ set: v.optional(v.array(XMLSet, "XMLItemLinks: set is array of XMLSet"))
799
+ }, "XMLItemLinks: Shape error");
800
+ const XMLItemLinksData = v.object({ result: v.object({ ochre: v.object({
801
+ payload: v.optional(v.string("XMLItemLinksData: payload is string and optional")),
802
+ items: v.optional(XMLItemLinks)
803
+ }, "XMLItemLinksData: ochre") }) }, "XMLItemLinksData: Shape error");
804
+ const XMLGallery = v.object({
805
+ payload: v.optional(v.string("XMLGallery: payload is string and optional")),
806
+ project: v.object({
807
+ uuid: v.optional(v.string("XMLGallery: project uuid is optional")),
808
+ identification: XMLIdentification,
809
+ dateFormat: v.optional(v.string("XMLGallery: project dateFormat is optional")),
810
+ page: v.optional(v.picklist(["item", "entry"]))
811
+ }, "XMLGallery: project is object with identification"),
812
+ item: v.object({
813
+ uuid: v.optional(v.string("XMLGallery: item uuid is optional")),
814
+ identification: XMLIdentification,
815
+ category: v.optional(XMLItemCategory),
816
+ type: v.optional(v.string("XMLGallery: item type is optional")),
817
+ maxLength: XMLOptionalNumber
818
+ }, "XMLGallery: item is object with identification"),
819
+ resource: v.optional(v.array(XMLResource, "XMLGallery: resource is array of XMLResource")),
820
+ maxLength: XMLNumber
821
+ }, "XMLGallery: Shape error");
822
+ const XMLGalleryData = v.object({ result: v.object({ ochre: v.object({ gallery: XMLGallery }, "XMLGalleryData: ochre") }) }, "XMLGalleryData: Shape error");
823
+ const XMLSetItems = v.intersect([XMLItemLinks, v.object({
824
+ totalCount: XMLNumber,
825
+ page: XMLNumber,
826
+ pageSize: XMLNumber
827
+ }, "XMLSetItems: Shape error")]);
828
+ const XMLSetItemsData = v.object({ result: v.object({ ochre: v.object({ items: XMLSetItems }, "XMLSetItemsData: ochre") }) }, "XMLSetItemsData: Shape error");
829
+ const XMLData = v.object({ result: v.object({ ochre: v.intersect([v.object({
830
+ uuid: v.pipe(v.string("XMLData: uuid is string and required"), v.check(isPseudoUuid, "XMLData: uuid is not a valid pseudo-UUID")),
831
+ belongsTo: v.string("XMLData: belongsTo is string and required"),
832
+ uuidBelongsTo: v.pipe(v.string("XMLData: uuidBelongsTo is string and required"), v.check(isPseudoUuid, "XMLData: uuidBelongsTo is not a valid pseudo-UUID")),
833
+ publicationDateTime: customDateTime("XMLData: publicationDateTime is not a valid datetime"),
834
+ metadata: XMLMetadata,
835
+ persistentUrl: v.optional(v.pipe(v.string("XMLData: persistentUrl is string and optional"), v.url("XMLData: persistentUrl is not a valid URL"))),
836
+ languages: v.optional(v.string("XMLData: languages is string and optional"))
837
+ }, "XMLData: ochre is object with uuid, belongsTo, uuidBelongsTo, publicationDateTime, metadata, and languages"), XMLDataItem]) }) }, "XMLData: Shape error");
838
+ const XMLWebsiteData = v.object({ result: v.object({ ochre: v.object({
839
+ uuid: v.pipe(v.string("XMLWebsiteData: uuid is string and required"), v.check(isPseudoUuid, "XMLWebsiteData: uuid is not a valid pseudo-UUID")),
840
+ belongsTo: v.string("XMLWebsiteData: belongsTo is string and required"),
841
+ uuidBelongsTo: v.pipe(v.string("XMLWebsiteData: uuidBelongsTo is string and required"), v.check(isPseudoUuid, "XMLWebsiteData: uuidBelongsTo is not a valid pseudo-UUID")),
842
+ publicationDateTime: customDateTime("XMLWebsiteData: publicationDateTime is not a valid datetime"),
843
+ metadata: XMLMetadata,
844
+ persistentUrl: v.optional(v.pipe(v.string("XMLWebsiteData: persistentUrl is string and optional"), v.url("XMLWebsiteData: persistentUrl is not a valid URL"))),
845
+ languages: v.optional(v.string("XMLWebsiteData: languages is string and optional")),
846
+ tree: v.array(XMLWebsiteTree)
847
+ }, "XMLWebsiteData: ochre is object with website tree") }, "XMLWebsiteData: result is object with ochre") }, "XMLWebsiteData: Shape error");
848
+ //#endregion
849
+ export { XMLData, XMLDataItem, XMLGalleryData, XMLItemLinksData, XMLLink, XMLSetItemsData, XMLWebsiteData };