@pipobscure/xml 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @pipobscure/xml — Tree-query helpers
3
+ *
4
+ * All functions are deliberately tolerant of incomplete / JSON-deserialized
5
+ * objects. When a node was round-tripped through JSON.parse its arrays may
6
+ * be missing entirely; every accessor below falls back gracefully rather than
7
+ * throwing a TypeError.
8
+ *
9
+ * Tolerance contract
10
+ * ──────────────────
11
+ * • A missing `children` property is treated as an empty array.
12
+ * • A missing `attributes` property is treated as an empty array.
13
+ * • A missing or non-string `value` on a Text/CData node is treated as `""`.
14
+ * • A `null` or `undefined` argument returns the neutral value for that
15
+ * function (`""`, `undefined`, `[]`, `0`).
16
+ */
17
+ import type { AnyNode, Document, Element } from './types.ts';
18
+ /**
19
+ * Concatenated text content of a node — equivalent to the DOM's
20
+ * `element.textContent`.
21
+ *
22
+ * - `Element` / `Document` → recurse into children, concatenating Text and
23
+ * CData nodes.
24
+ * - `Text` / `CData` → the decoded value.
25
+ * - All other node types (Comment, PI, Declaration, DOCTYPE) → `""`.
26
+ * - `null` / `undefined` argument → `""`.
27
+ */
28
+ export declare function textContent(node: AnyNode | null | undefined): string;
29
+ /**
30
+ * The root element of a `Document`, or `undefined` if there is none.
31
+ * Tolerant of a missing or empty `children` array.
32
+ */
33
+ export declare function rootElement(doc: Document | null | undefined): Element | undefined;
34
+ /**
35
+ * First direct child element of `el` whose local name is `name` and (if
36
+ * provided) whose namespace URI is `ns`.
37
+ * Returns `undefined` when not found or when `el` is null/undefined.
38
+ */
39
+ export declare function child(el: Element | null | undefined, name: string, ns?: string): Element | undefined;
40
+ /**
41
+ * Like {@link child} but throws a descriptive `Error` when not found.
42
+ * Useful for strict processing where a missing element is a hard failure.
43
+ */
44
+ export declare function requireChild(el: Element | null | undefined, name: string, ns?: string): Element;
45
+ /**
46
+ * All direct child elements of `el` with the given local name and optional
47
+ * namespace URI. Returns `[]` when `el` is null/undefined or has no children.
48
+ */
49
+ export declare function children(el: Element | null | undefined, name: string, ns?: string): Element[];
50
+ /**
51
+ * All direct child elements of `el`, regardless of name or namespace.
52
+ * Returns `[]` when `el` is null/undefined.
53
+ */
54
+ export declare function childElements(el: Element | null | undefined): Element[];
55
+ /**
56
+ * Number of direct child elements of `el`.
57
+ * Returns `0` when `el` is null/undefined.
58
+ */
59
+ export declare function childElementCount(el: Element | null | undefined): number;
60
+ /**
61
+ * First element anywhere in the subtree of `node` whose local name is `name`
62
+ * and (if provided) whose namespace URI is `ns`. Depth-first, pre-order.
63
+ * Returns `undefined` when not found or when `node` is null/undefined.
64
+ */
65
+ export declare function descendant(node: Document | Element | null | undefined, name: string, ns?: string): Element | undefined;
66
+ /**
67
+ * All elements anywhere in the subtree of `node` whose local name is `name`
68
+ * and (if provided) whose namespace URI is `ns`. Depth-first, pre-order.
69
+ * Returns `[]` when `node` is null/undefined.
70
+ */
71
+ export declare function descendants(node: Document | Element | null | undefined, name: string, ns?: string): Element[];
72
+ /**
73
+ * The value of the attribute with local name `name` and (if provided)
74
+ * namespace URI `ns`. Returns `undefined` when not found or when `el` is
75
+ * null/undefined.
76
+ */
77
+ export declare function attr(el: Element | null | undefined, name: string, ns?: string): string | undefined;
78
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,OAAO,EAIR,MAAM,YAAY,CAAC;AAwCpB;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAcpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAGjF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,GAAG,SAAS,CAMrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAQT;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,EAAE,CAMX;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,EAAE,CAGvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAExE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,GAAG,SAAS,CAUrB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,EAAE,CAYX;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAKpB"}
package/dist/query.js ADDED
@@ -0,0 +1,161 @@
1
+ /**
2
+ * @pipobscure/xml — Tree-query helpers
3
+ *
4
+ * All functions are deliberately tolerant of incomplete / JSON-deserialized
5
+ * objects. When a node was round-tripped through JSON.parse its arrays may
6
+ * be missing entirely; every accessor below falls back gracefully rather than
7
+ * throwing a TypeError.
8
+ *
9
+ * Tolerance contract
10
+ * ──────────────────
11
+ * • A missing `children` property is treated as an empty array.
12
+ * • A missing `attributes` property is treated as an empty array.
13
+ * • A missing or non-string `value` on a Text/CData node is treated as `""`.
14
+ * • A `null` or `undefined` argument returns the neutral value for that
15
+ * function (`""`, `undefined`, `[]`, `0`).
16
+ */
17
+ import { isElement, isText, isCData, isDocument } from './types.js';
18
+ /**
19
+ * Returns the `children` array of an element or document, falling back to
20
+ * `[]` when the property is absent (e.g. JSON-reconstructed objects).
21
+ */
22
+ function childrenOf(node) {
23
+ return node.children ?? [];
24
+ }
25
+ /**
26
+ * Returns the `attributes` array of an element, falling back to `[]`.
27
+ */
28
+ function attrsOf(el) {
29
+ return el.attributes ?? [];
30
+ }
31
+ /**
32
+ * Returns the string `value` of a Text or CData node, falling back to `""`.
33
+ */
34
+ function nodeValue(node) {
35
+ return node?.value ?? '';
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // Public API
39
+ // ---------------------------------------------------------------------------
40
+ /**
41
+ * Concatenated text content of a node — equivalent to the DOM's
42
+ * `element.textContent`.
43
+ *
44
+ * - `Element` / `Document` → recurse into children, concatenating Text and
45
+ * CData nodes.
46
+ * - `Text` / `CData` → the decoded value.
47
+ * - All other node types (Comment, PI, Declaration, DOCTYPE) → `""`.
48
+ * - `null` / `undefined` argument → `""`.
49
+ */
50
+ export function textContent(node) {
51
+ if (node == null) return '';
52
+ if (isText(node) || isCData(node)) return nodeValue(node);
53
+ if (isElement(node)) {
54
+ return childrenOf(node)
55
+ .map((c) => textContent(c))
56
+ .join('');
57
+ }
58
+ if (isDocument(node)) {
59
+ return childrenOf(node)
60
+ .map((c) => textContent(c))
61
+ .join('');
62
+ }
63
+ return '';
64
+ }
65
+ /**
66
+ * The root element of a `Document`, or `undefined` if there is none.
67
+ * Tolerant of a missing or empty `children` array.
68
+ */
69
+ export function rootElement(doc) {
70
+ if (doc == null) return undefined;
71
+ return childrenOf(doc).find(isElement);
72
+ }
73
+ /**
74
+ * First direct child element of `el` whose local name is `name` and (if
75
+ * provided) whose namespace URI is `ns`.
76
+ * Returns `undefined` when not found or when `el` is null/undefined.
77
+ */
78
+ export function child(el, name, ns) {
79
+ if (el == null) return undefined;
80
+ return childrenOf(el).find((c) => isElement(c) && c.name === name && (ns === undefined || c.namespace === ns));
81
+ }
82
+ /**
83
+ * Like {@link child} but throws a descriptive `Error` when not found.
84
+ * Useful for strict processing where a missing element is a hard failure.
85
+ */
86
+ export function requireChild(el, name, ns) {
87
+ const found = child(el, name, ns);
88
+ if (found === undefined) {
89
+ const nsLabel = ns != null ? ` [${ns}]` : '';
90
+ const parentName = el?.name ?? '(null)';
91
+ throw new Error(`Missing required child <${name}>${nsLabel} in <${parentName}>`);
92
+ }
93
+ return found;
94
+ }
95
+ /**
96
+ * All direct child elements of `el` with the given local name and optional
97
+ * namespace URI. Returns `[]` when `el` is null/undefined or has no children.
98
+ */
99
+ export function children(el, name, ns) {
100
+ if (el == null) return [];
101
+ return childrenOf(el).filter((c) => isElement(c) && c.name === name && (ns === undefined || c.namespace === ns));
102
+ }
103
+ /**
104
+ * All direct child elements of `el`, regardless of name or namespace.
105
+ * Returns `[]` when `el` is null/undefined.
106
+ */
107
+ export function childElements(el) {
108
+ if (el == null) return [];
109
+ return childrenOf(el).filter(isElement);
110
+ }
111
+ /**
112
+ * Number of direct child elements of `el`.
113
+ * Returns `0` when `el` is null/undefined.
114
+ */
115
+ export function childElementCount(el) {
116
+ return childElements(el).length;
117
+ }
118
+ /**
119
+ * First element anywhere in the subtree of `node` whose local name is `name`
120
+ * and (if provided) whose namespace URI is `ns`. Depth-first, pre-order.
121
+ * Returns `undefined` when not found or when `node` is null/undefined.
122
+ */
123
+ export function descendant(node, name, ns) {
124
+ if (node == null) return undefined;
125
+ for (const item of childrenOf(node)) {
126
+ if (isElement(item)) {
127
+ if (item.name === name && (ns === undefined || item.namespace === ns)) return item;
128
+ const found = descendant(item, name, ns);
129
+ if (found !== undefined) return found;
130
+ }
131
+ }
132
+ return undefined;
133
+ }
134
+ /**
135
+ * All elements anywhere in the subtree of `node` whose local name is `name`
136
+ * and (if provided) whose namespace URI is `ns`. Depth-first, pre-order.
137
+ * Returns `[]` when `node` is null/undefined.
138
+ */
139
+ export function descendants(node, name, ns) {
140
+ if (node == null) return [];
141
+ const results = [];
142
+ for (const item of childrenOf(node)) {
143
+ if (isElement(item)) {
144
+ if (item.name === name && (ns === undefined || item.namespace === ns)) {
145
+ results.push(item);
146
+ }
147
+ results.push(...descendants(item, name, ns));
148
+ }
149
+ }
150
+ return results;
151
+ }
152
+ /**
153
+ * The value of the attribute with local name `name` and (if provided)
154
+ * namespace URI `ns`. Returns `undefined` when not found or when `el` is
155
+ * null/undefined.
156
+ */
157
+ export function attr(el, name, ns) {
158
+ if (el == null) return undefined;
159
+ return attrsOf(el).find((a) => a.name === name && (ns === undefined || a.namespace === ns))?.value;
160
+ }
161
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * @pipobscure/xml — Type definitions
3
+ *
4
+ * All node types form a discriminated union hierarchy rooted at `Node`.
5
+ * Every value is a plain JS object suitable for JSON serialisation.
6
+ *
7
+ * Node
8
+ * ├── Document
9
+ * ├── Element
10
+ * ├── Text
11
+ * ├── CData
12
+ * ├── Comment
13
+ * ├── ProcessingInstruction
14
+ * ├── DocumentType
15
+ * └── XmlDeclaration
16
+ */
17
+ /** All legal values of `node.type`. */
18
+ export type NodeType = 'document' | 'element' | 'text' | 'cdata' | 'comment' | 'processing-instruction' | 'doctype' | 'xml-declaration';
19
+ /** Common root of every XML node. */
20
+ export interface Node {
21
+ readonly type: NodeType;
22
+ }
23
+ /**
24
+ * A single attribute on an element.
25
+ *
26
+ * Namespace-declaration attributes (`xmlns` / `xmlns:prefix`) are included
27
+ * in the `attributes` array with their `namespace` resolved to the XML
28
+ * Namespaces URI (`http://www.w3.org/2000/xmlns/`).
29
+ *
30
+ * Non-prefixed attributes that are not namespace declarations carry
31
+ * `prefix: null` and `namespace: null` — per the XML Namespaces spec,
32
+ * unprefixed attributes do *not* inherit the element's default namespace.
33
+ */
34
+ export interface Attribute {
35
+ /** Local name (the part after the colon, or the whole name if no prefix). */
36
+ readonly name: string;
37
+ /** Namespace prefix, or `null` when absent. */
38
+ readonly prefix: string | null;
39
+ /**
40
+ * Resolved namespace URI, or `null` when there is none.
41
+ * Always `http://www.w3.org/2000/xmlns/` for `xmlns`/`xmlns:*` attrs.
42
+ */
43
+ readonly namespace: string | null;
44
+ /** Decoded attribute value (entity references have been expanded). */
45
+ readonly value: string;
46
+ }
47
+ /**
48
+ * The XML declaration: `<?xml version="1.0" encoding="UTF-8"?>`.
49
+ * Appears at most once, as the first child of a `Document`.
50
+ */
51
+ export interface XmlDeclaration extends Node {
52
+ readonly type: 'xml-declaration';
53
+ /** XML version string, typically `"1.0"`. */
54
+ readonly version: string;
55
+ /** Declared character encoding, e.g. `"UTF-8"`, or `null` if absent. */
56
+ readonly encoding: string | null;
57
+ /** Standalone declaration, or `null` if absent. */
58
+ readonly standalone: boolean | null;
59
+ }
60
+ /**
61
+ * A document type declaration: `<!DOCTYPE …>`.
62
+ * The internal subset (if any) is captured verbatim but not parsed further.
63
+ */
64
+ export interface DocumentType extends Node {
65
+ readonly type: 'doctype';
66
+ /** The root element name declared by the DOCTYPE. */
67
+ readonly name: string;
68
+ /** Public identifier, or `null` if absent. */
69
+ readonly publicId: string | null;
70
+ /** System identifier (URI), or `null` if absent. */
71
+ readonly systemId: string | null;
72
+ /** Raw text of the internal subset (between `[` and `]`), or `null`. */
73
+ readonly internalSubset: string | null;
74
+ }
75
+ /**
76
+ * A processing instruction: `<?target data?>`.
77
+ * The XML declaration is *not* represented as a PI; it uses `XmlDeclaration`.
78
+ */
79
+ export interface ProcessingInstruction extends Node {
80
+ readonly type: 'processing-instruction';
81
+ /** PI target identifier. */
82
+ readonly target: string;
83
+ /** Everything after the target (leading whitespace stripped), may be `""`. */
84
+ readonly data: string;
85
+ }
86
+ /** An XML comment: `<!-- … -->`. */
87
+ export interface Comment extends Node {
88
+ readonly type: 'comment';
89
+ /** Comment text (the content between `<!--` and `-->`). */
90
+ readonly value: string;
91
+ }
92
+ /** A CDATA section: `<![CDATA[ … ]]>`. */
93
+ export interface CData extends Node {
94
+ readonly type: 'cdata';
95
+ /** Raw CDATA content (the text between `<![CDATA[` and `]]>`). */
96
+ readonly value: string;
97
+ }
98
+ /** A run of character data (text) between element tags. */
99
+ export interface Text extends Node {
100
+ readonly type: 'text';
101
+ /** Decoded text content (entity references have been expanded). */
102
+ readonly value: string;
103
+ }
104
+ /**
105
+ * An XML element node: `<prefix:name attr="val">…</prefix:name>`.
106
+ *
107
+ * Namespace resolution is performed eagerly at parse time:
108
+ * - `namespace` is the resolved URI of the element's own namespace.
109
+ * - Each `Attribute` carries its own resolved `namespace`.
110
+ */
111
+ export interface Element extends Node {
112
+ readonly type: 'element';
113
+ /** Local name — the part of the tag name after the colon. */
114
+ readonly name: string;
115
+ /** Namespace prefix, or `null` when there is no prefix. */
116
+ readonly prefix: string | null;
117
+ /** Resolved namespace URI for this element, or `null` if none. */
118
+ readonly namespace: string | null;
119
+ /**
120
+ * All attributes in document order, including namespace declarations.
121
+ * Duplicate attribute names (invalid XML) are preserved as-is.
122
+ */
123
+ readonly attributes: ReadonlyArray<Attribute>;
124
+ /** Child nodes in document order. */
125
+ readonly children: ReadonlyArray<ChildNode>;
126
+ }
127
+ /** All node types that may appear as children of an `Element`. */
128
+ export type ChildNode = Element | Text | CData | Comment | ProcessingInstruction;
129
+ /** All node types that may appear as direct children of a `Document`. */
130
+ export type DocumentChild = XmlDeclaration | DocumentType | Element | Comment | ProcessingInstruction;
131
+ /** The root document node. Contains everything in the source document. */
132
+ export interface Document extends Node {
133
+ readonly type: 'document';
134
+ /** Top-level nodes in document order. */
135
+ readonly children: ReadonlyArray<DocumentChild>;
136
+ }
137
+ /** Union of every possible XML node type. */
138
+ export type AnyNode = Document | Element | Text | CData | Comment | ProcessingInstruction | DocumentType | XmlDeclaration;
139
+ export declare function isDocument(node: Node): node is Document;
140
+ export declare function isElement(node: Node): node is Element;
141
+ export declare function isText(node: Node): node is Text;
142
+ export declare function isCData(node: Node): node is CData;
143
+ export declare function isComment(node: Node): node is Comment;
144
+ export declare function isProcessingInstruction(node: Node): node is ProcessingInstruction;
145
+ export declare function isDocumentType(node: Node): node is DocumentType;
146
+ export declare function isXmlDeclaration(node: Node): node is XmlDeclaration;
147
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @pipobscure/xml — Type definitions
3
+ *
4
+ * All node types form a discriminated union hierarchy rooted at `Node`.
5
+ * Every value is a plain JS object suitable for JSON serialisation.
6
+ *
7
+ * Node
8
+ * ├── Document
9
+ * ├── Element
10
+ * ├── Text
11
+ * ├── CData
12
+ * ├── Comment
13
+ * ├── ProcessingInstruction
14
+ * ├── DocumentType
15
+ * └── XmlDeclaration
16
+ */
17
+ // ---------------------------------------------------------------------------
18
+ // Type guards
19
+ // ---------------------------------------------------------------------------
20
+ export function isDocument(node) {
21
+ return node.type === 'document';
22
+ }
23
+ export function isElement(node) {
24
+ return node.type === 'element';
25
+ }
26
+ export function isText(node) {
27
+ return node.type === 'text';
28
+ }
29
+ export function isCData(node) {
30
+ return node.type === 'cdata';
31
+ }
32
+ export function isComment(node) {
33
+ return node.type === 'comment';
34
+ }
35
+ export function isProcessingInstruction(node) {
36
+ return node.type === 'processing-instruction';
37
+ }
38
+ export function isDocumentType(node) {
39
+ return node.type === 'doctype';
40
+ }
41
+ export function isXmlDeclaration(node) {
42
+ return node.type === 'xml-declaration';
43
+ }
44
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAwLH,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAU;IAC/B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAU;IAChC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAU;IAChD,OAAO,IAAI,CAAC,IAAI,KAAK,wBAAwB,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AACzC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@pipobscure/xml",
3
+ "version": "0.1.0",
4
+ "description": "A fully capable, forgiving XML parser for CalDAV/CardDAV and general use",
5
+ "license": "EUPL-1.2",
6
+ "author": "Philipp Dunkel <pip@pipobscure.com>",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "LICENSE",
19
+ "README.md"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "build:watch": "tsc --watch",
24
+ "typecheck": "tsc -p tsconfig.test.json",
25
+ "test": "tsc -p tsconfig.test-build.json && node --test .dist-test/test/*.test.js",
26
+ "test:src": "node --experimental-strip-types --test test/*.test.ts",
27
+ "format": "biome format --write",
28
+ "lint": "biome lint --write"
29
+ },
30
+ "devDependencies": {
31
+ "@pipobscure/biome": "^1.1.2",
32
+ "@types/node": "^25.3.0",
33
+ "typescript": "^5.9.3"
34
+ },
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/pipobscure/xml"
38
+ }
39
+ }