@prismicio/mock 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/api/index.cjs +153 -149
  2. package/dist/api/index.cjs.map +1 -1
  3. package/dist/api/index.d.ts +51 -5
  4. package/dist/api/index.js +153 -149
  5. package/dist/api/index.js.map +1 -1
  6. package/dist/index.cjs +609 -357
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.ts +240 -70
  9. package/dist/index.js +602 -358
  10. package/dist/index.js.map +1 -1
  11. package/dist/model/index.cjs +236 -66
  12. package/dist/model/index.cjs.map +1 -1
  13. package/dist/model/index.d.ts +113 -27
  14. package/dist/model/index.js +236 -66
  15. package/dist/model/index.js.map +1 -1
  16. package/dist/value/index.cjs +347 -315
  17. package/dist/value/index.cjs.map +1 -1
  18. package/dist/value/index.d.ts +90 -38
  19. package/dist/value/index.js +347 -315
  20. package/dist/value/index.js.map +1 -1
  21. package/package.json +14 -14
  22. package/src/api/createAPIMockFactory.ts +56 -0
  23. package/src/api/query.ts +2 -2
  24. package/src/api/ref.ts +3 -3
  25. package/src/api/repository.ts +7 -9
  26. package/src/api/tags.ts +5 -2
  27. package/src/createMockFactory.ts +52 -0
  28. package/src/index.ts +15 -0
  29. package/src/lib/buildEmbedField.ts +13 -4
  30. package/src/lib/buildImageFieldImage.ts +16 -5
  31. package/src/lib/createFaker.ts +14 -15
  32. package/src/lib/generateCustomTypeId.ts +12 -4
  33. package/src/lib/generateFieldId.ts +12 -4
  34. package/src/lib/generateTags.ts +13 -4
  35. package/src/lib/getMockEmbedData.ts +12 -4
  36. package/src/lib/getMockImageData.ts +12 -4
  37. package/src/lib/valueForModel.ts +47 -30
  38. package/src/lib/valueForModelMap.ts +24 -4
  39. package/src/model/boolean.ts +5 -5
  40. package/src/model/buildMockGroupFieldMap.ts +4 -4
  41. package/src/model/color.ts +2 -2
  42. package/src/model/contentRelationship.ts +2 -2
  43. package/src/model/createModelMockFactory.ts +213 -0
  44. package/src/model/customType.ts +3 -3
  45. package/src/model/date.ts +2 -2
  46. package/src/model/embed.ts +2 -2
  47. package/src/model/geoPoint.ts +2 -2
  48. package/src/model/group.ts +6 -6
  49. package/src/model/image.ts +3 -3
  50. package/src/model/index.ts +2 -0
  51. package/src/model/integrationFields.ts +2 -2
  52. package/src/model/keyText.ts +2 -2
  53. package/src/model/link.ts +3 -3
  54. package/src/model/linkToMedia.ts +3 -3
  55. package/src/model/number.ts +2 -2
  56. package/src/model/richText.ts +2 -2
  57. package/src/model/select.ts +3 -3
  58. package/src/model/sharedSlice.ts +3 -3
  59. package/src/model/sharedSliceVariation.ts +6 -6
  60. package/src/model/slice.ts +3 -3
  61. package/src/model/sliceZone.ts +7 -4
  62. package/src/model/timestamp.ts +2 -2
  63. package/src/model/title.ts +2 -2
  64. package/src/model/uid.ts +2 -2
  65. package/src/types.ts +63 -21
  66. package/src/value/boolean.ts +3 -5
  67. package/src/value/color.ts +2 -2
  68. package/src/value/contentRelationship.ts +18 -15
  69. package/src/value/createValueMockFactory.ts +236 -0
  70. package/src/value/customType.ts +7 -7
  71. package/src/value/date.ts +6 -2
  72. package/src/value/embed.ts +6 -3
  73. package/src/value/geoPoint.ts +2 -2
  74. package/src/value/group.ts +5 -5
  75. package/src/value/image.ts +26 -18
  76. package/src/value/integrationFields.ts +12 -26
  77. package/src/value/keyText.ts +2 -2
  78. package/src/value/link.ts +9 -7
  79. package/src/value/linkToMedia.ts +2 -2
  80. package/src/value/number.ts +2 -2
  81. package/src/value/richText/embed.ts +6 -3
  82. package/src/value/richText/heading.ts +29 -17
  83. package/src/value/richText/image.ts +6 -3
  84. package/src/value/richText/index.ts +71 -43
  85. package/src/value/richText/list.ts +2 -2
  86. package/src/value/richText/oList.ts +2 -2
  87. package/src/value/richText/paragraph.ts +2 -2
  88. package/src/value/richText/preformatted.ts +2 -2
  89. package/src/value/select.ts +10 -6
  90. package/src/value/sharedSlice.ts +4 -4
  91. package/src/value/sharedSliceVariation.ts +9 -10
  92. package/src/value/slice.ts +9 -9
  93. package/src/value/sliceZone.ts +10 -8
  94. package/src/value/timestamp.ts +2 -2
  95. package/src/value/title.ts +7 -3
  96. package/src/value/uid.ts +5 -3
