@daihum/record-formats 0.1.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.
- package/LICENSE +201 -0
- package/README.md +36 -0
- package/dist/ead3/index.d.ts +158 -0
- package/dist/ead3/index.d.ts.map +1 -0
- package/dist/ead3/index.js +520 -0
- package/dist/ead3/index.js.map +1 -0
- package/dist/index-90ZPmZ85.d.ts +41 -0
- package/dist/index-90ZPmZ85.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/result-Dd9q1uJU.d.ts +52 -0
- package/dist/result-Dd9q1uJU.d.ts.map +1 -0
- package/dist/result-YrPe5I9D.js +33 -0
- package/dist/result-YrPe5I9D.js.map +1 -0
- package/dist/xml/index.d.ts +3 -0
- package/dist/xml/index.js +4 -0
- package/dist/xml-6kdXnoBh.js +149 -0
- package/dist/xml-6kdXnoBh.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
import { i as hasFormatErrors, n as formatFail, r as formatOk, t as createFormatIssue } from "../result-YrPe5I9D.js";
|
|
2
|
+
import { a as getXmlText, c as parseXml, n as buildXml, r as findXmlValue, s as normalizeXmlName, t as asXmlArray } from "../xml-6kdXnoBh.js";
|
|
3
|
+
|
|
4
|
+
//#region src/ead3/ead3.ts
|
|
5
|
+
const EAD3_FORMAT_ID = "ead3";
|
|
6
|
+
const EAD3_NAMESPACE = "http://ead3.archivists.org/schema/";
|
|
7
|
+
const EAD3_FORMAT_GENERATION = "EAD3";
|
|
8
|
+
const EAD3_SCHEMA_VERSION = "1.1.1";
|
|
9
|
+
const EAD3_SCHEMA_REVISION = "1.1.1";
|
|
10
|
+
const EAD3_TAG_LIBRARY_VERSION = "1.1.2";
|
|
11
|
+
const EAD3_VALIDATION_LEVEL = "projection";
|
|
12
|
+
const EAD3_OFFICIAL_SCHEMA_VALIDATION = false;
|
|
13
|
+
const EAD3_ADAPTER_PROFILE = {
|
|
14
|
+
profileId: "daihum.record-formats.ead3.projection.v0",
|
|
15
|
+
profileVersion: "0.1.0",
|
|
16
|
+
formatId: EAD3_FORMAT_ID,
|
|
17
|
+
formatGeneration: EAD3_FORMAT_GENERATION,
|
|
18
|
+
namespace: EAD3_NAMESPACE,
|
|
19
|
+
schemaVersion: EAD3_SCHEMA_VERSION,
|
|
20
|
+
schemaRevision: EAD3_SCHEMA_REVISION,
|
|
21
|
+
tagLibraryVersion: EAD3_TAG_LIBRARY_VERSION,
|
|
22
|
+
validationLevel: EAD3_VALIDATION_LEVEL,
|
|
23
|
+
officialSchemaValidation: EAD3_OFFICIAL_SCHEMA_VALIDATION,
|
|
24
|
+
conformanceNotes: [
|
|
25
|
+
"This adapter is a DAIHUM finding-aid projection for common EAD3 elements.",
|
|
26
|
+
"Validation checks required projection fields and structured parser/serializer invariants.",
|
|
27
|
+
"It does not run official EAD3 RNG, XSD, DTD, or Schematron schema validation.",
|
|
28
|
+
"Unknown XML subtrees can be preserved through extension fields when preserveUnknown is enabled.",
|
|
29
|
+
"DAIHUM href/source policy metadata is carried as projection attributes and is not official EAD3 schema validation."
|
|
30
|
+
],
|
|
31
|
+
sourceReferences: [{
|
|
32
|
+
label: "Library of Congress EAD3 schema page",
|
|
33
|
+
url: "https://www.loc.gov/ead/ead3schema.html"
|
|
34
|
+
}, {
|
|
35
|
+
label: "Library of Congress EAD3 tag library",
|
|
36
|
+
url: "https://www.loc.gov/ead/EAD3taglib/"
|
|
37
|
+
}]
|
|
38
|
+
};
|
|
39
|
+
const EAD3_ARRAY_TAGS = [
|
|
40
|
+
"unitdate",
|
|
41
|
+
"dao",
|
|
42
|
+
"c",
|
|
43
|
+
"odd"
|
|
44
|
+
];
|
|
45
|
+
function isRecord(value) {
|
|
46
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
47
|
+
}
|
|
48
|
+
function readString(value) {
|
|
49
|
+
if (typeof value !== "string") return void 0;
|
|
50
|
+
const trimmed = value.trim();
|
|
51
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
52
|
+
}
|
|
53
|
+
function readElementText(parent, localName) {
|
|
54
|
+
return getXmlText(findXmlValue(parent, localName));
|
|
55
|
+
}
|
|
56
|
+
function readParagraphElementText(parent, localName) {
|
|
57
|
+
return readElementText(readRecord(parent, localName), "p");
|
|
58
|
+
}
|
|
59
|
+
function readRecord(parent, localName) {
|
|
60
|
+
const value = findXmlValue(parent, localName);
|
|
61
|
+
return isRecord(value) ? value : {};
|
|
62
|
+
}
|
|
63
|
+
function createEad3Issue(params) {
|
|
64
|
+
return createFormatIssue({
|
|
65
|
+
severity: params.severity ?? "error",
|
|
66
|
+
code: params.code,
|
|
67
|
+
path: params.path,
|
|
68
|
+
message: params.message,
|
|
69
|
+
format: EAD3_FORMAT_ID
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function withEad3Profile(result) {
|
|
73
|
+
return {
|
|
74
|
+
...result,
|
|
75
|
+
adapterProfile: EAD3_ADAPTER_PROFILE
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function ead3Ok(value, issues = []) {
|
|
79
|
+
return withEad3Profile(formatOk(value, issues));
|
|
80
|
+
}
|
|
81
|
+
function ead3Fail(issues, value) {
|
|
82
|
+
return withEad3Profile(formatFail(issues, value));
|
|
83
|
+
}
|
|
84
|
+
function collectUnknownXml(record, knownLocalNames) {
|
|
85
|
+
const known = new Set(knownLocalNames);
|
|
86
|
+
const unknown = Object.fromEntries(Object.entries(record).filter(([key]) => !known.has(normalizeXmlName(key))));
|
|
87
|
+
return Object.keys(unknown).length > 0 ? unknown : void 0;
|
|
88
|
+
}
|
|
89
|
+
function mergeKnown(extension, known) {
|
|
90
|
+
return {
|
|
91
|
+
...extension ?? {},
|
|
92
|
+
...known
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function hasExtensionKeys(extension) {
|
|
96
|
+
return extension !== void 0 && Object.keys(extension).length > 0;
|
|
97
|
+
}
|
|
98
|
+
function hasComponentExtensions(extensions) {
|
|
99
|
+
return hasExtensionKeys(extensions.xml) || hasExtensionKeys(extensions.did);
|
|
100
|
+
}
|
|
101
|
+
function hasFindingAidExtensions(extensions) {
|
|
102
|
+
return hasExtensionKeys(extensions.ead) || hasExtensionKeys(extensions.control);
|
|
103
|
+
}
|
|
104
|
+
function dateToXml(date) {
|
|
105
|
+
return mergeKnown(date.extensions, {
|
|
106
|
+
"#text": date.expression,
|
|
107
|
+
...date.normalized ? { "@_normal": date.normalized } : {},
|
|
108
|
+
...date.type ? { "@_type": date.type } : {}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function textBlockToXml(value) {
|
|
112
|
+
return { p: value };
|
|
113
|
+
}
|
|
114
|
+
function isHrefPolicyKind(value) {
|
|
115
|
+
return value === "preserve" || value === "relative" || value === "redact" || value === "externalize";
|
|
116
|
+
}
|
|
117
|
+
function readJsonRecord(value) {
|
|
118
|
+
const text = readString(value);
|
|
119
|
+
if (!text) return void 0;
|
|
120
|
+
try {
|
|
121
|
+
const parsed = JSON.parse(text);
|
|
122
|
+
return isRecord(parsed) ? parsed : void 0;
|
|
123
|
+
} catch {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function jsonRecordAttribute(value) {
|
|
128
|
+
if (!value || Object.keys(value).length === 0) return void 0;
|
|
129
|
+
try {
|
|
130
|
+
return JSON.stringify(value);
|
|
131
|
+
} catch {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function digitalObjectToXml(ref) {
|
|
136
|
+
const locatorJson = jsonRecordAttribute(ref.sourceRef?.locator);
|
|
137
|
+
const metadataJson = jsonRecordAttribute(ref.sourceRef?.metadata);
|
|
138
|
+
return mergeKnown(ref.extensions, {
|
|
139
|
+
"@_href": ref.href,
|
|
140
|
+
...ref.label ? { "@_label": ref.label } : {},
|
|
141
|
+
...ref.role ? { "@_role": ref.role } : {},
|
|
142
|
+
...ref.targetKind ? { "@_targetkind": ref.targetKind } : {},
|
|
143
|
+
...ref.hrefPolicy?.kind ? { "@_data-daihum-href-policy": ref.hrefPolicy.kind } : {},
|
|
144
|
+
...ref.hrefPolicy?.publicHref ? { "@_data-daihum-public-href": ref.hrefPolicy.publicHref } : {},
|
|
145
|
+
...ref.hrefPolicy?.baseHref ? { "@_data-daihum-base-href": ref.hrefPolicy.baseHref } : {},
|
|
146
|
+
...ref.hrefPolicy?.redactedHref ? { "@_data-daihum-redacted-href": ref.hrefPolicy.redactedHref } : {},
|
|
147
|
+
...ref.hrefPolicy?.note ? { "@_data-daihum-policy-note": ref.hrefPolicy.note } : {},
|
|
148
|
+
...ref.sourceRef?.kind ? { "@_data-daihum-source-kind": ref.sourceRef.kind } : {},
|
|
149
|
+
...ref.sourceRef?.id ? { "@_data-daihum-source-id": ref.sourceRef.id } : {},
|
|
150
|
+
...ref.sourceRef?.label ? { "@_data-daihum-source-label": ref.sourceRef.label } : {},
|
|
151
|
+
...locatorJson ? { "@_data-daihum-source-locator": locatorJson } : {},
|
|
152
|
+
...metadataJson ? { "@_data-daihum-source-metadata": metadataJson } : {}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function componentToXml(component) {
|
|
156
|
+
const did = mergeKnown(component.extensions?.did, {
|
|
157
|
+
...component.referenceCode ? { unitid: component.referenceCode } : {},
|
|
158
|
+
unittitle: component.title,
|
|
159
|
+
...component.dates?.length ? { unitdate: component.dates.map(dateToXml) } : {},
|
|
160
|
+
...component.extent ? { physdesc: { extent: component.extent } } : {},
|
|
161
|
+
...component.creator ? { origination: { name: component.creator } } : {},
|
|
162
|
+
...component.language ? { langmaterial: { language: component.language } } : {},
|
|
163
|
+
...component.digitalObjects?.length ? { dao: component.digitalObjects.map(digitalObjectToXml) } : {}
|
|
164
|
+
});
|
|
165
|
+
return mergeKnown(component.extensions?.xml, {
|
|
166
|
+
...component.id ? { "@_id": component.id } : {},
|
|
167
|
+
"@_level": component.level,
|
|
168
|
+
...component.otherLevel ? { "@_otherlevel": component.otherLevel } : {},
|
|
169
|
+
did,
|
|
170
|
+
...component.abstract ? { abstract: textBlockToXml(component.abstract) } : {},
|
|
171
|
+
...component.scopeContent ? { scopecontent: { p: component.scopeContent } } : {},
|
|
172
|
+
...component.arrangement ? { arrangement: { p: component.arrangement } } : {},
|
|
173
|
+
...component.accessRestriction ? { accessrestrict: { p: component.accessRestriction } } : {},
|
|
174
|
+
...component.useRestriction ? { userestrict: { p: component.useRestriction } } : {},
|
|
175
|
+
...component.biographicalHistory ? { bioghist: textBlockToXml(component.biographicalHistory) } : {},
|
|
176
|
+
...component.custodialHistory ? { custodhist: { p: component.custodialHistory } } : {},
|
|
177
|
+
...component.acquisitionInformation ? { acqinfo: textBlockToXml(component.acquisitionInformation) } : {},
|
|
178
|
+
...component.appraisal ? { appraisal: textBlockToXml(component.appraisal) } : {},
|
|
179
|
+
...component.processingInformation ? { processinfo: textBlockToXml(component.processingInformation) } : {},
|
|
180
|
+
...component.relatedMaterial ? { relatedmaterial: textBlockToXml(component.relatedMaterial) } : {},
|
|
181
|
+
...component.separatedMaterial ? { separatedmaterial: textBlockToXml(component.separatedMaterial) } : {},
|
|
182
|
+
...component.preferredCitation ? { prefercite: textBlockToXml(component.preferredCitation) } : {},
|
|
183
|
+
...component.notes?.length ? { odd: component.notes.map((note) => ({ p: note })) } : {},
|
|
184
|
+
...component.components?.length ? { dsc: { c: component.components.map(componentToXml) } } : {}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function findingAidToXmlObject(findingAid) {
|
|
188
|
+
const control = mergeKnown(findingAid.extensions?.control, {
|
|
189
|
+
recordid: findingAid.recordId,
|
|
190
|
+
maintenancestatus: findingAid.maintenanceStatus ?? "new",
|
|
191
|
+
publicationstatus: "inprocess",
|
|
192
|
+
...findingAid.agencyName ? { maintenanceagency: { agencyname: findingAid.agencyName } } : {},
|
|
193
|
+
filedesc: { titlestmt: { titleproper: findingAid.title } }
|
|
194
|
+
});
|
|
195
|
+
return { ead: mergeKnown(findingAid.extensions?.ead, {
|
|
196
|
+
"@_xmlns": EAD3_NAMESPACE,
|
|
197
|
+
control,
|
|
198
|
+
archdesc: componentToXml(findingAid.description)
|
|
199
|
+
}) };
|
|
200
|
+
}
|
|
201
|
+
function readDate(value) {
|
|
202
|
+
const expression = getXmlText(value);
|
|
203
|
+
if (!expression) return void 0;
|
|
204
|
+
const record = isRecord(value) ? value : {};
|
|
205
|
+
const normalized = readString(findXmlValue(record, "normal"));
|
|
206
|
+
const type = readString(findXmlValue(record, "type"));
|
|
207
|
+
const extensions = collectUnknownXml(record, [
|
|
208
|
+
"#text",
|
|
209
|
+
"normal",
|
|
210
|
+
"type"
|
|
211
|
+
]);
|
|
212
|
+
return {
|
|
213
|
+
expression,
|
|
214
|
+
...normalized ? { normalized } : {},
|
|
215
|
+
...type ? { type } : {},
|
|
216
|
+
...extensions ? { extensions } : {}
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function readDigitalObject(value) {
|
|
220
|
+
if (!isRecord(value)) return void 0;
|
|
221
|
+
const href = readString(findXmlValue(value, "href"));
|
|
222
|
+
if (!href) return void 0;
|
|
223
|
+
const label = readString(findXmlValue(value, "label"));
|
|
224
|
+
const role = readString(findXmlValue(value, "role"));
|
|
225
|
+
const targetKind = readString(findXmlValue(value, "targetkind"));
|
|
226
|
+
const hrefPolicyKind = readString(findXmlValue(value, "data-daihum-href-policy"));
|
|
227
|
+
const publicHref = readString(findXmlValue(value, "data-daihum-public-href"));
|
|
228
|
+
const baseHref = readString(findXmlValue(value, "data-daihum-base-href"));
|
|
229
|
+
const redactedHref = readString(findXmlValue(value, "data-daihum-redacted-href"));
|
|
230
|
+
const policyNote = readString(findXmlValue(value, "data-daihum-policy-note"));
|
|
231
|
+
const sourceKind = readString(findXmlValue(value, "data-daihum-source-kind"));
|
|
232
|
+
const sourceId = readString(findXmlValue(value, "data-daihum-source-id"));
|
|
233
|
+
const sourceLabel = readString(findXmlValue(value, "data-daihum-source-label"));
|
|
234
|
+
const sourceLocator = readJsonRecord(findXmlValue(value, "data-daihum-source-locator"));
|
|
235
|
+
const sourceMetadata = readJsonRecord(findXmlValue(value, "data-daihum-source-metadata"));
|
|
236
|
+
const extensions = collectUnknownXml(value, [
|
|
237
|
+
"href",
|
|
238
|
+
"label",
|
|
239
|
+
"role",
|
|
240
|
+
"targetkind",
|
|
241
|
+
"data-daihum-href-policy",
|
|
242
|
+
"data-daihum-public-href",
|
|
243
|
+
"data-daihum-base-href",
|
|
244
|
+
"data-daihum-redacted-href",
|
|
245
|
+
"data-daihum-policy-note",
|
|
246
|
+
"data-daihum-source-kind",
|
|
247
|
+
"data-daihum-source-id",
|
|
248
|
+
"data-daihum-source-label",
|
|
249
|
+
"data-daihum-source-locator",
|
|
250
|
+
"data-daihum-source-metadata"
|
|
251
|
+
]);
|
|
252
|
+
return {
|
|
253
|
+
href,
|
|
254
|
+
...label ? { label } : {},
|
|
255
|
+
...role ? { role } : {},
|
|
256
|
+
...targetKind ? { targetKind } : {},
|
|
257
|
+
...isHrefPolicyKind(hrefPolicyKind) ? { hrefPolicy: {
|
|
258
|
+
kind: hrefPolicyKind,
|
|
259
|
+
...publicHref ? { publicHref } : {},
|
|
260
|
+
...baseHref ? { baseHref } : {},
|
|
261
|
+
...redactedHref ? { redactedHref } : {},
|
|
262
|
+
...policyNote ? { note: policyNote } : {}
|
|
263
|
+
} } : {},
|
|
264
|
+
...sourceKind && sourceId ? { sourceRef: {
|
|
265
|
+
kind: sourceKind,
|
|
266
|
+
id: sourceId,
|
|
267
|
+
...sourceLabel ? { label: sourceLabel } : {},
|
|
268
|
+
...sourceLocator ? { locator: sourceLocator } : {},
|
|
269
|
+
...sourceMetadata ? { metadata: sourceMetadata } : {}
|
|
270
|
+
} } : {},
|
|
271
|
+
...extensions ? { extensions } : {}
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
function readMaintenanceStatus(value) {
|
|
275
|
+
const status = getXmlText(value);
|
|
276
|
+
if (status === "new" || status === "revised" || status === "deleted" || status === "derived" || status === "unknown") return status;
|
|
277
|
+
}
|
|
278
|
+
function readLevel(value) {
|
|
279
|
+
const level = readString(value);
|
|
280
|
+
if (level === "collection" || level === "series" || level === "subseries" || level === "file" || level === "item" || level === "otherlevel") return { level };
|
|
281
|
+
return {
|
|
282
|
+
level: "otherlevel",
|
|
283
|
+
...level ? { otherLevel: level } : {}
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
function readComponent(value, path, issues, options) {
|
|
287
|
+
if (!isRecord(value)) return void 0;
|
|
288
|
+
const did = readRecord(value, "did");
|
|
289
|
+
const title = readElementText(did, "unittitle") ?? "";
|
|
290
|
+
if (!title) issues.push(createEad3Issue({
|
|
291
|
+
code: "ead3.component.title.required",
|
|
292
|
+
path: `${path}.title`,
|
|
293
|
+
message: "EAD3 component title is required."
|
|
294
|
+
}));
|
|
295
|
+
const childrenContainer = readRecord(value, "dsc");
|
|
296
|
+
const dates = asXmlArray(findXmlValue(did, "unitdate")).map(readDate).filter((date) => Boolean(date));
|
|
297
|
+
const digitalObjects = asXmlArray(findXmlValue(did, "dao")).map(readDigitalObject).filter((ref) => Boolean(ref));
|
|
298
|
+
const components = asXmlArray(findXmlValue(childrenContainer, "c")).map((child, index) => readComponent(child, `${path}.components.${index}`, issues, options)).filter((component) => Boolean(component));
|
|
299
|
+
const level = readLevel(findXmlValue(value, "level"));
|
|
300
|
+
const explicitOtherLevel = readString(findXmlValue(value, "otherlevel"));
|
|
301
|
+
const id = readString(findXmlValue(value, "id"));
|
|
302
|
+
const referenceCode = readElementText(did, "unitid");
|
|
303
|
+
const extent = readElementText(readRecord(did, "physdesc"), "extent");
|
|
304
|
+
const creator = readElementText(readRecord(did, "origination"), "name");
|
|
305
|
+
const abstract = readParagraphElementText(value, "abstract");
|
|
306
|
+
const scopeContent = readParagraphElementText(value, "scopecontent");
|
|
307
|
+
const arrangement = readParagraphElementText(value, "arrangement");
|
|
308
|
+
const accessRestriction = readParagraphElementText(value, "accessrestrict");
|
|
309
|
+
const useRestriction = readParagraphElementText(value, "userestrict");
|
|
310
|
+
const language = readElementText(readRecord(did, "langmaterial"), "language");
|
|
311
|
+
const biographicalHistory = readParagraphElementText(value, "bioghist");
|
|
312
|
+
const custodialHistory = readParagraphElementText(value, "custodhist");
|
|
313
|
+
const acquisitionInformation = readParagraphElementText(value, "acqinfo");
|
|
314
|
+
const appraisal = readParagraphElementText(value, "appraisal");
|
|
315
|
+
const processingInformation = readParagraphElementText(value, "processinfo");
|
|
316
|
+
const relatedMaterial = readParagraphElementText(value, "relatedmaterial");
|
|
317
|
+
const separatedMaterial = readParagraphElementText(value, "separatedmaterial");
|
|
318
|
+
const preferredCitation = readParagraphElementText(value, "prefercite");
|
|
319
|
+
const notes = asXmlArray(findXmlValue(value, "odd")).map((note) => readElementText(note, "p")).filter((note) => Boolean(note));
|
|
320
|
+
const componentUnknown = collectUnknownXml(value, [
|
|
321
|
+
"id",
|
|
322
|
+
"level",
|
|
323
|
+
"otherlevel",
|
|
324
|
+
"did",
|
|
325
|
+
"abstract",
|
|
326
|
+
"scopecontent",
|
|
327
|
+
"arrangement",
|
|
328
|
+
"accessrestrict",
|
|
329
|
+
"userestrict",
|
|
330
|
+
"bioghist",
|
|
331
|
+
"custodhist",
|
|
332
|
+
"acqinfo",
|
|
333
|
+
"appraisal",
|
|
334
|
+
"processinfo",
|
|
335
|
+
"relatedmaterial",
|
|
336
|
+
"separatedmaterial",
|
|
337
|
+
"prefercite",
|
|
338
|
+
"odd",
|
|
339
|
+
"dsc"
|
|
340
|
+
]);
|
|
341
|
+
const didUnknown = collectUnknownXml(did, [
|
|
342
|
+
"unitid",
|
|
343
|
+
"unittitle",
|
|
344
|
+
"unitdate",
|
|
345
|
+
"physdesc",
|
|
346
|
+
"origination",
|
|
347
|
+
"langmaterial",
|
|
348
|
+
"dao"
|
|
349
|
+
]);
|
|
350
|
+
const componentExtensions = options.preserveUnknown === false ? {} : {
|
|
351
|
+
...componentUnknown ? { xml: componentUnknown } : {},
|
|
352
|
+
...didUnknown ? { did: didUnknown } : {}
|
|
353
|
+
};
|
|
354
|
+
return {
|
|
355
|
+
...id ? { id } : {},
|
|
356
|
+
level: level.level,
|
|
357
|
+
...explicitOtherLevel ?? level.otherLevel ? { otherLevel: explicitOtherLevel ?? level.otherLevel } : {},
|
|
358
|
+
title,
|
|
359
|
+
...referenceCode ? { referenceCode } : {},
|
|
360
|
+
...dates.length > 0 ? { dates } : {},
|
|
361
|
+
...extent ? { extent } : {},
|
|
362
|
+
...creator ? { creator } : {},
|
|
363
|
+
...abstract ? { abstract } : {},
|
|
364
|
+
...scopeContent ? { scopeContent } : {},
|
|
365
|
+
...arrangement ? { arrangement } : {},
|
|
366
|
+
...accessRestriction ? { accessRestriction } : {},
|
|
367
|
+
...useRestriction ? { useRestriction } : {},
|
|
368
|
+
...language ? { language } : {},
|
|
369
|
+
...biographicalHistory ? { biographicalHistory } : {},
|
|
370
|
+
...custodialHistory ? { custodialHistory } : {},
|
|
371
|
+
...acquisitionInformation ? { acquisitionInformation } : {},
|
|
372
|
+
...appraisal ? { appraisal } : {},
|
|
373
|
+
...processingInformation ? { processingInformation } : {},
|
|
374
|
+
...relatedMaterial ? { relatedMaterial } : {},
|
|
375
|
+
...separatedMaterial ? { separatedMaterial } : {},
|
|
376
|
+
...preferredCitation ? { preferredCitation } : {},
|
|
377
|
+
...notes.length > 0 ? { notes } : {},
|
|
378
|
+
...digitalObjects.length > 0 ? { digitalObjects } : {},
|
|
379
|
+
...components.length > 0 ? { components } : {},
|
|
380
|
+
...hasComponentExtensions(componentExtensions) ? { extensions: componentExtensions } : {}
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
function getEadRoot(document) {
|
|
384
|
+
if (normalizeXmlName(document.rootName) === "ead") return document.root;
|
|
385
|
+
const maybeEad = findXmlValue(document.raw, "ead");
|
|
386
|
+
return isRecord(maybeEad) ? maybeEad : void 0;
|
|
387
|
+
}
|
|
388
|
+
function ead3FromXmlDocument(document, options = {}) {
|
|
389
|
+
const issues = [];
|
|
390
|
+
const ead = getEadRoot(document);
|
|
391
|
+
if (!ead) return ead3Fail([createEad3Issue({
|
|
392
|
+
code: "ead3.root.required",
|
|
393
|
+
path: "ead",
|
|
394
|
+
message: "EAD3 document must contain an ead root element."
|
|
395
|
+
})]);
|
|
396
|
+
const control = readRecord(ead, "control");
|
|
397
|
+
const titlestmt = readRecord(readRecord(control, "filedesc"), "titlestmt");
|
|
398
|
+
const description = readComponent(findXmlValue(ead, "archdesc"), "description", issues, options);
|
|
399
|
+
if (!description) return ead3Fail([createEad3Issue({
|
|
400
|
+
code: "ead3.archdesc.required",
|
|
401
|
+
path: "ead.archdesc",
|
|
402
|
+
message: "EAD3 document must contain an archdesc element."
|
|
403
|
+
})]);
|
|
404
|
+
const recordId = readElementText(control, "recordid") ?? "";
|
|
405
|
+
if (!recordId) issues.push(createEad3Issue({
|
|
406
|
+
code: "ead3.recordId.required",
|
|
407
|
+
path: "recordId",
|
|
408
|
+
message: "EAD3 record id is required."
|
|
409
|
+
}));
|
|
410
|
+
const title = readElementText(titlestmt, "titleproper") ?? description.title;
|
|
411
|
+
if (!title) issues.push(createEad3Issue({
|
|
412
|
+
code: "ead3.title.required",
|
|
413
|
+
path: "title",
|
|
414
|
+
message: "EAD3 title is required."
|
|
415
|
+
}));
|
|
416
|
+
const agencyName = readElementText(readRecord(control, "maintenanceagency"), "agencyname");
|
|
417
|
+
const maintenanceStatus = readMaintenanceStatus(findXmlValue(control, "maintenancestatus"));
|
|
418
|
+
const eadUnknown = options.preserveUnknown === false ? void 0 : collectUnknownXml(ead, [
|
|
419
|
+
"xmlns",
|
|
420
|
+
"control",
|
|
421
|
+
"archdesc"
|
|
422
|
+
]);
|
|
423
|
+
const controlUnknown = options.preserveUnknown === false ? void 0 : collectUnknownXml(control, [
|
|
424
|
+
"recordid",
|
|
425
|
+
"maintenancestatus",
|
|
426
|
+
"publicationstatus",
|
|
427
|
+
"maintenanceagency",
|
|
428
|
+
"filedesc"
|
|
429
|
+
]);
|
|
430
|
+
const extensions = {
|
|
431
|
+
...eadUnknown ? { ead: eadUnknown } : {},
|
|
432
|
+
...controlUnknown ? { control: controlUnknown } : {}
|
|
433
|
+
};
|
|
434
|
+
const findingAid = {
|
|
435
|
+
recordId,
|
|
436
|
+
title,
|
|
437
|
+
...maintenanceStatus ? { maintenanceStatus } : {},
|
|
438
|
+
...agencyName ? { agencyName } : {},
|
|
439
|
+
description,
|
|
440
|
+
...hasFindingAidExtensions(extensions) ? { extensions } : {}
|
|
441
|
+
};
|
|
442
|
+
return hasFormatErrors(issues) ? ead3Fail(issues, findingAid) : ead3Ok(findingAid, issues);
|
|
443
|
+
}
|
|
444
|
+
function parseEad3Xml(input, options = {}) {
|
|
445
|
+
const parsed = parseXml(input, { arrayTags: EAD3_ARRAY_TAGS });
|
|
446
|
+
if (!parsed.ok) return ead3Fail(parsed.issues);
|
|
447
|
+
return ead3FromXmlDocument(parsed.value, options);
|
|
448
|
+
}
|
|
449
|
+
function ead3ToXmlDocument(findingAid, options = {}) {
|
|
450
|
+
const issues = validateEad3(findingAid, options);
|
|
451
|
+
if (hasFormatErrors(issues)) return ead3Fail(issues);
|
|
452
|
+
const raw = findingAidToXmlObject(findingAid);
|
|
453
|
+
const ead = raw.ead;
|
|
454
|
+
if (!isRecord(ead)) return ead3Fail([createEad3Issue({
|
|
455
|
+
code: "ead3.serialize.failed",
|
|
456
|
+
path: "ead",
|
|
457
|
+
message: "EAD3 serializer did not produce an ead root element."
|
|
458
|
+
})]);
|
|
459
|
+
return ead3Ok({
|
|
460
|
+
rootName: "ead",
|
|
461
|
+
root: ead,
|
|
462
|
+
raw
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
function serializeEad3Xml(findingAid, options = {}) {
|
|
466
|
+
const document = ead3ToXmlDocument(findingAid);
|
|
467
|
+
if (!document.ok) return ead3Fail(document.issues);
|
|
468
|
+
return withEad3Profile(buildXml(document.value, {
|
|
469
|
+
format: options.format ?? true,
|
|
470
|
+
suppressEmptyNode: true
|
|
471
|
+
}));
|
|
472
|
+
}
|
|
473
|
+
function validateComponent(component, path) {
|
|
474
|
+
const issues = [];
|
|
475
|
+
if (!readString(component.title)) issues.push(createEad3Issue({
|
|
476
|
+
code: "ead3.component.title.required",
|
|
477
|
+
path: `${path}.title`,
|
|
478
|
+
message: "EAD3 component title is required."
|
|
479
|
+
}));
|
|
480
|
+
component.digitalObjects?.forEach((ref, index) => {
|
|
481
|
+
if (!readString(ref.href)) issues.push(createEad3Issue({
|
|
482
|
+
code: "ead3.digitalObject.href.required",
|
|
483
|
+
path: `${path}.digitalObjects.${index}.href`,
|
|
484
|
+
message: "EAD3 digital object href is required."
|
|
485
|
+
}));
|
|
486
|
+
});
|
|
487
|
+
component.components?.forEach((child, index) => {
|
|
488
|
+
issues.push(...validateComponent(child, `${path}.components.${index}`));
|
|
489
|
+
});
|
|
490
|
+
return issues;
|
|
491
|
+
}
|
|
492
|
+
function validateEad3(findingAid, options = {}) {
|
|
493
|
+
const issues = [];
|
|
494
|
+
if ((options.requireRecordId ?? true) && !readString(findingAid.recordId)) issues.push(createEad3Issue({
|
|
495
|
+
code: "ead3.recordId.required",
|
|
496
|
+
path: "recordId",
|
|
497
|
+
message: "EAD3 record id is required."
|
|
498
|
+
}));
|
|
499
|
+
if (!readString(findingAid.title)) issues.push(createEad3Issue({
|
|
500
|
+
code: "ead3.title.required",
|
|
501
|
+
path: "title",
|
|
502
|
+
message: "EAD3 title is required."
|
|
503
|
+
}));
|
|
504
|
+
issues.push(...validateComponent(findingAid.description, "description"));
|
|
505
|
+
return issues;
|
|
506
|
+
}
|
|
507
|
+
const ead3Adapter = {
|
|
508
|
+
format: EAD3_FORMAT_ID,
|
|
509
|
+
profile: EAD3_ADAPTER_PROFILE,
|
|
510
|
+
parse: parseEad3Xml,
|
|
511
|
+
serialize: serializeEad3Xml,
|
|
512
|
+
validate: validateEad3,
|
|
513
|
+
detect(input) {
|
|
514
|
+
return /<([A-Za-z0-9_-]+:)?ead[\s>]/.test(input);
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
//#endregion
|
|
519
|
+
export { EAD3_ADAPTER_PROFILE, EAD3_FORMAT_GENERATION, EAD3_FORMAT_ID, EAD3_NAMESPACE, EAD3_OFFICIAL_SCHEMA_VALIDATION, EAD3_SCHEMA_REVISION, EAD3_SCHEMA_VERSION, EAD3_TAG_LIBRARY_VERSION, EAD3_VALIDATION_LEVEL, ead3Adapter, ead3FromXmlDocument, ead3ToXmlDocument, parseEad3Xml, serializeEad3Xml, validateEad3 };
|
|
520
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["EAD3_ADAPTER_PROFILE: Ead3AdapterProfile","componentExtensions: Ead3ComponentExtensions","issues: FormatIssue[]","extensions: Ead3FindingAidExtensions","findingAid: Ead3FindingAid"],"sources":["../../src/ead3/ead3.ts"],"sourcesContent":["import {\n asXmlArray,\n buildXml,\n findXmlValue,\n getXmlText,\n normalizeXmlName,\n parseXml,\n type XmlDocument,\n type XmlObject,\n} from '../xml/index.js';\nimport {\n createFormatIssue,\n formatFail,\n formatOk,\n hasFormatErrors,\n type FormatFailure,\n type FormatIssue,\n type FormatSuccess,\n type ParseResult,\n type RecordFormatAdapter,\n type SerializeResult,\n} from '../result.js';\nimport type {\n Ead3AdapterProfile,\n Ead3Component,\n Ead3ComponentExtensions,\n Ead3Date,\n Ead3DigitalObjectRef,\n Ead3FindingAid,\n Ead3FindingAidExtensions,\n Ead3HrefPolicyKind,\n Ead3LevelOfDescription,\n Ead3MaintenanceStatus,\n Ead3ParseOptions,\n Ead3SerializeOptions,\n Ead3ValidationOptions,\n Ead3XmlExtensions,\n} from './types.js';\n\nexport const EAD3_FORMAT_ID = 'ead3';\nexport const EAD3_NAMESPACE = 'http://ead3.archivists.org/schema/';\nexport const EAD3_FORMAT_GENERATION = 'EAD3';\nexport const EAD3_SCHEMA_VERSION = '1.1.1';\nexport const EAD3_SCHEMA_REVISION = '1.1.1';\nexport const EAD3_TAG_LIBRARY_VERSION = '1.1.2';\nexport const EAD3_VALIDATION_LEVEL = 'projection';\nexport const EAD3_OFFICIAL_SCHEMA_VALIDATION = false;\nexport const EAD3_ADAPTER_PROFILE: Ead3AdapterProfile = {\n profileId: 'daihum.record-formats.ead3.projection.v0',\n profileVersion: '0.1.0',\n formatId: EAD3_FORMAT_ID,\n formatGeneration: EAD3_FORMAT_GENERATION,\n namespace: EAD3_NAMESPACE,\n schemaVersion: EAD3_SCHEMA_VERSION,\n schemaRevision: EAD3_SCHEMA_REVISION,\n tagLibraryVersion: EAD3_TAG_LIBRARY_VERSION,\n validationLevel: EAD3_VALIDATION_LEVEL,\n officialSchemaValidation: EAD3_OFFICIAL_SCHEMA_VALIDATION,\n conformanceNotes: [\n 'This adapter is a DAIHUM finding-aid projection for common EAD3 elements.',\n 'Validation checks required projection fields and structured parser/serializer invariants.',\n 'It does not run official EAD3 RNG, XSD, DTD, or Schematron schema validation.',\n 'Unknown XML subtrees can be preserved through extension fields when preserveUnknown is enabled.',\n 'DAIHUM href/source policy metadata is carried as projection attributes and is not official EAD3 schema validation.',\n ],\n sourceReferences: [\n {\n label: 'Library of Congress EAD3 schema page',\n url: 'https://www.loc.gov/ead/ead3schema.html',\n },\n {\n label: 'Library of Congress EAD3 tag library',\n url: 'https://www.loc.gov/ead/EAD3taglib/',\n },\n ],\n};\n\nexport type Ead3ResultMetadata = Readonly<{\n adapterProfile: Ead3AdapterProfile;\n}>;\n\nexport type Ead3ParseResult = ParseResult<Ead3FindingAid> & Ead3ResultMetadata;\nexport type Ead3XmlDocumentResult = SerializeResult<XmlDocument> & Ead3ResultMetadata;\nexport type Ead3XmlSerializeResult = SerializeResult<string> & Ead3ResultMetadata;\n\nconst EAD3_ARRAY_TAGS = ['unitdate', 'dao', 'c', 'odd'];\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction readString(value: unknown): string | undefined {\n if (typeof value !== 'string') return undefined;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction readElementText(parent: unknown, localName: string): string | undefined {\n return getXmlText(findXmlValue(parent, localName));\n}\n\nfunction readParagraphElementText(parent: unknown, localName: string): string | undefined {\n return readElementText(readRecord(parent, localName), 'p');\n}\n\nfunction readRecord(parent: unknown, localName: string): Record<string, unknown> {\n const value = findXmlValue(parent, localName);\n return isRecord(value) ? value : {};\n}\n\nfunction createEad3Issue(params: {\n code: string;\n path: string;\n message: string;\n severity?: 'error' | 'warning';\n}): FormatIssue {\n return createFormatIssue({\n severity: params.severity ?? 'error',\n code: params.code,\n path: params.path,\n message: params.message,\n format: EAD3_FORMAT_ID,\n });\n}\n\nfunction withEad3Profile<T extends ParseResult<unknown> | SerializeResult<unknown>>(result: T): T & Ead3ResultMetadata {\n return {\n ...result,\n adapterProfile: EAD3_ADAPTER_PROFILE,\n };\n}\n\nfunction ead3Ok<T>(value: T, issues: readonly FormatIssue[] = []): FormatSuccessWithProfile<T> {\n return withEad3Profile(formatOk(value, issues));\n}\n\nfunction ead3Fail<T = never>(issues: readonly FormatIssue[], value?: T): FormatFailureWithProfile<T> {\n return withEad3Profile(formatFail(issues, value));\n}\n\ntype FormatSuccessWithProfile<T> = FormatSuccess<T> & Ead3ResultMetadata;\ntype FormatFailureWithProfile<T = never> = FormatFailure<T> & Ead3ResultMetadata;\n\nfunction collectUnknownXml(\n record: Record<string, unknown>,\n knownLocalNames: readonly string[],\n): Ead3XmlExtensions | undefined {\n const known = new Set(knownLocalNames);\n const unknown = Object.fromEntries(\n Object.entries(record).filter(([key]) => !known.has(normalizeXmlName(key))),\n );\n return Object.keys(unknown).length > 0 ? unknown : undefined;\n}\n\nfunction mergeKnown<T extends Record<string, unknown>>(\n extension: Ead3XmlExtensions | undefined,\n known: T,\n): Record<string, unknown> {\n return {\n ...(extension ?? {}),\n ...known,\n };\n}\n\nfunction hasExtensionKeys(extension: Ead3XmlExtensions | undefined): boolean {\n return extension !== undefined && Object.keys(extension).length > 0;\n}\n\nfunction hasComponentExtensions(extensions: Ead3ComponentExtensions): boolean {\n return hasExtensionKeys(extensions.xml) || hasExtensionKeys(extensions.did);\n}\n\nfunction hasFindingAidExtensions(extensions: Ead3FindingAidExtensions): boolean {\n return hasExtensionKeys(extensions.ead) || hasExtensionKeys(extensions.control);\n}\n\nfunction dateToXml(date: Ead3Date): Record<string, unknown> {\n return mergeKnown(date.extensions, {\n '#text': date.expression,\n ...(date.normalized ? { '@_normal': date.normalized } : {}),\n ...(date.type ? { '@_type': date.type } : {}),\n });\n}\n\nfunction textBlockToXml(value: string): Record<string, unknown> {\n return { p: value };\n}\n\nfunction isHrefPolicyKind(value: string | undefined): value is Ead3HrefPolicyKind {\n return value === 'preserve' || value === 'relative' || value === 'redact' || value === 'externalize';\n}\n\nfunction readJsonRecord(value: unknown): Record<string, unknown> | undefined {\n const text = readString(value);\n if (!text) return undefined;\n try {\n const parsed = JSON.parse(text) as unknown;\n return isRecord(parsed) ? parsed : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction jsonRecordAttribute(value: Readonly<Record<string, unknown>> | undefined): string | undefined {\n if (!value || Object.keys(value).length === 0) return undefined;\n try {\n return JSON.stringify(value);\n } catch {\n return undefined;\n }\n}\n\nfunction digitalObjectToXml(ref: Ead3DigitalObjectRef): Record<string, unknown> {\n const locatorJson = jsonRecordAttribute(ref.sourceRef?.locator);\n const metadataJson = jsonRecordAttribute(ref.sourceRef?.metadata);\n return mergeKnown(ref.extensions, {\n '@_href': ref.href,\n ...(ref.label ? { '@_label': ref.label } : {}),\n ...(ref.role ? { '@_role': ref.role } : {}),\n ...(ref.targetKind ? { '@_targetkind': ref.targetKind } : {}),\n ...(ref.hrefPolicy?.kind ? { '@_data-daihum-href-policy': ref.hrefPolicy.kind } : {}),\n ...(ref.hrefPolicy?.publicHref ? { '@_data-daihum-public-href': ref.hrefPolicy.publicHref } : {}),\n ...(ref.hrefPolicy?.baseHref ? { '@_data-daihum-base-href': ref.hrefPolicy.baseHref } : {}),\n ...(ref.hrefPolicy?.redactedHref ? { '@_data-daihum-redacted-href': ref.hrefPolicy.redactedHref } : {}),\n ...(ref.hrefPolicy?.note ? { '@_data-daihum-policy-note': ref.hrefPolicy.note } : {}),\n ...(ref.sourceRef?.kind ? { '@_data-daihum-source-kind': ref.sourceRef.kind } : {}),\n ...(ref.sourceRef?.id ? { '@_data-daihum-source-id': ref.sourceRef.id } : {}),\n ...(ref.sourceRef?.label ? { '@_data-daihum-source-label': ref.sourceRef.label } : {}),\n ...(locatorJson ? { '@_data-daihum-source-locator': locatorJson } : {}),\n ...(metadataJson ? { '@_data-daihum-source-metadata': metadataJson } : {}),\n });\n}\n\nfunction componentToXml(component: Ead3Component): Record<string, unknown> {\n const did = mergeKnown(component.extensions?.did, {\n ...(component.referenceCode ? { unitid: component.referenceCode } : {}),\n unittitle: component.title,\n ...(component.dates?.length ? { unitdate: component.dates.map(dateToXml) } : {}),\n ...(component.extent ? { physdesc: { extent: component.extent } } : {}),\n ...(component.creator ? { origination: { name: component.creator } } : {}),\n ...(component.language ? { langmaterial: { language: component.language } } : {}),\n ...(component.digitalObjects?.length\n ? { dao: component.digitalObjects.map(digitalObjectToXml) }\n : {}),\n });\n\n return mergeKnown(component.extensions?.xml, {\n ...(component.id ? { '@_id': component.id } : {}),\n '@_level': component.level,\n ...(component.otherLevel ? { '@_otherlevel': component.otherLevel } : {}),\n did,\n ...(component.abstract ? { abstract: textBlockToXml(component.abstract) } : {}),\n ...(component.scopeContent ? { scopecontent: { p: component.scopeContent } } : {}),\n ...(component.arrangement ? { arrangement: { p: component.arrangement } } : {}),\n ...(component.accessRestriction ? { accessrestrict: { p: component.accessRestriction } } : {}),\n ...(component.useRestriction ? { userestrict: { p: component.useRestriction } } : {}),\n ...(component.biographicalHistory ? { bioghist: textBlockToXml(component.biographicalHistory) } : {}),\n ...(component.custodialHistory ? { custodhist: { p: component.custodialHistory } } : {}),\n ...(component.acquisitionInformation ? { acqinfo: textBlockToXml(component.acquisitionInformation) } : {}),\n ...(component.appraisal ? { appraisal: textBlockToXml(component.appraisal) } : {}),\n ...(component.processingInformation ? { processinfo: textBlockToXml(component.processingInformation) } : {}),\n ...(component.relatedMaterial ? { relatedmaterial: textBlockToXml(component.relatedMaterial) } : {}),\n ...(component.separatedMaterial ? { separatedmaterial: textBlockToXml(component.separatedMaterial) } : {}),\n ...(component.preferredCitation ? { prefercite: textBlockToXml(component.preferredCitation) } : {}),\n ...(component.notes?.length ? { odd: component.notes.map((note) => ({ p: note })) } : {}),\n ...(component.components?.length ? { dsc: { c: component.components.map(componentToXml) } } : {}),\n });\n}\n\nfunction findingAidToXmlObject(findingAid: Ead3FindingAid): XmlObject {\n const control = mergeKnown(findingAid.extensions?.control, {\n recordid: findingAid.recordId,\n maintenancestatus: findingAid.maintenanceStatus ?? 'new',\n publicationstatus: 'inprocess',\n ...(findingAid.agencyName ? { maintenanceagency: { agencyname: findingAid.agencyName } } : {}),\n filedesc: {\n titlestmt: {\n titleproper: findingAid.title,\n },\n },\n });\n\n return {\n ead: mergeKnown(findingAid.extensions?.ead, {\n '@_xmlns': EAD3_NAMESPACE,\n control,\n archdesc: componentToXml(findingAid.description),\n }),\n };\n}\n\nfunction readDate(value: unknown): Ead3Date | undefined {\n const expression = getXmlText(value);\n if (!expression) return undefined;\n const record = isRecord(value) ? value : {};\n const normalized = readString(findXmlValue(record, 'normal'));\n const type = readString(findXmlValue(record, 'type'));\n const extensions = collectUnknownXml(record, ['#text', 'normal', 'type']);\n return {\n expression,\n ...(normalized ? { normalized } : {}),\n ...(type ? { type } : {}),\n ...(extensions ? { extensions } : {}),\n };\n}\n\nfunction readDigitalObject(value: unknown): Ead3DigitalObjectRef | undefined {\n if (!isRecord(value)) return undefined;\n const href = readString(findXmlValue(value, 'href'));\n if (!href) return undefined;\n const label = readString(findXmlValue(value, 'label'));\n const role = readString(findXmlValue(value, 'role'));\n const targetKind = readString(findXmlValue(value, 'targetkind'));\n const hrefPolicyKind = readString(findXmlValue(value, 'data-daihum-href-policy'));\n const publicHref = readString(findXmlValue(value, 'data-daihum-public-href'));\n const baseHref = readString(findXmlValue(value, 'data-daihum-base-href'));\n const redactedHref = readString(findXmlValue(value, 'data-daihum-redacted-href'));\n const policyNote = readString(findXmlValue(value, 'data-daihum-policy-note'));\n const sourceKind = readString(findXmlValue(value, 'data-daihum-source-kind'));\n const sourceId = readString(findXmlValue(value, 'data-daihum-source-id'));\n const sourceLabel = readString(findXmlValue(value, 'data-daihum-source-label'));\n const sourceLocator = readJsonRecord(findXmlValue(value, 'data-daihum-source-locator'));\n const sourceMetadata = readJsonRecord(findXmlValue(value, 'data-daihum-source-metadata'));\n const extensions = collectUnknownXml(value, [\n 'href',\n 'label',\n 'role',\n 'targetkind',\n 'data-daihum-href-policy',\n 'data-daihum-public-href',\n 'data-daihum-base-href',\n 'data-daihum-redacted-href',\n 'data-daihum-policy-note',\n 'data-daihum-source-kind',\n 'data-daihum-source-id',\n 'data-daihum-source-label',\n 'data-daihum-source-locator',\n 'data-daihum-source-metadata',\n ]);\n return {\n href,\n ...(label ? { label } : {}),\n ...(role ? { role } : {}),\n ...(targetKind ? { targetKind } : {}),\n ...(isHrefPolicyKind(hrefPolicyKind)\n ? {\n hrefPolicy: {\n kind: hrefPolicyKind,\n ...(publicHref ? { publicHref } : {}),\n ...(baseHref ? { baseHref } : {}),\n ...(redactedHref ? { redactedHref } : {}),\n ...(policyNote ? { note: policyNote } : {}),\n },\n }\n : {}),\n ...(sourceKind && sourceId\n ? {\n sourceRef: {\n kind: sourceKind,\n id: sourceId,\n ...(sourceLabel ? { label: sourceLabel } : {}),\n ...(sourceLocator ? { locator: sourceLocator } : {}),\n ...(sourceMetadata ? { metadata: sourceMetadata } : {}),\n },\n }\n : {}),\n ...(extensions ? { extensions } : {}),\n };\n}\n\nfunction readMaintenanceStatus(value: unknown): Ead3MaintenanceStatus | undefined {\n const status = getXmlText(value);\n if (\n status === 'new' ||\n status === 'revised' ||\n status === 'deleted' ||\n status === 'derived' ||\n status === 'unknown'\n ) {\n return status;\n }\n return undefined;\n}\n\nfunction readLevel(value: unknown): {\n level: Ead3LevelOfDescription;\n otherLevel?: string;\n} {\n const level = readString(value);\n if (\n level === 'collection' ||\n level === 'series' ||\n level === 'subseries' ||\n level === 'file' ||\n level === 'item' ||\n level === 'otherlevel'\n ) {\n return { level };\n }\n return {\n level: 'otherlevel',\n ...(level ? { otherLevel: level } : {}),\n };\n}\n\nfunction readComponent(\n value: unknown,\n path: string,\n issues: FormatIssue[],\n options: Ead3ParseOptions,\n): Ead3Component | undefined {\n if (!isRecord(value)) return undefined;\n\n const did = readRecord(value, 'did');\n const title = readElementText(did, 'unittitle') ?? '';\n if (!title) {\n issues.push(createEad3Issue({\n code: 'ead3.component.title.required',\n path: `${path}.title`,\n message: 'EAD3 component title is required.',\n }));\n }\n\n const childrenContainer = readRecord(value, 'dsc');\n const dates = asXmlArray(findXmlValue(did, 'unitdate'))\n .map(readDate)\n .filter((date): date is Ead3Date => Boolean(date));\n const digitalObjects = asXmlArray(findXmlValue(did, 'dao'))\n .map(readDigitalObject)\n .filter((ref): ref is Ead3DigitalObjectRef => Boolean(ref));\n const components = asXmlArray(findXmlValue(childrenContainer, 'c'))\n .map((child, index) => readComponent(child, `${path}.components.${index}`, issues, options))\n .filter((component): component is Ead3Component => Boolean(component));\n const level = readLevel(findXmlValue(value, 'level'));\n const explicitOtherLevel = readString(findXmlValue(value, 'otherlevel'));\n const id = readString(findXmlValue(value, 'id'));\n const referenceCode = readElementText(did, 'unitid');\n const extent = readElementText(readRecord(did, 'physdesc'), 'extent');\n const creator = readElementText(readRecord(did, 'origination'), 'name');\n const abstract = readParagraphElementText(value, 'abstract');\n const scopeContent = readParagraphElementText(value, 'scopecontent');\n const arrangement = readParagraphElementText(value, 'arrangement');\n const accessRestriction = readParagraphElementText(value, 'accessrestrict');\n const useRestriction = readParagraphElementText(value, 'userestrict');\n const language = readElementText(readRecord(did, 'langmaterial'), 'language');\n const biographicalHistory = readParagraphElementText(value, 'bioghist');\n const custodialHistory = readParagraphElementText(value, 'custodhist');\n const acquisitionInformation = readParagraphElementText(value, 'acqinfo');\n const appraisal = readParagraphElementText(value, 'appraisal');\n const processingInformation = readParagraphElementText(value, 'processinfo');\n const relatedMaterial = readParagraphElementText(value, 'relatedmaterial');\n const separatedMaterial = readParagraphElementText(value, 'separatedmaterial');\n const preferredCitation = readParagraphElementText(value, 'prefercite');\n const notes = asXmlArray(findXmlValue(value, 'odd'))\n .map((note) => readElementText(note, 'p'))\n .filter((note): note is string => Boolean(note));\n const componentUnknown = collectUnknownXml(value, [\n 'id',\n 'level',\n 'otherlevel',\n 'did',\n 'abstract',\n 'scopecontent',\n 'arrangement',\n 'accessrestrict',\n 'userestrict',\n 'bioghist',\n 'custodhist',\n 'acqinfo',\n 'appraisal',\n 'processinfo',\n 'relatedmaterial',\n 'separatedmaterial',\n 'prefercite',\n 'odd',\n 'dsc',\n ]);\n const didUnknown = collectUnknownXml(did, [\n 'unitid',\n 'unittitle',\n 'unitdate',\n 'physdesc',\n 'origination',\n 'langmaterial',\n 'dao',\n ]);\n\n const componentExtensions: Ead3ComponentExtensions = options.preserveUnknown === false\n ? {}\n : {\n ...(componentUnknown ? { xml: componentUnknown } : {}),\n ...(didUnknown ? { did: didUnknown } : {}),\n };\n\n return {\n ...(id ? { id } : {}),\n level: level.level,\n ...(explicitOtherLevel ?? level.otherLevel ? { otherLevel: explicitOtherLevel ?? level.otherLevel } : {}),\n title,\n ...(referenceCode ? { referenceCode } : {}),\n ...(dates.length > 0 ? { dates } : {}),\n ...(extent ? { extent } : {}),\n ...(creator ? { creator } : {}),\n ...(abstract ? { abstract } : {}),\n ...(scopeContent ? { scopeContent } : {}),\n ...(arrangement ? { arrangement } : {}),\n ...(accessRestriction ? { accessRestriction } : {}),\n ...(useRestriction ? { useRestriction } : {}),\n ...(language ? { language } : {}),\n ...(biographicalHistory ? { biographicalHistory } : {}),\n ...(custodialHistory ? { custodialHistory } : {}),\n ...(acquisitionInformation ? { acquisitionInformation } : {}),\n ...(appraisal ? { appraisal } : {}),\n ...(processingInformation ? { processingInformation } : {}),\n ...(relatedMaterial ? { relatedMaterial } : {}),\n ...(separatedMaterial ? { separatedMaterial } : {}),\n ...(preferredCitation ? { preferredCitation } : {}),\n ...(notes.length > 0 ? { notes } : {}),\n ...(digitalObjects.length > 0 ? { digitalObjects } : {}),\n ...(components.length > 0 ? { components } : {}),\n ...(hasComponentExtensions(componentExtensions) ? { extensions: componentExtensions } : {}),\n };\n}\n\nfunction getEadRoot(document: XmlDocument): Record<string, unknown> | undefined {\n if (normalizeXmlName(document.rootName) === 'ead') return document.root as Record<string, unknown>;\n const maybeEad = findXmlValue(document.raw, 'ead');\n return isRecord(maybeEad) ? maybeEad : undefined;\n}\n\nexport function ead3FromXmlDocument(\n document: XmlDocument,\n options: Ead3ParseOptions = {},\n): Ead3ParseResult {\n const issues: FormatIssue[] = [];\n const ead = getEadRoot(document);\n\n if (!ead) {\n return ead3Fail([\n createEad3Issue({\n code: 'ead3.root.required',\n path: 'ead',\n message: 'EAD3 document must contain an ead root element.',\n }),\n ]);\n }\n\n const control = readRecord(ead, 'control');\n const filedesc = readRecord(control, 'filedesc');\n const titlestmt = readRecord(filedesc, 'titlestmt');\n const description = readComponent(findXmlValue(ead, 'archdesc'), 'description', issues, options);\n\n if (!description) {\n return ead3Fail([\n createEad3Issue({\n code: 'ead3.archdesc.required',\n path: 'ead.archdesc',\n message: 'EAD3 document must contain an archdesc element.',\n }),\n ]);\n }\n\n const recordId = readElementText(control, 'recordid') ?? '';\n if (!recordId) {\n issues.push(createEad3Issue({\n code: 'ead3.recordId.required',\n path: 'recordId',\n message: 'EAD3 record id is required.',\n }));\n }\n\n const title = readElementText(titlestmt, 'titleproper') ?? description.title;\n if (!title) {\n issues.push(createEad3Issue({\n code: 'ead3.title.required',\n path: 'title',\n message: 'EAD3 title is required.',\n }));\n }\n\n const agencyName = readElementText(readRecord(control, 'maintenanceagency'), 'agencyname');\n const maintenanceStatus = readMaintenanceStatus(findXmlValue(control, 'maintenancestatus'));\n const eadUnknown = options.preserveUnknown === false\n ? undefined\n : collectUnknownXml(ead, ['xmlns', 'control', 'archdesc']);\n const controlUnknown = options.preserveUnknown === false\n ? undefined\n : collectUnknownXml(control, [\n 'recordid',\n 'maintenancestatus',\n 'publicationstatus',\n 'maintenanceagency',\n 'filedesc',\n ]);\n const extensions: Ead3FindingAidExtensions = {\n ...(eadUnknown ? { ead: eadUnknown } : {}),\n ...(controlUnknown ? { control: controlUnknown } : {}),\n };\n const findingAid: Ead3FindingAid = {\n recordId,\n title,\n ...(maintenanceStatus ? { maintenanceStatus } : {}),\n ...(agencyName ? { agencyName } : {}),\n description,\n ...(hasFindingAidExtensions(extensions) ? { extensions } : {}),\n };\n\n return hasFormatErrors(issues) ? ead3Fail(issues, findingAid) : ead3Ok(findingAid, issues);\n}\n\nexport function parseEad3Xml(\n input: string,\n options: Ead3ParseOptions = {},\n): Ead3ParseResult {\n const parsed = parseXml(input, {\n arrayTags: EAD3_ARRAY_TAGS,\n });\n if (!parsed.ok) return ead3Fail(parsed.issues);\n return ead3FromXmlDocument(parsed.value, options);\n}\n\nexport function ead3ToXmlDocument(\n findingAid: Ead3FindingAid,\n options: Ead3ValidationOptions = {},\n): Ead3XmlDocumentResult {\n const issues = validateEad3(findingAid, options);\n if (hasFormatErrors(issues)) return ead3Fail(issues);\n\n const raw = findingAidToXmlObject(findingAid);\n const ead = raw.ead;\n if (!isRecord(ead)) {\n return ead3Fail([\n createEad3Issue({\n code: 'ead3.serialize.failed',\n path: 'ead',\n message: 'EAD3 serializer did not produce an ead root element.',\n }),\n ]);\n }\n return ead3Ok({ rootName: 'ead', root: ead, raw });\n}\n\nexport function serializeEad3Xml(\n findingAid: Ead3FindingAid,\n options: Ead3SerializeOptions = {},\n): Ead3XmlSerializeResult {\n const document = ead3ToXmlDocument(findingAid);\n if (!document.ok) return ead3Fail(document.issues);\n return withEad3Profile(buildXml(document.value, { format: options.format ?? true, suppressEmptyNode: true }));\n}\n\nfunction validateComponent(component: Ead3Component, path: string): FormatIssue[] {\n const issues: FormatIssue[] = [];\n if (!readString(component.title)) {\n issues.push(createEad3Issue({\n code: 'ead3.component.title.required',\n path: `${path}.title`,\n message: 'EAD3 component title is required.',\n }));\n }\n\n component.digitalObjects?.forEach((ref, index) => {\n if (!readString(ref.href)) {\n issues.push(createEad3Issue({\n code: 'ead3.digitalObject.href.required',\n path: `${path}.digitalObjects.${index}.href`,\n message: 'EAD3 digital object href is required.',\n }));\n }\n });\n\n component.components?.forEach((child, index) => {\n issues.push(...validateComponent(child, `${path}.components.${index}`));\n });\n\n return issues;\n}\n\nexport function validateEad3(\n findingAid: Ead3FindingAid,\n options: Ead3ValidationOptions = {},\n): readonly FormatIssue[] {\n const issues: FormatIssue[] = [];\n if ((options.requireRecordId ?? true) && !readString(findingAid.recordId)) {\n issues.push(createEad3Issue({\n code: 'ead3.recordId.required',\n path: 'recordId',\n message: 'EAD3 record id is required.',\n }));\n }\n if (!readString(findingAid.title)) {\n issues.push(createEad3Issue({\n code: 'ead3.title.required',\n path: 'title',\n message: 'EAD3 title is required.',\n }));\n }\n issues.push(...validateComponent(findingAid.description, 'description'));\n return issues;\n}\n\nexport const ead3Adapter = {\n format: EAD3_FORMAT_ID,\n profile: EAD3_ADAPTER_PROFILE,\n parse: parseEad3Xml,\n serialize: serializeEad3Xml,\n validate: validateEad3,\n detect(input: string): boolean {\n return /<([A-Za-z0-9_-]+:)?ead[\\s>]/.test(input);\n },\n} satisfies RecordFormatAdapter<Ead3FindingAid> & { profile: Ead3AdapterProfile };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { l as SerializeResult, s as ParseResult } from "./result-Dd9q1uJU.js";
|
|
2
|
+
|
|
3
|
+
//#region src/xml/types.d.ts
|
|
4
|
+
type XmlAttributeMap = Readonly<Record<string, string | number | boolean>>;
|
|
5
|
+
type XmlNamespaceMap = Readonly<Record<string, string>>;
|
|
6
|
+
type XmlObject = Readonly<Record<string, unknown>>;
|
|
7
|
+
type XmlDocument = Readonly<{
|
|
8
|
+
rootName: string;
|
|
9
|
+
root: XmlObject;
|
|
10
|
+
raw: XmlObject;
|
|
11
|
+
}>;
|
|
12
|
+
type XmlName = Readonly<{
|
|
13
|
+
name: string;
|
|
14
|
+
localName: string;
|
|
15
|
+
prefix?: string;
|
|
16
|
+
isAttribute: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
type XmlParseOptions = Readonly<{
|
|
19
|
+
arrayTags?: readonly string[] | ((name: string, path: string) => boolean);
|
|
20
|
+
preserveBooleanAttributes?: boolean;
|
|
21
|
+
trimValues?: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
type XmlBuildOptions = Readonly<{
|
|
24
|
+
format?: boolean;
|
|
25
|
+
suppressEmptyNode?: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/xml/xml.d.ts
|
|
29
|
+
declare function parseXml(input: string, options?: XmlParseOptions): ParseResult<XmlDocument>;
|
|
30
|
+
declare function buildXml(document: XmlDocument | XmlObject, options?: XmlBuildOptions): SerializeResult<string>;
|
|
31
|
+
declare function isXmlDocument(value: unknown): value is XmlDocument;
|
|
32
|
+
declare function splitXmlName(name: string): XmlName;
|
|
33
|
+
declare function normalizeXmlName(name: string): string;
|
|
34
|
+
declare function asXmlArray<T>(value: T | readonly T[] | undefined): readonly T[];
|
|
35
|
+
declare function findXmlValue(parent: unknown, localName: string): unknown;
|
|
36
|
+
declare function getXmlChildren(parent: unknown, localName: string): readonly unknown[];
|
|
37
|
+
declare function getXmlText(value: unknown): string | undefined;
|
|
38
|
+
declare function xmlPathToString(path: readonly (string | number)[]): string;
|
|
39
|
+
//#endregion
|
|
40
|
+
export { XmlParseOptions as _, getXmlText as a, parseXml as c, XmlAttributeMap as d, XmlBuildOptions as f, XmlObject as g, XmlNamespaceMap as h, getXmlChildren as i, splitXmlName as l, XmlName as m, buildXml as n, isXmlDocument as o, XmlDocument as p, findXmlValue as r, normalizeXmlName as s, asXmlArray as t, xmlPathToString as u };
|
|
41
|
+
//# sourceMappingURL=index-90ZPmZ85.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-90ZPmZ85.d.ts","names":[],"sources":["../src/xml/types.ts","../src/xml/xml.ts"],"sourcesContent":[],"mappings":";;;KAAY,eAAA,GAAkB,SAAS;KAC3B,eAAA,GAAkB,SAAS;KAC3B,SAAA,GAAY,SAAS;AAFrB,KAIA,WAAA,GAAc,QAJa,CAAA;EAC3B,QAAA,EAAA,MAAA;EACA,IAAA,EAIJ,SAJa;EAET,GAAA,EAGL,SAHgB;CAEf,CAAA;AACD,KAGK,OAAA,GAAU,QAHf,CAAA;EAHmB,IAAA,EAAA,MAAA;EAAQ,SAAA,EAAA,MAAA;EAMtB,MAAA,CAAA,EAAA,MAAO;EAOP,WAAA,EAAA,OAAe;AAM3B,CAAA,CAAA;KANY,eAAA,GAAkB;;;ECsDd,UAAA,CAAQ,EAAA,OAAA;CAAyB,CAAA;AAAmC,KDhDxE,eAAA,GAAkB,QCgDsD,CAAA;EAAZ,MAAA,CAAA,EAAA,OAAA;EAAW,iBAAA,CAAA,EAAA,OAAA;AA+DnF,CAAA,CAAA;;;iBA/DgB,QAAA,0BAAiC,kBAAuB,YAAY;ADvExE,iBCsII,QAAA,CDtIW,QAAY,ECuI3B,WDvI0B,GCuIZ,SDvIY,EAAA,OAAA,CAAA,ECwI3B,eDxI2B,CAAA,ECyInC,eDzImC,CAAA,MAAA,CAAA;AAC1B,iBC8JI,aAAA,CD9JuB,KAAT,EAAA,OAAQ,CAAA,EAAA,KAAA,IC8JkB,WD9JlB;AAC1B,iBCsKI,YAAA,CDtKQ,IAAA,EAAA,MAAQ,CAAA,ECsKY,ODtKZ;AAEpB,iBCmLI,gBAAA,CDnLO,IAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAEf,iBCqLQ,UDrLR,CAAA,CAAA,CAAA,CAAA,KAAA,ECqL6B,CDrL7B,GAAA,SCqL0C,CDrL1C,EAAA,GAAA,SAAA,CAAA,EAAA,SCqLqE,CDrLrE,EAAA;AACD,iBC0LS,YAAA,CD1LT,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA;AAHmB,iBCwMV,cAAA,CDxMU,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,SAAA,OAAA,EAAA;AAAQ,iBC4MlB,UAAA,CD5MkB,KAAA,EAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AAMtB,iBCgNI,eAAA,CDhNc,IAAA,EAAA,SAAA,CAAA,MAAA,GAAA,MAAA,CAAA,EAAA,CAAA,EAAA,MAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as FormatSourceRange, c as RecordFormatAdapter, d as formatFail, f as formatOk, i as FormatResult, l as SerializeResult, n as FormatIssue, o as FormatSuccess, p as hasFormatErrors, r as FormatIssueSeverity, s as ParseResult, t as FormatFailure, u as createFormatIssue } from "./result-Dd9q1uJU.js";
|
|
2
|
+
export { type FormatFailure, type FormatIssue, type FormatIssueSeverity, type FormatResult, type FormatSourceRange, type FormatSuccess, type ParseResult, type RecordFormatAdapter, type SerializeResult, createFormatIssue, formatFail, formatOk, hasFormatErrors };
|