@forumulate/cli 0.3.6 → 0.5.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/README.md +4 -3
- package/dist/cli.js +37 -1
- package/dist/cli.js.map +1 -1
- package/dist/content/command.d.ts +34 -0
- package/dist/content/command.d.ts.map +1 -0
- package/dist/content/command.js +225 -0
- package/dist/content/command.js.map +1 -0
- package/dist/content/library.d.ts +22 -0
- package/dist/content/library.d.ts.map +1 -0
- package/dist/content/library.js +40 -0
- package/dist/content/library.js.map +1 -0
- package/dist/content/render.d.ts +15 -0
- package/dist/content/render.d.ts.map +1 -0
- package/dist/content/render.js +85 -0
- package/dist/content/render.js.map +1 -0
- package/dist/content/types-gen.d.ts +40 -0
- package/dist/content/types-gen.d.ts.map +1 -0
- package/dist/content/types-gen.js +200 -0
- package/dist/content/types-gen.js.map +1 -0
- package/dist/import/coerce.d.ts +34 -0
- package/dist/import/coerce.d.ts.map +1 -0
- package/dist/import/coerce.js +134 -0
- package/dist/import/coerce.js.map +1 -0
- package/dist/import/command.d.ts +25 -0
- package/dist/import/command.d.ts.map +1 -0
- package/dist/import/command.js +127 -0
- package/dist/import/command.js.map +1 -0
- package/dist/import/config.d.ts +39 -0
- package/dist/import/config.d.ts.map +1 -0
- package/dist/import/config.js +48 -0
- package/dist/import/config.js.map +1 -0
- package/dist/import/contentful.d.ts +3 -0
- package/dist/import/contentful.d.ts.map +1 -0
- package/dist/import/contentful.js +179 -0
- package/dist/import/contentful.js.map +1 -0
- package/dist/import/disk.d.ts +4 -0
- package/dist/import/disk.d.ts.map +1 -0
- package/dist/import/disk.js +19 -0
- package/dist/import/disk.js.map +1 -0
- package/dist/import/engine-locales.d.ts +35 -0
- package/dist/import/engine-locales.d.ts.map +1 -0
- package/dist/import/engine-locales.js +61 -0
- package/dist/import/engine-locales.js.map +1 -0
- package/dist/import/engine.d.ts +29 -0
- package/dist/import/engine.d.ts.map +1 -0
- package/dist/import/engine.js +248 -0
- package/dist/import/engine.js.map +1 -0
- package/dist/import/media.d.ts +24 -0
- package/dist/import/media.d.ts.map +1 -0
- package/dist/import/media.js +39 -0
- package/dist/import/media.js.map +1 -0
- package/dist/import/model-fields.d.ts +22 -0
- package/dist/import/model-fields.d.ts.map +1 -0
- package/dist/import/model-fields.js +60 -0
- package/dist/import/model-fields.js.map +1 -0
- package/dist/import/payload/index.d.ts +9 -0
- package/dist/import/payload/index.d.ts.map +1 -0
- package/dist/import/payload/index.js +129 -0
- package/dist/import/payload/index.js.map +1 -0
- package/dist/import/report.d.ts +5 -0
- package/dist/import/report.d.ts.map +1 -0
- package/dist/import/report.js +52 -0
- package/dist/import/report.js.map +1 -0
- package/dist/import/richtext-core.d.ts +26 -0
- package/dist/import/richtext-core.d.ts.map +1 -0
- package/dist/import/richtext-core.js +65 -0
- package/dist/import/richtext-core.js.map +1 -0
- package/dist/import/richtext-html.d.ts +5 -0
- package/dist/import/richtext-html.d.ts.map +1 -0
- package/dist/import/richtext-html.js +311 -0
- package/dist/import/richtext-html.js.map +1 -0
- package/dist/import/richtext-json.d.ts +10 -0
- package/dist/import/richtext-json.d.ts.map +1 -0
- package/dist/import/richtext-json.js +250 -0
- package/dist/import/richtext-json.js.map +1 -0
- package/dist/import/sanity.d.ts +8 -0
- package/dist/import/sanity.d.ts.map +1 -0
- package/dist/import/sanity.js +158 -0
- package/dist/import/sanity.js.map +1 -0
- package/dist/import/strapi-archive.d.ts +6 -0
- package/dist/import/strapi-archive.d.ts.map +1 -0
- package/dist/import/strapi-archive.js +127 -0
- package/dist/import/strapi-archive.js.map +1 -0
- package/dist/import/strapi.d.ts +7 -0
- package/dist/import/strapi.d.ts.map +1 -0
- package/dist/import/strapi.js +185 -0
- package/dist/import/strapi.js.map +1 -0
- package/dist/import/tar.d.ts +3 -0
- package/dist/import/tar.d.ts.map +1 -0
- package/dist/import/tar.js +48 -0
- package/dist/import/tar.js.map +1 -0
- package/dist/import/types.d.ts +157 -0
- package/dist/import/types.d.ts.map +1 -0
- package/dist/import/types.js +12 -0
- package/dist/import/types.js.map +1 -0
- package/dist/import/wordpress.d.ts +15 -0
- package/dist/import/wordpress.d.ts.map +1 -0
- package/dist/import/wordpress.js +147 -0
- package/dist/import/wordpress.js.map +1 -0
- package/dist/publish/api.d.ts +95 -0
- package/dist/publish/api.d.ts.map +1 -0
- package/dist/publish/api.js +265 -0
- package/dist/publish/api.js.map +1 -0
- package/dist/publish/command.d.ts +44 -0
- package/dist/publish/command.d.ts.map +1 -0
- package/dist/publish/command.js +246 -0
- package/dist/publish/command.js.map +1 -0
- package/dist/publish/compare.d.ts +45 -0
- package/dist/publish/compare.d.ts.map +1 -0
- package/dist/publish/compare.js +124 -0
- package/dist/publish/compare.js.map +1 -0
- package/dist/publish/context.d.ts +46 -0
- package/dist/publish/context.d.ts.map +1 -0
- package/dist/publish/context.js +54 -0
- package/dist/publish/context.js.map +1 -0
- package/dist/publish/docs-apply.d.ts +39 -0
- package/dist/publish/docs-apply.d.ts.map +1 -0
- package/dist/publish/docs-apply.js +178 -0
- package/dist/publish/docs-apply.js.map +1 -0
- package/dist/publish/docs-plan.d.ts +40 -0
- package/dist/publish/docs-plan.d.ts.map +1 -0
- package/dist/publish/docs-plan.js +211 -0
- package/dist/publish/docs-plan.js.map +1 -0
- package/dist/publish/docs-reconcile.d.ts +26 -0
- package/dist/publish/docs-reconcile.d.ts.map +1 -0
- package/dist/publish/docs-reconcile.js +162 -0
- package/dist/publish/docs-reconcile.js.map +1 -0
- package/dist/publish/extras.d.ts +25 -0
- package/dist/publish/extras.d.ts.map +1 -0
- package/dist/publish/extras.js +218 -0
- package/dist/publish/extras.js.map +1 -0
- package/dist/publish/frontmatter.d.ts +45 -0
- package/dist/publish/frontmatter.d.ts.map +1 -0
- package/dist/publish/frontmatter.js +265 -0
- package/dist/publish/frontmatter.js.map +1 -0
- package/dist/publish/manifest.d.ts +5 -0
- package/dist/publish/manifest.d.ts.map +1 -0
- package/dist/publish/manifest.js +144 -0
- package/dist/publish/manifest.js.map +1 -0
- package/dist/publish/posts.d.ts +39 -0
- package/dist/publish/posts.d.ts.map +1 -0
- package/dist/publish/posts.js +350 -0
- package/dist/publish/posts.js.map +1 -0
- package/dist/publish/rewrite.d.ts +20 -0
- package/dist/publish/rewrite.d.ts.map +1 -0
- package/dist/publish/rewrite.js +82 -0
- package/dist/publish/rewrite.js.map +1 -0
- package/dist/publish/scan.d.ts +25 -0
- package/dist/publish/scan.d.ts.map +1 -0
- package/dist/publish/scan.js +351 -0
- package/dist/publish/scan.js.map +1 -0
- package/dist/publish/types.d.ts +155 -0
- package/dist/publish/types.d.ts.map +1 -0
- package/dist/publish/types.js +13 -0
- package/dist/publish/types.js.map +1 -0
- package/dist/run.d.ts +15 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +103 -45
- package/dist/run.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromLexical = fromLexical;
|
|
4
|
+
exports.fromPortableText = fromPortableText;
|
|
5
|
+
exports.fromContentful = fromContentful;
|
|
6
|
+
exports.fromStrapiBlocks = fromStrapiBlocks;
|
|
7
|
+
/**
|
|
8
|
+
* The structured rich-text formats to a BlockDoc: Payload's Lexical,
|
|
9
|
+
* Sanity's Portable Text, Contentful's rich text and Strapi's `blocks`.
|
|
10
|
+
*
|
|
11
|
+
* Each walks its own tree and writes the same few node kinds through
|
|
12
|
+
* ./richtext-core. A node a format has and the block model does not (an
|
|
13
|
+
* embedded entry, a custom Portable Text object) becomes its plain text, or
|
|
14
|
+
* nothing when it has none; `skipped` counts them so the report can say so
|
|
15
|
+
* instead of the page silently coming out shorter.
|
|
16
|
+
*/
|
|
17
|
+
const richtext_core_1 = require("./richtext-core");
|
|
18
|
+
const isObj = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
19
|
+
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
20
|
+
const str = (v) => (typeof v === 'string' ? v : undefined);
|
|
21
|
+
/* ------------------------------ Lexical ------------------------------ */
|
|
22
|
+
/** Lexical's `format` bitmask on a text node. */
|
|
23
|
+
const LEXICAL_FORMATS = [[1, 'bold'], [2, 'italic'], [4, 'strike'], [8, 'underline'], [16, 'code']];
|
|
24
|
+
function fromLexical(value, imageOf, mediaUrl = () => null) {
|
|
25
|
+
const root = isObj(value) && isObj(value.root) ? value.root : null;
|
|
26
|
+
if (!root)
|
|
27
|
+
return null;
|
|
28
|
+
const runs = (children, href) => children.flatMap((c) => {
|
|
29
|
+
if (!isObj(c))
|
|
30
|
+
return [];
|
|
31
|
+
if (c.type === 'linebreak')
|
|
32
|
+
return [{ text: '\n', marks: [] }];
|
|
33
|
+
if (c.type === 'text') {
|
|
34
|
+
const f = typeof c.format === 'number' ? c.format : 0;
|
|
35
|
+
return [{ text: str(c.text) ?? '', marks: LEXICAL_FORMATS.filter(([bit]) => f & bit).map(([, m]) => m), href }];
|
|
36
|
+
}
|
|
37
|
+
if (c.type === 'link' || c.type === 'autolink') {
|
|
38
|
+
const fields = isObj(c.fields) ? c.fields : {};
|
|
39
|
+
return runs(arr(c.children), (0, richtext_core_1.safeHref)(str(fields.url) ?? str(c.url)) ?? href);
|
|
40
|
+
}
|
|
41
|
+
return runs(arr(c.children), href);
|
|
42
|
+
});
|
|
43
|
+
const blocks = (nodes) => nodes.flatMap((n) => {
|
|
44
|
+
if (!isObj(n))
|
|
45
|
+
return [];
|
|
46
|
+
const kids = arr(n.children);
|
|
47
|
+
switch (n.type) {
|
|
48
|
+
case 'paragraph': {
|
|
49
|
+
const r = runs(kids);
|
|
50
|
+
return r.length ? [(0, richtext_core_1.paragraph)(r)] : [];
|
|
51
|
+
}
|
|
52
|
+
case 'heading':
|
|
53
|
+
return [(0, richtext_core_1.heading)(Number(String(n.tag ?? 'h2').slice(1)) || 2, runs(kids))];
|
|
54
|
+
case 'quote':
|
|
55
|
+
return [{ type: 'blockquote', content: [(0, richtext_core_1.paragraph)(runs(kids))] }];
|
|
56
|
+
case 'list':
|
|
57
|
+
return [(0, richtext_core_1.list)(n.listType === 'number', kids.map((li) => (isObj(li) ? blocks(arr(li.children).some((x) => isObj(x) && x.type === 'list') ? arr(li.children) : [{ type: 'paragraph', children: li.children }]) : [])))];
|
|
58
|
+
case 'code':
|
|
59
|
+
return [(0, richtext_core_1.codeBlock)(kids.map((k) => (isObj(k) ? (k.type === 'linebreak' ? '\n' : (str(k.text) ?? '')) : '')).join(''), str(n.language))];
|
|
60
|
+
case 'horizontalrule':
|
|
61
|
+
return [{ type: 'horizontalRule' }];
|
|
62
|
+
case 'upload': {
|
|
63
|
+
const v = isObj(n.value) ? n.value : {};
|
|
64
|
+
const src = str(v.url) ?? mediaUrl(n.value) ?? undefined;
|
|
65
|
+
return src ? [(0, richtext_core_1.image)(imageOf(src, str(v.alt)), str(v.alt))] : [];
|
|
66
|
+
}
|
|
67
|
+
default:
|
|
68
|
+
return kids.length ? blocks(kids) : [];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return (0, richtext_core_1.doc)(blocks(arr(root.children)));
|
|
72
|
+
}
|
|
73
|
+
/* --------------------------- Portable Text --------------------------- */
|
|
74
|
+
const PT_MARKS = { strong: 'bold', em: 'italic', code: 'code', 'strike-through': 'strike', underline: 'underline' };
|
|
75
|
+
function fromPortableText(value, imageOf, assetUrl) {
|
|
76
|
+
if (!Array.isArray(value))
|
|
77
|
+
return null;
|
|
78
|
+
const out = [];
|
|
79
|
+
// Consecutive list items of one kind are one list; a list item's `level` nests it.
|
|
80
|
+
let open = null;
|
|
81
|
+
const closeList = () => {
|
|
82
|
+
if (!open)
|
|
83
|
+
return;
|
|
84
|
+
const build = (level, from) => {
|
|
85
|
+
const items = [];
|
|
86
|
+
let i = from;
|
|
87
|
+
while (i < open.items.length && open.items[i].level >= level) {
|
|
88
|
+
const it = open.items[i];
|
|
89
|
+
const kids = [...it.content];
|
|
90
|
+
i++;
|
|
91
|
+
if (i < open.items.length && open.items[i].level > level) {
|
|
92
|
+
const nested = build(level + 1, i);
|
|
93
|
+
kids.push(...nested.node);
|
|
94
|
+
i = nested.next;
|
|
95
|
+
}
|
|
96
|
+
items.push(kids);
|
|
97
|
+
}
|
|
98
|
+
return { node: [(0, richtext_core_1.list)(open.kind === 'number', items)], next: i };
|
|
99
|
+
};
|
|
100
|
+
out.push(...build(Math.min(...open.items.map((x) => x.level)), 0).node);
|
|
101
|
+
open = null;
|
|
102
|
+
};
|
|
103
|
+
for (const b of value) {
|
|
104
|
+
if (!isObj(b))
|
|
105
|
+
continue;
|
|
106
|
+
if (b._type === 'block') {
|
|
107
|
+
const defs = new Map(arr(b.markDefs).filter(isObj).map((d) => [str(d._key) ?? '', d]));
|
|
108
|
+
const runs = arr(b.children).filter(isObj).map((s) => {
|
|
109
|
+
const marks = [];
|
|
110
|
+
let href;
|
|
111
|
+
for (const m of arr(s.marks)) {
|
|
112
|
+
if (typeof m !== 'string')
|
|
113
|
+
continue;
|
|
114
|
+
if (PT_MARKS[m])
|
|
115
|
+
marks.push(PT_MARKS[m]);
|
|
116
|
+
else if (defs.get(m)?._type === 'link')
|
|
117
|
+
href = (0, richtext_core_1.safeHref)(str(defs.get(m).href));
|
|
118
|
+
}
|
|
119
|
+
return { text: str(s.text) ?? '', marks, href };
|
|
120
|
+
});
|
|
121
|
+
if (typeof b.listItem === 'string') {
|
|
122
|
+
if (open && open.kind !== b.listItem)
|
|
123
|
+
closeList();
|
|
124
|
+
(open ??= { kind: b.listItem, items: [] }).items.push({ level: Number(b.level) || 1, content: [(0, richtext_core_1.paragraph)(runs)] });
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
closeList();
|
|
128
|
+
const style = str(b.style) ?? 'normal';
|
|
129
|
+
const h = /^h([1-6])$/.exec(style);
|
|
130
|
+
if (h)
|
|
131
|
+
out.push((0, richtext_core_1.heading)(Number(h[1]), runs));
|
|
132
|
+
else if (style === 'blockquote')
|
|
133
|
+
out.push({ type: 'blockquote', content: [(0, richtext_core_1.paragraph)(runs)] });
|
|
134
|
+
else if (runs.some((r) => r.text))
|
|
135
|
+
out.push((0, richtext_core_1.paragraph)(runs));
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
closeList();
|
|
139
|
+
if (b._type === 'image') {
|
|
140
|
+
const ref = isObj(b.asset) ? str(b.asset._ref) : undefined;
|
|
141
|
+
const url = ref ? assetUrl(ref) : null;
|
|
142
|
+
if (url)
|
|
143
|
+
out.push((0, richtext_core_1.image)(imageOf(url, str(b.alt)), str(b.alt)));
|
|
144
|
+
}
|
|
145
|
+
else if (b._type === 'code')
|
|
146
|
+
out.push((0, richtext_core_1.codeBlock)(str(b.code) ?? '', str(b.language)));
|
|
147
|
+
}
|
|
148
|
+
closeList();
|
|
149
|
+
return (0, richtext_core_1.doc)(out);
|
|
150
|
+
}
|
|
151
|
+
/* ---------------------------- Contentful ---------------------------- */
|
|
152
|
+
const CF_MARKS = { bold: 'bold', italic: 'italic', code: 'code', underline: 'underline' };
|
|
153
|
+
/** `assetOf` maps a linked asset id to the URL the engine will rewrite to the uploaded file. */
|
|
154
|
+
function fromContentful(value, imageOf, assetOf) {
|
|
155
|
+
if (!isObj(value) || value.nodeType !== 'document')
|
|
156
|
+
return null;
|
|
157
|
+
const runs = (nodes, href) => nodes.flatMap((n) => {
|
|
158
|
+
if (!isObj(n))
|
|
159
|
+
return [];
|
|
160
|
+
if (n.nodeType === 'text') {
|
|
161
|
+
return [{ text: str(n.value) ?? '', marks: arr(n.marks).filter(isObj).map((m) => CF_MARKS[str(m.type) ?? '']).filter((m) => !!m), href }];
|
|
162
|
+
}
|
|
163
|
+
const data = isObj(n.data) ? n.data : {};
|
|
164
|
+
return runs(arr(n.content), n.nodeType === 'hyperlink' ? (0, richtext_core_1.safeHref)(str(data.uri)) : href);
|
|
165
|
+
});
|
|
166
|
+
const blocks = (nodes) => nodes.flatMap((n) => {
|
|
167
|
+
if (!isObj(n))
|
|
168
|
+
return [];
|
|
169
|
+
const kids = arr(n.content);
|
|
170
|
+
const nt = str(n.nodeType) ?? '';
|
|
171
|
+
const h = /^heading-([1-6])$/.exec(nt);
|
|
172
|
+
if (h)
|
|
173
|
+
return [(0, richtext_core_1.heading)(Number(h[1]), runs(kids))];
|
|
174
|
+
switch (nt) {
|
|
175
|
+
case 'paragraph': {
|
|
176
|
+
const r = runs(kids);
|
|
177
|
+
return r.some((x) => x.text) ? [(0, richtext_core_1.paragraph)(r)] : [];
|
|
178
|
+
}
|
|
179
|
+
case 'unordered-list':
|
|
180
|
+
case 'ordered-list':
|
|
181
|
+
return [(0, richtext_core_1.list)(nt === 'ordered-list', kids.map((li) => (isObj(li) ? blocks(arr(li.content)) : [])))];
|
|
182
|
+
case 'blockquote':
|
|
183
|
+
return [{ type: 'blockquote', content: blocks(kids) }];
|
|
184
|
+
case 'hr':
|
|
185
|
+
return [{ type: 'horizontalRule' }];
|
|
186
|
+
case 'embedded-asset-block': {
|
|
187
|
+
const data = isObj(n.data) ? n.data : {};
|
|
188
|
+
const target = isObj(data.target) && isObj(data.target.sys) ? str(data.target.sys.id) : undefined;
|
|
189
|
+
const asset = target ? assetOf(target) : null;
|
|
190
|
+
return asset ? [(0, richtext_core_1.image)(imageOf(asset.url, asset.alt), asset.alt)] : [];
|
|
191
|
+
}
|
|
192
|
+
default:
|
|
193
|
+
return kids.length ? blocks(kids) : [];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return (0, richtext_core_1.doc)(blocks(arr(value.content)));
|
|
197
|
+
}
|
|
198
|
+
/* ------------------------------ Strapi ------------------------------ */
|
|
199
|
+
function fromStrapiBlocks(value, imageOf) {
|
|
200
|
+
if (!Array.isArray(value))
|
|
201
|
+
return null;
|
|
202
|
+
const runs = (nodes, href) => nodes.flatMap((n) => {
|
|
203
|
+
if (!isObj(n))
|
|
204
|
+
return [];
|
|
205
|
+
if (n.type === 'link')
|
|
206
|
+
return runs(arr(n.children), (0, richtext_core_1.safeHref)(str(n.url)) ?? href);
|
|
207
|
+
if (n.type !== undefined && n.type !== 'text')
|
|
208
|
+
return runs(arr(n.children), href);
|
|
209
|
+
const marks = [];
|
|
210
|
+
if (n.bold)
|
|
211
|
+
marks.push('bold');
|
|
212
|
+
if (n.italic)
|
|
213
|
+
marks.push('italic');
|
|
214
|
+
if (n.strikethrough)
|
|
215
|
+
marks.push('strike');
|
|
216
|
+
if (n.underline)
|
|
217
|
+
marks.push('underline');
|
|
218
|
+
if (n.code)
|
|
219
|
+
marks.push('code');
|
|
220
|
+
return [{ text: str(n.text) ?? '', marks, href }];
|
|
221
|
+
});
|
|
222
|
+
const blocks = (nodes) => nodes.flatMap((n) => {
|
|
223
|
+
if (!isObj(n))
|
|
224
|
+
return [];
|
|
225
|
+
const kids = arr(n.children);
|
|
226
|
+
switch (n.type) {
|
|
227
|
+
case 'paragraph': {
|
|
228
|
+
const r = runs(kids);
|
|
229
|
+
return r.some((x) => x.text) ? [(0, richtext_core_1.paragraph)(r)] : [];
|
|
230
|
+
}
|
|
231
|
+
case 'heading':
|
|
232
|
+
return [(0, richtext_core_1.heading)(Number(n.level) || 2, runs(kids))];
|
|
233
|
+
case 'quote':
|
|
234
|
+
return [{ type: 'blockquote', content: [(0, richtext_core_1.paragraph)(runs(kids))] }];
|
|
235
|
+
case 'code':
|
|
236
|
+
return [(0, richtext_core_1.codeBlock)(kids.map((k) => (isObj(k) ? (str(k.text) ?? '') : '')).join(''), str(n.language))];
|
|
237
|
+
case 'list':
|
|
238
|
+
return [(0, richtext_core_1.list)(n.format === 'ordered', kids.map((li) => (isObj(li) ? (arr(li.children).some((x) => isObj(x) && x.type === 'list') ? [(0, richtext_core_1.paragraph)(runs(arr(li.children).filter((x) => !isObj(x) || x.type !== 'list'))), ...blocks(arr(li.children).filter((x) => isObj(x) && x.type === 'list'))] : [(0, richtext_core_1.paragraph)(runs(arr(li.children)))]) : [])))];
|
|
239
|
+
case 'image': {
|
|
240
|
+
const img = isObj(n.image) ? n.image : {};
|
|
241
|
+
const url = str(img.url);
|
|
242
|
+
return url ? [(0, richtext_core_1.image)(imageOf(url, str(img.alternativeText)), str(img.alternativeText))] : [];
|
|
243
|
+
}
|
|
244
|
+
default:
|
|
245
|
+
return [];
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
return (0, richtext_core_1.doc)(blocks(value));
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=richtext-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-json.js","sourceRoot":"","sources":["../../src/import/richtext-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ImportSource } from './types';
|
|
2
|
+
/** `image-<hash>-<w>x<h>-<ext>` → `<hash>-<w>x<h>.<ext>`, the name Sanity's CDN serves it under. */
|
|
3
|
+
export declare const assetFilename: (ref: string) => string;
|
|
4
|
+
export declare function readSanityExport(ndjson: string, opts?: {
|
|
5
|
+
projectId?: string;
|
|
6
|
+
dataset?: string;
|
|
7
|
+
}): ImportSource;
|
|
8
|
+
//# sourceMappingURL=sanity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanity.d.ts","sourceRoot":"","sources":["../../src/import/sanity.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAC;AA4BpE,oGAAoG;AACpG,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,MAG3C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CA2GlH"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assetFilename = void 0;
|
|
4
|
+
exports.readSanityExport = readSanityExport;
|
|
5
|
+
/**
|
|
6
|
+
* Sanity: the NDJSON `sanity dataset export` writes (`data.ndjson`: one JSON
|
|
7
|
+
* document per line, asset documents included).
|
|
8
|
+
*
|
|
9
|
+
* Sanity keeps its schema in code, not in the export, so the model is
|
|
10
|
+
* INFERRED from the documents: per `_type`, each field's kind comes from the
|
|
11
|
+
* values it holds (a Portable Text array is rich text, an `image` is an
|
|
12
|
+
* upload, a `reference` is a relationship). A field whose values disagree
|
|
13
|
+
* becomes JSON rather than being forced into one kind and losing data. A
|
|
14
|
+
* `drafts.` document whose published twin exists is the twin's pending edit
|
|
15
|
+
* and is not imported twice.
|
|
16
|
+
*/
|
|
17
|
+
const config_1 = require("./config");
|
|
18
|
+
const richtext_json_1 = require("./richtext-json");
|
|
19
|
+
const isObj = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
20
|
+
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
21
|
+
const isPortable = (v) => Array.isArray(v) && v.length > 0 && v.every((b) => isObj(b) && typeof b._type === 'string' && (b._type === 'block' || b._type === 'image' || b._type === 'code'));
|
|
22
|
+
const isImage = (v) => isObj(v) && isObj(v.asset) && typeof v.asset._ref === 'string' && /^(image|file)-/.test(v.asset._ref);
|
|
23
|
+
const isRef = (v) => isObj(v) && typeof v._ref === 'string' && !('asset' in v);
|
|
24
|
+
const DATE = /^\d{4}-\d{2}-\d{2}(T[\d:.+Z-]+)?$/;
|
|
25
|
+
function kindOf(v) {
|
|
26
|
+
if (typeof v === 'string')
|
|
27
|
+
return DATE.test(v) ? 'date' : v.length > 160 || v.includes('\n') ? 'textarea' : 'text';
|
|
28
|
+
if (typeof v === 'number')
|
|
29
|
+
return 'number';
|
|
30
|
+
if (typeof v === 'boolean')
|
|
31
|
+
return 'checkbox';
|
|
32
|
+
if (isPortable(v))
|
|
33
|
+
return 'richText';
|
|
34
|
+
if (isImage(v))
|
|
35
|
+
return 'upload';
|
|
36
|
+
if (isRef(v))
|
|
37
|
+
return 'relationship';
|
|
38
|
+
return 'json';
|
|
39
|
+
}
|
|
40
|
+
/** `image-<hash>-<w>x<h>-<ext>` → `<hash>-<w>x<h>.<ext>`, the name Sanity's CDN serves it under. */
|
|
41
|
+
const assetFilename = (ref) => {
|
|
42
|
+
const m = /^(?:image|file)-(.+)-([a-z0-9]+)$/.exec(ref);
|
|
43
|
+
return m ? `${m[1]}.${m[2]}` : ref;
|
|
44
|
+
};
|
|
45
|
+
exports.assetFilename = assetFilename;
|
|
46
|
+
function readSanityExport(ndjson, opts = {}) {
|
|
47
|
+
const notes = [];
|
|
48
|
+
const docs = [];
|
|
49
|
+
ndjson.split(/\r?\n/).forEach((line, i) => {
|
|
50
|
+
if (!line.trim())
|
|
51
|
+
return;
|
|
52
|
+
try {
|
|
53
|
+
const d = JSON.parse(line);
|
|
54
|
+
if (isObj(d) && typeof d._id === 'string' && typeof d._type === 'string')
|
|
55
|
+
docs.push(d);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
notes.push(`Line ${i + 1} is not JSON and was skipped.`);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
const media = [];
|
|
62
|
+
const assetById = new Map();
|
|
63
|
+
for (const d of docs) {
|
|
64
|
+
if (d._type !== 'sanity.imageAsset' && d._type !== 'sanity.fileAsset')
|
|
65
|
+
continue;
|
|
66
|
+
if (typeof d.url !== 'string')
|
|
67
|
+
continue;
|
|
68
|
+
const m = {
|
|
69
|
+
id: d._id,
|
|
70
|
+
filename: typeof d.originalFilename === 'string' && d.originalFilename ? d.originalFilename : (0, exports.assetFilename)(d._id),
|
|
71
|
+
location: d.url,
|
|
72
|
+
...(typeof d.mimeType === 'string' ? { contentType: d.mimeType } : {}),
|
|
73
|
+
aliases: [d.url],
|
|
74
|
+
};
|
|
75
|
+
media.push(m);
|
|
76
|
+
assetById.set(m.id, m);
|
|
77
|
+
}
|
|
78
|
+
const published = new Set(docs.filter((d) => !d._id.startsWith('drafts.')).map((d) => d._id));
|
|
79
|
+
const content = docs.filter((d) => !String(d._type).startsWith('sanity.') && !(String(d._id).startsWith('_.')));
|
|
80
|
+
const live = content.filter((d) => {
|
|
81
|
+
const draft = d._id.startsWith('drafts.');
|
|
82
|
+
return !draft || !published.has(d._id.slice(7));
|
|
83
|
+
});
|
|
84
|
+
const typeOfId = new Map(content.map((d) => [d._id.replace(/^drafts\./, ''), (0, config_1.keyOf)(d._type)]));
|
|
85
|
+
// Sanity's `{ _type: 'slug', current }` is plain text here, so the model and the values agree.
|
|
86
|
+
const valuesOf = (d) => Object.entries(d)
|
|
87
|
+
.filter(([k, v]) => !k.startsWith('_') && v !== null && v !== undefined)
|
|
88
|
+
.map(([k, v]) => [k, isObj(v) && v._type === 'slug' && typeof v.current === 'string' ? v.current : v]);
|
|
89
|
+
const seen = new Map();
|
|
90
|
+
for (const d of live) {
|
|
91
|
+
const slug = (0, config_1.keyOf)(d._type);
|
|
92
|
+
const fields = seen.get(slug) ?? seen.set(slug, new Map()).get(slug);
|
|
93
|
+
for (const [k, v] of valuesOf(d)) {
|
|
94
|
+
// An empty list says nothing about what the field holds.
|
|
95
|
+
if (Array.isArray(v) && v.length === 0)
|
|
96
|
+
continue;
|
|
97
|
+
const entry = fields.get(k) ?? fields.set(k, { kinds: new Set(), many: false, targets: new Set() }).get(k);
|
|
98
|
+
const list = Array.isArray(v) && !isPortable(v);
|
|
99
|
+
const items = list ? v : [v];
|
|
100
|
+
entry.many ||= list;
|
|
101
|
+
for (const item of items) {
|
|
102
|
+
entry.kinds.add(list && kindOf(item) === 'textarea' ? 'text' : kindOf(item));
|
|
103
|
+
if (isRef(item))
|
|
104
|
+
entry.targets.add(typeOfId.get(String(item._ref).replace(/^drafts\./, '')) ?? '');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const collections = [...seen].map(([slug, fields]) => ({
|
|
109
|
+
slug,
|
|
110
|
+
fields: [...fields]
|
|
111
|
+
.map(([k, f]) => {
|
|
112
|
+
const kind = (f.kinds.size === 1 ? [...f.kinds][0] : 'json');
|
|
113
|
+
const name = (0, config_1.keyOf)(k);
|
|
114
|
+
if (kind === 'relationship') {
|
|
115
|
+
const to = [...f.targets].filter(Boolean);
|
|
116
|
+
return { name, type: 'relationship', relationTo: to.length === 1 ? to[0] : to.length ? to : [...seen.keys()], ...(f.many ? { hasMany: true } : {}) };
|
|
117
|
+
}
|
|
118
|
+
if (kind === 'upload')
|
|
119
|
+
return f.many ? (0, config_1.listOf)(name, { type: 'upload', relationTo: 'media' }) : { name, type: 'upload', relationTo: 'media' };
|
|
120
|
+
// A list of scalars is a list of one-value rows; a list of anything else is JSON.
|
|
121
|
+
if (f.many && (kind === 'text' || kind === 'number'))
|
|
122
|
+
return (0, config_1.listOf)(name, { type: kind });
|
|
123
|
+
if (f.many)
|
|
124
|
+
return { name, type: 'json' };
|
|
125
|
+
return { name, type: kind };
|
|
126
|
+
}),
|
|
127
|
+
}));
|
|
128
|
+
const records = live.map((d) => {
|
|
129
|
+
const id = d._id.replace(/^drafts\./, '');
|
|
130
|
+
const values = Object.fromEntries(valuesOf(d).map(([k, v]) => [(0, config_1.keyOf)(k), v]));
|
|
131
|
+
const slugValue = values.slug;
|
|
132
|
+
return {
|
|
133
|
+
type: (0, config_1.keyOf)(d._type),
|
|
134
|
+
id,
|
|
135
|
+
published: !d._id.startsWith('drafts.'),
|
|
136
|
+
...(typeof slugValue === 'string' ? { slug: slugValue } : {}),
|
|
137
|
+
values,
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
if (opts.projectId)
|
|
141
|
+
notes.push(`Assets are fetched from their cdn.sanity.io URLs (project ${opts.projectId}${opts.dataset ? `, dataset ${opts.dataset}` : ''}).`);
|
|
142
|
+
const assetUrl = (ref) => assetById.get(ref)?.location ?? null;
|
|
143
|
+
return {
|
|
144
|
+
name: 'sanity',
|
|
145
|
+
modelSource: collections.length ? (0, config_1.payloadConfigSource)(collections) : undefined,
|
|
146
|
+
records,
|
|
147
|
+
media,
|
|
148
|
+
notes,
|
|
149
|
+
richText: (raw, image) => (0, richtext_json_1.fromPortableText)(raw, image, assetUrl),
|
|
150
|
+
mediaId: (raw) => {
|
|
151
|
+
const items = Array.isArray(raw) ? raw : [raw];
|
|
152
|
+
const first = items.find(isImage);
|
|
153
|
+
return first ? String(first.asset._ref) : null;
|
|
154
|
+
},
|
|
155
|
+
refs: (raw) => (Array.isArray(raw) ? raw : [raw]).flatMap((v) => (isRef(v) ? [{ type: typeOfId.get(String(v._ref).replace(/^drafts\./, '')), id: String(v._ref).replace(/^drafts\./, '') }] : [])),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=sanity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanity.js","sourceRoot":"","sources":["../../src/import/sanity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ImportFiles } from './types';
|
|
2
|
+
export declare const STRAPI_ARCHIVE_ROOT = "/strapi-archive";
|
|
3
|
+
export declare const isStrapiArchive: (path: string) => boolean;
|
|
4
|
+
/** An in-memory `ImportFiles` laid out the way `readStrapiExport` reads a folder. */
|
|
5
|
+
export declare function strapiArchiveFiles(archive: Uint8Array, archiveName?: string): ImportFiles;
|
|
6
|
+
//# sourceMappingURL=strapi-archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strapi-archive.d.ts","sourceRoot":"","sources":["../../src/import/strapi-archive.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAO3C,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,OAA0D,CAAC;AAe1G,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,SAAgB,GAAG,WAAW,CA4EhG"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStrapiArchive = exports.STRAPI_ARCHIVE_ROOT = void 0;
|
|
4
|
+
exports.strapiArchiveFiles = strapiArchiveFiles;
|
|
5
|
+
/**
|
|
6
|
+
* Strapi's own `strapi export --no-encrypt` archive (`.tar.gz`), turned into
|
|
7
|
+
* the folder the REST/schema reader (`./strapi`) already understands, in
|
|
8
|
+
* memory: one reader, so a Strapi export maps the same whichever way it was
|
|
9
|
+
* made.
|
|
10
|
+
*
|
|
11
|
+
* The archive holds JSON lines: `schemas/` (every content type),
|
|
12
|
+
* `entities/` (`{ type, id, data }`), `links/` (relations and media, which
|
|
13
|
+
* Strapi stores OUTSIDE the entity) and `assets/` (`uploads/<file>` bytes).
|
|
14
|
+
* Links are folded back into the entity's own fields here, using the schema to
|
|
15
|
+
* tell a to-many field (a list) from a to-one (one value). Component and
|
|
16
|
+
* dynamic-zone links are not folded; the reader already imports those fields
|
|
17
|
+
* as JSON and says so.
|
|
18
|
+
*
|
|
19
|
+
* An encrypted archive (`.tar.gz.enc`) cannot be read; the error says to export
|
|
20
|
+
* with `--no-encrypt`.
|
|
21
|
+
*/
|
|
22
|
+
const tar_1 = require("./tar");
|
|
23
|
+
const isObj = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
24
|
+
const UPLOAD = 'plugin::upload.file';
|
|
25
|
+
const norm = (p) => p.replace(/\\/g, '/').replace(/\/+$/, '');
|
|
26
|
+
exports.STRAPI_ARCHIVE_ROOT = '/strapi-archive';
|
|
27
|
+
const isStrapiArchive = (path) => /\.(tar\.gz|tgz|tar|tar\.gz\.enc)$/i.test(path);
|
|
28
|
+
exports.isStrapiArchive = isStrapiArchive;
|
|
29
|
+
function jsonl(files, dir) {
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const [p, b] of [...files].sort(([a], [z]) => a.localeCompare(z))) {
|
|
32
|
+
if (!p.startsWith(`${dir}/`) || !p.endsWith('.jsonl'))
|
|
33
|
+
continue;
|
|
34
|
+
for (const line of Buffer.from(b).toString('utf8').split('\n')) {
|
|
35
|
+
if (!line.trim())
|
|
36
|
+
continue;
|
|
37
|
+
const v = JSON.parse(line);
|
|
38
|
+
if (isObj(v))
|
|
39
|
+
out.push(v);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
/** An in-memory `ImportFiles` laid out the way `readStrapiExport` reads a folder. */
|
|
45
|
+
function strapiArchiveFiles(archive, archiveName = 'the archive') {
|
|
46
|
+
if (/\.enc$/i.test(archiveName)) {
|
|
47
|
+
throw new Error(`${archiveName} is encrypted. Export again with \`strapi export --no-encrypt\`.`);
|
|
48
|
+
}
|
|
49
|
+
const raw = (0, tar_1.readTar)(archive);
|
|
50
|
+
// Archives carry no wrapper folder today, but tolerate one: drop a shared first segment.
|
|
51
|
+
const first = new Set([...raw.keys()].map((k) => k.split('/')[0]));
|
|
52
|
+
const strip = first.size === 1 && ![...raw.keys()].some((k) => !k.includes('/')) ? `${[...first][0]}/` : '';
|
|
53
|
+
const tar = new Map([...raw].map(([k, v]) => [strip ? k.slice(strip.length) : k, v]));
|
|
54
|
+
if (!tar.size || ![...tar.keys()].some((k) => k.startsWith('entities/') || k.startsWith('schemas/'))) {
|
|
55
|
+
throw new Error(`${archiveName} is not a Strapi export (no schemas/ or entities/ inside).`);
|
|
56
|
+
}
|
|
57
|
+
const vfs = new Map();
|
|
58
|
+
const put = (path, content) => vfs.set(path, typeof content === 'string' ? new TextEncoder().encode(content) : content);
|
|
59
|
+
const schemas = jsonl(tar, 'schemas').filter((s) => typeof s.uid === 'string');
|
|
60
|
+
const byUid = new Map();
|
|
61
|
+
for (const s of schemas) {
|
|
62
|
+
const info = isObj(s.info) ? s.info : {};
|
|
63
|
+
if (s.modelType === 'component' || typeof info.singularName !== 'string' || !String(s.uid).startsWith('api::'))
|
|
64
|
+
continue;
|
|
65
|
+
byUid.set(String(s.uid), { plural: typeof info.pluralName === 'string' ? info.pluralName : info.singularName, attrs: isObj(s.attributes) ? s.attributes : {} });
|
|
66
|
+
put(`${info.singularName}.schema.json`, JSON.stringify({ ...s, info }));
|
|
67
|
+
}
|
|
68
|
+
// links → fields. A to-many attribute collects every link; a to-one keeps the first.
|
|
69
|
+
const linked = new Map();
|
|
70
|
+
for (const l of jsonl(tar, 'links')) {
|
|
71
|
+
const left = isObj(l.left) ? l.left : null;
|
|
72
|
+
const right = isObj(l.right) ? l.right : null;
|
|
73
|
+
if (!left || !right || typeof left.field !== 'string' || !byUid.has(String(left.type)))
|
|
74
|
+
continue;
|
|
75
|
+
const k = `${left.type}\u0000${left.ref}`;
|
|
76
|
+
const fields = linked.get(k) ?? linked.set(k, new Map()).get(k);
|
|
77
|
+
(fields.get(left.field) ?? fields.set(left.field, []).get(left.field)).push({ id: right.ref });
|
|
78
|
+
}
|
|
79
|
+
const many = (attr) => isObj(attr) && (attr.multiple === true || /ToMany$/.test(String(attr.relation)));
|
|
80
|
+
const rows = new Map();
|
|
81
|
+
const media = [];
|
|
82
|
+
for (const e of jsonl(tar, 'entities')) {
|
|
83
|
+
const data = isObj(e.data) ? e.data : null;
|
|
84
|
+
if (!data)
|
|
85
|
+
continue;
|
|
86
|
+
const id = e.id ?? data.id;
|
|
87
|
+
if (e.type === UPLOAD) {
|
|
88
|
+
media.push({ ...data, id });
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const model = byUid.get(String(e.type));
|
|
92
|
+
if (!model)
|
|
93
|
+
continue;
|
|
94
|
+
const row = { ...data, id };
|
|
95
|
+
for (const [field, refs] of linked.get(`${e.type}\u0000${id}`) ?? []) {
|
|
96
|
+
row[field] = many(model.attrs[field]) ? refs : refs[0];
|
|
97
|
+
}
|
|
98
|
+
(rows.get(model.plural) ?? rows.set(model.plural, []).get(model.plural)).push(row);
|
|
99
|
+
}
|
|
100
|
+
for (const [plural, list] of rows)
|
|
101
|
+
put(`${plural}.json`, JSON.stringify({ data: list }));
|
|
102
|
+
if (media.length)
|
|
103
|
+
put('media.json', JSON.stringify({ data: media }));
|
|
104
|
+
for (const [p, b] of tar)
|
|
105
|
+
if (p.startsWith('assets/uploads/'))
|
|
106
|
+
put(`uploads/${p.slice('assets/uploads/'.length)}`, b);
|
|
107
|
+
const key = (p) => norm(p).replace(new RegExp(`^${exports.STRAPI_ARCHIVE_ROOT}/?`), '');
|
|
108
|
+
const names = (dir) => [...vfs.keys()].filter((p) => (dir ? p.startsWith(`${dir}/`) : true)).map((p) => (dir ? p.slice(dir.length + 1) : p)).filter((p) => p && !p.includes('/'));
|
|
109
|
+
return {
|
|
110
|
+
read: (p) => {
|
|
111
|
+
const b = vfs.get(key(p));
|
|
112
|
+
if (!b)
|
|
113
|
+
throw new Error(`No ${key(p)} in the Strapi archive.`);
|
|
114
|
+
return Buffer.from(b).toString('utf8');
|
|
115
|
+
},
|
|
116
|
+
readBytes: (p) => {
|
|
117
|
+
const b = vfs.get(key(p));
|
|
118
|
+
if (!b)
|
|
119
|
+
throw new Error(`No ${key(p)} in the Strapi archive.`);
|
|
120
|
+
return b;
|
|
121
|
+
},
|
|
122
|
+
exists: (p) => key(p) === '' || vfs.has(key(p)),
|
|
123
|
+
list: (dir) => names(key(dir)),
|
|
124
|
+
isDir: (p) => key(p) === '' || [...vfs.keys()].some((k) => k.startsWith(`${key(p)}/`)),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=strapi-archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strapi-archive.js","sourceRoot":"","sources":["../../src/import/strapi-archive.ts"],"names":[],"mappings":";;;AA0CA,gDA4EC;AAtHD;;;;;;;;;;;;;;;;GAgBG;AACH,+BAAgC;AAIhC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAY,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjG,MAAM,MAAM,GAAG,qBAAqB,CAAC;AACrC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEzD,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAC9C,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAA7F,QAAA,eAAe,mBAA8E;AAE1G,SAAS,KAAK,CAAC,KAA8B,EAAE,GAAW;IACxD,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QAChE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC3B,MAAM,CAAC,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qFAAqF;AACrF,SAAgB,kBAAkB,CAAC,OAAmB,EAAE,WAAW,GAAG,aAAa;IACjF,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,kEAAkE,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,GAAG,GAAG,IAAA,aAAO,EAAC,OAAO,CAAC,CAAC;IAC7B,yFAAyF;IACzF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,4DAA4D,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,OAA4B,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAErJ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,SAAS,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACzH,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,qFAAqF;IACrF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACjG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACjE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;IACtC,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,GAAG,GAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,MAAM,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,MAAM;QAAE,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG;QAAE,IAAI,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtH,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,2BAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1L,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;YAC/D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACvF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ImportFiles, ImportSource } from './types';
|
|
2
|
+
export interface StrapiOptions {
|
|
3
|
+
/** Where relative upload URLs (`/uploads/x.png`) are served from, when the file is not in `uploads/`. */
|
|
4
|
+
baseUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function readStrapiExport(dir: string, files: ImportFiles, opts?: StrapiOptions): ImportSource;
|
|
7
|
+
//# sourceMappingURL=strapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strapi.d.ts","sourceRoot":"","sources":["../../src/import/strapi.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAC;AAUjF,MAAM,WAAW,aAAa;IAC5B,yGAAyG;IACzG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,CAyJxG"}
|