@prismicio/mock 0.0.6 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +242 -122
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +3 -2
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +669 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +581 -571
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +155 -247
  11. package/dist/{index.mjs → index.js} +574 -561
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +294 -257
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +72 -106
  16. package/dist/model/index.d.ts.map +1 -0
  17. package/dist/model/index.js +556 -0
  18. package/dist/model/index.js.map +1 -0
  19. package/dist/value/index.cjs +500 -647
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +71 -129
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/index.js +1461 -0
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +30 -27
  26. package/src/api/query.ts +2 -2
  27. package/src/api/ref.ts +3 -3
  28. package/src/api/repository.ts +5 -5
  29. package/src/lib/buildContentRelationshipField.ts +6 -1
  30. package/src/lib/buildEmbedField.ts +16 -27
  31. package/src/lib/buildImageFieldImage.ts +49 -0
  32. package/src/lib/createFaker.ts +98 -20
  33. package/src/lib/generateCustomTypeId.ts +1 -1
  34. package/src/lib/generateFieldId.ts +1 -3
  35. package/src/lib/generateTags.ts +4 -12
  36. package/src/lib/getMockEmbedData.ts +33 -12
  37. package/src/lib/getMockImageData.ts +1 -1
  38. package/src/lib/lorem.ts +112 -0
  39. package/src/model/boolean.ts +1 -1
  40. package/src/model/buildMockGroupFieldMap.ts +65 -0
  41. package/src/model/color.ts +2 -2
  42. package/src/model/contentRelationship.ts +16 -23
  43. package/src/model/customType.ts +49 -48
  44. package/src/model/date.ts +2 -2
  45. package/src/model/embed.ts +2 -2
  46. package/src/model/geoPoint.ts +1 -1
  47. package/src/model/group.ts +9 -16
  48. package/src/model/image.ts +16 -20
  49. package/src/model/index.ts +2 -0
  50. package/src/model/integrationFields.ts +5 -3
  51. package/src/model/keyText.ts +2 -2
  52. package/src/model/link.ts +3 -3
  53. package/src/model/linkToMedia.ts +2 -2
  54. package/src/model/number.ts +2 -2
  55. package/src/model/richText.ts +6 -6
  56. package/src/model/select.ts +13 -18
  57. package/src/model/sharedSlice.ts +15 -42
  58. package/src/model/sharedSliceVariation.ts +36 -24
  59. package/src/model/slice.ts +19 -23
  60. package/src/model/sliceZone.ts +23 -59
  61. package/src/model/timestamp.ts +2 -2
  62. package/src/model/title.ts +5 -5
  63. package/src/model/uid.ts +2 -2
  64. package/src/types.ts +130 -88
  65. package/src/value/boolean.ts +1 -1
  66. package/src/value/color.ts +16 -6
  67. package/src/value/contentRelationship.ts +54 -39
  68. package/src/value/customType.ts +5 -5
  69. package/src/value/date.ts +25 -9
  70. package/src/value/embed.ts +32 -7
  71. package/src/value/geoPoint.ts +21 -11
  72. package/src/value/group.ts +31 -45
  73. package/src/value/image.ts +22 -9
  74. package/src/value/integrationFields.ts +26 -14
  75. package/src/value/keyText.ts +16 -6
  76. package/src/value/link.ts +36 -37
  77. package/src/value/linkToMedia.ts +19 -23
  78. package/src/value/number.ts +16 -6
  79. package/src/value/richText/embed.ts +2 -2
  80. package/src/value/richText/heading.ts +10 -17
  81. package/src/value/richText/image.ts +8 -6
  82. package/src/value/richText/index.ts +4 -9
  83. package/src/value/richText/list.ts +4 -8
  84. package/src/value/richText/oList.ts +4 -8
  85. package/src/value/richText/paragraph.ts +8 -4
  86. package/src/value/richText/preformatted.ts +9 -5
  87. package/src/value/select.ts +23 -8
  88. package/src/value/sharedSlice.ts +3 -3
  89. package/src/value/sharedSliceVariation.ts +4 -36
  90. package/src/value/slice.ts +3 -32
  91. package/src/value/sliceZone.ts +54 -69
  92. package/src/value/timestamp.ts +42 -16
  93. package/src/value/title.ts +26 -13
  94. package/src/value/uid.ts +2 -2
  95. package/dist/api/index.mjs +0 -515
  96. package/dist/model/index.mjs +0 -465
  97. package/dist/value/index.mjs +0 -1554
  98. package/src/lib/buildImageField.ts +0 -34
  99. package/src/lib/buildMockGroupFieldMap.ts +0 -84
@@ -4,63 +4,155 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const prismicT = require('@prismicio/types');
6
6
  const changeCase = require('change-case');
7
- const fakerLocaleEN = require('faker/lib/locales/en/index.js');
8
- const Faker = require('faker/lib/index.js');
7
+ const Rand = require('rand-seed');
9
8
 
10
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
10
 
