@prismicio/mock 0.0.6 → 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 (66) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +39 -27
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +2 -1
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/{index.mjs → index.js} +104 -58
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +293 -393
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +132 -230
  11. package/dist/{index.mjs → index.js} +286 -384
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +148 -205
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +68 -104
  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 +238 -495
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +54 -116
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +407 -610
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +21 -21
  26. package/src/lib/buildContentRelationshipField.ts +6 -1
  27. package/src/lib/buildEmbedField.ts +1 -1
  28. package/src/lib/buildImageFieldImage.ts +48 -0
  29. package/src/model/buildMockGroupFieldMap.ts +65 -0
  30. package/src/model/contentRelationship.ts +14 -21
  31. package/src/model/customType.ts +49 -48
  32. package/src/model/group.ts +8 -15
  33. package/src/model/image.ts +13 -13
  34. package/src/model/index.ts +2 -0
  35. package/src/model/select.ts +11 -16
  36. package/src/model/sharedSlice.ts +14 -41
  37. package/src/model/sharedSliceVariation.ts +33 -21
  38. package/src/model/slice.ts +15 -19
  39. package/src/model/sliceZone.ts +23 -59
  40. package/src/types.ts +41 -12
  41. package/src/value/color.ts +16 -6
  42. package/src/value/contentRelationship.ts +51 -36
  43. package/src/value/date.ts +25 -9
  44. package/src/value/embed.ts +18 -6
  45. package/src/value/geoPoint.ts +21 -9
  46. package/src/value/group.ts +7 -27
  47. package/src/value/image.ts +22 -9
  48. package/src/value/integrationFields.ts +26 -14
  49. package/src/value/keyText.ts +18 -6
  50. package/src/value/link.ts +33 -34
  51. package/src/value/linkToMedia.ts +15 -20
  52. package/src/value/number.ts +16 -6
  53. package/src/value/richText/heading.ts +7 -7
  54. package/src/value/richText/image.ts +6 -2
  55. package/src/value/richText/index.ts +1 -1
  56. package/src/value/select.ts +23 -8
  57. package/src/value/sharedSlice.ts +2 -2
  58. package/src/value/sharedSliceVariation.ts +6 -34
  59. package/src/value/slice.ts +5 -30
  60. package/src/value/sliceZone.ts +44 -60
  61. package/src/value/timestamp.ts +19 -6
  62. package/src/value/title.ts +1 -1
  63. package/src/value/uid.ts +1 -1
  64. package/dist/model/index.mjs +0 -465
  65. package/src/lib/buildImageField.ts +0 -34
  66. package/src/lib/buildMockGroupFieldMap.ts +0 -84
package/README.md CHANGED
@@ -36,7 +36,9 @@ Whether you're helping us fix bugs, improve the docs, or spread the word, we'd l
36
36
 
37
37
  **Suggesting an improvement**: [Open an issue][repo-feature-request] explaining your improvement or feature so we can discuss and learn more.
38
38
 
39
- **Submitting code changes**: For small fixes, feel free to [open a PR][repo-pull-requests] with a description of your changes. For large changes, please first [open an issue][repo-feature-request] so we can discuss if and how the changes should be implemented.
39
+ **Submitting code changes**: For small fixes, feel free to [open a pull request][repo-pull-requests] with a description of your changes. For large changes, please first [open an issue][repo-feature-request] so we can discuss if and how the changes should be implemented.
40
+
41
+ For more clarity on this project and its structure you can also check out the detailed [CONTRIBUTING.md][contributing] document.
40
42
 
41
43
  ## License
42
44
 
@@ -64,6 +66,7 @@ Whether you're helping us fix bugs, improve the docs, or spread the word, we'd l
64
66
 
65
67
  [prismic-docs]: https://prismic.io/docs
66
68
  [changelog]: /CHANGELOG.md
69
+ [contributing]: ./CONTRIBUTING.md
67
70
 
68
71
  <!-- TODO: Replace link with a more useful one if available -->
69
72
 
@@ -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
 
