@contentrail/editor 0.2.0 → 0.2.2
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 +14 -4
- package/dist/admin/collection-query.d.ts +23 -0
- package/dist/admin/collection-query.d.ts.map +1 -0
- package/dist/admin/collection-query.js +71 -0
- package/dist/admin/collection-query.js.map +1 -0
- package/dist/admin/mount.d.ts +17 -0
- package/dist/admin/mount.d.ts.map +1 -0
- package/dist/admin/mount.js +43 -0
- package/dist/admin/mount.js.map +1 -0
- package/dist/admin/paginate.d.ts +8 -0
- package/dist/admin/paginate.d.ts.map +1 -0
- package/dist/admin/paginate.js +12 -0
- package/dist/admin/paginate.js.map +1 -0
- package/dist/admin/vite-plugin.d.ts +30 -0
- package/dist/admin/vite-plugin.d.ts.map +1 -0
- package/dist/admin/vite-plugin.js +159 -0
- package/dist/admin/vite-plugin.js.map +1 -0
- package/dist/api/types.d.ts +2 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/fields/defaults.d.ts.map +1 -1
- package/dist/fields/defaults.js +22 -2
- package/dist/fields/defaults.js.map +1 -1
- package/dist/fields/types.d.ts +24 -5
- package/dist/fields/types.d.ts.map +1 -1
- package/dist/fields/types.js +3 -2
- package/dist/fields/types.js.map +1 -1
- package/dist/form/FieldControl.js +54 -4
- package/dist/form/FieldControl.js.map +1 -1
- package/dist/import/coerce.d.ts +11 -0
- package/dist/import/coerce.d.ts.map +1 -0
- package/dist/import/coerce.js +71 -0
- package/dist/import/coerce.js.map +1 -0
- package/dist/import/prepare.d.ts +30 -0
- package/dist/import/prepare.d.ts.map +1 -0
- package/dist/import/prepare.js +106 -0
- package/dist/import/prepare.js.map +1 -0
- package/dist/import/tabular.d.ts +6 -0
- package/dist/import/tabular.d.ts.map +1 -1
- package/dist/import/tabular.js +34 -7
- package/dist/import/tabular.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/schema/create-admin-config.d.ts +21 -0
- package/dist/schema/create-admin-config.d.ts.map +1 -0
- package/dist/schema/create-admin-config.js +50 -0
- package/dist/schema/create-admin-config.js.map +1 -0
- package/dist/schema/from-zod.d.ts +19 -0
- package/dist/schema/from-zod.d.ts.map +1 -0
- package/dist/schema/from-zod.js +194 -0
- package/dist/schema/from-zod.js.map +1 -0
- package/dist/styles.css +103 -7
- package/dist/ui/CollectionImportWizard.d.ts +16 -0
- package/dist/ui/CollectionImportWizard.d.ts.map +1 -0
- package/dist/ui/CollectionImportWizard.js +144 -0
- package/dist/ui/CollectionImportWizard.js.map +1 -0
- package/dist/ui/EditorApp.d.ts +3 -0
- package/dist/ui/EditorApp.d.ts.map +1 -1
- package/dist/ui/EditorApp.js +232 -35
- package/dist/ui/EditorApp.js.map +1 -1
- package/package.json +18 -5
package/dist/fields/types.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Complements Zod schemas
|
|
2
|
+
* Editor field metadata (ADR 019 / ADR 026).
|
|
3
|
+
* Complements Zod schemas. Automatic mapping uses public Zod `.shape` / `.def.type`
|
|
4
|
+
* only; unsupported structures become non-editable notices.
|
|
4
5
|
*/
|
|
5
6
|
export {};
|
|
6
7
|
//# sourceMappingURL=types.js.map
|
package/dist/fields/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fields/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fields/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -53,6 +53,39 @@ function renderInput(field, id, value, path, onChange, readOnly, describedBy) {
|
|
|
53
53
|
? { "aria-describedby": describedBy }
|
|
54
54
|
: {}), onChange: (event) => onChange(path, event.currentTarget.checked) }), _jsx("span", { children: field.label })] }));
|
|
55
55
|
}
|
|
56
|
+
if (field.widget === "multiselect") {
|
|
57
|
+
const selected = Array.isArray(value)
|
|
58
|
+
? value.filter((item) => typeof item === "string")
|
|
59
|
+
: [];
|
|
60
|
+
return (_jsx("select", { id: id, class: "cr-input", multiple: true, disabled: readOnly, required: Boolean(field.required), ...(describedBy?.endsWith("-error")
|
|
61
|
+
? { "aria-invalid": true }
|
|
62
|
+
: {}), ...(describedBy !== undefined
|
|
63
|
+
? { "aria-describedby": describedBy }
|
|
64
|
+
: {}), onChange: (event) => {
|
|
65
|
+
const options = [
|
|
66
|
+
...event.currentTarget.options,
|
|
67
|
+
];
|
|
68
|
+
onChange(path, options
|
|
69
|
+
.filter((option) => option.selected)
|
|
70
|
+
.map((option) => option.value));
|
|
71
|
+
}, children: field.options.map((option) => (_jsx("option", { value: option.value, selected: selected.includes(option.value), children: option.label }, option.value))) }));
|
|
72
|
+
}
|
|
73
|
+
if (field.widget === "tags") {
|
|
74
|
+
const tags = Array.isArray(value)
|
|
75
|
+
? value.filter((item) => typeof item === "string")
|
|
76
|
+
: [];
|
|
77
|
+
return (_jsx("input", { id: id, class: "cr-input", type: "text", value: tags.join(", "), readOnly: readOnly, required: Boolean(field.required), "aria-label": `${field.label} (comma-separated)`, ...(describedBy?.endsWith("-error")
|
|
78
|
+
? { "aria-invalid": true }
|
|
79
|
+
: {}), ...(describedBy !== undefined
|
|
80
|
+
? { "aria-describedby": describedBy }
|
|
81
|
+
: {}), onInput: (event) => {
|
|
82
|
+
const raw = event.currentTarget.value;
|
|
83
|
+
onChange(path, raw
|
|
84
|
+
.split(",")
|
|
85
|
+
.map((item) => item.trim())
|
|
86
|
+
.filter((item) => item !== ""));
|
|
87
|
+
} }));
|
|
88
|
+
}
|
|
56
89
|
if (field.widget === "enum") {
|
|
57
90
|
return (_jsx("select", { id: id, class: "cr-input", value: typeof value === "string" ? value : "", disabled: readOnly, required: Boolean(field.required), ...(describedBy?.endsWith("-error")
|
|
58
91
|
? { "aria-invalid": true }
|
|
@@ -60,10 +93,27 @@ function renderInput(field, id, value, path, onChange, readOnly, describedBy) {
|
|
|
60
93
|
? { "aria-describedby": describedBy }
|
|
61
94
|
: {}), onChange: (event) => onChange(path, event.currentTarget.value), children: field.options.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value))) }));
|
|
62
95
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
96
|
+
const inputType = field.widget === "url" || field.widget === "media"
|
|
97
|
+
? "url"
|
|
98
|
+
: field.widget === "email"
|
|
99
|
+
? "email"
|
|
100
|
+
: field.widget === "date"
|
|
101
|
+
? "date"
|
|
102
|
+
: field.widget === "datetime"
|
|
103
|
+
? "datetime-local"
|
|
104
|
+
: "text";
|
|
105
|
+
const placeholder = field.widget === "relation"
|
|
106
|
+
? `Entry id in ${field.collection}`
|
|
107
|
+
: field.widget === "media"
|
|
108
|
+
? (field.placeholder ?? "https://…")
|
|
109
|
+
: field.widget === "text" ||
|
|
110
|
+
field.widget === "url" ||
|
|
111
|
+
field.widget === "email" ||
|
|
112
|
+
field.widget === "date" ||
|
|
113
|
+
field.widget === "datetime"
|
|
114
|
+
? field.placeholder
|
|
115
|
+
: undefined;
|
|
116
|
+
return (_jsx("input", { id: id, class: "cr-input", type: inputType, value: typeof value === "string" ? value : "", ...(placeholder !== undefined ? { placeholder } : {}), readOnly: readOnly, required: Boolean(field.required), ...(describedBy?.endsWith("-error")
|
|
67
117
|
? { "aria-invalid": true }
|
|
68
118
|
: {}), ...(describedBy !== undefined
|
|
69
119
|
? { "aria-describedby": describedBy }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldControl.js","sourceRoot":"","sources":["../../src/form/FieldControl.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FieldControl.js","sourceRoot":"","sources":["../../src/form/FieldControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EditorFieldSpec } from "../fields/types.js";
|
|
2
|
+
export interface CoerceFailure {
|
|
3
|
+
readonly ok: false;
|
|
4
|
+
readonly message: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CoerceSuccess {
|
|
7
|
+
readonly ok: true;
|
|
8
|
+
readonly value: unknown;
|
|
9
|
+
}
|
|
10
|
+
export declare function coerceCell(raw: string, field: EditorFieldSpec): CoerceSuccess | CoerceFailure;
|
|
11
|
+
//# sourceMappingURL=coerce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../../src/import/coerce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,eAAe,GACrB,aAAa,GAAG,aAAa,CA4E/B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export function coerceCell(raw, field) {
|
|
2
|
+
const trimmed = raw.trim();
|
|
3
|
+
if (trimmed === "") {
|
|
4
|
+
if (field.widget === "number") {
|
|
5
|
+
return { ok: true, value: null };
|
|
6
|
+
}
|
|
7
|
+
if (field.widget === "tags" ||
|
|
8
|
+
field.widget === "multiselect" ||
|
|
9
|
+
field.widget === "array") {
|
|
10
|
+
return { ok: true, value: [] };
|
|
11
|
+
}
|
|
12
|
+
if (field.widget === "boolean") {
|
|
13
|
+
return { ok: true, value: false };
|
|
14
|
+
}
|
|
15
|
+
return { ok: true, value: "" };
|
|
16
|
+
}
|
|
17
|
+
if (field.widget === "number") {
|
|
18
|
+
const parsed = Number(trimmed.replaceAll(",", ""));
|
|
19
|
+
if (!Number.isFinite(parsed)) {
|
|
20
|
+
return { ok: false, message: `${field.label} is not a number.` };
|
|
21
|
+
}
|
|
22
|
+
return { ok: true, value: parsed };
|
|
23
|
+
}
|
|
24
|
+
if (field.widget === "boolean") {
|
|
25
|
+
const lower = trimmed.toLowerCase();
|
|
26
|
+
if (["true", "yes", "1", "y"].includes(lower)) {
|
|
27
|
+
return { ok: true, value: true };
|
|
28
|
+
}
|
|
29
|
+
if (["false", "no", "0", "n"].includes(lower)) {
|
|
30
|
+
return { ok: true, value: false };
|
|
31
|
+
}
|
|
32
|
+
return { ok: false, message: `${field.label} must be true or false.` };
|
|
33
|
+
}
|
|
34
|
+
if (field.widget === "date") {
|
|
35
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(trimmed) &&
|
|
36
|
+
Number.isNaN(Date.parse(trimmed))) {
|
|
37
|
+
return { ok: false, message: `${field.label} is not a valid date.` };
|
|
38
|
+
}
|
|
39
|
+
const date = new Date(trimmed);
|
|
40
|
+
if (Number.isNaN(date.getTime())) {
|
|
41
|
+
return { ok: false, message: `${field.label} is not a valid date.` };
|
|
42
|
+
}
|
|
43
|
+
return { ok: true, value: date.toISOString().slice(0, 10) };
|
|
44
|
+
}
|
|
45
|
+
if (field.widget === "datetime") {
|
|
46
|
+
const date = new Date(trimmed);
|
|
47
|
+
if (Number.isNaN(date.getTime())) {
|
|
48
|
+
return { ok: false, message: `${field.label} is not a valid date-time.` };
|
|
49
|
+
}
|
|
50
|
+
return { ok: true, value: date.toISOString() };
|
|
51
|
+
}
|
|
52
|
+
if (field.widget === "tags" || field.widget === "multiselect") {
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
value: trimmed
|
|
56
|
+
.split(",")
|
|
57
|
+
.map((item) => item.trim())
|
|
58
|
+
.filter((item) => item !== ""),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (field.widget === "unsupported" ||
|
|
62
|
+
field.widget === "object" ||
|
|
63
|
+
field.widget === "array") {
|
|
64
|
+
return {
|
|
65
|
+
ok: false,
|
|
66
|
+
message: `${field.label} cannot be imported from a spreadsheet column.`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return { ok: true, value: trimmed };
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=coerce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coerce.js","sourceRoot":"","sources":["../../src/import/coerce.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,UAAU,CACxB,GAAW,EACX,KAAsB;IAEtB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,IACE,KAAK,CAAC,MAAM,KAAK,MAAM;YACvB,KAAK,CAAC,MAAM,KAAK,aAAa;YAC9B,KAAK,CAAC,MAAM,KAAK,OAAO,EACxB,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,mBAAmB,EAAE,CAAC;QACnE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,yBAAyB,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,IACE,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACjC,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,uBAAuB,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,uBAAuB,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,4BAA4B,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAC9D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,OAAO;iBACX,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,MAAM,KAAK,aAAa;QAC9B,KAAK,CAAC,MAAM,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,KAAK,OAAO,EACxB,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,gDAAgD;SACxE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { EditorFieldSpec } from "../fields/types.js";
|
|
2
|
+
export type ImportMode = "create" | "update" | "upsert";
|
|
3
|
+
export interface PreparedImportRow {
|
|
4
|
+
readonly rowIndex: number;
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly data: Record<string, unknown>;
|
|
7
|
+
readonly issues: readonly string[];
|
|
8
|
+
readonly warnings: readonly string[];
|
|
9
|
+
readonly duplicateInFile: boolean;
|
|
10
|
+
readonly exists: boolean;
|
|
11
|
+
readonly action: "create" | "update" | "skip";
|
|
12
|
+
}
|
|
13
|
+
export interface PrepareImportInput {
|
|
14
|
+
readonly rows: ReadonlyArray<Record<string, string>>;
|
|
15
|
+
readonly columnMap: Readonly<Record<string, string>>;
|
|
16
|
+
readonly fields: readonly EditorFieldSpec[];
|
|
17
|
+
readonly existingIds: ReadonlySet<string>;
|
|
18
|
+
readonly idField?: string;
|
|
19
|
+
readonly mode: ImportMode;
|
|
20
|
+
}
|
|
21
|
+
export declare function suggestColumnMap(headers: readonly string[], fields: readonly EditorFieldSpec[], idField?: string): Record<string, string>;
|
|
22
|
+
export declare function prepareImport(input: PrepareImportInput): PreparedImportRow[];
|
|
23
|
+
export declare function mergePreparedImport(existing: ReadonlyArray<{
|
|
24
|
+
id: string;
|
|
25
|
+
data: unknown;
|
|
26
|
+
}>, rows: readonly PreparedImportRow[], included: ReadonlySet<number>): Array<{
|
|
27
|
+
id: string;
|
|
28
|
+
data: unknown;
|
|
29
|
+
}>;
|
|
30
|
+
//# sourceMappingURL=prepare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/import/prepare.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,OAAO,SAAO,GACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBxB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,EAAE,CAiE5E;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EACtD,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAClC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CActC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { clientValidateFields } from "../fields/defaults.js";
|
|
2
|
+
import { coerceCell } from "./coerce.js";
|
|
3
|
+
import { mapTabularRows } from "./tabular.js";
|
|
4
|
+
export function suggestColumnMap(headers, fields, idField = "id") {
|
|
5
|
+
const map = {};
|
|
6
|
+
const fieldNames = new Set([
|
|
7
|
+
"id",
|
|
8
|
+
idField,
|
|
9
|
+
...fields.map((field) => field.name),
|
|
10
|
+
]);
|
|
11
|
+
for (const header of headers) {
|
|
12
|
+
const normalized = header
|
|
13
|
+
.trim()
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.replaceAll(/[\s-]+/g, "_");
|
|
16
|
+
for (const name of fieldNames) {
|
|
17
|
+
if (name.toLowerCase() === normalized ||
|
|
18
|
+
name.toLowerCase() === header.trim().toLowerCase()) {
|
|
19
|
+
map[header] = name === idField ? "id" : name;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return map;
|
|
25
|
+
}
|
|
26
|
+
export function prepareImport(input) {
|
|
27
|
+
const mapped = mapTabularRows(input.rows, input.columnMap);
|
|
28
|
+
const seen = new Set();
|
|
29
|
+
return mapped.map((row, index) => {
|
|
30
|
+
const issues = [];
|
|
31
|
+
const warnings = [];
|
|
32
|
+
const id = String(row.id ?? row[input.idField ?? "id"] ?? "").trim();
|
|
33
|
+
if (id === "") {
|
|
34
|
+
issues.push("Entry id is required.");
|
|
35
|
+
}
|
|
36
|
+
const data = {};
|
|
37
|
+
for (const field of input.fields) {
|
|
38
|
+
if (field.widget === "unsupported" || field.widget === "object") {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const raw = row[field.name] ?? "";
|
|
42
|
+
const coerced = coerceCell(raw, field);
|
|
43
|
+
if (!coerced.ok) {
|
|
44
|
+
issues.push(coerced.message);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
data[field.name] = coerced.value;
|
|
48
|
+
}
|
|
49
|
+
issues.push(...clientValidateFields(input.fields, data).map((issue) => issue.message));
|
|
50
|
+
const duplicateInFile = id !== "" && seen.has(id);
|
|
51
|
+
if (id !== "") {
|
|
52
|
+
seen.add(id);
|
|
53
|
+
}
|
|
54
|
+
const exists = id !== "" && input.existingIds.has(id);
|
|
55
|
+
let action = "skip";
|
|
56
|
+
if (issues.length === 0 && id !== "" && !duplicateInFile) {
|
|
57
|
+
if (input.mode === "create") {
|
|
58
|
+
if (exists) {
|
|
59
|
+
warnings.push("Already published — skipped in create-only mode.");
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
action = "create";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (input.mode === "update") {
|
|
66
|
+
if (!exists) {
|
|
67
|
+
warnings.push("Not published yet — skipped in update-only mode.");
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
action = "update";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
action = exists ? "update" : "create";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (duplicateInFile) {
|
|
78
|
+
issues.push("Duplicate id in this spreadsheet.");
|
|
79
|
+
action = "skip";
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
rowIndex: index + 2,
|
|
83
|
+
id,
|
|
84
|
+
data,
|
|
85
|
+
issues: [...new Set(issues)],
|
|
86
|
+
warnings,
|
|
87
|
+
duplicateInFile,
|
|
88
|
+
exists,
|
|
89
|
+
action,
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
export function mergePreparedImport(existing, rows, included) {
|
|
94
|
+
const next = new Map(existing.map((entry) => [entry.id, entry]));
|
|
95
|
+
for (const row of rows) {
|
|
96
|
+
if (!included.has(row.rowIndex) ||
|
|
97
|
+
row.action === "skip" ||
|
|
98
|
+
row.id === "" ||
|
|
99
|
+
row.issues.length > 0) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
next.set(row.id, { id: row.id, data: row.data });
|
|
103
|
+
}
|
|
104
|
+
return [...next.values()];
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/import/prepare.ts"],"names":[],"mappings":"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"}
|
package/dist/import/tabular.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export interface TabularParseLimits {
|
|
2
2
|
readonly maxBytes?: number;
|
|
3
3
|
readonly maxRows?: number;
|
|
4
|
+
/** Worksheet name or 1-based index (Excel only). */
|
|
5
|
+
readonly sheet?: string | number;
|
|
4
6
|
}
|
|
5
7
|
export interface TabularParseSuccess {
|
|
6
8
|
readonly ok: true;
|
|
@@ -32,4 +34,8 @@ export declare function parseTabularFile(file: File, limits?: TabularParseLimits
|
|
|
32
34
|
* Unmapped columns are ignored. Missing mapped columns become "".
|
|
33
35
|
*/
|
|
34
36
|
export declare function mapTabularRows(rows: ReadonlyArray<Record<string, string>>, columnMap: Readonly<Record<string, string>>): Array<Record<string, string>>;
|
|
37
|
+
export declare function listSpreadsheetSheets(file: File): Promise<{
|
|
38
|
+
ok: true;
|
|
39
|
+
sheets: readonly string[];
|
|
40
|
+
} | TabularParseFailure>;
|
|
35
41
|
//# sourceMappingURL=tabular.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabular.d.ts","sourceRoot":"","sources":["../../src/import/tabular.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"tabular.d.ts","sourceRoot":"","sources":["../../src/import/tabular.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EACT,OAAO,GACP,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,aAAa,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAK3E;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAmD7B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQ/B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,GACT,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,mBAAmB,CAAC,CA0BxE"}
|
package/dist/import/tabular.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readSheet } from "read-excel-file/universal";
|
|
2
|
-
const DEFAULT_MAX_BYTES =
|
|
3
|
-
const DEFAULT_MAX_ROWS =
|
|
1
|
+
import readXlsxFile, { readSheet } from "read-excel-file/universal";
|
|
2
|
+
const DEFAULT_MAX_BYTES = 2_000_000;
|
|
3
|
+
const DEFAULT_MAX_ROWS = 10_000;
|
|
4
4
|
/**
|
|
5
5
|
* Parse a CSV or Excel (`.xlsx`) file **in the browser**.
|
|
6
6
|
* Returns string cells only — callers must validate against ContentRail schemas
|
|
@@ -47,7 +47,7 @@ export async function parseTabularFile(file, limits = {}) {
|
|
|
47
47
|
try {
|
|
48
48
|
const matrix = isCsv
|
|
49
49
|
? parseCsvMatrix(await file.text())
|
|
50
|
-
: await readXlsxMatrix(file);
|
|
50
|
+
: await readXlsxMatrix(file, limits.sheet);
|
|
51
51
|
return matrixToTabular(matrix, file.name, maxRows);
|
|
52
52
|
}
|
|
53
53
|
catch (error) {
|
|
@@ -71,10 +71,37 @@ export function mapTabularRows(rows, columnMap) {
|
|
|
71
71
|
return mapped;
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
-
async function
|
|
74
|
+
export async function listSpreadsheetSheets(file) {
|
|
75
|
+
const name = file.name.toLowerCase();
|
|
76
|
+
if (name.endsWith(".csv") || file.type === "text/csv") {
|
|
77
|
+
return { ok: true, sheets: ["CSV"] };
|
|
78
|
+
}
|
|
79
|
+
if (name.endsWith(".xls") && !name.endsWith(".xlsx")) {
|
|
80
|
+
return {
|
|
81
|
+
ok: false,
|
|
82
|
+
code: "UNSUPPORTED_TYPE",
|
|
83
|
+
message: "Legacy .xls is not supported. Re-save as .xlsx or export CSV.",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const sheets = await readXlsxFile(await file.arrayBuffer());
|
|
88
|
+
const names = sheets.map((sheet, index) => sheet.sheet.trim() === "" ? `Sheet${index + 1}` : sheet.sheet);
|
|
89
|
+
return { ok: true, sheets: names };
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return {
|
|
93
|
+
ok: false,
|
|
94
|
+
code: "PARSE_ERROR",
|
|
95
|
+
message: error instanceof Error ? error.message : "Unable to list worksheets.",
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function readXlsxMatrix(file, sheet) {
|
|
75
100
|
const buffer = await file.arrayBuffer();
|
|
76
|
-
const
|
|
77
|
-
|
|
101
|
+
const data = sheet === undefined
|
|
102
|
+
? await readSheet(buffer)
|
|
103
|
+
: await readSheet(buffer, sheet);
|
|
104
|
+
return data.map((row) => row.map((cell) => {
|
|
78
105
|
if (cell === null || cell === undefined) {
|
|
79
106
|
return "";
|
|
80
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../src/import/tabular.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../src/import/tabular.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,14 @@ export type { ArrayFieldSpec, BooleanFieldSpec, EditorCollectionConfig, EditorFi
|
|
|
9
9
|
export { applyFieldChange, SchemaForm, type SchemaFormProps, } from "./form/SchemaForm.js";
|
|
10
10
|
export { FieldControl, type FieldControlProps } from "./form/FieldControl.js";
|
|
11
11
|
export { clearSessionDraft, loadSessionDraft, saveSessionDraft, type EntryDraft, } from "./state/draft.js";
|
|
12
|
-
export { EditorApp, type EditorAppProps } from "./ui/EditorApp.js";
|
|
13
|
-
export {
|
|
12
|
+
export { EditorApp, DEFAULT_ADMIN_PAGE_SIZE, type EditorAppProps, } from "./ui/EditorApp.js";
|
|
13
|
+
export { mountAdmin, type MountAdminOptions } from "./admin/mount.js";
|
|
14
|
+
export { paginateItems, type PaginatedSlice } from "./admin/paginate.js";
|
|
15
|
+
export { fieldsFromCollection, fieldsFromZodSchema, type FieldHint, } from "./schema/from-zod.js";
|
|
16
|
+
export { createAdminCollectionConfig, createAdminSiteConfig, type AdminCollectionInput, type CreateAdminSiteConfigInput, } from "./schema/create-admin-config.js";
|
|
17
|
+
export type { MediaFieldSpec, MultiSelectFieldSpec, RelationFieldSpec, TagsFieldSpec, } from "./fields/types.js";
|
|
18
|
+
export { listSpreadsheetSheets, mapTabularRows, parseTabularFile, type TabularParseFailure, type TabularParseLimits, type TabularParseResult, type TabularParseSuccess, } from "./import/tabular.js";
|
|
19
|
+
export { coerceCell } from "./import/coerce.js";
|
|
20
|
+
export { mergePreparedImport, prepareImport, suggestColumnMap, type ImportMode, type PreparedImportRow, } from "./import/prepare.js";
|
|
21
|
+
export { duplicateIds, entriesToCsv, queryCollectionEntries, titleOfEntry, } from "./admin/collection-query.js";
|
|
14
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,GACjC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,GACjC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,SAAS,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,YAAY,GACb,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,13 @@ export { clientValidateFields, emptyValueForField, emptyValueForFields, sortFiel
|
|
|
7
7
|
export { applyFieldChange, SchemaForm, } from "./form/SchemaForm.js";
|
|
8
8
|
export { FieldControl } from "./form/FieldControl.js";
|
|
9
9
|
export { clearSessionDraft, loadSessionDraft, saveSessionDraft, } from "./state/draft.js";
|
|
10
|
-
export { EditorApp } from "./ui/EditorApp.js";
|
|
11
|
-
export {
|
|
10
|
+
export { EditorApp, DEFAULT_ADMIN_PAGE_SIZE, } from "./ui/EditorApp.js";
|
|
11
|
+
export { mountAdmin } from "./admin/mount.js";
|
|
12
|
+
export { paginateItems } from "./admin/paginate.js";
|
|
13
|
+
export { fieldsFromCollection, fieldsFromZodSchema, } from "./schema/from-zod.js";
|
|
14
|
+
export { createAdminCollectionConfig, createAdminSiteConfig, } from "./schema/create-admin-config.js";
|
|
15
|
+
export { listSpreadsheetSheets, mapTabularRows, parseTabularFile, } from "./import/tabular.js";
|
|
16
|
+
export { coerceCell } from "./import/coerce.js";
|
|
17
|
+
export { mergePreparedImport, prepareImport, suggestColumnMap, } from "./import/prepare.js";
|
|
18
|
+
export { duplicateIds, entriesToCsv, queryCollectionEntries, titleOfEntry, } from "./admin/collection-query.js";
|
|
12
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,GAG3B,MAAM,iBAAiB,CAAC;AASzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAe9B,OAAO,EACL,gBAAgB,EAChB,UAAU,GAEX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,GAG3B,MAAM,iBAAiB,CAAC;AASzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAe9B,OAAO,EACL,gBAAgB,EAChB,UAAU,GAEX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,uBAAuB,GAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GAGtB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GAKjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,YAAY,GACb,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ContentCollection } from "@contentrail/core";
|
|
2
|
+
import type { EditorCollectionConfig, EditorFieldSpec, EditorSiteConfig } from "../fields/types.js";
|
|
3
|
+
import { type FieldHint } from "./from-zod.js";
|
|
4
|
+
export interface AdminCollectionInput {
|
|
5
|
+
readonly collection: ContentCollection;
|
|
6
|
+
readonly label?: string;
|
|
7
|
+
readonly description?: string;
|
|
8
|
+
readonly titleField?: string;
|
|
9
|
+
/** Replaces derived fields entirely. */
|
|
10
|
+
readonly fields?: readonly EditorFieldSpec[];
|
|
11
|
+
/** Merged onto derived fields by name. */
|
|
12
|
+
readonly fieldHints?: Readonly<Record<string, FieldHint>>;
|
|
13
|
+
}
|
|
14
|
+
export interface CreateAdminSiteConfigInput {
|
|
15
|
+
readonly siteId: string;
|
|
16
|
+
readonly label: string;
|
|
17
|
+
readonly collections: readonly AdminCollectionInput[];
|
|
18
|
+
}
|
|
19
|
+
export declare function createAdminCollectionConfig(input: AdminCollectionInput): EditorCollectionConfig;
|
|
20
|
+
export declare function createAdminSiteConfig(input: CreateAdminSiteConfigInput): EditorSiteConfig;
|
|
21
|
+
//# sourceMappingURL=create-admin-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-admin-config.d.ts","sourceRoot":"","sources":["../../src/schema/create-admin-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACvD;AAwBD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,sBAAsB,CAiBxB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,gBAAgB,CAgBlB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { fieldsFromCollection } from "./from-zod.js";
|
|
2
|
+
function mergeHints(fields, hints) {
|
|
3
|
+
if (hints === undefined) {
|
|
4
|
+
return [...fields];
|
|
5
|
+
}
|
|
6
|
+
return fields.map((field) => {
|
|
7
|
+
const hint = hints[field.name];
|
|
8
|
+
if (hint === undefined) {
|
|
9
|
+
return field;
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
...field,
|
|
13
|
+
...(hint.label !== undefined ? { label: hint.label } : {}),
|
|
14
|
+
...(hint.helpText !== undefined ? { helpText: hint.helpText } : {}),
|
|
15
|
+
...(hint.order !== undefined ? { order: hint.order } : {}),
|
|
16
|
+
...(hint.readOnly !== undefined ? { readOnly: hint.readOnly } : {}),
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function createAdminCollectionConfig(input) {
|
|
21
|
+
const fields = input.fields !== undefined
|
|
22
|
+
? [...input.fields]
|
|
23
|
+
: mergeHints(fieldsFromCollection(input.collection, input.fieldHints), input.fieldHints);
|
|
24
|
+
return {
|
|
25
|
+
name: input.collection.name,
|
|
26
|
+
label: input.label ?? humanizeName(input.collection.name),
|
|
27
|
+
...(input.description !== undefined
|
|
28
|
+
? { description: input.description }
|
|
29
|
+
: {}),
|
|
30
|
+
...(input.titleField !== undefined ? { titleField: input.titleField } : {}),
|
|
31
|
+
fields,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function createAdminSiteConfig(input) {
|
|
35
|
+
if (input.siteId.trim() === "") {
|
|
36
|
+
throw new Error("ContentRail admin requires a non-empty siteId (the Worker site identifier).");
|
|
37
|
+
}
|
|
38
|
+
if (input.collections.length === 0) {
|
|
39
|
+
throw new Error("ContentRail admin has no registered collections. Export defineCollection values and pass them to contentrailAdmin({ collections }).");
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
siteId: input.siteId,
|
|
43
|
+
label: input.label,
|
|
44
|
+
collections: input.collections.map(createAdminCollectionConfig),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function humanizeName(name) {
|
|
48
|
+
return name.charAt(0).toUpperCase() + name.slice(1).replaceAll("-", " ");
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=create-admin-config.js.map
|