12
11
  function _interopNamespace(e) {
13
12
  if (e && e.__esModule) return e;
14
- var n = Object.create(null);
13
+ const n = Object.create(null);
15
14
  if (e) {
16
- Object.keys(e).forEach(function (k) {
15
+ for (const k in e) {
17
16
  if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
17
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
18
  Object.defineProperty(n, k, d.get ? d : {
20
19
  enumerable: true,
21
- get: function () {
22
- return e[k];
23
- }
20
+ get: function () { return e[k]; }
24
21
  });
25
22
  }
26
- });
23
+ }
27
24
  }
28
- n['default'] = e;
25
+ n["default"] = e;
29
26
  return Object.freeze(n);
30
27
  }
31
28
 
32
29
  const prismicT__namespace = /*#__PURE__*/_interopNamespace(prismicT);
33
30
  const changeCase__namespace = /*#__PURE__*/_interopNamespace(changeCase);
34
- const fakerLocaleEN__namespace = /*#__PURE__*/_interopNamespace(fakerLocaleEN);
35
- const Faker__default = /*#__PURE__*/_interopDefaultLegacy(Faker);
31
+ const Rand__default = /*#__PURE__*/_interopDefaultLegacy(Rand);
36
32
 
37
33
  const FAKER_SEED = 1984;
38
34
 
