@byline/core 3.20.4 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/collection-types.d.ts +72 -31
- package/dist/@types/db-types.d.ts +93 -47
- package/dist/@types/field-data-types.d.ts +8 -10
- package/dist/@types/field-data-types.js +1 -1
- package/dist/@types/field-data-types.test.node.d.ts +1 -0
- package/dist/@types/field-data-types.test.node.js +70 -0
- package/dist/@types/field-types.d.ts +25 -1
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/index.js +1 -0
- package/dist/@types/query-predicate.d.ts +3 -3
- package/dist/@types/relation-types.d.ts +38 -0
- package/dist/@types/relation-types.js +8 -0
- package/dist/@types/search-types.d.ts +3 -4
- package/dist/@types/site-config.d.ts +52 -13
- package/dist/auth/apply-before-read.d.ts +23 -11
- package/dist/auth/apply-before-read.js +139 -33
- package/dist/auth/apply-before-read.test.node.js +241 -3
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/read-context-scope.d.ts +20 -0
- package/dist/auth/read-context-scope.js +48 -0
- package/dist/codegen/fixtures/all-fields.d.ts +342 -0
- package/dist/codegen/fixtures/all-fields.expected.d.ts +120 -0
- package/dist/codegen/fixtures/all-fields.expected.js +1 -0
- package/dist/codegen/fixtures/all-fields.js +94 -0
- package/dist/codegen/index.d.ts +16 -0
- package/dist/codegen/index.js +431 -0
- package/dist/codegen/index.test.node.d.ts +1 -0
- package/dist/codegen/index.test.node.js +230 -0
- package/dist/config/attach-hooks.d.ts +25 -0
- package/dist/config/attach-hooks.js +130 -0
- package/dist/config/attach-hooks.test.node.d.ts +1 -0
- package/dist/config/attach-hooks.test.node.js +173 -0
- package/dist/config/config-hooks.test.node.d.ts +1 -0
- package/dist/config/config-hooks.test.node.js +56 -0
- package/dist/config/config.d.ts +9 -5
- package/dist/config/config.js +20 -2
- package/dist/config/routes.d.ts +5 -5
- package/dist/config/routes.js +42 -9
- package/dist/config/routes.test.node.d.ts +1 -0
- package/dist/config/routes.test.node.js +152 -0
- package/dist/core.d.ts +3 -3
- package/dist/core.js +20 -14
- package/dist/core.test.node.d.ts +1 -0
- package/dist/core.test.node.js +28 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/lib/errors.d.ts +13 -0
- package/dist/lib/errors.js +14 -0
- package/dist/query/parse-where.d.ts +10 -1
- package/dist/query/parse-where.js +146 -2
- package/dist/query/parse-where.test.node.js +60 -1
- package/dist/schemas/zod/builder.js +7 -3
- package/dist/schemas/zod/builder.test.node.d.ts +1 -0
- package/dist/schemas/zod/builder.test.node.js +49 -0
- package/dist/services/collection-bootstrap.d.ts +1 -1
- package/dist/services/collection-bootstrap.test.node.js +30 -59
- package/dist/services/discover-counter-groups.d.ts +1 -1
- package/dist/services/discover-counter-groups.test.node.js +23 -0
- package/dist/services/document-lifecycle/audit.d.ts +22 -1
- package/dist/services/document-lifecycle/audit.js +32 -1
- package/dist/services/document-lifecycle/create.d.ts +2 -2
- package/dist/services/document-lifecycle/create.js +18 -8
- package/dist/services/document-lifecycle/delete.d.ts +17 -1
- package/dist/services/document-lifecycle/delete.js +91 -26
- package/dist/services/document-lifecycle/index.d.ts +1 -1
- package/dist/services/document-lifecycle/internals.d.ts +0 -20
- package/dist/services/document-lifecycle/internals.js +22 -46
- package/dist/services/document-lifecycle/status.d.ts +1 -1
- package/dist/services/document-lifecycle/status.js +20 -3
- package/dist/services/document-lifecycle/system-fields.d.ts +19 -6
- package/dist/services/document-lifecycle/system-fields.js +112 -74
- package/dist/services/document-lifecycle/tree.d.ts +22 -24
- package/dist/services/document-lifecycle/tree.js +244 -123
- package/dist/services/document-lifecycle/tree.test.node.d.ts +8 -0
- package/dist/services/document-lifecycle/tree.test.node.js +663 -0
- package/dist/services/document-lifecycle/update.d.ts +4 -4
- package/dist/services/document-lifecycle/update.js +11 -5
- package/dist/services/document-lifecycle.test.node.js +426 -16
- package/dist/services/document-read.d.ts +14 -6
- package/dist/services/document-read.js +47 -9
- package/dist/services/field-upload.test.node.js +70 -0
- package/dist/services/index.d.ts +3 -2
- package/dist/services/index.js +3 -2
- package/dist/services/normalize-numeric-fields.d.ts +23 -0
- package/dist/services/normalize-numeric-fields.js +89 -0
- package/dist/services/normalize-numeric-fields.test.node.d.ts +8 -0
- package/dist/services/normalize-numeric-fields.test.node.js +99 -0
- package/dist/services/populate.d.ts +9 -23
- package/dist/services/populate.js +180 -28
- package/dist/services/populate.test.node.js +59 -0
- package/dist/services/richtext-embed.d.ts +39 -2
- package/dist/services/richtext-embed.js +4 -34
- package/dist/services/richtext-embed.test.node.js +15 -0
- package/dist/services/richtext-populate.d.ts +21 -3
- package/dist/services/richtext-populate.js +160 -19
- package/dist/services/richtext-populate.test.node.js +523 -2
- package/dist/services/validate-search-config.d.ts +1 -1
- package/dist/storage/collection-fingerprint.js +6 -0
- package/dist/storage/collection-fingerprint.test.node.js +21 -0
- package/dist/utils/root-relative-redirect.d.ts +6 -0
- package/dist/utils/root-relative-redirect.js +37 -0
- package/package.json +7 -2
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
export declare const QuoteBlock: {
|
|
2
|
+
readonly blockType: "quote'block";
|
|
3
|
+
readonly fields: readonly [{
|
|
4
|
+
readonly name: "quotation";
|
|
5
|
+
readonly type: "textArea";
|
|
6
|
+
readonly localized: true;
|
|
7
|
+
}, {
|
|
8
|
+
readonly name: "tone'choice";
|
|
9
|
+
readonly type: "select";
|
|
10
|
+
readonly optional: true;
|
|
11
|
+
readonly options: [{
|
|
12
|
+
readonly label: "Calm";
|
|
13
|
+
readonly value: "calm";
|
|
14
|
+
}, {
|
|
15
|
+
readonly label: "Quoted";
|
|
16
|
+
readonly value: "author's";
|
|
17
|
+
}];
|
|
18
|
+
}];
|
|
19
|
+
};
|
|
20
|
+
export declare const MediaBlock: {
|
|
21
|
+
readonly blockType: "media";
|
|
22
|
+
readonly fields: readonly [{
|
|
23
|
+
readonly name: "caption";
|
|
24
|
+
readonly type: "text";
|
|
25
|
+
readonly localized: true;
|
|
26
|
+
readonly optional: true;
|
|
27
|
+
}, {
|
|
28
|
+
readonly name: "image";
|
|
29
|
+
readonly type: "image";
|
|
30
|
+
}];
|
|
31
|
+
};
|
|
32
|
+
export declare const AllFieldsCollection: {
|
|
33
|
+
readonly path: "all-fields";
|
|
34
|
+
readonly labels: {
|
|
35
|
+
readonly singular: "All fields";
|
|
36
|
+
readonly plural: "All fields";
|
|
37
|
+
};
|
|
38
|
+
readonly fields: [{
|
|
39
|
+
readonly name: "integer";
|
|
40
|
+
readonly type: "integer";
|
|
41
|
+
}, {
|
|
42
|
+
readonly name: "float";
|
|
43
|
+
readonly type: "float";
|
|
44
|
+
}, {
|
|
45
|
+
readonly name: "counter";
|
|
46
|
+
readonly type: "counter";
|
|
47
|
+
readonly group: "fixture";
|
|
48
|
+
}, {
|
|
49
|
+
readonly name: "decimal";
|
|
50
|
+
readonly type: "decimal";
|
|
51
|
+
}, {
|
|
52
|
+
readonly name: "date";
|
|
53
|
+
readonly type: "date";
|
|
54
|
+
}, {
|
|
55
|
+
readonly name: "datetime";
|
|
56
|
+
readonly type: "datetime";
|
|
57
|
+
}, {
|
|
58
|
+
readonly name: "time";
|
|
59
|
+
readonly type: "time";
|
|
60
|
+
}, {
|
|
61
|
+
readonly name: "text";
|
|
62
|
+
readonly type: "text";
|
|
63
|
+
}, {
|
|
64
|
+
readonly name: "localizedText";
|
|
65
|
+
readonly type: "text";
|
|
66
|
+
readonly localized: true;
|
|
67
|
+
}, {
|
|
68
|
+
readonly name: "textArea";
|
|
69
|
+
readonly type: "textArea";
|
|
70
|
+
}, {
|
|
71
|
+
readonly name: "boolean";
|
|
72
|
+
readonly type: "boolean";
|
|
73
|
+
}, {
|
|
74
|
+
readonly name: "checkbox";
|
|
75
|
+
readonly type: "checkbox";
|
|
76
|
+
}, {
|
|
77
|
+
readonly name: "select";
|
|
78
|
+
readonly type: "select";
|
|
79
|
+
readonly options: [{
|
|
80
|
+
readonly label: "First";
|
|
81
|
+
readonly value: "first";
|
|
82
|
+
}, {
|
|
83
|
+
readonly label: "Second";
|
|
84
|
+
readonly value: "second's";
|
|
85
|
+
}];
|
|
86
|
+
}, {
|
|
87
|
+
readonly name: "json";
|
|
88
|
+
readonly type: "json";
|
|
89
|
+
}, {
|
|
90
|
+
readonly name: "localizedJson";
|
|
91
|
+
readonly type: "json";
|
|
92
|
+
readonly localized: true;
|
|
93
|
+
}, {
|
|
94
|
+
readonly name: "object";
|
|
95
|
+
readonly type: "object";
|
|
96
|
+
}, {
|
|
97
|
+
readonly name: "richText";
|
|
98
|
+
readonly type: "richText";
|
|
99
|
+
}, {
|
|
100
|
+
readonly name: "file";
|
|
101
|
+
readonly type: "file";
|
|
102
|
+
}, {
|
|
103
|
+
readonly name: "image";
|
|
104
|
+
readonly type: "image";
|
|
105
|
+
}, {
|
|
106
|
+
readonly name: "relation";
|
|
107
|
+
readonly type: "relation";
|
|
108
|
+
readonly targetCollection: "people";
|
|
109
|
+
}, {
|
|
110
|
+
readonly name: "relations";
|
|
111
|
+
readonly type: "relation";
|
|
112
|
+
readonly targetCollection: "people";
|
|
113
|
+
readonly hasMany: true;
|
|
114
|
+
}, {
|
|
115
|
+
readonly name: "optionalText";
|
|
116
|
+
readonly type: "text";
|
|
117
|
+
readonly optional: true;
|
|
118
|
+
}, {
|
|
119
|
+
readonly name: "group";
|
|
120
|
+
readonly type: "group";
|
|
121
|
+
readonly fields: readonly [{
|
|
122
|
+
readonly name: "title";
|
|
123
|
+
readonly type: "text";
|
|
124
|
+
readonly localized: true;
|
|
125
|
+
}, {
|
|
126
|
+
readonly name: "enabled";
|
|
127
|
+
readonly type: "boolean";
|
|
128
|
+
readonly optional: true;
|
|
129
|
+
}];
|
|
130
|
+
}, {
|
|
131
|
+
readonly name: "array";
|
|
132
|
+
readonly type: "array";
|
|
133
|
+
readonly fields: readonly [{
|
|
134
|
+
readonly name: "label";
|
|
135
|
+
readonly type: "text";
|
|
136
|
+
readonly localized: true;
|
|
137
|
+
}, {
|
|
138
|
+
readonly name: "score";
|
|
139
|
+
readonly type: "integer";
|
|
140
|
+
readonly optional: true;
|
|
141
|
+
}];
|
|
142
|
+
}, {
|
|
143
|
+
readonly name: "content's";
|
|
144
|
+
readonly type: "blocks";
|
|
145
|
+
readonly blocks: [{
|
|
146
|
+
readonly blockType: "quote'block";
|
|
147
|
+
readonly fields: readonly [{
|
|
148
|
+
readonly name: "quotation";
|
|
149
|
+
readonly type: "textArea";
|
|
150
|
+
readonly localized: true;
|
|
151
|
+
}, {
|
|
152
|
+
readonly name: "tone'choice";
|
|
153
|
+
readonly type: "select";
|
|
154
|
+
readonly optional: true;
|
|
155
|
+
readonly options: [{
|
|
156
|
+
readonly label: "Calm";
|
|
157
|
+
readonly value: "calm";
|
|
158
|
+
}, {
|
|
159
|
+
readonly label: "Quoted";
|
|
160
|
+
readonly value: "author's";
|
|
161
|
+
}];
|
|
162
|
+
}];
|
|
163
|
+
}, {
|
|
164
|
+
readonly blockType: "media";
|
|
165
|
+
readonly fields: readonly [{
|
|
166
|
+
readonly name: "caption";
|
|
167
|
+
readonly type: "text";
|
|
168
|
+
readonly localized: true;
|
|
169
|
+
readonly optional: true;
|
|
170
|
+
}, {
|
|
171
|
+
readonly name: "image";
|
|
172
|
+
readonly type: "image";
|
|
173
|
+
}];
|
|
174
|
+
}];
|
|
175
|
+
}];
|
|
176
|
+
};
|
|
177
|
+
export declare const MinimalCollection: {
|
|
178
|
+
readonly path: "minimal";
|
|
179
|
+
readonly labels: {
|
|
180
|
+
readonly singular: "Minimal";
|
|
181
|
+
readonly plural: "Minimal";
|
|
182
|
+
};
|
|
183
|
+
readonly fields: [{
|
|
184
|
+
readonly name: "title";
|
|
185
|
+
readonly type: "text";
|
|
186
|
+
}];
|
|
187
|
+
};
|
|
188
|
+
export declare const AllFieldsCollections: readonly [{
|
|
189
|
+
readonly path: "all-fields";
|
|
190
|
+
readonly labels: {
|
|
191
|
+
readonly singular: "All fields";
|
|
192
|
+
readonly plural: "All fields";
|
|
193
|
+
};
|
|
194
|
+
readonly fields: [{
|
|
195
|
+
readonly name: "integer";
|
|
196
|
+
readonly type: "integer";
|
|
197
|
+
}, {
|
|
198
|
+
readonly name: "float";
|
|
199
|
+
readonly type: "float";
|
|
200
|
+
}, {
|
|
201
|
+
readonly name: "counter";
|
|
202
|
+
readonly type: "counter";
|
|
203
|
+
readonly group: "fixture";
|
|
204
|
+
}, {
|
|
205
|
+
readonly name: "decimal";
|
|
206
|
+
readonly type: "decimal";
|
|
207
|
+
}, {
|
|
208
|
+
readonly name: "date";
|
|
209
|
+
readonly type: "date";
|
|
210
|
+
}, {
|
|
211
|
+
readonly name: "datetime";
|
|
212
|
+
readonly type: "datetime";
|
|
213
|
+
}, {
|
|
214
|
+
readonly name: "time";
|
|
215
|
+
readonly type: "time";
|
|
216
|
+
}, {
|
|
217
|
+
readonly name: "text";
|
|
218
|
+
readonly type: "text";
|
|
219
|
+
}, {
|
|
220
|
+
readonly name: "localizedText";
|
|
221
|
+
readonly type: "text";
|
|
222
|
+
readonly localized: true;
|
|
223
|
+
}, {
|
|
224
|
+
readonly name: "textArea";
|
|
225
|
+
readonly type: "textArea";
|
|
226
|
+
}, {
|
|
227
|
+
readonly name: "boolean";
|
|
228
|
+
readonly type: "boolean";
|
|
229
|
+
}, {
|
|
230
|
+
readonly name: "checkbox";
|
|
231
|
+
readonly type: "checkbox";
|
|
232
|
+
}, {
|
|
233
|
+
readonly name: "select";
|
|
234
|
+
readonly type: "select";
|
|
235
|
+
readonly options: [{
|
|
236
|
+
readonly label: "First";
|
|
237
|
+
readonly value: "first";
|
|
238
|
+
}, {
|
|
239
|
+
readonly label: "Second";
|
|
240
|
+
readonly value: "second's";
|
|
241
|
+
}];
|
|
242
|
+
}, {
|
|
243
|
+
readonly name: "json";
|
|
244
|
+
readonly type: "json";
|
|
245
|
+
}, {
|
|
246
|
+
readonly name: "localizedJson";
|
|
247
|
+
readonly type: "json";
|
|
248
|
+
readonly localized: true;
|
|
249
|
+
}, {
|
|
250
|
+
readonly name: "object";
|
|
251
|
+
readonly type: "object";
|
|
252
|
+
}, {
|
|
253
|
+
readonly name: "richText";
|
|
254
|
+
readonly type: "richText";
|
|
255
|
+
}, {
|
|
256
|
+
readonly name: "file";
|
|
257
|
+
readonly type: "file";
|
|
258
|
+
}, {
|
|
259
|
+
readonly name: "image";
|
|
260
|
+
readonly type: "image";
|
|
261
|
+
}, {
|
|
262
|
+
readonly name: "relation";
|
|
263
|
+
readonly type: "relation";
|
|
264
|
+
readonly targetCollection: "people";
|
|
265
|
+
}, {
|
|
266
|
+
readonly name: "relations";
|
|
267
|
+
readonly type: "relation";
|
|
268
|
+
readonly targetCollection: "people";
|
|
269
|
+
readonly hasMany: true;
|
|
270
|
+
}, {
|
|
271
|
+
readonly name: "optionalText";
|
|
272
|
+
readonly type: "text";
|
|
273
|
+
readonly optional: true;
|
|
274
|
+
}, {
|
|
275
|
+
readonly name: "group";
|
|
276
|
+
readonly type: "group";
|
|
277
|
+
readonly fields: readonly [{
|
|
278
|
+
readonly name: "title";
|
|
279
|
+
readonly type: "text";
|
|
280
|
+
readonly localized: true;
|
|
281
|
+
}, {
|
|
282
|
+
readonly name: "enabled";
|
|
283
|
+
readonly type: "boolean";
|
|
284
|
+
readonly optional: true;
|
|
285
|
+
}];
|
|
286
|
+
}, {
|
|
287
|
+
readonly name: "array";
|
|
288
|
+
readonly type: "array";
|
|
289
|
+
readonly fields: readonly [{
|
|
290
|
+
readonly name: "label";
|
|
291
|
+
readonly type: "text";
|
|
292
|
+
readonly localized: true;
|
|
293
|
+
}, {
|
|
294
|
+
readonly name: "score";
|
|
295
|
+
readonly type: "integer";
|
|
296
|
+
readonly optional: true;
|
|
297
|
+
}];
|
|
298
|
+
}, {
|
|
299
|
+
readonly name: "content's";
|
|
300
|
+
readonly type: "blocks";
|
|
301
|
+
readonly blocks: [{
|
|
302
|
+
readonly blockType: "quote'block";
|
|
303
|
+
readonly fields: readonly [{
|
|
304
|
+
readonly name: "quotation";
|
|
305
|
+
readonly type: "textArea";
|
|
306
|
+
readonly localized: true;
|
|
307
|
+
}, {
|
|
308
|
+
readonly name: "tone'choice";
|
|
309
|
+
readonly type: "select";
|
|
310
|
+
readonly optional: true;
|
|
311
|
+
readonly options: [{
|
|
312
|
+
readonly label: "Calm";
|
|
313
|
+
readonly value: "calm";
|
|
314
|
+
}, {
|
|
315
|
+
readonly label: "Quoted";
|
|
316
|
+
readonly value: "author's";
|
|
317
|
+
}];
|
|
318
|
+
}];
|
|
319
|
+
}, {
|
|
320
|
+
readonly blockType: "media";
|
|
321
|
+
readonly fields: readonly [{
|
|
322
|
+
readonly name: "caption";
|
|
323
|
+
readonly type: "text";
|
|
324
|
+
readonly localized: true;
|
|
325
|
+
readonly optional: true;
|
|
326
|
+
}, {
|
|
327
|
+
readonly name: "image";
|
|
328
|
+
readonly type: "image";
|
|
329
|
+
}];
|
|
330
|
+
}];
|
|
331
|
+
}];
|
|
332
|
+
}, {
|
|
333
|
+
readonly path: "minimal";
|
|
334
|
+
readonly labels: {
|
|
335
|
+
readonly singular: "Minimal";
|
|
336
|
+
readonly plural: "Minimal";
|
|
337
|
+
};
|
|
338
|
+
readonly fields: [{
|
|
339
|
+
readonly name: "title";
|
|
340
|
+
readonly type: "text";
|
|
341
|
+
}];
|
|
342
|
+
}];
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { JsonObject, JsonValue, RelatedDocumentValue, StoredFileValue } from '@byline/core';
|
|
2
|
+
export type MediaBlockData = {
|
|
3
|
+
_id: string;
|
|
4
|
+
_type: 'media';
|
|
5
|
+
caption?: string | undefined;
|
|
6
|
+
image: StoredFileValue;
|
|
7
|
+
};
|
|
8
|
+
export type MediaBlockDataAllLocales = {
|
|
9
|
+
_id: string;
|
|
10
|
+
_type: 'media';
|
|
11
|
+
caption?: {
|
|
12
|
+
[locale: string]: string;
|
|
13
|
+
} | undefined;
|
|
14
|
+
image: StoredFileValue;
|
|
15
|
+
};
|
|
16
|
+
export type QuoteBlockData = {
|
|
17
|
+
_id: string;
|
|
18
|
+
_type: "quote'block";
|
|
19
|
+
quotation: string;
|
|
20
|
+
"tone'choice"?: 'calm' | "author's" | undefined;
|
|
21
|
+
};
|
|
22
|
+
export type QuoteBlockDataAllLocales = {
|
|
23
|
+
_id: string;
|
|
24
|
+
_type: "quote'block";
|
|
25
|
+
quotation: {
|
|
26
|
+
[locale: string]: string;
|
|
27
|
+
};
|
|
28
|
+
"tone'choice"?: 'calm' | "author's" | undefined;
|
|
29
|
+
};
|
|
30
|
+
export type AllFieldsFields = {
|
|
31
|
+
integer: number;
|
|
32
|
+
float: number;
|
|
33
|
+
counter: number;
|
|
34
|
+
decimal: string;
|
|
35
|
+
date: Date;
|
|
36
|
+
datetime: Date;
|
|
37
|
+
time: string;
|
|
38
|
+
text: string;
|
|
39
|
+
localizedText: string;
|
|
40
|
+
textArea: string;
|
|
41
|
+
boolean: boolean;
|
|
42
|
+
checkbox: boolean;
|
|
43
|
+
select: 'first' | "second's";
|
|
44
|
+
json: JsonValue;
|
|
45
|
+
localizedJson: JsonValue;
|
|
46
|
+
object: JsonObject;
|
|
47
|
+
richText: JsonValue;
|
|
48
|
+
file: StoredFileValue;
|
|
49
|
+
image: StoredFileValue;
|
|
50
|
+
relation: RelatedDocumentValue;
|
|
51
|
+
relations: RelatedDocumentValue[];
|
|
52
|
+
optionalText?: string | undefined;
|
|
53
|
+
group: {
|
|
54
|
+
title: string;
|
|
55
|
+
enabled?: boolean | undefined;
|
|
56
|
+
};
|
|
57
|
+
array: Array<{
|
|
58
|
+
_id: string;
|
|
59
|
+
label: string;
|
|
60
|
+
score?: number | undefined;
|
|
61
|
+
}>;
|
|
62
|
+
"content's": Array<QuoteBlockData | MediaBlockData>;
|
|
63
|
+
};
|
|
64
|
+
export type AllFieldsFieldsAllLocales = {
|
|
65
|
+
integer: number;
|
|
66
|
+
float: number;
|
|
67
|
+
counter: number;
|
|
68
|
+
decimal: string;
|
|
69
|
+
date: Date;
|
|
70
|
+
datetime: Date;
|
|
71
|
+
time: string;
|
|
72
|
+
text: string;
|
|
73
|
+
localizedText: {
|
|
74
|
+
[locale: string]: string;
|
|
75
|
+
};
|
|
76
|
+
textArea: string;
|
|
77
|
+
boolean: boolean;
|
|
78
|
+
checkbox: boolean;
|
|
79
|
+
select: 'first' | "second's";
|
|
80
|
+
json: JsonValue;
|
|
81
|
+
localizedJson: {
|
|
82
|
+
[locale: string]: JsonValue;
|
|
83
|
+
};
|
|
84
|
+
object: JsonObject;
|
|
85
|
+
richText: JsonValue;
|
|
86
|
+
file: StoredFileValue;
|
|
87
|
+
image: StoredFileValue;
|
|
88
|
+
relation: RelatedDocumentValue;
|
|
89
|
+
relations: RelatedDocumentValue[];
|
|
90
|
+
optionalText?: string | undefined;
|
|
91
|
+
group: {
|
|
92
|
+
title: {
|
|
93
|
+
[locale: string]: string;
|
|
94
|
+
};
|
|
95
|
+
enabled?: boolean | undefined;
|
|
96
|
+
};
|
|
97
|
+
array: Array<{
|
|
98
|
+
_id: string;
|
|
99
|
+
label: {
|
|
100
|
+
[locale: string]: string;
|
|
101
|
+
};
|
|
102
|
+
score?: number | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
"content's": Array<QuoteBlockDataAllLocales | MediaBlockDataAllLocales>;
|
|
105
|
+
};
|
|
106
|
+
export type MinimalFields = {
|
|
107
|
+
title: string;
|
|
108
|
+
};
|
|
109
|
+
export type MinimalFieldsAllLocales = {
|
|
110
|
+
title: string;
|
|
111
|
+
};
|
|
112
|
+
export type CollectionFieldsByPath = {
|
|
113
|
+
'all-fields': AllFieldsFields;
|
|
114
|
+
minimal: MinimalFields;
|
|
115
|
+
};
|
|
116
|
+
export type CollectionFieldsAllLocalesByPath = {
|
|
117
|
+
'all-fields': AllFieldsFieldsAllLocales;
|
|
118
|
+
minimal: MinimalFieldsAllLocales;
|
|
119
|
+
};
|
|
120
|
+
export type CollectionPath = keyof CollectionFieldsByPath;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { defineBlock, defineCollection } from '../../@types/collection-types.js';
|
|
2
|
+
export const QuoteBlock = defineBlock({
|
|
3
|
+
blockType: "quote'block",
|
|
4
|
+
fields: [
|
|
5
|
+
{ name: 'quotation', type: 'textArea', localized: true },
|
|
6
|
+
{
|
|
7
|
+
name: "tone'choice",
|
|
8
|
+
type: 'select',
|
|
9
|
+
optional: true,
|
|
10
|
+
options: [
|
|
11
|
+
{ label: 'Calm', value: 'calm' },
|
|
12
|
+
{ label: 'Quoted', value: "author's" },
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
});
|
|
17
|
+
export const MediaBlock = defineBlock({
|
|
18
|
+
blockType: 'media',
|
|
19
|
+
fields: [
|
|
20
|
+
{ name: 'caption', type: 'text', localized: true, optional: true },
|
|
21
|
+
{ name: 'image', type: 'image' },
|
|
22
|
+
],
|
|
23
|
+
});
|
|
24
|
+
export const AllFieldsCollection = defineCollection({
|
|
25
|
+
path: 'all-fields',
|
|
26
|
+
labels: { singular: 'All fields', plural: 'All fields' },
|
|
27
|
+
fields: [
|
|
28
|
+
{ name: 'integer', type: 'integer' },
|
|
29
|
+
{ name: 'float', type: 'float' },
|
|
30
|
+
{ name: 'counter', type: 'counter', group: 'fixture' },
|
|
31
|
+
{ name: 'decimal', type: 'decimal' },
|
|
32
|
+
{ name: 'date', type: 'date' },
|
|
33
|
+
{ name: 'datetime', type: 'datetime' },
|
|
34
|
+
{ name: 'time', type: 'time' },
|
|
35
|
+
{ name: 'text', type: 'text' },
|
|
36
|
+
{ name: 'localizedText', type: 'text', localized: true },
|
|
37
|
+
{ name: 'textArea', type: 'textArea' },
|
|
38
|
+
{ name: 'boolean', type: 'boolean' },
|
|
39
|
+
{ name: 'checkbox', type: 'checkbox' },
|
|
40
|
+
{
|
|
41
|
+
name: 'select',
|
|
42
|
+
type: 'select',
|
|
43
|
+
options: [
|
|
44
|
+
{ label: 'First', value: 'first' },
|
|
45
|
+
{ label: 'Second', value: "second's" },
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
{ name: 'json', type: 'json' },
|
|
49
|
+
{ name: 'localizedJson', type: 'json', localized: true },
|
|
50
|
+
{ name: 'object', type: 'object' },
|
|
51
|
+
{ name: 'richText', type: 'richText' },
|
|
52
|
+
{ name: 'file', type: 'file' },
|
|
53
|
+
{ name: 'image', type: 'image' },
|
|
54
|
+
{ name: 'relation', type: 'relation', targetCollection: 'people' },
|
|
55
|
+
{
|
|
56
|
+
name: 'relations',
|
|
57
|
+
type: 'relation',
|
|
58
|
+
targetCollection: 'people',
|
|
59
|
+
hasMany: true,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'optionalText',
|
|
63
|
+
type: 'text',
|
|
64
|
+
optional: true,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'group',
|
|
68
|
+
type: 'group',
|
|
69
|
+
fields: [
|
|
70
|
+
{ name: 'title', type: 'text', localized: true },
|
|
71
|
+
{ name: 'enabled', type: 'boolean', optional: true },
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'array',
|
|
76
|
+
type: 'array',
|
|
77
|
+
fields: [
|
|
78
|
+
{ name: 'label', type: 'text', localized: true },
|
|
79
|
+
{ name: 'score', type: 'integer', optional: true },
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "content's",
|
|
84
|
+
type: 'blocks',
|
|
85
|
+
blocks: [QuoteBlock, MediaBlock],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
export const MinimalCollection = defineCollection({
|
|
90
|
+
path: 'minimal',
|
|
91
|
+
labels: { singular: 'Minimal', plural: 'Minimal' },
|
|
92
|
+
fields: [{ name: 'title', type: 'text' }],
|
|
93
|
+
});
|
|
94
|
+
export const AllFieldsCollections = [AllFieldsCollection, MinimalCollection];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import type { CollectionDefinition } from '../@types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Emit deterministic application collection types from evaluated runtime definitions.
|
|
11
|
+
* The returned hash is SHA-256 over the versioned format domain and generated module body.
|
|
12
|
+
*/
|
|
13
|
+
export declare function emitCollectionTypes(collections: readonly CollectionDefinition[]): {
|
|
14
|
+
source: string;
|
|
15
|
+
hash: string;
|
|
16
|
+
};
|