@prismicio/mock 0.0.6 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +242 -122
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +3 -2
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +669 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +581 -571
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +155 -247
  11. package/dist/{index.mjs → index.js} +574 -561
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +294 -257
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +72 -106
  16. package/dist/model/index.d.ts.map +1 -0
  17. package/dist/model/index.js +556 -0
  18. package/dist/model/index.js.map +1 -0
  19. package/dist/value/index.cjs +500 -647
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +71 -129
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/index.js +1461 -0
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +30 -27
  26. package/src/api/query.ts +2 -2
  27. package/src/api/ref.ts +3 -3
  28. package/src/api/repository.ts +5 -5
  29. package/src/lib/buildContentRelationshipField.ts +6 -1
  30. package/src/lib/buildEmbedField.ts +16 -27
  31. package/src/lib/buildImageFieldImage.ts +49 -0
  32. package/src/lib/createFaker.ts +98 -20
  33. package/src/lib/generateCustomTypeId.ts +1 -1
  34. package/src/lib/generateFieldId.ts +1 -3
  35. package/src/lib/generateTags.ts +4 -12
  36. package/src/lib/getMockEmbedData.ts +33 -12
  37. package/src/lib/getMockImageData.ts +1 -1
  38. package/src/lib/lorem.ts +112 -0
  39. package/src/model/boolean.ts +1 -1
  40. package/src/model/buildMockGroupFieldMap.ts +65 -0
  41. package/src/model/color.ts +2 -2
  42. package/src/model/contentRelationship.ts +16 -23
  43. package/src/model/customType.ts +49 -48
  44. package/src/model/date.ts +2 -2
  45. package/src/model/embed.ts +2 -2
  46. package/src/model/geoPoint.ts +1 -1
  47. package/src/model/group.ts +9 -16
  48. package/src/model/image.ts +16 -20
  49. package/src/model/index.ts +2 -0
  50. package/src/model/integrationFields.ts +5 -3
  51. package/src/model/keyText.ts +2 -2
  52. package/src/model/link.ts +3 -3
  53. package/src/model/linkToMedia.ts +2 -2
  54. package/src/model/number.ts +2 -2
  55. package/src/model/richText.ts +6 -6
  56. package/src/model/select.ts +13 -18
  57. package/src/model/sharedSlice.ts +15 -42
  58. package/src/model/sharedSliceVariation.ts +36 -24
  59. package/src/model/slice.ts +19 -23
  60. package/src/model/sliceZone.ts +23 -59
  61. package/src/model/timestamp.ts +2 -2
  62. package/src/model/title.ts +5 -5
  63. package/src/model/uid.ts +2 -2
  64. package/src/types.ts +130 -88
  65. package/src/value/boolean.ts +1 -1
  66. package/src/value/color.ts +16 -6
  67. package/src/value/contentRelationship.ts +54 -39
  68. package/src/value/customType.ts +5 -5
  69. package/src/value/date.ts +25 -9
  70. package/src/value/embed.ts +32 -7
  71. package/src/value/geoPoint.ts +21 -11
  72. package/src/value/group.ts +31 -45
  73. package/src/value/image.ts +22 -9
  74. package/src/value/integrationFields.ts +26 -14
  75. package/src/value/keyText.ts +16 -6
  76. package/src/value/link.ts +36 -37
  77. package/src/value/linkToMedia.ts +19 -23
  78. package/src/value/number.ts +16 -6
  79. package/src/value/richText/embed.ts +2 -2
  80. package/src/value/richText/heading.ts +10 -17
  81. package/src/value/richText/image.ts +8 -6
  82. package/src/value/richText/index.ts +4 -9
  83. package/src/value/richText/list.ts +4 -8
  84. package/src/value/richText/oList.ts +4 -8
  85. package/src/value/richText/paragraph.ts +8 -4
  86. package/src/value/richText/preformatted.ts +9 -5
  87. package/src/value/select.ts +23 -8
  88. package/src/value/sharedSlice.ts +3 -3
  89. package/src/value/sharedSliceVariation.ts +4 -36
  90. package/src/value/slice.ts +3 -32
  91. package/src/value/sliceZone.ts +54 -69
  92. package/src/value/timestamp.ts +42 -16
  93. package/src/value/title.ts +26 -13
  94. package/src/value/uid.ts +2 -2
  95. package/dist/api/index.mjs +0 -515
  96. package/dist/model/index.mjs +0 -465
  97. package/dist/value/index.mjs +0 -1554
  98. package/src/lib/buildImageField.ts +0 -34
  99. package/src/lib/buildMockGroupFieldMap.ts +0 -84