35
+ const wordsString = "lorem ipsum dolor sit amet, consectetur adipiscing elit ut aliquam, purus sit amet luctus venenatis, lectus magna fringilla urna, porttitor rhoncus dolor purus non enim praesent elementum facilisis leo, vel fringilla est ullamcorper eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis mauris sit amet massa vitae tortor condimentum lacinia quis vel eros donec ac odio tempor orci dapibus ultrices in iaculis nunc sed augue lacus, viverra vitae congue eu, consequat ac felis donec et odio pellentesque diam volutpat commodo sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc sed velit dignissim sodales ut eu sem integer vitae justo eget magna fermentum iaculis eu non diam phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet enim tortor, at auctor urna nunc id cursus metus aliquam eleifend mi in nulla posuere sollicitudin aliquam ultrices sagittis orci, a scelerisque purus semper eget duis at tellus at urna condimentum mattis pellentesque id nibh tortor, id aliquet lectus proin nibh nisl, condimentum id venenatis a, condimentum vitae sapien pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas sed tempus, urna et pharetra pharetra, massa massa ultricies mi, quis hendrerit dolor magna eget est lorem ipsum dolor sit amet, consectetur adipiscing elit pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas integer eget aliquet nibh praesent tristique magna sit amet purus gravida quis blandit turpis cursus in hac habitasse platea dictumst quisque sagittis, purus sit amet volutpat consequat, mauris nunc congue nisi, vitae suscipit tellus mauris a diam maecenas sed enim ut sem viverra aliquet eget sit amet tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra, magna ac placerat vestibulum, lectus mauris ultrices eros, in cursus turpis massa tincidunt dui ut ornare lectus sit amet est placerat in egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam ut porttitor leo a diam sollicitudin tempor id eu nisl nunc mi ipsum, faucibus vitae aliquet nec, ullamcorper sit amet risus nullam eget felis eget nunc lobortis mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus, sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien, faucibus et molestie ac, feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa, eget egestas purus viverra accumsan in nisl nisi, scelerisque eu ultrices vitae, auctor eu augue ut lectus arcu, bibendum at varius vel, pharetra vel turpis nunc eget lorem dolor, sed viverra ipsum nunc aliquet bibendum enim, facilisis gravida neque convallis a cras semper auctor neque, vitae tempus quam pellentesque nec nam aliquam sem et tortor consequat id porta nibh venenatis cras sed felis eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar elementum integer enim neque, volutpat ac tincidunt vitae, semper quis lectus nulla at volutpat diam ut venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci porta non pulvinar neque laoreet suspendisse interdum consectetur libero, id faucibus nisl tincidunt eget nullam non nisi est, sit amet facilisis magna etiam tempor, orci eu lobortis elementum, nibh tellus molestie nunc, non blandit massa enim nec dui nunc mattis enim ut tellus elementum sagittis vitae et leo duis ut diam quam nulla porttitor massa id neque aliquam vestibulum morbi blandit cursus risus, at ultrices mi tempus imperdiet nulla malesuada pellentesque elit eget gravida cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc vel risus commodo viverra maecenas accumsan, lacus vel facilisis volutpat, est velit egestas dui, id ornare arcu odio ut sem nulla pharetra diam sit amet nisl suscipit adipiscing bibendum est ultricies integer quis auctor elit sed vulputate mi sit amet mauris commodo quis imperdiet massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero nunc, consequat interdum varius sit amet, mattis vulputate enim nulla aliquet porttitor lacus, luctus accumsan tortor posuere ac ut consequat semper viverra nam libero justo, laoreet sit amet cursus sit amet, dictum sit amet justo donec enim diam, vulputate ut pharetra sit amet, aliquam id diam maecenas ultricies mi eget mauris pharetra et ultrices neque ornare aenean euismod elementum nisi, quis eleifend quam adipiscing vitae proin sagittis, nisl rhoncus mattis rhoncus, urna neque viverra justo, nec ultrices dui sapien eget mi proin sed libero enim, sed faucibus turpis in eu mi bibendum neque egestas congue quisque egestas diam in arcu cursus euismod quis viverra nibh cras pulvinar mattis nunc, sed blandit libero volutpat sed cras ornare arcu dui vivamus arcu felis, bibendum ut tristique et, egestas quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim, sit amet venenatis urna cursus eget nunc scelerisque viverra mauris, in aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod in pellentesque massa placerat duis ultricies lacus sed turpis tincidunt id aliquet risus feugiat in ante metus, dictum at tempor commodo, ullamcorper a lacus vestibulum sed arcu non odio euismod lacinia at quis risus sed vulputate odio ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat velit, scelerisque in dictum non, consectetur a erat nam at lectus urna duis convallis convallis tellus, id interdum velit laoreet id donec ultrices tincidunt arcu, non sodales neque sodales ut etiam sit amet nisl purus, in mollis nunc sed id semper risus in hendrerit gravida rutrum quisque non tellus orci, ac auctor augue mauris augue neque, gravida in fermentum et, sollicitudin ac orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum, odio eu feugiat pretium, nibh ipsum consequat nisl, vel pretium lectus quam id leo in vitae turpis massa sed elementum tempus egestas sed sed risus pretium quam vulputate dignissim suspendisse in est ante in nibh mauris, cursus mattis molestie a, iaculis at erat pellentesque adipiscing commodo elit, at imperdiet dui accumsan sit amet nulla facilisi morbi tempus iaculis urna, id volutpat lacus laoreet non curabitur gravida arcu ac tortor dignissim convallis aenean et tortor at risus viverra adipiscing at in tellus integer feugiat scelerisque varius morbi enim nunc, faucibus a pellentesque sit amet, porttitor eget dolor morbi non arcu risus, quis varius quam quisque id diam vel quam elementum pulvinar etiam non quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit amet, consectetur adipiscing elit duis tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi leo urna, molestie at elementum eu, facilisis sed odio morbi quis commodo odio aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat in fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida hendrerit lectus a molestie";
36
+ const loremWords = wordsString.split(" ");
37
+ const lorem = (length, wordOffset = 0) => {
38
+ const count = parseInt(length.substring(0, length.length - 1));
39
+ const countType = length.charAt(length.length - 1);
40
+ if (!isNaN(count) && (countType === "w" || countType === "c")) {
41
+ if (!lorem.spaceIndices.length) {
42
+ let startIndex = -1;
43
+ do {
44
+ const index = wordsString.indexOf(" ", startIndex + 1);
45
+ lorem.spaceIndices.push(index);
46
+ startIndex = index;
47
+ } while (startIndex !== -1);
48
+ }
49
+ if (countType === "c") {
50
+ return wordsString.substring(0, count);
51
+ } else {
52
+ let sentence = "";
53
+ const startSpaceIndex = lorem.spaceIndices[wordOffset % lorem.spaceIndices.length - 1];
54
+ const endSpaceIndex = lorem.spaceIndices[(wordOffset % lorem.spaceIndices.length + count) % lorem.spaceIndices.length - 1];
55
+ if (count + wordOffset % lorem.spaceIndices.length > lorem.spaceIndices.length) {
56
+ sentence += wordsString.substring(startSpaceIndex + 1) + " ";
57
+ const wraparoundCounts = Math.floor(count / lorem.spaceIndices.length) - 1;
58
+ for (let i = 0; i < wraparoundCounts; i++) {
59
+ sentence += wordsString + " ";
60
+ }
61
+ sentence += wordsString.substring(0, endSpaceIndex);
62
+ } else {
63
+ sentence = wordsString.substring(startSpaceIndex + 1, endSpaceIndex);
64
+ }
65
+ if (sentence.charAt(sentence.length - 1) === ",") {
66
+ return sentence.substring(0, sentence.length - 1);
67
+ } else {
68
+ return sentence.substring(0, sentence.length);
69
+ }
70
+ }
71
+ }
72
+ throw new Error("Length must be of the form `${number}w` or `${number}c`");
73
+ };
74
+ lorem.spaceIndices = [];
75
+
39
76
  const createFaker = (seed = FAKER_SEED) => {
40
- let normalizedSeed;
41
- if (typeof seed === "string") {
42
- normalizedSeed = seed.split("").map((char) => char.charCodeAt(0));
77
+ const normalizedSeed = seed.toString();
78
+ if (createFaker.cache[normalizedSeed]) {
79
+ return createFaker.cache[normalizedSeed];
43
80
  } else {
44
- normalizedSeed = seed;
45
- }
46
- const cacheKey = JSON.stringify(normalizedSeed);
47
- if (createFaker.cache[cacheKey]) {
48
- return createFaker.cache[cacheKey];
81
+ const faker = new Faker(normalizedSeed);
82
+ return createFaker.cache[normalizedSeed] = faker;
49
83
  }
50
- const fakerInstance = new Faker__default['default']();
51
- fakerInstance.locales["en"] = fakerLocaleEN__namespace;
52
- fakerInstance.seed(normalizedSeed);
53
- createFaker.cache[cacheKey] = fakerInstance;
54
- return fakerInstance;
55
84
  };
56
85
  createFaker.cache = {};
86
+ const DAY_MS = 1e3 * 60 * 60 * 24;
87
+ const YEAR_MS = DAY_MS * 365;
88
+ const YEAR_2022_MS = 52 * (YEAR_MS + DAY_MS / 4);
89
+ class Faker {
90
+ constructor(seed) {
91
+ this.rand = new Rand__default["default"](seed);
92
+ }
93
+ boolean() {
94
+ return this.random() >= 0.5;
95
+ }
96
+ random() {
97
+ return this.rand.next();
98
+ }
99
+ randomElement(elements) {
100
+ return elements[this.range(0, elements.length)];
101
+ }
102
+ randomElements(elements) {
103
+ return elements.filter(() => this.boolean());
104
+ }
105
+ range(min, max) {
106
+ return Math.floor(this.rangeFloat(Math.ceil(min), Math.floor(max)));
107
+ }
108
+ rangeFloat(min, max) {
109
+ return this.random() * (max - min) + min;
110
+ }
111
+ words(length, wordOffset = this.range(0, loremWords.length)) {
112
+ return lorem(`${length}w`, wordOffset);
113
+ }
114
+ word() {
115
+ return this.randomElement(loremWords);
116
+ }
117
+ lorem(length, wordOffset = this.range(0, loremWords.length)) {
118
+ return lorem(length, wordOffset);
119
+ }
120
+ url() {
121
+ return `https://${this.word()}.example`;
122
+ }
123
+ hexColor() {
124
+ return `#${this.hash(6)}`;
125
+ }
126
+ hash(length) {
127
+ let hash = "";
128
+ for (let i = 0; i < length; i++) {
129
+ const chars = this.boolean() ? "abcdef" : "0123456789";
130
+ hash += chars[this.range(0, chars.length)];
131
+ }
132
+ return hash;
133
+ }
134
+ date() {
135
+ return new Date(YEAR_2022_MS + this.range(-YEAR_MS * 3, YEAR_MS * 3));
136
+ }
137
+ dateAfter(date) {
138
+ const timestamp = date.getTime();
139
+ return new Date(this.range(timestamp, timestamp + YEAR_MS * 3));
140
+ }
141
+ dateBefore(date) {
142
+ const timestamp = date.getTime();
143
+ return new Date(this.range(timestamp - YEAR_MS * 3, timestamp));
144
+ }
145
+ dateBetween(min, max) {
146
+ return new Date(this.range(min.getTime(), max.getTime()));
147
+ }
148
+ }
57
149
 
58
150
  const boolean = (config = {}) => {
59
151
  const faker = createFaker(config.seed);
60
152
  return {
61
153
  type: prismicT__namespace.CustomTypeModelFieldType.Boolean,
62
154
  config: {
63
- label: changeCase__namespace.capitalCase(faker.company.bsNoun())
155
+ label: changeCase__namespace.capitalCase(faker.word())
64
156
  }
65
157
  };
66
158
  };
@@ -70,38 +162,58 @@ const color = (config = {}) => {
70
162
  return {
71
163
  type: prismicT__namespace.CustomTypeModelFieldType.Color,
72
164
  config: {
73
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
74
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
165
+ label: changeCase__namespace.capitalCase(faker.word()),
166
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
75
167
  }
76
168
  };
77
169
  };
78
170
 
79
- const generateCustomTypeId = (config) => {
80
- const faker = createFaker(config.seed);
81
- return changeCase__namespace.snakeCase(faker.company.bsNoun());
82
- };
83
-
84
171
  const contentRelationship = (config = {}) => {
85
172
  const faker = createFaker(config.seed);
86
173
  return {
87
174
  type: prismicT__namespace.CustomTypeModelFieldType.Link,
88
175
  config: {
89
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
90
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
176
+ label: changeCase__namespace.capitalCase(faker.word()),
177
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3)),
91
178
  select: prismicT__namespace.CustomTypeModelLinkSelectType.Document,
92
- customtypes: config.constrainCustomTypes ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => generateCustomTypeId({ seed: config.seed })) : void 0,
93
- 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
179
+ customtypes: config.customTypeIDs,
180
+ tags: config.tags
94
181
  }
