@cogenta/import 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/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/wordpress/collections.d.ts +232 -0
- package/dist/wordpress/collections.d.ts.map +1 -0
- package/dist/wordpress/collections.js +133 -0
- package/dist/wordpress/collections.js.map +1 -0
- package/dist/wordpress/content-convert.d.ts +50 -0
- package/dist/wordpress/content-convert.d.ts.map +1 -0
- package/dist/wordpress/content-convert.js +222 -0
- package/dist/wordpress/content-convert.js.map +1 -0
- package/dist/wordpress/gutenberg.d.ts +27 -0
- package/dist/wordpress/gutenberg.d.ts.map +1 -0
- package/dist/wordpress/gutenberg.js +83 -0
- package/dist/wordpress/gutenberg.js.map +1 -0
- package/dist/wordpress/html-to-richtext.d.ts +23 -0
- package/dist/wordpress/html-to-richtext.d.ts.map +1 -0
- package/dist/wordpress/html-to-richtext.js +209 -0
- package/dist/wordpress/html-to-richtext.js.map +1 -0
- package/dist/wordpress/import.d.ts +19 -0
- package/dist/wordpress/import.d.ts.map +1 -0
- package/dist/wordpress/import.js +241 -0
- package/dist/wordpress/import.js.map +1 -0
- package/dist/wordpress/media.d.ts +27 -0
- package/dist/wordpress/media.d.ts.map +1 -0
- package/dist/wordpress/media.js +68 -0
- package/dist/wordpress/media.js.map +1 -0
- package/dist/wordpress/parse.d.ts +12 -0
- package/dist/wordpress/parse.d.ts.map +1 -0
- package/dist/wordpress/parse.js +95 -0
- package/dist/wordpress/parse.js.map +1 -0
- package/dist/wordpress/report.d.ts +45 -0
- package/dist/wordpress/report.d.ts.map +1 -0
- package/dist/wordpress/report.js +41 -0
- package/dist/wordpress/report.js.map +1 -0
- package/dist/wordpress/types.d.ts +66 -0
- package/dist/wordpress/types.d.ts.map +1 -0
- package/dist/wordpress/types.js +10 -0
- package/dist/wordpress/types.js.map +1 -0
- package/dist/wordpress/xml.d.ts +33 -0
- package/dist/wordpress/xml.d.ts.map +1 -0
- package/dist/wordpress/xml.js +262 -0
- package/dist/wordpress/xml.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wordpress/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wordpress/types.ts"],"names":[],"mappings":"AAAA,yFAAyF;AA2CzF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;CACC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A minimal XML reader, scoped to what a WordPress WXR export actually uses:
|
|
3
|
+
* elements, attributes, `CDATA`, comments, the five standard entities and
|
|
4
|
+
* numeric character references. Not a general XML parser — no DTD resolution,
|
|
5
|
+
* no external entities, no arbitrary namespace handling beyond keeping a
|
|
6
|
+
* prefixed tag name (`wp:post_id`, `content:encoded`) as one opaque string.
|
|
7
|
+
*
|
|
8
|
+
* `deps-auditor` rejected `fast-xml-parser` for this (single-maintainer
|
|
9
|
+
* seven-package split, ~1.28 MB, published the same day) as disproportionate
|
|
10
|
+
* for a narrow, well-known dialect, and flagged that a general parser's DTD
|
|
11
|
+
* support is an XXE/entity-expansion surface this import — which reads a file
|
|
12
|
+
* of unknown provenance (rule R8) — has no reason to carry. A document
|
|
13
|
+
* declaring `<!DOCTYPE ... ENTITY` is rejected outright rather than parsed.
|
|
14
|
+
*/
|
|
15
|
+
export interface XmlElement {
|
|
16
|
+
readonly type: 'element';
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly attrs: Readonly<Record<string, string>>;
|
|
19
|
+
readonly children: readonly XmlNode[];
|
|
20
|
+
}
|
|
21
|
+
export interface XmlTextNode {
|
|
22
|
+
readonly type: 'text';
|
|
23
|
+
readonly value: string;
|
|
24
|
+
}
|
|
25
|
+
export type XmlNode = XmlElement | XmlTextNode;
|
|
26
|
+
/** Parses a whole WXR document and returns its root element (`<rss>`). */
|
|
27
|
+
export declare function parseXmlDocument(source: string): XmlElement;
|
|
28
|
+
export declare function firstChild(element: XmlElement, name: string): XmlElement | null;
|
|
29
|
+
export declare function children(element: XmlElement, name: string): readonly XmlElement[];
|
|
30
|
+
/** Direct text content only — WXR's leaf elements never mix text and child elements. */
|
|
31
|
+
export declare function textOf(element: XmlElement | null): string;
|
|
32
|
+
export declare function textOfChild(element: XmlElement, name: string): string;
|
|
33
|
+
//# sourceMappingURL=xml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../src/wordpress/xml.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,WAAW,CAAA;AA8O9C,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAU3D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAK/E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAIjF;AAED,wFAAwF;AACxF,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,CAMzD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { CogentaError } from '@cogenta/core';
|
|
2
|
+
const NAMED_ENTITIES = {
|
|
3
|
+
lt: '<',
|
|
4
|
+
gt: '>',
|
|
5
|
+
amp: '&',
|
|
6
|
+
quot: '"',
|
|
7
|
+
apos: "'",
|
|
8
|
+
};
|
|
9
|
+
function parseFailure(message, position) {
|
|
10
|
+
return new CogentaError({
|
|
11
|
+
code: 'IMPORT_WXR_PARSE_FAILED',
|
|
12
|
+
message: `${message} (at character ${position}).`,
|
|
13
|
+
hint: 'Check that the file is a WordPress "Export All Content" WXR file, not truncated or edited by hand.',
|
|
14
|
+
details: { position },
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/** Standard entities and `&#NNN;` / `&#xHEX;` references. No DTD-declared entity is ever resolved. */
|
|
18
|
+
function decodeEntities(text) {
|
|
19
|
+
return text.replace(/&(#x?[0-9a-fA-F]+|[a-zA-Z]+);/g, (match, body) => {
|
|
20
|
+
if (body.startsWith('#x') || body.startsWith('#X')) {
|
|
21
|
+
const code = Number.parseInt(body.slice(2), 16);
|
|
22
|
+
return Number.isFinite(code) ? String.fromCodePoint(code) : match;
|
|
23
|
+
}
|
|
24
|
+
if (body.startsWith('#')) {
|
|
25
|
+
const code = Number.parseInt(body.slice(1), 10);
|
|
26
|
+
return Number.isFinite(code) ? String.fromCodePoint(code) : match;
|
|
27
|
+
}
|
|
28
|
+
return NAMED_ENTITIES[body] ?? match;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function isNameChar(char) {
|
|
32
|
+
return char !== undefined && !/[\s/>=]/.test(char);
|
|
33
|
+
}
|
|
34
|
+
class Reader {
|
|
35
|
+
i = 0;
|
|
36
|
+
source;
|
|
37
|
+
constructor(source) {
|
|
38
|
+
this.source = source;
|
|
39
|
+
}
|
|
40
|
+
get position() {
|
|
41
|
+
return this.i;
|
|
42
|
+
}
|
|
43
|
+
eof() {
|
|
44
|
+
return this.i >= this.source.length;
|
|
45
|
+
}
|
|
46
|
+
peek(offset = 0) {
|
|
47
|
+
return this.source[this.i + offset];
|
|
48
|
+
}
|
|
49
|
+
startsWith(text) {
|
|
50
|
+
return this.source.startsWith(text, this.i);
|
|
51
|
+
}
|
|
52
|
+
advance(count = 1) {
|
|
53
|
+
this.i += count;
|
|
54
|
+
}
|
|
55
|
+
skipWhitespace() {
|
|
56
|
+
while (!this.eof() && /\s/.test(this.source[this.i]))
|
|
57
|
+
this.i++;
|
|
58
|
+
}
|
|
59
|
+
indexOf(text, from = this.i) {
|
|
60
|
+
return this.source.indexOf(text, from);
|
|
61
|
+
}
|
|
62
|
+
slice(start, end) {
|
|
63
|
+
return this.source.slice(start, end);
|
|
64
|
+
}
|
|
65
|
+
charAt(index) {
|
|
66
|
+
return this.source[index];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Scans a `<!DOCTYPE ...>` declaration, honouring a bracketed internal subset, and returns the index after its closing `>`. */
|
|
70
|
+
function skipDoctype(reader) {
|
|
71
|
+
const start = reader.position;
|
|
72
|
+
let depth = 0;
|
|
73
|
+
let i = start;
|
|
74
|
+
while (reader.charAt(i) !== undefined) {
|
|
75
|
+
const char = reader.charAt(i);
|
|
76
|
+
if (char === '[')
|
|
77
|
+
depth++;
|
|
78
|
+
else if (char === ']')
|
|
79
|
+
depth--;
|
|
80
|
+
else if (char === '>' && depth <= 0)
|
|
81
|
+
return { end: i + 1, text: reader.slice(start, i) };
|
|
82
|
+
i++;
|
|
83
|
+
}
|
|
84
|
+
throw parseFailure('Unterminated <!DOCTYPE declaration', start);
|
|
85
|
+
}
|
|
86
|
+
function readTagName(reader) {
|
|
87
|
+
const start = reader.position;
|
|
88
|
+
while (!reader.eof() && isNameChar(reader.peek()))
|
|
89
|
+
reader.advance();
|
|
90
|
+
const name = reader.slice(start, reader.position);
|
|
91
|
+
if (name.length === 0)
|
|
92
|
+
throw parseFailure('Expected an element name', start);
|
|
93
|
+
return name;
|
|
94
|
+
}
|
|
95
|
+
function readAttributes(reader) {
|
|
96
|
+
const attrs = {};
|
|
97
|
+
while (true) {
|
|
98
|
+
reader.skipWhitespace();
|
|
99
|
+
if (reader.eof())
|
|
100
|
+
throw parseFailure('Unterminated start tag', reader.position);
|
|
101
|
+
if (reader.peek() === '/' || reader.peek() === '>')
|
|
102
|
+
return attrs;
|
|
103
|
+
const nameStart = reader.position;
|
|
104
|
+
while (!reader.eof() && reader.peek() !== '=' && !/\s/.test(reader.peek())) {
|
|
105
|
+
if (reader.peek() === '/' || reader.peek() === '>')
|
|
106
|
+
break;
|
|
107
|
+
reader.advance();
|
|
108
|
+
}
|
|
109
|
+
const name = reader.slice(nameStart, reader.position);
|
|
110
|
+
if (name.length === 0)
|
|
111
|
+
throw parseFailure('Expected an attribute name', nameStart);
|
|
112
|
+
reader.skipWhitespace();
|
|
113
|
+
if (reader.peek() !== '=') {
|
|
114
|
+
attrs[name] = '';
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
reader.advance(); // '='
|
|
118
|
+
reader.skipWhitespace();
|
|
119
|
+
const quote = reader.peek();
|
|
120
|
+
if (quote !== '"' && quote !== "'") {
|
|
121
|
+
throw parseFailure(`Attribute "${name}" value must be quoted`, reader.position);
|
|
122
|
+
}
|
|
123
|
+
reader.advance();
|
|
124
|
+
const valueStart = reader.position;
|
|
125
|
+
const closeQuote = reader.indexOf(quote);
|
|
126
|
+
if (closeQuote < 0)
|
|
127
|
+
throw parseFailure(`Unterminated value for attribute "${name}"`, valueStart);
|
|
128
|
+
attrs[name] = decodeEntities(reader.slice(valueStart, closeQuote));
|
|
129
|
+
reader.advance(closeQuote - reader.position + 1);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function skipMisc(reader) {
|
|
133
|
+
if (reader.startsWith('<!--')) {
|
|
134
|
+
const end = reader.indexOf('-->');
|
|
135
|
+
if (end < 0)
|
|
136
|
+
throw parseFailure('Unterminated comment', reader.position);
|
|
137
|
+
reader.advance(end - reader.position + 3);
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
if (reader.startsWith('<?')) {
|
|
141
|
+
const end = reader.indexOf('?>');
|
|
142
|
+
if (end < 0)
|
|
143
|
+
throw parseFailure('Unterminated processing instruction', reader.position);
|
|
144
|
+
reader.advance(end - reader.position + 2);
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
if (reader.startsWith('<!DOCTYPE')) {
|
|
148
|
+
const { end, text } = skipDoctype(reader);
|
|
149
|
+
if (/\bENTITY\b/.test(text)) {
|
|
150
|
+
throw new CogentaError({
|
|
151
|
+
code: 'IMPORT_WXR_UNSAFE_DOCUMENT',
|
|
152
|
+
message: 'The document declares a DOCTYPE with an ENTITY, which is never resolved.',
|
|
153
|
+
hint: 'A genuine WordPress export has no custom entities. Re-export the file rather than editing its DOCTYPE.',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
reader.advance(end - reader.position);
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
function parseElement(reader) {
|
|
162
|
+
if (reader.peek() !== '<')
|
|
163
|
+
throw parseFailure('Expected "<"', reader.position);
|
|
164
|
+
reader.advance();
|
|
165
|
+
const name = readTagName(reader);
|
|
166
|
+
const attrs = readAttributes(reader);
|
|
167
|
+
if (reader.peek() === '/') {
|
|
168
|
+
reader.advance();
|
|
169
|
+
if (reader.peek() !== '>')
|
|
170
|
+
throw parseFailure(`Malformed self-closing tag <${name}>`, reader.position);
|
|
171
|
+
reader.advance();
|
|
172
|
+
return { type: 'element', name, attrs, children: [] };
|
|
173
|
+
}
|
|
174
|
+
if (reader.peek() !== '>')
|
|
175
|
+
throw parseFailure(`Malformed start tag <${name}>`, reader.position);
|
|
176
|
+
reader.advance();
|
|
177
|
+
const children = [];
|
|
178
|
+
let text = '';
|
|
179
|
+
const flushText = () => {
|
|
180
|
+
if (text.length === 0)
|
|
181
|
+
return;
|
|
182
|
+
children.push({ type: 'text', value: text });
|
|
183
|
+
text = '';
|
|
184
|
+
};
|
|
185
|
+
while (true) {
|
|
186
|
+
if (reader.eof())
|
|
187
|
+
throw parseFailure(`Unterminated element <${name}>`, reader.position);
|
|
188
|
+
if (reader.startsWith('<![CDATA[')) {
|
|
189
|
+
const end = reader.indexOf(']]>');
|
|
190
|
+
if (end < 0)
|
|
191
|
+
throw parseFailure('Unterminated CDATA section', reader.position);
|
|
192
|
+
text += reader.slice(reader.position + 9, end);
|
|
193
|
+
reader.advance(end - reader.position + 3);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
if (reader.startsWith('</')) {
|
|
197
|
+
flushText();
|
|
198
|
+
const closeStart = reader.position + 2;
|
|
199
|
+
const closeEnd = reader.indexOf('>', closeStart);
|
|
200
|
+
if (closeEnd < 0)
|
|
201
|
+
throw parseFailure(`Unterminated closing tag for <${name}>`, closeStart);
|
|
202
|
+
const closeName = reader.slice(closeStart, closeEnd).trim();
|
|
203
|
+
reader.advance(closeEnd - reader.position + 1);
|
|
204
|
+
if (closeName !== name) {
|
|
205
|
+
throw parseFailure(`Mismatched closing tag: expected </${name}>, found </${closeName}>`, closeStart);
|
|
206
|
+
}
|
|
207
|
+
return { type: 'element', name, attrs, children };
|
|
208
|
+
}
|
|
209
|
+
if (skipMisc(reader))
|
|
210
|
+
continue;
|
|
211
|
+
if (reader.peek() === '<') {
|
|
212
|
+
flushText();
|
|
213
|
+
children.push(parseElement(reader));
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
// A run of plain character data, up to the next markup — decoded as one
|
|
217
|
+
// chunk so a multi-character reference like `&` or `é` is
|
|
218
|
+
// recognised, rather than fed to the decoder one character at a time.
|
|
219
|
+
const runStart = reader.position;
|
|
220
|
+
while (!reader.eof() && reader.peek() !== '<')
|
|
221
|
+
reader.advance();
|
|
222
|
+
text += decodeEntities(reader.slice(runStart, reader.position));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/** Parses a whole WXR document and returns its root element (`<rss>`). */
|
|
226
|
+
export function parseXmlDocument(source) {
|
|
227
|
+
const reader = new Reader(source);
|
|
228
|
+
while (!reader.eof()) {
|
|
229
|
+
reader.skipWhitespace();
|
|
230
|
+
if (reader.eof())
|
|
231
|
+
break;
|
|
232
|
+
if (skipMisc(reader))
|
|
233
|
+
continue;
|
|
234
|
+
if (reader.peek() === '<')
|
|
235
|
+
return parseElement(reader);
|
|
236
|
+
throw parseFailure('Expected the document root element', reader.position);
|
|
237
|
+
}
|
|
238
|
+
throw parseFailure('Empty document', 0);
|
|
239
|
+
}
|
|
240
|
+
export function firstChild(element, name) {
|
|
241
|
+
for (const child of element.children) {
|
|
242
|
+
if (child.type === 'element' && child.name === name)
|
|
243
|
+
return child;
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
export function children(element, name) {
|
|
248
|
+
return element.children.filter((child) => child.type === 'element' && child.name === name);
|
|
249
|
+
}
|
|
250
|
+
/** Direct text content only — WXR's leaf elements never mix text and child elements. */
|
|
251
|
+
export function textOf(element) {
|
|
252
|
+
if (element === null)
|
|
253
|
+
return '';
|
|
254
|
+
return element.children
|
|
255
|
+
.filter((child) => child.type === 'text')
|
|
256
|
+
.map((child) => child.value)
|
|
257
|
+
.join('');
|
|
258
|
+
}
|
|
259
|
+
export function textOfChild(element, name) {
|
|
260
|
+
return textOf(firstChild(element, name));
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../../src/wordpress/xml.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cogenta/import",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Importers that bring content from another CMS into Cogenta, starting with WordPress WXR.",
|
|
5
|
+
"license": "MPL-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=22.11.0"
|
|
19
|
+
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public",
|
|
22
|
+
"provenance": true
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/cogenta-cms/cogenta.git",
|
|
27
|
+
"directory": "packages/import"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc -p tsconfig.json",
|
|
31
|
+
"typecheck": "tsc -p tsconfig.typecheck.json",
|
|
32
|
+
"test": "vitest run --passWithNoTests"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@cogenta/auth": "workspace:*",
|
|
36
|
+
"@cogenta/blocks": "workspace:*",
|
|
37
|
+
"@cogenta/core": "workspace:*",
|
|
38
|
+
"@cogenta/schema": "workspace:*"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"typescript": "catalog:",
|
|
42
|
+
"vitest": "catalog:"
|
|
43
|
+
}
|
|
44
|
+
}
|