@prismicio/mock 0.0.3 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/dist/api/index.cjs +561 -0
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/index.d.ts +36 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +561 -0
- package/dist/api/index.js.map +1 -0
- package/dist/index.cjs +672 -644
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +228 -262
- package/dist/{index.mjs → index.js} +663 -634
- package/dist/index.js.map +1 -0
- package/dist/model/index.cjs +163 -203
- package/dist/model/index.cjs.map +1 -0
- package/dist/model/index.d.ts +70 -96
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +462 -0
- package/dist/model/index.js.map +1 -0
- package/dist/value/index.cjs +284 -499
- package/dist/value/index.cjs.map +1 -0
- package/dist/value/index.d.ts +60 -120
- package/dist/value/index.d.ts.map +1 -0
- package/dist/value/{index.mjs → index.js} +447 -608
- package/dist/value/index.js.map +1 -0
- package/package.json +25 -20
- package/src/api/index.ts +11 -0
- package/src/api/query.ts +38 -0
- package/src/api/ref.ts +41 -0
- package/src/api/repository.ts +54 -0
- package/src/api/tags.ts +15 -0
- package/src/constants.ts +3 -1
- package/src/index.ts +1 -0
- package/src/lib/buildAlternativeLanguage.ts +18 -0
- package/src/lib/buildContentRelationshipField.ts +12 -5
- package/src/lib/buildEmbedField.ts +1 -1
- package/src/lib/buildImageFieldImage.ts +48 -0
- package/src/lib/createFaker.ts +19 -10
- package/src/lib/generateTags.ts +10 -2
- package/src/lib/valueForModelMap.ts +2 -2
- package/src/model/buildMockGroupFieldMap.ts +65 -0
- package/src/model/contentRelationship.ts +14 -21
- package/src/model/customType.ts +49 -48
- package/src/model/group.ts +8 -15
- package/src/model/image.ts +13 -13
- package/src/model/index.ts +2 -0
- package/src/model/select.ts +11 -16
- package/src/model/sharedSlice.ts +23 -30
- package/src/model/sharedSliceVariation.ts +33 -21
- package/src/model/slice.ts +15 -19
- package/src/model/sliceZone.ts +25 -42
- package/src/types.ts +50 -15
- package/src/value/color.ts +16 -6
- package/src/value/contentRelationship.ts +52 -36
- package/src/value/customType.ts +27 -4
- package/src/value/date.ts +25 -9
- package/src/value/embed.ts +18 -6
- package/src/value/geoPoint.ts +21 -9
- package/src/value/group.ts +7 -27
- package/src/value/image.ts +22 -9
- package/src/value/integrationFields.ts +26 -14
- package/src/value/keyText.ts +18 -6
- package/src/value/link.ts +33 -34
- package/src/value/linkToMedia.ts +15 -20
- package/src/value/number.ts +16 -6
- package/src/value/richText/heading.ts +7 -7
- package/src/value/richText/image.ts +6 -2
- package/src/value/richText/index.ts +1 -1
- package/src/value/select.ts +23 -8
- package/src/value/sharedSlice.ts +2 -2
- package/src/value/sharedSliceVariation.ts +6 -34
- package/src/value/slice.ts +5 -30
- package/src/value/sliceZone.ts +44 -60
- package/src/value/timestamp.ts +19 -6
- package/src/value/title.ts +1 -1
- package/src/value/uid.ts +1 -1
- package/dist/model/index.mjs +0 -448
- package/src/lib/buildImageField.ts +0 -34
- package/src/lib/buildMockGroupFieldMap.ts +0 -84
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/constants.ts","../../src/lib/createFaker.ts","../../src/value/boolean.ts","../../src/lib/generateTags.ts","../../src/lib/valueForModel.ts","../../src/lib/valueForModelMap.ts","../../src/model/contentRelationship.ts","../../src/model/customType.ts","../../src/model/group.ts","../../src/model/image.ts","../../src/model/link.ts","../../src/model/richText.ts","../../src/model/select.ts","../../src/model/sharedSlice.ts","../../src/model/sharedSliceVariation.ts","../../src/model/slice.ts","../../src/model/sliceZone.ts","../../src/model/title.ts","../../src/lib/generateFieldId.ts","../../src/value/timestamp.ts","../../src/lib/buildAlternativeLanguage.ts","../../src/value/customType.ts","../../src/value/color.ts","../../src/lib/buildContentRelationshipField.ts","../../src/lib/generateCustomTypeId.ts","../../src/value/contentRelationship.ts","../../src/value/date.ts","../../src/lib/buildEmbedField.ts","../../src/lib/getMockEmbedData.ts","../../src/value/embed.ts","../../src/value/geoPoint.ts","../../src/value/group.ts","../../src/lib/buildImageFieldImage.ts","../../src/lib/getMockImageData.ts","../../src/value/image.ts","../../src/value/integrationFields.ts","../../src/value/keyText.ts","../../src/value/linkToMedia.ts","../../src/value/link.ts","../../src/value/number.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/value/select.ts","../../src/value/slice.ts","../../src/value/sharedSliceVariation.ts","../../src/value/sharedSlice.ts","../../src/value/sliceZone.ts","../../src/value/title.ts","../../src/value/uid.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 prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueConfig } from \"../types\";\n\nexport type MockBooleanValueConfig<\n\tModel extends prismicT.CustomTypeModelBooleanField = prismicT.CustomTypeModelBooleanField,\n> = MockValueConfig<Model>;\n\nexport const boolean = <\n\tModel extends prismicT.CustomTypeModelBooleanField = prismicT.CustomTypeModelBooleanField,\n>(\n\tconfig: MockBooleanValueConfig<Model> = {},\n): prismicT.BooleanField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn faker.datatype.boolean();\n};\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\";\n\nimport {\n\tMockValueConfig,\n\tMockValueConfigForModel,\n\tModelValue,\n\tSetRequired,\n} from \"../types\";\n\ntype ValueForModelConfig<Model extends prismicT.CustomTypeModelField> = {\n\tconfig?: Omit<MockValueConfigForModel<Model>, \"seed\" | \"model\">;\n} & SetRequired<MockValueConfig<Model>, \"model\">;\n\nimport * as value from \"../value\";\n\nexport const valueForModel = <Model extends prismicT.CustomTypeModelField>(\n\tconfig: ValueForModelConfig<Model>,\n): ModelValue<Model> => {\n\tconst model = config.model;\n\n\tswitch (model.type) {\n\t\tcase prismicT.CustomTypeModelFieldType.Boolean: {\n\t\t\treturn value.boolean({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Color: {\n\t\t\treturn value.color({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Link: {\n\t\t\tswitch (model.config.select) {\n\t\t\t\tcase prismicT.CustomTypeModelLinkSelectType.Document: {\n\t\t\t\t\treturn value.contentRelationship({\n\t\t\t\t\t\tseed: config.seed,\n\t\t\t\t\t\tmodel: model as prismicT.CustomTypeModelContentRelationshipField,\n\t\t\t\t\t\t...config.config,\n\t\t\t\t\t}) as ModelValue<Model>;\n\t\t\t\t}\n\n\t\t\t\tcase prismicT.CustomTypeModelLinkSelectType.Media: {\n\t\t\t\t\treturn value.linkToMedia({\n\t\t\t\t\t\tseed: config.seed,\n\t\t\t\t\t\tmodel: model as prismicT.CustomTypeModelLinkToMediaField,\n\t\t\t\t\t\t...config.config,\n\t\t\t\t\t}) as ModelValue<Model>;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn value.link({\n\t\t\t\t\t\tseed: config.seed,\n\t\t\t\t\t\tmodel: model as prismicT.CustomTypeModelLinkField,\n\t\t\t\t\t\t...config.config,\n\t\t\t\t\t}) as ModelValue<Model>;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Date: {\n\t\t\treturn value.date({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Embed: {\n\t\t\treturn value.embed({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.GeoPoint: {\n\t\t\treturn value.geoPoint({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Image: {\n\t\t\treturn value.image({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Text: {\n\t\t\treturn value.keyText({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Number: {\n\t\t\treturn value.number({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Select: {\n\t\t\treturn value.select({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Timestamp: {\n\t\t\treturn value.timestamp({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.StructuredText: {\n\t\t\tif (\n\t\t\t\t\"single\" in model.config &&\n\t\t\t\tmodel.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((element) => /heading[1-6]/.test(element.trim()))\n\t\t\t) {\n\t\t\t\treturn value.title({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tmodel: model as prismicT.CustomTypeModelTitleField,\n\t\t\t\t\t...config.config,\n\t\t\t\t}) as ModelValue<Model>;\n\t\t\t} else {\n\t\t\t\treturn value.richText({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tmodel,\n\t\t\t\t\t...config.config,\n\t\t\t\t}) as ModelValue<Model>;\n\t\t\t}\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.IntegrationFields: {\n\t\t\treturn value.integrationFields({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.UID: {\n\t\t\treturn value.uid({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group: {\n\t\t\treturn value.group({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices: {\n\t\t\treturn value.sliceZone({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmodel,\n\t\t\t\t...config.config,\n\t\t\t}) as ModelValue<Model>;\n\t\t}\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { MockValueConfig, ModelValue, ModelValueMap } from \"../types\";\nimport {\n\tMockBooleanValueConfig,\n\tMockColorValueConfig,\n\tMockContentRelationshipValueConfig,\n\tMockDateValueConfig,\n\tMockEmbedValueConfig,\n\tMockGeoPointValueConfig,\n\tMockGroupValueConfig,\n\tMockImageValueConfig,\n\tMockIntegrationFieldsValueConfig,\n\tMockKeyTextValueConfig,\n\tMockLinkToMediaValueConfig,\n\tMockLinkValueConfig,\n\tMockNumberValueConfig,\n\tMockRichTextValueConfig,\n\tMockSelectValueConfig,\n\tMockSliceZoneValueConfig,\n\tMockTimestampValueConfig,\n\tMockTitleValueConfig,\n\tMockUIDValueConfig,\n} from \"../value\";\n\nimport { valueForModel } from \"./valueForModel\";\n\nconst getValueConfigType = <Model extends prismicT.CustomTypeModelField>(\n\tmodel: Model,\n): keyof ValueForModelMapConfigs => {\n\tswitch (model.type) {\n\t\tcase prismicT.CustomTypeModelFieldType.Boolean:\n\t\t\treturn \"boolean\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Color:\n\t\t\treturn \"color\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Date:\n\t\t\treturn \"date\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Embed:\n\t\t\treturn \"embed\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.GeoPoint:\n\t\t\treturn \"geoPoint\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group:\n\t\t\treturn \"group\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Image:\n\t\t\treturn \"image\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Link: {\n\t\t\tswitch (model.config.select) {\n\t\t\t\tcase prismicT.CustomTypeModelLinkSelectType.Document:\n\t\t\t\t\treturn \"contentRelationship\";\n\t\t\t\tcase prismicT.CustomTypeModelLinkSelectType.Media:\n\t\t\t\t\treturn \"linkToMedia\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Number:\n\t\t\treturn \"number\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Select:\n\t\t\treturn \"select\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.StructuredText: {\n\t\t\tif (\n\t\t\t\t\"single\" in model.config &&\n\t\t\t\tmodel.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((element) => /heading{1,6}/.test(element.trim()))\n\t\t\t) {\n\t\t\t\treturn \"title\";\n\t\t\t} else {\n\t\t\t\treturn \"richText\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Text:\n\t\t\treturn \"keyText\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Timestamp:\n\t\t\treturn \"timestamp\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.UID:\n\t\t\treturn \"uid\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.IntegrationFields:\n\t\t\treturn \"integrationFields\";\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices:\n\t\t\treturn \"sliceZone\";\n\t}\n};\n\nexport type ValueForModelMapConfigs = {\n\tboolean?: MockBooleanValueConfig;\n\tcolor?: MockColorValueConfig;\n\tcontentRelationship?: MockContentRelationshipValueConfig;\n\tdate?: MockDateValueConfig;\n\tembed?: MockEmbedValueConfig;\n\tgeoPoint?: MockGeoPointValueConfig;\n\tgroup?: MockGroupValueConfig;\n\timage?: MockImageValueConfig;\n\tintegrationFields?: MockIntegrationFieldsValueConfig;\n\tkeyText?: MockKeyTextValueConfig;\n\tlink?: MockLinkValueConfig;\n\tlinkToMedia?: MockLinkToMediaValueConfig;\n\tnumber?: MockNumberValueConfig;\n\trichText?: MockRichTextValueConfig;\n\tselect?: MockSelectValueConfig;\n\tsliceZone?: MockSliceZoneValueConfig;\n\ttimestamp?: MockTimestampValueConfig;\n\ttitle?: MockTitleValueConfig;\n\tuid?: MockUIDValueConfig;\n};\n\ntype ValueForModelMapConfig<\n\tModelMap extends Record<string, prismicT.CustomTypeModelField>,\n> = {\n\tmap: ModelMap;\n\tconfigs?: ValueForModelMapConfigs;\n} & Omit<MockValueConfig, \"model\">;\n\nexport const valueForModelMap = <\n\tModelMap extends Record<string, prismicT.CustomTypeModelField>,\n>(\n\tconfig: ValueForModelMapConfig<ModelMap>,\n): ModelValueMap<ModelMap> => {\n\tconst result = {} as ModelValueMap<ModelMap>;\n\n\tfor (const fieldId in config.map) {\n\t\tconst fieldModel = config.map[fieldId];\n\t\tconst fieldConfigType = getValueConfigType(fieldModel);\n\t\tconst fieldConfig = config.configs?.[fieldConfigType];\n\n\t\tresult[fieldId] = valueForModel({\n\t\t\tseed: config.seed,\n\t\t\tmodel: fieldModel as prismicT.CustomTypeModelField,\n\t\t\tconfig: fieldConfig,\n\t\t}) as ModelValue<typeof fieldModel>;\n\t}\n\n\treturn result;\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 MockContentRelationshipModelConfig<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n> = {\n\tcustomTypeIDs?: readonly CustomTypeIDs[];\n\ttags?: readonly Tags[];\n} & MockModelConfig;\n\nexport const contentRelationship = <\n\tCustomTypeIDs extends string,\n\tTags extends string,\n>(\n\tconfig: MockContentRelationshipModelConfig<CustomTypeIDs, Tags> = {},\n): prismicT.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Link,\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\tselect: prismicT.CustomTypeModelLinkSelectType.Document,\n\t\t\tcustomtypes: config.customTypeIDs,\n\t\t\ttags: config.tags,\n\t\t},\n\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\ntype MockCustomTypeModelConfig<\n\tDefinition extends\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition =\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition,\n> = {\n\tid?: string;\n\tlabel?: string;\n\tstatus?: boolean;\n\trepeatable?: boolean;\n} & (\n\t| {\n\t\t\tfields?: Definition;\n\t\t\ttabs?: never;\n\t }\n\t| {\n\t\t\ttabs?: Definition;\n\t\t\tfields?: never;\n\t }\n) &\n\tMockModelConfig;\n\ntype MockCustomTypeModel<\n\tDefinition extends\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition,\n> = Definition extends prismicT.CustomTypeModelTab\n\t? prismicT.CustomTypeModel<string, Record<\"Main\", Definition>>\n\t: Definition extends prismicT.CustomTypeModelDefinition\n\t? prismicT.CustomTypeModel<string, Definition>\n\t: never;\n\nexport const customType = <\n\tDefinition extends\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition,\n>(\n\tconfig: MockCustomTypeModelConfig<Definition> = {},\n): MockCustomTypeModel<Definition> => {\n\tconst faker = createFaker(config.seed);\n\n\tlet label: string =\n\t\tconfig.label || changeCase.capitalCase(faker.company.bsNoun());\n\tlet id: string = config.id || changeCase.snakeCase(label);\n\n\tif (config.id && !config.label) {\n\t\tlabel = changeCase.capitalCase(config.id);\n\t} else if (config.label && !config.label) {\n\t\tid = changeCase.snakeCase(config.label);\n\t}\n\n\tlet json = {} as MockCustomTypeModel<Definition>[\"json\"];\n\n\tif (\"fields\" in config && config.fields) {\n\t\tjson = { Main: config.fields } as typeof json;\n\t} else if (\"tabs\" in config && config.tabs) {\n\t\tjson = config.tabs as typeof json;\n\t}\n\n\treturn {\n\t\tid,\n\t\tlabel,\n\t\tstatus: config.status ?? faker.datatype.boolean(),\n\t\trepeatable: config.repeatable ?? faker.datatype.boolean(),\n\t\tjson,\n\t} as MockCustomTypeModel<Definition>;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { GroupFieldModelMap, MockModelConfig } from \"../types\";\n\ntype MockGroupModelConfig<Fields extends GroupFieldModelMap> = {\n\tfields?: Fields;\n} & MockModelConfig;\n\nexport const group = <Fields extends GroupFieldModelMap>(\n\tconfig: MockGroupModelConfig<Fields> = {},\n): prismicT.CustomTypeModelGroupField<Fields> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Group,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tfields: config.fields || ({} as Fields),\n\t\t},\n\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\ntype MockImageModelConfig<ThumbnailNames extends string = string> = {\n\twithConstraint?: boolean;\n\tthumbnailNames?: readonly ThumbnailNames[];\n} & MockModelConfig;\n\nexport const image = <ThumbnailNames extends string = string>(\n\tconfig: MockImageModelConfig<ThumbnailNames> = {},\n): prismicT.CustomTypeModelImageField<ThumbnailNames> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst thumbnails = (config.thumbnailNames || []).map((name) => {\n\t\treturn {\n\t\t\tname,\n\t\t\twidth: faker.datatype.number({ min: 500, max: 2000 }),\n\t\t\theight: faker.datatype.number({ min: 500, max: 2000 }),\n\t\t};\n\t});\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Image,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tconstraint: {\n\t\t\t\twidth: config.withConstraint\n\t\t\t\t\t? faker.datatype.number({ min: 500, max: 2000 })\n\t\t\t\t\t: null,\n\t\t\t\theight: config.withConstraint\n\t\t\t\t\t? faker.datatype.number({ min: 500, max: 2000 })\n\t\t\t\t\t: null,\n\t\t\t},\n\t\t\tthumbnails,\n\t\t},\n\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\ntype MockLinkModel<AllowTargetBlank extends boolean = boolean> =\n\tprismicT.CustomTypeModelLinkField & {\n\t\tconfig: AllowTargetBlank extends true\n\t\t\t? {\n\t\t\t\t\tallowTargetBlank: true;\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tallowTargetBlank?: undefined;\n\t\t\t };\n\t};\n\nexport type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {\n\tallowTargetBlank?: AllowTargetBlank;\n} & MockModelConfig;\n\nexport const link = <AllowTargetBlank extends boolean = boolean>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank> = {},\n): MockLinkModel<AllowTargetBlank> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Link,\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\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.datatype.boolean()) || undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank>;\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 MockRichTextModelConfig<\n\tWithMultipleBlocks extends boolean = boolean,\n> = {\n\twithMultipleBlocks?: WithMultipleBlocks;\n} & MockModelConfig;\n\nexport const richText = <WithMultipleBlocks extends boolean = boolean>(\n\tconfig: MockRichTextModelConfig<WithMultipleBlocks> = {},\n): WithMultipleBlocks extends true\n\t? prismicT.CustomTypeModelRichTextMultiField\n\t: prismicT.CustomTypeModelRichTextSingleField => {\n\tconst faker = createFaker(config.seed);\n\n\tconst blockTypes = faker.random\n\t\t.arrayElements([\n\t\t\tprismicT.RichTextNodeType.heading1,\n\t\t\tprismicT.RichTextNodeType.heading2,\n\t\t\tprismicT.RichTextNodeType.heading3,\n\t\t\tprismicT.RichTextNodeType.heading4,\n\t\t\tprismicT.RichTextNodeType.heading5,\n\t\t\tprismicT.RichTextNodeType.heading6,\n\t\t\tprismicT.RichTextNodeType.paragraph,\n\t\t\tprismicT.RichTextNodeType.preformatted,\n\t\t\tprismicT.RichTextNodeType.strong,\n\t\t\tprismicT.RichTextNodeType.em,\n\t\t\tprismicT.RichTextNodeType.listItem,\n\t\t\tprismicT.RichTextNodeType.oListItem,\n\t\t\tprismicT.RichTextNodeType.image,\n\t\t\tprismicT.RichTextNodeType.embed,\n\t\t\tprismicT.RichTextNodeType.hyperlink,\n\t\t])\n\t\t.join(\",\");\n\n\tconst blockTypeConfig =\n\t\tconfig.withMultipleBlocks ?? faker.datatype.boolean()\n\t\t\t? { multi: blockTypes }\n\t\t\t: { single: blockTypes };\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\tallowTargetBlank: faker.datatype.boolean() ? true : undefined,\n\t\t\t...blockTypeConfig,\n\t\t},\n\t} as WithMultipleBlocks extends true\n\t\t? prismicT.CustomTypeModelRichTextMultiField\n\t\t: prismicT.CustomTypeModelRichTextSingleField;\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\ntype MockSelectModelConfig<\n\tOption extends string = string,\n\tDefaultOption extends Option = Option,\n> = {\n\toptions?: Option[];\n\tdefaultValue?: DefaultOption;\n} & MockModelConfig;\n\nexport const select = <Option extends string, DefaultOption extends Option>(\n\tconfig: MockSelectModelConfig<Option, DefaultOption> = {},\n): prismicT.CustomTypeModelSelectField<Option, DefaultOption> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Select,\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\toptions: config.options || [],\n\t\t\tdefault_value: config.defaultValue || undefined,\n\t\t},\n\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\ntype MockSharedSliceModelConfig<\n\tVariation extends prismicT.SharedSliceModelVariation,\n> = {\n\tid?: string;\n\tname?: string;\n\tvariations?: Variation[];\n} & MockModelConfig;\n\nexport const sharedSlice = <\n\tVariation extends prismicT.SharedSliceModelVariation,\n>(\n\tconfig: MockSharedSliceModelConfig<Variation> = {},\n): prismicT.SharedSliceModel<string, Variation> => {\n\tconst faker = createFaker(config.seed);\n\n\tlet name: string =\n\t\tconfig.name || changeCase.capitalCase(faker.company.bsNoun());\n\tlet id: string = config.id || changeCase.snakeCase(name);\n\n\tif (config.id && !config.name) {\n\t\tname = changeCase.pascalCase(config.id);\n\t} else if (config.name && !config.name) {\n\t\tid = changeCase.snakeCase(config.name);\n\t}\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelSliceType.SharedSlice,\n\t\tid,\n\t\tname,\n\t\tdescription: faker.lorem.sentence(),\n\t\tvariations: config.variations || ([] as Variation[]),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { GroupFieldModelMap, MockModelConfig } from \"../types\";\n\nexport type MockSharedSliceVariationModelConfig<\n\tID extends string = string,\n\tPrimaryFields extends GroupFieldModelMap = GroupFieldModelMap,\n\tItemsFields extends GroupFieldModelMap = GroupFieldModelMap,\n> = {\n\tid?: ID;\n\tname?: string;\n\tprimaryFields?: PrimaryFields;\n\titemsFields?: ItemsFields;\n} & MockModelConfig;\n\nexport const sharedSliceVariation = <\n\tID extends string,\n\tPrimaryFields extends GroupFieldModelMap,\n\tItemsFields extends GroupFieldModelMap,\n>(\n\tconfig: MockSharedSliceVariationModelConfig<\n\t\tID,\n\t\tPrimaryFields,\n\t\tItemsFields\n\t> = {},\n): prismicT.SharedSliceModelVariation<ID, PrimaryFields, ItemsFields> => {\n\tconst faker = createFaker(config.seed);\n\n\tlet name: string =\n\t\tconfig.name || changeCase.capitalCase(faker.company.bsNoun());\n\tlet id: ID = config.id || (changeCase.snakeCase(name) as ID);\n\n\tif (config.id && !config.name) {\n\t\tname = changeCase.pascalCase(config.id);\n\t} else if (config.name && !config.name) {\n\t\tid = changeCase.snakeCase(config.name) as ID;\n\t}\n\n\treturn {\n\t\tid,\n\t\tname,\n\t\tdescription: faker.lorem.sentence(),\n\t\tdocURL: faker.internet.url(),\n\t\tversion: faker.git.shortSha(),\n\t\tprimary: config.primaryFields || ({} as PrimaryFields),\n\t\titems: config.itemsFields || ({} as ItemsFields),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { GroupFieldModelMap, MockModelConfig } from \"../types\";\n\ntype MockSliceModelConfig<\n\tNonRepeatFields extends GroupFieldModelMap = GroupFieldModelMap,\n\tRepeatFields extends GroupFieldModelMap = GroupFieldModelMap,\n> = {\n\tnonRepeatFields?: NonRepeatFields;\n\trepeatFields?: RepeatFields;\n} & MockModelConfig;\n\nexport const slice = <\n\tNonRepeatFields extends GroupFieldModelMap,\n\tRepeatFields extends GroupFieldModelMap,\n>(\n\tconfig: MockSliceModelConfig<NonRepeatFields, RepeatFields> = {},\n): prismicT.CustomTypeModelSlice<NonRepeatFields, RepeatFields> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelSliceType.Slice,\n\t\ticon: changeCase.snakeCase(faker.company.bsNoun()),\n\t\tdisplay: faker.datatype.boolean()\n\t\t\t? prismicT.CustomTypeModelSliceDisplay.Grid\n\t\t\t: prismicT.CustomTypeModelSliceDisplay.List,\n\t\tfieldset: changeCase.capitalCase(faker.lorem.words()),\n\t\tdescription: faker.lorem.sentence(),\n\t\trepeat: config.repeatFields || ({} as RepeatFields),\n\t\t\"non-repeat\": config.nonRepeatFields || ({} as NonRepeatFields),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockSliceZoneModelConfig<\n\tSlices extends Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice\n\t> = Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice\n\t>,\n> = {\n\tchoices?: Slices;\n} & MockModelConfig;\n\nexport const sliceZone = <\n\tSlices extends Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice\n\t>,\n>(\n\tconfig: MockSliceZoneModelConfig<Slices> = {},\n): prismicT.CustomTypeModelSliceZoneField<Slices> => {\n\tconst labels =\n\t\t{} as prismicT.CustomTypeModelSliceZoneField<Slices>[\"config\"][\"labels\"];\n\n\tfor (const choiceId in config.choices) {\n\t\tconst choice = config.choices[choiceId];\n\n\t\tif (choice.type === prismicT.CustomTypeModelSliceType.Slice) {\n\t\t\tlabels[choiceId as unknown as keyof typeof labels] = [];\n\t\t}\n\t}\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Slices,\n\t\tfieldset: \"Slice zone\",\n\t\tconfig: {\n\t\t\tlabels,\n\t\t\tchoices: config.choices || ({} as Slices),\n\t\t},\n\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 changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype GenerateFieldIdConfig = Pick<MockModelConfig, \"seed\">;\n\nexport const generateFieldId = (config: GenerateFieldIdConfig): string => {\n\tconst faker = createFaker(config.seed);\n\n\treturn changeCase.snakeCase(\n\t\tfaker.lorem.words(faker.datatype.number({ min: 1, max: 3 })),\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\";\n\ntype BuildEmbedFieldConfig<Document extends prismicT.PrismicDocument> = {\n\tdocument: Document;\n};\n\nexport const buildAlternativeLanguage = <\n\tDocument extends prismicT.PrismicDocument,\n>(\n\tconfig: BuildEmbedFieldConfig<Document>,\n): prismicT.AlternateLanguage<Document[\"type\"], Document[\"lang\"]> => {\n\treturn {\n\t\tid: config.document.id,\n\t\ttype: config.document.type,\n\t\tlang: config.document.lang,\n\t\tuid: config.document.uid || undefined,\n\t};\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\";\nimport {\n\tvalueForModelMap,\n\tValueForModelMapConfigs,\n} from \"../lib/valueForModelMap\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { timestamp } from \"./timestamp\";\nimport { buildAlternativeLanguage } from \"../lib/buildAlternativeLanguage\";\n\nexport type MockCustomTypeValueConfig<\n\tModel extends prismicT.CustomTypeModel = prismicT.CustomTypeModel,\n> = {\n\twithURL?: boolean;\n\talternateLanguages?: prismicT.PrismicDocument[];\n\tconfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model>;\n\nexport const customType = <\n\tModel extends prismicT.CustomTypeModel = prismicT.CustomTypeModel,\n>(\n\tconfig: MockCustomTypeValueConfig<Model> = {},\n): ModelValue<Model> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.customType({ seed: config.seed });\n\n\tconst fieldModelsMap = Object.assign(\n\t\t{},\n\t\t...Object.values(model.json),\n\t) as prismicT.CustomTypeModelTab;\n\n\tconst dataFieldModelsMap: prismicT.CustomTypeModelTab = {};\n\tfor (const key in fieldModelsMap) {\n\t\tconst fieldModel = fieldModelsMap[key];\n\n\t\t// UID fields must be filtered out since they are not represented in\n\t\t// the document's `data` field.\n\t\tif (fieldModel.type !== prismicT.CustomTypeModelFieldType.UID) {\n\t\t\tdataFieldModelsMap[key] = fieldModel;\n\t\t}\n\t}\n\n\tconst hasUID = Object.values(fieldModelsMap).some(\n\t\t(fieldModel) => fieldModel.type === prismicT.CustomTypeModelFieldType.UID,\n\t);\n\n\tconst withURL = config.withURL ?? true;\n\n\tconst alternateLanguages = (config.alternateLanguages || []).map(\n\t\t(alternateLanguageDocument) =>\n\t\t\tbuildAlternativeLanguage({\n\t\t\t\tdocument: alternateLanguageDocument,\n\t\t\t}),\n\t);\n\n\treturn {\n\t\ttype: model.id,\n\t\tid: faker.git.shortSha(),\n\t\tuid: hasUID ? changeCase.snakeCase(faker.lorem.words(2)) : null,\n\t\turl: withURL ? faker.internet.url() : null,\n\t\thref: faker.internet.url(),\n\t\tlang: faker.lorem.word(),\n\t\ttags: generateTags({ seed: config.seed }),\n\t\tslugs: [] as prismicT.PrismicDocument[\"slugs\"],\n\t\tlinked_documents: [] as prismicT.PrismicDocument[\"linked_documents\"],\n\t\talternate_languages: alternateLanguages,\n\t\tfirst_publication_date: timestamp({ seed: config.seed }),\n\t\tlast_publication_date: timestamp({ seed: config.seed }),\n\t\tdata: valueForModelMap({\n\t\t\tseed: config.seed,\n\t\t\tmap: dataFieldModelsMap,\n\t\t\tconfigs: config.configs,\n\t\t}),\n\t} as ModelValue<Model>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockColorValueConfig<\n\tModel extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockColorValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.ColorField<State>;\n\nexport const color = <\n\tModel extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockColorValueConfig<Model, State> = {},\n): MockColorValue<State> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn (\n\t\tconfig.state === \"empty\" ? null : faker.internet.color().toUpperCase()\n\t) as MockColorValue<State>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\ntype BuildEmbedFieldConfig<Document extends prismicT.PrismicDocument> = {\n\tdocument: Document;\n};\n\nexport const buildContentRelationshipField = <\n\tDocument extends prismicT.PrismicDocument,\n>(\n\tconfig: BuildEmbedFieldConfig<Document>,\n): prismicT.RelationField<\n\tDocument[\"type\"],\n\tDocument[\"lang\"],\n\tnever,\n\t\"filled\"\n> => {\n\treturn {\n\t\tlink_type: prismicT.LinkType.Document,\n\t\tid: config.document.id,\n\t\tuid: config.document.uid || undefined,\n\t\ttype: config.document.type,\n\t\ttags: config.document.tags,\n\t\tlang: config.document.lang,\n\t\turl: config.document.url || undefined,\n\t\tslug: config.document.slugs[0],\n\t\tisBroken: false,\n\t};\n};\n","import * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype GenerateFieldIdConfig = Pick<MockModelConfig, \"seed\">;\n\nexport const generateCustomTypeId = (config: GenerateFieldIdConfig): string => {\n\tconst faker = createFaker(config.seed);\n\n\treturn changeCase.snakeCase(faker.company.bsNoun());\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { buildContentRelationshipField } from \"../lib/buildContentRelationshipField\";\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateCustomTypeId } from \"../lib/generateCustomTypeId\";\nimport { generateTags } from \"../lib/generateTags\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { document as documentGen } from \"./document\";\n\nexport type MockContentRelationshipValueConfig<\n\tModel extends prismicT.CustomTypeModelContentRelationshipField = prismicT.CustomTypeModelContentRelationshipField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = {\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: prismicT.PrismicDocument[];\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockContentRelationshipValue<\n\tModel extends prismicT.CustomTypeModelContentRelationshipField = prismicT.CustomTypeModelContentRelationshipField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.RelationField<\n\tModel[\"config\"][\"customtypes\"],\n\tstring,\n\tnever,\n\tState\n>;\n\nexport const contentRelationship = <\n\tModel extends prismicT.CustomTypeModelContentRelationshipField = prismicT.CustomTypeModelContentRelationshipField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockContentRelationshipValueConfig<Model, State> = {},\n): MockContentRelationshipValue<Model, State> => {\n\tconst faker = createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismicT.LinkType.Document,\n\t\t} as MockContentRelationshipValue<Model, State>;\n\t} else {\n\t\tconst model =\n\t\t\tconfig.model || modelGen.contentRelationship({ seed: config.seed });\n\n\t\tconst linkableDocuments = config.linkableDocuments\n\t\t\t? config.linkableDocuments.filter(\n\t\t\t\t\t(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t): document is prismicT.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<Model[\"config\"][\"customtypes\"]>[number]\n\t\t\t\t\t> => {\n\t\t\t\t\t\tlet shouldKeep = true;\n\n\t\t\t\t\t\tif (model.config.customtypes) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep && model.config.customtypes.includes(document.type);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (model.config.tags) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep &&\n\t\t\t\t\t\t\t\tmodel.config.tags.some((tag) => document.tags.includes(tag));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn shouldKeep;\n\t\t\t\t\t},\n\t\t\t )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...documentGen({ seed: config.seed }),\n\t\t\t\t\t\ttype: model.config.customtypes\n\t\t\t\t\t\t\t? faker.random.arrayElement(model.config.customtypes)\n\t\t\t\t\t\t\t: generateCustomTypeId({ seed: config.seed }),\n\t\t\t\t\t\ttags: model.config.tags\n\t\t\t\t\t\t\t? faker.random.arrayElements(model.config.tags)\n\t\t\t\t\t\t\t: generateTags({ seed: config.seed }),\n\t\t\t\t\t} as prismicT.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<Model[\"config\"][\"customtypes\"]>[number]\n\t\t\t\t\t>,\n\t\t\t ];\n\n\t\tconst document = faker.random.arrayElement(linkableDocuments);\n\n\t\tif (!document) {\n\t\t\tthrow new Error(\"A linkable document could not be found.\");\n\t\t}\n\n\t\treturn buildContentRelationshipField({\n\t\t\tdocument,\n\t\t}) as unknown as MockContentRelationshipValue<Model, State>;\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport { MockTimestampValueConfig, timestamp } from \"./timestamp\";\n\nexport type MockDateValueConfig<\n\tModel extends prismicT.CustomTypeModelDateField = prismicT.CustomTypeModelDateField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = Pick<MockTimestampValueConfig, \"after\" | \"before\"> &\n\tMockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\nexport type MockDateValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.DateField<State>;\n\nexport const date = <\n\tModel extends prismicT.CustomTypeModelDateField = prismicT.CustomTypeModelDateField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockDateValueConfig<Model, State> = {},\n): MockDateValue<State> => {\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? null\n\t\t\t: timestamp({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tafter: config.after,\n\t\t\t\t\tbefore: config.before,\n\t\t\t\t\tstate: \"filled\",\n\t\t\t }).split(\"T\")[0]\n\t) as MockDateValue<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>'s thoughts on Gatsby's success and how they'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>— 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&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>— 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're launching a new <a href=\"https://twitter.com/hashtag/SliceContest?src=hash&ref_src=twsrc%5Etfw\">#SliceContest</a> tomorrow along with Slice Machine upgrades.<br><br>Want to know more? Join us at tomorrow's Product Meet-up👇<a href=\"https://t.co/prYSypiAvB\">https://t.co/prYSypiAvB</a><br><br>We can't tell you any further details for now, but here's a sneak peek at the prizes👀 <a href=\"https://t.co/fV1eoGlEBh\">pic.twitter.com/fV1eoGlEBh</a></p>— 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 'Wall Street Bets' using Prismic?<br><br>It may or may not have to look a lot like <a href=\"https://twitter.com/hashtag/reddit?src=hash&ref_src=twsrc%5Etfw\">#reddit</a> and we won't make it private.<br><br>Just asking for some friends...</p>— 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 { buildEmbedField } from \"../lib/buildEmbedField\";\nimport { getMockEmbedData } from \"../lib/getMockEmbedData\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockEmbedValueConfig<\n\tModel extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockEmbedValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State>;\n\nexport const embed = <\n\tModel extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockEmbedValueConfig<Model, State> = {},\n): MockEmbedValue<State> => {\n\tconst embedData = getMockEmbedData({ seed: config.seed });\n\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? {}\n\t\t\t: buildEmbedField({ seed: config.seed, embedData })\n\t) as MockEmbedValue<State>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockGeoPointValueConfig<\n\tModel extends prismicT.CustomTypeModelGeoPointField = prismicT.CustomTypeModelGeoPointField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockGeoPointValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.GeoPointField<State>;\n\nexport const geoPoint = <\n\tModel extends prismicT.CustomTypeModelGeoPointField = prismicT.CustomTypeModelGeoPointField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockGeoPointValueConfig<Model, State> = {},\n): MockGeoPointValue<State> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst coordinates = faker.address.nearbyGPSCoordinate();\n\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tlongitude: Number.parseFloat(coordinates[0]),\n\t\t\t\t\tlatitude: Number.parseFloat(coordinates[1]),\n\t\t\t }\n\t) as MockGeoPointValue<State>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport {\n\tvalueForModelMap,\n\tValueForModelMapConfigs,\n} from \"../lib/valueForModelMap\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockGroupValueConfig<\n\tModel extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField,\n> = {\n\titemsCount?: number;\n\tconfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model>;\n\nexport const group = <\n\tModel extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField,\n>(\n\tconfig: MockGroupValueConfig<Model> = {},\n): ModelValue<Model> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.group({ seed: config.seed });\n\n\tconst itemsCount =\n\t\tconfig.itemsCount ??\n\t\tfaker.datatype.number({\n\t\t\tmin: 1,\n\t\t\tmax: 6,\n\t\t});\n\n\treturn Array(itemsCount)\n\t\t.fill(undefined)\n\t\t.map(() => {\n\t\t\treturn valueForModelMap({\n\t\t\t\tseed: config.seed,\n\t\t\t\tmap: model.config.fields,\n\t\t\t\tconfigs: config.configs,\n\t\t\t});\n\t\t}) as ModelValue<Model>;\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\";\n\nimport { buildImageFieldImage } from \"../lib/buildImageFieldImage\";\nimport { getMockImageData } from \"../lib/getMockImageData\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockImageValueConfig<\n\tModel extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockImageValue<\n\tModel extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.ImageField<Model[\"config\"][\"thumbnails\"][number][\"name\"], State>;\n\nexport const image = <\n\tModel extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockImageValueConfig<Model, State> = {},\n): MockImageValue<Model, State> => {\n\tconst model = config.model || modelGen.image({ seed: config.seed });\n\tconst imageData = getMockImageData({ seed: config.seed });\n\n\tconst value = buildImageFieldImage({\n\t\tseed: config.seed,\n\t\timageData,\n\t\tconstraint: model.config.constraint,\n\t\tstate: config.state,\n\t}) as MockImageValue<Model, State>;\n\n\tfor (const thumbnail of model.config.thumbnails) {\n\t\t// TODO: Resolve the following type error\n\t\t// @ts-expect-error - Unsure how to fix this type mismatch\n\t\tvalue[thumbnail.name as keyof typeof value] = buildImageFieldImage({\n\t\t\tseed: config.seed,\n\t\t\timageData,\n\t\t\tconstraint: {\n\t\t\t\twidth: thumbnail.width,\n\t\t\t\theight: thumbnail.height,\n\t\t\t},\n\t\t\tstate: config.state,\n\t\t});\n\t}\n\n\treturn value;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { getMockImageData } from \"../lib/getMockImageData\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockIntegrationFieldsValueConfig<\n\tModel extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField,\n\tBlob = unknown,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = {\n\tdata?: Blob;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\nexport type MockIntegrationFieldsValue<\n\tBlob = unknown,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.IntegrationFields<Blob, State>;\n\nexport const integrationFields = <\n\tModel extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField,\n\tBlob = unknown,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockIntegrationFieldsValueConfig<Model, Blob, State> = {},\n): MockIntegrationFieldsValue<Blob, State> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst imageData = getMockImageData({ seed: config.seed });\n\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? null\n\t\t\t: {\n\t\t\t\t\tid: faker.git.shortSha(),\n\t\t\t\t\ttitle: changeCase.capitalCase(faker.lorem.words(3)),\n\t\t\t\t\tdescription: faker.lorem.sentence(),\n\t\t\t\t\timage_url: imageData.url,\n\t\t\t\t\tlast_update: faker.date.past(20, new Date(\"2021-03-07\")).getTime(),\n\t\t\t\t\tblob: config.data as Blob,\n\t\t\t }\n\t) as MockIntegrationFieldsValue<Blob, State>;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockKeyTextValueConfig<\n\tModel extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockKeyTextValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.KeyTextField<State>;\n\nexport const keyText = <\n\tModel extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockKeyTextValueConfig<Model, State> = {},\n): MockKeyTextValue<State> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? null\n\t\t\t: changeCase.sentenceCase(faker.lorem.words(3))\n\t) as MockKeyTextValue<State>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\ntype MockLinkToMediaValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.LinkToMediaField<State>;\n\nexport const linkToMedia = <\n\tModel extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockLinkToMediaValueConfig<Model, State> = {},\n): MockLinkToMediaValue<State> => {\n\tconst faker = createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismicT.LinkType.Media,\n\t\t} as MockLinkToMediaValue<State>;\n\t} else {\n\t\treturn {\n\t\t\tlink_type: prismicT.LinkType.Media,\n\t\t\tname: faker.system.commonFileName(),\n\t\t\tkind: faker.system.commonFileType(),\n\t\t\turl: faker.internet.url(),\n\t\t\tsize: faker.datatype.number().toString(),\n\t\t\theight: faker.datatype.number().toString(),\n\t\t\twidth: faker.datatype.number().toString(),\n\t\t} as MockLinkToMediaValue<State>;\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType],\n\tModel extends prismicT.CustomTypeModelLinkField = prismicT.CustomTypeModelLinkField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: Model[\"config\"][\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismicT.LinkType.Document\n\t\t? prismicT.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType],\n\tState extends prismicT.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismicT.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismicT.LinkType.Web\n\t? prismicT.FilledLinkToWebField\n\t: LinkType extends typeof prismicT.LinkType.Media\n\t? prismicT.FilledLinkToMediaField\n\t: LinkType extends typeof prismicT.LinkType.Document\n\t? prismicT.FilledLinkToDocumentField\n\t: never;\n\nexport const link = <\n\tLinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType],\n\tModel extends prismicT.CustomTypeModelLinkField = prismicT.CustomTypeModelLinkField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State> = {},\n): MockLinkValue<LinkType, State> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.random.arrayElement([\n\t\t\tprismicT.LinkType.Web,\n\t\t\tprismicT.LinkType.Document,\n\t\t\tprismicT.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismicT.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismicT.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismicT.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ seed: config.seed });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismicT.LinkType.Web,\n\t\t\t\t\turl: faker.internet.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config.allowTargetBlank && faker.datatype.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\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 MockNumberValueConfig<\n\tModel extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockNumberValue<\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.NumberField<State>;\n\nexport const number = <\n\tModel extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockNumberValueConfig<Model, State> = {},\n): MockNumberValue<State> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn (\n\t\tconfig.state === \"empty\" ? null : faker.datatype.number()\n\t) as MockNumberValue<State>;\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\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockSelectValueConfig<\n\tModel extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockSelectValue<\n\tModel extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField,\n\tState extends prismicT.FieldState = prismicT.FieldState,\n> = prismicT.SelectField<Model[\"config\"][\"options\"][number], State>;\n\nexport const select = <\n\tModel extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField,\n\tState extends prismicT.FieldState = \"filled\",\n>(\n\tconfig: MockSelectValueConfig<Model, State> = {},\n): MockSelectValue<Model, State> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.select({ seed: config.seed });\n\tconst defaultValue = model.config.default_value;\n\n\tif (config.state === \"empty\") {\n\t\treturn null as MockSelectValue<Model, State>;\n\t} else {\n\t\treturn (\n\t\t\ttypeof defaultValue === \"string\" && faker.datatype.boolean()\n\t\t\t\t? defaultValue\n\t\t\t\t: faker.random.arrayElement(model.config.options)\n\t\t) as MockSelectValue<Model, State>;\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateFieldId } from \"../lib/generateFieldId\";\nimport {\n\tvalueForModelMap,\n\tValueForModelMapConfigs,\n} from \"../lib/valueForModelMap\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockSliceValueConfig<\n\tModel extends prismicT.CustomTypeModelSlice = prismicT.CustomTypeModelSlice,\n> = {\n\ttype?: string;\n\tlabel?: string | null;\n\titemsCount?: number;\n\tprimaryFieldConfigs?: ValueForModelMapConfigs;\n\titemsFieldConfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model>;\n\nexport const slice = <\n\tModel extends prismicT.CustomTypeModelSlice = prismicT.CustomTypeModelSlice,\n>(\n\tconfig: MockSliceValueConfig<Model> = {},\n): ModelValue<Model> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.slice({ seed: config.seed });\n\n\tconst sliceType = config.type ?? generateFieldId({ seed: config.seed });\n\tconst sliceLabel =\n\t\tconfig.label !== undefined\n\t\t\t? config.label\n\t\t\t: changeCase.capitalCase(faker.company.bsNoun());\n\n\tconst itemsCount =\n\t\tObject.keys(model.repeat).length > 0\n\t\t\t? config.itemsCount ??\n\t\t\t faker.datatype.number({\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: 6,\n\t\t\t })\n\t\t\t: 0;\n\n\treturn {\n\t\tslice_type: sliceType,\n\t\tslice_label: sliceLabel,\n\t\tprimary: valueForModelMap({\n\t\t\tseed: config.seed,\n\t\t\tmap: model[\"non-repeat\"],\n\t\t\tconfigs: config.primaryFieldConfigs,\n\t\t}),\n\t\titems: Array(itemsCount)\n\t\t\t.fill(undefined)\n\t\t\t.map(() => {\n\t\t\t\treturn valueForModelMap({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tmap: model.repeat,\n\t\t\t\t\tconfigs: config.itemsFieldConfigs,\n\t\t\t\t});\n\t\t\t}),\n\t} as ModelValue<Model>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateFieldId } from \"../lib/generateFieldId\";\nimport {\n\tvalueForModelMap,\n\tValueForModelMapConfigs,\n} from \"../lib/valueForModelMap\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockSharedSliceVariationValueConfig<\n\tModel extends prismicT.SharedSliceModelVariation = prismicT.SharedSliceModelVariation,\n> = {\n\ttype?: string;\n\tlabel?: string;\n\titemsCount?: number;\n\tprimaryFieldConfigs?: ValueForModelMapConfigs;\n\titemsFieldConfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model>;\n\nexport const sharedSliceVariation = <\n\tModel extends prismicT.SharedSliceModelVariation = prismicT.SharedSliceModelVariation,\n>(\n\tconfig: MockSharedSliceVariationValueConfig<Model> = {},\n): ModelValue<Model> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model =\n\t\tconfig.model || modelGen.sharedSliceVariation({ seed: config.seed });\n\n\tconst sliceType = config.type ?? generateFieldId({ seed: config.seed });\n\n\tconst itemsCount =\n\t\tObject.keys(model.items).length > 0\n\t\t\t? config.itemsCount ??\n\t\t\t faker.datatype.number({\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: 6,\n\t\t\t })\n\t\t\t: 0;\n\n\treturn {\n\t\tslice_type: sliceType,\n\t\tslice_label: null,\n\t\tvariation: model.id,\n\t\tversion: faker.git.shortSha(),\n\t\tprimary: valueForModelMap({\n\t\t\tseed: config.seed,\n\t\t\tmap: model.primary,\n\t\t\tconfigs: config.primaryFieldConfigs,\n\t\t}),\n\t\titems: Array(itemsCount)\n\t\t\t.fill(undefined)\n\t\t\t.map(() => {\n\t\t\t\treturn valueForModelMap({\n\t\t\t\t\tseed: config.seed,\n\t\t\t\t\tmap: model.items,\n\t\t\t\t\tconfigs: config.itemsFieldConfigs,\n\t\t\t\t});\n\t\t\t}),\n\t} as ModelValue<Model>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport * as modelGen from \"../model\";\nimport {\n\tsharedSliceVariation,\n\tMockSharedSliceVariationValueConfig,\n} from \"./sharedSliceVariation\";\n\nexport type MockSharedSliceValueConfig<\n\tModel extends prismicT.SharedSliceModel = prismicT.SharedSliceModel,\n> = Pick<\n\tMockSharedSliceVariationValueConfig,\n\t\"itemsCount\" | \"primaryFieldConfigs\" | \"itemsFieldConfigs\"\n> &\n\tMockValueConfig<Model>;\n\nexport const sharedSlice = <\n\tModel extends prismicT.SharedSliceModel = prismicT.SharedSliceModel,\n>(\n\tconfig: MockSharedSliceValueConfig<Model> = {},\n): ModelValue<Model> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.sharedSlice({ seed: config.seed });\n\tconst variationModel = faker.random.arrayElement(model.variations);\n\n\treturn sharedSliceVariation({\n\t\tseed: config.seed,\n\t\tmodel: variationModel,\n\t\titemsCount: config.itemsCount,\n\t\ttype: model.id,\n\t\tprimaryFieldConfigs: config.primaryFieldConfigs,\n\t\titemsFieldConfigs: config.itemsFieldConfigs,\n\t}) as ModelValue<Model>;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { ValueForModelMapConfigs } from \"../lib/valueForModelMap\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { slice } from \"./slice\";\nimport { sharedSlice } from \"./sharedSlice\";\n\nexport type MockSliceZoneValueConfig<\n\tModel extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField,\n> = {\n\tsharedSliceModels?: prismicT.SharedSliceModel[];\n\titemsCount?: number;\n\tprimaryFieldConfigs?: ValueForModelMapConfigs;\n\titemsFieldConfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model>;\n\nexport const sliceZone = <\n\tModel extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField,\n>(\n\tconfig: MockSliceZoneValueConfig<Model> = {},\n): ModelValue<Model> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst model = config.model || modelGen.sliceZone({ seed: config.seed });\n\n\tif (Object.keys(model.config.choices).length > 0) {\n\t\tconst itemsCount =\n\t\t\tconfig.itemsCount ??\n\t\t\tfaker.datatype.number({\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 6,\n\t\t\t});\n\n\t\treturn Array(itemsCount)\n\t\t\t.fill(undefined)\n\t\t\t.map(() => {\n\t\t\t\tconst choices = Object.entries(model.config.choices);\n\t\t\t\tconst [choiceType, choiceModel] = faker.random.arrayElement(choices);\n\n\t\t\t\tconst choiceLabels = model.config.labels[choiceType] || [];\n\t\t\t\tconst choiceLabel = faker.random.arrayElement(choiceLabels);\n\n\t\t\t\tswitch (choiceModel.type) {\n\t\t\t\t\tcase prismicT.CustomTypeModelSliceType.Slice: {\n\t\t\t\t\t\treturn slice({\n\t\t\t\t\t\t\tseed: config.seed,\n\t\t\t\t\t\t\tmodel: choiceModel,\n\t\t\t\t\t\t\ttype: choiceType,\n\t\t\t\t\t\t\tlabel: choiceLabel ? choiceLabel.name : null,\n\t\t\t\t\t\t\tprimaryFieldConfigs: config.primaryFieldConfigs,\n\t\t\t\t\t\t\titemsFieldConfigs: config.itemsFieldConfigs,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tcase prismicT.CustomTypeModelSliceType.SharedSlice: {\n\t\t\t\t\t\tconst sharedSliceModel = config.sharedSliceModels?.find(\n\t\t\t\t\t\t\t(sharedSliceModel) => sharedSliceModel.id === choiceType,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (sharedSliceModel) {\n\t\t\t\t\t\t\treturn sharedSlice({\n\t\t\t\t\t\t\t\tseed: config.seed,\n\t\t\t\t\t\t\t\tmodel: sharedSliceModel,\n\t\t\t\t\t\t\t\tprimaryFieldConfigs: config.primaryFieldConfigs,\n\t\t\t\t\t\t\t\titemsFieldConfigs: config.itemsFieldConfigs,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.filter(\n\t\t\t\t(slice): slice is prismicT.Slice | prismicT.SharedSlice =>\n\t\t\t\t\tslice !== undefined,\n\t\t\t) as ModelValue<Model>;\n\t} else {\n\t\treturn [] as unknown as ModelValue<Model>;\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { MockValueConfig } from \"../types\";\n\nimport { heading, MockRichTextHeadingValueConfig } from \"./richText/heading\";\n\nexport type MockTitleValueConfig<\n\tModel extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField,\n> = {\n\tpattern?: MockRichTextHeadingValueConfig[\"pattern\"];\n} & MockValueConfig<Model>;\n\nexport const title = (\n\tconfig: MockTitleValueConfig = {},\n): prismicT.TitleField => {\n\treturn [\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\theading({\n\t\t\tseed: config.seed,\n\t\t\tmodel: config.model,\n\t\t\tpattern: config.pattern,\n\t\t})!,\n\t] as prismicT.TitleField;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueConfig } from \"../types\";\n\nexport type MockUIDValueConfig<\n\tModel extends prismicT.CustomTypeModelUIDField = prismicT.CustomTypeModelUIDField,\n> = MockValueConfig<Model>;\n\nexport const uid = (\n\tconfig: MockUIDValueConfig = {},\n): NonNullable<prismicT.PrismicDocument[\"uid\"]> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn changeCase.snakeCase(faker.lorem.words(2));\n};\n"],"names":["Faker","fakerLocaleEN","changeCase","prismicT","value.boolean","value.color","value.contentRelationship","value.linkToMedia","value.link","value.date","value.embed","value.geoPoint","value.image","value.keyText","value.number","value.select","value.timestamp","value.title","value.richText","value.integrationFields","value.uid","value.group","value.sliceZone","contentRelationship","customType","group","image","link","richText","select","sharedSlice","sharedSliceVariation","slice","sliceZone","title","modelGen.customType","modelGen.contentRelationship","documentGen","dataSet","embed","modelGen.group","modelGen.image","modelGen.link","patterns","modelGen.title","modelGen.richText","modelGen.select","modelGen.slice","modelGen.sharedSliceVariation","modelGen.sharedSlice","modelGen.sliceZone"],"mappings":"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"}
|
package/dist/value/index.d.ts
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import * as prismicT from '@prismicio/types';
|
|
2
2
|
|
|
3
3
|
declare type IterableElement<TargetIterable> = TargetIterable extends Iterable<infer ElementType> ? ElementType : TargetIterable extends AsyncIterable<infer ElementType> ? ElementType : never;
|
|
4
|
-
declare type ValueOf<ObjectType
|
|
4
|
+
declare type ValueOf<ObjectType extends Record<string, unknown>> = ObjectType[string];
|
|
5
|
+
declare type Seed = string | number | number[];
|
|
5
6
|
declare type PrismicModel = prismicT.CustomTypeModel | prismicT.CustomTypeModelField | prismicT.CustomTypeModelSlice | prismicT.SharedSliceModel | prismicT.SharedSliceModelVariation;
|
|
6
7
|
declare type MockValueConfig<Model extends PrismicModel = PrismicModel> = {
|
|
7
|
-
seed?:
|
|
8
|
+
seed?: Seed;
|
|
8
9
|
model?: Model;
|
|
9
10
|
};
|
|
11
|
+
declare type MockValueStateConfig<State extends prismicT.FieldState = prismicT.FieldState> = {
|
|
12
|
+
state?: State;
|
|
13
|
+
};
|
|
10
14
|
declare type CustomTypeModelStructuredTextField = prismicT.CustomTypeModelRichTextField | prismicT.CustomTypeModelTitleField;
|
|
11
15
|
declare type MockRichTextValueConfig$1<Model extends CustomTypeModelStructuredTextField = CustomTypeModelStructuredTextField> = {
|
|
12
|
-
seed?:
|
|
16
|
+
seed?: Seed;
|
|
13
17
|
model?: Model;
|
|
14
18
|
};
|
|
15
19
|
declare type ModelValueMap<T extends Record<string, prismicT.CustomTypeModelField>> = {
|
|
16
20
|
[P in keyof T]: ModelValue<T[P]>;
|
|
17
21
|
};
|
|
18
|
-
declare type ModelValue<T extends PrismicModel> = T extends prismicT.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismicT.CustomTypeModelUIDField ? prismicT.PrismicDocument["uid"] : T extends prismicT.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T> : T extends prismicT.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T> : T extends prismicT.CustomTypeModelSliceZoneField ? prismicT.SliceZone
|
|
19
|
-
|
|
22
|
+
declare type ModelValue<T extends PrismicModel> = T extends prismicT.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismicT.CustomTypeModelUIDField ? prismicT.PrismicDocument["uid"] : T extends prismicT.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T> : T extends prismicT.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T> : T extends prismicT.CustomTypeModelSliceZoneField ? prismicT.SliceZone<ValueOf<{
|
|
23
|
+
[P in keyof T["config"]["choices"] as P extends string ? P : never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T["config"]["choices"][P], P> : T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice<P> : never;
|
|
24
|
+
}>> : T extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T> : T extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice : T extends prismicT.SharedSliceModel ? SharedSliceModelValue<T> : T extends prismicT.SharedSliceModelVariation ? SharedSliceModelVariationValue<T> : never;
|
|
25
|
+
declare type CustomTypeModelValue<T extends prismicT.CustomTypeModel> = prismicT.PrismicDocument<ModelValueMap<{
|
|
26
|
+
[P in keyof ValueOf<T["json"]> as ValueOf<T["json"]>[P]["type"] extends typeof prismicT.CustomTypeModelFieldType.UID ? never : P]: ValueOf<T["json"]>[P];
|
|
27
|
+
}>>;
|
|
20
28
|
declare type CustomTypeModelFieldForGroupValue<T extends prismicT.CustomTypeModelFieldForGroup> = T extends prismicT.CustomTypeModelBooleanField ? prismicT.BooleanField : T extends prismicT.CustomTypeModelColorField ? prismicT.ColorField : T extends prismicT.CustomTypeModelTitleField ? prismicT.TitleField : T extends prismicT.CustomTypeModelRichTextField ? prismicT.RichTextField : T extends prismicT.CustomTypeModelImageField ? prismicT.ImageField : T extends prismicT.CustomTypeModelLinkField ? prismicT.LinkField : T extends prismicT.CustomTypeModelLinkToMediaField ? prismicT.LinkToMediaField : T extends prismicT.CustomTypeModelContentRelationshipField ? prismicT.RelationField : T extends prismicT.CustomTypeModelDateField ? prismicT.DateField : T extends prismicT.CustomTypeModelTimestampField ? prismicT.TimestampField : T extends prismicT.CustomTypeModelNumberField ? prismicT.NumberField : T extends prismicT.CustomTypeModelKeyTextField ? prismicT.KeyTextField : T extends prismicT.CustomTypeModelSelectField ? prismicT.SelectField : T extends prismicT.CustomTypeModelEmbedField ? prismicT.EmbedField : T extends prismicT.CustomTypeModelGeoPointField ? prismicT.GeoPointField : T extends prismicT.CustomTypeModelIntegrationFieldsField ? prismicT.IntegrationFields : never;
|
|
21
29
|
declare type CustomTypeModelGroupFieldValue<T extends prismicT.CustomTypeModelGroupField> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>>;
|
|
22
|
-
declare type CustomTypeModelSliceValue<T extends prismicT.CustomTypeModelSlice> = prismicT.Slice<
|
|
30
|
+
declare type CustomTypeModelSliceValue<T extends prismicT.CustomTypeModelSlice, SliceType = string> = prismicT.Slice<SliceType, ModelValueMap<T["non-repeat"]>, ModelValueMap<T["repeat"]>>;
|
|
23
31
|
declare type SharedSliceModelValue<T extends prismicT.SharedSliceModel> = prismicT.SharedSlice<T["id"], SharedSliceModelVariationValue<IterableElement<T["variations"]>>>;
|
|
24
32
|
declare type SharedSliceModelVariationValue<T extends prismicT.SharedSliceModelVariation> = prismicT.SharedSlice<string, prismicT.SharedSliceVariation<T["id"], ModelValueMap<T["primary"]>, ModelValueMap<T["items"]>>>;
|
|
25
33
|
|
|
@@ -42,99 +50,80 @@ declare type ValueForModelMapConfigs = {
|
|
|
42
50
|
number?: MockNumberValueConfig;
|
|
43
51
|
richText?: MockRichTextValueConfig;
|
|
44
52
|
select?: MockSelectValueConfig;
|
|
45
|
-
|
|
53
|
+
sliceZone?: MockSliceZoneValueConfig;
|
|
46
54
|
timestamp?: MockTimestampValueConfig;
|
|
47
55
|
title?: MockTitleValueConfig;
|
|
48
56
|
uid?: MockUIDValueConfig;
|
|
49
57
|
};
|
|
50
58
|
|
|
51
59
|
declare type MockCustomTypeValueConfig<Model extends prismicT.CustomTypeModel = prismicT.CustomTypeModel> = {
|
|
52
|
-
|
|
60
|
+
withURL?: boolean;
|
|
61
|
+
alternateLanguages?: prismicT.PrismicDocument[];
|
|
53
62
|
configs?: ValueForModelMapConfigs;
|
|
54
63
|
} & MockValueConfig<Model>;
|
|
55
64
|
declare const customType: <Model extends prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>> = prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>>>(config?: MockCustomTypeValueConfig<Model>) => ModelValue<Model>;
|
|
56
65
|
|
|
57
|
-
declare type MockColorValueConfig<Model extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField> = MockValueConfig<Model>;
|
|
58
|
-
declare const color: (config?: MockColorValueConfig) => prismicT.ColorField
|
|
66
|
+
declare type MockColorValueConfig<Model extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
67
|
+
declare const color: <Model extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField, State extends prismicT.FieldState = "filled">(config?: MockColorValueConfig<Model, State>) => prismicT.ColorField<State>;
|
|
59
68
|
|
|
60
|
-
declare type MockContentRelationshipValueConfig<
|
|
61
|
-
isFilled?: IsFilled;
|
|
69
|
+
declare type MockContentRelationshipValueConfig<Model extends prismicT.CustomTypeModelContentRelationshipField = prismicT.CustomTypeModelContentRelationshipField, State extends prismicT.FieldState = prismicT.FieldState> = {
|
|
62
70
|
/**
|
|
63
71
|
* A list of potential documents to which the field can be linked.
|
|
64
72
|
*/
|
|
65
73
|
linkableDocuments?: prismicT.PrismicDocument[];
|
|
66
|
-
} & MockValueConfig<Model>;
|
|
67
|
-
declare
|
|
68
|
-
declare const contentRelationship: <IsFilled extends boolean = true, Model extends prismicT.CustomTypeModelContentRelationshipField = prismicT.CustomTypeModelContentRelationshipField>(config?: MockContentRelationshipValueConfig<IsFilled, Model>) => MockContentRelationshipValue<IsFilled>;
|
|
74
|
+
} & MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
75
|
+
declare const contentRelationship: <Model extends prismicT.CustomTypeModelContentRelationshipField<string, string> = prismicT.CustomTypeModelContentRelationshipField<string, string>, State extends prismicT.FieldState = "filled">(config?: MockContentRelationshipValueConfig<Model, State>) => prismicT.RelationField<Model["config"]["customtypes"], string, never, State>;
|
|
69
76
|
|
|
70
|
-
declare type MockTimestampValueConfig<Model extends prismicT.CustomTypeModelTimestampField = prismicT.CustomTypeModelTimestampField> = {
|
|
77
|
+
declare type MockTimestampValueConfig<Model extends prismicT.CustomTypeModelTimestampField = prismicT.CustomTypeModelTimestampField, State extends prismicT.FieldState = prismicT.FieldState> = {
|
|
71
78
|
after?: Date;
|
|
72
79
|
before?: Date;
|
|
73
|
-
} & MockValueConfig<Model>;
|
|
74
|
-
declare const timestamp: (config?: MockTimestampValueConfig) => prismicT.TimestampField
|
|
80
|
+
} & MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
81
|
+
declare const timestamp: <Model extends prismicT.CustomTypeModelTimestampField = prismicT.CustomTypeModelTimestampField, State extends prismicT.FieldState = "filled">(config?: MockTimestampValueConfig<Model, State>) => prismicT.TimestampField<State>;
|
|
75
82
|
|
|
76
|
-
declare type MockDateValueConfig<Model extends prismicT.CustomTypeModelDateField = prismicT.CustomTypeModelDateField> = Pick<MockTimestampValueConfig, "after" | "before"> & MockValueConfig<Model>;
|
|
77
|
-
declare const date: (config?: MockDateValueConfig) => prismicT.DateField
|
|
83
|
+
declare type MockDateValueConfig<Model extends prismicT.CustomTypeModelDateField = prismicT.CustomTypeModelDateField, State extends prismicT.FieldState = prismicT.FieldState> = Pick<MockTimestampValueConfig, "after" | "before"> & MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
84
|
+
declare const date: <Model extends prismicT.CustomTypeModelDateField = prismicT.CustomTypeModelDateField, State extends prismicT.FieldState = "filled">(config?: MockDateValueConfig<Model, State>) => prismicT.DateField<State>;
|
|
78
85
|
|
|
79
|
-
declare type MockEmbedValueConfig<Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField> = MockValueConfig<Model>;
|
|
80
|
-
declare const embed: (config?: MockEmbedValueConfig) => prismicT.EmbedField
|
|
86
|
+
declare type MockEmbedValueConfig<Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
87
|
+
declare const embed: <Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField, State extends prismicT.FieldState = "filled">(config?: MockEmbedValueConfig<Model, State>) => prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State>;
|
|
81
88
|
|
|
82
|
-
declare type MockGeoPointValueConfig<Model extends prismicT.CustomTypeModelGeoPointField = prismicT.CustomTypeModelGeoPointField> = MockValueConfig<Model>;
|
|
83
|
-
declare const geoPoint: (config?: MockGeoPointValueConfig) => prismicT.GeoPointField
|
|
89
|
+
declare type MockGeoPointValueConfig<Model extends prismicT.CustomTypeModelGeoPointField = prismicT.CustomTypeModelGeoPointField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
90
|
+
declare const geoPoint: <Model extends prismicT.CustomTypeModelGeoPointField = prismicT.CustomTypeModelGeoPointField, State extends prismicT.FieldState = "filled">(config?: MockGeoPointValueConfig<Model, State>) => prismicT.GeoPointField<State>;
|
|
84
91
|
|
|
85
|
-
declare const patterns$5: {
|
|
86
|
-
readonly short: {
|
|
87
|
-
readonly minItems: 1;
|
|
88
|
-
readonly maxItems: 3;
|
|
89
|
-
};
|
|
90
|
-
readonly medium: {
|
|
91
|
-
readonly minItems: 3;
|
|
92
|
-
readonly maxItems: 6;
|
|
93
|
-
};
|
|
94
|
-
readonly long: {
|
|
95
|
-
readonly minItems: 6;
|
|
96
|
-
readonly maxItems: 12;
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
92
|
declare type MockGroupValueConfig<Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField> = {
|
|
100
|
-
|
|
93
|
+
itemsCount?: number;
|
|
101
94
|
configs?: ValueForModelMapConfigs;
|
|
102
95
|
} & MockValueConfig<Model>;
|
|
103
96
|
declare const group: <Model extends prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockGroupValueConfig<Model>) => ModelValue<Model>;
|
|
104
97
|
|
|
105
|
-
declare type MockImageValueConfig<Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField> = MockValueConfig<Model>;
|
|
106
|
-
declare const image: (config?: MockImageValueConfig) => prismicT.ImageField
|
|
98
|
+
declare type MockImageValueConfig<Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
99
|
+
declare const image: <Model extends prismicT.CustomTypeModelImageField<string> = prismicT.CustomTypeModelImageField<string>, State extends prismicT.FieldState = "filled">(config?: MockImageValueConfig<Model, State>) => prismicT.ImageField<Model["config"]["thumbnails"][number]["name"], State>;
|
|
107
100
|
|
|
108
|
-
declare type MockIntegrationFieldsValueConfig<Model extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField, Blob
|
|
101
|
+
declare type MockIntegrationFieldsValueConfig<Model extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField, Blob = unknown, State extends prismicT.FieldState = prismicT.FieldState> = {
|
|
109
102
|
data?: Blob;
|
|
110
|
-
} & MockValueConfig<Model>;
|
|
111
|
-
declare const integrationFields: <Model extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField, Blob_1
|
|
103
|
+
} & MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
104
|
+
declare const integrationFields: <Model extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField, Blob_1 = unknown, State extends prismicT.FieldState = "filled">(config?: MockIntegrationFieldsValueConfig<Model, Blob_1, State>) => prismicT.IntegrationFields<Blob_1, State>;
|
|
112
105
|
|
|
113
|
-
declare type MockKeyTextValueConfig<Model extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField> = MockValueConfig<Model>;
|
|
114
|
-
declare const keyText: (config?: MockKeyTextValueConfig) => prismicT.KeyTextField
|
|
106
|
+
declare type MockKeyTextValueConfig<Model extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
107
|
+
declare const keyText: <Model extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField, State extends prismicT.FieldState = "filled">(config?: MockKeyTextValueConfig<Model, State>) => prismicT.KeyTextField<State>;
|
|
115
108
|
|
|
116
|
-
declare type MockLinkValueConfig<LinkType extends prismicT.LinkType = prismicT.LinkType,
|
|
109
|
+
declare type MockLinkValueConfig<LinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType], Model extends prismicT.CustomTypeModelLinkField = prismicT.CustomTypeModelLinkField, State extends prismicT.FieldState = prismicT.FieldState> = {
|
|
117
110
|
type?: LinkType;
|
|
118
|
-
isFilled?: IsFilled;
|
|
119
111
|
withTargetBlank?: Model["config"]["allowTargetBlank"] extends undefined ? false : boolean;
|
|
120
112
|
/**
|
|
121
113
|
* A list of potential documents to which the field can be linked.
|
|
122
114
|
*/
|
|
123
|
-
linkableDocuments?: LinkType extends prismicT.LinkType.Document ? prismicT.PrismicDocument[] : never;
|
|
124
|
-
} & MockValueConfig<Model>;
|
|
125
|
-
declare type MockLinkValue<LinkType extends prismicT.LinkType = prismicT.LinkType,
|
|
126
|
-
declare const link: <LinkType extends
|
|
115
|
+
linkableDocuments?: LinkType extends typeof prismicT.LinkType.Document ? prismicT.PrismicDocument[] : never;
|
|
116
|
+
} & MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
117
|
+
declare type MockLinkValue<LinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType], State extends prismicT.FieldState = "filled"> = State extends "empty" ? prismicT.EmptyLinkField<LinkType> : LinkType extends typeof prismicT.LinkType.Web ? prismicT.FilledLinkToWebField : LinkType extends typeof prismicT.LinkType.Media ? prismicT.FilledLinkToMediaField : LinkType extends typeof prismicT.LinkType.Document ? prismicT.FilledLinkToDocumentField : never;
|
|
118
|
+
declare const link: <LinkType extends "Any" | "Document" | "Media" | "Web" = "Any" | "Document" | "Media" | "Web", Model extends prismicT.CustomTypeModelLinkField = prismicT.CustomTypeModelLinkField, State extends prismicT.FieldState = "filled">(config?: MockLinkValueConfig<LinkType, Model, State>) => MockLinkValue<LinkType, State>;
|
|
127
119
|
|
|
128
|
-
declare type MockLinkToMediaValueConfig<
|
|
129
|
-
|
|
130
|
-
} & MockValueConfig<Model>;
|
|
131
|
-
declare type MockLinkToMediaValue<IsFilled extends boolean = true> = IsFilled extends true ? prismicT.FilledLinkToMediaField : prismicT.EmptyLinkField<prismicT.LinkType.Media>;
|
|
132
|
-
declare const linkToMedia: <IsFilled extends boolean = true, Model extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField>(config?: MockLinkToMediaValueConfig<IsFilled, Model>) => MockLinkToMediaValue<IsFilled>;
|
|
120
|
+
declare type MockLinkToMediaValueConfig<Model extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
121
|
+
declare const linkToMedia: <Model extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField, State extends prismicT.FieldState = "filled">(config?: MockLinkToMediaValueConfig<Model, State>) => prismicT.LinkToMediaField<State>;
|
|
133
122
|
|
|
134
|
-
declare type MockNumberValueConfig<Model extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField> = MockValueConfig<Model>;
|
|
135
|
-
declare const number: (config?: MockNumberValueConfig) => prismicT.NumberField
|
|
123
|
+
declare type MockNumberValueConfig<Model extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
124
|
+
declare const number: <Model extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField, State extends prismicT.FieldState = "filled">(config?: MockNumberValueConfig<Model, State>) => prismicT.NumberField<State>;
|
|
136
125
|
|
|
137
|
-
declare const patterns$
|
|
126
|
+
declare const patterns$1: {
|
|
138
127
|
readonly short: {
|
|
139
128
|
readonly blockCountMin: 1;
|
|
140
129
|
readonly blockCountMax: 2;
|
|
@@ -149,91 +138,41 @@ declare const patterns$4: {
|
|
|
149
138
|
};
|
|
150
139
|
};
|
|
151
140
|
declare type MockRichTextValueConfig = {
|
|
152
|
-
pattern?: keyof typeof patterns$
|
|
141
|
+
pattern?: keyof typeof patterns$1;
|
|
153
142
|
} & MockRichTextValueConfig$1<prismicT.CustomTypeModelRichTextField>;
|
|
154
143
|
declare const richText: (config?: MockRichTextValueConfig) => prismicT.RichTextField;
|
|
155
144
|
|
|
156
|
-
declare type MockSelectValueConfig<Model extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField> = MockValueConfig<Model>;
|
|
157
|
-
declare const select: (config?: MockSelectValueConfig) => prismicT.SelectField
|
|
145
|
+
declare type MockSelectValueConfig<Model extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
146
|
+
declare const select: <Model extends prismicT.CustomTypeModelSelectField<string, string> = prismicT.CustomTypeModelSelectField<string, string>, State extends prismicT.FieldState = "filled">(config?: MockSelectValueConfig<Model, State>) => prismicT.SelectField<Model["config"]["options"][number], State>;
|
|
158
147
|
|
|
159
|
-
declare const patterns$3: {
|
|
160
|
-
readonly none: {
|
|
161
|
-
readonly minItems: 0;
|
|
162
|
-
readonly maxItems: 0;
|
|
163
|
-
};
|
|
164
|
-
readonly short: {
|
|
165
|
-
readonly minItems: 1;
|
|
166
|
-
readonly maxItems: 3;
|
|
167
|
-
};
|
|
168
|
-
readonly medium: {
|
|
169
|
-
readonly minItems: 3;
|
|
170
|
-
readonly maxItems: 6;
|
|
171
|
-
};
|
|
172
|
-
readonly long: {
|
|
173
|
-
readonly minItems: 6;
|
|
174
|
-
readonly maxItems: 12;
|
|
175
|
-
};
|
|
176
|
-
};
|
|
177
148
|
declare type MockSliceValueConfig<Model extends prismicT.CustomTypeModelSlice = prismicT.CustomTypeModelSlice> = {
|
|
178
149
|
type?: string;
|
|
179
150
|
label?: string | null;
|
|
180
|
-
|
|
151
|
+
itemsCount?: number;
|
|
181
152
|
primaryFieldConfigs?: ValueForModelMapConfigs;
|
|
182
153
|
itemsFieldConfigs?: ValueForModelMapConfigs;
|
|
183
154
|
} & MockValueConfig<Model>;
|
|
184
155
|
declare const slice: <Model extends prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSliceValueConfig<Model>) => ModelValue<Model>;
|
|
185
156
|
|
|
186
|
-
declare const patterns$2: {
|
|
187
|
-
readonly short: {
|
|
188
|
-
readonly minItems: 1;
|
|
189
|
-
readonly maxItems: 3;
|
|
190
|
-
};
|
|
191
|
-
readonly medium: {
|
|
192
|
-
readonly minItems: 3;
|
|
193
|
-
readonly maxItems: 6;
|
|
194
|
-
};
|
|
195
|
-
readonly long: {
|
|
196
|
-
readonly minItems: 6;
|
|
197
|
-
readonly maxItems: 12;
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
157
|
declare type MockSliceZoneValueConfig<Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField> = {
|
|
201
158
|
sharedSliceModels?: prismicT.SharedSliceModel[];
|
|
202
|
-
|
|
159
|
+
itemsCount?: number;
|
|
203
160
|
primaryFieldConfigs?: ValueForModelMapConfigs;
|
|
204
161
|
itemsFieldConfigs?: ValueForModelMapConfigs;
|
|
205
162
|
} & MockValueConfig<Model>;
|
|
206
163
|
declare const sliceZone: <Model extends prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>> = prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>>>(config?: MockSliceZoneValueConfig<Model>) => ModelValue<Model>;
|
|
207
164
|
|
|
208
|
-
declare const patterns$1: {
|
|
209
|
-
readonly none: {
|
|
210
|
-
readonly minItems: 0;
|
|
211
|
-
readonly maxItems: 0;
|
|
212
|
-
};
|
|
213
|
-
readonly short: {
|
|
214
|
-
readonly minItems: 1;
|
|
215
|
-
readonly maxItems: 3;
|
|
216
|
-
};
|
|
217
|
-
readonly medium: {
|
|
218
|
-
readonly minItems: 3;
|
|
219
|
-
readonly maxItems: 6;
|
|
220
|
-
};
|
|
221
|
-
readonly long: {
|
|
222
|
-
readonly minItems: 6;
|
|
223
|
-
readonly maxItems: 12;
|
|
224
|
-
};
|
|
225
|
-
};
|
|
226
165
|
declare type MockSharedSliceVariationValueConfig<Model extends prismicT.SharedSliceModelVariation = prismicT.SharedSliceModelVariation> = {
|
|
227
166
|
type?: string;
|
|
228
167
|
label?: string;
|
|
229
|
-
|
|
168
|
+
itemsCount?: number;
|
|
230
169
|
primaryFieldConfigs?: ValueForModelMapConfigs;
|
|
231
170
|
itemsFieldConfigs?: ValueForModelMapConfigs;
|
|
232
171
|
} & MockValueConfig<Model>;
|
|
233
|
-
declare const sharedSliceVariation: <Model extends prismicT.SharedSliceModelVariation<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.SharedSliceModelVariation<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceVariationValueConfig<Model>) => ModelValue<Model>;
|
|
172
|
+
declare const sharedSliceVariation: <Model extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceVariationValueConfig<Model>) => ModelValue<Model>;
|
|
234
173
|
|
|
235
|
-
declare type MockSharedSliceValueConfig<Model extends prismicT.SharedSliceModel = prismicT.SharedSliceModel> = Pick<MockSharedSliceVariationValueConfig, "
|
|
236
|
-
declare const sharedSlice: <Model extends prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>> = prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>>(config?: MockSharedSliceValueConfig<Model>) => ModelValue<Model>;
|
|
174
|
+
declare type MockSharedSliceValueConfig<Model extends prismicT.SharedSliceModel = prismicT.SharedSliceModel> = Pick<MockSharedSliceVariationValueConfig, "itemsCount" | "primaryFieldConfigs" | "itemsFieldConfigs"> & MockValueConfig<Model>;
|
|
175
|
+
declare const sharedSlice: <Model extends prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>> = prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>>(config?: MockSharedSliceValueConfig<Model>) => ModelValue<Model>;
|
|
237
176
|
|
|
238
177
|
declare const patterns: {
|
|
239
178
|
readonly short: {
|
|
@@ -259,6 +198,7 @@ declare type MockTitleValueConfig<Model extends prismicT.CustomTypeModelTitleFie
|
|
|
259
198
|
declare const title: (config?: MockTitleValueConfig) => prismicT.TitleField;
|
|
260
199
|
|
|
261
200
|
declare type MockUIDValueConfig<Model extends prismicT.CustomTypeModelUIDField = prismicT.CustomTypeModelUIDField> = MockValueConfig<Model>;
|
|
262
|
-
declare const uid: (config?: MockUIDValueConfig) => prismicT.PrismicDocument["uid"]
|
|
201
|
+
declare const uid: (config?: MockUIDValueConfig) => NonNullable<prismicT.PrismicDocument["uid"]>;
|
|
263
202
|
|
|
264
203
|
export { MockBooleanValueConfig, MockColorValueConfig, MockContentRelationshipValueConfig, MockCustomTypeValueConfig, MockDateValueConfig, MockCustomTypeValueConfig as MockDocumentValueConfig, MockEmbedValueConfig, MockGeoPointValueConfig, MockGroupValueConfig, MockImageValueConfig, MockIntegrationFieldsValueConfig, MockKeyTextValueConfig, MockLinkToMediaValueConfig, MockLinkValueConfig, MockNumberValueConfig, MockRichTextValueConfig, MockSelectValueConfig, MockSharedSliceValueConfig, MockSharedSliceVariationValueConfig, MockSliceValueConfig, MockSliceZoneValueConfig, MockTimestampValueConfig, MockTitleValueConfig, MockUIDValueConfig, boolean, color, contentRelationship, customType, date, customType as document, embed, geoPoint, group, image, integrationFields, keyText, link, linkToMedia, number, richText, select, sharedSlice, sharedSliceVariation, slice, sliceZone, timestamp, title, uid };
|
|
204
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|