@@ -47,7 +45,7 @@ const createFaker = (seed = FAKER_SEED) => {
47
45
  if (createFaker.cache[cacheKey]) {
48
46
  return createFaker.cache[cacheKey];
49
47
  }
50
- const fakerInstance = new Faker__default['default']();
48
+ const fakerInstance = new Faker__default["default"]();
51
49
  fakerInstance.locales["en"] = fakerLocaleEN__namespace;
52
50
  fakerInstance.seed(normalizedSeed);
53
51
  createFaker.cache[cacheKey] = fakerInstance;
@@ -89,7 +87,7 @@ const timestamp = (config = {}) => {
89
87
  const faker = createFaker(config.seed);
90
88
  const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
91
89
  const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
92
- return faker.date.between(after, before).toISOString();
90
+ return config.state === "empty" ? null : faker.date.between(after, before).toISOString();
93
91
  };
94
92
 
95
93
  const buildEmbedField = (config) => {
@@ -176,23 +174,32 @@ const getMockEmbedData = (config) => {
176
174
  return faker.random.arrayElement(dataSet$1);
177
175
  };
178
176
 
179
- const buildImageField = (config) => {
177
+ const buildImageFieldImage = (config) => {
180
178
  var _a, _b, _c, _d;
181
- const faker = createFaker(config.seed);
182
- const url = new URL(config.imageData.url);
183
- const dimensions = {
184
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
185
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
186
- };
187
- url.searchParams.set("w", dimensions.width.toString());
188
- url.searchParams.set("h", dimensions.height.toString());
189
- url.searchParams.set("fit", "crop");
190
- return {
191
- url: url.toString(),
192
- dimensions,
193
- alt: faker.lorem.sentence(),
194
- copyright: faker.lorem.sentence()
195
- };
179
+ if (config.state === "empty") {
180
+ return {
181
+ url: null,
182
+ dimensions: null,
183
+ alt: null,
184
+ copyright: null
185
+ };
186
+ } else {
187
+ const faker = createFaker(config.seed);
188
+ const url = new URL(config.imageData.url);
189
+ const dimensions = {
190
+ width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
191
+ height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
192
+ };
193
+ url.searchParams.set("w", dimensions.width.toString());
194
+ url.searchParams.set("h", dimensions.height.toString());
195
+ url.searchParams.set("fit", "crop");
196
+ return {
197
+ url: url.toString(),
198
+ dimensions,
199
+ alt: faker.lorem.sentence(),
200
+ copyright: faker.lorem.sentence()
201
+ };
202
+ }
196
203
  };
197
204
 
198
205
  const dataSet = [
@@ -432,7 +439,11 @@ const oList = (config = {}) => {
432
439
 
433
440
  const image = (config = {}) => {
434
441
  const imageData = getMockImageData({ seed: config.seed });
435
- const imageField = buildImageField({ seed: config.seed, imageData });
442
+ const imageField = buildImageFieldImage({
443
+ seed: config.seed,
444
+ imageData,
445
+ state: false
446
+ });
436
447
  return {
437
448
  type: prismicT__namespace.RichTextNodeType.image,
438
449
  alt: imageField.alt,
@@ -547,3 +558,4 @@ exports.query = query;
547
558
  exports.ref = ref;
548
559
  exports.repository = repository;
549
560
  exports.tags = tags;
561
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/constants.ts","../../src/lib/createFaker.ts","../../src/lib/generateTags.ts","../../src/model/title.ts","../../src/value/timestamp.ts","../../src/lib/buildEmbedField.ts","../../src/lib/getMockEmbedData.ts","../../src/lib/buildImageFieldImage.ts","../../src/lib/getMockImageData.ts","../../src/value/richText/heading.ts","../../src/value/richText/paragraph.ts","../../src/value/richText/preformatted.ts","../../src/value/richText/list.ts","../../src/value/richText/oList.ts","../../src/value/richText/image.ts","../../src/value/richText/embed.ts","../../src/value/richText/index.ts","../../src/api/ref.ts","../../src/api/repository.ts","../../src/api/query.ts","../../src/api/tags.ts"],"sourcesContent":["import { Seed } from \"./types\";\n\nexport const FAKER_SEED: Seed = 1984;\n","import * as fakerStatic from \"faker\";\n// @ts-expect-error - Missing .d.ts\nimport * as fakerLocaleEN from \"faker/lib/locales/en/index.js\";\n// @ts-expect-error - Missing .d.ts\nimport Faker from \"faker/lib/index.js\";\n\nimport { FAKER_SEED } from \"../constants\";\n\nexport const createFaker = (seed = FAKER_SEED): typeof fakerStatic => {\n\tlet normalizedSeed: number | number[];\n\tif (typeof seed === \"string\") {\n\t\tnormalizedSeed = seed.split(\"\").map((char) => char.charCodeAt(0));\n\t} else {\n\t\tnormalizedSeed = seed;\n\t}\n\n\tconst cacheKey = JSON.stringify(normalizedSeed);\n\n\tif (createFaker.cache[cacheKey]) {\n\t\treturn createFaker.cache[cacheKey];\n\t}\n\n\tconst fakerInstance = new Faker();\n\tfakerInstance.locales[\"en\"] = fakerLocaleEN;\n\tfakerInstance.seed(normalizedSeed);\n\n\tcreateFaker.cache[cacheKey] = fakerInstance;\n\n\treturn fakerInstance;\n};\ncreateFaker.cache = {} as Record<string, typeof fakerStatic>;\n","import * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueConfig } from \"../types\";\n\ntype GenerateTagsConfig = {\n\tmin?: number;\n\tmax?: number;\n} & Pick<MockValueConfig, \"seed\">;\n\nexport const generateTags = (config: GenerateTagsConfig): string[] => {\n\tconst faker = createFaker(config.seed);\n\n\treturn Array(\n\t\tfaker.datatype.number({\n\t\t\tmin: config.min ?? 0,\n\t\t\tmax: config.max ?? 2,\n\t\t}),\n\t)\n\t\t.fill(undefined)\n\t\t.map(() =>\n\t\t\tchangeCase.capitalCase(\n\t\t\t\tfaker.lorem.words(faker.datatype.number({ min: 1, max: 3 })),\n\t\t\t),\n\t\t);\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockTitleModelConfig = MockModelConfig;\n\nexport const title = (\n\tconfig: MockTitleModelConfig = {},\n): prismicT.CustomTypeModelTitleField => {\n\tconst faker = createFaker(config.seed);\n\n\tconst single = faker.random\n\t\t.arrayElements([\n\t\t\t\"heading1\",\n\t\t\t\"heading2\",\n\t\t\t\"heading3\",\n\t\t\t\"heading4\",\n\t\t\t\"heading5\",\n\t\t\t\"heading6\",\n\t\t])\n\t\t.join(\",\");\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.StructuredText,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\tsingle,\n\t\t\tallowTargetBlank: faker.datatype.boolean() ? true : undefined,\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockTimestampValueConfig<\n\tModel extends prismicT.CustomTypeModelTimestampField = prismicT.CustomTypeModelTimestampField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = {\n\tafter?: Date;\n\tbefore?: Date;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\nexport type MockTimestampValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.TimestampField<State>;\n\nexport const timestamp = <\n\tModel extends prismicT.CustomTypeModelTimestampField = prismicT.CustomTypeModelTimestampField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockTimestampValueConfig<Model, State> = {},\n): MockTimestampValue<State> => {\n\tconst faker = createFaker(config.seed);\n\n\t// Faker seems to have problems accepting parameters for `faker.date.between`\n\t// if the parameters are too precise. We can get around this by only using\n\t// generated dates, not timestamps.\n\tconst after =\n\t\tconfig.after ||\n\t\tfaker.date.past(20, new Date(\"2021-03-07\")).toISOString().split(\"T\")[0];\n\tconst before =\n\t\tconfig.before ||\n\t\tfaker.date.future(20, new Date(\"2021-03-07\")).toISOString().split(\"T\")[0];\n\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? null\n\t\t\t: faker.date.between(after, before).toISOString()\n\t) as MockTimestampValue<State>;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockEmbedData, MockValueConfig } from \"../types\";\n\ntype BuildEmbedFieldConfig = {\n\tembedData: MockEmbedData;\n} & Pick<MockValueConfig, \"seed\">;\n\nexport const buildEmbedField = (\n\tconfig: BuildEmbedFieldConfig,\n): prismicT.EmbedField<false> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: faker.datatype.boolean()\n\t\t\t? prismicT.EmbedType.Link\n\t\t\t: prismicT.EmbedType.Rich,\n\t\turl: config.embedData.url,\n\t\thtml: config.embedData.html,\n\t\ttitle: changeCase.capitalCase(faker.lorem.words(3)),\n\t\tversion: faker.datatype\n\t\t\t.number({ min: 1, max: 3, precision: 10 })\n\t\t\t.toString(),\n\t\tcache_age: faker.datatype.number(),\n\t\tembed_url: config.embedData.embed_url,\n\t\tauthor_url: faker.internet.url(),\n\t\tauthor_name: faker.company.companyName(),\n\t\tprovider_name: faker.company.companyName(),\n\t\tthumbnail_width: config.embedData.thumbnail_width,\n\t\tthumbnail_height: config.embedData.thumbnail_height,\n\t\tthumbnail_url: config.embedData.thumbnail_url,\n\t\twidth: faker.datatype.number({ min: 200, max: 500 }),\n\t\theight: faker.datatype.number({ min: 200, max: 500 }),\n\t};\n};\n","import { createFaker } from \"../lib/createFaker\";\n\nimport { MockEmbedData, MockValueConfig } from \"../types\";\n\nconst dataSet: MockEmbedData[] = [\n\t{\n\t\turl: \"https://www.youtube.com/watch?v=fiOwHYFkUz0\",\n\t\tembed_url: \"https://www.youtube.com/embed/fiOwHYFkUz0\",\n\t\tthumbnail_url: \"https://i.ytimg.com/vi/fiOwHYFkUz0/hqdefault.jpg\",\n\t\tthumbnail_height: 360,\n\t\tthumbnail_width: 480,\n\t\thtml: '<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/fiOwHYFkUz0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>',\n\t},\n\t{\n\t\turl: \"https://www.youtube.com/watch?v=c-ATzcy6VkI\",\n\t\tembed_url: \"https://www.youtube.com/embed/c-ATzcy6VkI\",\n\t\tthumbnail_url: \"https://i.ytimg.com/vi/c-ATzcy6VkI/hqdefault.jpg\",\n\t\tthumbnail_height: 360,\n\t\tthumbnail_width: 480,\n\t\thtml: '<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/c-ATzcy6VkI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>',\n\t},\n\t{\n\t\turl: \"https://www.youtube.com/watch?v=iewZXv94XGY\",\n\t\tembed_url: \"https://www.youtube.com/watch?v=fiOwHYFkUz0\",\n\t\tthumbnail_url: \"https://i.ytimg.com/vi/iewZXv94XGY/hqdefault.jpg\",\n\t\tthumbnail_height: 360,\n\t\tthumbnail_width: 480,\n\t\thtml: '<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/iewZXv94XGY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>',\n\t},\n\t{\n\t\turl: \"https://twitter.com/prismicio/status/1356293316158095361\",\n\t\tembed_url: \"https://www.youtube.com/watch?v=iewZXv94XGY\",\n\t\tthumbnail_url: null,\n\t\tthumbnail_height: null,\n\t\tthumbnail_width: null,\n\t\thtml: '<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Gatsby is a popular choice for Prismic users and we work hard on delivering a CMS that plays to its strengths.<br><br>But, what makes <a href=\"https://twitter.com/GatsbyJS?ref_src=twsrc%5Etfw\">@GatsbyJS</a> so popular?<br><br>Here are some of <a href=\"https://twitter.com/mxstbr?ref_src=twsrc%5Etfw\">@mxstbr</a>&#39;s thoughts on Gatsby&#39;s success and how they&#39;re improving developer experience.<a href=\"https://t.co/ZjCPvsWWUD\">https://t.co/ZjCPvsWWUD</a> <a href=\"https://t.co/EQqzJpeNKl\">pic.twitter.com/EQqzJpeNKl</a></p>&mdash; Prismic (@prismicio) <a href=\"https://twitter.com/prismicio/status/1356293316158095361?ref_src=twsrc%5Etfw\">February 1, 2021</a></blockquote>\\n<script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\\n',\n\t},\n\t{\n\t\turl: \"https://twitter.com/timbenniks/status/1304146886832594944\",\n\t\tthumbnail_url: null,\n\t\tthumbnail_width: null,\n\t\tthumbnail_height: null,\n\t\tembed_url: \"https://twitter.com/timbenniks/status/1304146886832594944\",\n\t\thtml: '<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">I’ve been diving deep on <a href=\"https://twitter.com/prismicio?ref_src=twsrc%5Etfw\">@prismicio</a> <a href=\"https://twitter.com/hashtag/slicemachine?src=hash&amp;ref_src=twsrc%5Etfw\">#slicemachine</a> today. I made all my own components and I used custom slices. It works like a charm with <a href=\"https://twitter.com/nuxt_js?ref_src=twsrc%5Etfw\">@nuxt_js</a>. Also: I’m coding with this view. <a href=\"https://t.co/F0I8X9gz39\">pic.twitter.com/F0I8X9gz39</a></p>&mdash; Tim Benniks (@timbenniks) <a href=\"https://twitter.com/timbenniks/status/1304146886832594944?ref_src=twsrc%5Etfw\">September 10, 2020</a></blockquote>\\n<script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\\n',\n\t},\n\t{\n\t\turl: \"https://twitter.com/prismicio/status/1354112310252630016\",\n\t\tthumbnail_url: null,\n\t\tthumbnail_width: null,\n\t\tthumbnail_height: null,\n\t\tembed_url: \"https://twitter.com/prismicio/status/1354112310252630016\",\n\t\thtml: '<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">We&#39;re launching a new <a href=\"https://twitter.com/hashtag/SliceContest?src=hash&amp;ref_src=twsrc%5Etfw\">#SliceContest</a> tomorrow along with Slice Machine upgrades.<br><br>Want to know more? Join us at tomorrow&#39;s Product Meet-up👇<a href=\"https://t.co/prYSypiAvB\">https://t.co/prYSypiAvB</a><br><br>We can&#39;t tell you any further details for now, but here&#39;s a sneak peek at the prizes👀 <a href=\"https://t.co/fV1eoGlEBh\">pic.twitter.com/fV1eoGlEBh</a></p>&mdash; Prismic (@prismicio) <a href=\"https://twitter.com/prismicio/status/1354112310252630016?ref_src=twsrc%5Etfw\">January 26, 2021</a></blockquote>\\n<script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\\n',\n\t},\n\t{\n\t\turl: \"https://twitter.com/prismicio/status/1354835716430319617\",\n\t\tthumbnail_url: null,\n\t\tthumbnail_width: null,\n\t\tthumbnail_height: null,\n\t\tembed_url: \"https://twitter.com/prismicio/status/1354835716430319617\",\n\t\thtml: '<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Does anyone want to create a wildly popular website for discussing &#39;Wall Street Bets&#39; using Prismic?<br><br>It may or may not have to look a lot like <a href=\"https://twitter.com/hashtag/reddit?src=hash&amp;ref_src=twsrc%5Etfw\">#reddit</a> and we won&#39;t make it private.<br><br>Just asking for some friends...</p>&mdash; Prismic (@prismicio) <a href=\"https://twitter.com/prismicio/status/1354835716430319617?ref_src=twsrc%5Etfw\">January 28, 2021</a></blockquote>\\n<script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\\n',\n\t},\n];\ntype GetMockEmbedDataConfig = Pick<MockValueConfig, \"seed\">;\n\nexport const getMockEmbedData = (\n\tconfig: GetMockEmbedDataConfig,\n): MockEmbedData => {\n\tconst faker = createFaker(config.seed);\n\n\treturn faker.random.arrayElement(dataSet);\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockImageData, MockValueConfig } from \"../types\";\n\ntype BuildImageFieldConfig<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = {\n\timageData: MockImageData;\n\tconstraint?: prismicT.CustomTypeModelImageField[\"config\"][\"constraint\"];\n} & Pick<MockValueConfig, \"seed\"> &\n\tPick<MockValueStateConfig<State>, \"state\">;\n\nexport const buildImageFieldImage = <\n\tState extends prismicT.FieldState = prismicT.FieldState,\n>(\n\tconfig: BuildImageFieldConfig<State>,\n): prismicT.ImageFieldImage<State> => {\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\turl: null,\n\t\t\tdimensions: null,\n\t\t\talt: null,\n\t\t\tcopyright: null,\n\t\t} as prismicT.ImageFieldImage<State>;\n\t} else {\n\t\tconst faker = createFaker(config.seed);\n\n\t\tconst url = new URL(config.imageData.url);\n\n\t\tconst dimensions = {\n\t\t\twidth: config.constraint?.width ?? config.imageData.width,\n\t\t\theight: config.constraint?.height ?? config.imageData.height,\n\t\t};\n\n\t\turl.searchParams.set(\"w\", dimensions.width.toString());\n\t\turl.searchParams.set(\"h\", dimensions.height.toString());\n\t\turl.searchParams.set(\"fit\", \"crop\");\n\n\t\treturn {\n\t\t\turl: url.toString(),\n\t\t\tdimensions,\n\t\t\talt: faker.lorem.sentence(),\n\t\t\tcopyright: faker.lorem.sentence(),\n\t\t} as prismicT.ImageFieldImage<State>;\n\t}\n};\n","import { createFaker } from \"../lib/createFaker\";\n\nimport { MockImageData, MockValueConfig } from \"../types\";\n\nconst dataSet: MockImageData[] = [\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1604537529428-15bcbeecfe4d\",\n\t\twidth: 4240,\n\t\theight: 2832,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05\",\n\t\twidth: 7372,\n\t\theight: 4392,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1441974231531-c6227db76b6e\",\n\t\twidth: 2560,\n\t\theight: 1705,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5\",\n\t\twidth: 2200,\n\t\theight: 1467,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1426604966848-d7adac402bff\",\n\t\twidth: 5616,\n\t\theight: 3744,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1604537466608-109fa2f16c3b\",\n\t\twidth: 4240,\n\t\theight: 2832,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1497436072909-60f360e1d4b1\",\n\t\twidth: 2560,\n\t\theight: 1440,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/reserve/HgZuGu3gSD6db21T3lxm_San%20Zenone.jpg\",\n\t\twidth: 6373,\n\t\theight: 4253,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1504198266287-1659872e6590\",\n\t\twidth: 4272,\n\t\theight: 2848,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1470770903676-69b98201ea1c\",\n\t\twidth: 4554,\n\t\theight: 3036,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1587502537745-84b86da1204f\",\n\t\twidth: 6550,\n\t\theight: 4367,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1431794062232-2a99a5431c6c\",\n\t\twidth: 6000,\n\t\theight: 4000,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1446329813274-7c9036bd9a1f\",\n\t\twidth: 6000,\n\t\theight: 4000,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1504567961542-e24d9439a724\",\n\t\twidth: 4608,\n\t\theight: 3456,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1444464666168-49d633b86797\",\n\t\twidth: 4844,\n\t\theight: 3234,\n\t},\n\t{\n\t\turl: \"https://images.unsplash.com/photo-1553531384-397c80973a0b\",\n\t\twidth: 4335,\n\t\theight: 6502,\n\t},\n];\n\ntype GetMockImageDataConfig = Pick<MockValueConfig, \"seed\">;\n\nexport const getMockImageData = (\n\tconfig: GetMockImageDataConfig,\n): MockImageData => {\n\tconst faker = createFaker(config.seed);\n\n\treturn faker.random.arrayElement(dataSet);\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\nimport * as modelGen from \"../../model\";\n\ntype RichTextNodeTitleType =\n\t| typeof prismicT.RichTextNodeType.heading1\n\t| typeof prismicT.RichTextNodeType.heading2\n\t| typeof prismicT.RichTextNodeType.heading3\n\t| typeof prismicT.RichTextNodeType.heading4\n\t| typeof prismicT.RichTextNodeType.heading5\n\t| typeof prismicT.RichTextNodeType.heading6;\n\ntype RTHeadingNode =\n\t| prismicT.RTHeading1Node\n\t| prismicT.RTHeading2Node\n\t| prismicT.RTHeading3Node\n\t| prismicT.RTHeading4Node\n\t| prismicT.RTHeading5Node\n\t| prismicT.RTHeading6Node;\n\nconst patterns = {\n\tshort: {\n\t\tminWords: 1,\n\t\tmaxWords: 3,\n\t},\n\tmedium: {\n\t\tminWords: 3,\n\t\tmaxWords: 6,\n\t},\n\tlong: {\n\t\tminWords: 6,\n\t\tmaxWords: 12,\n\t},\n} as const;\n\nexport type MockRichTextHeadingValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & MockRichTextValueConfig;\n\nexport const heading = (\n\tconfig: MockRichTextHeadingValueConfig = {},\n): RTHeadingNode | undefined => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.title({ seed: config.seed });\n\n\tconst types = (\n\t\t\"single\" in model.config ? model.config.single : model.config.multi\n\t)\n\t\t.split(\",\")\n\t\t.filter((type) =>\n\t\t\t[\n\t\t\t\tprismicT.RichTextNodeType.heading1,\n\t\t\t\tprismicT.RichTextNodeType.heading2,\n\t\t\t\tprismicT.RichTextNodeType.heading3,\n\t\t\t\tprismicT.RichTextNodeType.heading4,\n\t\t\t\tprismicT.RichTextNodeType.heading5,\n\t\t\t\tprismicT.RichTextNodeType.heading6,\n\t\t\t].includes(type as RichTextNodeTitleType),\n\t\t) as RichTextNodeTitleType[];\n\tconst type = faker.random.arrayElement(types);\n\n\tif (type) {\n\t\tconst patternKey =\n\t\t\tconfig.pattern ||\n\t\t\tfaker.random.arrayElement(\n\t\t\t\tObject.keys(patterns) as (keyof typeof patterns)[],\n\t\t\t);\n\t\tconst pattern = patterns[patternKey];\n\n\t\treturn {\n\t\t\ttype,\n\t\t\ttext: changeCase.capitalCase(\n\t\t\t\tfaker.lorem.words(\n\t\t\t\t\tfaker.datatype.number({\n\t\t\t\t\t\tmin: pattern.minWords,\n\t\t\t\t\t\tmax: pattern.maxWords,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t\t\tspans: [],\n\t\t};\n\t} else {\n\t\treturn undefined;\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\nconst patterns = {\n\tshort: {\n\t\tsentenceCount: 2,\n\t},\n\tmedium: {\n\t\tsentenceCount: 6,\n\t},\n\tlong: {\n\t\tsentenceCount: 12,\n\t},\n} as const;\n\ntype MockRichTextParagraphValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & MockRichTextValueConfig;\n\nexport const paragraph = (\n\tconfig: MockRichTextParagraphValueConfig = {},\n): prismicT.RTParagraphNode | undefined => {\n\tconst faker = createFaker(config.seed);\n\n\tconst patternKey =\n\t\tconfig.pattern ||\n\t\tfaker.random.arrayElement(\n\t\t\tObject.keys(patterns) as (keyof typeof patterns)[],\n\t\t);\n\tconst pattern = patterns[patternKey];\n\n\treturn {\n\t\ttype: prismicT.RichTextNodeType.paragraph,\n\t\ttext: faker.lorem.paragraph(pattern.sentenceCount),\n\t\tspans: [],\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\nconst patterns = {\n\tshort: {\n\t\tsentenceCount: 2,\n\t},\n\tmedium: {\n\t\tsentenceCount: 6,\n\t},\n\tlong: {\n\t\tsentenceCount: 12,\n\t},\n} as const;\n\ntype MockRichTextPreformattedValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & MockRichTextValueConfig;\n\nexport const preformatted = (\n\tconfig: MockRichTextPreformattedValueConfig = {},\n): prismicT.RTPreformattedNode | undefined => {\n\tconst faker = createFaker(config.seed);\n\n\tconst patternKey =\n\t\tconfig.pattern ||\n\t\tfaker.random.arrayElement(\n\t\t\tObject.keys(patterns) as (keyof typeof patterns)[],\n\t\t);\n\tconst pattern = patterns[patternKey];\n\n\treturn {\n\t\ttype: prismicT.RichTextNodeType.preformatted,\n\t\t// TODO: Use code, not lorem ipsum.\n\t\ttext: faker.lorem.paragraph(pattern.sentenceCount),\n\t\tspans: [],\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\nconst patterns = {\n\tshort: {\n\t\tminItems: 1,\n\t\tmaxItems: 3,\n\t},\n\tmedium: {\n\t\tminItems: 3,\n\t\tmaxItems: 6,\n\t},\n\tlong: {\n\t\tminItems: 6,\n\t\tmaxItems: 12,\n\t},\n} as const;\n\ntype MockRichTextListValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & MockRichTextValueConfig;\n\nexport const list = (\n\tconfig: MockRichTextListValueConfig = {},\n): prismicT.RTListItemNode[] | undefined => {\n\tconst faker = createFaker(config.seed);\n\n\tconst patternKey =\n\t\tconfig.pattern ||\n\t\tfaker.random.arrayElement(\n\t\t\tObject.keys(patterns) as (keyof typeof patterns)[],\n\t\t);\n\tconst pattern = patterns[patternKey];\n\n\tconst itemsCount = faker.datatype.number({\n\t\tmin: pattern.minItems,\n\t\tmax: pattern.maxItems,\n\t});\n\n\treturn Array(itemsCount)\n\t\t.fill(undefined)\n\t\t.map(() => {\n\t\t\treturn {\n\t\t\t\ttype: prismicT.RichTextNodeType.listItem,\n\t\t\t\ttext: faker.lorem.sentence(),\n\t\t\t\tspans: [],\n\t\t\t};\n\t\t});\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\nconst patterns = {\n\tshort: {\n\t\tminItems: 1,\n\t\tmaxItems: 3,\n\t},\n\tmedium: {\n\t\tminItems: 3,\n\t\tmaxItems: 6,\n\t},\n\tlong: {\n\t\tminItems: 6,\n\t\tmaxItems: 12,\n\t},\n} as const;\n\ntype MockRichTextOListValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & MockRichTextValueConfig;\n\nexport const oList = (\n\tconfig: MockRichTextOListValueConfig = {},\n): prismicT.RTOListItemNode[] | undefined => {\n\tconst faker = createFaker(config.seed);\n\n\tconst patternKey =\n\t\tconfig.pattern ||\n\t\tfaker.random.arrayElement(\n\t\t\tObject.keys(patterns) as (keyof typeof patterns)[],\n\t\t);\n\tconst pattern = patterns[patternKey];\n\n\tconst itemsCount = faker.datatype.number({\n\t\tmin: pattern.minItems,\n\t\tmax: pattern.maxItems,\n\t});\n\n\treturn Array(itemsCount)\n\t\t.fill(undefined)\n\t\t.map(() => {\n\t\t\treturn {\n\t\t\t\ttype: prismicT.RichTextNodeType.oListItem,\n\t\t\t\ttext: faker.lorem.sentence(),\n\t\t\t\tspans: [],\n\t\t\t};\n\t\t});\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { buildImageFieldImage } from \"../../lib/buildImageFieldImage\";\nimport { getMockImageData } from \"../../lib/getMockImageData\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\ntype MockRichTextImageValueConfig = MockRichTextValueConfig;\n\nexport const image = (\n\tconfig: MockRichTextImageValueConfig = {},\n): prismicT.RTImageNode | undefined => {\n\tconst imageData = getMockImageData({ seed: config.seed });\n\tconst imageField = buildImageFieldImage({\n\t\tseed: config.seed,\n\t\timageData,\n\t\tstate: false,\n\t});\n\n\treturn {\n\t\ttype: prismicT.RichTextNodeType.image,\n\t\talt: imageField.alt,\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\turl: imageField.url!,\n\t\tcopyright: imageField.copyright,\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tdimensions: imageField.dimensions!,\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { buildEmbedField } from \"../../lib/buildEmbedField\";\nimport { getMockEmbedData } from \"../../lib/getMockEmbedData\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\ntype MockRichTextEmbedValueConfig = MockRichTextValueConfig;\n\nexport const embed = (\n\tconfig: MockRichTextEmbedValueConfig = {},\n): prismicT.RTEmbedNode | undefined => {\n\tconst embedData = getMockEmbedData({ seed: config.seed });\n\tconst embedField = buildEmbedField({ seed: config.seed, embedData });\n\n\treturn {\n\t\ttype: prismicT.RichTextNodeType.embed,\n\t\toembed: embedField,\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig as BaseMockRichTextValueConfig } from \"../../types\";\n\nimport * as modelGen from \"../../model\";\nimport { heading } from \"./heading\";\nimport { paragraph } from \"./paragraph\";\nimport { preformatted } from \"./preformatted\";\nimport { list } from \"./list\";\nimport { oList } from \"./oList\";\nimport { image } from \"./image\";\nimport { embed } from \"./embed\";\n\nconst patterns = {\n\tshort: {\n\t\tblockCountMin: 1,\n\t\tblockCountMax: 2,\n\t},\n\tmedium: {\n\t\tblockCountMin: 2,\n\t\tblockCountMax: 4,\n\t},\n\tlong: {\n\t\tblockCountMin: 4,\n\t\tblockCountMax: 8,\n\t},\n} as const;\n\nexport type MockRichTextValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & BaseMockRichTextValueConfig<prismicT.CustomTypeModelRichTextField>;\n\nconst generators = {\n\t[prismicT.RichTextNodeType.heading1]: heading,\n\t[prismicT.RichTextNodeType.heading2]: heading,\n\t[prismicT.RichTextNodeType.heading3]: heading,\n\t[prismicT.RichTextNodeType.heading4]: heading,\n\t[prismicT.RichTextNodeType.heading5]: heading,\n\t[prismicT.RichTextNodeType.heading6]: heading,\n\t[prismicT.RichTextNodeType.paragraph]: paragraph,\n\t[prismicT.RichTextNodeType.preformatted]: preformatted,\n\t[prismicT.RichTextNodeType.listItem]: list,\n\t[prismicT.RichTextNodeType.oListItem]: oList,\n\t[prismicT.RichTextNodeType.image]: image,\n\t[prismicT.RichTextNodeType.embed]: embed,\n};\n\nexport const richText = (\n\tconfig: MockRichTextValueConfig = {},\n): prismicT.RichTextField => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model =\n\t\tconfig.model ||\n\t\tmodelGen.richText({\n\t\t\tseed: config.seed,\n\t\t\twithMultipleBlocks: true,\n\t\t});\n\tconst supportsMultipleBlocks = \"multi\" in model.config;\n\tconst types = (\n\t\t\"multi\" in model.config ? model.config.multi : model.config.single\n\t)\n\t\t.split(\",\")\n\t\t.filter((type) =>\n\t\t\tObject.keys(generators).includes(type),\n\t\t) as prismicT.RTNode[\"type\"][];\n\n\tif (types.length > 0) {\n\t\tconst patternKey =\n\t\t\tconfig.pattern ||\n\t\t\tfaker.random.arrayElement(\n\t\t\t\tObject.keys(patterns) as (keyof typeof patterns)[],\n\t\t\t);\n\t\tconst pattern = patterns[patternKey];\n\n\t\tconst blockCount = supportsMultipleBlocks\n\t\t\t? faker.datatype.number({\n\t\t\t\t\tmin: pattern.blockCountMin,\n\t\t\t\t\tmax: pattern.blockCountMax,\n\t\t\t })\n\t\t\t: 1;\n\n\t\treturn Array(blockCount)\n\t\t\t.fill(undefined)\n\t\t\t.map(() => {\n\t\t\t\tconst type = faker.random.arrayElement(types);\n\t\t\t\tconst generator = generators[type];\n\n\t\t\t\treturn generator({ seed: config.seed, model });\n\t\t\t})\n\t\t\t.flat()\n\t\t\t.filter((block): block is prismicT.RTNode => block !== undefined)\n\t\t\t.slice(0, blockCount) as prismicT.RichTextField;\n\t} else {\n\t\treturn [];\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { MockRestApiConfig } from \"../types\";\nimport { timestamp } from \"../value\";\n\nexport type MockRestApiRefConfig<IsScheduled extends boolean = false> = {\n\tisMasterRef?: boolean;\n\tisScheduled?: IsScheduled;\n} & MockRestApiConfig;\n\nexport type MockRestApiRefValue<IsScheduled extends boolean = false> = Omit<\n\tprismicT.Ref,\n\t\"scheduledAt\"\n> &\n\t(IsScheduled extends true\n\t\t? { scheduledAt: string }\n\t\t: { scheduledAt?: never });\n\nexport const ref = <IsScheduled extends boolean = false>(\n\tconfig: MockRestApiRefConfig<IsScheduled> = {},\n): MockRestApiRefValue<IsScheduled> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst value: prismicT.Ref = {\n\t\tid: faker.git.shortSha(),\n\t\tref: faker.git.shortSha(),\n\t\tisMasterRef: config.isMasterRef ?? false,\n\t\tlabel: config.isMasterRef\n\t\t\t? \"Master\"\n\t\t\t: changeCase.capitalCase(faker.company.bsNoun()),\n\t};\n\n\tif (config.isScheduled) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tvalue.scheduledAt = timestamp({ seed: config.seed })!;\n\t}\n\n\treturn value as MockRestApiRefValue<IsScheduled>;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateTags } from \"../lib/generateTags\";\n\nimport { MockRestApiConfig } from \"../types\";\nimport { ref } from \"./ref\";\n\nexport type MockRestApiRepositoryConfig = {\n\tcustomTypeModels?: prismicT.CustomTypeModel[];\n\twithReleases?: boolean;\n} & MockRestApiConfig;\n\nexport const repository = (\n\tconfig: MockRestApiRepositoryConfig = {},\n): prismicT.Repository => {\n\tconst faker = createFaker(config.seed);\n\n\tconst types = (config.customTypeModels || []).reduce((acc, model) => {\n\t\tacc[model.id] = model.label;\n\n\t\treturn acc;\n\t}, {} as prismicT.Repository[\"types\"]);\n\n\treturn {\n\t\trefs: [\n\t\t\tref({ seed: config.seed, isMasterRef: true }),\n\t\t\t...(config.withReleases\n\t\t\t\t? [ref({ seed: config.seed }), ref({ seed: config.seed })]\n\t\t\t\t: []),\n\t\t],\n\t\tintegrationFieldsRef: ref({ seed: config.seed }).ref,\n\t\ttypes,\n\t\tlanguages: [\n\t\t\t{\n\t\t\t\tid: faker.lorem.word(),\n\t\t\t\tname: changeCase.capitalCase(faker.lorem.word()),\n\t\t\t},\n\t\t],\n\t\ttags: generateTags({\n\t\t\tseed: config.seed,\n\t\t\tmin: 1,\n\t\t\tmax: 10,\n\t\t}),\n\t\tforms: {},\n\t\tlicense: \"All Rights Reserved\",\n\t\tversion: faker.git.shortSha(),\n\t\tbookmarks: {},\n\t\texperiments: {},\n\t\toauth_token: faker.internet.url(),\n\t\toauth_initiate: faker.internet.url(),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockRestApiConfig } from \"../types\";\n\nexport type MockRestApiQueryConfig<\n\tDocument extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n> = {\n\tdocuments?: Document[];\n\tpage?: number;\n\tpageSize?: number;\n} & MockRestApiConfig;\n\nexport const query = <\n\tDocument extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n>(\n\tconfig: MockRestApiQueryConfig<Document> = {},\n): prismicT.Query<Document> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst documents = config.documents || [];\n\tconst page = Math.max(1, config.page ?? 1);\n\tconst pageSize = Math.min(100, Math.max(1, config.pageSize ?? 100));\n\tconst totalPages = Math.ceil(documents.length / pageSize);\n\tconst results = documents.slice((page - 1) * pageSize, page * pageSize);\n\n\treturn {\n\t\tpage,\n\t\tnext_page: page < totalPages ? faker.internet.url() : null,\n\t\tprev_page: page > 1 ? faker.internet.url() : null,\n\t\ttotal_pages: totalPages,\n\t\tresults_size: results.length,\n\t\tresults_per_page: pageSize,\n\t\ttotal_results_size: documents.length,\n\t\tresults,\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { generateTags } from \"../lib/generateTags\";\n\nimport { MockRestApiConfig } from \"../types\";\n\nexport type MockRestApiTagsConfig = MockRestApiConfig;\n\nexport const tags = (config: MockRestApiTagsConfig = {}): prismicT.Tags => {\n\treturn generateTags({\n\t\tseed: config.seed,\n\t\tmin: 1,\n\t\tmax: 10,\n\t});\n};\n"],"names":["Faker","fakerLocaleEN","changeCase","prismicT","dataSet","patterns","modelGen.title"],"mappings":"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"}
@@ -27,9 +27,10 @@ declare type MockRestApiQueryConfig<Document extends prismicT.PrismicDocument =
27
27
  page?: number;
28
28
  pageSize?: number;
29
29
  } & MockRestApiConfig;
30
- declare const query: <Document_1 extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string> = prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(config?: MockRestApiQueryConfig<Document_1>) => prismicT.Query<Document_1>;
30
+ declare const query: <Document_1 extends prismicT.PrismicDocument<Record<string, any>, string, string> = prismicT.PrismicDocument<Record<string, any>, string, string>>(config?: MockRestApiQueryConfig<Document_1>) => prismicT.Query<Document_1>;
31
31
 
32
32
  declare type MockRestApiTagsConfig = MockRestApiConfig;
33
33
  declare const tags: (config?: MockRestApiTagsConfig) => prismicT.Tags<string>;
34
34
 
35
35
  export { MockRestApiQueryConfig, MockRestApiRefConfig, MockRestApiRefValue, MockRestApiRepositoryConfig, MockRestApiTagsConfig, query, ref, repository, tags };
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,7 +1,36 @@
1
- import * as changeCase from 'change-case';
2
- import * as fakerLocaleEN from 'faker/lib/locales/en/index.js';
3
- import Faker from 'faker/lib/index.js';
4
- import * as prismicT from '@prismicio/types';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const changeCase = require('change-case');
6
+ const fakerLocaleEN = require('faker/lib/locales/en/index.js');
7
+ const Faker = require('faker/lib/index.js');
8
+ const prismicT = require('@prismicio/types');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ const n = Object.create(null);
15
+ if (e) {
16
+ for (const k in e) {
17
+ if (k !== 'default') {
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ }
25
+ }
26
+ n["default"] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ const changeCase__namespace = /*#__PURE__*/_interopNamespace(changeCase);
31
+ const fakerLocaleEN__namespace = /*#__PURE__*/_interopNamespace(fakerLocaleEN);
32
+ const Faker__default = /*#__PURE__*/_interopDefaultLegacy(Faker);
33
+ const prismicT__namespace = /*#__PURE__*/_interopNamespace(prismicT);
5
34
 
6
35
  const FAKER_SEED = 1984;
7
36
 
@@ -16,8 +45,8 @@ const createFaker = (seed = FAKER_SEED) => {
16
45
  if (createFaker.cache[cacheKey]) {
17
46
  return createFaker.cache[cacheKey];
18
47
  }
19
- const fakerInstance = new Faker();
20
- fakerInstance.locales["en"] = fakerLocaleEN;
48
+ const fakerInstance = new Faker__default["default"]();
49
+ fakerInstance.locales["en"] = fakerLocaleEN__namespace;
21
50
  fakerInstance.seed(normalizedSeed);
22
51
  createFaker.cache[cacheKey] = fakerInstance;
23
52
  return fakerInstance;
@@ -30,7 +59,7 @@ const generateTags = (config) => {
30
59
  return Array(faker.datatype.number({
31
60
  min: (_a = config.min) != null ? _a : 0,
32
61
  max: (_b = config.max) != null ? _b : 2
33
- })).fill(void 0).map(() => changeCase.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 }))));
62
+ })).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 }))));
34
63
  };