95
182
  };
96
183
  };
97
184
 
185
+ const customType = (config = {}) => {
186
+ var _a, _b;
187
+ const faker = createFaker(config.seed);
188
+ let label = config.label || changeCase__namespace.capitalCase(faker.words(faker.range(1, 2)));
189
+ let id = config.id || changeCase__namespace.snakeCase(label);
190
+ if (config.id && !config.label) {
191
+ label = changeCase__namespace.capitalCase(config.id);
192
+ } else if (config.label && !config.label) {
193
+ id = changeCase__namespace.snakeCase(config.label);
194
+ }
195
+ let json = {};
196
+ if ("fields" in config && config.fields) {
197
+ json = { Main: config.fields };
198
+ } else if ("tabs" in config && config.tabs) {
199
+ json = config.tabs;
200
+ }
201
+ return {
202
+ id,
203
+ label,
204
+ status: (_a = config.status) != null ? _a : faker.boolean(),
205
+ repeatable: (_b = config.repeatable) != null ? _b : faker.boolean(),
206
+ json
207
+ };
208
+ };
209
+
98
210
  const date = (config = {}) => {
99
211
  const faker = createFaker(config.seed);
100
212
  return {
101
213
  type: prismicT__namespace.CustomTypeModelFieldType.Date,
102
214
  config: {
103
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
104
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
215
+ label: changeCase__namespace.capitalCase(faker.word()),
216
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
105
217
  }
106
218
  };
107
219
  };
