@sanity/schema 5.0.0-next.0-9b570ece82-202507150640 → 5.0.0-next.6
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/LICENSE +1 -1
- package/lib/{index.mjs → _chunks-es/Rule.js} +368 -62
- package/lib/_chunks-es/Rule.js.map +1 -0
- package/lib/_internal.d.ts +266 -20
- package/lib/_internal.js +1489 -737
- package/lib/_internal.js.map +1 -1
- package/lib/index.d.ts +10 -0
- package/lib/index.js +7 -1411
- package/lib/index.js.map +1 -1
- package/package.json +18 -19
- package/lib/_chunks-cjs/resolve.js +0 -111
- package/lib/_chunks-cjs/resolve.js.map +0 -1
- package/lib/_chunks-es/resolve.mjs +0 -109
- package/lib/_chunks-es/resolve.mjs.map +0 -1
- package/lib/_internal.d.mts +0 -185
- package/lib/_internal.mjs +0 -2131
- package/lib/_internal.mjs.map +0 -1
- package/lib/index.d.mts +0 -47
- package/lib/index.mjs.map +0 -1
package/lib/index.js
CHANGED
|
@@ -1,1413 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function lazyGetter(target, key, getter, config = {}) {
|
|
9
|
-
return Object.defineProperty(target, key, {
|
|
10
|
-
configurable: !0,
|
|
11
|
-
enumerable: config.enumerable !== !1,
|
|
12
|
-
get() {
|
|
13
|
-
const val = getter();
|
|
14
|
-
return Object.defineProperty(target, key, {
|
|
15
|
-
value: val,
|
|
16
|
-
writable: !!config.writable,
|
|
17
|
-
configurable: !1
|
|
18
|
-
}), val;
|
|
19
|
-
}
|
|
20
|
-
}), target;
|
|
21
|
-
}
|
|
22
|
-
function hiddenGetter(target, key, value) {
|
|
23
|
-
Object.defineProperty(target, key, {
|
|
24
|
-
enumerable: !1,
|
|
25
|
-
writable: !1,
|
|
26
|
-
configurable: !1,
|
|
27
|
-
value
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
const OVERRIDABLE_FIELDS$f = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], ANY_CORE = {
|
|
31
|
-
name: "any",
|
|
32
|
-
type: null,
|
|
33
|
-
jsonType: "any"
|
|
34
|
-
}, AnyType = {
|
|
35
|
-
get() {
|
|
36
|
-
return ANY_CORE;
|
|
37
|
-
},
|
|
38
|
-
extend(subTypeDef, extendMember) {
|
|
39
|
-
const ownProps = {
|
|
40
|
-
...subTypeDef,
|
|
41
|
-
of: subTypeDef.of.map((fieldDef) => ({
|
|
42
|
-
name: fieldDef.name,
|
|
43
|
-
type: extendMember(omit__default.default(fieldDef, "name"))
|
|
44
|
-
}))
|
|
45
|
-
}, parsed = Object.assign(pick__default.default(ANY_CORE, OVERRIDABLE_FIELDS$f), ownProps, {
|
|
46
|
-
type: ANY_CORE
|
|
47
|
-
});
|
|
48
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
49
|
-
function subtype(parent) {
|
|
50
|
-
return {
|
|
51
|
-
get() {
|
|
52
|
-
return parent;
|
|
53
|
-
},
|
|
54
|
-
extend: (extensionDef) => {
|
|
55
|
-
if (extensionDef.of)
|
|
56
|
-
throw new Error('Cannot override `of` property of subtypes of "array"');
|
|
57
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$f), current = Object.assign({}, parent, subOwnProps, {
|
|
58
|
-
type: parent
|
|
59
|
-
});
|
|
60
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}, OVERRIDABLE_FIELDS$e = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], ARRAY_CORE = {
|
|
66
|
-
name: "array",
|
|
67
|
-
type: null,
|
|
68
|
-
jsonType: "array",
|
|
69
|
-
of: []
|
|
70
|
-
}, ArrayType = {
|
|
71
|
-
get() {
|
|
72
|
-
return ARRAY_CORE;
|
|
73
|
-
},
|
|
74
|
-
extend(subTypeDef, createMemberType) {
|
|
75
|
-
const parsed = Object.assign(pick__default.default(ARRAY_CORE, OVERRIDABLE_FIELDS$e), subTypeDef, {
|
|
76
|
-
type: ARRAY_CORE
|
|
77
|
-
});
|
|
78
|
-
return lazyGetter(parsed, "of", () => subTypeDef.of.map((ofTypeDef) => createMemberType(ofTypeDef))), lazyGetter(parsed, resolve.OWN_PROPS_NAME, () => ({ ...subTypeDef, of: parsed.of }), {
|
|
79
|
-
enumerable: !1,
|
|
80
|
-
writable: !1
|
|
81
|
-
}), subtype(parsed);
|
|
82
|
-
function subtype(parent) {
|
|
83
|
-
return {
|
|
84
|
-
get() {
|
|
85
|
-
return parent;
|
|
86
|
-
},
|
|
87
|
-
extend: (extensionDef) => {
|
|
88
|
-
if (extensionDef.of)
|
|
89
|
-
throw new Error('Cannot override `of` property of subtypes of "array"');
|
|
90
|
-
const ownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$e), current = Object.assign({}, parent, ownProps, {
|
|
91
|
-
type: parent
|
|
92
|
-
});
|
|
93
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, ownProps), subtype(current);
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
1
|
+
import { DeprecatedDefaultSchema, Schema as Schema$1 } from "./_chunks-es/Rule.js";
|
|
2
|
+
import { Rule } from "./_chunks-es/Rule.js";
|
|
3
|
+
const Schema = Schema$1;
|
|
4
|
+
export {
|
|
5
|
+
Rule,
|
|
6
|
+
Schema,
|
|
7
|
+
DeprecatedDefaultSchema as default
|
|
98
8
|
};
|
|
99
|
-
function warnIfPreviewOnOptions(type) {
|
|
100
|
-
type.options && type.options.preview && console.warn(`Heads up! The preview config is no longer defined on "options", but instead on the type/field itself.
|
|
101
|
-
Please move {options: {preview: ...}} to {..., preview: ...} on the type/field definition of "${type.name}".
|
|
102
|
-
`);
|
|
103
|
-
}
|
|
104
|
-
function warnIfPreviewHasFields(type) {
|
|
105
|
-
const preview = type.preview || (type.options || {}).preview;
|
|
106
|
-
preview && "fields" in preview && console.warn(`Heads up! "preview.fields" should be renamed to "preview.select". Please update the preview config for "${type.name}".
|
|
107
|
-
`);
|
|
108
|
-
}
|
|
109
|
-
function isEmpty(object) {
|
|
110
|
-
for (const key in object)
|
|
111
|
-
if (object.hasOwnProperty(key))
|
|
112
|
-
return !1;
|
|
113
|
-
return !0;
|
|
114
|
-
}
|
|
115
|
-
function _stringify(value, options, depth) {
|
|
116
|
-
if (depth > options.maxDepth)
|
|
117
|
-
return "...";
|
|
118
|
-
if (Array.isArray(value)) {
|
|
119
|
-
if (value.length === 0)
|
|
120
|
-
return "[empty]";
|
|
121
|
-
const capLength = Math.max(value.length - options.maxBreadth), asString2 = value.slice(0, options.maxBreadth).map((item, index) => _stringify(item, options, depth + 1)).concat(capLength > 0 ? `\u2026+${capLength}` : []).join(", ");
|
|
122
|
-
return depth === 0 ? asString2 : `[${asString2}]`;
|
|
123
|
-
}
|
|
124
|
-
if (typeof value == "object" && value !== null) {
|
|
125
|
-
const keys = Object.keys(value).filter(
|
|
126
|
-
(key) => !options.ignoreKeys.includes(key) && typeof value[key] < "u"
|
|
127
|
-
);
|
|
128
|
-
if (isEmpty(pick__default.default(value, keys)))
|
|
129
|
-
return "{empty}";
|
|
130
|
-
const asString2 = keys.slice(0, options.maxBreadth).map((key) => `${key}: ${_stringify(value[key], options, depth + 1)}`).join(", ");
|
|
131
|
-
return depth === 0 ? asString2 : `{${asString2}}`;
|
|
132
|
-
}
|
|
133
|
-
const asString = String(value);
|
|
134
|
-
return asString === "" ? '""' : asString;
|
|
135
|
-
}
|
|
136
|
-
function stringify(value, options = {}) {
|
|
137
|
-
const opts = {
|
|
138
|
-
maxDepth: "maxDepth" in options ? options.maxDepth : 2,
|
|
139
|
-
maxBreadth: "maxBreadth" in options ? options.maxBreadth : 2,
|
|
140
|
-
ignoreKeys: "ignoreKeys" in options ? options.ignoreKeys : []
|
|
141
|
-
};
|
|
142
|
-
return _stringify(value, opts, 0);
|
|
143
|
-
}
|
|
144
|
-
const OPTIONS = {
|
|
145
|
-
maxEntries: 2,
|
|
146
|
-
maxDepth: 2,
|
|
147
|
-
maxBreadth: 2,
|
|
148
|
-
ignoreKeys: ["_id", "_type", "_key", "_ref"]
|
|
149
|
-
};
|
|
150
|
-
function createFallbackPrepare(fieldNames) {
|
|
151
|
-
return (value) => ({
|
|
152
|
-
title: stringify(pick__default.default(value, fieldNames), OPTIONS)
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
function isBlockField(field) {
|
|
156
|
-
return field.type === "array" && field.of && field.of.some((member) => member.type === "block") || !1;
|
|
157
|
-
}
|
|
158
|
-
const TITLE_CANDIDATES = ["title", "name", "label", "heading", "header", "caption"], DESCRIPTION_CANDIDATES = ["description", ...TITLE_CANDIDATES];
|
|
159
|
-
function fieldHasReferenceTo(fieldDef, refType) {
|
|
160
|
-
return arrify__default.default(fieldDef.to || []).some((memberTypeDef) => memberTypeDef.type === refType);
|
|
161
|
-
}
|
|
162
|
-
function isImageAssetField(fieldDef) {
|
|
163
|
-
return fieldHasReferenceTo(fieldDef, "sanity.imageAsset");
|
|
164
|
-
}
|
|
165
|
-
function resolveImageAssetPath(typeDef) {
|
|
166
|
-
const fields = typeDef.fields || [], imageAssetField = fields.find(isImageAssetField);
|
|
167
|
-
if (imageAssetField)
|
|
168
|
-
return imageAssetField.name;
|
|
169
|
-
const fieldWithImageAsset = fields.find(
|
|
170
|
-
(fieldDef) => (fieldDef.fields || []).some(isImageAssetField)
|
|
171
|
-
);
|
|
172
|
-
return fieldWithImageAsset ? `${fieldWithImageAsset.name}.asset` : void 0;
|
|
173
|
-
}
|
|
174
|
-
function isFileAssetField(fieldDef) {
|
|
175
|
-
return fieldHasReferenceTo(fieldDef, "sanity.fileAsset");
|
|
176
|
-
}
|
|
177
|
-
function resolveFileAssetPath(typeDef) {
|
|
178
|
-
const fields = typeDef.fields || [], assetField = fields.find(isFileAssetField);
|
|
179
|
-
if (assetField)
|
|
180
|
-
return assetField.name;
|
|
181
|
-
const fieldWithFileAsset = fields.find(
|
|
182
|
-
(fieldDef) => (fieldDef.fields || []).some(isFileAssetField)
|
|
183
|
-
);
|
|
184
|
-
return fieldWithFileAsset ? `${fieldWithFileAsset.name}.asset` : void 0;
|
|
185
|
-
}
|
|
186
|
-
function guessPreviewFields(rawObjectTypeDef) {
|
|
187
|
-
const objectTypeDef = { fields: [], ...rawObjectTypeDef }, stringFieldNames = objectTypeDef.fields.filter((field) => field.type === "string").map((field) => field.name), blockFieldNames = objectTypeDef.fields.filter(isBlockField).map((field) => field.name);
|
|
188
|
-
let titleField = TITLE_CANDIDATES.find(
|
|
189
|
-
(candidate) => stringFieldNames.includes(candidate) || blockFieldNames.includes(candidate)
|
|
190
|
-
), descField = DESCRIPTION_CANDIDATES.find(
|
|
191
|
-
(candidate) => candidate !== titleField && (stringFieldNames.includes(candidate) || blockFieldNames.includes(candidate))
|
|
192
|
-
);
|
|
193
|
-
titleField || (titleField = stringFieldNames[0] || blockFieldNames[0], descField = stringFieldNames[1] || blockFieldNames[1]);
|
|
194
|
-
const mediaField = objectTypeDef.fields.find((field) => field.type === "image"), imageAssetPath = resolveImageAssetPath(objectTypeDef);
|
|
195
|
-
if (!titleField) {
|
|
196
|
-
const fileAssetPath = resolveFileAssetPath(objectTypeDef);
|
|
197
|
-
fileAssetPath && (titleField = `${fileAssetPath}.originalFilename`), imageAssetPath && (titleField = `${imageAssetPath}.originalFilename`);
|
|
198
|
-
}
|
|
199
|
-
if (!titleField && !imageAssetPath) {
|
|
200
|
-
const fieldNames = objectTypeDef.fields.map((field) => field.name);
|
|
201
|
-
return {
|
|
202
|
-
select: fieldNames.reduce((acc, fieldName) => (acc[fieldName] = fieldName, acc), {}),
|
|
203
|
-
prepare: createFallbackPrepare(fieldNames)
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
select: omitBy__default.default(
|
|
208
|
-
{
|
|
209
|
-
title: titleField,
|
|
210
|
-
description: descField,
|
|
211
|
-
media: mediaField ? mediaField.name : imageAssetPath
|
|
212
|
-
},
|
|
213
|
-
isUndefined__default.default
|
|
214
|
-
)
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
function parseSelection(selection) {
|
|
218
|
-
return selection.reduce((acc, field) => (acc[field] = field, acc), {});
|
|
219
|
-
}
|
|
220
|
-
function parsePreview(preview) {
|
|
221
|
-
if (!preview)
|
|
222
|
-
return preview;
|
|
223
|
-
const select = preview.select || preview.fields || {};
|
|
224
|
-
return Array.isArray(select) ? {
|
|
225
|
-
...pick__default.default(preview, ["prepare", "component"]),
|
|
226
|
-
select: parseSelection(select)
|
|
227
|
-
} : {
|
|
228
|
-
...pick__default.default(preview, ["prepare", "component"]),
|
|
229
|
-
select
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
function createPreviewGetter(objectTypeDef) {
|
|
233
|
-
return function() {
|
|
234
|
-
return warnIfPreviewOnOptions(objectTypeDef), warnIfPreviewHasFields(objectTypeDef), parsePreview(objectTypeDef.preview || (objectTypeDef.options || {}).preview) || guessPreviewFields(objectTypeDef);
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
const DEFAULT_LINK_ANNOTATION = {
|
|
238
|
-
type: "object",
|
|
239
|
-
name: "link",
|
|
240
|
-
title: "Link",
|
|
241
|
-
i18nTitleKey: "inputs.portable-text.annotation.link",
|
|
242
|
-
options: {
|
|
243
|
-
modal: { type: "popover" }
|
|
244
|
-
},
|
|
245
|
-
fields: [
|
|
246
|
-
{
|
|
247
|
-
name: "href",
|
|
248
|
-
type: "url",
|
|
249
|
-
title: "Link",
|
|
250
|
-
description: "A valid web, email, phone, or relative link.",
|
|
251
|
-
validation: (Rule) => Rule.uri({
|
|
252
|
-
scheme: ["http", "https", "tel", "mailto"],
|
|
253
|
-
allowRelative: !0
|
|
254
|
-
})
|
|
255
|
-
}
|
|
256
|
-
]
|
|
257
|
-
}, DEFAULT_TEXT_FIELD = {
|
|
258
|
-
type: "text",
|
|
259
|
-
name: "text",
|
|
260
|
-
title: "Text"
|
|
261
|
-
}, DEFAULT_MARKS_FIELD = {
|
|
262
|
-
name: "marks",
|
|
263
|
-
type: "array",
|
|
264
|
-
of: [{ type: "string" }],
|
|
265
|
-
title: "Marks"
|
|
266
|
-
}, LIST_TYPES = {
|
|
267
|
-
bullet: {
|
|
268
|
-
title: "Bulleted list",
|
|
269
|
-
value: "bullet",
|
|
270
|
-
i18nTitleKey: "inputs.portable-text.list-type.bullet"
|
|
271
|
-
},
|
|
272
|
-
numbered: {
|
|
273
|
-
title: "Numbered list",
|
|
274
|
-
value: "number",
|
|
275
|
-
i18nTitleKey: "inputs.portable-text.list-type.number"
|
|
276
|
-
}
|
|
277
|
-
}, DEFAULT_LIST_TYPES = [LIST_TYPES.bullet, LIST_TYPES.numbered], BLOCK_STYLES = {
|
|
278
|
-
normal: { title: "Normal", value: "normal", i18nTitleKey: "inputs.portable-text.style.normal" },
|
|
279
|
-
h1: { title: "Heading 1", value: "h1", i18nTitleKey: "inputs.portable-text.style.h1" },
|
|
280
|
-
h2: { title: "Heading 2", value: "h2", i18nTitleKey: "inputs.portable-text.style.h2" },
|
|
281
|
-
h3: { title: "Heading 3", value: "h3", i18nTitleKey: "inputs.portable-text.style.h3" },
|
|
282
|
-
h4: { title: "Heading 4", value: "h4", i18nTitleKey: "inputs.portable-text.style.h4" },
|
|
283
|
-
h5: { title: "Heading 5", value: "h5", i18nTitleKey: "inputs.portable-text.style.h5" },
|
|
284
|
-
h6: { title: "Heading 6", value: "h6", i18nTitleKey: "inputs.portable-text.style.h6" },
|
|
285
|
-
blockquote: {
|
|
286
|
-
title: "Quote",
|
|
287
|
-
value: "blockquote",
|
|
288
|
-
i18nTitleKey: "inputs.portable-text.style.quote"
|
|
289
|
-
}
|
|
290
|
-
}, DEFAULT_BLOCK_STYLES = [
|
|
291
|
-
BLOCK_STYLES.normal,
|
|
292
|
-
BLOCK_STYLES.h1,
|
|
293
|
-
BLOCK_STYLES.h2,
|
|
294
|
-
BLOCK_STYLES.h3,
|
|
295
|
-
BLOCK_STYLES.h4,
|
|
296
|
-
BLOCK_STYLES.h5,
|
|
297
|
-
BLOCK_STYLES.h6,
|
|
298
|
-
BLOCK_STYLES.blockquote
|
|
299
|
-
], DECORATOR_STRONG = {
|
|
300
|
-
title: "Strong",
|
|
301
|
-
value: "strong",
|
|
302
|
-
i18nTitleKey: "inputs.portable-text.decorator.strong"
|
|
303
|
-
}, DECORATOR_EMPHASIS = {
|
|
304
|
-
title: "Italic",
|
|
305
|
-
value: "em",
|
|
306
|
-
i18nTitleKey: "inputs.portable-text.decorator.emphasis"
|
|
307
|
-
}, DECORATOR_CODE = {
|
|
308
|
-
title: "Code",
|
|
309
|
-
value: "code",
|
|
310
|
-
i18nTitleKey: "inputs.portable-text.decorator.code"
|
|
311
|
-
}, DECORATOR_UNDERLINE = {
|
|
312
|
-
title: "Underline",
|
|
313
|
-
value: "underline",
|
|
314
|
-
i18nTitleKey: "inputs.portable-text.decorator.underline"
|
|
315
|
-
}, DECORATOR_STRIKE = {
|
|
316
|
-
title: "Strike",
|
|
317
|
-
value: "strike-through",
|
|
318
|
-
i18nTitleKey: "inputs.portable-text.decorator.strike-through"
|
|
319
|
-
}, DECORATORS = {
|
|
320
|
-
strong: DECORATOR_STRONG,
|
|
321
|
-
em: DECORATOR_EMPHASIS,
|
|
322
|
-
code: DECORATOR_CODE,
|
|
323
|
-
underline: DECORATOR_UNDERLINE,
|
|
324
|
-
strikeThrough: DECORATOR_STRIKE
|
|
325
|
-
}, DEFAULT_DECORATORS = [
|
|
326
|
-
DECORATORS.strong,
|
|
327
|
-
DECORATORS.em,
|
|
328
|
-
DECORATORS.code,
|
|
329
|
-
DECORATORS.underline,
|
|
330
|
-
DECORATORS.strikeThrough
|
|
331
|
-
], INHERITED_FIELDS$1 = [
|
|
332
|
-
"type",
|
|
333
|
-
"name",
|
|
334
|
-
"title",
|
|
335
|
-
"jsonType",
|
|
336
|
-
"description",
|
|
337
|
-
"options",
|
|
338
|
-
"fieldsets",
|
|
339
|
-
"icon"
|
|
340
|
-
], BLOCK_CORE = {
|
|
341
|
-
name: "block",
|
|
342
|
-
title: "Block",
|
|
343
|
-
type: null,
|
|
344
|
-
jsonType: "object"
|
|
345
|
-
}, DEFAULT_OPTIONS$3 = {}, BlockType = {
|
|
346
|
-
get() {
|
|
347
|
-
return BLOCK_CORE;
|
|
348
|
-
},
|
|
349
|
-
extend(subTypeDef, extendMember) {
|
|
350
|
-
const options = { ...subTypeDef.options || DEFAULT_OPTIONS$3 }, { marks, styles, lists, of, ...rest } = subTypeDef, childrenField = createChildrenField(marks, of), styleField = createStyleField(styles), listItemField = createListItemField(lists), markDefsField = {
|
|
351
|
-
name: "markDefs",
|
|
352
|
-
title: "Mark definitions",
|
|
353
|
-
type: "array",
|
|
354
|
-
of: marks?.annotations || DEFAULT_ANNOTATIONS
|
|
355
|
-
}, fields = [childrenField, styleField, listItemField, markDefsField, {
|
|
356
|
-
name: "level",
|
|
357
|
-
title: "Indentation",
|
|
358
|
-
type: "number"
|
|
359
|
-
}].concat(
|
|
360
|
-
subTypeDef.fields || []
|
|
361
|
-
), ownProps = { ...rest, options }, parsed = Object.assign(pick__default.default(BLOCK_CORE, INHERITED_FIELDS$1), ownProps, {
|
|
362
|
-
type: BLOCK_CORE
|
|
363
|
-
});
|
|
364
|
-
return lazyGetter(parsed, "fields", () => fields.map((fieldDef) => {
|
|
365
|
-
const { name, ...type } = fieldDef;
|
|
366
|
-
return {
|
|
367
|
-
name,
|
|
368
|
-
type: extendMember(type)
|
|
369
|
-
};
|
|
370
|
-
})), lazyGetter(parsed, "preview", createPreviewGetter(subTypeDef)), lazyGetter(
|
|
371
|
-
parsed,
|
|
372
|
-
resolve.OWN_PROPS_NAME,
|
|
373
|
-
() => ({
|
|
374
|
-
...ownProps,
|
|
375
|
-
fields: parsed.fields,
|
|
376
|
-
preview: parsed.preview
|
|
377
|
-
}),
|
|
378
|
-
{ enumerable: !1, writable: !1 }
|
|
379
|
-
), subtype(parsed);
|
|
380
|
-
function subtype(parent) {
|
|
381
|
-
return {
|
|
382
|
-
get() {
|
|
383
|
-
return parent;
|
|
384
|
-
},
|
|
385
|
-
extend: (extensionDef) => {
|
|
386
|
-
if (extensionDef.fields)
|
|
387
|
-
throw new Error('Cannot override `fields` of subtypes of "block"');
|
|
388
|
-
const subOwnProps = pick__default.default(extensionDef, INHERITED_FIELDS$1), current = Object.assign({}, parent, subOwnProps, {
|
|
389
|
-
type: parent
|
|
390
|
-
});
|
|
391
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
392
|
-
}
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
};
|
|
397
|
-
function ensureNormalStyle(styles) {
|
|
398
|
-
return styles.some((style) => style.value === "normal") ? styles : [BLOCK_STYLES.normal, ...styles];
|
|
399
|
-
}
|
|
400
|
-
function createStyleField(styles) {
|
|
401
|
-
return {
|
|
402
|
-
name: "style",
|
|
403
|
-
title: "Style",
|
|
404
|
-
type: "string",
|
|
405
|
-
options: {
|
|
406
|
-
list: ensureNormalStyle(styles || DEFAULT_BLOCK_STYLES)
|
|
407
|
-
}
|
|
408
|
-
};
|
|
409
|
-
}
|
|
410
|
-
function createListItemField(lists) {
|
|
411
|
-
return {
|
|
412
|
-
name: "listItem",
|
|
413
|
-
title: "List type",
|
|
414
|
-
type: "string",
|
|
415
|
-
options: {
|
|
416
|
-
list: lists || DEFAULT_LIST_TYPES
|
|
417
|
-
}
|
|
418
|
-
};
|
|
419
|
-
}
|
|
420
|
-
const DEFAULT_ANNOTATIONS = [DEFAULT_LINK_ANNOTATION];
|
|
421
|
-
function createChildrenField(marks, of = []) {
|
|
422
|
-
return {
|
|
423
|
-
name: "children",
|
|
424
|
-
title: "Content",
|
|
425
|
-
type: "array",
|
|
426
|
-
of: [
|
|
427
|
-
{
|
|
428
|
-
type: "span",
|
|
429
|
-
fields: [DEFAULT_TEXT_FIELD, DEFAULT_MARKS_FIELD],
|
|
430
|
-
annotations: marks && marks.annotations ? marks.annotations : DEFAULT_ANNOTATIONS,
|
|
431
|
-
decorators: marks && marks.decorators ? marks.decorators : DEFAULT_DECORATORS
|
|
432
|
-
},
|
|
433
|
-
...of.filter((memberType) => memberType.type !== "span")
|
|
434
|
-
]
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
const INHERITED_FIELDS = [
|
|
438
|
-
"type",
|
|
439
|
-
"name",
|
|
440
|
-
"title",
|
|
441
|
-
"jsonType",
|
|
442
|
-
"description",
|
|
443
|
-
"options",
|
|
444
|
-
"fieldsets",
|
|
445
|
-
"icon"
|
|
446
|
-
], SPAN_CORE = {
|
|
447
|
-
name: "span",
|
|
448
|
-
title: "Span",
|
|
449
|
-
type: null,
|
|
450
|
-
jsonType: "object"
|
|
451
|
-
}, MARKS_FIELD = {
|
|
452
|
-
name: "marks",
|
|
453
|
-
title: "Marks",
|
|
454
|
-
type: "array",
|
|
455
|
-
of: [{ type: "string" }]
|
|
456
|
-
}, TEXT_FIELD = {
|
|
457
|
-
name: "text",
|
|
458
|
-
title: "Text",
|
|
459
|
-
type: "string"
|
|
460
|
-
}, DEFAULT_OPTIONS$2 = {}, SpanType = {
|
|
461
|
-
get() {
|
|
462
|
-
return SPAN_CORE;
|
|
463
|
-
},
|
|
464
|
-
extend(subTypeDef, extendMember) {
|
|
465
|
-
const options = { ...subTypeDef.options || DEFAULT_OPTIONS$2 }, { annotations = [], marks = [] } = subTypeDef, fields = [MARKS_FIELD, TEXT_FIELD], ownProps = { ...subTypeDef, options }, parsed = Object.assign(pick__default.default(SPAN_CORE, INHERITED_FIELDS), ownProps, {
|
|
466
|
-
type: SPAN_CORE
|
|
467
|
-
});
|
|
468
|
-
return lazyGetter(parsed, "fields", () => fields.map((fieldDef) => {
|
|
469
|
-
const { name, ...type } = fieldDef;
|
|
470
|
-
return {
|
|
471
|
-
name,
|
|
472
|
-
type: extendMember(type)
|
|
473
|
-
};
|
|
474
|
-
})), lazyGetter(parsed, "annotations", () => annotations.map(extendMember)), lazyGetter(parsed, "marks", () => marks.map(extendMember)), lazyGetter(parsed, "preview", createPreviewGetter(subTypeDef)), lazyGetter(
|
|
475
|
-
parsed,
|
|
476
|
-
resolve.OWN_PROPS_NAME,
|
|
477
|
-
() => ({
|
|
478
|
-
...ownProps,
|
|
479
|
-
fields: parsed.fields,
|
|
480
|
-
annotations: parsed.annotations,
|
|
481
|
-
marks: parsed.marks,
|
|
482
|
-
preview: parsed.preview
|
|
483
|
-
}),
|
|
484
|
-
{ enumerable: !1, writable: !1 }
|
|
485
|
-
), subtype(parsed);
|
|
486
|
-
function subtype(parent) {
|
|
487
|
-
return {
|
|
488
|
-
get() {
|
|
489
|
-
return parent;
|
|
490
|
-
},
|
|
491
|
-
extend: (extensionDef) => {
|
|
492
|
-
if (extensionDef.fields)
|
|
493
|
-
throw new Error('Cannot override `fields` of subtypes of "span"');
|
|
494
|
-
const subOwnProps = pick__default.default(extensionDef, INHERITED_FIELDS), current = Object.assign({}, parent, subOwnProps, {
|
|
495
|
-
type: parent
|
|
496
|
-
});
|
|
497
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
498
|
-
}
|
|
499
|
-
};
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
};
|
|
503
|
-
var primitivePreview = {
|
|
504
|
-
prepare: (val) => ({ title: String(val) })
|
|
505
|
-
};
|
|
506
|
-
const OVERRIDABLE_FIELDS$d = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], BOOLEAN_CORE = {
|
|
507
|
-
name: "boolean",
|
|
508
|
-
title: "Boolean",
|
|
509
|
-
type: null,
|
|
510
|
-
jsonType: "boolean"
|
|
511
|
-
}, BooleanType = {
|
|
512
|
-
get() {
|
|
513
|
-
return BOOLEAN_CORE;
|
|
514
|
-
},
|
|
515
|
-
extend(subTypeDef) {
|
|
516
|
-
const ownProps = {
|
|
517
|
-
...subTypeDef,
|
|
518
|
-
preview: primitivePreview
|
|
519
|
-
}, parsed = Object.assign(pick__default.default(BOOLEAN_CORE, OVERRIDABLE_FIELDS$d), ownProps, {
|
|
520
|
-
type: BOOLEAN_CORE
|
|
521
|
-
});
|
|
522
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
523
|
-
function subtype(parent) {
|
|
524
|
-
return {
|
|
525
|
-
get() {
|
|
526
|
-
return parent;
|
|
527
|
-
},
|
|
528
|
-
extend: (extensionDef) => {
|
|
529
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$d), current = Object.assign({}, parent, subOwnProps, {
|
|
530
|
-
type: parent
|
|
531
|
-
});
|
|
532
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
533
|
-
}
|
|
534
|
-
};
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
}, REF_FIELD$2 = {
|
|
538
|
-
name: "_ref",
|
|
539
|
-
title: "Referenced document ID",
|
|
540
|
-
type: "string"
|
|
541
|
-
}, WEAK_FIELD$2 = {
|
|
542
|
-
name: "_weak",
|
|
543
|
-
title: "Weak reference marker",
|
|
544
|
-
type: "boolean"
|
|
545
|
-
}, DATASET_FIELD = {
|
|
546
|
-
name: "_dataset",
|
|
547
|
-
title: "Target dataset",
|
|
548
|
-
type: "string"
|
|
549
|
-
}, PROJECT_ID_FIELD = {
|
|
550
|
-
name: "_projectId",
|
|
551
|
-
title: "Target project ID",
|
|
552
|
-
type: "string",
|
|
553
|
-
hidden: !0
|
|
554
|
-
}, REFERENCE_FIELDS$2 = [REF_FIELD$2, WEAK_FIELD$2, DATASET_FIELD, PROJECT_ID_FIELD], OVERRIDABLE_FIELDS$c = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], CROSS_DATASET_REFERENCE_CORE = {
|
|
555
|
-
name: "crossDatasetReference",
|
|
556
|
-
type: null,
|
|
557
|
-
jsonType: "object"
|
|
558
|
-
};
|
|
559
|
-
function humanize$2(arr, conjunction) {
|
|
560
|
-
const len = arr.length;
|
|
561
|
-
if (len === 1)
|
|
562
|
-
return arr[0];
|
|
563
|
-
const first = arr.slice(0, len - 1), last = arr[len - 1];
|
|
564
|
-
return `${first.join(", ")} ${conjunction} ${last}`;
|
|
565
|
-
}
|
|
566
|
-
function buildTitle$2(type) {
|
|
567
|
-
return !type.to || type.to.length === 0 ? "Cross dataset Reference" : `Cross dataset reference to ${humanize$2(
|
|
568
|
-
arrify__default.default(type.to).map((toType) => toType.title || capitalize__default.default(toType.type)),
|
|
569
|
-
"or"
|
|
570
|
-
).toLowerCase()}`;
|
|
571
|
-
}
|
|
572
|
-
const CrossDatasetReferenceType = {
|
|
573
|
-
get() {
|
|
574
|
-
return CROSS_DATASET_REFERENCE_CORE;
|
|
575
|
-
},
|
|
576
|
-
extend(subTypeDef, createMemberType) {
|
|
577
|
-
if (!subTypeDef.to)
|
|
578
|
-
throw new Error(
|
|
579
|
-
`Missing "to" field in cross dataset reference definition. Check the type ${subTypeDef.name}`
|
|
580
|
-
);
|
|
581
|
-
const parsed = Object.assign(
|
|
582
|
-
pick__default.default(CROSS_DATASET_REFERENCE_CORE, OVERRIDABLE_FIELDS$c),
|
|
583
|
-
subTypeDef,
|
|
584
|
-
{
|
|
585
|
-
type: CROSS_DATASET_REFERENCE_CORE
|
|
586
|
-
}
|
|
587
|
-
);
|
|
588
|
-
return lazyGetter(parsed, "fields", () => REFERENCE_FIELDS$2.map((fieldDef) => {
|
|
589
|
-
const { name, ...type } = fieldDef;
|
|
590
|
-
return {
|
|
591
|
-
name,
|
|
592
|
-
type: createMemberType(type)
|
|
593
|
-
};
|
|
594
|
-
})), lazyGetter(parsed, "to", () => arrify__default.default(subTypeDef.to).map((toType) => ({
|
|
595
|
-
...toType,
|
|
596
|
-
// eslint-disable-next-line camelcase
|
|
597
|
-
__experimental_search: resolve.resolveSearchConfigForBaseFieldPaths(toType)
|
|
598
|
-
}))), lazyGetter(parsed, "title", () => subTypeDef.title || buildTitle$2(parsed)), lazyGetter(
|
|
599
|
-
parsed,
|
|
600
|
-
resolve.OWN_PROPS_NAME,
|
|
601
|
-
() => ({
|
|
602
|
-
...subTypeDef,
|
|
603
|
-
fields: parsed.fields,
|
|
604
|
-
to: parsed.to,
|
|
605
|
-
title: parsed.title
|
|
606
|
-
}),
|
|
607
|
-
{ enumerable: !1, writable: !1 }
|
|
608
|
-
), subtype(parsed);
|
|
609
|
-
function subtype(parent) {
|
|
610
|
-
return {
|
|
611
|
-
get() {
|
|
612
|
-
return parent;
|
|
613
|
-
},
|
|
614
|
-
extend: (extensionDef) => {
|
|
615
|
-
if (extensionDef.of)
|
|
616
|
-
throw new Error('Cannot override `of` of subtypes of "reference"');
|
|
617
|
-
const ownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$c), current = Object.assign({}, parent, ownProps, {
|
|
618
|
-
type: parent
|
|
619
|
-
});
|
|
620
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, ownProps), subtype(current);
|
|
621
|
-
}
|
|
622
|
-
};
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
}, OVERRIDABLE_FIELDS$b = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], DATE_CORE = {
|
|
626
|
-
name: "date",
|
|
627
|
-
title: "Datetime",
|
|
628
|
-
type: null,
|
|
629
|
-
jsonType: "string"
|
|
630
|
-
}, DateType = {
|
|
631
|
-
get() {
|
|
632
|
-
return DATE_CORE;
|
|
633
|
-
},
|
|
634
|
-
extend(subTypeDef) {
|
|
635
|
-
const ownProps = {
|
|
636
|
-
...subTypeDef,
|
|
637
|
-
preview: primitivePreview
|
|
638
|
-
}, parsed = Object.assign(pick__default.default(DATE_CORE, OVERRIDABLE_FIELDS$b), ownProps, {
|
|
639
|
-
type: DATE_CORE
|
|
640
|
-
});
|
|
641
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
642
|
-
function subtype(parent) {
|
|
643
|
-
return {
|
|
644
|
-
get() {
|
|
645
|
-
return parent;
|
|
646
|
-
},
|
|
647
|
-
extend: (extensionDef) => {
|
|
648
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$b), current = Object.assign({}, parent, subOwnProps, {
|
|
649
|
-
type: parent
|
|
650
|
-
});
|
|
651
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
652
|
-
}
|
|
653
|
-
};
|
|
654
|
-
}
|
|
655
|
-
}
|
|
656
|
-
}, OVERRIDABLE_FIELDS$a = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], DATETIME_CORE = {
|
|
657
|
-
name: "datetime",
|
|
658
|
-
title: "Datetime",
|
|
659
|
-
type: null,
|
|
660
|
-
jsonType: "string"
|
|
661
|
-
}, DateTimeType = {
|
|
662
|
-
get() {
|
|
663
|
-
return DATETIME_CORE;
|
|
664
|
-
},
|
|
665
|
-
extend(subTypeDef) {
|
|
666
|
-
const ownProps = {
|
|
667
|
-
...subTypeDef,
|
|
668
|
-
preview: primitivePreview
|
|
669
|
-
}, parsed = Object.assign(pick__default.default(DATETIME_CORE, OVERRIDABLE_FIELDS$a), ownProps, {
|
|
670
|
-
type: DATETIME_CORE
|
|
671
|
-
});
|
|
672
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
673
|
-
function subtype(parent) {
|
|
674
|
-
return {
|
|
675
|
-
get() {
|
|
676
|
-
return parent;
|
|
677
|
-
},
|
|
678
|
-
extend: (extensionDef) => {
|
|
679
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$a), current = Object.assign({}, parent, subOwnProps, {
|
|
680
|
-
type: parent
|
|
681
|
-
});
|
|
682
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
683
|
-
}
|
|
684
|
-
};
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
}, CANDIDATES = ["title", "name", "label", "heading", "header", "caption", "description"], PRIMITIVES = ["string", "boolean", "number"], isPrimitive = (field) => PRIMITIVES.includes(field.type);
|
|
688
|
-
function guessOrderingConfig(objectTypeDef) {
|
|
689
|
-
let candidates = CANDIDATES.filter(
|
|
690
|
-
(candidate) => objectTypeDef.fields.some((field) => isPrimitive(field) && field.name === candidate)
|
|
691
|
-
);
|
|
692
|
-
return candidates.length === 0 && (candidates = objectTypeDef.fields.filter(isPrimitive).map((field) => field.name)), candidates.map(
|
|
693
|
-
(name) => ({
|
|
694
|
-
name,
|
|
695
|
-
i18n: {
|
|
696
|
-
title: { key: `default-orderings.${name}`, ns: "studio" }
|
|
697
|
-
},
|
|
698
|
-
title: capitalize__default.default(startCase__default.default(name)),
|
|
699
|
-
by: [{ field: name, direction: "asc" }]
|
|
700
|
-
})
|
|
701
|
-
);
|
|
702
|
-
}
|
|
703
|
-
function normalizeSearchConfigs(configs) {
|
|
704
|
-
if (!Array.isArray(configs))
|
|
705
|
-
throw new Error(
|
|
706
|
-
"The search config of a document type must be an array of search config objects"
|
|
707
|
-
);
|
|
708
|
-
return configs.map((conf) => {
|
|
709
|
-
if (conf === "defaults")
|
|
710
|
-
return conf;
|
|
711
|
-
if (!isPlainObject__default.default(conf))
|
|
712
|
-
throw new Error("Search config must be an object of {path: string, weight: number}");
|
|
713
|
-
return {
|
|
714
|
-
weight: "weight" in conf ? conf.weight : 1,
|
|
715
|
-
path: toPath__default.default(conf.path),
|
|
716
|
-
mapWith: typeof conf.mapWith == "string" ? conf.mapWith : void 0
|
|
717
|
-
};
|
|
718
|
-
});
|
|
719
|
-
}
|
|
720
|
-
const OVERRIDABLE_FIELDS$9 = [
|
|
721
|
-
...resolve.DEFAULT_OVERRIDEABLE_FIELDS,
|
|
722
|
-
"orderings",
|
|
723
|
-
"__experimental_search",
|
|
724
|
-
"blockEditor",
|
|
725
|
-
"icon"
|
|
726
|
-
], ObjectType = {
|
|
727
|
-
get() {
|
|
728
|
-
return {
|
|
729
|
-
name: "object",
|
|
730
|
-
title: "Object",
|
|
731
|
-
type: null,
|
|
732
|
-
jsonType: "object"
|
|
733
|
-
};
|
|
734
|
-
},
|
|
735
|
-
extend(rawSubTypeDef, createMemberType) {
|
|
736
|
-
const subTypeDef = { fields: [], ...rawSubTypeDef }, options = { ...subTypeDef.options }, ownProps = {
|
|
737
|
-
...subTypeDef,
|
|
738
|
-
title: subTypeDef.title || (subTypeDef.name ? startCase__default.default(subTypeDef.name) : "Object"),
|
|
739
|
-
options,
|
|
740
|
-
orderings: subTypeDef.orderings || guessOrderingConfig(subTypeDef),
|
|
741
|
-
fields: subTypeDef.fields.map((fieldDef) => {
|
|
742
|
-
const { name, fieldset, group, ...rest } = fieldDef;
|
|
743
|
-
return lazyGetter({
|
|
744
|
-
name,
|
|
745
|
-
group,
|
|
746
|
-
fieldset
|
|
747
|
-
}, "type", () => createMemberType({
|
|
748
|
-
...rest,
|
|
749
|
-
title: fieldDef.title || startCase__default.default(name)
|
|
750
|
-
}));
|
|
751
|
-
})
|
|
752
|
-
}, parsed = Object.assign(pick__default.default(this.get(), OVERRIDABLE_FIELDS$9), ownProps, {
|
|
753
|
-
type: this.get()
|
|
754
|
-
});
|
|
755
|
-
return lazyGetter(parsed, "fieldsets", () => createFieldsets(subTypeDef, parsed.fields)), lazyGetter(parsed, "groups", () => createFieldsGroups(subTypeDef, parsed.fields)), lazyGetter(parsed, "preview", createPreviewGetter(subTypeDef)), lazyGetter(
|
|
756
|
-
parsed,
|
|
757
|
-
resolve.OWN_PROPS_NAME,
|
|
758
|
-
() => ({
|
|
759
|
-
...ownProps,
|
|
760
|
-
preview: parsed.preview
|
|
761
|
-
}),
|
|
762
|
-
{ enumerable: !1, writable: !1 }
|
|
763
|
-
), lazyGetter(
|
|
764
|
-
parsed,
|
|
765
|
-
"__experimental_search",
|
|
766
|
-
() => {
|
|
767
|
-
const userProvidedSearchConfig = subTypeDef.__experimental_search ? normalizeSearchConfigs(subTypeDef.__experimental_search) : null;
|
|
768
|
-
return userProvidedSearchConfig ? userProvidedSearchConfig.map(
|
|
769
|
-
(entry) => entry === "defaults" ? normalizeSearchConfigs(subTypeDef) : entry
|
|
770
|
-
) : resolve.resolveSearchConfig(parsed);
|
|
771
|
-
},
|
|
772
|
-
{
|
|
773
|
-
enumerable: !1
|
|
774
|
-
}
|
|
775
|
-
), subtype(parsed);
|
|
776
|
-
function subtype(parent) {
|
|
777
|
-
return {
|
|
778
|
-
get() {
|
|
779
|
-
return parent;
|
|
780
|
-
},
|
|
781
|
-
extend: (extensionDef) => {
|
|
782
|
-
if (extensionDef.fields)
|
|
783
|
-
throw new Error('Cannot override `fields` of subtypes of "object"');
|
|
784
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$9);
|
|
785
|
-
subOwnProps.title = extensionDef.title || subTypeDef.title || (subTypeDef.name ? startCase__default.default(subTypeDef.name) : "Object");
|
|
786
|
-
const current = Object.assign({}, parent, pick__default.default(extensionDef, OVERRIDABLE_FIELDS$9), {
|
|
787
|
-
type: parent
|
|
788
|
-
});
|
|
789
|
-
return lazyGetter(current, "__experimental_search", () => parent.__experimental_search), hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
790
|
-
}
|
|
791
|
-
};
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
};
|
|
795
|
-
function createFieldsets(typeDef, fields) {
|
|
796
|
-
const fieldsetsByName = {};
|
|
797
|
-
for (const fieldset of typeDef.fieldsets || []) {
|
|
798
|
-
if (fieldsetsByName[fieldset.name])
|
|
799
|
-
throw new Error(
|
|
800
|
-
`Duplicate fieldset name "${fieldset.name}" found for type '${typeDef.title ? typeDef.title : startCase__default.default(typeDef.name)}'`
|
|
801
|
-
);
|
|
802
|
-
fieldsetsByName[fieldset.name] = { title: startCase__default.default(fieldset.name), ...fieldset, fields: [] };
|
|
803
|
-
}
|
|
804
|
-
const fieldsets = /* @__PURE__ */ new Set();
|
|
805
|
-
for (const field of fields) {
|
|
806
|
-
if (!field.fieldset) {
|
|
807
|
-
fieldsets.add({ single: !0, field });
|
|
808
|
-
continue;
|
|
809
|
-
}
|
|
810
|
-
const fieldset = fieldsetsByName[field.fieldset];
|
|
811
|
-
if (!fieldset)
|
|
812
|
-
throw new Error(
|
|
813
|
-
`Fieldset '${field.fieldset}' is not defined in schema for type '${typeDef.name}'`
|
|
814
|
-
);
|
|
815
|
-
fieldset.fields.push(field), fieldsets.add(fieldset);
|
|
816
|
-
}
|
|
817
|
-
return Array.from(fieldsets);
|
|
818
|
-
}
|
|
819
|
-
function createFieldsGroups(typeDef, fields) {
|
|
820
|
-
const groupsByName = {};
|
|
821
|
-
let numDefaultGroups = 0;
|
|
822
|
-
for (const group of typeDef.groups || []) {
|
|
823
|
-
if (groupsByName[group.name])
|
|
824
|
-
throw new Error(
|
|
825
|
-
`Duplicate group name "${group.name}" found for type '${typeDef.title ? typeDef.title : startCase__default.default(typeDef.name)}'`
|
|
826
|
-
);
|
|
827
|
-
if (groupsByName[group.name] = { title: startCase__default.default(group.name), ...group, fields: [] }, group.default && ++numDefaultGroups > 1)
|
|
828
|
-
throw new Error(
|
|
829
|
-
`More than one field group defined as default for type '${typeDef.title ? typeDef.title : startCase__default.default(typeDef.name)}' - only 1 is supported`
|
|
830
|
-
);
|
|
831
|
-
}
|
|
832
|
-
return fields.forEach((field) => {
|
|
833
|
-
const fieldGroupNames = castArray__default.default(field.group || []);
|
|
834
|
-
fieldGroupNames.length !== 0 && fieldGroupNames.forEach((fieldGroupName) => {
|
|
835
|
-
const currentGroup = groupsByName[fieldGroupName];
|
|
836
|
-
if (!currentGroup)
|
|
837
|
-
throw new Error(
|
|
838
|
-
`Field group '${fieldGroupName}' is not defined in schema for type '${typeDef.title ? typeDef.name : startCase__default.default(typeDef.name)}'`
|
|
839
|
-
);
|
|
840
|
-
currentGroup.fields.push(field);
|
|
841
|
-
});
|
|
842
|
-
}), flatMap__default.default(groupsByName).filter((group) => group.fields.length > 0);
|
|
843
|
-
}
|
|
844
|
-
const DOCUMENT_CORE = {
|
|
845
|
-
name: "document",
|
|
846
|
-
title: "Document",
|
|
847
|
-
type: null,
|
|
848
|
-
jsonType: "object"
|
|
849
|
-
}, DocumentType = {
|
|
850
|
-
get() {
|
|
851
|
-
return DOCUMENT_CORE;
|
|
852
|
-
},
|
|
853
|
-
extend: ObjectType.extend
|
|
854
|
-
}, OVERRIDABLE_FIELDS$8 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], EMAIL_CORE = {
|
|
855
|
-
name: "email",
|
|
856
|
-
title: "Email",
|
|
857
|
-
type: null,
|
|
858
|
-
jsonType: "string"
|
|
859
|
-
};
|
|
860
|
-
lazyGetter(
|
|
861
|
-
EMAIL_CORE,
|
|
862
|
-
resolve.OWN_PROPS_NAME,
|
|
863
|
-
() => ({
|
|
864
|
-
...EMAIL_CORE,
|
|
865
|
-
validation: (Rule) => Rule.email()
|
|
866
|
-
}),
|
|
867
|
-
{ enumerable: !1 }
|
|
868
|
-
);
|
|
869
|
-
const EmailType = {
|
|
870
|
-
get() {
|
|
871
|
-
return EMAIL_CORE;
|
|
872
|
-
},
|
|
873
|
-
extend(subTypeDef) {
|
|
874
|
-
const ownProps = {
|
|
875
|
-
...subTypeDef,
|
|
876
|
-
preview: primitivePreview
|
|
877
|
-
}, parsed = Object.assign(pick__default.default(EMAIL_CORE, OVERRIDABLE_FIELDS$8), ownProps, {
|
|
878
|
-
type: EMAIL_CORE
|
|
879
|
-
});
|
|
880
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
881
|
-
function subtype(parent) {
|
|
882
|
-
return {
|
|
883
|
-
get() {
|
|
884
|
-
return parent;
|
|
885
|
-
},
|
|
886
|
-
extend: (extensionDef) => {
|
|
887
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$8), current = Object.assign({}, parent, subOwnProps, {
|
|
888
|
-
type: parent
|
|
889
|
-
});
|
|
890
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
891
|
-
}
|
|
892
|
-
};
|
|
893
|
-
}
|
|
894
|
-
}
|
|
895
|
-
}, ASSET_FIELD$1 = {
|
|
896
|
-
name: "asset",
|
|
897
|
-
type: "reference",
|
|
898
|
-
to: { type: "sanity.fileAsset" }
|
|
899
|
-
}, MEDIA_LIBRARY_ASSET_FIELD$1 = {
|
|
900
|
-
name: "media",
|
|
901
|
-
type: "globalDocumentReference",
|
|
902
|
-
hidden: !0,
|
|
903
|
-
to: [{ type: "sanity.asset" }]
|
|
904
|
-
}, OVERRIDABLE_FIELDS$7 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], FILE_CORE = {
|
|
905
|
-
name: "file",
|
|
906
|
-
title: "File",
|
|
907
|
-
type: null,
|
|
908
|
-
jsonType: "object"
|
|
909
|
-
}, DEFAULT_OPTIONS$1 = {
|
|
910
|
-
accept: ""
|
|
911
|
-
}, FileType = {
|
|
912
|
-
get() {
|
|
913
|
-
return FILE_CORE;
|
|
914
|
-
},
|
|
915
|
-
extend(rawSubTypeDef, createMemberType) {
|
|
916
|
-
const options = { ...rawSubTypeDef.options || DEFAULT_OPTIONS$1 }, fields = [ASSET_FIELD$1, MEDIA_LIBRARY_ASSET_FIELD$1, ...rawSubTypeDef.fields || []], subTypeDef = { ...rawSubTypeDef, fields }, parsed = Object.assign(pick__default.default(FILE_CORE, OVERRIDABLE_FIELDS$7), subTypeDef, {
|
|
917
|
-
type: FILE_CORE,
|
|
918
|
-
title: subTypeDef.title || (subTypeDef.name ? startCase__default.default(subTypeDef.name) : FILE_CORE.title),
|
|
919
|
-
options,
|
|
920
|
-
fields: subTypeDef.fields.map((fieldDef) => {
|
|
921
|
-
const { name, fieldset, ...rest } = fieldDef, compiledField = {
|
|
922
|
-
name,
|
|
923
|
-
fieldset,
|
|
924
|
-
isCustomized: !!rawSubTypeDef.fields
|
|
925
|
-
};
|
|
926
|
-
return lazyGetter(compiledField, "type", () => createMemberType({
|
|
927
|
-
...rest,
|
|
928
|
-
title: fieldDef.title || startCase__default.default(name)
|
|
929
|
-
}));
|
|
930
|
-
})
|
|
931
|
-
});
|
|
932
|
-
return lazyGetter(parsed, "fieldsets", () => createFieldsets(subTypeDef, parsed.fields)), lazyGetter(parsed, "preview", createPreviewGetter(Object.assign({}, subTypeDef, { fields }))), lazyGetter(
|
|
933
|
-
parsed,
|
|
934
|
-
resolve.OWN_PROPS_NAME,
|
|
935
|
-
() => ({
|
|
936
|
-
...subTypeDef,
|
|
937
|
-
options,
|
|
938
|
-
fields: parsed.fields,
|
|
939
|
-
title: parsed.title,
|
|
940
|
-
fieldsets: parsed.fieldsets,
|
|
941
|
-
preview: parsed.preview
|
|
942
|
-
}),
|
|
943
|
-
{ enumerable: !1, writable: !1 }
|
|
944
|
-
), subtype(parsed);
|
|
945
|
-
function subtype(parent) {
|
|
946
|
-
return {
|
|
947
|
-
get() {
|
|
948
|
-
return parent;
|
|
949
|
-
},
|
|
950
|
-
extend: (extensionDef) => {
|
|
951
|
-
if (extensionDef.fields)
|
|
952
|
-
throw new Error('Cannot override `fields` of subtypes of "file"');
|
|
953
|
-
const ownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$7), current = Object.assign({}, parent, ownProps, {
|
|
954
|
-
type: parent
|
|
955
|
-
});
|
|
956
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, ownProps), subtype(current);
|
|
957
|
-
}
|
|
958
|
-
};
|
|
959
|
-
}
|
|
960
|
-
}
|
|
961
|
-
}, REF_FIELD$1 = {
|
|
962
|
-
name: "_ref",
|
|
963
|
-
title: "Referenced document ID",
|
|
964
|
-
type: "string"
|
|
965
|
-
}, WEAK_FIELD$1 = {
|
|
966
|
-
name: "_weak",
|
|
967
|
-
title: "Weak reference",
|
|
968
|
-
type: "boolean"
|
|
969
|
-
}, REFERENCE_FIELDS$1 = [REF_FIELD$1, WEAK_FIELD$1], OVERRIDABLE_FIELDS$6 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], GLOBAL_DOCUMENT_REFERENCE_CORE = {
|
|
970
|
-
name: "globalDocumentReference",
|
|
971
|
-
title: "Global Document Reference",
|
|
972
|
-
type: null,
|
|
973
|
-
jsonType: "object"
|
|
974
|
-
};
|
|
975
|
-
function humanize$1(arr, conjunction) {
|
|
976
|
-
const len = arr.length;
|
|
977
|
-
if (len === 1)
|
|
978
|
-
return arr[0];
|
|
979
|
-
const first = arr.slice(0, len - 1), last = arr[len - 1];
|
|
980
|
-
return `${first.join(", ")} ${conjunction} ${last}`;
|
|
981
|
-
}
|
|
982
|
-
function buildTitle$1(type) {
|
|
983
|
-
return !type.to || type.to.length === 0 ? "Global Document Reference" : `Global Document Reference to ${humanize$1(
|
|
984
|
-
arrify__default.default(type.to).map((toType) => toType.title),
|
|
985
|
-
"or"
|
|
986
|
-
).toLowerCase()}`;
|
|
987
|
-
}
|
|
988
|
-
const GlobalDocumentReferenceType = {
|
|
989
|
-
get() {
|
|
990
|
-
return GLOBAL_DOCUMENT_REFERENCE_CORE;
|
|
991
|
-
},
|
|
992
|
-
extend(subTypeDef, createMemberType) {
|
|
993
|
-
if (!subTypeDef.to)
|
|
994
|
-
throw new Error(
|
|
995
|
-
`Missing "to" field in global document reference definition. Check the type ${subTypeDef.name}`
|
|
996
|
-
);
|
|
997
|
-
const parsed = Object.assign(
|
|
998
|
-
pick__default.default(GLOBAL_DOCUMENT_REFERENCE_CORE, OVERRIDABLE_FIELDS$6),
|
|
999
|
-
subTypeDef,
|
|
1000
|
-
{
|
|
1001
|
-
type: GLOBAL_DOCUMENT_REFERENCE_CORE
|
|
1002
|
-
}
|
|
1003
|
-
);
|
|
1004
|
-
return lazyGetter(parsed, "fields", () => REFERENCE_FIELDS$1.map((fieldDef) => {
|
|
1005
|
-
const { name, ...type } = fieldDef;
|
|
1006
|
-
return {
|
|
1007
|
-
name,
|
|
1008
|
-
type: createMemberType(type)
|
|
1009
|
-
};
|
|
1010
|
-
})), lazyGetter(parsed, "to", () => arrify__default.default(subTypeDef.to).map((toType) => ({
|
|
1011
|
-
...toType
|
|
1012
|
-
}))), lazyGetter(parsed, "title", () => subTypeDef.title || buildTitle$1(parsed)), lazyGetter(
|
|
1013
|
-
parsed,
|
|
1014
|
-
resolve.OWN_PROPS_NAME,
|
|
1015
|
-
() => ({
|
|
1016
|
-
...subTypeDef,
|
|
1017
|
-
fields: parsed.fields,
|
|
1018
|
-
to: parsed.to,
|
|
1019
|
-
title: parsed.title
|
|
1020
|
-
}),
|
|
1021
|
-
{ enumerable: !1, writable: !1 }
|
|
1022
|
-
), subtype(parsed);
|
|
1023
|
-
function subtype(parent) {
|
|
1024
|
-
return {
|
|
1025
|
-
get() {
|
|
1026
|
-
return parent;
|
|
1027
|
-
},
|
|
1028
|
-
extend: (extensionDef) => {
|
|
1029
|
-
if (extensionDef.of)
|
|
1030
|
-
throw new Error('Cannot override `of` of subtypes of "globalDocumentReference"');
|
|
1031
|
-
const ownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$6), current = Object.assign({}, parent, ownProps, {
|
|
1032
|
-
type: parent
|
|
1033
|
-
});
|
|
1034
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, ownProps), subtype(current);
|
|
1035
|
-
}
|
|
1036
|
-
};
|
|
1037
|
-
}
|
|
1038
|
-
}
|
|
1039
|
-
}, ASSET_FIELD = {
|
|
1040
|
-
name: "asset",
|
|
1041
|
-
type: "reference",
|
|
1042
|
-
to: [{ type: "sanity.imageAsset" }]
|
|
1043
|
-
}, HOTSPOT_FIELD = {
|
|
1044
|
-
name: "hotspot",
|
|
1045
|
-
type: "sanity.imageHotspot"
|
|
1046
|
-
}, CROP_FIELD = {
|
|
1047
|
-
name: "crop",
|
|
1048
|
-
type: "sanity.imageCrop"
|
|
1049
|
-
}, MEDIA_LIBRARY_ASSET_FIELD = {
|
|
1050
|
-
name: "media",
|
|
1051
|
-
type: "globalDocumentReference",
|
|
1052
|
-
hidden: !0,
|
|
1053
|
-
to: [{ type: "sanity.asset" }]
|
|
1054
|
-
}, OVERRIDABLE_FIELDS$5 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], IMAGE_CORE = {
|
|
1055
|
-
name: "image",
|
|
1056
|
-
title: "Image",
|
|
1057
|
-
type: null,
|
|
1058
|
-
jsonType: "object"
|
|
1059
|
-
}, DEFAULT_OPTIONS = {}, ImageType = {
|
|
1060
|
-
get() {
|
|
1061
|
-
return IMAGE_CORE;
|
|
1062
|
-
},
|
|
1063
|
-
extend(rawSubTypeDef, createMemberType) {
|
|
1064
|
-
const options = { ...rawSubTypeDef.options || DEFAULT_OPTIONS };
|
|
1065
|
-
let hotspotFields = [HOTSPOT_FIELD, CROP_FIELD];
|
|
1066
|
-
options.hotspot || (hotspotFields = hotspotFields.map((field) => ({ ...field, hidden: !0 })));
|
|
1067
|
-
const fields = [
|
|
1068
|
-
ASSET_FIELD,
|
|
1069
|
-
MEDIA_LIBRARY_ASSET_FIELD,
|
|
1070
|
-
...hotspotFields,
|
|
1071
|
-
...rawSubTypeDef.fields || []
|
|
1072
|
-
], subTypeDef = { ...rawSubTypeDef, fields }, parsed = Object.assign(pick__default.default(this.get(), OVERRIDABLE_FIELDS$5), subTypeDef, {
|
|
1073
|
-
type: IMAGE_CORE,
|
|
1074
|
-
title: subTypeDef.title || (subTypeDef.name ? startCase__default.default(subTypeDef.name) : IMAGE_CORE.title),
|
|
1075
|
-
options,
|
|
1076
|
-
fields: subTypeDef.fields.map((fieldDef) => {
|
|
1077
|
-
const { name, fieldset, ...rest } = fieldDef, compiledField = {
|
|
1078
|
-
name,
|
|
1079
|
-
fieldset,
|
|
1080
|
-
isCustomized: !!rawSubTypeDef.fields
|
|
1081
|
-
};
|
|
1082
|
-
return lazyGetter(compiledField, "type", () => createMemberType({
|
|
1083
|
-
...rest,
|
|
1084
|
-
title: fieldDef.title || startCase__default.default(name)
|
|
1085
|
-
}));
|
|
1086
|
-
})
|
|
1087
|
-
});
|
|
1088
|
-
return lazyGetter(parsed, "fieldsets", () => createFieldsets(subTypeDef, parsed.fields)), lazyGetter(parsed, "preview", createPreviewGetter(Object.assign({}, subTypeDef, { fields }))), lazyGetter(
|
|
1089
|
-
parsed,
|
|
1090
|
-
resolve.OWN_PROPS_NAME,
|
|
1091
|
-
() => ({
|
|
1092
|
-
...subTypeDef,
|
|
1093
|
-
options,
|
|
1094
|
-
fields: parsed.fields,
|
|
1095
|
-
title: parsed.title,
|
|
1096
|
-
fieldsets: parsed.fieldsets,
|
|
1097
|
-
preview: parsed.preview
|
|
1098
|
-
}),
|
|
1099
|
-
{ enumerable: !1, writable: !1 }
|
|
1100
|
-
), subtype(parsed);
|
|
1101
|
-
function subtype(parent) {
|
|
1102
|
-
return {
|
|
1103
|
-
get() {
|
|
1104
|
-
return parent;
|
|
1105
|
-
},
|
|
1106
|
-
extend: (extensionDef) => {
|
|
1107
|
-
if (extensionDef.fields)
|
|
1108
|
-
throw new Error('Cannot override `fields` of subtypes of "image"');
|
|
1109
|
-
const ownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$5), current = Object.assign({}, parent, ownProps, {
|
|
1110
|
-
type: parent
|
|
1111
|
-
});
|
|
1112
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, ownProps), subtype(current);
|
|
1113
|
-
}
|
|
1114
|
-
};
|
|
1115
|
-
}
|
|
1116
|
-
}
|
|
1117
|
-
}, OVERRIDABLE_FIELDS$4 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], NUMBER_CORE = {
|
|
1118
|
-
name: "number",
|
|
1119
|
-
title: "Number",
|
|
1120
|
-
type: null,
|
|
1121
|
-
jsonType: "number"
|
|
1122
|
-
}, NumberType = {
|
|
1123
|
-
get() {
|
|
1124
|
-
return NUMBER_CORE;
|
|
1125
|
-
},
|
|
1126
|
-
extend(subTypeDef) {
|
|
1127
|
-
const ownProps = {
|
|
1128
|
-
...subTypeDef,
|
|
1129
|
-
preview: primitivePreview
|
|
1130
|
-
}, parsed = Object.assign(pick__default.default(NUMBER_CORE, OVERRIDABLE_FIELDS$4), ownProps, {
|
|
1131
|
-
type: NUMBER_CORE
|
|
1132
|
-
});
|
|
1133
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
1134
|
-
function subtype(parent) {
|
|
1135
|
-
return {
|
|
1136
|
-
get() {
|
|
1137
|
-
return parent;
|
|
1138
|
-
},
|
|
1139
|
-
extend: (extensionDef) => {
|
|
1140
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$4), current = Object.assign({}, parent, subOwnProps, {
|
|
1141
|
-
type: parent
|
|
1142
|
-
});
|
|
1143
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
1144
|
-
}
|
|
1145
|
-
};
|
|
1146
|
-
}
|
|
1147
|
-
}
|
|
1148
|
-
}, REF_FIELD = {
|
|
1149
|
-
name: "_ref",
|
|
1150
|
-
title: "Referenced document ID",
|
|
1151
|
-
type: "string"
|
|
1152
|
-
}, WEAK_FIELD = {
|
|
1153
|
-
name: "_weak",
|
|
1154
|
-
title: "Weak reference",
|
|
1155
|
-
type: "boolean"
|
|
1156
|
-
}, REFERENCE_FIELDS = [REF_FIELD, WEAK_FIELD], OVERRIDABLE_FIELDS$3 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], REFERENCE_CORE = {
|
|
1157
|
-
name: "reference",
|
|
1158
|
-
title: "Reference",
|
|
1159
|
-
type: null,
|
|
1160
|
-
jsonType: "object"
|
|
1161
|
-
};
|
|
1162
|
-
function humanize(arr, conjunction) {
|
|
1163
|
-
const len = arr.length;
|
|
1164
|
-
if (len === 1)
|
|
1165
|
-
return arr[0];
|
|
1166
|
-
const first = arr.slice(0, len - 1), last = arr[len - 1];
|
|
1167
|
-
return `${first.join(", ")} ${conjunction} ${last}`;
|
|
1168
|
-
}
|
|
1169
|
-
function buildTitle(type) {
|
|
1170
|
-
return !type.to || type.to.length === 0 ? "Reference" : `Reference to ${humanize(
|
|
1171
|
-
arrify__default.default(type.to).map((toType) => toType.title),
|
|
1172
|
-
"or"
|
|
1173
|
-
).toLowerCase()}`;
|
|
1174
|
-
}
|
|
1175
|
-
const ReferenceType = {
|
|
1176
|
-
get() {
|
|
1177
|
-
return REFERENCE_CORE;
|
|
1178
|
-
},
|
|
1179
|
-
extend(subTypeDef, createMemberType) {
|
|
1180
|
-
if (!subTypeDef.to)
|
|
1181
|
-
throw new Error(
|
|
1182
|
-
`Missing "to" field in reference definition. Check the type ${subTypeDef.name}`
|
|
1183
|
-
);
|
|
1184
|
-
const parsed = Object.assign(pick__default.default(REFERENCE_CORE, OVERRIDABLE_FIELDS$3), subTypeDef, {
|
|
1185
|
-
type: REFERENCE_CORE
|
|
1186
|
-
});
|
|
1187
|
-
return lazyGetter(parsed, "fields", () => REFERENCE_FIELDS.map((fieldDef) => {
|
|
1188
|
-
const { name, ...type } = fieldDef;
|
|
1189
|
-
return {
|
|
1190
|
-
name,
|
|
1191
|
-
type: createMemberType(type)
|
|
1192
|
-
};
|
|
1193
|
-
})), lazyGetter(parsed, "fieldsets", () => createFieldsets(subTypeDef, parsed.fields)), lazyGetter(parsed, "to", () => arrify__default.default(subTypeDef.to).map((toType) => createMemberType(toType))), lazyGetter(parsed, "title", () => subTypeDef.title || buildTitle(parsed)), lazyGetter(
|
|
1194
|
-
parsed,
|
|
1195
|
-
resolve.OWN_PROPS_NAME,
|
|
1196
|
-
() => ({
|
|
1197
|
-
...subTypeDef,
|
|
1198
|
-
fields: parsed.fields,
|
|
1199
|
-
fieldsets: parsed.fieldsets,
|
|
1200
|
-
to: parsed.to,
|
|
1201
|
-
title: parsed.title
|
|
1202
|
-
}),
|
|
1203
|
-
{ enumerable: !1, writable: !1 }
|
|
1204
|
-
), subtype(parsed);
|
|
1205
|
-
function subtype(parent) {
|
|
1206
|
-
return {
|
|
1207
|
-
get() {
|
|
1208
|
-
return parent;
|
|
1209
|
-
},
|
|
1210
|
-
extend: (extensionDef) => {
|
|
1211
|
-
if (extensionDef.of)
|
|
1212
|
-
throw new Error('Cannot override `of` of subtypes of "reference"');
|
|
1213
|
-
const ownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$3), current = Object.assign({}, parent, ownProps, {
|
|
1214
|
-
type: parent
|
|
1215
|
-
});
|
|
1216
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, ownProps), subtype(current);
|
|
1217
|
-
}
|
|
1218
|
-
};
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
}, OVERRIDABLE_FIELDS$2 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], STRING_CORE = {
|
|
1222
|
-
name: "string",
|
|
1223
|
-
title: "String",
|
|
1224
|
-
type: null,
|
|
1225
|
-
jsonType: "string"
|
|
1226
|
-
}, StringType = {
|
|
1227
|
-
get() {
|
|
1228
|
-
return STRING_CORE;
|
|
1229
|
-
},
|
|
1230
|
-
extend(subTypeDef) {
|
|
1231
|
-
const ownProps = {
|
|
1232
|
-
...subTypeDef,
|
|
1233
|
-
preview: primitivePreview
|
|
1234
|
-
}, parsed = Object.assign(pick__default.default(STRING_CORE, OVERRIDABLE_FIELDS$2), ownProps, {
|
|
1235
|
-
type: STRING_CORE
|
|
1236
|
-
});
|
|
1237
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
1238
|
-
function subtype(parent) {
|
|
1239
|
-
return {
|
|
1240
|
-
get() {
|
|
1241
|
-
return parent;
|
|
1242
|
-
},
|
|
1243
|
-
extend: (extensionDef) => {
|
|
1244
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$2), current = Object.assign({}, parent, subOwnProps, {
|
|
1245
|
-
type: parent
|
|
1246
|
-
});
|
|
1247
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
1248
|
-
}
|
|
1249
|
-
};
|
|
1250
|
-
}
|
|
1251
|
-
}
|
|
1252
|
-
}, OVERRIDABLE_FIELDS$1 = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS, "rows"], TEXT_CORE = {
|
|
1253
|
-
name: "text",
|
|
1254
|
-
title: "Text",
|
|
1255
|
-
type: null,
|
|
1256
|
-
jsonType: "string"
|
|
1257
|
-
}, TextType = {
|
|
1258
|
-
get() {
|
|
1259
|
-
return TEXT_CORE;
|
|
1260
|
-
},
|
|
1261
|
-
extend(subTypeDef) {
|
|
1262
|
-
const ownProps = {
|
|
1263
|
-
...subTypeDef,
|
|
1264
|
-
preview: primitivePreview
|
|
1265
|
-
}, parsed = Object.assign(pick__default.default(TEXT_CORE, OVERRIDABLE_FIELDS$1), ownProps, {
|
|
1266
|
-
type: TEXT_CORE
|
|
1267
|
-
});
|
|
1268
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
1269
|
-
function subtype(parent) {
|
|
1270
|
-
return {
|
|
1271
|
-
get() {
|
|
1272
|
-
return parent;
|
|
1273
|
-
},
|
|
1274
|
-
extend: (extensionDef) => {
|
|
1275
|
-
const subOwnProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS$1), current = Object.assign({}, parent, subOwnProps, {
|
|
1276
|
-
type: parent
|
|
1277
|
-
});
|
|
1278
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnProps), subtype(current);
|
|
1279
|
-
}
|
|
1280
|
-
};
|
|
1281
|
-
}
|
|
1282
|
-
}
|
|
1283
|
-
}, OVERRIDABLE_FIELDS = [...resolve.DEFAULT_OVERRIDEABLE_FIELDS], URL_CORE = {
|
|
1284
|
-
name: "url",
|
|
1285
|
-
title: "Url",
|
|
1286
|
-
type: null,
|
|
1287
|
-
jsonType: "string"
|
|
1288
|
-
}, UrlType = {
|
|
1289
|
-
get() {
|
|
1290
|
-
return URL_CORE;
|
|
1291
|
-
},
|
|
1292
|
-
extend(subTypeDef) {
|
|
1293
|
-
const ownProps = {
|
|
1294
|
-
...subTypeDef,
|
|
1295
|
-
preview: primitivePreview
|
|
1296
|
-
}, parsed = Object.assign(pick__default.default(URL_CORE, OVERRIDABLE_FIELDS), ownProps, {
|
|
1297
|
-
type: URL_CORE
|
|
1298
|
-
});
|
|
1299
|
-
return hiddenGetter(parsed, resolve.OWN_PROPS_NAME, ownProps), subtype(parsed);
|
|
1300
|
-
function subtype(parent) {
|
|
1301
|
-
return {
|
|
1302
|
-
get() {
|
|
1303
|
-
return parent;
|
|
1304
|
-
},
|
|
1305
|
-
extend: (extensionDef) => {
|
|
1306
|
-
const subOwnownProps = pick__default.default(extensionDef, OVERRIDABLE_FIELDS), current = Object.assign({}, parent, subOwnownProps, {
|
|
1307
|
-
type: parent
|
|
1308
|
-
});
|
|
1309
|
-
return hiddenGetter(current, resolve.OWN_PROPS_NAME, subOwnownProps), subtype(current);
|
|
1310
|
-
}
|
|
1311
|
-
};
|
|
1312
|
-
}
|
|
1313
|
-
}
|
|
1314
|
-
};
|
|
1315
|
-
var types = /* @__PURE__ */ Object.freeze({
|
|
1316
|
-
__proto__: null,
|
|
1317
|
-
any: AnyType,
|
|
1318
|
-
array: ArrayType,
|
|
1319
|
-
block: BlockType,
|
|
1320
|
-
boolean: BooleanType,
|
|
1321
|
-
crossDatasetReference: CrossDatasetReferenceType,
|
|
1322
|
-
date: DateType,
|
|
1323
|
-
datetime: DateTimeType,
|
|
1324
|
-
document: DocumentType,
|
|
1325
|
-
email: EmailType,
|
|
1326
|
-
file: FileType,
|
|
1327
|
-
globalDocumentReference: GlobalDocumentReferenceType,
|
|
1328
|
-
image: ImageType,
|
|
1329
|
-
number: NumberType,
|
|
1330
|
-
object: ObjectType,
|
|
1331
|
-
reference: ReferenceType,
|
|
1332
|
-
span: SpanType,
|
|
1333
|
-
string: StringType,
|
|
1334
|
-
text: TextType,
|
|
1335
|
-
url: UrlType
|
|
1336
|
-
});
|
|
1337
|
-
function compileRegistry(schemaDef) {
|
|
1338
|
-
const registry = /* @__PURE__ */ Object.create(null);
|
|
1339
|
-
let localTypeNames;
|
|
1340
|
-
schemaDef.parent ? (Object.assign(registry, schemaDef.parent._registry), localTypeNames = []) : (Object.assign(registry, types), localTypeNames = Object.keys(types));
|
|
1341
|
-
const defsByName = schemaDef.types.reduce((acc, def) => {
|
|
1342
|
-
if (acc[def.name])
|
|
1343
|
-
throw new Error(`Duplicate type name added to schema: ${def.name}`);
|
|
1344
|
-
return acc[def.name] = def, acc;
|
|
1345
|
-
}, {});
|
|
1346
|
-
return schemaDef.types.forEach(add), {
|
|
1347
|
-
registry,
|
|
1348
|
-
localTypeNames
|
|
1349
|
-
};
|
|
1350
|
-
function ensure(typeName) {
|
|
1351
|
-
if (!registry[typeName]) {
|
|
1352
|
-
if (!defsByName[typeName])
|
|
1353
|
-
throw new Error(`Unknown type: ${typeName}`);
|
|
1354
|
-
add(defsByName[typeName]);
|
|
1355
|
-
}
|
|
1356
|
-
}
|
|
1357
|
-
function extendMember(memberDef) {
|
|
1358
|
-
return ensure(memberDef.type), registry[memberDef.type].extend(memberDef, extendMember).get();
|
|
1359
|
-
}
|
|
1360
|
-
function add(typeDef) {
|
|
1361
|
-
ensure(typeDef.type), !registry[typeDef.name] && (localTypeNames.push(typeDef.name), registry[typeDef.name] = registry[typeDef.type].extend(typeDef, extendMember));
|
|
1362
|
-
}
|
|
1363
|
-
}
|
|
1364
|
-
let Schema$1 = class Schema {
|
|
1365
|
-
_original;
|
|
1366
|
-
_registry;
|
|
1367
|
-
#localTypeNames;
|
|
1368
|
-
static compile(schemaDef) {
|
|
1369
|
-
return new Schema(schemaDef);
|
|
1370
|
-
}
|
|
1371
|
-
constructor(schemaDef) {
|
|
1372
|
-
this._original = schemaDef;
|
|
1373
|
-
const { registry, localTypeNames } = compileRegistry(schemaDef);
|
|
1374
|
-
this._registry = registry, this.#localTypeNames = localTypeNames;
|
|
1375
|
-
}
|
|
1376
|
-
get name() {
|
|
1377
|
-
return this._original.name;
|
|
1378
|
-
}
|
|
1379
|
-
/**
|
|
1380
|
-
* Returns the parent schema.
|
|
1381
|
-
*/
|
|
1382
|
-
get parent() {
|
|
1383
|
-
return this._original.parent;
|
|
1384
|
-
}
|
|
1385
|
-
get(name) {
|
|
1386
|
-
return this._registry[name] && this._registry[name].get();
|
|
1387
|
-
}
|
|
1388
|
-
has(name) {
|
|
1389
|
-
return name in this._registry;
|
|
1390
|
-
}
|
|
1391
|
-
getTypeNames() {
|
|
1392
|
-
return Object.keys(this._registry);
|
|
1393
|
-
}
|
|
1394
|
-
getLocalTypeNames() {
|
|
1395
|
-
return this.#localTypeNames;
|
|
1396
|
-
}
|
|
1397
|
-
};
|
|
1398
|
-
class DeprecatedDefaultSchema extends Schema$1 {
|
|
1399
|
-
static compile(schemaDef) {
|
|
1400
|
-
return new DeprecatedDefaultSchema(schemaDef);
|
|
1401
|
-
}
|
|
1402
|
-
constructor(schemaDef) {
|
|
1403
|
-
super(schemaDef);
|
|
1404
|
-
const stack = new Error(
|
|
1405
|
-
'The default export of `@sanity/schema` is deprecated. Use `import {Schema} from "@sanity/schema"` instead.'
|
|
1406
|
-
).stack.replace(/^Error/, "Warning");
|
|
1407
|
-
console.warn(stack);
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
|
-
const Schema2 = Schema$1;
|
|
1411
|
-
exports.Schema = Schema2;
|
|
1412
|
-
exports.default = DeprecatedDefaultSchema;
|
|
1413
9
|
//# sourceMappingURL=index.js.map
|