@prismicio/mock 0.0.3 → 0.0.7

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