@geekity/plugin-wordpress 0.1.0 → 0.2.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 (45) hide show
  1. package/README.md +174 -9
  2. package/dist/bundle/index.js +24337 -2098
  3. package/dist/bundle/plugin.json +2 -2
  4. package/dist/comments-import.d.ts +3 -0
  5. package/dist/comments-import.d.ts.map +1 -0
  6. package/dist/comments-import.js +155 -0
  7. package/dist/comments-import.js.map +1 -0
  8. package/dist/content-command.d.ts +3 -0
  9. package/dist/content-command.d.ts.map +1 -0
  10. package/dist/content-command.js +100 -0
  11. package/dist/content-command.js.map +1 -0
  12. package/dist/content-import.d.ts +53 -0
  13. package/dist/content-import.d.ts.map +1 -0
  14. package/dist/content-import.js +251 -0
  15. package/dist/content-import.js.map +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +6 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/media-import.d.ts +3 -0
  20. package/dist/media-import.d.ts.map +1 -0
  21. package/dist/media-import.js +89 -0
  22. package/dist/media-import.js.map +1 -0
  23. package/dist/media-redirect.d.ts +4 -0
  24. package/dist/media-redirect.d.ts.map +1 -0
  25. package/dist/media-redirect.js +28 -0
  26. package/dist/media-redirect.js.map +1 -0
  27. package/dist/media.d.ts +14 -0
  28. package/dist/media.d.ts.map +1 -0
  29. package/dist/media.js +102 -0
  30. package/dist/media.js.map +1 -0
  31. package/dist/posts-import.d.ts +34 -0
  32. package/dist/posts-import.d.ts.map +1 -0
  33. package/dist/posts-import.js +301 -0
  34. package/dist/posts-import.js.map +1 -0
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/dist/wordpress-html.d.ts +7 -0
  38. package/dist/wordpress-html.d.ts.map +1 -0
  39. package/dist/wordpress-html.js +360 -0
  40. package/dist/wordpress-html.js.map +1 -0
  41. package/dist/wxr.d.ts +80 -0
  42. package/dist/wxr.d.ts.map +1 -0
  43. package/dist/wxr.js +212 -0
  44. package/dist/wxr.js.map +1 -0
  45. package/package.json +11 -4