@@ -111,8 +223,8 @@ const embed = (config = {}) => {
111
223
  return {
112
224
  type: prismicT__namespace.CustomTypeModelFieldType.Embed,
113
225
  config: {
114
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
115
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
226
+ label: changeCase__namespace.capitalCase(faker.word()),
227
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
116
228
  }
117
229
  };
118
230
  };
@@ -122,28 +234,40 @@ const geoPoint = (config = {}) => {
122
234
  return {
123
235
  type: prismicT__namespace.CustomTypeModelFieldType.GeoPoint,
124
236
  config: {
125
- label: changeCase__namespace.capitalCase(faker.company.bsNoun())
237
+ label: changeCase__namespace.capitalCase(faker.word())
238
+ }
239
+ };
240
+ };
241
+
242
+ const group = (config = {}) => {
243
+ const faker = createFaker(config.seed);
244
+ return {
245
+ type: prismicT__namespace.CustomTypeModelFieldType.Group,
246
+ config: {
247
+ label: changeCase__namespace.capitalCase(faker.word()),
248
+ fields: config.fields || {}
126
249
  }
127
250
  };
128
251
  };
129
252
 
130
253
  const image = (config = {}) => {
131
- var _a;
132
254
  const faker = createFaker(config.seed);
133
- const thumbnailsCount = (_a = config.thumbnailsCount) != null ? _a : faker.datatype.number(3);
255
+ const thumbnails = (config.thumbnailNames || []).map((name) => {
256
+ return {
257
+ name,
258
+ width: faker.range(500, 2e3),
259
+ height: faker.range(500, 2e3)
260
+ };
261
+ });
134
262
  return {
135
263
  type: prismicT__namespace.CustomTypeModelFieldType.Image,
136
264
  config: {
137
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
265
+ label: changeCase__namespace.capitalCase(faker.word()),
138
266
  constraint: {
139
- width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
140
- height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
267
+ width: config.withConstraint ? faker.range(500, 2e3) : null,
268
+ height: config.withConstraint ? faker.range(500, 2e3) : null
141
269
  },
142
- thumbnails: Array(thumbnailsCount).fill(void 0).map(() => ({
143
- name: changeCase__namespace.pascalCase(faker.company.bsNoun()),
144
- width: faker.datatype.number({ min: 500, max: 2e3 }),
145
- height: faker.datatype.number({ min: 500, max: 2e3 })
146
- }))
270
+ thumbnails
147
271
  }
148
272
  };
149
273
  };
@@ -153,8 +277,8 @@ const integrationFields = (config = {}) => {
153
277
  return {
154
278
  type: prismicT__namespace.CustomTypeModelFieldType.IntegrationFields,
155
279
  config: {
156
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
157
- catalog: changeCase__namespace.snakeCase(faker.lorem.words(4))
280
+ label: changeCase__namespace.capitalCase(faker.word()),
281
+ catalog: config.catalog || changeCase__namespace.snakeCase(faker.words(2))
158
282
  }
159
283
  };
160
284
  };
@@ -164,8 +288,8 @@ const keyText = (config = {}) => {
164
288
  return {
165
289
  type: prismicT__namespace.CustomTypeModelFieldType.Text,
166
290
  config: {
167
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
168
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
291
+ label: changeCase__namespace.capitalCase(faker.word()),
292
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
169
293
  }
170
294
  };
171
295
  };
@@ -175,10 +299,10 @@ const link = (config = {}) => {
175
299
  return {
176
300
  type: prismicT__namespace.CustomTypeModelFieldType.Link,
177
301
  config: {
178
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
179
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
302
+ label: changeCase__namespace.capitalCase(faker.word()),
303
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3)),
180
304
  select: null,
181
- allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.datatype.boolean()) || void 0
305
+ allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.boolean()) || void 0
182
306
  }
183
307
  };
184
308
  };
@@ -188,8 +312,8 @@ const linkToMedia = (config = {}) => {
188
312
  return {
189
313
  type: prismicT__namespace.CustomTypeModelFieldType.Link,
190
314
  config: {
191
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
192
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
315
+ label: changeCase__namespace.capitalCase(faker.word()),
316
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3)),
193
317
  select: prismicT__namespace.CustomTypeModelLinkSelectType.Media
194
318
  }
195
319
  };
@@ -200,8 +324,8 @@ const number = (config = {}) => {
200
324
  return {
201
325
  type: prismicT__namespace.CustomTypeModelFieldType.Number,
202
326
  config: {
203
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
204
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
327
+ label: changeCase__namespace.capitalCase(faker.word()),
328
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
205
329
  }
206
330
  };
207
331
  };