@@ -30,8 +30,6 @@ const changeCase__namespace = /*#__PURE__*/_interopNamespace(changeCase);
30
30
  const Rand__default = /*#__PURE__*/_interopDefaultLegacy(Rand);
31
31
  const prismicT__namespace = /*#__PURE__*/_interopNamespace(prismicT);
32
32
 
33
- const FAKER_SEED = 1984;
34
-
35
33
  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
34
  const loremWords = wordsString.split(" ");
37
35
  const lorem = (length, wordOffset = 0) => {
@@ -73,22 +71,16 @@ const lorem = (length, wordOffset = 0) => {
73
71
  };
74
72
  lorem.spaceIndices = [];
75
73
 
76
- const createFaker = (seed = FAKER_SEED) => {
77
- const normalizedSeed = seed.toString();
78
- if (createFaker.cache[normalizedSeed]) {
79
- return createFaker.cache[normalizedSeed];
80
- } else {
81
- const faker = new Faker(normalizedSeed);
82
- return createFaker.cache[normalizedSeed] = faker;
83
- }
74
+ const createFaker = (seed) => {
75
+ return new Faker(seed);
84
76
  };
85
- createFaker.cache = {};
86
77
  const DAY_MS = 1e3 * 60 * 60 * 24;
87
78
  const YEAR_MS = DAY_MS * 365;
88
79
  const YEAR_2022_MS = 52 * (YEAR_MS + DAY_MS / 4);
89
80
  class Faker {
90
81
  constructor(seed) {
91
- this.rand = new Rand__default["default"](seed);
82
+ this.seed = seed;
83
+ this.rand = new Rand__default["default"](seed.toString());
92
84
  }
93
85
  boolean() {
94
86
  return this.random() >= 0.5;
@@ -100,7 +92,8 @@ class Faker {
100
92
  return elements[this.range(0, elements.length)];
101
93
  }
102
94
  randomElements(elements) {
103
- return elements.filter(() => this.boolean());
95
+ const alwaysInclude = this.randomElement(elements);
96
+ return elements.filter((element) => element === alwaysInclude || this.boolean());
104
97
  }
105
98
  range(min, max) {
106
99
  return Math.floor(this.rangeFloat(Math.ceil(min), Math.floor(max)));
@@ -149,12 +142,99 @@ class Faker {
149
142
 
150
143
  const generateTags = (config) => {
151
144
  var _a, _b;
152
- const faker = createFaker(config.seed);
145
+ const faker = config.faker || createFaker(config.seed);
153
146
  return Array.from({ length: faker.range((_a = config.min) != null ? _a : 0, (_b = config.max) != null ? _b : 2) }, () => changeCase__namespace.capitalCase(faker.words(faker.range(1, 3))));
154
147
  };
155
148
 
156
- const title = (config = {}) => {
157
- const faker = createFaker(config.seed);
149
+ const dataSet$1 = [
150
+ {
151
+ url: "https://images.unsplash.com/photo-1604537529428-15bcbeecfe4d",
152
+ width: 4240,
153
+ height: 2832
154
+ },
155
+ {
156
+ url: "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05",
157
+ width: 7372,
158
+ height: 4392
159
+ },
160
+ {
161
+ url: "https://images.unsplash.com/photo-1441974231531-c6227db76b6e",
162
+ width: 2560,
163
+ height: 1705
164
+ },
165
+ {
166
+ url: "https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5",
167
+ width: 2200,
168
+ height: 1467
169
+ },
170
+ {
171
+ url: "https://images.unsplash.com/photo-1426604966848-d7adac402bff",
172
+ width: 5616,
173
+ height: 3744
174
+ },
175
+ {
176
+ url: "https://images.unsplash.com/photo-1604537466608-109fa2f16c3b",
177
+ width: 4240,
178
+ height: 2832
179
+ },
180
+ {
181
+ url: "https://images.unsplash.com/photo-1497436072909-60f360e1d4b1",
182
+ width: 2560,
183
+ height: 1440
184
+ },
185
+ {
186
+ url: "https://images.unsplash.com/reserve/HgZuGu3gSD6db21T3lxm_San%20Zenone.jpg",
187
+ width: 6373,
188
+ height: 4253
189
+ },
190
+ {
191
+ url: "https://images.unsplash.com/photo-1504198266287-1659872e6590",
192
+ width: 4272,
193
+ height: 2848
194
+ },
195
+ {
196
+ url: "https://images.unsplash.com/photo-1470770903676-69b98201ea1c",
197
+ width: 4554,
198
+ height: 3036
199
+ },
200
+ {
201
+ url: "https://images.unsplash.com/photo-1587502537745-84b86da1204f",
202
+ width: 6550,
203
+ height: 4367
204
+ },
205
+ {
206
+ url: "https://images.unsplash.com/photo-1431794062232-2a99a5431c6c",
207
+ width: 6e3,
208
+ height: 4e3
209
+ },
210
+ {
211
+ url: "https://images.unsplash.com/photo-1446329813274-7c9036bd9a1f",
212
+ width: 6e3,
213
+ height: 4e3
214
+ },
215
+ {
216
+ url: "https://images.unsplash.com/photo-1504567961542-e24d9439a724",
217
+ width: 4608,
218
+ height: 3456
219
+ },
220
+ {
221
+ url: "https://images.unsplash.com/photo-1444464666168-49d633b86797",
222
+ width: 4844,
223
+ height: 3234
224
+ },
225
+ {
226
+ url: "https://images.unsplash.com/photo-1553531384-397c80973a0b",
227
+ width: 4335,
228
+ height: 6502
229
+ }
230
+ ];
231
+ const getMockImageData = (config) => {
232
+ const faker = config.faker || createFaker(config.seed);
233
+ return faker.randomElement(dataSet$1);
234
+ };
235
+
236
+ const title = (config) => {
237
+ const faker = config.faker || createFaker(config.seed);
158
238
  const single = faker.randomElements([
159
239
  "heading1",
160
240
  "heading2",
@@ -174,8 +254,8 @@ const title = (config = {}) => {
174
254
  };
175
255
  };
176
256
 
177
- const timestamp = (config = {}) => {
178
- const faker = createFaker(config.seed);
257
+ const timestamp = (config) => {
258
+ const faker = config.faker || createFaker(config.seed);
179
259
  if (config.state === "empty") {
180
260
  return null;
181
261
  } else {
@@ -197,7 +277,7 @@ const timestamp = (config = {}) => {
197
277
 
198
278
  const buildEmbedField = (config) => {
199
279
  var _a;
200
- const faker = createFaker(config.seed);
280
+ const faker = config.faker || createFaker(config.seed);
201
281
  return {
202
282
  embed_url: (_a = config.url) != null ? _a : faker.url(),
203
283
  html: `<div>embed html</div>`,
@@ -205,7 +285,7 @@ const buildEmbedField = (config) => {
205
285
  };
206
286
  };
207
287
 
208
- const dataSet$1 = [
288
+ const dataSet = [
209
289
  {
210
290
  version: "1.0",
211
291
  type: "video",
@@ -285,8 +365,8 @@ const dataSet$1 = [
285
365
  }
286
366
  ];
287
367
  const getMockEmbedData = (config) => {
288
- const faker = createFaker(config.seed);
289
- return faker.randomElement(dataSet$1);
368
+ const faker = config.faker || createFaker(config.seed);
369
+ return faker.randomElement(dataSet);
290
370
  };
291
371
 
292
372
  const buildImageFieldImage = (config) => {
@@ -299,7 +379,7 @@ const buildImageFieldImage = (config) => {
299
379
  copyright: null
300
380
  };
301
381
  } else {
302
- const faker = createFaker(config.seed);
382
+ const faker = config.faker || createFaker(config.seed);
303
383
  const url = new URL(config.imageData.url);
304
384
  const dimensions = {
305
385
  width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
@@ -317,93 +397,6 @@ const buildImageFieldImage = (config) => {
317
397
  }
318
398
  };
319
399
 
320
- const dataSet = [
321
- {
322
- url: "https://images.unsplash.com/photo-1604537529428-15bcbeecfe4d",
323
- width: 4240,
324
- height: 2832
325
- },
326
- {
327
- url: "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05",
328
- width: 7372,
329
- height: 4392
330
- },
331
- {
332
- url: "https://images.unsplash.com/photo-1441974231531-c6227db76b6e",
333
- width: 2560,
334
- height: 1705
335
- },
336
- {
337
- url: "https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5",
338
- width: 2200,
339
- height: 1467
340
- },
341
- {
342
- url: "https://images.unsplash.com/photo-1426604966848-d7adac402bff",
343
- width: 5616,
344
- height: 3744
345
- },
346
- {
347
- url: "https://images.unsplash.com/photo-1604537466608-109fa2f16c3b",
348
- width: 4240,
349
- height: 2832
350
- },
351
- {
352
- url: "https://images.unsplash.com/photo-1497436072909-60f360e1d4b1",
353
- width: 2560,
354
- height: 1440
355
- },
356
- {
357
- url: "https://images.unsplash.com/reserve/HgZuGu3gSD6db21T3lxm_San%20Zenone.jpg",
358
- width: 6373,
359
- height: 4253
360
- },
361
- {
362
- url: "https://images.unsplash.com/photo-1504198266287-1659872e6590",
363
- width: 4272,
364
- height: 2848
365
- },
366
- {
367
- url: "https://images.unsplash.com/photo-1470770903676-69b98201ea1c",
368
- width: 4554,
369
- height: 3036
370
- },
371
- {
372
- url: "https://images.unsplash.com/photo-1587502537745-84b86da1204f",
373
- width: 6550,
374
- height: 4367
375
- },
376
- {
377
- url: "https://images.unsplash.com/photo-1431794062232-2a99a5431c6c",
378
- width: 6e3,
379
- height: 4e3
380
- },
381
- {
382
- url: "https://images.unsplash.com/photo-1446329813274-7c9036bd9a1f",
383
- width: 6e3,
384
- height: 4e3
385
- },
386
- {
387
- url: "https://images.unsplash.com/photo-1504567961542-e24d9439a724",
388
- width: 4608,
389
- height: 3456
390
- },
391
- {
392
- url: "https://images.unsplash.com/photo-1444464666168-49d633b86797",
393
- width: 4844,
394
- height: 3234
395
- },
396
- {
397
- url: "https://images.unsplash.com/photo-1553531384-397c80973a0b",
398
- width: 4335,
399
- height: 6502
400
- }
401
- ];
402
- const getMockImageData = (config) => {
403
- const faker = createFaker(config.seed);
404
- return faker.randomElement(dataSet);
405
- };
406
-
407
400
  const patterns$4 = {
408
401
  short: {
409
402
  minWords: 1,
@@ -418,17 +411,25 @@ const patterns$4 = {
418
411
  maxWords: 12
419
412
  }
420
413
  };
421
- const heading = (config = {}) => {
422
- const faker = createFaker(config.seed);
423
- const model = config.model || title({ seed: config.seed });
424
- const types = ("single" in model.config ? model.config.single : model.config.multi).split(",").filter((type2) => [
425
- prismicT__namespace.RichTextNodeType.heading1,
426
- prismicT__namespace.RichTextNodeType.heading2,
427
- prismicT__namespace.RichTextNodeType.heading3,
428
- prismicT__namespace.RichTextNodeType.heading4,
429
- prismicT__namespace.RichTextNodeType.heading5,
430
- prismicT__namespace.RichTextNodeType.heading6
431
- ].includes(type2));
414
+ const headingNoteTypes = [
415
+ prismicT__namespace.RichTextNodeType.heading1,
416
+ prismicT__namespace.RichTextNodeType.heading2,
417
+ prismicT__namespace.RichTextNodeType.heading3,
418
+ prismicT__namespace.RichTextNodeType.heading4,
419
+ prismicT__namespace.RichTextNodeType.heading5,
420
+ prismicT__namespace.RichTextNodeType.heading6
421
+ ];
422
+ const heading = (config) => {
423
+ const faker = config.faker || createFaker(config.seed);
424
+ const model = config.model || title({ faker });
425
+ let types = [];
426
+ if (model.config) {
427
+ if ("single" in model.config && model.config.single) {
428
+ types = model.config.single.split(",").filter((type2) => headingNoteTypes.includes(type2));
429
+ } else if ("multi" in model.config && model.config.multi) {
430
+ types = model.config.multi.split(",").filter((type2) => headingNoteTypes.includes(type2));
431
+ }
432
+ }
432
433
  const type = faker.randomElement(types);
433
434
  if (type) {
434
435
  const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$4));
@@ -454,8 +455,8 @@ const patterns$3 = {
454
455
  sentenceCount: 12
455
456
  }
456
457
  };
457
- const paragraph = (config = {}) => {
458
- const faker = createFaker(config.seed);
458
+ const paragraph = (config) => {
459
+ const faker = config.faker || createFaker(config.seed);
459
460
  const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$3));
460
461
  const pattern = patterns$3[patternKey];
461
462
  const text = Array.from({ length: pattern.sentenceCount }, () => changeCase__namespace.sentenceCase(faker.words(faker.range(5, 15))) + ".").join(" ");
@@ -477,8 +478,8 @@ const patterns$2 = {
477
478
  sentenceCount: 12
478
479
  }
479
480
  };
480
- const preformatted = (config = {}) => {
481
- const faker = createFaker(config.seed);
481
+ const preformatted = (config) => {
482
+ const faker = config.faker || createFaker(config.seed);
482
483
  const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$2));
483
484
  const pattern = patterns$2[patternKey];
484
485
  const text = Array.from({ length: pattern.sentenceCount }, () => changeCase__namespace.sentenceCase(faker.words(faker.range(5, 15))) + ".").join(" ");
@@ -503,8 +504,8 @@ const patterns$1 = {
503
504
  maxItems: 12
504
505
  }
505
506
  };
506
- const list = (config = {}) => {
507
- const faker = createFaker(config.seed);
507
+ const list = (config) => {
508
+ const faker = config.faker || createFaker(config.seed);
508
509
  const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$1));
509
510
  const pattern = patterns$1[patternKey];
510
511
  const itemsCount = faker.range(pattern.minItems, pattern.maxItems);
@@ -531,8 +532,8 @@ const patterns = {
531
532
  maxItems: 12
532
533
  }
533
534
  };
534
- const oList = (config = {}) => {
535
- const faker = createFaker(config.seed);
535
+ const oList = (config) => {
536
+ const faker = config.faker || createFaker(config.seed);
536
537
  const patternKey = config.pattern || faker.randomElement(Object.keys(patterns));
537
538
  const pattern = patterns[patternKey];
538
539
  const itemsCount = faker.range(pattern.minItems, pattern.maxItems);
@@ -545,10 +546,11 @@ const oList = (config = {}) => {
545
546
  });
546
547
  };
547
548
 
548
- const image = (config = {}) => {
549
- const imageData = getMockImageData({ seed: config.seed });
549
+ const image = (config) => {
550
+ const faker = config.faker || createFaker(config.seed);
551
+ const imageData = getMockImageData({ faker });
550
552
  const imageField = buildImageFieldImage({
551
- seed: config.seed,
553
+ faker,
552
554
  imageData,
553
555
  state: "filled"
554
556
  });
@@ -561,9 +563,10 @@ const image = (config = {}) => {
561
563
  };
562
564
  };
563
565
 
564
- const embed = (config = {}) => {
565
- const data = getMockEmbedData({ seed: config.seed });
566
- const embedField = buildEmbedField({ seed: config.seed, data });
566
+ const embed = (config) => {
567
+ const faker = config.faker || createFaker(config.seed);
568
+ const data = getMockEmbedData({ faker });
569
+ const embedField = buildEmbedField({ faker, data });
567
570
  return {
568
571
  type: prismicT__namespace.RichTextNodeType.embed,
569
572
  oembed: embedField
@@ -585,9 +588,9 @@ const embed = (config = {}) => {
585
588
  [prismicT__namespace.RichTextNodeType.embed]: embed
586
589
  });
587
590
 
588
- const ref = (config = {}) => {
591
+ const ref = (config) => {
589
592
  var _a;
590
- const faker = createFaker(config.seed);
593
+ const faker = config.faker || createFaker(config.seed);
591
594
  const value = {
592
595
  id: faker.hash(16),
593
596
  ref: faker.hash(16),
@@ -595,23 +598,23 @@ const ref = (config = {}) => {
595
598
  label: config.isMasterRef ? "Master" : changeCase__namespace.capitalCase(faker.words(faker.range(1, 3)))
596
599
  };
597
600
  if (config.isScheduled) {
598
- value.scheduledAt = timestamp({ seed: config.seed });
601
+ value.scheduledAt = timestamp({ faker });
599
602
  }
600
603
  return value;
601
604
  };
602
605
 
603
- const repository = (config = {}) => {
604
- const faker = createFaker(config.seed);
606
+ const repository = (config) => {
607
+ const faker = config.faker || createFaker(config.seed);
605
608
  const types = (config.customTypeModels || []).reduce((acc, model) => {
606
- acc[model.id] = model.label;
609
+ acc[model.id] = model.label || model.id;
607
610
  return acc;
608
611
  }, {});
609
612
  return {
610
613
  refs: [
611
- ref({ seed: config.seed, isMasterRef: true }),
612
- ...config.withReleases ? [ref({ seed: config.seed }), ref({ seed: config.seed })] : []
614
+ ref({ faker, isMasterRef: true }),
615
+ ...config.withReleases ? [ref({ faker }), ref({ faker })] : []
613
616
  ],
614
- integrationFieldsRef: ref({ seed: config.seed }).ref,
617
+ integrationFieldsRef: ref({ faker }).ref,
615
618
  types,
616
619
  languages: [
617
620
  {
@@ -620,7 +623,7 @@ const repository = (config = {}) => {
620
623
  }
621
624
  ],
622
625
  tags: generateTags({
623
- seed: config.seed,
626
+ faker,
624
627
  min: 1,
625
628
  max: 10
626
629
  }),
@@ -634,9 +637,9 @@ const repository = (config = {}) => {
634
637
  };
635
638
  };
636
639
 
637
- const query = (config = {}) => {
640
+ const query = (config) => {
638
641
  var _a, _b;
639
- const faker = createFaker(config.seed);
642
+ const faker = config.faker || createFaker(config.seed);
640
643
  const documents = config.documents || [];
641
644
  const page = Math.max(1, (_a = config.page) != null ? _a : 1);
642
645
  const pageSize = Math.min(100, Math.max(1, (_b = config.pageSize) != null ? _b : 100));
@@ -654,9 +657,10 @@ const query = (config = {}) => {
654
657
  };
655
658
  };
656
659
 
657
- const tags = (config = {}) => {
660
+ const tags = (config) => {
661
+ const faker = config.faker || createFaker(config.seed);
658
662
  return generateTags({
659
- seed: config.seed,
663
+ faker,
660
664
  min: 1,
661
665
  max: 10
662
666
  });