package/dist/wxr.js ADDED
@@ -0,0 +1,212 @@
1
+ import sax from 'sax';
2
+ export class NotAWordPressExportError extends Error {
3
+ problems;
4
+ constructor(problems) {
5
+ super(problems.join('\n'));
6
+ this.problems = problems;
7
+ this.name = 'NotAWordPressExportError';
8
+ }
9
+ }
10
+ export function parseWordPressExport(xml) {
11
+ const root = parseXml(xml);
12
+ if (root.name !== 'rss') {
13
+ throw new NotAWordPressExportError([
14
+ `The document is <${root.name}>, and a WordPress export is <rss>.`,
15
+ ]);
16
+ }
17
+ const channel = child(root, 'channel');
18
+ if (channel === undefined) {
19
+ throw new NotAWordPressExportError(['The <rss> holds no <channel>.']);
20
+ }
21
+ if (child(channel, 'wp:wxr_version') === undefined) {
22
+ throw new NotAWordPressExportError([
23
+ 'The <channel> has no <wp:wxr_version>, which every WordPress export carries: this is an RSS feed, not an export.',
24
+ ]);
25
+ }
26
+ const problems = [];
27
+ const items = children(channel, 'item').flatMap((element, index) => {
28
+ const read = new FieldReader(element, `item ${String(index + 1)}`, problems);
29
+ const item = readItem(read);
30
+ return read.failed ? [] : [item];
31
+ });
32
+ const authors = children(channel, 'wp:author').map((element, index) => readAuthor(new FieldReader(element, `author ${String(index + 1)}`, problems)));
33
+ if (problems.length > 0)
34
+ throw new NotAWordPressExportError(problems);
35
+ return {
36
+ site: {
37
+ title: text(channel, 'title'),
38
+ link: text(channel, 'link'),
39
+ language: text(channel, 'language'),
40
+ baseSiteUrl: text(channel, 'wp:base_site_url'),
41
+ baseBlogUrl: text(channel, 'wp:base_blog_url'),
42
+ },
43
+ authors,
44
+ items,
45
+ };
46
+ }
47
+ function readAuthor(read) {
48
+ return {
49
+ id: read.integer('wp:author_id'),
50
+ login: read.text('wp:author_login'),
51
+ email: read.text('wp:author_email'),
52
+ displayName: read.text('wp:author_display_name'),
53
+ };
54
+ }
55
+ function readItem(read) {
56
+ return {
57
+ id: read.integer('wp:post_id'),
58
+ type: read.required('wp:post_type'),
59
+ status: read.text('wp:status'),
60
+ title: read.text('title'),
61
+ link: read.text('link'),
62
+ guid: read.text('guid'),
63
+ slug: read.text('wp:post_name'),
64
+ creator: read.text('dc:creator'),
65
+ content: read.text('content:encoded'),
66
+ excerpt: read.text('excerpt:encoded'),
67
+ date: read.text('wp:post_date'),
68
+ dateGmt: read.instant('wp:post_date_gmt'),
69
+ modifiedGmt: read.instant('wp:post_modified_gmt'),
70
+ parent: read.integer('wp:post_parent', 0),
71
+ menuOrder: read.integer('wp:menu_order', 0),
72
+ password: read.text('wp:post_password'),
73
+ sticky: read.text('wp:is_sticky') === '1',
74
+ attachmentUrl: read.optional('wp:attachment_url'),
75
+ terms: children(read.element, 'category').map((element) => ({
76
+ taxonomy: element.attributes['domain'] ?? '',
77
+ slug: element.attributes['nicename'] ?? '',
78
+ name: element.text,
79
+ })),
80
+ meta: readMeta(read.element, 'wp:postmeta'),
81
+ comments: children(read.element, 'wp:comment').map((element) => {
82
+ const comment = new FieldReader(element, `${read.label} comment`, read.problems);
83
+ return {
84
+ id: comment.integer('wp:comment_id'),
85
+ parent: comment.integer('wp:comment_parent', 0),
86
+ type: comment.text('wp:comment_type'),
87
+ approved: comment.text('wp:comment_approved'),
88
+ author: comment.text('wp:comment_author'),
89
+ authorEmail: comment.text('wp:comment_author_email'),
90
+ authorUrl: comment.text('wp:comment_author_url'),
91
+ authorIp: comment.text('wp:comment_author_IP'),
92
+ date: comment.text('wp:comment_date'),
93
+ dateGmt: comment.instant('wp:comment_date_gmt'),
94
+ content: comment.text('wp:comment_content'),
95
+ userId: comment.integer('wp:comment_user_id', 0),
96
+ meta: readMeta(element, 'wp:commentmeta'),
97
+ };
98
+ }),
99
+ };
100
+ }
101
+ function readMeta(element, name) {
102
+ return children(element, name).map((row) => ({
103
+ key: text(row, 'wp:meta_key'),
104
+ value: text(row, 'wp:meta_value'),
105
+ }));
106
+ }
107
+ class FieldReader {
108
+ element;
109
+ label;
110
+ problems;
111
+ failed = false;
112
+ constructor(element, label, problems) {
113
+ this.element = element;
114
+ this.label = label;
115
+ this.problems = problems;
116
+ const title = child(element, 'title')?.text;
117
+ if (title !== undefined && title !== '')
118
+ this.label = `${label} ("${title}")`;
119
+ }
120
+ text(name) {
121
+ return child(this.element, name)?.text.trim() ?? '';
122
+ }
123
+ optional(name) {
124
+ return child(this.element, name)?.text.trim();
125
+ }
126
+ required(name) {
127
+ const value = this.text(name);
128
+ if (value === '')
129
+ this.fail(`has no <${name}>`);
130
+ return value;
131
+ }
132
+ integer(name, fallback) {
133
+ const value = this.optional(name);
134
+ if (value === undefined || value === '') {
135
+ if (fallback !== undefined)
136
+ return fallback;
137
+ this.fail(`has no <${name}>`);
138
+ return 0;
139
+ }
140
+ if (!/^[0-9]+$/.test(value))
141
+ this.fail(`has <${name}> "${value}", which is not a whole number`);
142
+ return Number(value);
143
+ }
144
+ /** A `YYYY-MM-DD HH:MM:SS` UTC time as an ISO instant; WordPress's zero date is none. */
145
+ instant(name) {
146
+ const value = this.text(name);
147
+ if (value === '' || value.startsWith('0000-00-00'))
148
+ return undefined;
149
+ const match = /^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})$/.exec(value);
150
+ if (match === null) {
151
+ this.fail(`has <${name}> "${value}", which is not a YYYY-MM-DD HH:MM:SS time`);
152
+ return undefined;
153
+ }
154
+ return `${match[1] ?? ''}T${match[2] ?? ''}Z`;
155
+ }
156
+ fail(problem) {
157
+ this.failed = true;
158
+ this.problems.push(`${this.label} ${problem}.`);
159
+ }
160
+ }
161
+ function child(element, name) {
162
+ return element.children.find((entry) => entry.name === name);
163
+ }
164
+ function children(element, name) {
165
+ return element.children.filter((entry) => entry.name === name);
166
+ }
167
+ function text(element, name) {
168
+ return child(element, name)?.text.trim() ?? '';
169
+ }
170
+ function parseXml(xml) {
171
+ const parser = sax.parser(true, { trim: false, normalize: false });
172
+ const stack = [];
173
+ let root;
174
+ let failure;
175
+ parser.onopentag = (tag) => {
176
+ const element = {
177
+ name: tag.name,
178
+ attributes: Object.fromEntries(Object.entries(tag.attributes).filter((entry) => typeof entry[1] === 'string')),
179
+ children: [],
180
+ text: '',
181
+ };
182
+ stack.at(-1)?.children.push(element);
183
+ root ??= element;
184
+ stack.push(element);
185
+ };
186
+ parser.onclosetag = () => {
187
+ stack.pop();
188
+ };
189
+ const append = (chunk) => {
190
+ const open = stack.at(-1);
191
+ if (open !== undefined)
192
+ open.text += chunk;
193
+ };
194
+ parser.ontext = append;
195
+ parser.oncdata = append;
196
+ parser.onerror = (error) => {
197
+ throw error;
198
+ };
199
+ try {
200
+ parser.write(xml).close();
201
+ }
202
+ catch (error) {
203
+ failure = error instanceof Error ? error.message.split('\n')[0] : String(error);
204
+ }
205
+ if (failure !== undefined || root === undefined) {
206
+ throw new NotAWordPressExportError([
207
+ `The file is not well-formed XML: ${failure ?? 'it holds no element'} at line ${String(parser.line + 1)}, column ${String(parser.column + 1)}.`,
208
+ ]);
209
+ }
210
+ return root;
211
+ }
212
+ //# sourceMappingURL=wxr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wxr.js","sourceRoot":"","sources":["../src/wxr.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekity/plugin-wordpress",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "Geekity CMS plugin for a site that moved from the WordPress ActivityPub plugin: its old inbox and collection paths, and the import that brings each person across.",
6
6
  "license": "MIT",
