@prismicio/mock 0.0.4 → 0.0.8

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 (72) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +54 -35
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +4 -2
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/{index.mjs → index.js} +116 -63
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +365 -417
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +157 -243
  11. package/dist/{index.mjs → index.js} +359 -409
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +164 -204
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +73 -97
  16. package/dist/model/index.d.ts.map +1 -0
  17. package/dist/model/index.js +462 -0
  18. package/dist/model/index.js.map +1 -0
  19. package/dist/value/index.cjs +310 -519
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +71 -132
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +474 -629
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +21 -21
  26. package/src/constants.ts +3 -1
  27. package/src/lib/buildAlternativeLanguage.ts +18 -0
  28. package/src/lib/buildContentRelationshipField.ts +12 -5
  29. package/src/lib/buildEmbedField.ts +1 -1
  30. package/src/lib/buildImageFieldImage.ts +48 -0
  31. package/src/lib/createFaker.ts +19 -10
  32. package/src/lib/valueForModelMap.ts +2 -2
  33. package/src/model/buildMockGroupFieldMap.ts +65 -0
  34. package/src/model/contentRelationship.ts +14 -21
  35. package/src/model/customType.ts +49 -48
  36. package/src/model/group.ts +8 -15
  37. package/src/model/image.ts +13 -13
  38. package/src/model/index.ts +2 -0
  39. package/src/model/integrationFields.ts +4 -2
  40. package/src/model/select.ts +11 -16
  41. package/src/model/sharedSlice.ts +23 -30
  42. package/src/model/sharedSliceVariation.ts +33 -21
  43. package/src/model/slice.ts +15 -19
  44. package/src/model/sliceZone.ts +25 -42
  45. package/src/types.ts +130 -83
  46. package/src/value/color.ts +16 -6
  47. package/src/value/contentRelationship.ts +52 -36
  48. package/src/value/customType.ts +22 -3
  49. package/src/value/date.ts +25 -9
  50. package/src/value/embed.ts +18 -6
  51. package/src/value/geoPoint.ts +21 -9
  52. package/src/value/group.ts +35 -44
  53. package/src/value/image.ts +22 -9
  54. package/src/value/integrationFields.ts +26 -14
  55. package/src/value/keyText.ts +18 -6
  56. package/src/value/link.ts +33 -34
  57. package/src/value/linkToMedia.ts +15 -20
  58. package/src/value/number.ts +16 -6
  59. package/src/value/richText/heading.ts +7 -7
  60. package/src/value/richText/image.ts +6 -2
  61. package/src/value/richText/index.ts +1 -1
  62. package/src/value/select.ts +23 -8
  63. package/src/value/sharedSlice.ts +2 -2
  64. package/src/value/sharedSliceVariation.ts +6 -34
  65. package/src/value/slice.ts +5 -30
  66. package/src/value/sliceZone.ts +60 -69
  67. package/src/value/timestamp.ts +19 -6
  68. package/src/value/title.ts +26 -13
  69. package/src/value/uid.ts +1 -1
  70. package/dist/model/index.mjs +0 -448
  71. package/src/lib/buildImageField.ts +0 -34
  72. package/src/lib/buildMockGroupFieldMap.ts +0 -84
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const fakerLocaleEN = require('faker/lib/locales/en');
6
- const Faker = require('faker/lib');
5
+ const fakerLocaleEN = require('faker/lib/locales/en/index.js');
6
+ const Faker = require('faker/lib/index.js');
7
7
  const prismicT = require('@prismicio/types');
8
8
  const changeCase = require('change-case');
9
9
 
@@ -11,21 +11,19 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
 
12
12
  function _interopNamespace(e) {
13
13
  if (e && e.__esModule) return e;
14
- var n = Object.create(null);
14
+ const n = Object.create(null);
15
15
  if (e) {
16
- Object.keys(e).forEach(function (k) {
16
+ for (const k in e) {
17
17
  if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
19
  Object.defineProperty(n, k, d.get ? d : {
20
20
  enumerable: true,
21
- get: function () {
22
- return e[k];
23
- }
21
+ get: function () { return e[k]; }
24
22
  });
25
23
  }
26
- });
24
+ }
27
25
  }
28
- n['default'] = e;
26
+ n["default"] = e;
29
27
  return Object.freeze(n);
30
28
  }
31
29
 
@@ -37,18 +35,25 @@ const changeCase__namespace = /*#__PURE__*/_interopNamespace(changeCase);
37
35
  const FAKER_SEED = 1984;
38
36
 