35
64
 
36
65
  const title = (config = {}) => {
@@ -44,10 +73,10 @@ const title = (config = {}) => {
44
73
  "heading6"
45
74
  ]).join(",");
46
75
  return {
47
- type: prismicT.CustomTypeModelFieldType.StructuredText,
76
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
48
77
  config: {
49
- label: changeCase.capitalCase(faker.company.bsNoun()),
50
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
78
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
79
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
51
80
  single,
52
81
  allowTargetBlank: faker.datatype.boolean() ? true : void 0
53
82
  }
@@ -58,16 +87,16 @@ const timestamp = (config = {}) => {
58
87
  const faker = createFaker(config.seed);
59
88
  const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
60
89
  const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
61
- return faker.date.between(after, before).toISOString();
90
+ return config.state === "empty" ? null : faker.date.between(after, before).toISOString();
62
91
  };
63
92
 
64
93
  const buildEmbedField = (config) => {
65
94
  const faker = createFaker(config.seed);
66
95
  return {
67
- type: faker.datatype.boolean() ? prismicT.EmbedType.Link : prismicT.EmbedType.Rich,
96
+ type: faker.datatype.boolean() ? prismicT__namespace.EmbedType.Link : prismicT__namespace.EmbedType.Rich,
68
97
  url: config.embedData.url,
69
98
  html: config.embedData.html,
70
- title: changeCase.capitalCase(faker.lorem.words(3)),
99
+ title: changeCase__namespace.capitalCase(faker.lorem.words(3)),
71
100
  version: faker.datatype.number({ min: 1, max: 3, precision: 10 }).toString(),
72
101
  cache_age: faker.datatype.number(),
73
102
  embed_url: config.embedData.embed_url,
@@ -145,23 +174,32 @@ const getMockEmbedData = (config) => {
145
174
  return faker.random.arrayElement(dataSet$1);
146
175
  };
147
176
 
148
- const buildImageField = (config) => {
177
+ const buildImageFieldImage = (config) => {
149
178
  var _a, _b, _c, _d;
150
- const faker = createFaker(config.seed);
151
- const url = new URL(config.imageData.url);
152
- const dimensions = {
153
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
154
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
155
- };
156
- url.searchParams.set("w", dimensions.width.toString());
157
- url.searchParams.set("h", dimensions.height.toString());
158
- url.searchParams.set("fit", "crop");
159
- return {
160
- url: url.toString(),
161
- dimensions,
162
- alt: faker.lorem.sentence(),
163
- copyright: faker.lorem.sentence()
164
- };
179
+ if (config.state === "empty") {
180
+ return {
181
+ url: null,
182
+ dimensions: null,
183
+ alt: null,
184
+ copyright: null
185
+ };
186
+ } else {
187
+ const faker = createFaker(config.seed);
188
+ const url = new URL(config.imageData.url);
189
+ const dimensions = {
190
+ width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
191
+ height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
192
+ };
193
+ url.searchParams.set("w", dimensions.width.toString());
194
+ url.searchParams.set("h", dimensions.height.toString());
195
+ url.searchParams.set("fit", "crop");
196
+ return {
197
+ url: url.toString(),
198
+ dimensions,
199
+ alt: faker.lorem.sentence(),
200
+ copyright: faker.lorem.sentence()
201
+ };
202
+ }
165
203
  };
166
204
 
167
205
  const dataSet = [
@@ -269,12 +307,12 @@ const heading = (config = {}) => {
269
307
  const faker = createFaker(config.seed);
270
308
  const model = config.model || title({ seed: config.seed });
271
309
  const types = ("single" in model.config ? model.config.single : model.config.multi).split(",").filter((type2) => [
272
- prismicT.RichTextNodeType.heading1,
273
- prismicT.RichTextNodeType.heading2,
274
- prismicT.RichTextNodeType.heading3,
275
- prismicT.RichTextNodeType.heading4,
276
- prismicT.RichTextNodeType.heading5,
277
- prismicT.RichTextNodeType.heading6
310
+ prismicT__namespace.RichTextNodeType.heading1,
311
+ prismicT__namespace.RichTextNodeType.heading2,
312
+ prismicT__namespace.RichTextNodeType.heading3,
313
+ prismicT__namespace.RichTextNodeType.heading4,
314
+ prismicT__namespace.RichTextNodeType.heading5,
315
+ prismicT__namespace.RichTextNodeType.heading6
278
316
  ].includes(type2));
279
317
  const type = faker.random.arrayElement(types);
280
318
  if (type) {
@@ -282,7 +320,7 @@ const heading = (config = {}) => {
282
320
  const pattern = patterns$4[patternKey];
283
321
  return {
284
322
  type,
285
- text: changeCase.capitalCase(faker.lorem.words(faker.datatype.number({
323
+ text: changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({
286
324
  min: pattern.minWords,
287
325
  max: pattern.maxWords
288
326
  }))),
@@ -309,7 +347,7 @@ const paragraph = (config = {}) => {
309
347
  const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
310
348
  const pattern = patterns$3[patternKey];
311
349
  return {
312
- type: prismicT.RichTextNodeType.paragraph,
350
+ type: prismicT__namespace.RichTextNodeType.paragraph,
313
351
  text: faker.lorem.paragraph(pattern.sentenceCount),
314
352
  spans: []
315
353
  };
@@ -331,7 +369,7 @@ const preformatted = (config = {}) => {
331
369
  const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
332
370
  const pattern = patterns$2[patternKey];
333
371
  return {
334
- type: prismicT.RichTextNodeType.preformatted,
372
+ type: prismicT__namespace.RichTextNodeType.preformatted,
335
373
  text: faker.lorem.paragraph(pattern.sentenceCount),
336
374
  spans: []
337
375
  };
@@ -361,7 +399,7 @@ const list = (config = {}) => {
361
399
  });
362
400
  return Array(itemsCount).fill(void 0).map(() => {
363
401
  return {
364
- type: prismicT.RichTextNodeType.listItem,
402
+ type: prismicT__namespace.RichTextNodeType.listItem,
365
403
  text: faker.lorem.sentence(),
366
404
  spans: []
367
405
  };
@@ -392,7 +430,7 @@ const oList = (config = {}) => {
392
430
  });
393
431
  return Array(itemsCount).fill(void 0).map(() => {
394
432
  return {
395
- type: prismicT.RichTextNodeType.oListItem,
433
+ type: prismicT__namespace.RichTextNodeType.oListItem,
396
434
  text: faker.lorem.sentence(),
397
435
  spans: []
398
436
  };
@@ -401,9 +439,13 @@ const oList = (config = {}) => {
401
439
 
402
440
  const image = (config = {}) => {
403
441
  const imageData = getMockImageData({ seed: config.seed });
404
- const imageField = buildImageField({ seed: config.seed, imageData });
442
+ const imageField = buildImageFieldImage({
443
+ seed: config.seed,
444
+ imageData,
445
+ state: false
446
+ });
405
447
  return {
406
- type: prismicT.RichTextNodeType.image,
448
+ type: prismicT__namespace.RichTextNodeType.image,
407
449
  alt: imageField.alt,
408
450
  url: imageField.url,
409
451
  copyright: imageField.copyright,
@@ -415,24 +457,24 @@ const embed = (config = {}) => {
415
457
  const embedData = getMockEmbedData({ seed: config.seed });
416
458
  const embedField = buildEmbedField({ seed: config.seed, embedData });
417
459
  return {
418
- type: prismicT.RichTextNodeType.embed,
460
+ type: prismicT__namespace.RichTextNodeType.embed,
419
461
  oembed: embedField
420
462
  };
421
463
  };
422
464
 
423
465
  ({
424
- [prismicT.RichTextNodeType.heading1]: heading,
425
- [prismicT.RichTextNodeType.heading2]: heading,
426
- [prismicT.RichTextNodeType.heading3]: heading,
427
- [prismicT.RichTextNodeType.heading4]: heading,
428
- [prismicT.RichTextNodeType.heading5]: heading,
429
- [prismicT.RichTextNodeType.heading6]: heading,
430
- [prismicT.RichTextNodeType.paragraph]: paragraph,
431
- [prismicT.RichTextNodeType.preformatted]: preformatted,
432
- [prismicT.RichTextNodeType.listItem]: list,
433
- [prismicT.RichTextNodeType.oListItem]: oList,
434
- [prismicT.RichTextNodeType.image]: image,
435
- [prismicT.RichTextNodeType.embed]: embed
466
+ [prismicT__namespace.RichTextNodeType.heading1]: heading,
467
+ [prismicT__namespace.RichTextNodeType.heading2]: heading,
468
+ [prismicT__namespace.RichTextNodeType.heading3]: heading,
469
+ [prismicT__namespace.RichTextNodeType.heading4]: heading,
470
+ [prismicT__namespace.RichTextNodeType.heading5]: heading,
471
+ [prismicT__namespace.RichTextNodeType.heading6]: heading,
472
+ [prismicT__namespace.RichTextNodeType.paragraph]: paragraph,
473
+ [prismicT__namespace.RichTextNodeType.preformatted]: preformatted,
474
+ [prismicT__namespace.RichTextNodeType.listItem]: list,
475
+ [prismicT__namespace.RichTextNodeType.oListItem]: oList,
476
+ [prismicT__namespace.RichTextNodeType.image]: image,
477
+ [prismicT__namespace.RichTextNodeType.embed]: embed
436
478
  });
437
479
 
438
480
  const ref = (config = {}) => {
@@ -442,7 +484,7 @@ const ref = (config = {}) => {
442
484
  id: faker.git.shortSha(),
443
485
  ref: faker.git.shortSha(),
444
486
  isMasterRef: (_a = config.isMasterRef) != null ? _a : false,
445
- label: config.isMasterRef ? "Master" : changeCase.capitalCase(faker.company.bsNoun())
487
+ label: config.isMasterRef ? "Master" : changeCase__namespace.capitalCase(faker.company.bsNoun())
446
488
  };
447
489
  if (config.isScheduled) {
448
490
  value.scheduledAt = timestamp({ seed: config.seed });
@@ -466,7 +508,7 @@ const repository = (config = {}) => {
466
508
  languages: [
467
509
  {
468
510
  id: faker.lorem.word(),
469
- name: changeCase.capitalCase(faker.lorem.word())
511
+ name: changeCase__namespace.capitalCase(faker.lorem.word())
470
512
  }
471
513
  ],
472
514
  tags: generateTags({
@@ -512,4 +554,8 @@ const tags = (config = {}) => {
512
554
  });
513
555
  };
514
556
 
515
- export { query, ref, repository, tags };
557
+ exports.query = query;
558
+ exports.ref = ref;
559
+ exports.repository = repository;
560
+ exports.tags = tags;
561
+ //# sourceMappingURL=index.js.map