@@ -21,6 +21,9 @@
21
21
  "README.md",
22
22
  "LICENSE"
23
23
  ],
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
24
27
  "geekity": {
25
28
  "plugin": true,
26
29
  "hostApi": 1,
@@ -28,16 +31,20 @@
28
31
  },
29
32
  "dependencies": {
30
33
  "@fedify/fedify": "^2.4.0",
31
- "@fedify/vocab": "^2.4.0"
34
+ "@fedify/vocab": "^2.4.0",
35
+ "js-yaml": "^5.4.2",
36
+ "sax": "^1.6.1",
37
+ "turndown": "^7.2.4"
32
38
  },
33
39
  "peerDependencies": {
34
- "@geekity/cms": "^0.25.0"
40
+ "@geekity/cms": ">=0.28.0 <1.0.0"
35
41
  },
36
42
  "devDependencies": {
37
43
  "@fedify/cli": "2.4.0",
38
- "@geekity/cms": "0.25.0",
44
+ "@geekity/cms": "0.28.0",
39
45
  "@hono/node-server": "^2.1.3",
40
46
  "@types/node": "^26.6.4",
47
+ "@types/sax": "^1.2.7",
41
48
  "esbuild": "^0.28.2",
42
49
  "tsx": "^4.23.15",
43
50
  "typescript": "^7.0.2"