@@ -209,7 +333,7 @@ const number = (config = {}) => {
209
333
  const richText = (config = {}) => {
210
334
  var _a;
211
335
  const faker = createFaker(config.seed);
212
- const blockTypes = faker.random.arrayElements([
336
+ const blockTypes = faker.randomElements([
213
337
  prismicT__namespace.RichTextNodeType.heading1,
214
338
  prismicT__namespace.RichTextNodeType.heading2,
215
339
  prismicT__namespace.RichTextNodeType.heading3,
@@ -226,168 +350,94 @@ const richText = (config = {}) => {
226
350
  prismicT__namespace.RichTextNodeType.embed,
227
351
  prismicT__namespace.RichTextNodeType.hyperlink
228
352
  ]).join(",");
229
- const blockTypeConfig = ((_a = config.withMultipleBlocks) != null ? _a : faker.datatype.boolean()) ? { multi: blockTypes } : { single: blockTypes };
353
+ const blockTypeConfig = ((_a = config.withMultipleBlocks) != null ? _a : faker.boolean()) ? { multi: blockTypes } : { single: blockTypes };
230
354
  return {
231
355
  type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
232
356
  config: {
233
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
234
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
235
- allowTargetBlank: faker.datatype.boolean() ? true : void 0,
357
+ label: changeCase__namespace.capitalCase(faker.word()),
358
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3)),
359
+ allowTargetBlank: faker.boolean() ? true : void 0,
236
360
  ...blockTypeConfig
237
361
  }
238
362
  };
239
363
  };
240
364
 
241
365
  const select = (config = {}) => {
242
- var _a;
243
366
  const faker = createFaker(config.seed);
244
- const optionsCount = (_a = config.optionsCount) != null ? _a : faker.datatype.number({ min: 1, max: 5 });
245
- const options = Array(optionsCount).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.company.bsBuzz()));
246
367
  return {
247
368
  type: prismicT__namespace.CustomTypeModelFieldType.Select,
248
369
  config: {
249
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
250
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
251
- options,
252
- default_value: config.withDefaultValue ? faker.random.arrayElement(options) : void 0
370
+ label: changeCase__namespace.capitalCase(faker.word()),
371
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3)),
372
+ options: config.options || [],
373
+ default_value: config.defaultValue || void 0
253
374
  }
254
375
  };
255
376
  };
256
377
 
