@kgdiff/formats 0.0.0-stage → 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.
Files changed (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -2
  3. package/dist/detect.d.ts +47 -0
  4. package/dist/detect.d.ts.map +1 -0
  5. package/dist/detect.js +425 -0
  6. package/dist/detect.js.map +1 -0
  7. package/dist/index.d.ts +203 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +114 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/iri.d.ts +13 -0
  12. package/dist/iri.d.ts.map +1 -0
  13. package/dist/iri.js +91 -0
  14. package/dist/iri.js.map +1 -0
  15. package/dist/json.d.ts +30 -0
  16. package/dist/json.d.ts.map +1 -0
  17. package/dist/json.js +749 -0
  18. package/dist/json.js.map +1 -0
  19. package/dist/jsonld.d.ts +16 -0
  20. package/dist/jsonld.d.ts.map +1 -0
  21. package/dist/jsonld.js +1249 -0
  22. package/dist/jsonld.js.map +1 -0
  23. package/dist/obo.d.ts +25 -0
  24. package/dist/obo.d.ts.map +1 -0
  25. package/dist/obo.js +478 -0
  26. package/dist/obo.js.map +1 -0
  27. package/dist/prefixes.d.ts +49 -0
  28. package/dist/prefixes.d.ts.map +1 -0
  29. package/dist/prefixes.js +177 -0
  30. package/dist/prefixes.js.map +1 -0
  31. package/dist/rdf.d.ts +46 -0
  32. package/dist/rdf.d.ts.map +1 -0
  33. package/dist/rdf.js +1047 -0
  34. package/dist/rdf.js.map +1 -0
  35. package/dist/rdfxml.d.ts +8 -0
  36. package/dist/rdfxml.d.ts.map +1 -0
  37. package/dist/rdfxml.js +529 -0
  38. package/dist/rdfxml.js.map +1 -0
  39. package/dist/shared.d.ts +117 -0
  40. package/dist/shared.d.ts.map +1 -0
  41. package/dist/shared.js +355 -0
  42. package/dist/shared.js.map +1 -0
  43. package/dist/xml.d.ts +50 -0
  44. package/dist/xml.d.ts.map +1 -0
  45. package/dist/xml.js +508 -0
  46. package/dist/xml.js.map +1 -0
  47. package/package.json +55 -3
  48. package/src/detect.ts +435 -0
  49. package/src/index.ts +296 -0
  50. package/src/iri.ts +86 -0
  51. package/src/json.ts +835 -0
  52. package/src/jsonld.ts +1376 -0
  53. package/src/obo.ts +557 -0
  54. package/src/prefixes.ts +195 -0
  55. package/src/rdf.ts +1181 -0
  56. package/src/rdfxml.ts +633 -0
  57. package/src/shared.ts +408 -0
  58. package/src/xml.ts +550 -0
package/dist/xml.js ADDED
@@ -0,0 +1,508 @@
1
+ /**
2
+ * A small, non-validating XML 1.0 parser with namespaces and SAX-style callbacks, for RDF/XML.
3
+ *
4
+ * Supports what real RDF/XML files contain: the XML declaration, comments, processing
5
+ * instructions, CDATA sections, character references, the predefined entities and general
6
+ * entities declared in the internal DTD subset (`<!ENTITY owl "…">`, as older Protégé / OWL API
7
+ * versions write). External DTDs and entities are never loaded (referencing an external
8
+ * entity is an error), and entity expansion is capped, so a "billion laughs" document fails
9
+ * fast instead of exhausting memory. Linear in the input size; no recursion, so nesting depth
10
+ * is unlimited.
11
+ */
12
+ import { lineAndColumn } from './shared.js';
13
+ export const XML_NS = 'http://www.w3.org/XML/1998/namespace';
14
+ const XMLNS_NS = 'http://www.w3.org/2000/xmlns/';
15
+ /**
16
+ * A well-formedness (or, thrown by a handler, grammar) error at an offset of the parsed text.
17
+ * `parseXml` fills in the 1-based `line` before passing it on.
18
+ */
19
+ export class XmlSyntaxError {
20
+ message;
21
+ offset;
22
+ line = 0;
23
+ constructor(message, offset) {
24
+ this.message = message;
25
+ this.offset = offset;
26
+ }
27
+ }
28
+ const NAME_START = 'A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D' +
29
+ '\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}';
30
+ const NAME_CHAR = `${NAME_START}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F\\u2040`;
31
+ const NC_NAME_SOURCE = `[${NAME_START}][${NAME_CHAR}]*`;
32
+ /** XML namespaces `NCName` (a name without colons): rdf:ID and rdf:nodeID values. */
33
+ export const NC_NAME = new RegExp(`^${NC_NAME_SOURCE}$`, 'u');
34
+ /** A qualified name at a position (sticky): `local` or `prefix:local`. */
35
+ const QNAME_AT = new RegExp(`(?:${NC_NAME_SOURCE}:)?${NC_NAME_SOURCE}`, 'uy');
36
+ /** An XML `Name` at a position (DTD declarations may use colons freely). */
37
+ const NAME_AT = new RegExp(`[:${NAME_START}][:${NAME_CHAR}]*`, 'uy');
38
+ const ENTITY_NAME = new RegExp(`^[:${NAME_START}][:${NAME_CHAR}]*$`, 'u');
39
+ const NOT_SPACE = /[^ \t\n\r]/;
40
+ const GT = 0x3e;
41
+ const SLASH = 0x2f;
42
+ const BANG = 0x21;
43
+ const QUESTION = 0x3f;
44
+ /** Entity expansion budget: generous for real files, fatal for exponential blow-ups. */
45
+ const MIN_EXPANSION_BUDGET = 4 * 1024 * 1024;
46
+ const EXPANSION_FACTOR = 16;
47
+ const PREDEFINED = {
48
+ lt: '<',
49
+ gt: '>',
50
+ amp: '&',
51
+ apos: "'",
52
+ quot: '"',
53
+ };
54
+ /**
55
+ * Parses an XML document, reporting elements, text, comments and processing instructions to
56
+ * `handler`. Line breaks are normalized to `\n` first (XML 1.0 §2.11). Throws `XmlSyntaxError`
57
+ * (with its line) on documents that are not namespace-well-formed, and passes on whatever
58
+ * the handler throws, filling in the line of handler-thrown `XmlSyntaxError`s too.
59
+ */
60
+ export function parseXml(text, handler) {
61
+ const source = text.includes('\r') ? text.replace(/\r\n?/g, '\n') : text;
62
+ try {
63
+ new XmlParser(source, handler).parse();
64
+ }
65
+ catch (error) {
66
+ if (error instanceof XmlSyntaxError)
67
+ error.line = lineAndColumn(source, error.offset).line;
68
+ throw error;
69
+ }
70
+ }
71
+ export const isXmlSpace = (value) => !NOT_SPACE.test(value);
72
+ class XmlParser {
73
+ text;
74
+ handler;
75
+ i = 0;
76
+ stack = [];
77
+ namespaces = new Map([['xml', XML_NS]]);
78
+ entities = new Map();
79
+ expansion = 0;
80
+ expansionBudget;
81
+ sawRoot = false;
82
+ sawDoctype = false;
83
+ constructor(text, handler) {
84
+ this.text = text;
85
+ this.handler = handler;
86
+ this.expansionBudget = Math.max(MIN_EXPANSION_BUDGET, EXPANSION_FACTOR * text.length);
87
+ }
88
+ parse() {
89
+ const { text } = this;
90
+ // Leading whitespace before the declaration is tolerated (strictly, it is an error).
91
+ const start = skipSpace(text, 0);
92
+ if (text.startsWith('<?xml', start) && /[ \t\n]/.test(text[start + 5] ?? '')) {
93
+ this.i = this.skipPast('?>', start, 'XML declaration');
94
+ }
95
+ while (this.i < text.length) {
96
+ const lt = text.indexOf('<', this.i);
97
+ const end = lt < 0 ? text.length : lt;
98
+ if (end > this.i)
99
+ this.characters(this.i, end);
100
+ if (lt < 0)
101
+ break;
102
+ this.i = lt;
103
+ const next = text.charCodeAt(lt + 1);
104
+ if (next === SLASH)
105
+ this.endTag();
106
+ else if (next === BANG)
107
+ this.markupDeclaration();
108
+ else if (next === QUESTION)
109
+ this.processingInstruction();
110
+ else
111
+ this.startTag();
112
+ }
113
+ const open = this.stack[this.stack.length - 1];
114
+ if (open)
115
+ throw new XmlSyntaxError(`Element <${open.qname}> is never closed`, open.offset);
116
+ if (!this.sawRoot)
117
+ throw new XmlSyntaxError('The document has no root element', text.length);
118
+ }
119
+ // ─── Markup ─────────────────────────────────────────────────────────────
120
+ startTag() {
121
+ const { text } = this;
122
+ const offset = this.i;
123
+ if (this.sawRoot && this.stack.length === 0) {
124
+ throw new XmlSyntaxError('Only one root element is allowed', offset);
125
+ }
126
+ const qname = this.qnameAt(offset + 1, 'an element name');
127
+ let i = offset + 1 + qname.length;
128
+ const raw = [];
129
+ let selfClosing = false;
130
+ for (;;) {
131
+ const at = skipSpace(text, i);
132
+ const c = text.charCodeAt(at);
133
+ if (c === GT) {
134
+ i = at + 1;
135
+ break;
136
+ }
137
+ if (c === SLASH && text.charCodeAt(at + 1) === GT) {
138
+ i = at + 2;
139
+ selfClosing = true;
140
+ break;
141
+ }
142
+ if (at >= text.length)
143
+ throw new XmlSyntaxError(`Unclosed tag <${qname}>`, offset);
144
+ if (at === i)
145
+ throw new XmlSyntaxError(`Expected whitespace, ">" or "/>" in <${qname}>`, at);
146
+ const name = this.qnameAt(at, 'an attribute name');
147
+ let j = skipSpace(text, at + name.length);
148
+ if (text[j] !== '=')
149
+ throw new XmlSyntaxError(`Expected "=" after attribute ${name}`, j);
150
+ j = skipSpace(text, j + 1);
151
+ const quote = text[j];
152
+ if (quote !== '"' && quote !== "'") {
153
+ throw new XmlSyntaxError(`Expected a quoted value for attribute ${name}`, j);
154
+ }
155
+ const close = text.indexOf(quote, j + 1);
156
+ if (close < 0)
157
+ throw new XmlSyntaxError(`Unterminated value of attribute ${name}`, j);
158
+ const value = text.slice(j + 1, close);
159
+ if (value.includes('<')) {
160
+ throw new XmlSyntaxError(`"<" is not allowed in the value of attribute ${name}`, j);
161
+ }
162
+ raw.push([name, value, at]);
163
+ i = close + 1;
164
+ }
165
+ this.i = i;
166
+ this.openElement(qname, raw, offset, selfClosing);
167
+ }
168
+ openElement(qname, raw, offset, selfClosing) {
169
+ const outer = this.namespaces;
170
+ let declarations;
171
+ const declared = [];
172
+ for (const [name, value, at] of raw) {
173
+ if (name !== 'xmlns' && !name.startsWith('xmlns:'))
174
+ continue;
175
+ const prefix = name === 'xmlns' ? '' : name.slice(6);
176
+ const uri = this.attributeValue(value, at);
177
+ checkNamespaceDeclaration(prefix, uri, at);
178
+ declarations ??= new Map(outer);
179
+ declarations.set(prefix, uri);
180
+ declared.push([prefix, uri]);
181
+ }
182
+ const scope = declarations ?? outer;
183
+ const element = splitName(qname, scope, offset, true);
184
+ const attributes = [];
185
+ const seen = raw.length > 1 ? new Set() : undefined;
186
+ for (const [name, value, at] of raw) {
187
+ if (seen) {
188
+ if (seen.has(name))
189
+ throw new XmlSyntaxError(`Duplicate attribute ${name}`, at);
190
+ seen.add(name);
191
+ }
192
+ if (name === 'xmlns' || name.startsWith('xmlns:'))
193
+ continue;
194
+ const attribute = {
195
+ ...splitName(name, scope, at, false),
196
+ value: this.attributeValue(value, at),
197
+ };
198
+ // Two prefixes for one namespace still name the same attribute.
199
+ const key = `{${attribute.uri}}${attribute.local}`;
200
+ if (seen && attribute.prefix !== '') {
201
+ if (seen.has(key))
202
+ throw new XmlSyntaxError(`Duplicate attribute ${key}`, at);
203
+ seen.add(key);
204
+ }
205
+ attributes.push(attribute);
206
+ }
207
+ this.sawRoot = true;
208
+ this.handler.startElement({ ...element, attributes, namespaces: declared, offset });
209
+ if (selfClosing)
210
+ this.handler.endElement(offset);
211
+ else {
212
+ this.stack.push({ qname, offset, outer });
213
+ this.namespaces = scope;
214
+ }
215
+ }
216
+ endTag() {
217
+ const { text } = this;
218
+ const offset = this.i;
219
+ const qname = this.qnameAt(offset + 2, 'an element name');
220
+ const close = skipSpace(text, offset + 2 + qname.length);
221
+ if (text.charCodeAt(close) !== GT)
222
+ throw new XmlSyntaxError(`Expected ">" after </${qname}`, close);
223
+ const open = this.stack.pop();
224
+ if (!open)
225
+ throw new XmlSyntaxError(`Unexpected end tag </${qname}>`, offset);
226
+ if (open.qname !== qname) {
227
+ throw new XmlSyntaxError(`Expected </${open.qname}>, found </${qname}>`, offset);
228
+ }
229
+ this.namespaces = open.outer;
230
+ this.i = close + 1;
231
+ this.handler.endElement(offset);
232
+ }
233
+ markupDeclaration() {
234
+ const { text } = this;
235
+ const offset = this.i;
236
+ if (text.startsWith('<!--', offset)) {
237
+ this.i = this.skipPast('-->', offset + 4, 'comment');
238
+ if (this.stack.length > 0)
239
+ this.handler.comment(text.slice(offset + 4, this.i - 3), offset);
240
+ }
241
+ else if (text.startsWith('<![CDATA[', offset)) {
242
+ if (this.stack.length === 0) {
243
+ throw new XmlSyntaxError('CDATA sections are only allowed inside the root element', offset);
244
+ }
245
+ const end = text.indexOf(']]>', offset + 9);
246
+ if (end < 0)
247
+ throw new XmlSyntaxError('Unterminated CDATA section', offset);
248
+ if (end > offset + 9)
249
+ this.handler.text(text.slice(offset + 9, end), offset);
250
+ this.i = end + 3;
251
+ }
252
+ else if (text.startsWith('<!DOCTYPE', offset)) {
253
+ if (this.sawRoot || this.sawDoctype) {
254
+ throw new XmlSyntaxError('A DOCTYPE is only allowed once, before the root element', offset);
255
+ }
256
+ this.sawDoctype = true;
257
+ this.i = this.doctype(offset + 9);
258
+ }
259
+ else {
260
+ throw new XmlSyntaxError('Unexpected "<!"', offset);
261
+ }
262
+ }
263
+ processingInstruction() {
264
+ const offset = this.i;
265
+ const target = this.nameAt(offset + 2, 'a processing instruction target');
266
+ if (target.toLowerCase() === 'xml') {
267
+ throw new XmlSyntaxError('The XML declaration is only allowed at the very start', offset);
268
+ }
269
+ const end = this.text.indexOf('?>', offset + 2 + target.length);
270
+ if (end < 0)
271
+ throw new XmlSyntaxError('Unterminated processing instruction', offset);
272
+ if (this.stack.length > 0) {
273
+ const data = this.text.slice(offset + 2 + target.length, end).replace(/^[ \t\n]+/, '');
274
+ this.handler.processingInstruction(target, data, offset);
275
+ }
276
+ this.i = end + 2;
277
+ }
278
+ characters(start, end) {
279
+ const raw = this.text.slice(start, end);
280
+ if (this.stack.length === 0) {
281
+ if (!isXmlSpace(raw)) {
282
+ throw new XmlSyntaxError(this.sawRoot ? 'Text after the root element' : 'Text before the root element', start + raw.search(NOT_SPACE));
283
+ }
284
+ return;
285
+ }
286
+ this.handler.text(raw.includes('&') ? this.resolve(raw, start, false) : raw, start);
287
+ }
288
+ // ─── DTD ────────────────────────────────────────────────────────────────
289
+ /** Skips `<!DOCTYPE …>`, reading entity declarations from the internal subset. */
290
+ doctype(start) {
291
+ const { text } = this;
292
+ let i = start;
293
+ for (;;) {
294
+ const c = text[i];
295
+ if (c === undefined)
296
+ throw new XmlSyntaxError('Unterminated DOCTYPE', start);
297
+ if (c === '"' || c === "'")
298
+ i = this.skipPast(c, i + 1, 'DOCTYPE literal');
299
+ else if (c === '[')
300
+ i = this.internalSubset(i + 1);
301
+ else if (c === '>')
302
+ return i + 1;
303
+ else
304
+ i++;
305
+ }
306
+ }
307
+ internalSubset(start) {
308
+ const { text } = this;
309
+ let i = start;
310
+ for (;;) {
311
+ i = skipSpace(text, i);
312
+ if (i >= text.length)
313
+ throw new XmlSyntaxError('Unterminated DTD internal subset', start);
314
+ if (text[i] === ']')
315
+ return i + 1;
316
+ if (text.startsWith('<!--', i))
317
+ i = this.skipPast('-->', i + 4, 'comment');
318
+ else if (text.startsWith('<?', i))
319
+ i = this.skipPast('?>', i + 2, 'processing instruction');
320
+ else if (text.startsWith('<!ENTITY', i))
321
+ i = this.entityDeclaration(i);
322
+ else if (text.startsWith('<!', i))
323
+ i = this.skipDeclaration(i);
324
+ else if (text[i] === '%')
325
+ i = this.skipPast(';', i + 1, 'parameter entity reference');
326
+ else
327
+ throw new XmlSyntaxError('Unexpected content in the DTD internal subset', i);
328
+ }
329
+ }
330
+ /** `<!ENTITY name "value">`, `<!ENTITY name SYSTEM "uri">`, `<!ENTITY % name …>`. */
331
+ entityDeclaration(start) {
332
+ const { text } = this;
333
+ let i = skipSpace(text, start + 8);
334
+ const parameter = text[i] === '%';
335
+ if (parameter)
336
+ i = skipSpace(text, i + 1);
337
+ const name = this.nameAt(i, 'an entity name');
338
+ i = skipSpace(text, i + name.length);
339
+ const quote = text[i];
340
+ // Without a quoted value it is SYSTEM / PUBLIC: an external entity, never fetched.
341
+ let entity = { value: '', external: true };
342
+ if (quote === '"' || quote === "'") {
343
+ const close = text.indexOf(quote, i + 1);
344
+ if (close < 0)
345
+ throw new XmlSyntaxError(`Unterminated value of entity ${name}`, i);
346
+ entity = { value: this.characterReferences(text.slice(i + 1, close), i), external: false };
347
+ }
348
+ // The first declaration of an entity is binding (XML 1.0 §4.2).
349
+ if (!parameter && !this.entities.has(name))
350
+ this.entities.set(name, entity);
351
+ return this.skipDeclaration(start);
352
+ }
353
+ /** Skips a markup declaration up to its closing `>`, honouring quoted literals. */
354
+ skipDeclaration(start) {
355
+ const { text } = this;
356
+ let i = start + 2;
357
+ for (;;) {
358
+ const c = text[i];
359
+ if (c === undefined)
360
+ throw new XmlSyntaxError('Unterminated DTD declaration', start);
361
+ if (c === '"' || c === "'")
362
+ i = this.skipPast(c, i + 1, 'DTD literal');
363
+ else if (c === '>')
364
+ return i + 1;
365
+ else
366
+ i++;
367
+ }
368
+ }
369
+ // ─── References ─────────────────────────────────────────────────────────
370
+ /** Attribute value normalization (XML 1.0 §3.3.3, CDATA attributes). */
371
+ attributeValue(raw, offset) {
372
+ const spaced = /[\t\n]/.test(raw) ? raw.replace(/[\t\n]/g, ' ') : raw;
373
+ return spaced.includes('&') ? this.resolve(spaced, offset, true) : spaced;
374
+ }
375
+ /** Resolves character and entity references in content or an attribute value. */
376
+ resolve(raw, offset, inAttribute) {
377
+ let out = '';
378
+ let last = 0;
379
+ for (let amp = raw.indexOf('&'); amp >= 0; amp = raw.indexOf('&', last)) {
380
+ const semicolon = raw.indexOf(';', amp + 1);
381
+ if (semicolon < 0)
382
+ throw new XmlSyntaxError('Unterminated "&" reference', offset + amp);
383
+ const name = raw.slice(amp + 1, semicolon);
384
+ out += raw.slice(last, amp);
385
+ if (name.startsWith('#'))
386
+ out += characterReference(name, offset + amp);
387
+ else {
388
+ const replacement = getPredefined(name) ?? this.entity(name, offset + amp, inAttribute);
389
+ out += replacement;
390
+ }
391
+ last = semicolon + 1;
392
+ }
393
+ return out + raw.slice(last);
394
+ }
395
+ entity(name, offset, inAttribute) {
396
+ if (!ENTITY_NAME.test(name))
397
+ throw new XmlSyntaxError(`Invalid reference "&${name};"`, offset);
398
+ const entity = this.entities.get(name);
399
+ if (!entity)
400
+ throw new XmlSyntaxError(`Undeclared entity "&${name};"`, offset);
401
+ if (entity.external) {
402
+ throw new XmlSyntaxError(`External entity "&${name};" is not loaded (external resources are never fetched)`, offset);
403
+ }
404
+ if (entity.expanded === undefined) {
405
+ if (entity.expanding)
406
+ throw new XmlSyntaxError(`Entity "&${name};" refers to itself`, offset);
407
+ entity.expanding = true;
408
+ // Memoized without attribute normalization, which applies per use.
409
+ entity.expanded = entity.value.includes('&')
410
+ ? this.resolve(entity.value, offset, false)
411
+ : entity.value;
412
+ entity.expanding = false;
413
+ }
414
+ const value = entity.expanded;
415
+ if (value.includes('<')) {
416
+ throw new XmlSyntaxError(`Entity "&${name};" contains markup, which is not supported`, offset);
417
+ }
418
+ this.expansion += value.length;
419
+ if (this.expansion > this.expansionBudget) {
420
+ throw new XmlSyntaxError('Entity expansion exceeds the size limit', offset);
421
+ }
422
+ return inAttribute && /[\t\n]/.test(value) ? value.replace(/[\t\n]/g, ' ') : value;
423
+ }
424
+ /** Character references in an entity value are resolved when it is declared (§4.5). */
425
+ characterReferences(value, offset) {
426
+ return value.includes('&#')
427
+ ? value.replace(/&(#[^;]*);/g, (_match, name) => characterReference(name, offset))
428
+ : value;
429
+ }
430
+ // ─── Scanning helpers ───────────────────────────────────────────────────
431
+ qnameAt(at, what) {
432
+ QNAME_AT.lastIndex = at;
433
+ const match = QNAME_AT.exec(this.text);
434
+ if (!match)
435
+ throw new XmlSyntaxError(`Expected ${what}`, at);
436
+ return match[0];
437
+ }
438
+ nameAt(at, what) {
439
+ NAME_AT.lastIndex = at;
440
+ const match = NAME_AT.exec(this.text);
441
+ if (!match)
442
+ throw new XmlSyntaxError(`Expected ${what}`, at);
443
+ return match[0];
444
+ }
445
+ /** Index just past the next `terminator` at or after `from`. */
446
+ skipPast(terminator, from, what) {
447
+ const end = this.text.indexOf(terminator, from);
448
+ if (end < 0)
449
+ throw new XmlSyntaxError(`Unterminated ${what}`, from);
450
+ return end + terminator.length;
451
+ }
452
+ }
453
+ function skipSpace(text, from) {
454
+ let i = from;
455
+ for (;;) {
456
+ const c = text.charCodeAt(i);
457
+ if (c === 0x20 || c === 0x0a || c === 0x09 || c === 0x0d)
458
+ i++;
459
+ else
460
+ return i;
461
+ }
462
+ }
463
+ function getPredefined(name) {
464
+ return Object.hasOwn(PREDEFINED, name) ? PREDEFINED[name] : undefined;
465
+ }
466
+ const isXmlChar = (c) => c === 0x9 ||
467
+ c === 0xa ||
468
+ c === 0xd ||
469
+ (c >= 0x20 && c <= 0xd7ff) ||
470
+ (c >= 0xe000 && c <= 0xfffd) ||
471
+ (c >= 0x10000 && c <= 0x10ffff);
472
+ /** `#65` / `#x41` → `A`. */
473
+ function characterReference(name, offset) {
474
+ const hex = name[1] === 'x';
475
+ const digits = name.slice(hex ? 2 : 1);
476
+ const code = (hex ? /^[0-9a-fA-F]+$/ : /^[0-9]+$/).test(digits)
477
+ ? Number.parseInt(digits, hex ? 16 : 10)
478
+ : Number.NaN;
479
+ if (!isXmlChar(code)) {
480
+ throw new XmlSyntaxError(`Invalid character reference "&${name};"`, offset);
481
+ }
482
+ return String.fromCodePoint(code);
483
+ }
484
+ function checkNamespaceDeclaration(prefix, uri, offset) {
485
+ const fail = (message) => new XmlSyntaxError(message, offset);
486
+ if (prefix === 'xmlns')
487
+ throw fail('The xmlns prefix cannot be declared');
488
+ if (prefix === 'xml' && uri !== XML_NS)
489
+ throw fail('The xml prefix cannot be rebound');
490
+ if (prefix !== 'xml' && uri === XML_NS)
491
+ throw fail(`Prefix "${prefix}" cannot be bound to the XML namespace`);
492
+ if (uri === XMLNS_NS)
493
+ throw fail('The xmlns namespace cannot be bound');
494
+ if (prefix !== '' && uri === '')
495
+ throw fail(`Prefix "${prefix}" cannot be undeclared`);
496
+ }
497
+ /** Resolves a qualified name; unprefixed attributes are in no namespace. */
498
+ function splitName(qname, scope, offset, isElement) {
499
+ const colon = qname.indexOf(':');
500
+ if (colon < 0)
501
+ return { prefix: '', local: qname, uri: isElement ? (scope.get('') ?? '') : '' };
502
+ const prefix = qname.slice(0, colon);
503
+ const uri = scope.get(prefix);
504
+ if (uri === undefined)
505
+ throw new XmlSyntaxError(`Undeclared namespace prefix "${prefix}"`, offset);
506
+ return { prefix, local: qname.slice(colon + 1), uri };
507
+ }
508
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,58 @@
1
1
  {
2
2
  "name": "@kgdiff/formats",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.0",
4
+ "description": "Parsers that turn RDF (Turtle, N-Triples, N-Quads, TriG, RDF/XML, JSON-LD), OBO and common JSON graph shapes into kgdiff graphs.",
5
+ "keywords": [
6
+ "kgdiff",
7
+ "rdf",
8
+ "turtle",
9
+ "rdf-xml",
10
+ "owl",
11
+ "json-ld",
12
+ "obo",
13
+ "parser"
14
+ ],
15
+ "homepage": "https://github.com/iiwish/kgdiff/tree/main/packages/formats#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/iiwish/kgdiff/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/iiwish/kgdiff.git",
22
+ "directory": "packages/formats"
23
+ },
24
+ "license": "MIT",
25
+ "author": "iiwish",
26
+ "type": "module",
27
+ "sideEffects": false,
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "default": "./dist/index.js"
32
+ }
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "src",
37
+ "!src/**/*.test.ts"
38
+ ],
39
+ "engines": {
40
+ "node": ">=22"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public",
44
+ "registry": "https://registry.npmjs.org/"
45
+ },
46
+ "dependencies": {
47
+ "@kgdiff/core": "0.1.0",
48
+ "n3": "2.13.12"
49
+ },
50
+ "devDependencies": {
51
+ "@types/n3": "1.26.6"
52
+ },
53
+ "scripts": {
54
+ "build": "tsc -p tsconfig.build.json",
55
+ "typecheck": "tsc -p tsconfig.json",
56
+ "test": "vitest run"
57
+ }
6
58
  }