39
37
  const createFaker = (seed = FAKER_SEED) => {
40
- if (createFaker.cache[seed]) {
41
- return createFaker.cache[seed];
38
+ let normalizedSeed;
39
+ if (typeof seed === "string") {
40
+ normalizedSeed = seed.split("").map((char) => char.charCodeAt(0));
41
+ } else {
42
+ normalizedSeed = seed;
43
+ }
44
+ const cacheKey = JSON.stringify(normalizedSeed);
45
+ if (createFaker.cache[cacheKey]) {
46
+ return createFaker.cache[cacheKey];
42
47
  }
43
- const seededFaker = new Faker__default['default']();
44
- seededFaker.seed(seed);
45
- seededFaker.locales["en"] = fakerLocaleEN__namespace;
46
- createFaker.cache[seed] = seededFaker;
47
- return seededFaker;
48
+ const fakerInstance = new Faker__default["default"]();
49
+ fakerInstance.locales["en"] = fakerLocaleEN__namespace;
50
+ fakerInstance.seed(normalizedSeed);
51
+ createFaker.cache[cacheKey] = fakerInstance;
52
+ return fakerInstance;
48
53
  };
49
54
  createFaker.cache = {};
50
55
 
51
- const boolean$1 = (config = {}) => {
56
+ const boolean = (config = {}) => {
52
57
  const faker = createFaker(config.seed);
53
58
  return faker.datatype.boolean();
54
59
  };
@@ -66,7 +71,7 @@ const valueForModel = (config) => {
66
71
  const model = config.model;
67
72
  switch (model.type) {
68
73
  case prismicT__namespace.CustomTypeModelFieldType.Boolean: {
69
- return boolean$1({
74
+ return boolean({
70
75
  seed: config.seed,
71
76
  model,
72
77
  ...config.config
@@ -252,7 +257,7 @@ const getValueConfigType = (model) => {
252
257
  case prismicT__namespace.CustomTypeModelFieldType.IntegrationFields:
253
258
  return "integrationFields";
254
259
  case prismicT__namespace.CustomTypeModelFieldType.Slices:
255
- return "slices";
260
+ return "sliceZone";
256
261
  }
257
262
  };
258
263
  const valueForModelMap = (config) => {
@@ -271,32 +276,6 @@ const valueForModelMap = (config) => {
271
276
  return result;
272
277
  };
273
278
 
274
- const boolean = (config = {}) => {
275
- const faker = createFaker(config.seed);
276
- return {
277
- type: prismicT__namespace.CustomTypeModelFieldType.Boolean,
278
- config: {
279
- label: changeCase__namespace.capitalCase(faker.company.bsNoun())
280
- }
281
- };
282
- };
283
-
284
- const color$1 = (config = {}) => {
285
- const faker = createFaker(config.seed);
286
- return {
287
- type: prismicT__namespace.CustomTypeModelFieldType.Color,
288
- config: {
289
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
290
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
291
- }
292
- };
293
- };
294
-
295
- const generateCustomTypeId = (config) => {
296
- const faker = createFaker(config.seed);
297
- return changeCase__namespace.snakeCase(faker.company.bsNoun());
298
- };
299
-
300
279
  const contentRelationship$1 = (config = {}) => {
301
280
  const faker = createFaker(config.seed);
302
281
  return {
@@ -305,48 +284,57 @@ const contentRelationship$1 = (config = {}) => {
305
284
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
306
285
  placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
307
286
  select: prismicT__namespace.CustomTypeModelLinkSelectType.Document,
308
- customtypes: config.constrainCustomTypes ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => generateCustomTypeId({ seed: config.seed })) : void 0,
309
- tags: config.constrainTags ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })))) : void 0
287
+ customtypes: config.customTypeIDs,
288
+ tags: config.tags
310
289
  }
311
290
  };
312
291
  };
313
292
 
314
- const date$1 = (config = {}) => {
293
+ const customType$1 = (config = {}) => {
294
+ var _a, _b;
315
295
  const faker = createFaker(config.seed);
296
+ let label = config.label || changeCase__namespace.capitalCase(faker.company.bsNoun());
297
+ let id = config.id || changeCase__namespace.snakeCase(label);
298
+ if (config.id && !config.label) {
299
+ label = changeCase__namespace.capitalCase(config.id);
300
+ } else if (config.label && !config.label) {
301
+ id = changeCase__namespace.snakeCase(config.label);
302
+ }
303
+ let json = {};
304
+ if ("fields" in config && config.fields) {
305
+ json = { Main: config.fields };
306
+ } else if ("tabs" in config && config.tabs) {
307
+ json = config.tabs;
308
+ }
316
309
  return {
317
- type: prismicT__namespace.CustomTypeModelFieldType.Date,
318
- config: {
319
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
320
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
321
- }
310
+ id,
311
+ label,
312
+ status: (_a = config.status) != null ? _a : faker.datatype.boolean(),
313
+ repeatable: (_b = config.repeatable) != null ? _b : faker.datatype.boolean(),
314
+ json
322
315
  };
323
316
  };
324
317
 
325
- const embed$2 = (config = {}) => {
318
+ const group$1 = (config = {}) => {
326
319
  const faker = createFaker(config.seed);
327
320
  return {
328
- type: prismicT__namespace.CustomTypeModelFieldType.Embed,
321
+ type: prismicT__namespace.CustomTypeModelFieldType.Group,
329
322
  config: {
330
323
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
331
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
332
- }
333
- };
334
- };
335
-
336
- const geoPoint$1 = (config = {}) => {
337
- const faker = createFaker(config.seed);
338
- return {
339
- type: prismicT__namespace.CustomTypeModelFieldType.GeoPoint,
340
- config: {
341
- label: changeCase__namespace.capitalCase(faker.company.bsNoun())
324
+ fields: config.fields || {}
342
325
  }
343
326
  };
344
327
  };
345
328
 
346
329
  const image$2 = (config = {}) => {
347
- var _a;
348
330
  const faker = createFaker(config.seed);
349
- const thumbnailsCount = (_a = config.thumbnailsCount) != null ? _a : faker.datatype.number(3);
331
+ const thumbnails = (config.thumbnailNames || []).map((name) => {
332
+ return {
333
+ name,
334
+ width: faker.datatype.number({ min: 500, max: 2e3 }),
335
+ height: faker.datatype.number({ min: 500, max: 2e3 })
336
+ };
337
+ });
350
338
  return {
351
339
  type: prismicT__namespace.CustomTypeModelFieldType.Image,
352
340
  config: {
@@ -355,33 +343,7 @@ const image$2 = (config = {}) => {
355
343
  width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
356
344
  height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
357
345
  },
358
- thumbnails: Array(thumbnailsCount).fill(void 0).map(() => ({
359
- name: changeCase__namespace.capitalCase(faker.company.bsNoun()),
360
- width: faker.datatype.number({ min: 500, max: 2e3 }),
361
- height: faker.datatype.number({ min: 500, max: 2e3 })
362
- }))
363
- }
364
- };
365
- };
366
-
367
- const integrationFields$1 = (config = {}) => {
368
- const faker = createFaker(config.seed);
369
- return {
370
- type: prismicT__namespace.CustomTypeModelFieldType.IntegrationFields,
371
- config: {
372
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
373
- catalog: changeCase__namespace.snakeCase(faker.lorem.words(4))
374
- }
375
- };
376
- };
377
-
378
- const keyText$1 = (config = {}) => {
379
- const faker = createFaker(config.seed);
380
- return {
381
- type: prismicT__namespace.CustomTypeModelFieldType.Text,
382
- config: {
383
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
384
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
346
+ thumbnails
385
347
  }
386
348
  };
387
349
  };
@@ -399,29 +361,6 @@ const link$1 = (config = {}) => {
399
361
  };
400
362
  };
401
363
 
402
- const linkToMedia$1 = (config = {}) => {
403
- const faker = createFaker(config.seed);
404
- return {
405
- type: prismicT__namespace.CustomTypeModelFieldType.Link,
406
- config: {
407
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
408
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
409
- select: prismicT__namespace.CustomTypeModelLinkSelectType.Media
410
- }
411
- };
412
- };
413
-
414
- const number$1 = (config = {}) => {
415
- const faker = createFaker(config.seed);
416
- return {
417
- type: prismicT__namespace.CustomTypeModelFieldType.Number,
418
- config: {
419
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
420
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
421
- }
422
- };
423
- };
424
-
425
364
  const richText$1 = (config = {}) => {
426
365
  var _a;
427
366
  const faker = createFaker(config.seed);
@@ -455,115 +394,57 @@ const richText$1 = (config = {}) => {
455
394
  };
456
395
 
457
396
  const select$1 = (config = {}) => {
458
- var _a;
459
397
  const faker = createFaker(config.seed);
460
- const optionsCount = (_a = config.optionsCount) != null ? _a : faker.datatype.number({ min: 1, max: 5 });
461
- const options = Array(optionsCount).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.company.bsBuzz()));
462
398
  return {
463
399
  type: prismicT__namespace.CustomTypeModelFieldType.Select,
464
400
  config: {
465
401
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
466
402
  placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
467
- options,
468
- default_value: config.withDefaultValue ? faker.random.arrayElement(options) : void 0
469
- }
470
- };
471
- };
472
-
473
- const timestamp$1 = (config = {}) => {
474
- const faker = createFaker(config.seed);
475
- return {
476
- type: prismicT__namespace.CustomTypeModelFieldType.Timestamp,
477
- config: {
478
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
479
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
403
+ options: config.options || [],
404
+ default_value: config.defaultValue || void 0
480
405
  }
481
406
  };
482
407
  };
483
408
 
484
- const title$1 = (config = {}) => {
409
+ const sharedSlice$1 = (config = {}) => {
485
410
  const faker = createFaker(config.seed);
486
- const single = faker.random.arrayElements([
487
- "heading1",
488
- "heading2",
489
- "heading3",
490
- "heading4",
491
- "heading5",
492
- "heading6"
493
- ]).join(",");
411
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
412
+ let id = config.id || changeCase__namespace.snakeCase(name);
413
+ if (config.id && !config.name) {
414
+ name = changeCase__namespace.pascalCase(config.id);
415
+ } else if (config.name && !config.name) {
416
+ id = changeCase__namespace.snakeCase(config.name);
417
+ }
494
418
  return {
495
- type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
496
- config: {
497
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
498
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
499
- single,
500
- allowTargetBlank: faker.datatype.boolean() ? true : void 0
501
- }
419
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
420
+ id,
421
+ name,
422
+ description: faker.lorem.sentence(),
423
+ variations: config.variations || []
502
424
  };
503
425
  };
504
426
 
505
- const generateFieldId = (config) => {
506
- const faker = createFaker(config.seed);
507
- return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
508
- };
509
-
510
- const mockModelFns = {
511
- boolean,
512
- color: color$1,
513
- contentRelationship: contentRelationship$1,
514
- date: date$1,
515
- embed: embed$2,
516
- geoPoint: geoPoint$1,
517
- image: image$2,
518
- integrationFields: integrationFields$1,
519
- keyText: keyText$1,
520
- link: link$1,
521
- linkToMedia: linkToMedia$1,
522
- number: number$1,
523
- richText: richText$1,
524
- select: select$1,
525
- timestamp: timestamp$1,
526
- title: title$1
527
- };
528
- const buildMockGroupFieldMap = (config = {}) => {
529
- var _a;
427
+ const sharedSliceVariation$1 = (config = {}) => {
530
428
  const faker = createFaker(config.seed);
531
- const configs = config.configs || {};
532
- const fields = {};
533
- for (const mockModelType in mockModelFns) {
534
- const mockModelFn = mockModelFns[mockModelType];
535
- const mockModelMapConfig = configs[mockModelType] || {};
536
- const count = (_a = mockModelMapConfig.count) != null ? _a : faker.random.arrayElement([0, 0, 0, 1]);
537
- for (let i = 0; i < count; i++) {
538
- const fieldId = generateFieldId({ seed: config.seed });
539
- fields[fieldId] = mockModelFn({
540
- seed: config.seed,
541
- ...mockModelMapConfig.config
542
- });
543
- }
429
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
430
+ let id = config.id || changeCase__namespace.snakeCase(name);
431
+ if (config.id && !config.name) {
432
+ name = changeCase__namespace.pascalCase(config.id);
433
+ } else if (config.name && !config.name) {
434
+ id = changeCase__namespace.snakeCase(config.name);
544
435
  }
545
- return fields;
546
- };
547
-
548
- const uid$1 = (config = {}) => {
549
- const faker = createFaker(config.seed);
550
- return {
551
- type: prismicT__namespace.CustomTypeModelFieldType.UID,
552
- config: {
553
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
554
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
555
- }
556
- };
557
- };
558
-
559
- const sharedSliceChoice = () => {
560
436
  return {
561
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
437
+ id,
438
+ name,
439
+ description: faker.lorem.sentence(),
440
+ docURL: faker.internet.url(),
441
+ version: faker.git.shortSha(),
442
+ primary: config.primaryFields || {},
443
+ items: config.itemsFields || {}
562
444
  };
563
445
  };
564
446
 
565
447
  const slice$1 = (config = {}) => {
566
- var _a, _b, _c, _d, _e, _f;
567
448
  const faker = createFaker(config.seed);
568
449
  return {
569
450
  type: prismicT__namespace.CustomTypeModelSliceType.Slice,
@@ -571,34 +452,17 @@ const slice$1 = (config = {}) => {
571
452
  display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
572
453
  fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
573
454
  description: faker.lorem.sentence(),
574
- repeat: buildMockGroupFieldMap({
575
- seed: (_b = (_a = config.repeatFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
576
- configs: (_c = config.repeatFieldConfig) == null ? void 0 : _c.configs
577
- }),
578
- "non-repeat": buildMockGroupFieldMap({
579
- seed: (_e = (_d = config.nonRepeatFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
580
- configs: (_f = config.nonRepeatFieldConfig) == null ? void 0 : _f.configs
581
- })
455
+ repeat: config.repeatFields || {},
456
+ "non-repeat": config.nonRepeatFields || {}
582
457
  };
583
458
  };
584
459
 
585
460
  const sliceZone$1 = (config = {}) => {
586
- var _a;
587
- const faker = createFaker(config.seed);
588
- const choicesCount = (_a = config.choicesCount) != null ? _a : faker.datatype.number({ min: 2, max: 6 });
589
- const choices = {};
590
- for (let i = 0; i < choicesCount; i++) {
591
- const choiceId = generateFieldId({ seed: config.seed });
592
- choices[choiceId] = config.withSharedSlices ? sharedSliceChoice() : slice$1({ seed: config.seed });
593
- }
594
461
  const labels = {};
595
- if (!config.withSharedSlices) {
596
- for (const choiceId in choices) {
597
- const labelsCount = faker.datatype.number({ min: 0, max: 3 });
598
- labels[choiceId] = Array(labelsCount).fill(void 0).map(() => ({
599
- name: changeCase__namespace.capitalCase(faker.company.bsNoun()),
600
- display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List
601
- }));
462
+ for (const choiceId in config.choices) {
463
+ const choice = config.choices[choiceId];
464
+ if (choice.type === prismicT__namespace.CustomTypeModelSliceType.Slice) {
465
+ labels[choiceId] = [];
602
466
  }
603
467
  }
604
468
  return {
@@ -606,104 +470,51 @@ const sliceZone$1 = (config = {}) => {
606
470
  fieldset: "Slice zone",
607
471
  config: {
608
472
  labels,
609
- choices
610
- }
611
- };
612
- };
613
-
614
- const customType$1 = (config = {}) => {
615
- var _a;
616
- const faker = createFaker(config.seed);
617
- const tabsCount = (_a = config.tabsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
618
- const json = {};
619
- for (let i = 0; i < tabsCount; i++) {
620
- const tabName = changeCase__namespace.capitalCase(faker.company.bsNoun());
621
- const tabFields = buildMockGroupFieldMap({
622
- seed: config.seed,
623
- configs: config.configs
624
- });
625
- if (i === 0 && config.withUID) {
626
- const fieldId = generateFieldId({ seed: config.seed });
627
- tabFields[fieldId] = uid$1();
628
- }
629
- if (config.withSliceZones) {
630
- const sliceZoneId = generateFieldId({ seed: config.seed });
631
- tabFields[sliceZoneId] = sliceZone$1({
632
- withSharedSlices: config.withSharedSlices
633
- });
473
+ choices: config.choices || {}
634
474
  }
635
- json[tabName] = tabFields;
636
- }
637
- const id = generateCustomTypeId({ seed: config.seed });
638
- return {
639
- id,
640
- label: changeCase__namespace.capitalCase(id),
641
- status: faker.datatype.boolean(),
642
- repeatable: faker.datatype.boolean(),
643
- json
644
475
  };
645
476
  };
646
477
 
647
- const group$1 = (config = {}) => {
478
+ const title$1 = (config = {}) => {
648
479
  const faker = createFaker(config.seed);
649
- const fields = buildMockGroupFieldMap({
650
- seed: config.seed,
651
- configs: config.configs
652
- });
480
+ const single = faker.random.arrayElements([
481
+ "heading1",
482
+ "heading2",
483
+ "heading3",
484
+ "heading4",
485
+ "heading5",
486
+ "heading6"
487
+ ]).join(",");
653
488
  return {
654
- type: prismicT__namespace.CustomTypeModelFieldType.Group,
489
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
655
490
  config: {
656
491
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
657
- fields
492
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
493
+ single,
494
+ allowTargetBlank: faker.datatype.boolean() ? true : void 0
658
495
  }
659
496
  };
660
497
  };
661
498
 
662
- const sharedSliceVariation$1 = (config = {}) => {
663
- var _a, _b, _c, _d, _e, _f;
664
- const faker = createFaker(config.seed);
665
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
666
- return {
667
- id: changeCase__namespace.snakeCase(name),
668
- name,
669
- description: faker.lorem.sentence(),
670
- docURL: faker.internet.url(),
671
- version: faker.git.shortSha(),
672
- primary: buildMockGroupFieldMap({
673
- seed: (_b = (_a = config.primaryFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
674
- configs: (_c = config.primaryFieldConfig) == null ? void 0 : _c.configs
675
- }),
676
- items: buildMockGroupFieldMap({
677
- seed: (_e = (_d = config.itemsFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
678
- configs: (_f = config.itemsFieldConfig) == null ? void 0 : _f.configs
679
- })
680
- };
681
- };
682
-
683
- const sharedSlice$1 = (config = {}) => {
684
- var _a;
499
+ const generateFieldId = (config) => {
685
500
  const faker = createFaker(config.seed);
686
- const variationsCount = (_a = config.variationsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
687
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
688
- const variations = Array(variationsCount).fill(void 0).map(() => sharedSliceVariation$1({
689
- seed: config.seed,
690
- itemsFieldConfig: config.itemsFieldConfig,
691
- primaryFieldConfig: config.primaryFieldConfig
692
- }));
693
- return {
694
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
695
- id: changeCase__namespace.snakeCase(name),
696
- name,
697
- description: faker.lorem.sentence(),
698
- variations
699
- };
501
+ return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
700
502
  };
701
503
 
702
504
  const timestamp = (config = {}) => {
703
505
  const faker = createFaker(config.seed);
704
506
  const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
705
507
  const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
706
- return faker.date.between(after, before).toISOString();
508
+ return config.state === "empty" ? null : faker.date.between(after, before).toISOString();
509
+ };
510
+
511
+ const buildAlternativeLanguage = (config) => {
512
+ return {
513
+ id: config.document.id,
514
+ type: config.document.type,
515
+ lang: config.document.lang,
516
+ uid: config.document.uid || void 0
517
+ };
707
518
  };
708
519
 
709
520
  const customType = (config = {}) => {
@@ -711,8 +522,18 @@ const customType = (config = {}) => {
711
522
  const faker = createFaker(config.seed);
712
523
  const model = config.model || customType$1({ seed: config.seed });
713
524
  const fieldModelsMap = Object.assign({}, ...Object.values(model.json));
525
+ const dataFieldModelsMap = {};
526
+ for (const key in fieldModelsMap) {
527
+ const fieldModel = fieldModelsMap[key];
528
+ if (fieldModel.type !== prismicT__namespace.CustomTypeModelFieldType.UID) {
529
+ dataFieldModelsMap[key] = fieldModel;
530
+ }
531
+ }
714
532
  const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismicT__namespace.CustomTypeModelFieldType.UID);
715
533
  const withURL = (_a = config.withURL) != null ? _a : true;
534
+ const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => buildAlternativeLanguage({
535
+ document: alternateLanguageDocument
536
+ }));
716
537
  return {
717
538
  type: model.id,
718
539
  id: faker.git.shortSha(),
@@ -723,12 +544,12 @@ const customType = (config = {}) => {
723
544
  tags: generateTags({ seed: config.seed }),
724
545
  slugs: [],
725
546
  linked_documents: [],
726
- alternate_languages: [],
547
+ alternate_languages: alternateLanguages,
727
548
  first_publication_date: timestamp({ seed: config.seed }),
728
549
  last_publication_date: timestamp({ seed: config.seed }),
729
550
  data: valueForModelMap({
730
551
  seed: config.seed,
731
- map: fieldModelsMap,
552
+ map: dataFieldModelsMap,
732
553
  configs: config.configs
733
554
  })
734
555
  };
@@ -736,7 +557,7 @@ const customType = (config = {}) => {
736
557
 
737
558
  const color = (config = {}) => {
738
559
  const faker = createFaker(config.seed);
739
- return faker.internet.color().toUpperCase();
560
+ return config.state === "empty" ? null : faker.internet.color().toUpperCase();
740
561
  };
741
562
 
742
563
  const buildContentRelationshipField = (config) => {
@@ -753,11 +574,18 @@ const buildContentRelationshipField = (config) => {
753
574
  };
754
575
  };
755
576
 
577
+ const generateCustomTypeId = (config) => {
578
+ const faker = createFaker(config.seed);
579
+ return changeCase__namespace.snakeCase(faker.company.bsNoun());
580
+ };
581
+
756
582
  const contentRelationship = (config = {}) => {
757
- var _a;
758
583
  const faker = createFaker(config.seed);
759
- const isFilled = (_a = config.isFilled) != null ? _a : true;
760
- if (isFilled) {
584
+ if (config.state === "empty") {
585
+ return {
586
+ link_type: prismicT__namespace.LinkType.Document
587
+ };
588
+ } else {
761
589
  const model = config.model || contentRelationship$1({ seed: config.seed });
762
590
  const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document2) => {
763
591
  let shouldKeep = true;
@@ -779,19 +607,18 @@ const contentRelationship = (config = {}) => {
779
607
  if (!document) {
780
608
  throw new Error("A linkable document could not be found.");
781
609
  }
782
- return buildContentRelationshipField({ document });
783
- } else {
784
- return {
785
- link_type: prismicT__namespace.LinkType.Document
786
- };
610
+ return buildContentRelationshipField({
611
+ document
612
+ });
787
613
  }
788
614
  };
789
615
 
790
616
  const date = (config = {}) => {
791
- return timestamp({
617
+ return config.state === "empty" ? null : timestamp({
792
618
  seed: config.seed,
793
619
  after: config.after,
794
- before: config.before
620
+ before: config.before,
621
+ state: "filled"
795
622
  }).split("T")[0];
796
623
  };
797
624
 
@@ -881,67 +708,65 @@ const getMockEmbedData = (config) => {
881
708
 
882
709
  const embed$1 = (config = {}) => {
883
710
  const embedData = getMockEmbedData({ seed: config.seed });
884
- return buildEmbedField({ seed: config.seed, embedData });
711
+ return config.state === "empty" ? {} : buildEmbedField({ seed: config.seed, embedData });
885
712
  };
886
713
 
887
714
  const geoPoint = (config = {}) => {
888
715
  const faker = createFaker(config.seed);
889
716
  const coordinates = faker.address.nearbyGPSCoordinate();
890
- return {
717
+ return config.state === "empty" ? {} : {
891
718
  longitude: Number.parseFloat(coordinates[0]),
892
719
  latitude: Number.parseFloat(coordinates[1])
893
720
  };
894
721
  };
895
722
 
896
- const patterns$9 = {
897
- short: {
898
- minItems: 1,
899
- maxItems: 3
900
- },
901
- medium: {
902
- minItems: 3,
903
- maxItems: 6
904
- },
905
- long: {
906
- minItems: 6,
907
- maxItems: 12
908
- }
909
- };
910
723
  const group = (config = {}) => {
911
- const faker = createFaker(config.seed);
912
- const model = config.model || group$1({ seed: config.seed });
913
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$9));
914
- const pattern = patterns$9[patternKey];
915
- const itemsCount = faker.datatype.number({
916
- min: pattern.minItems,
917
- max: pattern.maxItems
918
- });
919
- return Array(itemsCount).fill(void 0).map(() => {
920
- return valueForModelMap({
921
- seed: config.seed,
922
- map: model.config.fields,
923
- configs: config.configs
724
+ var _a;
725
+ if (config.state === "empty") {
726
+ return [];
727
+ } else {
728
+ const faker = createFaker(config.seed);
729
+ const model = config.model || group$1({ seed: config.seed });
730
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
731
+ min: 1,
732
+ max: 6
924
733
  });
925
- });
734
+ return Array(itemsCount).fill(void 0).map(() => {
735
+ return valueForModelMap({
736
+ seed: config.seed,
737
+ map: model.config.fields,
738
+ configs: config.configs
739
+ });
740
+ });
741
+ }
926
742
  };
927
743
 
928
- const buildImageField = (config) => {
744
+ const buildImageFieldImage = (config) => {
929
745
  var _a, _b, _c, _d;
930
- const faker = createFaker(config.seed);
931
- const url = new URL(config.imageData.url);
932
- const dimensions = {
933
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
934
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
935
- };
936
- url.searchParams.set("w", dimensions.width.toString());
937
- url.searchParams.set("h", dimensions.height.toString());
938
- url.searchParams.set("fit", "crop");
939
- return {
940
- url: url.toString(),
941
- dimensions,
942
- alt: faker.lorem.sentence(),
943
- copyright: faker.lorem.sentence()
944
- };
746
+ if (config.state === "empty") {
747
+ return {
748
+ url: null,
749
+ dimensions: null,
750
+ alt: null,
751
+ copyright: null
752
+ };
753
+ } else {
754
+ const faker = createFaker(config.seed);
755
+ const url = new URL(config.imageData.url);
756
+ const dimensions = {
757
+ width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
758
+ height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
759
+ };
760
+ url.searchParams.set("w", dimensions.width.toString());
761
+ url.searchParams.set("h", dimensions.height.toString());
762
+ url.searchParams.set("fit", "crop");
763
+ return {
764
+ url: url.toString(),
765
+ dimensions,
766
+ alt: faker.lorem.sentence(),
767
+ copyright: faker.lorem.sentence()
768
+ };
769
+ }
945
770
  };
946
771
 
947
772
  const dataSet = [
@@ -1034,19 +859,21 @@ const getMockImageData = (config) => {
1034
859
  const image$1 = (config = {}) => {
1035
860
  const model = config.model || image$2({ seed: config.seed });
1036
861
  const imageData = getMockImageData({ seed: config.seed });
1037
- const value = buildImageField({
862
+ const value = buildImageFieldImage({
1038
863
  seed: config.seed,
1039
864
  imageData,
1040
- constraint: model.config.constraint
865
+ constraint: model.config.constraint,
866
+ state: config.state
1041
867
  });
1042
868
  for (const thumbnail of model.config.thumbnails) {
1043
- value[thumbnail.name] = buildImageField({
869
+ value[thumbnail.name] = buildImageFieldImage({
1044
870
  seed: config.seed,
1045
871
  imageData,
1046
872
  constraint: {
1047
873
  width: thumbnail.width,
1048
874
  height: thumbnail.height
1049
- }
875
+ },
876
+ state: config.state
1050
877
  });
1051
878
  }
1052
879
  return value;
@@ -1055,7 +882,7 @@ const image$1 = (config = {}) => {
1055
882
  const integrationFields = (config = {}) => {
1056
883
  const faker = createFaker(config.seed);
1057
884
  const imageData = getMockImageData({ seed: config.seed });
1058
- return {
885
+ return config.state === "empty" ? null : {
1059
886
  id: faker.git.shortSha(),
1060
887
  title: changeCase__namespace.capitalCase(faker.lorem.words(3)),
1061
888
  description: faker.lorem.sentence(),
@@ -1067,14 +894,16 @@ const integrationFields = (config = {}) => {
1067
894
 
1068
895
  const keyText = (config = {}) => {
1069
896
  const faker = createFaker(config.seed);
1070
- return changeCase__namespace.sentenceCase(faker.lorem.words(3));
897
+ return config.state === "empty" ? null : changeCase__namespace.sentenceCase(faker.lorem.words(3));
1071
898
  };
1072
899
 
1073
900
  const linkToMedia = (config = {}) => {
1074
- var _a;
1075
901
  const faker = createFaker(config.seed);
1076
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1077
- if (isFilled) {
902
+ if (config.state === "empty") {
903
+ return {
904
+ link_type: prismicT__namespace.LinkType.Media
905
+ };
906
+ } else {
1078
907
  return {
1079
908
  link_type: prismicT__namespace.LinkType.Media,
1080
909
  name: faker.system.commonFileName(),
@@ -1084,58 +913,55 @@ const linkToMedia = (config = {}) => {
1084
913
  height: faker.datatype.number().toString(),
1085
914
  width: faker.datatype.number().toString()
1086
915
  };
1087
- } else {
1088
- return {
1089
- link_type: prismicT__namespace.LinkType.Media
1090
- };
1091
916
  }
1092
917
  };
1093
918
 
1094
919
  const link = (config = {}) => {
1095
- var _a, _b;
920
+ var _a;
1096
921
  const faker = createFaker(config.seed);
1097
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1098
922
  const type = config.type || faker.random.arrayElement([
1099
923
  prismicT__namespace.LinkType.Web,
1100
924
  prismicT__namespace.LinkType.Document,
1101
925
  prismicT__namespace.LinkType.Media
1102
926
  ]);
1103
- if (isFilled) {
927
+ if (config.state === "empty") {
928
+ return {
929
+ link_type: type
930
+ };
931
+ } else {
1104
932
  switch (type) {
1105
933
  case prismicT__namespace.LinkType.Document: {
1106
934
  return contentRelationship({
1107
935
  seed: config.seed,
1108
- isFilled,
936
+ state: config.state,
1109
937
  linkableDocuments: config.linkableDocuments
1110
938
  });
1111
939
  }
1112
940
  case prismicT__namespace.LinkType.Media: {
1113
941
  return linkToMedia({
1114
942
  seed: config.seed,
1115
- isFilled
943
+ state: config.state
1116
944
  });
1117
945
  }
1118
- case prismicT__namespace.LinkType.Web: {
946
+ case prismicT__namespace.LinkType.Web:
947
+ default: {
1119
948
  const model = config.model || link$1({ seed: config.seed });
1120
949
  return {
1121
950
  link_type: prismicT__namespace.LinkType.Web,
1122
951
  url: faker.internet.url(),
1123
- target: ((_b = config.withTargetBlank) != null ? _b : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
952
+ target: ((_a = config.withTargetBlank) != null ? _a : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1124
953
  };
1125
954
  }
1126
955
  }
1127
956
  }
1128
- return {
1129
- link_type: type
1130
- };
1131
957
  };
1132
958
 
1133
959
  const number = (config = {}) => {
1134
960
  const faker = createFaker(config.seed);
1135
- return faker.datatype.number();
961
+ return config.state === "empty" ? null : faker.datatype.number();
1136
962
  };
1137
963
 
1138
- const patterns$8 = {
964
+ const patterns$5 = {
1139
965
  short: {
1140
966
  minWords: 1,
1141
967
  maxWords: 3
@@ -1162,8 +988,8 @@ const heading = (config = {}) => {
1162
988
  ].includes(type2));
1163
989
  const type = faker.random.arrayElement(types);
1164
990
  if (type) {
1165
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$8));
1166
- const pattern = patterns$8[patternKey];
991
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
992
+ const pattern = patterns$5[patternKey];
1167
993
  return {
1168
994
  type,
1169
995
  text: changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({
@@ -1177,7 +1003,7 @@ const heading = (config = {}) => {
1177
1003
  }
1178
1004
  };
1179
1005
 
1180
- const patterns$7 = {
1006
+ const patterns$4 = {
1181
1007
  short: {
1182
1008
  sentenceCount: 2
1183
1009
  },
@@ -1190,8 +1016,8 @@ const patterns$7 = {
1190
1016
  };
1191
1017
  const paragraph = (config = {}) => {
1192
1018
  const faker = createFaker(config.seed);
1193
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$7));
1194
- const pattern = patterns$7[patternKey];
1019
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1020
+ const pattern = patterns$4[patternKey];
1195
1021
  return {
1196
1022
  type: prismicT__namespace.RichTextNodeType.paragraph,
1197
1023
  text: faker.lorem.paragraph(pattern.sentenceCount),
@@ -1199,7 +1025,7 @@ const paragraph = (config = {}) => {
1199
1025
  };
1200
1026
  };
1201
1027
 
1202
- const patterns$6 = {
1028
+ const patterns$3 = {
1203
1029
  short: {
1204
1030
  sentenceCount: 2
1205
1031
  },
@@ -1212,8 +1038,8 @@ const patterns$6 = {
1212
1038
  };
1213
1039
  const preformatted = (config = {}) => {
1214
1040
  const faker = createFaker(config.seed);
1215
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$6));
1216
- const pattern = patterns$6[patternKey];
1041
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1042
+ const pattern = patterns$3[patternKey];
1217
1043
  return {
1218
1044
  type: prismicT__namespace.RichTextNodeType.preformatted,
1219
1045
  text: faker.lorem.paragraph(pattern.sentenceCount),
@@ -1221,7 +1047,7 @@ const preformatted = (config = {}) => {
1221
1047
  };
1222
1048
  };
1223
1049
 
1224
- const patterns$5 = {
1050
+ const patterns$2 = {
1225
1051
  short: {
1226
1052
  minItems: 1,
1227
1053
  maxItems: 3
@@ -1237,8 +1063,8 @@ const patterns$5 = {
1237
1063
  };
1238
1064
  const list = (config = {}) => {
1239
1065
  const faker = createFaker(config.seed);
1240
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1241
- const pattern = patterns$5[patternKey];
1066
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1067
+ const pattern = patterns$2[patternKey];
1242
1068
  const itemsCount = faker.datatype.number({
1243
1069
  min: pattern.minItems,
1244
1070
  max: pattern.maxItems
@@ -1252,7 +1078,7 @@ const list = (config = {}) => {
1252
1078
  });
1253
1079
  };
1254
1080
 
1255
- const patterns$4 = {
1081
+ const patterns$1 = {
1256
1082
  short: {
1257
1083
  minItems: 1,
1258
1084
  maxItems: 3
@@ -1268,8 +1094,8 @@ const patterns$4 = {
1268
1094
  };
1269
1095
  const oList = (config = {}) => {
1270
1096
  const faker = createFaker(config.seed);
1271
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1272
- const pattern = patterns$4[patternKey];
1097
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1098
+ const pattern = patterns$1[patternKey];
1273
1099
  const itemsCount = faker.datatype.number({
1274
1100
  min: pattern.minItems,
1275
1101
  max: pattern.maxItems
@@ -1285,7 +1111,11 @@ const oList = (config = {}) => {
1285
1111
 
1286
1112
  const image = (config = {}) => {
1287
1113
  const imageData = getMockImageData({ seed: config.seed });
1288
- const imageField = buildImageField({ seed: config.seed, imageData });
1114
+ const imageField = buildImageFieldImage({
1115
+ seed: config.seed,
1116
+ imageData,
1117
+ state: false
1118
+ });
1289
1119
  return {
1290
1120
  type: prismicT__namespace.RichTextNodeType.image,
1291
1121
  alt: imageField.alt,
@@ -1304,7 +1134,7 @@ const embed = (config = {}) => {
1304
1134
  };
1305
1135
  };
1306
1136
 
1307
- const patterns$3 = {
1137
+ const patterns = {
1308
1138
  short: {
1309
1139
  blockCountMin: 1,
1310
1140
  blockCountMax: 2
@@ -1341,8 +1171,8 @@ const richText = (config = {}) => {
1341
1171
  const supportsMultipleBlocks = "multi" in model.config;
1342
1172
  const types = ("multi" in model.config ? model.config.multi : model.config.single).split(",").filter((type) => Object.keys(generators).includes(type));
1343
1173
  if (types.length > 0) {
1344
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1345
- const pattern = patterns$3[patternKey];
1174
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1175
+ const pattern = patterns[patternKey];
1346
1176
  const blockCount = supportsMultipleBlocks ? faker.datatype.number({
1347
1177
  min: pattern.blockCountMin,
1348
1178
  max: pattern.blockCountMax
@@ -1361,38 +1191,22 @@ const select = (config = {}) => {
1361
1191
  const faker = createFaker(config.seed);
1362
1192
  const model = config.model || select$1({ seed: config.seed });
1363
1193
  const defaultValue = model.config.default_value;
1364
- return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1365
- };
1366
-
1367
- const patterns$2 = {
1368
- none: {
1369
- minItems: 0,
1370
- maxItems: 0
1371
- },
1372
- short: {
1373
- minItems: 1,
1374
- maxItems: 3
1375
- },
1376
- medium: {
1377
- minItems: 3,
1378
- maxItems: 6
1379
- },
1380
- long: {
1381
- minItems: 6,
1382
- maxItems: 12
1194
+ if (config.state === "empty") {
1195
+ return null;
1196
+ } else {
1197
+ return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1383
1198
  }
1384
1199
  };
1200
+
1385
1201
  const slice = (config = {}) => {
1386
- var _a;
1202
+ var _a, _b;
1387
1203
  const faker = createFaker(config.seed);
1388
1204
  const model = config.model || slice$1({ seed: config.seed });
1389
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1390
- const pattern = patterns$2[patternKey];
1391
1205
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1392
1206
  const sliceLabel = config.label !== void 0 ? config.label : changeCase__namespace.capitalCase(faker.company.bsNoun());
1393
- const itemsCount = Object.keys(model.repeat).length > 0 ? faker.datatype.number({
1394
- min: pattern.minItems,
1395
- max: pattern.maxItems
1207
+ const itemsCount = Object.keys(model.repeat).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1208
+ min: 1,
1209
+ max: 6
1396
1210
  }) : 0;
1397
1211
  return {
1398
1212
  slice_type: sliceType,
@@ -1412,39 +1226,18 @@ const slice = (config = {}) => {
1412
1226
  };
1413
1227
  };
1414
1228
 
1415
- const patterns$1 = {
1416
- none: {
1417
- minItems: 0,
1418
- maxItems: 0
1419
- },
1420
- short: {
1421
- minItems: 1,
1422
- maxItems: 3
1423
- },
1424
- medium: {
1425
- minItems: 3,
1426
- maxItems: 6
1427
- },
1428
- long: {
1429
- minItems: 6,
1430
- maxItems: 12
1431
- }
1432
- };
1433
1229
  const sharedSliceVariation = (config = {}) => {
1434
1230
  var _a, _b;
1435
1231
  const faker = createFaker(config.seed);
1436
1232
  const model = config.model || sharedSliceVariation$1({ seed: config.seed });
1437
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1438
- const pattern = patterns$1[patternKey];
1439
1233
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1440
- const sliceLabel = (_b = config.label) != null ? _b : changeCase__namespace.capitalCase(faker.company.bsNoun());
1441
- const itemsCount = Object.keys(model.items).length > 0 ? faker.datatype.number({
1442
- min: pattern.minItems,
1443
- max: pattern.maxItems
1234
+ const itemsCount = Object.keys(model.items).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1235
+ min: 1,
1236
+ max: 6
1444
1237
  }) : 0;
1445
1238
  return {
1446
1239
  slice_type: sliceType,
1447
- slice_label: sliceLabel,
1240
+ slice_label: null,
1448
1241
  variation: model.id,
1449
1242
  version: faker.git.shortSha(),
1450
1243
  primary: valueForModelMap({
@@ -1469,76 +1262,73 @@ const sharedSlice = (config = {}) => {
1469
1262
  return sharedSliceVariation({
1470
1263
  seed: config.seed,
1471
1264
  model: variationModel,
1472
- pattern: config.pattern,
1265
+ itemsCount: config.itemsCount,
1473
1266
  type: model.id,
1474
1267
  primaryFieldConfigs: config.primaryFieldConfigs,
1475
1268
  itemsFieldConfigs: config.itemsFieldConfigs
1476
1269
  });
1477
1270
  };
1478
1271
 
1479
- const patterns = {
1480
- short: {
1481
- minItems: 1,
1482
- maxItems: 3
1483
- },
1484
- medium: {
1485
- minItems: 3,
1486
- maxItems: 6
1487
- },
1488
- long: {
1489
- minItems: 6,
1490
- maxItems: 12
1491
- }
1492
- };
1493
1272
  const sliceZone = (config = {}) => {
1494
- const faker = createFaker(config.seed);
1495
- const model = config.model || sliceZone$1({ seed: config.seed });
1496
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1497
- const pattern = patterns[patternKey];
1498
- const itemsCount = faker.datatype.number({
1499
- min: pattern.minItems,
1500
- max: pattern.maxItems
1501
- });
1502
- return Array(itemsCount).fill(void 0).map(() => {
1503
- var _a;
1504
- const choices = Object.entries(model.config.choices);
1505
- const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1506
- const choiceLabels = model.config.labels[choiceType] || [];
1507
- const choiceLabel = faker.random.arrayElement(choiceLabels);
1508
- switch (choiceModel.type) {
1509
- case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1510
- return slice({
1511
- seed: config.seed,
1512
- model: choiceModel,
1513
- type: choiceType,
1514
- label: choiceLabel ? choiceLabel.name : null,
1515
- primaryFieldConfigs: config.primaryFieldConfigs,
1516
- itemsFieldConfigs: config.itemsFieldConfigs
1517
- });
1518
- }
1519
- case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1520
- const sharedSliceModel = (_a = config.sharedSliceModels) == null ? void 0 : _a.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1521
- if (sharedSliceModel) {
1522
- return sharedSlice({
1523
- seed: config.seed,
1524
- model: sharedSliceModel,
1525
- primaryFieldConfigs: config.primaryFieldConfigs,
1526
- itemsFieldConfigs: config.itemsFieldConfigs
1527
- });
1273
+ var _a;
1274
+ if (config.state === "empty") {
1275
+ return [];
1276
+ } else {
1277
+ const faker = createFaker(config.seed);
1278
+ const model = config.model || sliceZone$1({ seed: config.seed });
1279
+ if (Object.keys(model.config.choices).length > 0) {
1280
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
1281
+ min: 1,
1282
+ max: 6
1283
+ });
1284
+ return Array(itemsCount).fill(void 0).map(() => {
1285
+ var _a2;
1286
+ const choices = Object.entries(model.config.choices);
1287
+ const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1288
+ const choiceLabels = model.config.labels[choiceType] || [];
1289
+ const choiceLabel = faker.random.arrayElement(choiceLabels);
1290
+ switch (choiceModel.type) {
1291
+ case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1292
+ return slice({
1293
+ seed: config.seed,
1294
+ model: choiceModel,
1295
+ type: choiceType,
1296
+ label: choiceLabel ? choiceLabel.name : null,
1297
+ primaryFieldConfigs: config.primaryFieldConfigs,
1298
+ itemsFieldConfigs: config.itemsFieldConfigs
1299
+ });
1300
+ }
1301
+ case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1302
+ const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1303
+ if (sharedSliceModel) {
1304
+ return sharedSlice({
1305
+ seed: config.seed,
1306
+ model: sharedSliceModel,
1307
+ primaryFieldConfigs: config.primaryFieldConfigs,
1308
+ itemsFieldConfigs: config.itemsFieldConfigs
1309
+ });
1310
+ }
1311
+ }
1528
1312
  }
1529
- }
1313
+ }).filter((slice2) => slice2 !== void 0);
1314
+ } else {
1315
+ return [];
1530
1316
  }
1531
- }).filter((slice2) => slice2 !== void 0);
1317
+ }
1532
1318
  };
1533
1319
 
1534
1320
  const title = (config = {}) => {
1535
- return [
1536
- heading({
1537
- seed: config.seed,
1538
- model: config.model,
1539
- pattern: config.pattern
1540
- })
1541
- ];
1321
+ if (config.state === "empty") {
1322
+ return [];
1323
+ } else {
1324
+ return [
1325
+ heading({
1326
+ seed: config.seed,
1327
+ model: config.model,
1328
+ pattern: config.pattern
1329
+ })
1330
+ ];
1331
+ }
1542
1332
  };
1543
1333
 
1544
1334
  const uid = (config = {}) => {
@@ -1546,7 +1336,7 @@ const uid = (config = {}) => {
1546
1336
  return changeCase__namespace.snakeCase(faker.lorem.words(2));
1547
1337
  };
1548
1338
 
1549
- exports.boolean = boolean$1;
1339
+ exports.boolean = boolean;
1550
1340
  exports.color = color;
1551
1341
  exports.contentRelationship = contentRelationship;
1552
1342
  exports.customType = customType;
@@ -1570,3 +1360,4 @@ exports.sliceZone = sliceZone;
1570
1360
  exports.timestamp = timestamp;
1571
1361
  exports.title = title;
1572
1362
  exports.uid = uid;
1363
+ //# sourceMappingURL=index.cjs.map