257
- const timestamp = (config = {}) => {
378
+ const sharedSlice = (config = {}) => {
258
379
  const faker = createFaker(config.seed);
380
+ let name = config.name || changeCase__namespace.capitalCase(faker.words(faker.range(1, 2)));
381
+ let id = config.id || changeCase__namespace.snakeCase(name);
382
+ if (config.id && !config.name) {
383
+ name = changeCase__namespace.pascalCase(config.id);
384
+ } else if (config.name && !config.name) {
385
+ id = changeCase__namespace.snakeCase(config.name);
386
+ }
259
387
  return {
260
- type: prismicT__namespace.CustomTypeModelFieldType.Timestamp,
261
- config: {
262
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
263
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
264
- }
388
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
389
+ id,
390
+ name,
391
+ description: changeCase__namespace.sentenceCase(faker.words(faker.range(5, 10))),
392
+ variations: config.variations || []
265
393
  };
266
394
  };
267
395
 
268
- const title = (config = {}) => {
269
- const faker = createFaker(config.seed);
270
- const single = faker.random.arrayElements([
271
- "heading1",
272
- "heading2",
273
- "heading3",
274
- "heading4",
275
- "heading5",
276
- "heading6"
277
- ]).join(",");
396
+ const sharedSliceChoice = () => {
278
397
  return {
279
- type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
280
- config: {
281
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
282
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
283
- single,
284
- allowTargetBlank: faker.datatype.boolean() ? true : void 0
285
- }
398
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
286
399
  };
287
400
  };
288
401
 
289
- const generateFieldId = (config) => {
290
- const faker = createFaker(config.seed);
291
- return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
292
- };
293
-
294
- const mockModelFns = {
295
- boolean,
296
- color,
297
- contentRelationship,
298
- date,
299
- embed,
300
- geoPoint,
301
- image,
302
- integrationFields,
303
- keyText,
304
- link,
305
- linkToMedia,
306
- number,
307
- richText,
308
- select,
309
- timestamp,
310
- title
311
- };
312
- const buildMockGroupFieldMap = (config = {}) => {
313
- var _a;
402
+ const sharedSliceVariation = (config = {}) => {
314
403
  const faker = createFaker(config.seed);
315
- const configs = config.configs || {};
316
- const fields = {};
317
- for (const mockModelType in mockModelFns) {
318
- const mockModelFn = mockModelFns[mockModelType];
319
- const mockModelMapConfig = configs[mockModelType] || {};
320
- const count = (_a = mockModelMapConfig.count) != null ? _a : faker.random.arrayElement([0, 0, 0, 1]);
321
- for (let i = 0; i < count; i++) {
322
- const fieldId = generateFieldId({ seed: config.seed });
323
- fields[fieldId] = mockModelFn({
324
- seed: config.seed,
325
- ...mockModelMapConfig.config
326
- });
327
- }
404
+ let name = config.name || changeCase__namespace.capitalCase(faker.words(faker.range(1, 2)));
405
+ let id = config.id || changeCase__namespace.snakeCase(name);
406
+ if (config.id && !config.name) {
407
+ name = changeCase__namespace.pascalCase(config.id);
408
+ } else if (config.name && !config.name) {
409
+ id = changeCase__namespace.snakeCase(config.name);
328
410
  }
329
- return fields;
330
- };
331
-
332
- const uid = (config = {}) => {
333
- const faker = createFaker(config.seed);
334
411
  return {
335
- type: prismicT__namespace.CustomTypeModelFieldType.UID,
336
- config: {
337
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
338
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
339
- }
340
- };
341
- };
342
-
343
- const sharedSliceChoice = () => {
344
- return {
345
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
412
+ id,
413
+ name,
414
+ description: changeCase__namespace.sentenceCase(faker.words(faker.range(5, 10))),
415
+ docURL: faker.url(),
416
+ version: faker.hash(7),
417
+ primary: config.primaryFields || {},
418
+ items: config.itemsFields || {}
346
419
  };
347
420
  };
348
421
 
349
422
  const slice = (config = {}) => {
350
- var _a, _b, _c, _d, _e, _f;
351
423
  const faker = createFaker(config.seed);
352
424
  return {
353
425
  type: prismicT__namespace.CustomTypeModelSliceType.Slice,
354
- icon: changeCase__namespace.snakeCase(faker.company.bsNoun()),
355
- display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
356
- fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
357
- description: faker.lorem.sentence(),
358
- repeat: buildMockGroupFieldMap({
359
- seed: (_b = (_a = config.repeatFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
360
- configs: (_c = config.repeatFieldConfig) == null ? void 0 : _c.configs
361
- }),
362
- "non-repeat": buildMockGroupFieldMap({
363
- seed: (_e = (_d = config.nonRepeatFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
364
- configs: (_f = config.nonRepeatFieldConfig) == null ? void 0 : _f.configs
365
- })
426
+ icon: changeCase__namespace.snakeCase(faker.word()),
427
+ display: faker.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
428
+ fieldset: changeCase__namespace.capitalCase(faker.words(2)),
429
+ description: changeCase__namespace.sentenceCase(faker.words(faker.range(5, 10))),
430
+ repeat: config.repeatFields || {},
431
+ "non-repeat": config.nonRepeatFields || {}
366
432
  };
367
433
  };
368
434
 
369
435
  const sliceZone = (config = {}) => {
370
- var _a;
371
- const faker = createFaker(config.seed);
372
- let choices = {};
373
- if ("choices" in config) {
374
- choices = config.choices || {};
375
- } else {
376
- const choicesCount = (_a = config.choicesCount) != null ? _a : faker.datatype.number({ min: 2, max: 6 });
377
- for (let i = 0; i < choicesCount; i++) {
378
- const choiceId = generateFieldId({ seed: config.seed });
379
- choices[choiceId] = config.withSharedSlices ? sharedSliceChoice() : slice({ seed: config.seed });
380
- }
381
- }
382
436
  const labels = {};
383
- for (const choiceId in choices) {
384
- const choice = choices[choiceId];
437
+ for (const choiceId in config.choices) {
438
+ const choice = config.choices[choiceId];
385
439
  if (choice.type === prismicT__namespace.CustomTypeModelSliceType.Slice) {
386
- const labelsCount = faker.datatype.number({ min: 0, max: 3 });
387
- labels[choiceId] = Array(labelsCount).fill(void 0).map(() => ({
388
- name: changeCase__namespace.capitalCase(faker.company.bsNoun()),
389
- display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List
390
- }));
440
+ labels[choiceId] = [];
391
441
  }
392
442
  }
393
443
  return {
@@ -395,105 +445,91 @@ const sliceZone = (config = {}) => {
395
445
  fieldset: "Slice zone",
396
446
  config: {
397
447
  labels,
398
- choices
448
+ choices: config.choices || {}
399
449
  }
400
450
  };
401
451
  };
402
452
 
403
- const customType = (config = {}) => {
404
- var _a;
453
+ const timestamp = (config = {}) => {
405
454
  const faker = createFaker(config.seed);
406
- const tabsCount = (_a = config.tabsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
407
- const json = {};
408
- for (let i = 0; i < tabsCount; i++) {
409
- const tabName = changeCase__namespace.capitalCase(faker.lorem.word());
410
- const tabFields = buildMockGroupFieldMap({
411
- seed: config.seed,
412
- configs: config.configs
413
- });
414
- if (i === 0 && config.withUID) {
415
- const fieldId = generateFieldId({ seed: config.seed });
416
- tabFields[fieldId] = uid();
417
- }
418
- if (config.withSliceZones) {
419
- const sliceZoneId = generateFieldId({ seed: config.seed });
420
- tabFields[sliceZoneId] = sliceZone({
421
- withSharedSlices: config.withSharedSlices
422
- });
423
- }
424
- json[tabName] = tabFields;
425
- }
426
- const id = generateCustomTypeId({ seed: config.seed });
427
455
  return {
428
- id,
429
- label: changeCase__namespace.capitalCase(id),
430
- status: faker.datatype.boolean(),
431
- repeatable: faker.datatype.boolean(),
432
- json
456
+ type: prismicT__namespace.CustomTypeModelFieldType.Timestamp,
457
+ config: {
458
+ label: changeCase__namespace.capitalCase(faker.word()),
459
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
460
+ }
433
461
  };
434
462
  };
435
463
 
436
- const group = (config = {}) => {
464
+ const title = (config = {}) => {
437
465
  const faker = createFaker(config.seed);
438
- const fields = buildMockGroupFieldMap({
439
- seed: config.seed,
440
- configs: config.configs
441
- });
466
+ const single = faker.randomElements([
467
+ "heading1",
468
+ "heading2",
469
+ "heading3",
470
+ "heading4",
471
+ "heading5",
472
+ "heading6"
473
+ ]).join(",");
442
474
  return {
443
- type: prismicT__namespace.CustomTypeModelFieldType.Group,
475
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
444
476
  config: {
445
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
446
- fields
477
+ label: changeCase__namespace.capitalCase(faker.word()),
478
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3)),
479
+ single,
480
+ allowTargetBlank: faker.boolean() || void 0
447
481
  }
448
482
  };
449
483
  };
450
484
 
451
- const sharedSliceVariation = (config = {}) => {
452
- var _a, _b, _c, _d, _e, _f;
485
+ const uid = (config = {}) => {
453
486
  const faker = createFaker(config.seed);
454
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
455
487
  return {
456
- id: changeCase__namespace.snakeCase(name),
457
- name,
458
- description: faker.lorem.sentence(),
459
- docURL: faker.internet.url(),
460
- version: faker.git.shortSha(),
461
- primary: buildMockGroupFieldMap({
462
- seed: (_b = (_a = config.primaryFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
463
- configs: (_c = config.primaryFieldConfig) == null ? void 0 : _c.configs
464
- }),
465
- items: buildMockGroupFieldMap({
466
- seed: (_e = (_d = config.itemsFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
467
- configs: (_f = config.itemsFieldConfig) == null ? void 0 : _f.configs
468
- })
488
+ type: prismicT__namespace.CustomTypeModelFieldType.UID,
489
+ config: {
490
+ label: changeCase__namespace.capitalCase(faker.word()),
491
+ placeholder: changeCase__namespace.sentenceCase(faker.words(3))
492
+ }
469
493
  };
470
494
  };
471
495
 
472
- const sharedSlice = (config = {}) => {
473
- var _a;
496
+ const generateFieldId = (config) => {
474
497
  const faker = createFaker(config.seed);
475
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
476
- let variations = [];
477
- if ("variations" in config) {
478
- variations = config.variations || [];
479
- } else {
480
- const variationsCount = (_a = config.variationsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
481
- variations = Array(variationsCount).fill(void 0).map(() => sharedSliceVariation({
482
- seed: config.seed,
483
- itemsFieldConfig: config.itemsFieldConfig,
484
- primaryFieldConfig: config.primaryFieldConfig
485
- }));
498
+ return changeCase__namespace.snakeCase(faker.words(faker.range(1, 3)));
499
+ };
500
+
501
+ const mockModelFns = {
502
+ boolean,
503
+ color,
504
+ contentRelationship,
505
+ date,
506
+ embed,
507
+ geoPoint,
508
+ image,
509
+ integrationFields,
510
+ keyText,
511
+ link,
512
+ linkToMedia,
513
+ number,
514
+ richText,
515
+ select,
516
+ timestamp,
517
+ title
518
+ };
519
+ const buildMockGroupFieldMap = (config = {}) => {
520
+ const faker = createFaker(config.seed);
521
+ const fields = {};
522
+ const fieldTypes = faker.randomElements(Object.keys(mockModelFns));
523
+ for (const fieldType of fieldTypes) {
524
+ const fieldId = generateFieldId({ seed: config.seed });
525
+ const mockModelFn = mockModelFns[fieldType];
526
+ fields[fieldId] = mockModelFn({ seed: config.seed });
486
527
  }
487
- return {
488
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
489
- id: changeCase__namespace.snakeCase(name),
490
- name,
491
- description: faker.lorem.sentence(),
492
- variations
493
- };
528
+ return fields;
494
529
  };
495
530
 
496
531
  exports.boolean = boolean;
532
+ exports.buildMockGroupFieldMap = buildMockGroupFieldMap;
497
533
  exports.color = color;
498
534
  exports.contentRelationship = contentRelationship;
499
535
  exports.customType = customType;
@@ -517,3 +553,4 @@ exports.sliceZone = sliceZone;
517
553
  exports.timestamp = timestamp;
518
554
  exports.title = title;
519
555
  exports.uid = uid;
556
+ //# sourceMappingURL=index.cjs.map