@@ -1,1554 +0,0 @@
1
- import * as fakerLocaleEN from 'faker/lib/locales/en/index.js';
2
- import Faker from 'faker/lib/index.js';
3
- import * as prismicT from '@prismicio/types';
4
- import * as changeCase from 'change-case';
5
-
6
- const FAKER_SEED = 1984;
7
-
8
- const createFaker = (seed = FAKER_SEED) => {
9
- let normalizedSeed;
10
- if (typeof seed === "string") {
11
- normalizedSeed = seed.split("").map((char) => char.charCodeAt(0));
12
- } else {
13
- normalizedSeed = seed;
14
- }
15
- const cacheKey = JSON.stringify(normalizedSeed);
16
- if (createFaker.cache[cacheKey]) {
17
- return createFaker.cache[cacheKey];
18
- }
19
- const fakerInstance = new Faker();
20
- fakerInstance.locales["en"] = fakerLocaleEN;
21
- fakerInstance.seed(normalizedSeed);
22
- createFaker.cache[cacheKey] = fakerInstance;
23
- return fakerInstance;
24
- };
25
- createFaker.cache = {};
26
-
27
- const boolean$1 = (config = {}) => {
28
- const faker = createFaker(config.seed);
29
- return faker.datatype.boolean();
30
- };
31
-
32
- const generateTags = (config) => {
33
- var _a, _b;
34
- const faker = createFaker(config.seed);
35
- return Array(faker.datatype.number({
36
- min: (_a = config.min) != null ? _a : 0,
37
- max: (_b = config.max) != null ? _b : 2
38
- })).fill(void 0).map(() => changeCase.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 }))));
39
- };
40
-
41
- const valueForModel = (config) => {
42
- const model = config.model;
43
- switch (model.type) {
44
- case prismicT.CustomTypeModelFieldType.Boolean: {
45
- return boolean$1({
46
- seed: config.seed,
47
- model,
48
- ...config.config
49
- });
50
- }
51
- case prismicT.CustomTypeModelFieldType.Color: {
52
- return color({
53
- seed: config.seed,
54
- model,
55
- ...config.config
56
- });
57
- }
58
- case prismicT.CustomTypeModelFieldType.Link: {
59
- switch (model.config.select) {
60
- case prismicT.CustomTypeModelLinkSelectType.Document: {
61
- return contentRelationship({
62
- seed: config.seed,
63
- model,
64
- ...config.config
65
- });
66
- }
67
- case prismicT.CustomTypeModelLinkSelectType.Media: {
68
- return linkToMedia({
69
- seed: config.seed,
70
- model,
71
- ...config.config
72
- });
73
- }
74
- default: {
75
- return link({
76
- seed: config.seed,
77
- model,
78
- ...config.config
79
- });
80
- }
81
- }
82
- }
83
- case prismicT.CustomTypeModelFieldType.Date: {
84
- return date({
85
- seed: config.seed,
86
- model,
87
- ...config.config
88
- });
89
- }
90
- case prismicT.CustomTypeModelFieldType.Embed: {
91
- return embed$1({
92
- seed: config.seed,
93
- model,
94
- ...config.config
95
- });
96
- }
97
- case prismicT.CustomTypeModelFieldType.GeoPoint: {
98
- return geoPoint({
99
- seed: config.seed,
100
- model,
101
- ...config.config
102
- });
103
- }
104
- case prismicT.CustomTypeModelFieldType.Image: {
105
- return image$1({
106
- seed: config.seed,
107
- model,
108
- ...config.config
109
- });
110
- }
111
- case prismicT.CustomTypeModelFieldType.Text: {
112
- return keyText({
113
- seed: config.seed,
114
- model,
115
- ...config.config
116
- });
117
- }
118
- case prismicT.CustomTypeModelFieldType.Number: {
119
- return number({
120
- seed: config.seed,
121
- model,
122
- ...config.config
123
- });
124
- }
125
- case prismicT.CustomTypeModelFieldType.Select: {
126
- return select({
127
- seed: config.seed,
128
- model,
129
- ...config.config
130
- });
131
- }
132
- case prismicT.CustomTypeModelFieldType.Timestamp: {
133
- return timestamp({
134
- seed: config.seed,
135
- model,
136
- ...config.config
137
- });
138
- }
139
- case prismicT.CustomTypeModelFieldType.StructuredText: {
140
- if ("single" in model.config && model.config.single.split(",").every((element) => /heading[1-6]/.test(element.trim()))) {
141
- return title({
142
- seed: config.seed,
143
- model,
144
- ...config.config
145
- });
146
- } else {
147
- return richText({
148
- seed: config.seed,
149
- model,
150
- ...config.config
151
- });
152
- }
153
- }
154
- case prismicT.CustomTypeModelFieldType.IntegrationFields: {
155
- return integrationFields({
156
- seed: config.seed,
157
- model,
158
- ...config.config
159
- });
160
- }
161
- case prismicT.CustomTypeModelFieldType.UID: {
162
- return uid({
163
- seed: config.seed,
164
- model,
165
- ...config.config
166
- });
167
- }
168
- case prismicT.CustomTypeModelFieldType.Group: {
169
- return group({
170
- seed: config.seed,
171
- model,
172
- ...config.config
173
- });
174
- }
175
- case prismicT.CustomTypeModelFieldType.Slices: {
176
- return sliceZone({
177
- seed: config.seed,
178
- model,
179
- ...config.config
180
- });
181
- }
182
- }
183
- };
184
-
185
- const getValueConfigType = (model) => {
186
- switch (model.type) {
187
- case prismicT.CustomTypeModelFieldType.Boolean:
188
- return "boolean";
189
- case prismicT.CustomTypeModelFieldType.Color:
190
- return "color";
191
- case prismicT.CustomTypeModelFieldType.Date:
192
- return "date";
193
- case prismicT.CustomTypeModelFieldType.Embed:
194
- return "embed";
195
- case prismicT.CustomTypeModelFieldType.GeoPoint:
196
- return "geoPoint";
197
- case prismicT.CustomTypeModelFieldType.Group:
198
- return "group";
199
- case prismicT.CustomTypeModelFieldType.Image:
200
- return "image";
201
- case prismicT.CustomTypeModelFieldType.Link: {
202
- switch (model.config.select) {
203
- case prismicT.CustomTypeModelLinkSelectType.Document:
204
- return "contentRelationship";
205
- case prismicT.CustomTypeModelLinkSelectType.Media:
206
- return "linkToMedia";
207
- default:
208
- return "link";
209
- }
210
- }
211
- case prismicT.CustomTypeModelFieldType.Number:
212
- return "number";
213
- case prismicT.CustomTypeModelFieldType.Select:
214
- return "select";
215
- case prismicT.CustomTypeModelFieldType.StructuredText: {
216
- if ("single" in model.config && model.config.single.split(",").every((element) => /heading{1,6}/.test(element.trim()))) {
217
- return "title";
218
- } else {
219
- return "richText";
220
- }
221
- }
222
- case prismicT.CustomTypeModelFieldType.Text:
223
- return "keyText";
224
- case prismicT.CustomTypeModelFieldType.Timestamp:
225
- return "timestamp";
226
- case prismicT.CustomTypeModelFieldType.UID:
227
- return "uid";
228
- case prismicT.CustomTypeModelFieldType.IntegrationFields:
229
- return "integrationFields";
230
- case prismicT.CustomTypeModelFieldType.Slices:
231
- return "sliceZone";
232
- }
233
- };
234
- const valueForModelMap = (config) => {
235
- var _a;
236
- const result = {};
237
- for (const fieldId in config.map) {
238
- const fieldModel = config.map[fieldId];
239
- const fieldConfigType = getValueConfigType(fieldModel);
240
- const fieldConfig = (_a = config.configs) == null ? void 0 : _a[fieldConfigType];
241
- result[fieldId] = valueForModel({
242
- seed: config.seed,
243
- model: fieldModel,
244
- config: fieldConfig
245
- });
246
- }
247
- return result;
248
- };
249
-
250
- const boolean = (config = {}) => {
251
- const faker = createFaker(config.seed);
252
- return {
253
- type: prismicT.CustomTypeModelFieldType.Boolean,
254
- config: {
255
- label: changeCase.capitalCase(faker.company.bsNoun())
256
- }
257
- };
258
- };
259
-
260
- const color$1 = (config = {}) => {
261
- const faker = createFaker(config.seed);
262
- return {
263
- type: prismicT.CustomTypeModelFieldType.Color,
264
- config: {
265
- label: changeCase.capitalCase(faker.company.bsNoun()),
266
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
267
- }
268
- };
269
- };
270
-
271
- const generateCustomTypeId = (config) => {
272
- const faker = createFaker(config.seed);
273
- return changeCase.snakeCase(faker.company.bsNoun());
274
- };
275
-
276
- const contentRelationship$1 = (config = {}) => {
277
- const faker = createFaker(config.seed);
278
- return {
279
- type: prismicT.CustomTypeModelFieldType.Link,
280
- config: {
281
- label: changeCase.capitalCase(faker.company.bsNoun()),
282
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
283
- select: prismicT.CustomTypeModelLinkSelectType.Document,
284
- customtypes: config.constrainCustomTypes ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => generateCustomTypeId({ seed: config.seed })) : void 0,
285
- tags: config.constrainTags ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => changeCase.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })))) : void 0
286
- }
287
- };
288
- };
289
-
290
- const date$1 = (config = {}) => {
291
- const faker = createFaker(config.seed);
292
- return {
293
- type: prismicT.CustomTypeModelFieldType.Date,
294
- config: {
295
- label: changeCase.capitalCase(faker.company.bsNoun()),
296
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
297
- }
298
- };
299
- };
300
-
301
- const embed$2 = (config = {}) => {
302
- const faker = createFaker(config.seed);
303
- return {
304
- type: prismicT.CustomTypeModelFieldType.Embed,
305
- config: {
306
- label: changeCase.capitalCase(faker.company.bsNoun()),
307
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
308
- }
309
- };
310
- };
311
-
312
- const geoPoint$1 = (config = {}) => {
313
- const faker = createFaker(config.seed);
314
- return {
315
- type: prismicT.CustomTypeModelFieldType.GeoPoint,
316
- config: {
317
- label: changeCase.capitalCase(faker.company.bsNoun())
318
- }
319
- };
320
- };
321
-
322
- const image$2 = (config = {}) => {
323
- var _a;
324
- const faker = createFaker(config.seed);
325
- const thumbnailsCount = (_a = config.thumbnailsCount) != null ? _a : faker.datatype.number(3);
326
- return {
327
- type: prismicT.CustomTypeModelFieldType.Image,
328
- config: {
329
- label: changeCase.capitalCase(faker.company.bsNoun()),
330
- constraint: {
331
- width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
332
- height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
333
- },
334
- thumbnails: Array(thumbnailsCount).fill(void 0).map(() => ({
335
- name: changeCase.pascalCase(faker.company.bsNoun()),
336
- width: faker.datatype.number({ min: 500, max: 2e3 }),
337
- height: faker.datatype.number({ min: 500, max: 2e3 })
338
- }))
339
- }
340
- };
341
- };
342
-
343
- const integrationFields$1 = (config = {}) => {
344
- const faker = createFaker(config.seed);
345
- return {
346
- type: prismicT.CustomTypeModelFieldType.IntegrationFields,
347
- config: {
348
- label: changeCase.capitalCase(faker.company.bsNoun()),
349
- catalog: changeCase.snakeCase(faker.lorem.words(4))
350
- }
351
- };
352
- };
353
-
354
- const keyText$1 = (config = {}) => {
355
- const faker = createFaker(config.seed);
356
- return {
357
- type: prismicT.CustomTypeModelFieldType.Text,
358
- config: {
359
- label: changeCase.capitalCase(faker.company.bsNoun()),
360
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
361
- }
362
- };
363
- };
364
-
365
- const link$1 = (config = {}) => {
366
- const faker = createFaker(config.seed);
367
- return {
368
- type: prismicT.CustomTypeModelFieldType.Link,
369
- config: {
370
- label: changeCase.capitalCase(faker.company.bsNoun()),
371
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
372
- select: null,
373
- allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.datatype.boolean()) || void 0
374
- }
375
- };
376
- };
377
-
378
- const linkToMedia$1 = (config = {}) => {
379
- const faker = createFaker(config.seed);
380
- return {
381
- type: prismicT.CustomTypeModelFieldType.Link,
382
- config: {
383
- label: changeCase.capitalCase(faker.company.bsNoun()),
384
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
385
- select: prismicT.CustomTypeModelLinkSelectType.Media
386
- }
387
- };
388
- };
389
-
390
- const number$1 = (config = {}) => {
391
- const faker = createFaker(config.seed);
392
- return {
393
- type: prismicT.CustomTypeModelFieldType.Number,
394
- config: {
395
- label: changeCase.capitalCase(faker.company.bsNoun()),
396
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
397
- }
398
- };
399
- };
400
-
401
- const richText$1 = (config = {}) => {
402
- var _a;
403
- const faker = createFaker(config.seed);
404
- const blockTypes = faker.random.arrayElements([
405
- prismicT.RichTextNodeType.heading1,
406
- prismicT.RichTextNodeType.heading2,
407
- prismicT.RichTextNodeType.heading3,
408
- prismicT.RichTextNodeType.heading4,
409
- prismicT.RichTextNodeType.heading5,
410
- prismicT.RichTextNodeType.heading6,
411
- prismicT.RichTextNodeType.paragraph,
412
- prismicT.RichTextNodeType.preformatted,
413
- prismicT.RichTextNodeType.strong,
414
- prismicT.RichTextNodeType.em,
415
- prismicT.RichTextNodeType.listItem,
416
- prismicT.RichTextNodeType.oListItem,
417
- prismicT.RichTextNodeType.image,
418
- prismicT.RichTextNodeType.embed,
419
- prismicT.RichTextNodeType.hyperlink
420
- ]).join(",");
421
- const blockTypeConfig = ((_a = config.withMultipleBlocks) != null ? _a : faker.datatype.boolean()) ? { multi: blockTypes } : { single: blockTypes };
422
- return {
423
- type: prismicT.CustomTypeModelFieldType.StructuredText,
424
- config: {
425
- label: changeCase.capitalCase(faker.company.bsNoun()),
426
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
427
- allowTargetBlank: faker.datatype.boolean() ? true : void 0,
428
- ...blockTypeConfig
429
- }
430
- };
431
- };
432
-
433
- const select$1 = (config = {}) => {
434
- var _a;
435
- const faker = createFaker(config.seed);
436
- const optionsCount = (_a = config.optionsCount) != null ? _a : faker.datatype.number({ min: 1, max: 5 });
437
- const options = Array(optionsCount).fill(void 0).map(() => changeCase.capitalCase(faker.company.bsBuzz()));
438
- return {
439
- type: prismicT.CustomTypeModelFieldType.Select,
440
- config: {
441
- label: changeCase.capitalCase(faker.company.bsNoun()),
442
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
443
- options,
444
- default_value: config.withDefaultValue ? faker.random.arrayElement(options) : void 0
445
- }
446
- };
447
- };
448
-
449
- const timestamp$1 = (config = {}) => {
450
- const faker = createFaker(config.seed);
451
- return {
452
- type: prismicT.CustomTypeModelFieldType.Timestamp,
453
- config: {
454
- label: changeCase.capitalCase(faker.company.bsNoun()),
455
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
456
- }
457
- };
458
- };
459
-
460
- const title$1 = (config = {}) => {
461
- const faker = createFaker(config.seed);
462
- const single = faker.random.arrayElements([
463
- "heading1",
464
- "heading2",
465
- "heading3",
466
- "heading4",
467
- "heading5",
468
- "heading6"
469
- ]).join(",");
470
- return {
471
- type: prismicT.CustomTypeModelFieldType.StructuredText,
472
- config: {
473
- label: changeCase.capitalCase(faker.company.bsNoun()),
474
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
475
- single,
476
- allowTargetBlank: faker.datatype.boolean() ? true : void 0
477
- }
478
- };
479
- };
480
-
481
- const generateFieldId = (config) => {
482
- const faker = createFaker(config.seed);
483
- return changeCase.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
484
- };
485
-
486
- const mockModelFns = {
487
- boolean,
488
- color: color$1,
489
- contentRelationship: contentRelationship$1,
490
- date: date$1,
491
- embed: embed$2,
492
- geoPoint: geoPoint$1,
493
- image: image$2,
494
- integrationFields: integrationFields$1,
495
- keyText: keyText$1,
496
- link: link$1,
497
- linkToMedia: linkToMedia$1,
498
- number: number$1,
499
- richText: richText$1,
500
- select: select$1,
501
- timestamp: timestamp$1,
502
- title: title$1
503
- };
504
- const buildMockGroupFieldMap = (config = {}) => {
505
- var _a;
506
- const faker = createFaker(config.seed);
507
- const configs = config.configs || {};
508
- const fields = {};
509
- for (const mockModelType in mockModelFns) {
510
- const mockModelFn = mockModelFns[mockModelType];
511
- const mockModelMapConfig = configs[mockModelType] || {};
512
- const count = (_a = mockModelMapConfig.count) != null ? _a : faker.random.arrayElement([0, 0, 0, 1]);
513
- for (let i = 0; i < count; i++) {
514
- const fieldId = generateFieldId({ seed: config.seed });
515
- fields[fieldId] = mockModelFn({
516
- seed: config.seed,
517
- ...mockModelMapConfig.config
518
- });
519
- }
520
- }
521
- return fields;
522
- };
523
-
524
- const uid$1 = (config = {}) => {
525
- const faker = createFaker(config.seed);
526
- return {
527
- type: prismicT.CustomTypeModelFieldType.UID,
528
- config: {
529
- label: changeCase.capitalCase(faker.company.bsNoun()),
530
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
531
- }
532
- };
533
- };
534
-
535
- const sharedSliceChoice = () => {
536
- return {
537
- type: prismicT.CustomTypeModelSliceType.SharedSlice
538
- };
539
- };
540
-
541
- const slice$1 = (config = {}) => {
542
- var _a, _b, _c, _d, _e, _f;
543
- const faker = createFaker(config.seed);
544
- return {
545
- type: prismicT.CustomTypeModelSliceType.Slice,
546
- icon: changeCase.snakeCase(faker.company.bsNoun()),
547
- display: faker.datatype.boolean() ? prismicT.CustomTypeModelSliceDisplay.Grid : prismicT.CustomTypeModelSliceDisplay.List,
548
- fieldset: changeCase.capitalCase(faker.lorem.words()),
549
- description: faker.lorem.sentence(),
550
- repeat: buildMockGroupFieldMap({
551
- seed: (_b = (_a = config.repeatFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
552
- configs: (_c = config.repeatFieldConfig) == null ? void 0 : _c.configs
553
- }),
554
- "non-repeat": buildMockGroupFieldMap({
555
- seed: (_e = (_d = config.nonRepeatFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
556
- configs: (_f = config.nonRepeatFieldConfig) == null ? void 0 : _f.configs
557
- })
558
- };
559
- };
560
-
561
- const sliceZone$1 = (config = {}) => {
562
- var _a;
563
- const faker = createFaker(config.seed);
564
- let choices = {};
565
- if ("choices" in config) {
566
- choices = config.choices || {};
567
- } else {
568
- const choicesCount = (_a = config.choicesCount) != null ? _a : faker.datatype.number({ min: 2, max: 6 });
569
- for (let i = 0; i < choicesCount; i++) {
570
- const choiceId = generateFieldId({ seed: config.seed });
571
- choices[choiceId] = config.withSharedSlices ? sharedSliceChoice() : slice$1({ seed: config.seed });
572
- }
573
- }
574
- const labels = {};
575
- for (const choiceId in choices) {
576
- const choice = choices[choiceId];
577
- if (choice.type === prismicT.CustomTypeModelSliceType.Slice) {
578
- const labelsCount = faker.datatype.number({ min: 0, max: 3 });
579
- labels[choiceId] = Array(labelsCount).fill(void 0).map(() => ({
580
- name: changeCase.capitalCase(faker.company.bsNoun()),
581
- display: faker.datatype.boolean() ? prismicT.CustomTypeModelSliceDisplay.Grid : prismicT.CustomTypeModelSliceDisplay.List
582
- }));
583
- }
584
- }
585
- return {
586
- type: prismicT.CustomTypeModelFieldType.Slices,
587
- fieldset: "Slice zone",
588
- config: {
589
- labels,
590
- choices
591
- }
592
- };
593
- };
594
-
595
- const customType$1 = (config = {}) => {
596
- var _a;
597
- const faker = createFaker(config.seed);
598
- const tabsCount = (_a = config.tabsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
599
- const json = {};
600
- for (let i = 0; i < tabsCount; i++) {
601
- const tabName = changeCase.capitalCase(faker.lorem.word());
602
- const tabFields = buildMockGroupFieldMap({
603
- seed: config.seed,
604
- configs: config.configs
605
- });
606
- if (i === 0 && config.withUID) {
607
- const fieldId = generateFieldId({ seed: config.seed });
608
- tabFields[fieldId] = uid$1();
609
- }
610
- if (config.withSliceZones) {
611
- const sliceZoneId = generateFieldId({ seed: config.seed });
612
- tabFields[sliceZoneId] = sliceZone$1({
613
- withSharedSlices: config.withSharedSlices
614
- });
615
- }
616
- json[tabName] = tabFields;
617
- }
618
- const id = generateCustomTypeId({ seed: config.seed });
619
- return {
620
- id,
621
- label: changeCase.capitalCase(id),
622
- status: faker.datatype.boolean(),
623
- repeatable: faker.datatype.boolean(),
624
- json
625
- };
626
- };
627
-
628
- const group$1 = (config = {}) => {
629
- const faker = createFaker(config.seed);
630
- const fields = buildMockGroupFieldMap({
631
- seed: config.seed,
632
- configs: config.configs
633
- });
634
- return {
635
- type: prismicT.CustomTypeModelFieldType.Group,
636
- config: {
637
- label: changeCase.capitalCase(faker.company.bsNoun()),
638
- fields
639
- }
640
- };
641
- };
642
-
643
- const sharedSliceVariation$1 = (config = {}) => {
644
- var _a, _b, _c, _d, _e, _f;
645
- const faker = createFaker(config.seed);
646
- const name = changeCase.capitalCase(faker.company.bsNoun());
647
- return {
648
- id: changeCase.snakeCase(name),
649
- name,
650
- description: faker.lorem.sentence(),
651
- docURL: faker.internet.url(),
652
- version: faker.git.shortSha(),
653
- primary: buildMockGroupFieldMap({
654
- seed: (_b = (_a = config.primaryFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
655
- configs: (_c = config.primaryFieldConfig) == null ? void 0 : _c.configs
656
- }),
657
- items: buildMockGroupFieldMap({
658
- seed: (_e = (_d = config.itemsFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
659
- configs: (_f = config.itemsFieldConfig) == null ? void 0 : _f.configs
660
- })
661
- };
662
- };
663
-
664
- const sharedSlice$1 = (config = {}) => {
665
- var _a;
666
- const faker = createFaker(config.seed);
667
- const name = changeCase.capitalCase(faker.company.bsNoun());
668
- let variations = [];
669
- if ("variations" in config) {
670
- variations = config.variations || [];
671
- } else {
672
- const variationsCount = (_a = config.variationsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
673
- variations = Array(variationsCount).fill(void 0).map(() => sharedSliceVariation$1({
674
- seed: config.seed,
675
- itemsFieldConfig: config.itemsFieldConfig,
676
- primaryFieldConfig: config.primaryFieldConfig
677
- }));
678
- }
679
- return {
680
- type: prismicT.CustomTypeModelSliceType.SharedSlice,
681
- id: changeCase.snakeCase(name),
682
- name,
683
- description: faker.lorem.sentence(),
684
- variations
685
- };
686
- };
687
-
688
- const timestamp = (config = {}) => {
689
- const faker = createFaker(config.seed);
690
- const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
691
- const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
692
- return faker.date.between(after, before).toISOString();
693
- };
694
-
695
- const buildAlternativeLanguage = (config) => {
696
- return {
697
- id: config.document.id,
698
- type: config.document.type,
699
- lang: config.document.lang,
700
- uid: config.document.uid || void 0
701
- };
702
- };
703
-
704
- const customType = (config = {}) => {
705
- var _a;
706
- const faker = createFaker(config.seed);
707
- const model = config.model || customType$1({ seed: config.seed });
708
- const fieldModelsMap = Object.assign({}, ...Object.values(model.json));
709
- const dataFieldModelsMap = {};
710
- for (const key in fieldModelsMap) {
711
- const fieldModel = fieldModelsMap[key];
712
- if (fieldModel.type !== prismicT.CustomTypeModelFieldType.UID) {
713
- dataFieldModelsMap[key] = fieldModel;
714
- }
715
- }
716
- const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismicT.CustomTypeModelFieldType.UID);
717
- const withURL = (_a = config.withURL) != null ? _a : true;
718
- const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => buildAlternativeLanguage({
719
- document: alternateLanguageDocument
720
- }));
721
- return {
722
- type: model.id,
723
- id: faker.git.shortSha(),
724
- uid: hasUID ? changeCase.snakeCase(faker.lorem.words(2)) : null,
725
- url: withURL ? faker.internet.url() : null,
726
- href: faker.internet.url(),
727
- lang: faker.lorem.word(),
728
- tags: generateTags({ seed: config.seed }),
729
- slugs: [],
730
- linked_documents: [],
731
- alternate_languages: alternateLanguages,
732
- first_publication_date: timestamp({ seed: config.seed }),
733
- last_publication_date: timestamp({ seed: config.seed }),
734
- data: valueForModelMap({
735
- seed: config.seed,
736
- map: dataFieldModelsMap,
737
- configs: config.configs
738
- })
739
- };
740
- };
741
-
742
- const color = (config = {}) => {
743
- const faker = createFaker(config.seed);
744
- return faker.internet.color().toUpperCase();
745
- };
746
-
747
- const buildContentRelationshipField = (config) => {
748
- return {
749
- link_type: prismicT.LinkType.Document,
750
- id: config.document.id,
751
- uid: config.document.uid || void 0,
752
- type: config.document.type,
753
- tags: config.document.tags,
754
- lang: config.document.lang,
755
- url: config.document.url || void 0,
756
- slug: config.document.slugs[0],
757
- isBroken: false
758
- };
759
- };
760
-
761
- const contentRelationship = (config = {}) => {
762
- var _a;
763
- const faker = createFaker(config.seed);
764
- const isFilled = (_a = config.isFilled) != null ? _a : true;
765
- if (isFilled) {
766
- const model = config.model || contentRelationship$1({ seed: config.seed });
767
- const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document2) => {
768
- let shouldKeep = true;
769
- if (model.config.customtypes) {
770
- shouldKeep = shouldKeep && model.config.customtypes.includes(document2.type);
771
- }
772
- if (model.config.tags) {
773
- shouldKeep = shouldKeep && model.config.tags.some((tag) => document2.tags.includes(tag));
774
- }
775
- return shouldKeep;
776
- }) : [
777
- {
778
- ...customType({ seed: config.seed }),
779
- type: model.config.customtypes ? faker.random.arrayElement(model.config.customtypes) : generateCustomTypeId({ seed: config.seed }),
780
- tags: model.config.tags ? faker.random.arrayElements(model.config.tags) : generateTags({ seed: config.seed })
781
- }
782
- ];
783
- const document = faker.random.arrayElement(linkableDocuments);
784
- if (!document) {
785
- throw new Error("A linkable document could not be found.");
786
- }
787
- return buildContentRelationshipField({ document });
788
- } else {
789
- return {
790
- link_type: prismicT.LinkType.Document
791
- };
792
- }
793
- };
794
-
795
- const date = (config = {}) => {
796
- return timestamp({
797
- seed: config.seed,
798
- after: config.after,
799
- before: config.before
800
- }).split("T")[0];
801
- };
802
-
803
- const buildEmbedField = (config) => {
804
- const faker = createFaker(config.seed);
805
- return {
806
- type: faker.datatype.boolean() ? prismicT.EmbedType.Link : prismicT.EmbedType.Rich,
807
- url: config.embedData.url,
808
- html: config.embedData.html,
809
- title: changeCase.capitalCase(faker.lorem.words(3)),
810
- version: faker.datatype.number({ min: 1, max: 3, precision: 10 }).toString(),
811
- cache_age: faker.datatype.number(),
812
- embed_url: config.embedData.embed_url,
813
- author_url: faker.internet.url(),
814
- author_name: faker.company.companyName(),
815
- provider_name: faker.company.companyName(),
816
- thumbnail_width: config.embedData.thumbnail_width,
817
- thumbnail_height: config.embedData.thumbnail_height,
818
- thumbnail_url: config.embedData.thumbnail_url,
819
- width: faker.datatype.number({ min: 200, max: 500 }),
820
- height: faker.datatype.number({ min: 200, max: 500 })
821
- };
822
- };
823
-
824
- const dataSet$1 = [
825
- {
826
- url: "https://www.youtube.com/watch?v=fiOwHYFkUz0",
827
- embed_url: "https://www.youtube.com/embed/fiOwHYFkUz0",
828
- thumbnail_url: "https://i.ytimg.com/vi/fiOwHYFkUz0/hqdefault.jpg",
829
- thumbnail_height: 360,
830
- thumbnail_width: 480,
831
- html: '<iframe width="200" height="113" src="https://www.youtube.com/embed/fiOwHYFkUz0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
832
- },
833
- {
834
- url: "https://www.youtube.com/watch?v=c-ATzcy6VkI",
835
- embed_url: "https://www.youtube.com/embed/c-ATzcy6VkI",
836
- thumbnail_url: "https://i.ytimg.com/vi/c-ATzcy6VkI/hqdefault.jpg",
837
- thumbnail_height: 360,
838
- thumbnail_width: 480,
839
- html: '<iframe width="200" height="113" src="https://www.youtube.com/embed/c-ATzcy6VkI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
840
- },
841
- {
842
- url: "https://www.youtube.com/watch?v=iewZXv94XGY",
843
- embed_url: "https://www.youtube.com/watch?v=fiOwHYFkUz0",
844
- thumbnail_url: "https://i.ytimg.com/vi/iewZXv94XGY/hqdefault.jpg",
845
- thumbnail_height: 360,
846
- thumbnail_width: 480,
847
- html: '<iframe width="200" height="113" src="https://www.youtube.com/embed/iewZXv94XGY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
848
- },
849
- {
850
- url: "https://twitter.com/prismicio/status/1356293316158095361",
851
- embed_url: "https://www.youtube.com/watch?v=iewZXv94XGY",
852
- thumbnail_url: null,
853
- thumbnail_height: null,
854
- thumbnail_width: null,
855
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Gatsby is a popular choice for Prismic users and we work hard on delivering a CMS that plays to its strengths.<br><br>But, what makes <a href="https://twitter.com/GatsbyJS?ref_src=twsrc%5Etfw">@GatsbyJS</a> so popular?<br><br>Here are some of <a href="https://twitter.com/mxstbr?ref_src=twsrc%5Etfw">@mxstbr</a>&#39;s thoughts on Gatsby&#39;s success and how they&#39;re improving developer experience.<a href="https://t.co/ZjCPvsWWUD">https://t.co/ZjCPvsWWUD</a> <a href="https://t.co/EQqzJpeNKl">pic.twitter.com/EQqzJpeNKl</a></p>&mdash; Prismic (@prismicio) <a href="https://twitter.com/prismicio/status/1356293316158095361?ref_src=twsrc%5Etfw">February 1, 2021</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n'
856
- },
857
- {
858
- url: "https://twitter.com/timbenniks/status/1304146886832594944",
859
- thumbnail_url: null,
860
- thumbnail_width: null,
861
- thumbnail_height: null,
862
- embed_url: "https://twitter.com/timbenniks/status/1304146886832594944",
863
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I\u2019ve been diving deep on <a href="https://twitter.com/prismicio?ref_src=twsrc%5Etfw">@prismicio</a> <a href="https://twitter.com/hashtag/slicemachine?src=hash&amp;ref_src=twsrc%5Etfw">#slicemachine</a> today. I made all my own components and I used custom slices. It works like a charm with <a href="https://twitter.com/nuxt_js?ref_src=twsrc%5Etfw">@nuxt_js</a>. Also: I\u2019m coding with this view. <a href="https://t.co/F0I8X9gz39">pic.twitter.com/F0I8X9gz39</a></p>&mdash; Tim Benniks (@timbenniks) <a href="https://twitter.com/timbenniks/status/1304146886832594944?ref_src=twsrc%5Etfw">September 10, 2020</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n'
864
- },
865
- {
866
- url: "https://twitter.com/prismicio/status/1354112310252630016",
867
- thumbnail_url: null,
868
- thumbnail_width: null,
869
- thumbnail_height: null,
870
- embed_url: "https://twitter.com/prismicio/status/1354112310252630016",
871
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">We&#39;re launching a new <a href="https://twitter.com/hashtag/SliceContest?src=hash&amp;ref_src=twsrc%5Etfw">#SliceContest</a> tomorrow along with Slice Machine upgrades.<br><br>Want to know more? Join us at tomorrow&#39;s Product Meet-up\u{1F447}<a href="https://t.co/prYSypiAvB">https://t.co/prYSypiAvB</a><br><br>We can&#39;t tell you any further details for now, but here&#39;s a sneak peek at the prizes\u{1F440} <a href="https://t.co/fV1eoGlEBh">pic.twitter.com/fV1eoGlEBh</a></p>&mdash; Prismic (@prismicio) <a href="https://twitter.com/prismicio/status/1354112310252630016?ref_src=twsrc%5Etfw">January 26, 2021</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n'
872
- },
873
- {
874
- url: "https://twitter.com/prismicio/status/1354835716430319617",
875
- thumbnail_url: null,
876
- thumbnail_width: null,
877
- thumbnail_height: null,
878
- embed_url: "https://twitter.com/prismicio/status/1354835716430319617",
879
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Does anyone want to create a wildly popular website for discussing &#39;Wall Street Bets&#39; using Prismic?<br><br>It may or may not have to look a lot like <a href="https://twitter.com/hashtag/reddit?src=hash&amp;ref_src=twsrc%5Etfw">#reddit</a> and we won&#39;t make it private.<br><br>Just asking for some friends...</p>&mdash; Prismic (@prismicio) <a href="https://twitter.com/prismicio/status/1354835716430319617?ref_src=twsrc%5Etfw">January 28, 2021</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n'
880
- }
881
- ];
882
- const getMockEmbedData = (config) => {
883
- const faker = createFaker(config.seed);
884
- return faker.random.arrayElement(dataSet$1);
885
- };
886
-
887
- const embed$1 = (config = {}) => {
888
- const embedData = getMockEmbedData({ seed: config.seed });
889
- return buildEmbedField({ seed: config.seed, embedData });
890
- };
891
-
892
- const geoPoint = (config = {}) => {
893
- const faker = createFaker(config.seed);
894
- const coordinates = faker.address.nearbyGPSCoordinate();
895
- return {
896
- longitude: Number.parseFloat(coordinates[0]),
897
- latitude: Number.parseFloat(coordinates[1])
898
- };
899
- };
900
-
901
- const patterns$9 = {
902
- short: {
903
- minItems: 1,
904
- maxItems: 3
905
- },
906
- medium: {
907
- minItems: 3,
908
- maxItems: 6
909
- },
910
- long: {
911
- minItems: 6,
912
- maxItems: 12
913
- }
914
- };
915
- const group = (config = {}) => {
916
- const faker = createFaker(config.seed);
917
- const model = config.model || group$1({ seed: config.seed });
918
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$9));
919
- const pattern = patterns$9[patternKey];
920
- const itemsCount = faker.datatype.number({
921
- min: pattern.minItems,
922
- max: pattern.maxItems
923
- });
924
- return Array(itemsCount).fill(void 0).map(() => {
925
- return valueForModelMap({
926
- seed: config.seed,
927
- map: model.config.fields,
928
- configs: config.configs
929
- });
930
- });
931
- };
932
-
933
- const buildImageField = (config) => {
934
- var _a, _b, _c, _d;
935
- const faker = createFaker(config.seed);
936
- const url = new URL(config.imageData.url);
937
- const dimensions = {
938
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
939
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
940
- };
941
- url.searchParams.set("w", dimensions.width.toString());
942
- url.searchParams.set("h", dimensions.height.toString());
943
- url.searchParams.set("fit", "crop");
944
- return {
945
- url: url.toString(),
946
- dimensions,
947
- alt: faker.lorem.sentence(),
948
- copyright: faker.lorem.sentence()
949
- };
950
- };
951
-
952
- const dataSet = [
953
- {
954
- url: "https://images.unsplash.com/photo-1604537529428-15bcbeecfe4d",
955
- width: 4240,
956
- height: 2832
957
- },
958
- {
959
- url: "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05",
960
- width: 7372,
961
- height: 4392
962
- },
963
- {
964
- url: "https://images.unsplash.com/photo-1441974231531-c6227db76b6e",
965
- width: 2560,
966
- height: 1705
967
- },
968
- {
969
- url: "https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5",
970
- width: 2200,
971
- height: 1467
972
- },
973
- {
974
- url: "https://images.unsplash.com/photo-1426604966848-d7adac402bff",
975
- width: 5616,
976
- height: 3744
977
- },
978
- {
979
- url: "https://images.unsplash.com/photo-1604537466608-109fa2f16c3b",
980
- width: 4240,
981
- height: 2832
982
- },
983
- {
984
- url: "https://images.unsplash.com/photo-1497436072909-60f360e1d4b1",
985
- width: 2560,
986
- height: 1440
987
- },
988
- {
989
- url: "https://images.unsplash.com/reserve/HgZuGu3gSD6db21T3lxm_San%20Zenone.jpg",
990
- width: 6373,
991
- height: 4253
992
- },
993
- {
994
- url: "https://images.unsplash.com/photo-1504198266287-1659872e6590",
995
- width: 4272,
996
- height: 2848
997
- },
998
- {
999
- url: "https://images.unsplash.com/photo-1470770903676-69b98201ea1c",
1000
- width: 4554,
1001
- height: 3036
1002
- },
1003
- {
1004
- url: "https://images.unsplash.com/photo-1587502537745-84b86da1204f",
1005
- width: 6550,
1006
- height: 4367
1007
- },
1008
- {
1009
- url: "https://images.unsplash.com/photo-1431794062232-2a99a5431c6c",
1010
- width: 6e3,
1011
- height: 4e3
1012
- },
1013
- {
1014
- url: "https://images.unsplash.com/photo-1446329813274-7c9036bd9a1f",
1015
- width: 6e3,
1016
- height: 4e3
1017
- },
1018
- {
1019
- url: "https://images.unsplash.com/photo-1504567961542-e24d9439a724",
1020
- width: 4608,
1021
- height: 3456
1022
- },
1023
- {
1024
- url: "https://images.unsplash.com/photo-1444464666168-49d633b86797",
1025
- width: 4844,
1026
- height: 3234
1027
- },
1028
- {
1029
- url: "https://images.unsplash.com/photo-1553531384-397c80973a0b",
1030
- width: 4335,
1031
- height: 6502
1032
- }
1033
- ];
1034
- const getMockImageData = (config) => {
1035
- const faker = createFaker(config.seed);
1036
- return faker.random.arrayElement(dataSet);
1037
- };
1038
-
1039
- const image$1 = (config = {}) => {
1040
- const model = config.model || image$2({ seed: config.seed });
1041
- const imageData = getMockImageData({ seed: config.seed });
1042
- const value = buildImageField({
1043
- seed: config.seed,
1044
- imageData,
1045
- constraint: model.config.constraint
1046
- });
1047
- for (const thumbnail of model.config.thumbnails) {
1048
- value[thumbnail.name] = buildImageField({
1049
- seed: config.seed,
1050
- imageData,
1051
- constraint: {
1052
- width: thumbnail.width,
1053
- height: thumbnail.height
1054
- }
1055
- });
1056
- }
1057
- return value;
1058
- };
1059
-
1060
- const integrationFields = (config = {}) => {
1061
- const faker = createFaker(config.seed);
1062
- const imageData = getMockImageData({ seed: config.seed });
1063
- return {
1064
- id: faker.git.shortSha(),
1065
- title: changeCase.capitalCase(faker.lorem.words(3)),
1066
- description: faker.lorem.sentence(),
1067
- image_url: imageData.url,
1068
- last_update: faker.date.past(20, new Date("2021-03-07")).getTime(),
1069
- blob: config.data
1070
- };
1071
- };
1072
-
1073
- const keyText = (config = {}) => {
1074
- const faker = createFaker(config.seed);
1075
- return changeCase.sentenceCase(faker.lorem.words(3));
1076
- };
1077
-
1078
- const linkToMedia = (config = {}) => {
1079
- var _a;
1080
- const faker = createFaker(config.seed);
1081
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1082
- if (isFilled) {
1083
- return {
1084
- link_type: prismicT.LinkType.Media,
1085
- name: faker.system.commonFileName(),
1086
- kind: faker.system.commonFileType(),
1087
- url: faker.internet.url(),
1088
- size: faker.datatype.number().toString(),
1089
- height: faker.datatype.number().toString(),
1090
- width: faker.datatype.number().toString()
1091
- };
1092
- } else {
1093
- return {
1094
- link_type: prismicT.LinkType.Media
1095
- };
1096
- }
1097
- };
1098
-
1099
- const link = (config = {}) => {
1100
- var _a, _b;
1101
- const faker = createFaker(config.seed);
1102
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1103
- const type = config.type || faker.random.arrayElement([
1104
- prismicT.LinkType.Web,
1105
- prismicT.LinkType.Document,
1106
- prismicT.LinkType.Media
1107
- ]);
1108
- if (isFilled) {
1109
- switch (type) {
1110
- case prismicT.LinkType.Document: {
1111
- return contentRelationship({
1112
- seed: config.seed,
1113
- isFilled,
1114
- linkableDocuments: config.linkableDocuments
1115
- });
1116
- }
1117
- case prismicT.LinkType.Media: {
1118
- return linkToMedia({
1119
- seed: config.seed,
1120
- isFilled
1121
- });
1122
- }
1123
- case prismicT.LinkType.Web: {
1124
- const model = config.model || link$1({ seed: config.seed });
1125
- return {
1126
- link_type: prismicT.LinkType.Web,
1127
- url: faker.internet.url(),
1128
- target: ((_b = config.withTargetBlank) != null ? _b : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1129
- };
1130
- }
1131
- }
1132
- }
1133
- return {
1134
- link_type: type
1135
- };
1136
- };
1137
-
1138
- const number = (config = {}) => {
1139
- const faker = createFaker(config.seed);
1140
- return faker.datatype.number();
1141
- };
1142
-
1143
- const patterns$8 = {
1144
- short: {
1145
- minWords: 1,
1146
- maxWords: 3
1147
- },
1148
- medium: {
1149
- minWords: 3,
1150
- maxWords: 6
1151
- },
1152
- long: {
1153
- minWords: 6,
1154
- maxWords: 12
1155
- }
1156
- };
1157
- const heading = (config = {}) => {
1158
- const faker = createFaker(config.seed);
1159
- const model = config.model || title$1({ seed: config.seed });
1160
- const types = ("single" in model.config ? model.config.single : model.config.multi).split(",").filter((type2) => [
1161
- prismicT.RichTextNodeType.heading1,
1162
- prismicT.RichTextNodeType.heading2,
1163
- prismicT.RichTextNodeType.heading3,
1164
- prismicT.RichTextNodeType.heading4,
1165
- prismicT.RichTextNodeType.heading5,
1166
- prismicT.RichTextNodeType.heading6
1167
- ].includes(type2));
1168
- const type = faker.random.arrayElement(types);
1169
- if (type) {
1170
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$8));
1171
- const pattern = patterns$8[patternKey];
1172
- return {
1173
- type,
1174
- text: changeCase.capitalCase(faker.lorem.words(faker.datatype.number({
1175
- min: pattern.minWords,
1176
- max: pattern.maxWords
1177
- }))),
1178
- spans: []
1179
- };
1180
- } else {
1181
- return void 0;
1182
- }
1183
- };
1184
-
1185
- const patterns$7 = {
1186
- short: {
1187
- sentenceCount: 2
1188
- },
1189
- medium: {
1190
- sentenceCount: 6
1191
- },
1192
- long: {
1193
- sentenceCount: 12
1194
- }
1195
- };
1196
- const paragraph = (config = {}) => {
1197
- const faker = createFaker(config.seed);
1198
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$7));
1199
- const pattern = patterns$7[patternKey];
1200
- return {
1201
- type: prismicT.RichTextNodeType.paragraph,
1202
- text: faker.lorem.paragraph(pattern.sentenceCount),
1203
- spans: []
1204
- };
1205
- };
1206
-
1207
- const patterns$6 = {
1208
- short: {
1209
- sentenceCount: 2
1210
- },
1211
- medium: {
1212
- sentenceCount: 6
1213
- },
1214
- long: {
1215
- sentenceCount: 12
1216
- }
1217
- };
1218
- const preformatted = (config = {}) => {
1219
- const faker = createFaker(config.seed);
1220
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$6));
1221
- const pattern = patterns$6[patternKey];
1222
- return {
1223
- type: prismicT.RichTextNodeType.preformatted,
1224
- text: faker.lorem.paragraph(pattern.sentenceCount),
1225
- spans: []
1226
- };
1227
- };
1228
-
1229
- const patterns$5 = {
1230
- short: {
1231
- minItems: 1,
1232
- maxItems: 3
1233
- },
1234
- medium: {
1235
- minItems: 3,
1236
- maxItems: 6
1237
- },
1238
- long: {
1239
- minItems: 6,
1240
- maxItems: 12
1241
- }
1242
- };
1243
- const list = (config = {}) => {
1244
- const faker = createFaker(config.seed);
1245
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1246
- const pattern = patterns$5[patternKey];
1247
- const itemsCount = faker.datatype.number({
1248
- min: pattern.minItems,
1249
- max: pattern.maxItems
1250
- });
1251
- return Array(itemsCount).fill(void 0).map(() => {
1252
- return {
1253
- type: prismicT.RichTextNodeType.listItem,
1254
- text: faker.lorem.sentence(),
1255
- spans: []
1256
- };
1257
- });
1258
- };
1259
-
1260
- const patterns$4 = {
1261
- short: {
1262
- minItems: 1,
1263
- maxItems: 3
1264
- },
1265
- medium: {
1266
- minItems: 3,
1267
- maxItems: 6
1268
- },
1269
- long: {
1270
- minItems: 6,
1271
- maxItems: 12
1272
- }
1273
- };
1274
- const oList = (config = {}) => {
1275
- const faker = createFaker(config.seed);
1276
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1277
- const pattern = patterns$4[patternKey];
1278
- const itemsCount = faker.datatype.number({
1279
- min: pattern.minItems,
1280
- max: pattern.maxItems
1281
- });
1282
- return Array(itemsCount).fill(void 0).map(() => {
1283
- return {
1284
- type: prismicT.RichTextNodeType.oListItem,
1285
- text: faker.lorem.sentence(),
1286
- spans: []
1287
- };
1288
- });
1289
- };
1290
-
1291
- const image = (config = {}) => {
1292
- const imageData = getMockImageData({ seed: config.seed });
1293
- const imageField = buildImageField({ seed: config.seed, imageData });
1294
- return {
1295
- type: prismicT.RichTextNodeType.image,
1296
- alt: imageField.alt,
1297
- url: imageField.url,
1298
- copyright: imageField.copyright,
1299
- dimensions: imageField.dimensions
1300
- };
1301
- };
1302
-
1303
- const embed = (config = {}) => {
1304
- const embedData = getMockEmbedData({ seed: config.seed });
1305
- const embedField = buildEmbedField({ seed: config.seed, embedData });
1306
- return {
1307
- type: prismicT.RichTextNodeType.embed,
1308
- oembed: embedField
1309
- };
1310
- };
1311
-
1312
- const patterns$3 = {
1313
- short: {
1314
- blockCountMin: 1,
1315
- blockCountMax: 2
1316
- },
1317
- medium: {
1318
- blockCountMin: 2,
1319
- blockCountMax: 4
1320
- },
1321
- long: {
1322
- blockCountMin: 4,
1323
- blockCountMax: 8
1324
- }
1325
- };
1326
- const generators = {
1327
- [prismicT.RichTextNodeType.heading1]: heading,
1328
- [prismicT.RichTextNodeType.heading2]: heading,
1329
- [prismicT.RichTextNodeType.heading3]: heading,
1330
- [prismicT.RichTextNodeType.heading4]: heading,
1331
- [prismicT.RichTextNodeType.heading5]: heading,
1332
- [prismicT.RichTextNodeType.heading6]: heading,
1333
- [prismicT.RichTextNodeType.paragraph]: paragraph,
1334
- [prismicT.RichTextNodeType.preformatted]: preformatted,
1335
- [prismicT.RichTextNodeType.listItem]: list,
1336
- [prismicT.RichTextNodeType.oListItem]: oList,
1337
- [prismicT.RichTextNodeType.image]: image,
1338
- [prismicT.RichTextNodeType.embed]: embed
1339
- };
1340
- const richText = (config = {}) => {
1341
- const faker = createFaker(config.seed);
1342
- const model = config.model || richText$1({
1343
- seed: config.seed,
1344
- withMultipleBlocks: true
1345
- });
1346
- const supportsMultipleBlocks = "multi" in model.config;
1347
- const types = ("multi" in model.config ? model.config.multi : model.config.single).split(",").filter((type) => Object.keys(generators).includes(type));
1348
- if (types.length > 0) {
1349
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1350
- const pattern = patterns$3[patternKey];
1351
- const blockCount = supportsMultipleBlocks ? faker.datatype.number({
1352
- min: pattern.blockCountMin,
1353
- max: pattern.blockCountMax
1354
- }) : 1;
1355
- return Array(blockCount).fill(void 0).map(() => {
1356
- const type = faker.random.arrayElement(types);
1357
- const generator = generators[type];
1358
- return generator({ seed: config.seed, model });
1359
- }).flat().filter((block) => block !== void 0).slice(0, blockCount);
1360
- } else {
1361
- return [];
1362
- }
1363
- };
1364
-
1365
- const select = (config = {}) => {
1366
- const faker = createFaker(config.seed);
1367
- const model = config.model || select$1({ seed: config.seed });
1368
- const defaultValue = model.config.default_value;
1369
- return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1370
- };
1371
-
1372
- const patterns$2 = {
1373
- none: {
1374
- minItems: 0,
1375
- maxItems: 0
1376
- },
1377
- short: {
1378
- minItems: 1,
1379
- maxItems: 3
1380
- },
1381
- medium: {
1382
- minItems: 3,
1383
- maxItems: 6
1384
- },
1385
- long: {
1386
- minItems: 6,
1387
- maxItems: 12
1388
- }
1389
- };
1390
- const slice = (config = {}) => {
1391
- var _a;
1392
- const faker = createFaker(config.seed);
1393
- const model = config.model || slice$1({ seed: config.seed });
1394
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1395
- const pattern = patterns$2[patternKey];
1396
- const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1397
- const sliceLabel = config.label !== void 0 ? config.label : changeCase.capitalCase(faker.company.bsNoun());
1398
- const itemsCount = Object.keys(model.repeat).length > 0 ? faker.datatype.number({
1399
- min: pattern.minItems,
1400
- max: pattern.maxItems
1401
- }) : 0;
1402
- return {
1403
- slice_type: sliceType,
1404
- slice_label: sliceLabel,
1405
- primary: valueForModelMap({
1406
- seed: config.seed,
1407
- map: model["non-repeat"],
1408
- configs: config.primaryFieldConfigs
1409
- }),
1410
- items: Array(itemsCount).fill(void 0).map(() => {
1411
- return valueForModelMap({
1412
- seed: config.seed,
1413
- map: model.repeat,
1414
- configs: config.itemsFieldConfigs
1415
- });
1416
- })
1417
- };
1418
- };
1419
-
1420
- const patterns$1 = {
1421
- none: {
1422
- minItems: 0,
1423
- maxItems: 0
1424
- },
1425
- short: {
1426
- minItems: 1,
1427
- maxItems: 3
1428
- },
1429
- medium: {
1430
- minItems: 3,
1431
- maxItems: 6
1432
- },
1433
- long: {
1434
- minItems: 6,
1435
- maxItems: 12
1436
- }
1437
- };
1438
- const sharedSliceVariation = (config = {}) => {
1439
- var _a, _b;
1440
- const faker = createFaker(config.seed);
1441
- const model = config.model || sharedSliceVariation$1({ seed: config.seed });
1442
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1443
- const pattern = patterns$1[patternKey];
1444
- const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1445
- const sliceLabel = (_b = config.label) != null ? _b : changeCase.capitalCase(faker.company.bsNoun());
1446
- const itemsCount = Object.keys(model.items).length > 0 ? faker.datatype.number({
1447
- min: pattern.minItems,
1448
- max: pattern.maxItems
1449
- }) : 0;
1450
- return {
1451
- slice_type: sliceType,
1452
- slice_label: sliceLabel,
1453
- variation: model.id,
1454
- version: faker.git.shortSha(),
1455
- primary: valueForModelMap({
1456
- seed: config.seed,
1457
- map: model.primary,
1458
- configs: config.primaryFieldConfigs
1459
- }),
1460
- items: Array(itemsCount).fill(void 0).map(() => {
1461
- return valueForModelMap({
1462
- seed: config.seed,
1463
- map: model.items,
1464
- configs: config.itemsFieldConfigs
1465
- });
1466
- })
1467
- };
1468
- };
1469
-
1470
- const sharedSlice = (config = {}) => {
1471
- const faker = createFaker(config.seed);
1472
- const model = config.model || sharedSlice$1({ seed: config.seed });
1473
- const variationModel = faker.random.arrayElement(model.variations);
1474
- return sharedSliceVariation({
1475
- seed: config.seed,
1476
- model: variationModel,
1477
- pattern: config.pattern,
1478
- type: model.id,
1479
- primaryFieldConfigs: config.primaryFieldConfigs,
1480
- itemsFieldConfigs: config.itemsFieldConfigs
1481
- });
1482
- };
1483
-
1484
- const patterns = {
1485
- short: {
1486
- minItems: 1,
1487
- maxItems: 3
1488
- },
1489
- medium: {
1490
- minItems: 3,
1491
- maxItems: 6
1492
- },
1493
- long: {
1494
- minItems: 6,
1495
- maxItems: 12
1496
- }
1497
- };
1498
- const sliceZone = (config = {}) => {
1499
- const faker = createFaker(config.seed);
1500
- const model = config.model || sliceZone$1({ seed: config.seed });
1501
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1502
- const pattern = patterns[patternKey];
1503
- const itemsCount = faker.datatype.number({
1504
- min: pattern.minItems,
1505
- max: pattern.maxItems
1506
- });
1507
- return Array(itemsCount).fill(void 0).map(() => {
1508
- var _a;
1509
- const choices = Object.entries(model.config.choices);
1510
- const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1511
- const choiceLabels = model.config.labels[choiceType] || [];
1512
- const choiceLabel = faker.random.arrayElement(choiceLabels);
1513
- switch (choiceModel.type) {
1514
- case prismicT.CustomTypeModelSliceType.Slice: {
1515
- return slice({
1516
- seed: config.seed,
1517
- model: choiceModel,
1518
- type: choiceType,
1519
- label: choiceLabel ? choiceLabel.name : null,
1520
- primaryFieldConfigs: config.primaryFieldConfigs,
1521
- itemsFieldConfigs: config.itemsFieldConfigs
1522
- });
1523
- }
1524
- case prismicT.CustomTypeModelSliceType.SharedSlice: {
1525
- const sharedSliceModel = (_a = config.sharedSliceModels) == null ? void 0 : _a.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1526
- if (sharedSliceModel) {
1527
- return sharedSlice({
1528
- seed: config.seed,
1529
- model: sharedSliceModel,
1530
- primaryFieldConfigs: config.primaryFieldConfigs,
1531
- itemsFieldConfigs: config.itemsFieldConfigs
1532
- });
1533
- }
1534
- }
1535
- }
1536
- }).filter((slice2) => slice2 !== void 0);
1537
- };
1538
-
1539
- const title = (config = {}) => {
1540
- return [
1541
- heading({
1542
- seed: config.seed,
1543
- model: config.model,
1544
- pattern: config.pattern
1545
- })
1546
- ];
1547
- };
1548
-
1549
- const uid = (config = {}) => {
1550
- const faker = createFaker(config.seed);
1551
- return changeCase.snakeCase(faker.lorem.words(2));
1552
- };
1553
-
1554
- export { boolean$1 as boolean, color, contentRelationship, customType, date, customType as document, embed$1 as embed, geoPoint, group, image$1 as image, integrationFields, keyText, link, linkToMedia, number, richText, select, sharedSlice, sharedSliceVariation, slice, sliceZone, timestamp, title, uid };