@prismicio/mock 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/README.md +1 -1
  2. package/dist/api/createAPIMockFactory.cjs +40 -0
  3. package/dist/api/createAPIMockFactory.cjs.map +1 -0
  4. package/dist/api/createAPIMockFactory.d.ts +23 -0
  5. package/dist/api/createAPIMockFactory.js +40 -0
  6. package/dist/api/createAPIMockFactory.js.map +1 -0
  7. package/dist/api/index.cjs +10 -672
  8. package/dist/api/index.cjs.map +1 -1
  9. package/dist/api/index.d.ts +8 -82
  10. package/dist/api/index.js +9 -671
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/api/query.cjs +23 -0
  13. package/dist/api/query.cjs.map +1 -0
  14. package/dist/api/query.d.ts +8 -0
  15. package/dist/api/query.js +23 -0
  16. package/dist/api/query.js.map +1 -0
  17. package/dist/api/ref.cjs +37 -0
  18. package/dist/api/ref.cjs.map +1 -0
  19. package/dist/api/ref.d.ts +12 -0
  20. package/dist/api/ref.js +20 -0
  21. package/dist/api/ref.js.map +1 -0
  22. package/dist/api/repository.cjs +58 -0
  23. package/dist/api/repository.cjs.map +1 -0
  24. package/dist/api/repository.d.ts +7 -0
  25. package/dist/api/repository.js +41 -0
  26. package/dist/api/repository.js.map +1 -0
  27. package/dist/api/tags.cjs +14 -0
  28. package/dist/api/tags.cjs.map +1 -0
  29. package/dist/api/tags.d.ts +4 -0
  30. package/dist/api/tags.js +14 -0
  31. package/dist/api/tags.js.map +1 -0
  32. package/dist/constants.d.ts +2 -0
  33. package/dist/createMockFactory.cjs +33 -0
  34. package/dist/createMockFactory.cjs.map +1 -0
  35. package/dist/createMockFactory.d.ts +22 -0
  36. package/dist/createMockFactory.js +33 -0
  37. package/dist/createMockFactory.js.map +1 -0
  38. package/dist/index.cjs +19 -1988
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.d.ts +7 -688
  41. package/dist/index.js +19 -1950
  42. package/dist/index.js.map +1 -1
  43. package/dist/lib/PRNG.cjs +55 -0
  44. package/dist/lib/PRNG.cjs.map +1 -0
  45. package/dist/lib/PRNG.d.ts +48 -0
  46. package/dist/lib/PRNG.js +55 -0
  47. package/dist/lib/PRNG.js.map +1 -0
  48. package/dist/lib/buildAlternativeLanguage.cjs +12 -0
  49. package/dist/lib/buildAlternativeLanguage.cjs.map +1 -0
  50. package/dist/lib/buildAlternativeLanguage.d.ts +6 -0
  51. package/dist/lib/buildAlternativeLanguage.js +12 -0
  52. package/dist/lib/buildAlternativeLanguage.js.map +1 -0
  53. package/dist/lib/buildContentRelationshipField.cjs +35 -0
  54. package/dist/lib/buildContentRelationshipField.cjs.map +1 -0
  55. package/dist/lib/buildContentRelationshipField.d.ts +6 -0
  56. package/dist/lib/buildContentRelationshipField.js +18 -0
  57. package/dist/lib/buildContentRelationshipField.js.map +1 -0
  58. package/dist/lib/buildEmbedField.cjs +13 -0
  59. package/dist/lib/buildEmbedField.cjs.map +1 -0
  60. package/dist/lib/buildEmbedField.d.ts +19 -0
  61. package/dist/lib/buildEmbedField.js +13 -0
  62. package/dist/lib/buildEmbedField.js.map +1 -0
  63. package/dist/lib/buildImageFieldImage.cjs +50 -0
  64. package/dist/lib/buildImageFieldImage.cjs.map +1 -0
  65. package/dist/lib/buildImageFieldImage.d.ts +15 -0
  66. package/dist/lib/buildImageFieldImage.js +33 -0
  67. package/dist/lib/buildImageFieldImage.js.map +1 -0
  68. package/dist/lib/createFaker.cjs +83 -0
  69. package/dist/lib/createFaker.cjs.map +1 -0
  70. package/dist/lib/createFaker.d.ts +24 -0
  71. package/dist/lib/createFaker.js +83 -0
  72. package/dist/lib/createFaker.js.map +1 -0
  73. package/dist/lib/generateCustomTypeId.cjs +27 -0
  74. package/dist/lib/generateCustomTypeId.cjs.map +1 -0
  75. package/dist/lib/generateCustomTypeId.d.ts +11 -0
  76. package/dist/lib/generateCustomTypeId.js +10 -0
  77. package/dist/lib/generateCustomTypeId.js.map +1 -0
  78. package/dist/lib/generateFieldId.cjs +27 -0
  79. package/dist/lib/generateFieldId.cjs.map +1 -0
  80. package/dist/lib/generateFieldId.d.ts +11 -0
  81. package/dist/lib/generateFieldId.js +10 -0
  82. package/dist/lib/generateFieldId.js.map +1 -0
  83. package/dist/lib/generateTags.cjs +27 -0
  84. package/dist/lib/generateTags.cjs.map +1 -0
  85. package/dist/lib/generateTags.d.ts +14 -0
  86. package/dist/lib/generateTags.js +10 -0
  87. package/dist/lib/generateTags.js.map +1 -0
  88. package/dist/lib/getMockEmbedData.cjs +88 -0
  89. package/dist/lib/getMockEmbedData.cjs.map +1 -0
  90. package/dist/lib/getMockEmbedData.d.ts +11 -0
  91. package/dist/lib/getMockEmbedData.js +88 -0
  92. package/dist/lib/getMockEmbedData.js.map +1 -0
  93. package/dist/lib/getMockImageData.cjs +91 -0
  94. package/dist/lib/getMockImageData.cjs.map +1 -0
  95. package/dist/lib/getMockImageData.d.ts +11 -0
  96. package/dist/lib/getMockImageData.js +91 -0
  97. package/dist/lib/getMockImageData.js.map +1 -0
  98. package/dist/lib/lorem.cjs +45 -0
  99. package/dist/lib/lorem.cjs.map +1 -0
  100. package/dist/lib/lorem.d.ts +49 -0
  101. package/dist/lib/lorem.js +45 -0
  102. package/dist/lib/lorem.js.map +1 -0
  103. package/dist/lib/valueForModel.cjs +191 -0
  104. package/dist/lib/valueForModel.cjs.map +1 -0
  105. package/dist/lib/valueForModel.d.ts +15 -0
  106. package/dist/lib/valueForModel.js +174 -0
  107. package/dist/lib/valueForModel.js.map +1 -0
  108. package/dist/lib/valueForModelMap.cjs +93 -0
  109. package/dist/lib/valueForModelMap.cjs.map +1 -0
  110. package/dist/lib/valueForModelMap.d.ts +37 -0
  111. package/dist/lib/valueForModelMap.js +76 -0
  112. package/dist/lib/valueForModelMap.js.map +1 -0
  113. package/dist/model/boolean.cjs +34 -0
  114. package/dist/model/boolean.cjs.map +1 -0
  115. package/dist/model/boolean.d.ts +4 -0
  116. package/dist/model/boolean.js +16 -0
  117. package/dist/model/boolean.js.map +1 -0
  118. package/dist/model/buildMockGroupFieldMap.cjs +51 -0
  119. package/dist/model/buildMockGroupFieldMap.cjs.map +1 -0
  120. package/dist/model/buildMockGroupFieldMap.d.ts +3 -0
  121. package/dist/model/buildMockGroupFieldMap.js +51 -0
  122. package/dist/model/buildMockGroupFieldMap.js.map +1 -0
  123. package/dist/model/color.cjs +35 -0
  124. package/dist/model/color.cjs.map +1 -0
  125. package/dist/model/color.d.ts +4 -0
  126. package/dist/model/color.js +17 -0
  127. package/dist/model/color.js.map +1 -0
  128. package/dist/model/contentRelationship.cjs +38 -0
  129. package/dist/model/contentRelationship.cjs.map +1 -0
  130. package/dist/model/contentRelationship.d.ts +7 -0
  131. package/dist/model/contentRelationship.js +20 -0
  132. package/dist/model/contentRelationship.js.map +1 -0
  133. package/dist/model/createModelMockFactory.cjs +124 -0
  134. package/dist/model/createModelMockFactory.cjs.map +1 -0
  135. package/dist/model/createModelMockFactory.d.ts +64 -0
  136. package/dist/model/createModelMockFactory.js +124 -0
  137. package/dist/model/createModelMockFactory.js.map +1 -0
  138. package/dist/model/customType.cjs +46 -0
  139. package/dist/model/customType.cjs.map +1 -0
  140. package/dist/model/customType.d.ts +17 -0
  141. package/dist/model/customType.js +29 -0
  142. package/dist/model/customType.js.map +1 -0
  143. package/dist/model/date.cjs +35 -0
  144. package/dist/model/date.cjs.map +1 -0
  145. package/dist/model/date.d.ts +4 -0
  146. package/dist/model/date.js +17 -0
  147. package/dist/model/date.js.map +1 -0
  148. package/dist/model/embed.cjs +35 -0
  149. package/dist/model/embed.cjs.map +1 -0
  150. package/dist/model/embed.d.ts +4 -0
  151. package/dist/model/embed.js +17 -0
  152. package/dist/model/embed.js.map +1 -0
  153. package/dist/model/geoPoint.cjs +34 -0
  154. package/dist/model/geoPoint.cjs.map +1 -0
  155. package/dist/model/geoPoint.d.ts +4 -0
  156. package/dist/model/geoPoint.js +16 -0
  157. package/dist/model/geoPoint.js.map +1 -0
  158. package/dist/model/group.cjs +35 -0
  159. package/dist/model/group.cjs.map +1 -0
  160. package/dist/model/group.d.ts +6 -0
  161. package/dist/model/group.js +17 -0
  162. package/dist/model/group.js.map +1 -0
  163. package/dist/model/image.cjs +46 -0
  164. package/dist/model/image.cjs.map +1 -0
  165. package/dist/model/image.d.ts +7 -0
  166. package/dist/model/image.js +28 -0
  167. package/dist/model/image.js.map +1 -0
  168. package/dist/model/index.cjs +54 -725
  169. package/dist/model/index.cjs.map +1 -1
  170. package/dist/model/index.d.ts +26 -220
  171. package/dist/model/index.js +39 -710
  172. package/dist/model/index.js.map +1 -1
  173. package/dist/model/integration.cjs +35 -0
  174. package/dist/model/integration.cjs.map +1 -0
  175. package/dist/model/integration.d.ts +6 -0
  176. package/dist/model/integration.js +17 -0
  177. package/dist/model/integration.js.map +1 -0
  178. package/dist/model/keyText.cjs +35 -0
  179. package/dist/model/keyText.cjs.map +1 -0
  180. package/dist/model/keyText.d.ts +4 -0
  181. package/dist/model/keyText.js +17 -0
  182. package/dist/model/keyText.js.map +1 -0
  183. package/dist/model/link.cjs +37 -0
  184. package/dist/model/link.cjs.map +1 -0
  185. package/dist/model/link.d.ts +13 -0
  186. package/dist/model/link.js +19 -0
  187. package/dist/model/link.js.map +1 -0
  188. package/dist/model/linkToMedia.cjs +36 -0
  189. package/dist/model/linkToMedia.cjs.map +1 -0
  190. package/dist/model/linkToMedia.d.ts +4 -0
  191. package/dist/model/linkToMedia.js +18 -0
  192. package/dist/model/linkToMedia.js.map +1 -0
  193. package/dist/model/number.cjs +35 -0
  194. package/dist/model/number.cjs.map +1 -0
  195. package/dist/model/number.d.ts +4 -0
  196. package/dist/model/number.js +17 -0
  197. package/dist/model/number.js.map +1 -0
  198. package/dist/model/richText.cjs +55 -0
  199. package/dist/model/richText.cjs.map +1 -0
  200. package/dist/model/richText.d.ts +6 -0
  201. package/dist/model/richText.js +37 -0
  202. package/dist/model/richText.js.map +1 -0
  203. package/dist/model/select.cjs +37 -0
  204. package/dist/model/select.cjs.map +1 -0
  205. package/dist/model/select.d.ts +7 -0
  206. package/dist/model/select.js +19 -0
  207. package/dist/model/select.js.map +1 -0
  208. package/dist/model/sharedSlice.cjs +42 -0
  209. package/dist/model/sharedSlice.cjs.map +1 -0
  210. package/dist/model/sharedSlice.d.ts +8 -0
  211. package/dist/model/sharedSlice.js +24 -0
  212. package/dist/model/sharedSlice.js.map +1 -0
  213. package/dist/model/sharedSliceChoice.cjs +27 -0
  214. package/dist/model/sharedSliceChoice.cjs.map +1 -0
  215. package/dist/model/sharedSliceChoice.d.ts +2 -0
  216. package/dist/model/sharedSliceChoice.js +10 -0
  217. package/dist/model/sharedSliceChoice.js.map +1 -0
  218. package/dist/model/sharedSliceVariation.cjs +45 -0
  219. package/dist/model/sharedSliceVariation.cjs.map +1 -0
  220. package/dist/model/sharedSliceVariation.d.ts +9 -0
  221. package/dist/model/sharedSliceVariation.js +28 -0
  222. package/dist/model/sharedSliceVariation.js.map +1 -0
  223. package/dist/model/slice.cjs +37 -0
  224. package/dist/model/slice.cjs.map +1 -0
  225. package/dist/model/slice.d.ts +7 -0
  226. package/dist/model/slice.js +19 -0
  227. package/dist/model/slice.js.map +1 -0
  228. package/dist/model/sliceZone.cjs +39 -0
  229. package/dist/model/sliceZone.cjs.map +1 -0
  230. package/dist/model/sliceZone.d.ts +6 -0
  231. package/dist/model/sliceZone.js +22 -0
  232. package/dist/model/sliceZone.js.map +1 -0
  233. package/dist/model/timestamp.cjs +35 -0
  234. package/dist/model/timestamp.cjs.map +1 -0
  235. package/dist/model/timestamp.d.ts +4 -0
  236. package/dist/model/timestamp.js +17 -0
  237. package/dist/model/timestamp.js.map +1 -0
  238. package/dist/model/title.cjs +45 -0
  239. package/dist/model/title.cjs.map +1 -0
  240. package/dist/model/title.d.ts +4 -0
  241. package/dist/model/title.js +27 -0
  242. package/dist/model/title.js.map +1 -0
  243. package/dist/model/uid.cjs +35 -0
  244. package/dist/model/uid.cjs.map +1 -0
  245. package/dist/model/uid.d.ts +4 -0
  246. package/dist/model/uid.js +17 -0
  247. package/dist/model/uid.js.map +1 -0
  248. package/dist/types.d.ts +77 -0
  249. package/dist/value/boolean.cjs +9 -0
  250. package/dist/value/boolean.cjs.map +1 -0
  251. package/dist/value/boolean.d.ts +4 -0
  252. package/dist/value/boolean.js +9 -0
  253. package/dist/value/boolean.js.map +1 -0
  254. package/dist/value/color.cjs +9 -0
  255. package/dist/value/color.cjs.map +1 -0
  256. package/dist/value/color.d.ts +5 -0
  257. package/dist/value/color.js +9 -0
  258. package/dist/value/color.js.map +1 -0
  259. package/dist/value/contentRelationship.cjs +63 -0
  260. package/dist/value/contentRelationship.cjs.map +1 -0
  261. package/dist/value/contentRelationship.d.ts +11 -0
  262. package/dist/value/contentRelationship.js +46 -0
  263. package/dist/value/contentRelationship.js.map +1 -0
  264. package/dist/value/createValueMockFactory.cjs +119 -0
  265. package/dist/value/createValueMockFactory.cjs.map +1 -0
  266. package/dist/value/createValueMockFactory.d.ts +63 -0
  267. package/dist/value/createValueMockFactory.js +119 -0
  268. package/dist/value/createValueMockFactory.js.map +1 -0
  269. package/dist/value/customType.cjs +66 -0
  270. package/dist/value/customType.cjs.map +1 -0
  271. package/dist/value/customType.d.ts +9 -0
  272. package/dist/value/customType.js +48 -0
  273. package/dist/value/customType.js.map +1 -0
  274. package/dist/value/date.cjs +15 -0
  275. package/dist/value/date.cjs.map +1 -0
  276. package/dist/value/date.d.ts +6 -0
  277. package/dist/value/date.js +15 -0
  278. package/dist/value/date.js.map +1 -0
  279. package/dist/value/document.d.ts +1 -0
  280. package/dist/value/embed.cjs +17 -0
  281. package/dist/value/embed.cjs.map +1 -0
  282. package/dist/value/embed.d.ts +9 -0
  283. package/dist/value/embed.js +17 -0
  284. package/dist/value/embed.js.map +1 -0
  285. package/dist/value/geoPoint.cjs +12 -0
  286. package/dist/value/geoPoint.cjs.map +1 -0
  287. package/dist/value/geoPoint.d.ts +5 -0
  288. package/dist/value/geoPoint.js +12 -0
  289. package/dist/value/geoPoint.js.map +1 -0
  290. package/dist/value/group.cjs +24 -0
  291. package/dist/value/group.cjs.map +1 -0
  292. package/dist/value/group.d.ts +9 -0
  293. package/dist/value/group.js +24 -0
  294. package/dist/value/group.js.map +1 -0
  295. package/dist/value/image.cjs +34 -0
  296. package/dist/value/image.cjs.map +1 -0
  297. package/dist/value/image.d.ts +5 -0
  298. package/dist/value/image.js +34 -0
  299. package/dist/value/image.js.map +1 -0
  300. package/dist/value/index.cjs +49 -1492
  301. package/dist/value/index.cjs.map +1 -1
  302. package/dist/value/index.d.ts +48 -260
  303. package/dist/value/index.js +48 -1491
  304. package/dist/value/index.js.map +1 -1
  305. package/dist/value/integration.cjs +8 -0
  306. package/dist/value/integration.cjs.map +1 -0
  307. package/dist/value/integration.d.ts +7 -0
  308. package/dist/value/integration.js +8 -0
  309. package/dist/value/integration.js.map +1 -0
  310. package/dist/value/keyText.cjs +27 -0
  311. package/dist/value/keyText.cjs.map +1 -0
  312. package/dist/value/keyText.d.ts +5 -0
  313. package/dist/value/keyText.js +10 -0
  314. package/dist/value/keyText.js.map +1 -0
  315. package/dist/value/link.cjs +65 -0
  316. package/dist/value/link.cjs.map +1 -0
  317. package/dist/value/link.d.ts +13 -0
  318. package/dist/value/link.js +48 -0
  319. package/dist/value/link.js.map +1 -0
  320. package/dist/value/linkToMedia.cjs +43 -0
  321. package/dist/value/linkToMedia.cjs.map +1 -0
  322. package/dist/value/linkToMedia.d.ts +6 -0
  323. package/dist/value/linkToMedia.js +25 -0
  324. package/dist/value/linkToMedia.js.map +1 -0
  325. package/dist/value/number.cjs +9 -0
  326. package/dist/value/number.cjs.map +1 -0
  327. package/dist/value/number.d.ts +5 -0
  328. package/dist/value/number.js +9 -0
  329. package/dist/value/number.js.map +1 -0
  330. package/dist/value/richText/embed.cjs +34 -0
  331. package/dist/value/richText/embed.cjs.map +1 -0
  332. package/dist/value/richText/embed.d.ts +5 -0
  333. package/dist/value/richText/embed.js +17 -0
  334. package/dist/value/richText/embed.js.map +1 -0
  335. package/dist/value/richText/heading.cjs +72 -0
  336. package/dist/value/richText/heading.cjs.map +1 -0
  337. package/dist/value/richText/heading.d.ts +22 -0
  338. package/dist/value/richText/heading.js +54 -0
  339. package/dist/value/richText/heading.js.map +1 -0
  340. package/dist/value/richText/image.cjs +41 -0
  341. package/dist/value/richText/image.cjs.map +1 -0
  342. package/dist/value/richText/image.d.ts +5 -0
  343. package/dist/value/richText/image.js +24 -0
  344. package/dist/value/richText/image.js.map +1 -0
  345. package/dist/value/richText/index.cjs +91 -0
  346. package/dist/value/richText/index.cjs.map +1 -0
  347. package/dist/value/richText/index.d.ts +22 -0
  348. package/dist/value/richText/index.js +74 -0
  349. package/dist/value/richText/index.js.map +1 -0
  350. package/dist/value/richText/list.cjs +52 -0
  351. package/dist/value/richText/list.cjs.map +1 -0
  352. package/dist/value/richText/list.d.ts +21 -0
  353. package/dist/value/richText/list.js +34 -0
  354. package/dist/value/richText/list.js.map +1 -0
  355. package/dist/value/richText/oList.cjs +52 -0
  356. package/dist/value/richText/oList.cjs.map +1 -0
  357. package/dist/value/richText/oList.d.ts +21 -0
  358. package/dist/value/richText/oList.js +34 -0
  359. package/dist/value/richText/oList.js.map +1 -0
  360. package/dist/value/richText/paragraph.cjs +47 -0
  361. package/dist/value/richText/paragraph.cjs.map +1 -0
  362. package/dist/value/richText/paragraph.d.ts +18 -0
  363. package/dist/value/richText/paragraph.js +29 -0
  364. package/dist/value/richText/paragraph.js.map +1 -0
  365. package/dist/value/richText/preformatted.cjs +47 -0
  366. package/dist/value/richText/preformatted.cjs.map +1 -0
  367. package/dist/value/richText/preformatted.d.ts +18 -0
  368. package/dist/value/richText/preformatted.js +29 -0
  369. package/dist/value/richText/preformatted.js.map +1 -0
  370. package/dist/value/select.cjs +18 -0
  371. package/dist/value/select.cjs.map +1 -0
  372. package/dist/value/select.d.ts +5 -0
  373. package/dist/value/select.js +18 -0
  374. package/dist/value/select.js.map +1 -0
  375. package/dist/value/sharedSlice.cjs +20 -0
  376. package/dist/value/sharedSlice.cjs.map +1 -0
  377. package/dist/value/sharedSlice.d.ts +5 -0
  378. package/dist/value/sharedSlice.js +20 -0
  379. package/dist/value/sharedSlice.js.map +1 -0
  380. package/dist/value/sharedSliceVariation.cjs +32 -0
  381. package/dist/value/sharedSliceVariation.cjs.map +1 -0
  382. package/dist/value/sharedSliceVariation.d.ts +11 -0
  383. package/dist/value/sharedSliceVariation.js +32 -0
  384. package/dist/value/sharedSliceVariation.js.map +1 -0
  385. package/dist/value/slice.cjs +49 -0
  386. package/dist/value/slice.cjs.map +1 -0
  387. package/dist/value/slice.d.ts +11 -0
  388. package/dist/value/slice.js +32 -0
  389. package/dist/value/slice.js.map +1 -0
  390. package/dist/value/sliceZone.cjs +70 -0
  391. package/dist/value/sliceZone.cjs.map +1 -0
  392. package/dist/value/sliceZone.d.ts +10 -0
  393. package/dist/value/sliceZone.js +53 -0
  394. package/dist/value/sliceZone.js.map +1 -0
  395. package/dist/value/timestamp.cjs +25 -0
  396. package/dist/value/timestamp.cjs.map +1 -0
  397. package/dist/value/timestamp.d.ts +8 -0
  398. package/dist/value/timestamp.js +25 -0
  399. package/dist/value/timestamp.js.map +1 -0
  400. package/dist/value/title.cjs +21 -0
  401. package/dist/value/title.cjs.map +1 -0
  402. package/dist/value/title.d.ts +8 -0
  403. package/dist/value/title.js +21 -0
  404. package/dist/value/title.js.map +1 -0
  405. package/dist/value/uid.cjs +27 -0
  406. package/dist/value/uid.cjs.map +1 -0
  407. package/dist/value/uid.d.ts +4 -0
  408. package/dist/value/uid.js +10 -0
  409. package/dist/value/uid.js.map +1 -0
  410. package/package.json +23 -20
  411. package/src/api/createAPIMockFactory.ts +2 -2
  412. package/src/api/query.ts +4 -4
  413. package/src/api/ref.ts +3 -3
  414. package/src/api/repository.ts +4 -4
  415. package/src/api/tags.ts +2 -2
  416. package/src/lib/PRNG.ts +88 -0
  417. package/src/lib/buildAlternativeLanguage.ts +4 -4
  418. package/src/lib/buildContentRelationshipField.ts +5 -5
  419. package/src/lib/buildEmbedField.ts +19 -20
  420. package/src/lib/buildImageFieldImage.ts +7 -7
  421. package/src/lib/createFaker.ts +7 -8
  422. package/src/lib/lorem.ts +1 -2
  423. package/src/lib/valueForModel.ts +27 -27
  424. package/src/lib/valueForModelMap.ts +26 -26
  425. package/src/model/boolean.ts +3 -3
  426. package/src/model/buildMockGroupFieldMap.ts +2 -2
  427. package/src/model/color.ts +3 -3
  428. package/src/model/contentRelationship.ts +4 -4
  429. package/src/model/createModelMockFactory.ts +8 -13
  430. package/src/model/customType.ts +13 -13
  431. package/src/model/date.ts +3 -3
  432. package/src/model/embed.ts +3 -3
  433. package/src/model/geoPoint.ts +3 -3
  434. package/src/model/group.ts +3 -3
  435. package/src/model/image.ts +3 -3
  436. package/src/model/index.ts +1 -1
  437. package/src/model/{integrationFields.ts → integration.ts} +6 -6
  438. package/src/model/keyText.ts +3 -3
  439. package/src/model/link.ts +3 -3
  440. package/src/model/linkToMedia.ts +4 -4
  441. package/src/model/number.ts +3 -3
  442. package/src/model/richText.ts +21 -21
  443. package/src/model/select.ts +3 -3
  444. package/src/model/sharedSlice.ts +5 -5
  445. package/src/model/sharedSliceChoice.ts +3 -3
  446. package/src/model/sharedSliceVariation.ts +2 -2
  447. package/src/model/slice.ts +5 -5
  448. package/src/model/sliceZone.ts +8 -8
  449. package/src/model/timestamp.ts +3 -3
  450. package/src/model/title.ts +3 -3
  451. package/src/model/uid.ts +3 -3
  452. package/src/types.ts +95 -95
  453. package/src/value/boolean.ts +4 -4
  454. package/src/value/color.ts +7 -7
  455. package/src/value/contentRelationship.ts +12 -12
  456. package/src/value/createValueMockFactory.ts +47 -50
  457. package/src/value/customType.ts +10 -10
  458. package/src/value/date.ts +7 -7
  459. package/src/value/embed.ts +10 -10
  460. package/src/value/geoPoint.ts +7 -7
  461. package/src/value/group.ts +7 -7
  462. package/src/value/image.ts +8 -8
  463. package/src/value/index.ts +2 -2
  464. package/src/value/integration.ts +32 -0
  465. package/src/value/keyText.ts +7 -7
  466. package/src/value/link.ts +25 -25
  467. package/src/value/linkToMedia.ts +9 -9
  468. package/src/value/number.ts +7 -7
  469. package/src/value/richText/embed.ts +3 -3
  470. package/src/value/richText/heading.ts +19 -19
  471. package/src/value/richText/image.ts +3 -3
  472. package/src/value/richText/index.ts +23 -23
  473. package/src/value/richText/list.ts +3 -3
  474. package/src/value/richText/oList.ts +3 -3
  475. package/src/value/richText/paragraph.ts +3 -3
  476. package/src/value/richText/preformatted.ts +3 -3
  477. package/src/value/select.ts +8 -8
  478. package/src/value/sharedSlice.ts +3 -3
  479. package/src/value/sharedSliceVariation.ts +3 -3
  480. package/src/value/slice.ts +3 -3
  481. package/src/value/sliceZone.ts +8 -8
  482. package/src/value/timestamp.ts +7 -7
  483. package/src/value/title.ts +7 -7
  484. package/src/value/uid.ts +4 -4
  485. package/dist/api/index.d.ts.map +0 -1
  486. package/dist/model/index.d.ts.map +0 -1
  487. package/dist/value/index.d.ts.map +0 -1
  488. package/src/value/integrationFields.ts +0 -32
package/dist/index.js CHANGED
@@ -1,1952 +1,21 @@
1
- import * as changeCase from 'change-case';
2
- import Rand from 'rand-seed';
3
- import * as prismicT from '@prismicio/types';
4
-
5
- const wordsString = "lorem ipsum dolor sit amet, consectetur adipiscing elit ut aliquam, purus sit amet luctus venenatis, lectus magna fringilla urna, porttitor rhoncus dolor purus non enim praesent elementum facilisis leo, vel fringilla est ullamcorper eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis mauris sit amet massa vitae tortor condimentum lacinia quis vel eros donec ac odio tempor orci dapibus ultrices in iaculis nunc sed augue lacus, viverra vitae congue eu, consequat ac felis donec et odio pellentesque diam volutpat commodo sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc sed velit dignissim sodales ut eu sem integer vitae justo eget magna fermentum iaculis eu non diam phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet enim tortor, at auctor urna nunc id cursus metus aliquam eleifend mi in nulla posuere sollicitudin aliquam ultrices sagittis orci, a scelerisque purus semper eget duis at tellus at urna condimentum mattis pellentesque id nibh tortor, id aliquet lectus proin nibh nisl, condimentum id venenatis a, condimentum vitae sapien pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas sed tempus, urna et pharetra pharetra, massa massa ultricies mi, quis hendrerit dolor magna eget est lorem ipsum dolor sit amet, consectetur adipiscing elit pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas integer eget aliquet nibh praesent tristique magna sit amet purus gravida quis blandit turpis cursus in hac habitasse platea dictumst quisque sagittis, purus sit amet volutpat consequat, mauris nunc congue nisi, vitae suscipit tellus mauris a diam maecenas sed enim ut sem viverra aliquet eget sit amet tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra, magna ac placerat vestibulum, lectus mauris ultrices eros, in cursus turpis massa tincidunt dui ut ornare lectus sit amet est placerat in egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam ut porttitor leo a diam sollicitudin tempor id eu nisl nunc mi ipsum, faucibus vitae aliquet nec, ullamcorper sit amet risus nullam eget felis eget nunc lobortis mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus, sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien, faucibus et molestie ac, feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa, eget egestas purus viverra accumsan in nisl nisi, scelerisque eu ultrices vitae, auctor eu augue ut lectus arcu, bibendum at varius vel, pharetra vel turpis nunc eget lorem dolor, sed viverra ipsum nunc aliquet bibendum enim, facilisis gravida neque convallis a cras semper auctor neque, vitae tempus quam pellentesque nec nam aliquam sem et tortor consequat id porta nibh venenatis cras sed felis eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar elementum integer enim neque, volutpat ac tincidunt vitae, semper quis lectus nulla at volutpat diam ut venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci porta non pulvinar neque laoreet suspendisse interdum consectetur libero, id faucibus nisl tincidunt eget nullam non nisi est, sit amet facilisis magna etiam tempor, orci eu lobortis elementum, nibh tellus molestie nunc, non blandit massa enim nec dui nunc mattis enim ut tellus elementum sagittis vitae et leo duis ut diam quam nulla porttitor massa id neque aliquam vestibulum morbi blandit cursus risus, at ultrices mi tempus imperdiet nulla malesuada pellentesque elit eget gravida cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc vel risus commodo viverra maecenas accumsan, lacus vel facilisis volutpat, est velit egestas dui, id ornare arcu odio ut sem nulla pharetra diam sit amet nisl suscipit adipiscing bibendum est ultricies integer quis auctor elit sed vulputate mi sit amet mauris commodo quis imperdiet massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero nunc, consequat interdum varius sit amet, mattis vulputate enim nulla aliquet porttitor lacus, luctus accumsan tortor posuere ac ut consequat semper viverra nam libero justo, laoreet sit amet cursus sit amet, dictum sit amet justo donec enim diam, vulputate ut pharetra sit amet, aliquam id diam maecenas ultricies mi eget mauris pharetra et ultrices neque ornare aenean euismod elementum nisi, quis eleifend quam adipiscing vitae proin sagittis, nisl rhoncus mattis rhoncus, urna neque viverra justo, nec ultrices dui sapien eget mi proin sed libero enim, sed faucibus turpis in eu mi bibendum neque egestas congue quisque egestas diam in arcu cursus euismod quis viverra nibh cras pulvinar mattis nunc, sed blandit libero volutpat sed cras ornare arcu dui vivamus arcu felis, bibendum ut tristique et, egestas quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim, sit amet venenatis urna cursus eget nunc scelerisque viverra mauris, in aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod in pellentesque massa placerat duis ultricies lacus sed turpis tincidunt id aliquet risus feugiat in ante metus, dictum at tempor commodo, ullamcorper a lacus vestibulum sed arcu non odio euismod lacinia at quis risus sed vulputate odio ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat velit, scelerisque in dictum non, consectetur a erat nam at lectus urna duis convallis convallis tellus, id interdum velit laoreet id donec ultrices tincidunt arcu, non sodales neque sodales ut etiam sit amet nisl purus, in mollis nunc sed id semper risus in hendrerit gravida rutrum quisque non tellus orci, ac auctor augue mauris augue neque, gravida in fermentum et, sollicitudin ac orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum, odio eu feugiat pretium, nibh ipsum consequat nisl, vel pretium lectus quam id leo in vitae turpis massa sed elementum tempus egestas sed sed risus pretium quam vulputate dignissim suspendisse in est ante in nibh mauris, cursus mattis molestie a, iaculis at erat pellentesque adipiscing commodo elit, at imperdiet dui accumsan sit amet nulla facilisi morbi tempus iaculis urna, id volutpat lacus laoreet non curabitur gravida arcu ac tortor dignissim convallis aenean et tortor at risus viverra adipiscing at in tellus integer feugiat scelerisque varius morbi enim nunc, faucibus a pellentesque sit amet, porttitor eget dolor morbi non arcu risus, quis varius quam quisque id diam vel quam elementum pulvinar etiam non quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit amet, consectetur adipiscing elit duis tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi leo urna, molestie at elementum eu, facilisis sed odio morbi quis commodo odio aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat in fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida hendrerit lectus a molestie";
6
- const loremWords = wordsString.split(" ");
7
- const lorem = (length, wordOffset = 0) => {
8
- const count = parseInt(length.substring(0, length.length - 1));
9
- const countType = length.charAt(length.length - 1);
10
- if (!isNaN(count) && (countType === "w" || countType === "c")) {
11
- if (!lorem.spaceIndices.length) {
12
- let startIndex = -1;
13
- do {
14
- const index = wordsString.indexOf(" ", startIndex + 1);
15
- lorem.spaceIndices.push(index);
16
- startIndex = index;
17
- } while (startIndex !== -1);
18
- }
19
- if (countType === "c") {
20
- return wordsString.substring(0, count);
21
- } else {
22
- let sentence = "";
23
- const startSpaceIndex = lorem.spaceIndices[wordOffset % lorem.spaceIndices.length - 1];
24
- const endSpaceIndex = lorem.spaceIndices[(wordOffset % lorem.spaceIndices.length + count) % lorem.spaceIndices.length - 1];
25
- if (count + wordOffset % lorem.spaceIndices.length > lorem.spaceIndices.length) {
26
- sentence += wordsString.substring(startSpaceIndex + 1) + " ";
27
- const wraparoundCounts = Math.floor(count / lorem.spaceIndices.length) - 1;
28
- for (let i = 0; i < wraparoundCounts; i++) {
29
- sentence += wordsString + " ";
30
- }
31
- sentence += wordsString.substring(0, endSpaceIndex);
32
- } else {
33
- sentence = wordsString.substring(startSpaceIndex + 1, endSpaceIndex);
34
- }
35
- if (sentence.charAt(sentence.length - 1) === ",") {
36
- return sentence.substring(0, sentence.length - 1);
37
- } else {
38
- return sentence.substring(0, sentence.length);
39
- }
40
- }
41
- }
42
- throw new Error("Length must be of the form `${number}w` or `${number}c`");
1
+ import * as index from "./api/index.js";
2
+ import * as index$1 from "./model/index.js";
3
+ import * as index$2 from "./value/index.js";
4
+ import { MockFactory, createMockFactory } from "./createMockFactory.js";
5
+ import { APIMockFactory, createAPIMockFactory } from "./api/createAPIMockFactory.js";
6
+ import { ModelMockFactory, createModelMockFactory } from "./model/createModelMockFactory.js";
7
+ import { ValueMockFactory, createValueMockFactory } from "./value/createValueMockFactory.js";
8
+ export {
9
+ APIMockFactory,
10
+ MockFactory,
11
+ ModelMockFactory,
12
+ ValueMockFactory,
13
+ index as api,
14
+ createAPIMockFactory,
15
+ createMockFactory,
16
+ createModelMockFactory,
17
+ createValueMockFactory,
18
+ index$1 as model,
19
+ index$2 as value
43
20
  };
44
- lorem.spaceIndices = [];
45
-
46
- const createFaker = (seed) => {
47
- return new Faker(seed);
48
- };
49
- const DAY_MS = 1e3 * 60 * 60 * 24;
50
- const YEAR_MS = DAY_MS * 365;
51
- const YEAR_2022_MS = 52 * (YEAR_MS + DAY_MS / 4);
52
- class Faker {
53
- constructor(seed) {
54
- this.seed = seed;
55
- this.rand = new Rand(seed.toString());
56
- }
57
- boolean() {
58
- return this.random() >= 0.5;
59
- }
60
- random() {
61
- return this.rand.next();
62
- }
63
- randomElement(elements) {
64
- return elements[this.range(0, elements.length)];
65
- }
66
- randomElements(elements) {
67
- const alwaysInclude = this.randomElement(elements);
68
- return elements.filter((element) => element === alwaysInclude || this.boolean());
69
- }
70
- range(min, max) {
71
- return Math.floor(this.rangeFloat(Math.ceil(min), Math.floor(max)));
72
- }
73
- rangeFloat(min, max) {
74
- return this.random() * (max - min) + min;
75
- }
76
- words(length, wordOffset = this.range(0, loremWords.length)) {
77
- return lorem(`${length}w`, wordOffset);
78
- }
79
- word() {
80
- return this.randomElement(loremWords);
81
- }
82
- lorem(length, wordOffset = this.range(0, loremWords.length)) {
83
- return lorem(length, wordOffset);
84
- }
85
- url() {
86
- return `https://${this.word()}.example`;
87
- }
88
- hexColor() {
89
- return `#${this.hash(6)}`;
90
- }
91
- hash(length) {
92
- let hash = "";
93
- for (let i = 0; i < length; i++) {
94
- const chars = this.boolean() ? "abcdef" : "0123456789";
95
- hash += chars[this.range(0, chars.length)];
96
- }
97
- return hash;
98
- }
99
- date() {
100
- return new Date(YEAR_2022_MS + this.range(-YEAR_MS * 3, YEAR_MS * 3));
101
- }
102
- dateAfter(date) {
103
- const timestamp = date.getTime();
104
- return new Date(this.range(timestamp, timestamp + YEAR_MS * 3));
105
- }
106
- dateBefore(date) {
107
- const timestamp = date.getTime();
108
- return new Date(this.range(timestamp - YEAR_MS * 3, timestamp));
109
- }
110
- dateBetween(min, max) {
111
- return new Date(this.range(min.getTime(), max.getTime()));
112
- }
113
- }
114
-
115
- const generateTags = (config) => {
116
- var _a, _b;
117
- const faker = config.faker || createFaker(config.seed);
118
- return Array.from({ length: faker.range((_a = config.min) != null ? _a : 0, (_b = config.max) != null ? _b : 2) }, () => changeCase.capitalCase(faker.words(faker.range(1, 3))));
119
- };
120
-
121
- const boolean$1 = (config) => {
122
- const faker = config.faker || createFaker(config.seed);
123
- return faker.boolean();
124
- };
125
-
126
- const valueForModel = (config) => {
127
- var _a;
128
- const faker = config.faker || createFaker(config.seed);
129
- const model = config.model;
130
- switch (model.type) {
131
- case prismicT.CustomTypeModelFieldType.Boolean: {
132
- return boolean$1({
133
- faker,
134
- model,
135
- ...config.config
136
- });
137
- }
138
- case prismicT.CustomTypeModelFieldType.Color: {
139
- return color({
140
- faker,
141
- model,
142
- ...config.config
143
- });
144
- }
145
- case prismicT.CustomTypeModelFieldType.Link: {
146
- switch ((_a = model.config) == null ? void 0 : _a.select) {
147
- case prismicT.CustomTypeModelLinkSelectType.Document: {
148
- return contentRelationship({
149
- faker,
150
- model,
151
- ...config.config
152
- });
153
- }
154
- case prismicT.CustomTypeModelLinkSelectType.Media: {
155
- return linkToMedia({
156
- faker,
157
- model,
158
- ...config.config
159
- });
160
- }
161
- default: {
162
- return link({
163
- faker,
164
- model,
165
- ...config.config
166
- });
167
- }
168
- }
169
- }
170
- case prismicT.CustomTypeModelFieldType.Date: {
171
- return date({
172
- faker,
173
- model,
174
- ...config.config
175
- });
176
- }
177
- case prismicT.CustomTypeModelFieldType.Embed: {
178
- return embed$1({
179
- faker,
180
- model,
181
- ...config.config
182
- });
183
- }
184
- case prismicT.CustomTypeModelFieldType.GeoPoint: {
185
- return geoPoint({
186
- faker,
187
- model,
188
- ...config.config
189
- });
190
- }
191
- case prismicT.CustomTypeModelFieldType.Image: {
192
- return image$1({
193
- faker,
194
- model,
195
- ...config.config
196
- });
197
- }
198
- case prismicT.CustomTypeModelFieldType.Text: {
199
- return keyText({
200
- faker,
201
- model,
202
- ...config.config
203
- });
204
- }
205
- case prismicT.CustomTypeModelFieldType.Number: {
206
- return number({
207
- faker,
208
- model,
209
- ...config.config
210
- });
211
- }
212
- case prismicT.CustomTypeModelFieldType.Select: {
213
- return select({
214
- faker,
215
- model,
216
- ...config.config
217
- });
218
- }
219
- case prismicT.CustomTypeModelFieldType.Timestamp: {
220
- return timestamp({
221
- faker,
222
- model,
223
- ...config.config
224
- });
225
- }
226
- case prismicT.CustomTypeModelFieldType.StructuredText: {
227
- if (model.config && "single" in model.config && model.config.single && model.config.single.split(",").every((element) => /heading[1-6]/.test(element.trim()))) {
228
- return title({
229
- faker,
230
- model,
231
- ...config.config
232
- });
233
- } else {
234
- return richText({
235
- faker,
236
- model,
237
- ...config.config
238
- });
239
- }
240
- }
241
- case prismicT.CustomTypeModelFieldType.IntegrationFields: {
242
- return integrationFields({
243
- faker,
244
- model,
245
- ...config.config
246
- });
247
- }
248
- case prismicT.CustomTypeModelFieldType.UID: {
249
- return uid({
250
- faker,
251
- model,
252
- ...config.config
253
- });
254
- }
255
- case prismicT.CustomTypeModelFieldType.Group: {
256
- return group({
257
- faker,
258
- model,
259
- ...config.config
260
- });
261
- }
262
- case prismicT.CustomTypeModelFieldType.LegacySlices:
263
- case prismicT.CustomTypeModelFieldType.Slices: {
264
- return sliceZone({
265
- faker,
266
- model,
267
- ...config.config
268
- });
269
- }
270
- default: {
271
- throw new Error(`The "${model.type}" field type is not supported in @prismicio/mock.`);
272
- }
273
- }
274
- };
275
-
276
- const getValueConfigType = (model) => {
277
- var _a;
278
- switch (model.type) {
279
- case prismicT.CustomTypeModelFieldType.Boolean:
280
- return "boolean";
281
- case prismicT.CustomTypeModelFieldType.Color:
282
- return "color";
283
- case prismicT.CustomTypeModelFieldType.Date:
284
- return "date";
285
- case prismicT.CustomTypeModelFieldType.Embed:
286
- return "embed";
287
- case prismicT.CustomTypeModelFieldType.GeoPoint:
288
- return "geoPoint";
289
- case prismicT.CustomTypeModelFieldType.Group:
290
- return "group";
291
- case prismicT.CustomTypeModelFieldType.Image:
292
- return "image";
293
- case prismicT.CustomTypeModelFieldType.Link: {
294
- switch ((_a = model.config) == null ? void 0 : _a.select) {
295
- case prismicT.CustomTypeModelLinkSelectType.Document:
296
- return "contentRelationship";
297
- case prismicT.CustomTypeModelLinkSelectType.Media:
298
- return "linkToMedia";
299
- default:
300
- return "link";
301
- }
302
- }
303
- case prismicT.CustomTypeModelFieldType.Number:
304
- return "number";
305
- case prismicT.CustomTypeModelFieldType.Select:
306
- return "select";
307
- case prismicT.CustomTypeModelFieldType.StructuredText: {
308
- if (model.config && "single" in model.config && model.config.single && model.config.single.split(",").every((element) => /heading{1,6}/.test(element.trim()))) {
309
- return "title";
310
- } else {
311
- return "richText";
312
- }
313
- }
314
- case prismicT.CustomTypeModelFieldType.Text:
315
- return "keyText";
316
- case prismicT.CustomTypeModelFieldType.Timestamp:
317
- return "timestamp";
318
- case prismicT.CustomTypeModelFieldType.UID:
319
- return "uid";
320
- case prismicT.CustomTypeModelFieldType.IntegrationFields:
321
- return "integrationFields";
322
- case prismicT.CustomTypeModelFieldType.Slices:
323
- return "sliceZone";
324
- default: {
325
- throw new Error(`The "${model.type}" field type is not supported in @prismicio/mock.`);
326
- }
327
- }
328
- };
329
- const valueForModelMap = (config) => {
330
- var _a;
331
- const faker = config.faker || createFaker(config.seed);
332
- const result = {};
333
- for (const fieldId in config.map) {
334
- const fieldModel = config.map[fieldId];
335
- const fieldConfigType = getValueConfigType(fieldModel);
336
- const fieldConfig = (_a = config.configs) == null ? void 0 : _a[fieldConfigType];
337
- result[fieldId] = valueForModel({
338
- faker,
339
- model: fieldModel,
340
- config: fieldConfig
341
- });
342
- }
343
- return result;
344
- };
345
-
346
- function boolean(config) {
347
- const faker = config.faker || createFaker(config.seed);
348
- return {
349
- type: prismicT.CustomTypeModelFieldType.Boolean,
350
- config: {
351
- label: changeCase.capitalCase(faker.word())
352
- }
353
- };
354
- }
355
-
356
- const color$1 = (config) => {
357
- const faker = config.faker || createFaker(config.seed);
358
- return {
359
- type: prismicT.CustomTypeModelFieldType.Color,
360
- config: {
361
- label: changeCase.capitalCase(faker.word()),
362
- placeholder: changeCase.sentenceCase(faker.words(3))
363
- }
364
- };
365
- };
366
-
367
- const contentRelationship$1 = (config) => {
368
- const faker = config.faker || createFaker(config.seed);
369
- return {
370
- type: prismicT.CustomTypeModelFieldType.Link,
371
- config: {
372
- label: changeCase.capitalCase(faker.word()),
373
- placeholder: changeCase.sentenceCase(faker.words(3)),
374
- select: prismicT.CustomTypeModelLinkSelectType.Document,
375
- customtypes: config.customTypeIDs,
376
- tags: config.tags
377
- }
378
- };
379
- };
380
-
381
- const customType$1 = (config) => {
382
- var _a, _b;
383
- const faker = config.faker || createFaker(config.seed);
384
- let label = config.label || changeCase.capitalCase(faker.words(faker.range(1, 2)));
385
- let id = config.id || changeCase.snakeCase(label);
386
- if (config.id && !config.label) {
387
- label = changeCase.capitalCase(config.id);
388
- } else if (config.label && !config.label) {
389
- id = changeCase.snakeCase(config.label);
390
- }
391
- let json = {};
392
- if ("fields" in config && config.fields) {
393
- json = { Main: config.fields };
394
- } else if ("tabs" in config && config.tabs) {
395
- json = config.tabs;
396
- }
397
- return {
398
- id,
399
- label,
400
- status: (_a = config.status) != null ? _a : faker.boolean(),
401
- repeatable: (_b = config.repeatable) != null ? _b : faker.boolean(),
402
- json
403
- };
404
- };
405
-
406
- const date$1 = (config) => {
407
- const faker = config.faker || createFaker(config.seed);
408
- return {
409
- type: prismicT.CustomTypeModelFieldType.Date,
410
- config: {
411
- label: changeCase.capitalCase(faker.word()),
412
- placeholder: changeCase.sentenceCase(faker.words(3))
413
- }
414
- };
415
- };
416
-
417
- const embed$2 = (config) => {
418
- const faker = config.faker || createFaker(config.seed);
419
- return {
420
- type: prismicT.CustomTypeModelFieldType.Embed,
421
- config: {
422
- label: changeCase.capitalCase(faker.word()),
423
- placeholder: changeCase.sentenceCase(faker.words(3))
424
- }
425
- };
426
- };
427
-
428
- const geoPoint$1 = (config) => {
429
- const faker = config.faker || createFaker(config.seed);
430
- return {
431
- type: prismicT.CustomTypeModelFieldType.GeoPoint,
432
- config: {
433
- label: changeCase.capitalCase(faker.word())
434
- }
435
- };
436
- };
437
-
438
- function group$1(config) {
439
- const faker = config.faker || createFaker(config.seed);
440
- return {
441
- type: prismicT.CustomTypeModelFieldType.Group,
442
- config: {
443
- label: changeCase.capitalCase(faker.word()),
444
- fields: config.fields || {}
445
- }
446
- };
447
- }
448
-
449
- const image$2 = (config) => {
450
- const faker = config.faker || createFaker(config.seed);
451
- const thumbnails = (config.thumbnailNames || []).map((name) => {
452
- return {
453
- name,
454
- width: faker.range(500, 2e3),
455
- height: faker.range(500, 2e3)
456
- };
457
- });
458
- return {
459
- type: prismicT.CustomTypeModelFieldType.Image,
460
- config: {
461
- label: changeCase.capitalCase(faker.word()),
462
- constraint: {
463
- width: config.withConstraint ? faker.range(500, 2e3) : null,
464
- height: config.withConstraint ? faker.range(500, 2e3) : null
465
- },
466
- thumbnails
467
- }
468
- };
469
- };
470
-
471
- const integrationFields$1 = (config) => {
472
- const faker = config.faker || createFaker(config.seed);
473
- return {
474
- type: prismicT.CustomTypeModelFieldType.IntegrationFields,
475
- config: {
476
- label: changeCase.capitalCase(faker.word()),
477
- catalog: config.catalog || changeCase.snakeCase(faker.words(2))
478
- }
479
- };
480
- };
481
-
482
- const keyText$1 = (config) => {
483
- const faker = config.faker || createFaker(config.seed);
484
- return {
485
- type: prismicT.CustomTypeModelFieldType.Text,
486
- config: {
487
- label: changeCase.capitalCase(faker.word()),
488
- placeholder: changeCase.sentenceCase(faker.words(3))
489
- }
490
- };
491
- };
492
-
493
- const link$1 = (config) => {
494
- const faker = config.faker || createFaker(config.seed);
495
- return {
496
- type: prismicT.CustomTypeModelFieldType.Link,
497
- config: {
498
- label: changeCase.capitalCase(faker.word()),
499
- placeholder: changeCase.sentenceCase(faker.words(3)),
500
- select: null,
501
- allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.boolean()) || void 0
502
- }
503
- };
504
- };
505
-
506
- const linkToMedia$1 = (config) => {
507
- const faker = config.faker || createFaker(config.seed);
508
- return {
509
- type: prismicT.CustomTypeModelFieldType.Link,
510
- config: {
511
- label: changeCase.capitalCase(faker.word()),
512
- placeholder: changeCase.sentenceCase(faker.words(3)),
513
- select: prismicT.CustomTypeModelLinkSelectType.Media
514
- }
515
- };
516
- };
517
-
518
- const number$1 = (config) => {
519
- const faker = config.faker || createFaker(config.seed);
520
- return {
521
- type: prismicT.CustomTypeModelFieldType.Number,
522
- config: {
523
- label: changeCase.capitalCase(faker.word()),
524
- placeholder: changeCase.sentenceCase(faker.words(3))
525
- }
526
- };
527
- };
528
-
529
- const richText$1 = (config) => {
530
- var _a;
531
- const faker = config.faker || createFaker(config.seed);
532
- const blockTypes = faker.randomElements([
533
- prismicT.RichTextNodeType.heading1,
534
- prismicT.RichTextNodeType.heading2,
535
- prismicT.RichTextNodeType.heading3,
536
- prismicT.RichTextNodeType.heading4,
537
- prismicT.RichTextNodeType.heading5,
538
- prismicT.RichTextNodeType.heading6,
539
- prismicT.RichTextNodeType.paragraph,
540
- prismicT.RichTextNodeType.preformatted,
541
- prismicT.RichTextNodeType.strong,
542
- prismicT.RichTextNodeType.em,
543
- prismicT.RichTextNodeType.listItem,
544
- prismicT.RichTextNodeType.oListItem,
545
- prismicT.RichTextNodeType.image,
546
- prismicT.RichTextNodeType.embed,
547
- prismicT.RichTextNodeType.hyperlink
548
- ]).join(",");
549
- const blockTypeConfig = ((_a = config.withMultipleBlocks) != null ? _a : faker.boolean()) ? { multi: blockTypes } : { single: blockTypes };
550
- return {
551
- type: prismicT.CustomTypeModelFieldType.StructuredText,
552
- config: {
553
- label: changeCase.capitalCase(faker.word()),
554
- placeholder: changeCase.sentenceCase(faker.words(3)),
555
- allowTargetBlank: faker.boolean() ? true : void 0,
556
- ...blockTypeConfig
557
- }
558
- };
559
- };
560
-
561
- const select$1 = (config) => {
562
- const faker = config.faker || createFaker(config.seed);
563
- return {
564
- type: prismicT.CustomTypeModelFieldType.Select,
565
- config: {
566
- label: changeCase.capitalCase(faker.word()),
567
- placeholder: changeCase.sentenceCase(faker.words(3)),
568
- options: config.options || [],
569
- default_value: config.defaultValue || void 0
570
- }
571
- };
572
- };
573
-
574
- const sharedSlice$1 = (config) => {
575
- const faker = config.faker || createFaker(config.seed);
576
- let name = config.name || changeCase.capitalCase(faker.words(faker.range(1, 2)));
577
- let id = config.id || changeCase.snakeCase(name);
578
- if (config.id && !config.name) {
579
- name = changeCase.pascalCase(config.id);
580
- } else if (config.name && !config.name) {
581
- id = changeCase.snakeCase(config.name);
582
- }
583
- return {
584
- type: prismicT.CustomTypeModelSliceType.SharedSlice,
585
- id,
586
- name,
587
- description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
588
- variations: config.variations || []
589
- };
590
- };
591
-
592
- const sharedSliceChoice = () => {
593
- return {
594
- type: prismicT.CustomTypeModelSliceType.SharedSlice
595
- };
596
- };
597
-
598
- const dataSet$1 = [
599
- {
600
- url: "https://images.unsplash.com/photo-1604537529428-15bcbeecfe4d",
601
- width: 4240,
602
- height: 2832
603
- },
604
- {
605
- url: "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05",
606
- width: 7372,
607
- height: 4392
608
- },
609
- {
610
- url: "https://images.unsplash.com/photo-1441974231531-c6227db76b6e",
611
- width: 2560,
612
- height: 1705
613
- },
614
- {
615
- url: "https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5",
616
- width: 2200,
617
- height: 1467
618
- },
619
- {
620
- url: "https://images.unsplash.com/photo-1426604966848-d7adac402bff",
621
- width: 5616,
622
- height: 3744
623
- },
624
- {
625
- url: "https://images.unsplash.com/photo-1604537466608-109fa2f16c3b",
626
- width: 4240,
627
- height: 2832
628
- },
629
- {
630
- url: "https://images.unsplash.com/photo-1497436072909-60f360e1d4b1",
631
- width: 2560,
632
- height: 1440
633
- },
634
- {
635
- url: "https://images.unsplash.com/reserve/HgZuGu3gSD6db21T3lxm_San%20Zenone.jpg",
636
- width: 6373,
637
- height: 4253
638
- },
639
- {
640
- url: "https://images.unsplash.com/photo-1504198266287-1659872e6590",
641
- width: 4272,
642
- height: 2848
643
- },
644
- {
645
- url: "https://images.unsplash.com/photo-1470770903676-69b98201ea1c",
646
- width: 4554,
647
- height: 3036
648
- },
649
- {
650
- url: "https://images.unsplash.com/photo-1587502537745-84b86da1204f",
651
- width: 6550,
652
- height: 4367
653
- },
654
- {
655
- url: "https://images.unsplash.com/photo-1431794062232-2a99a5431c6c",
656
- width: 6e3,
657
- height: 4e3
658
- },
659
- {
660
- url: "https://images.unsplash.com/photo-1446329813274-7c9036bd9a1f",
661
- width: 6e3,
662
- height: 4e3
663
- },
664
- {
665
- url: "https://images.unsplash.com/photo-1504567961542-e24d9439a724",
666
- width: 4608,
667
- height: 3456
668
- },
669
- {
670
- url: "https://images.unsplash.com/photo-1444464666168-49d633b86797",
671
- width: 4844,
672
- height: 3234
673
- },
674
- {
675
- url: "https://images.unsplash.com/photo-1553531384-397c80973a0b",
676
- width: 4335,
677
- height: 6502
678
- }
679
- ];
680
- const getMockImageData = (config) => {
681
- const faker = config.faker || createFaker(config.seed);
682
- return faker.randomElement(dataSet$1);
683
- };
684
-
685
- const sharedSliceVariation$1 = (config) => {
686
- const faker = config.faker || createFaker(config.seed);
687
- let name = config.name || changeCase.capitalCase(faker.words(faker.range(1, 2)));
688
- let id = config.id || changeCase.snakeCase(name);
689
- if (config.id && !config.name) {
690
- name = changeCase.pascalCase(config.id);
691
- } else if (config.name && !config.name) {
692
- id = changeCase.snakeCase(config.name);
693
- }
694
- const imageData = getMockImageData({ faker });
695
- return {
696
- id,
697
- name,
698
- description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
699
- docURL: faker.url(),
700
- version: faker.hash(7),
701
- primary: config.primaryFields || {},
702
- items: config.itemsFields || {},
703
- imageUrl: imageData.url
704
- };
705
- };
706
-
707
- const slice$1 = (config) => {
708
- const faker = config.faker || createFaker(config.seed);
709
- return {
710
- type: prismicT.CustomTypeModelSliceType.Slice,
711
- icon: changeCase.snakeCase(faker.word()),
712
- display: faker.boolean() ? prismicT.CustomTypeModelSliceDisplay.Grid : prismicT.CustomTypeModelSliceDisplay.List,
713
- fieldset: changeCase.capitalCase(faker.words(2)),
714
- description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
715
- repeat: config.repeatFields || {},
716
- "non-repeat": config.nonRepeatFields || {}
717
- };
718
- };
719
-
720
- const sliceZone$1 = (config) => {
721
- const labels = {};
722
- for (const choiceId in config.choices) {
723
- const choice = config.choices[choiceId];
724
- if (choice.type === prismicT.CustomTypeModelSliceType.Slice) {
725
- labels[choiceId] = [];
726
- }
727
- }
728
- return {
729
- type: prismicT.CustomTypeModelFieldType.Slices,
730
- fieldset: "Slice zone",
731
- config: {
732
- labels,
733
- choices: config.choices || {}
734
- }
735
- };
736
- };
737
-
738
- const timestamp$1 = (config) => {
739
- const faker = config.faker || createFaker(config.seed);
740
- return {
741
- type: prismicT.CustomTypeModelFieldType.Timestamp,
742
- config: {
743
- label: changeCase.capitalCase(faker.word()),
744
- placeholder: changeCase.sentenceCase(faker.words(3))
745
- }
746
- };
747
- };
748
-
749
- const title$1 = (config) => {
750
- const faker = config.faker || createFaker(config.seed);
751
- const single = faker.randomElements([
752
- "heading1",
753
- "heading2",
754
- "heading3",
755
- "heading4",
756
- "heading5",
757
- "heading6"
758
- ]).join(",");
759
- return {
760
- type: prismicT.CustomTypeModelFieldType.StructuredText,
761
- config: {
762
- label: changeCase.capitalCase(faker.word()),
763
- placeholder: changeCase.sentenceCase(faker.words(3)),
764
- single,
765
- allowTargetBlank: faker.boolean() || void 0
766
- }
767
- };
768
- };
769
-
770
- const uid$1 = (config) => {
771
- const faker = config.faker || createFaker(config.seed);
772
- return {
773
- type: prismicT.CustomTypeModelFieldType.UID,
774
- config: {
775
- label: changeCase.capitalCase(faker.word()),
776
- placeholder: changeCase.sentenceCase(faker.words(3))
777
- }
778
- };
779
- };
780
-
781
- const generateFieldId = (config) => {
782
- const faker = config.faker || createFaker(config.seed);
783
- return changeCase.snakeCase(faker.words(faker.range(1, 3)));
784
- };
785
-
786
- const mockModelFns = {
787
- boolean,
788
- color: color$1,
789
- contentRelationship: contentRelationship$1,
790
- date: date$1,
791
- embed: embed$2,
792
- geoPoint: geoPoint$1,
793
- image: image$2,
794
- integrationFields: integrationFields$1,
795
- keyText: keyText$1,
796
- link: link$1,
797
- linkToMedia: linkToMedia$1,
798
- number: number$1,
799
- richText: richText$1,
800
- select: select$1,
801
- timestamp: timestamp$1,
802
- title: title$1
803
- };
804
- const buildMockGroupFieldMap = (config) => {
805
- const faker = config.faker || createFaker(config.seed);
806
- const fields = {};
807
- const fieldTypes = faker.randomElements(Object.keys(mockModelFns));
808
- for (const fieldType of fieldTypes) {
809
- const fieldId = generateFieldId({ faker });
810
- const mockModelFn = mockModelFns[fieldType];
811
- fields[fieldId] = mockModelFn({ faker });
812
- }
813
- return fields;
814
- };
815
-
816
- const createModelMockFactory = (...args) => {
817
- return new ModelMockFactory(...args);
818
- };
819
- class ModelMockFactory {
820
- constructor(config) {
821
- this.faker = "faker" in config ? config.faker : createFaker(config.seed);
822
- }
823
- get seed() {
824
- return this.faker.seed;
825
- }
826
- buildMockGroupFieldMap(config) {
827
- return buildMockGroupFieldMap({ ...config, faker: this.faker });
828
- }
829
- boolean(config) {
830
- return boolean({ ...config, faker: this.faker });
831
- }
832
- color(config) {
833
- return color$1({ ...config, faker: this.faker });
834
- }
835
- contentRelationship(config) {
836
- return contentRelationship$1({ ...config, faker: this.faker });
837
- }
838
- customType(config) {
839
- return customType$1({ ...config, faker: this.faker });
840
- }
841
- date(config) {
842
- return date$1({ ...config, faker: this.faker });
843
- }
844
- embed(config) {
845
- return embed$2({ ...config, faker: this.faker });
846
- }
847
- geoPoint(config) {
848
- return geoPoint$1({ ...config, faker: this.faker });
849
- }
850
- group(config) {
851
- return group$1({ ...config, faker: this.faker });
852
- }
853
- image(config) {
854
- return image$2({ ...config, faker: this.faker });
855
- }
856
- integrationFields(config) {
857
- return integrationFields$1({ ...config, faker: this.faker });
858
- }
859
- keyText(config) {
860
- return keyText$1({ ...config, faker: this.faker });
861
- }
862
- link(config) {
863
- return link$1({ ...config, faker: this.faker });
864
- }
865
- linkToMedia(config) {
866
- return linkToMedia$1({ ...config, faker: this.faker });
867
- }
868
- number(config) {
869
- return number$1({ ...config, faker: this.faker });
870
- }
871
- richText(config) {
872
- return richText$1({ ...config, faker: this.faker });
873
- }
874
- select(config) {
875
- return select$1({ ...config, faker: this.faker });
876
- }
877
- sharedSlice(config) {
878
- return sharedSlice$1({ ...config, faker: this.faker });
879
- }
880
- sharedSliceChoice() {
881
- return sharedSliceChoice();
882
- }
883
- sharedSliceVariation(config) {
884
- return sharedSliceVariation$1({ ...config, faker: this.faker });
885
- }
886
- slice(config) {
887
- return slice$1({ ...config, faker: this.faker });
888
- }
889
- sliceZone(config) {
890
- return sliceZone$1({ ...config, faker: this.faker });
891
- }
892
- timestamp(config) {
893
- return timestamp$1({ ...config, faker: this.faker });
894
- }
895
- title(config) {
896
- return title$1({ ...config, faker: this.faker });
897
- }
898
- uid(config) {
899
- return uid$1({ ...config, faker: this.faker });
900
- }
901
- }
902
-
903
- var index$2 = /*#__PURE__*/Object.freeze({
904
- __proto__: null,
905
- boolean: boolean,
906
- color: color$1,
907
- contentRelationship: contentRelationship$1,
908
- customType: customType$1,
909
- date: date$1,
910
- embed: embed$2,
911
- geoPoint: geoPoint$1,
912
- group: group$1,
913
- image: image$2,
914
- integrationFields: integrationFields$1,
915
- keyText: keyText$1,
916
- link: link$1,
917
- linkToMedia: linkToMedia$1,
918
- number: number$1,
919
- richText: richText$1,
920
- select: select$1,
921
- sharedSlice: sharedSlice$1,
922
- sharedSliceChoice: sharedSliceChoice,
923
- sharedSliceVariation: sharedSliceVariation$1,
924
- slice: slice$1,
925
- sliceZone: sliceZone$1,
926
- timestamp: timestamp$1,
927
- title: title$1,
928
- uid: uid$1,
929
- buildMockGroupFieldMap: buildMockGroupFieldMap,
930
- createModelFactory: createModelMockFactory
931
- });
932
-
933
- const timestamp = (config) => {
934
- const faker = config.faker || createFaker(config.seed);
935
- if (config.state === "empty") {
936
- return null;
937
- } else {
938
- let date;
939
- const after = config.after ? new Date(config.after.toISOString().split("T")[0]) : void 0;
940
- const before = config.before ? new Date(config.before.toISOString().split("T")[0]) : void 0;
941
- if (after && before) {
942
- date = faker.dateBetween(after, before);
943
- } else if (after) {
944
- date = faker.dateAfter(after);
945
- } else if (before) {
946
- date = faker.dateBefore(before);
947
- } else {
948
- date = faker.date();
949
- }
950
- return date.toISOString();
951
- }
952
- };
953
-
954
- const buildAlternativeLanguage = (config) => {
955
- return {
956
- id: config.document.id,
957
- type: config.document.type,
958
- lang: config.document.lang,
959
- uid: config.document.uid || void 0
960
- };
961
- };
962
-
963
- const customType = (config) => {
964
- var _a;
965
- const faker = config.faker || createFaker(config.seed);
966
- const model = config.model || customType$1({ faker });
967
- const fieldModelsMap = Object.assign({}, ...Object.values(model.json));
968
- const dataFieldModelsMap = {};
969
- for (const key in fieldModelsMap) {
970
- const fieldModel = fieldModelsMap[key];
971
- if (fieldModel.type !== prismicT.CustomTypeModelFieldType.UID) {
972
- dataFieldModelsMap[key] = fieldModel;
973
- }
974
- }
975
- const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismicT.CustomTypeModelFieldType.UID);
976
- const withURL = (_a = config.withURL) != null ? _a : true;
977
- const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => buildAlternativeLanguage({
978
- document: alternateLanguageDocument
979
- }));
980
- return {
981
- type: model.id,
982
- id: faker.hash(7),
983
- uid: hasUID ? changeCase.snakeCase(faker.words(faker.range(1, 3))) : null,
984
- url: withURL ? faker.url() : null,
985
- href: faker.url(),
986
- lang: faker.word(),
987
- tags: generateTags({ faker }),
988
- slugs: [],
989
- linked_documents: [],
990
- alternate_languages: alternateLanguages,
991
- first_publication_date: timestamp({ faker }),
992
- last_publication_date: timestamp({ faker }),
993
- data: valueForModelMap({
994
- faker,
995
- map: dataFieldModelsMap,
996
- configs: config.configs
997
- })
998
- };
999
- };
1000
-
1001
- const color = (config) => {
1002
- const faker = config.faker || createFaker(config.seed);
1003
- return config.state === "empty" ? null : faker.hexColor().toUpperCase();
1004
- };
1005
-
1006
- const buildContentRelationshipField = (config) => {
1007
- return {
1008
- link_type: prismicT.LinkType.Document,
1009
- id: config.document.id,
1010
- uid: config.document.uid || void 0,
1011
- type: config.document.type,
1012
- tags: config.document.tags,
1013
- lang: config.document.lang,
1014
- url: config.document.url || void 0,
1015
- slug: config.document.slugs[0],
1016
- isBroken: false
1017
- };
1018
- };
1019
-
1020
- const generateCustomTypeId = (config) => {
1021
- const faker = config.faker || createFaker(config.seed);
1022
- return changeCase.snakeCase(faker.words(faker.range(1, 3)));
1023
- };
1024
-
1025
- const contentRelationship = (config) => {
1026
- var _a, _b;
1027
- const faker = config.faker || createFaker(config.seed);
1028
- if (config.state === "empty") {
1029
- return {
1030
- link_type: prismicT.LinkType.Document
1031
- };
1032
- } else {
1033
- const model = config.model || contentRelationship$1({ faker });
1034
- const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document2) => {
1035
- var _a2, _b2;
1036
- let shouldKeep = true;
1037
- if ((_a2 = model.config) == null ? void 0 : _a2.customtypes) {
1038
- shouldKeep = shouldKeep && model.config.customtypes.includes(document2.type);
1039
- }
1040
- if ((_b2 = model.config) == null ? void 0 : _b2.tags) {
1041
- shouldKeep = shouldKeep && model.config.tags.some((tag) => document2.tags.includes(tag));
1042
- }
1043
- return shouldKeep;
1044
- }) : [
1045
- {
1046
- ...customType({ faker }),
1047
- type: ((_a = model.config) == null ? void 0 : _a.customtypes) ? faker.randomElement(model.config.customtypes) : generateCustomTypeId({ faker }),
1048
- tags: ((_b = model.config) == null ? void 0 : _b.tags) ? faker.randomElements(model.config.tags) : generateTags({ faker })
1049
- }
1050
- ];
1051
- const document = faker.randomElement(linkableDocuments);
1052
- if (!document) {
1053
- throw new Error("A linkable document could not be found.");
1054
- }
1055
- return buildContentRelationshipField({
1056
- document
1057
- });
1058
- }
1059
- };
1060
-
1061
- const date = (config) => {
1062
- const faker = config.faker || createFaker(config.seed);
1063
- return config.state === "empty" ? null : timestamp({
1064
- faker,
1065
- after: config.after,
1066
- before: config.before,
1067
- state: "filled"
1068
- }).split("T")[0];
1069
- };
1070
-
1071
- const buildEmbedField = (config) => {
1072
- var _a;
1073
- const faker = config.faker || createFaker(config.seed);
1074
- return {
1075
- embed_url: (_a = config.url) != null ? _a : faker.url(),
1076
- html: `<div>embed html</div>`,
1077
- ...config.data
1078
- };
1079
- };
1080
-
1081
- const dataSet = [
1082
- {
1083
- version: "1.0",
1084
- type: "video",
1085
- embed_url: "https://www.youtube.com/embed/fiOwHYFkUz0",
1086
- thumbnail_url: "https://i.ytimg.com/vi/fiOwHYFkUz0/hqdefault.jpg",
1087
- thumbnail_height: 360,
1088
- thumbnail_width: 480,
1089
- html: '<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>',
1090
- width: 200,
1091
- height: 113
1092
- },
1093
- {
1094
- version: "1.0",
1095
- type: "video",
1096
- embed_url: "https://www.youtube.com/embed/c-ATzcy6VkI",
1097
- thumbnail_url: "https://i.ytimg.com/vi/c-ATzcy6VkI/hqdefault.jpg",
1098
- thumbnail_height: 360,
1099
- thumbnail_width: 480,
1100
- html: '<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>',
1101
- width: 200,
1102
- height: 113
1103
- },
1104
- {
1105
- version: "1.0",
1106
- type: "video",
1107
- embed_url: "https://www.youtube.com/watch?v=fiOwHYFkUz0",
1108
- thumbnail_url: "https://i.ytimg.com/vi/iewZXv94XGY/hqdefault.jpg",
1109
- thumbnail_height: 360,
1110
- thumbnail_width: 480,
1111
- html: '<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>',
1112
- width: 200,
1113
- height: 113
1114
- },
1115
- {
1116
- version: "1.0",
1117
- type: "rich",
1118
- embed_url: "https://twitter.com/prismicio/status/1356293316158095361",
1119
- thumbnail_url: null,
1120
- thumbnail_height: null,
1121
- thumbnail_width: null,
1122
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Gatsby is a popular choice for Prismic users and we work hard on delivering a CMS that plays to its strengths.<br><br>But, what makes <a href="https://twitter.com/GatsbyJS?ref_src=twsrc%5Etfw">@GatsbyJS</a> so popular?<br><br>Here are some of <a href="https://twitter.com/mxstbr?ref_src=twsrc%5Etfw">@mxstbr</a>&#39;s thoughts on Gatsby&#39;s success and how they&#39;re improving developer experience.<a href="https://t.co/ZjCPvsWWUD">https://t.co/ZjCPvsWWUD</a> <a href="https://t.co/EQqzJpeNKl">pic.twitter.com/EQqzJpeNKl</a></p>&mdash; Prismic (@prismicio) <a href="https://twitter.com/prismicio/status/1356293316158095361?ref_src=twsrc%5Etfw">February 1, 2021</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n',
1123
- width: 200,
1124
- height: 113
1125
- },
1126
- {
1127
- type: "rich",
1128
- version: "1.0",
1129
- embed_url: "https://twitter.com/timbenniks/status/1304146886832594944",
1130
- thumbnail_url: null,
1131
- thumbnail_width: null,
1132
- thumbnail_height: null,
1133
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I\u2019ve been diving deep on <a href="https://twitter.com/prismicio?ref_src=twsrc%5Etfw">@prismicio</a> <a href="https://twitter.com/hashtag/slicemachine?src=hash&amp;ref_src=twsrc%5Etfw">#slicemachine</a> today. I made all my own components and I used custom slices. It works like a charm with <a href="https://twitter.com/nuxt_js?ref_src=twsrc%5Etfw">@nuxt_js</a>. Also: I\u2019m coding with this view. <a href="https://t.co/F0I8X9gz39">pic.twitter.com/F0I8X9gz39</a></p>&mdash; Tim Benniks (@timbenniks) <a href="https://twitter.com/timbenniks/status/1304146886832594944?ref_src=twsrc%5Etfw">September 10, 2020</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n',
1134
- width: 200,
1135
- height: 113
1136
- },
1137
- {
1138
- version: "1.0",
1139
- type: "rich",
1140
- embed_url: "https://twitter.com/prismicio/status/1354112310252630016",
1141
- thumbnail_url: null,
1142
- thumbnail_width: null,
1143
- thumbnail_height: null,
1144
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">We&#39;re launching a new <a href="https://twitter.com/hashtag/SliceContest?src=hash&amp;ref_src=twsrc%5Etfw">#SliceContest</a> tomorrow along with Slice Machine upgrades.<br><br>Want to know more? Join us at tomorrow&#39;s Product Meet-up\u{1F447}<a href="https://t.co/prYSypiAvB">https://t.co/prYSypiAvB</a><br><br>We can&#39;t tell you any further details for now, but here&#39;s a sneak peek at the prizes\u{1F440} <a href="https://t.co/fV1eoGlEBh">pic.twitter.com/fV1eoGlEBh</a></p>&mdash; Prismic (@prismicio) <a href="https://twitter.com/prismicio/status/1354112310252630016?ref_src=twsrc%5Etfw">January 26, 2021</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n',
1145
- width: 200,
1146
- height: 113
1147
- },
1148
- {
1149
- version: "1.0",
1150
- type: "rich",
1151
- embed_url: "https://twitter.com/prismicio/status/1354835716430319617",
1152
- thumbnail_url: null,
1153
- thumbnail_width: null,
1154
- thumbnail_height: null,
1155
- html: '<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Does anyone want to create a wildly popular website for discussing &#39;Wall Street Bets&#39; using Prismic?<br><br>It may or may not have to look a lot like <a href="https://twitter.com/hashtag/reddit?src=hash&amp;ref_src=twsrc%5Etfw">#reddit</a> and we won&#39;t make it private.<br><br>Just asking for some friends...</p>&mdash; Prismic (@prismicio) <a href="https://twitter.com/prismicio/status/1354835716430319617?ref_src=twsrc%5Etfw">January 28, 2021</a></blockquote>\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"><\/script>\n',
1156
- width: 200,
1157
- height: 113
1158
- }
1159
- ];
1160
- const getMockEmbedData = (config) => {
1161
- const faker = config.faker || createFaker(config.seed);
1162
- return faker.randomElement(dataSet);
1163
- };
1164
-
1165
- const embed$1 = (config) => {
1166
- var _a, _b, _c;
1167
- const faker = config.faker || createFaker(config.seed);
1168
- const data = (_a = config.data) != null ? _a : getMockEmbedData({ faker });
1169
- return config.state === "empty" ? {} : buildEmbedField({
1170
- faker,
1171
- url: (_b = config.url) != null ? _b : "embed_url" in data ? data.embed_url : void 0,
1172
- html: (_c = config.html) != null ? _c : "html" in data ? data.html : void 0,
1173
- data
1174
- });
1175
- };
1176
-
1177
- const geoPoint = (config) => {
1178
- const faker = config.faker || createFaker(config.seed);
1179
- return config.state === "empty" ? {} : {
1180
- longitude: faker.rangeFloat(-180, 180),
1181
- latitude: faker.rangeFloat(-90, 90)
1182
- };
1183
- };
1184
-
1185
- const group = (config) => {
1186
- var _a;
1187
- if (config.state === "empty") {
1188
- return [];
1189
- } else {
1190
- const faker = config.faker || createFaker(config.seed);
1191
- const model = config.model || group$1({ faker });
1192
- const itemsCount = (_a = config.itemsCount) != null ? _a : faker.range(1, 6);
1193
- return Array(itemsCount).fill(void 0).map(() => {
1194
- var _a2;
1195
- return valueForModelMap({
1196
- faker,
1197
- map: ((_a2 = model.config) == null ? void 0 : _a2.fields) || {},
1198
- configs: config.configs
1199
- });
1200
- });
1201
- }
1202
- };
1203
-
1204
- const buildImageFieldImage = (config) => {
1205
- var _a, _b, _c, _d;
1206
- if (config.state === "empty") {
1207
- return {
1208
- url: null,
1209
- dimensions: null,
1210
- alt: null,
1211
- copyright: null
1212
- };
1213
- } else {
1214
- const faker = config.faker || createFaker(config.seed);
1215
- const url = new URL(config.imageData.url);
1216
- const dimensions = {
1217
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
1218
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
1219
- };
1220
- url.searchParams.set("w", dimensions.width.toString());
1221
- url.searchParams.set("h", dimensions.height.toString());
1222
- url.searchParams.set("fit", "crop");
1223
- return {
1224
- url: url.toString(),
1225
- dimensions,
1226
- alt: changeCase.sentenceCase(faker.words(faker.range(5, 15))),
1227
- copyright: changeCase.sentenceCase(faker.words(faker.range(5, 15)))
1228
- };
1229
- }
1230
- };
1231
-
1232
- const image$1 = (config) => {
1233
- var _a, _b;
1234
- const faker = config.faker || createFaker(config.seed);
1235
- const model = config.model || image$2({ faker });
1236
- const imageData = getMockImageData({ faker });
1237
- const value = buildImageFieldImage({
1238
- faker,
1239
- imageData,
1240
- constraint: (_a = model.config) == null ? void 0 : _a.constraint,
1241
- state: config.state
1242
- });
1243
- if ((_b = model.config) == null ? void 0 : _b.thumbnails) {
1244
- for (const thumbnail of model.config.thumbnails) {
1245
- value[thumbnail.name] = buildImageFieldImage({
1246
- faker,
1247
- imageData,
1248
- constraint: {
1249
- width: thumbnail.width,
1250
- height: thumbnail.height
1251
- },
1252
- state: config.state
1253
- });
1254
- }
1255
- }
1256
- return value;
1257
- };
1258
-
1259
- const integrationFields = (config) => {
1260
- var _a;
1261
- const data = (_a = config.data) != null ? _a : {};
1262
- return config.state === "empty" ? null : data;
1263
- };
1264
-
1265
- const keyText = (config) => {
1266
- const faker = config.faker || createFaker(config.seed);
1267
- return config.state === "empty" ? null : changeCase.sentenceCase(faker.words(3));
1268
- };
1269
-
1270
- const linkToMedia = (config) => {
1271
- const faker = config.faker || createFaker(config.seed);
1272
- if (config.state === "empty") {
1273
- return {
1274
- link_type: prismicT.LinkType.Media
1275
- };
1276
- } else {
1277
- return {
1278
- link_type: prismicT.LinkType.Media,
1279
- name: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,
1280
- kind: changeCase.snakeCase(faker.word()),
1281
- url: faker.url(),
1282
- size: faker.range(500, 3e3).toString(),
1283
- height: faker.range(500, 3e3).toString(),
1284
- width: faker.range(500, 3e3).toString()
1285
- };
1286
- }
1287
- };
1288
-
1289
- const link = (config) => {
1290
- var _a, _b;
1291
- const faker = config.faker || createFaker(config.seed);
1292
- const type = config.type || faker.randomElement([
1293
- prismicT.LinkType.Web,
1294
- prismicT.LinkType.Document,
1295
- prismicT.LinkType.Media
1296
- ]);
1297
- if (config.state === "empty") {
1298
- return {
1299
- link_type: type
1300
- };
1301
- } else {
1302
- switch (type) {
1303
- case prismicT.LinkType.Document: {
1304
- return contentRelationship({
1305
- faker,
1306
- state: config.state,
1307
- linkableDocuments: config.linkableDocuments
1308
- });
1309
- }
1310
- case prismicT.LinkType.Media: {
1311
- return linkToMedia({
1312
- faker,
1313
- state: config.state
1314
- });
1315
- }
1316
- case prismicT.LinkType.Web:
1317
- default: {
1318
- const model = config.model || link$1({ faker });
1319
- return {
1320
- link_type: prismicT.LinkType.Web,
1321
- url: faker.url(),
1322
- target: ((_b = config.withTargetBlank) != null ? _b : ((_a = model.config) == null ? void 0 : _a.allowTargetBlank) && faker.boolean()) ? "_blank" : void 0
1323
- };
1324
- }
1325
- }
1326
- }
1327
- };
1328
-
1329
- const number = (config) => {
1330
- const faker = config.faker || createFaker(config.seed);
1331
- return config.state === "empty" ? null : faker.range(1, 100);
1332
- };
1333
-
1334
- const patterns$5 = {
1335
- short: {
1336
- minWords: 1,
1337
- maxWords: 3
1338
- },
1339
- medium: {
1340
- minWords: 3,
1341
- maxWords: 6
1342
- },
1343
- long: {
1344
- minWords: 6,
1345
- maxWords: 12
1346
- }
1347
- };
1348
- const headingNoteTypes = [
1349
- prismicT.RichTextNodeType.heading1,
1350
- prismicT.RichTextNodeType.heading2,
1351
- prismicT.RichTextNodeType.heading3,
1352
- prismicT.RichTextNodeType.heading4,
1353
- prismicT.RichTextNodeType.heading5,
1354
- prismicT.RichTextNodeType.heading6
1355
- ];
1356
- const heading = (config) => {
1357
- const faker = config.faker || createFaker(config.seed);
1358
- const model = config.model || title$1({ faker });
1359
- let types = [];
1360
- if (model.config) {
1361
- if ("single" in model.config && model.config.single) {
1362
- types = model.config.single.split(",").filter((type2) => headingNoteTypes.includes(type2));
1363
- } else if ("multi" in model.config && model.config.multi) {
1364
- types = model.config.multi.split(",").filter((type2) => headingNoteTypes.includes(type2));
1365
- }
1366
- }
1367
- const type = faker.randomElement(types);
1368
- if (type) {
1369
- const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$5));
1370
- const pattern = patterns$5[patternKey];
1371
- return {
1372
- type,
1373
- text: changeCase.capitalCase(faker.words(faker.range(pattern.minWords, pattern.maxWords))),
1374
- spans: []
1375
- };
1376
- } else {
1377
- return void 0;
1378
- }
1379
- };
1380
-
1381
- const patterns$4 = {
1382
- short: {
1383
- sentenceCount: 2
1384
- },
1385
- medium: {
1386
- sentenceCount: 6
1387
- },
1388
- long: {
1389
- sentenceCount: 12
1390
- }
1391
- };
1392
- const paragraph = (config) => {
1393
- const faker = config.faker || createFaker(config.seed);
1394
- const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$4));
1395
- const pattern = patterns$4[patternKey];
1396
- const text = Array.from({ length: pattern.sentenceCount }, () => changeCase.sentenceCase(faker.words(faker.range(5, 15))) + ".").join(" ");
1397
- return {
1398
- type: prismicT.RichTextNodeType.paragraph,
1399
- text,
1400
- spans: []
1401
- };
1402
- };
1403
-
1404
- const patterns$3 = {
1405
- short: {
1406
- sentenceCount: 2
1407
- },
1408
- medium: {
1409
- sentenceCount: 6
1410
- },
1411
- long: {
1412
- sentenceCount: 12
1413
- }
1414
- };
1415
- const preformatted = (config) => {
1416
- const faker = config.faker || createFaker(config.seed);
1417
- const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$3));
1418
- const pattern = patterns$3[patternKey];
1419
- const text = Array.from({ length: pattern.sentenceCount }, () => changeCase.sentenceCase(faker.words(faker.range(5, 15))) + ".").join(" ");
1420
- return {
1421
- type: prismicT.RichTextNodeType.preformatted,
1422
- text,
1423
- spans: []
1424
- };
1425
- };
1426
-
1427
- const patterns$2 = {
1428
- short: {
1429
- minItems: 1,
1430
- maxItems: 3
1431
- },
1432
- medium: {
1433
- minItems: 3,
1434
- maxItems: 6
1435
- },
1436
- long: {
1437
- minItems: 6,
1438
- maxItems: 12
1439
- }
1440
- };
1441
- const list = (config) => {
1442
- const faker = config.faker || createFaker(config.seed);
1443
- const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$2));
1444
- const pattern = patterns$2[patternKey];
1445
- const itemsCount = faker.range(pattern.minItems, pattern.maxItems);
1446
- return Array(itemsCount).fill(void 0).map(() => {
1447
- return {
1448
- type: prismicT.RichTextNodeType.listItem,
1449
- text: changeCase.sentenceCase(faker.words(faker.range(5, 15))),
1450
- spans: []
1451
- };
1452
- });
1453
- };
1454
-
1455
- const patterns$1 = {
1456
- short: {
1457
- minItems: 1,
1458
- maxItems: 3
1459
- },
1460
- medium: {
1461
- minItems: 3,
1462
- maxItems: 6
1463
- },
1464
- long: {
1465
- minItems: 6,
1466
- maxItems: 12
1467
- }
1468
- };
1469
- const oList = (config) => {
1470
- const faker = config.faker || createFaker(config.seed);
1471
- const patternKey = config.pattern || faker.randomElement(Object.keys(patterns$1));
1472
- const pattern = patterns$1[patternKey];
1473
- const itemsCount = faker.range(pattern.minItems, pattern.maxItems);
1474
- return Array(itemsCount).fill(void 0).map(() => {
1475
- return {
1476
- type: prismicT.RichTextNodeType.oListItem,
1477
- text: changeCase.sentenceCase(faker.words(faker.range(5, 15))),
1478
- spans: []
1479
- };
1480
- });
1481
- };
1482
-
1483
- const image = (config) => {
1484
- const faker = config.faker || createFaker(config.seed);
1485
- const imageData = getMockImageData({ faker });
1486
- const imageField = buildImageFieldImage({
1487
- faker,
1488
- imageData,
1489
- state: "filled"
1490
- });
1491
- return {
1492
- type: prismicT.RichTextNodeType.image,
1493
- alt: imageField.alt,
1494
- url: imageField.url,
1495
- copyright: imageField.copyright,
1496
- dimensions: imageField.dimensions
1497
- };
1498
- };
1499
-
1500
- const embed = (config) => {
1501
- const faker = config.faker || createFaker(config.seed);
1502
- const data = getMockEmbedData({ faker });
1503
- const embedField = buildEmbedField({ faker, data });
1504
- return {
1505
- type: prismicT.RichTextNodeType.embed,
1506
- oembed: embedField
1507
- };
1508
- };
1509
-
1510
- const patterns = {
1511
- short: {
1512
- blockCountMin: 1,
1513
- blockCountMax: 2
1514
- },
1515
- medium: {
1516
- blockCountMin: 2,
1517
- blockCountMax: 4
1518
- },
1519
- long: {
1520
- blockCountMin: 4,
1521
- blockCountMax: 8
1522
- }
1523
- };
1524
- const generators = {
1525
- [prismicT.RichTextNodeType.heading1]: heading,
1526
- [prismicT.RichTextNodeType.heading2]: heading,
1527
- [prismicT.RichTextNodeType.heading3]: heading,
1528
- [prismicT.RichTextNodeType.heading4]: heading,
1529
- [prismicT.RichTextNodeType.heading5]: heading,
1530
- [prismicT.RichTextNodeType.heading6]: heading,
1531
- [prismicT.RichTextNodeType.paragraph]: paragraph,
1532
- [prismicT.RichTextNodeType.preformatted]: preformatted,
1533
- [prismicT.RichTextNodeType.listItem]: list,
1534
- [prismicT.RichTextNodeType.oListItem]: oList,
1535
- [prismicT.RichTextNodeType.image]: image,
1536
- [prismicT.RichTextNodeType.embed]: embed
1537
- };
1538
- const richText = (config) => {
1539
- const faker = config.faker || createFaker(config.seed);
1540
- if (config.state === "empty") {
1541
- return [];
1542
- } else {
1543
- const model = config.model || richText$1({
1544
- faker,
1545
- withMultipleBlocks: true
1546
- });
1547
- const supportsMultipleBlocks = model.config && "multi" in model.config;
1548
- let types = [];
1549
- if (model.config) {
1550
- if ("multi" in model.config && model.config.multi) {
1551
- types = model.config.multi.split(",").filter((type) => Object.keys(generators).includes(type));
1552
- } else if ("single" in model.config && model.config.single) {
1553
- types = model.config.single.split(",").filter((type) => Object.keys(generators).includes(type));
1554
- }
1555
- }
1556
- if (types.length > 0) {
1557
- const patternKey = config.pattern || faker.randomElement(Object.keys(patterns));
1558
- const pattern = patterns[patternKey];
1559
- const blockCount = supportsMultipleBlocks ? faker.range(pattern.blockCountMin, pattern.blockCountMax) : 1;
1560
- return Array(blockCount).fill(void 0).map(() => {
1561
- const type = faker.randomElement(types);
1562
- const generator = generators[type];
1563
- return generator({ faker, model });
1564
- }).flat().filter((block) => block !== void 0).slice(0, blockCount);
1565
- } else {
1566
- return [];
1567
- }
1568
- }
1569
- };
1570
-
1571
- const select = (config) => {
1572
- var _a, _b;
1573
- const faker = config.faker || createFaker(config.seed);
1574
- const model = config.model || select$1({ faker });
1575
- const defaultValue = (_a = model.config) == null ? void 0 : _a.default_value;
1576
- const options = ((_b = model.config) == null ? void 0 : _b.options) || [];
1577
- if (config.state === "empty") {
1578
- return null;
1579
- } else {
1580
- return typeof defaultValue === "string" && faker.boolean() ? defaultValue : faker.randomElement(options);
1581
- }
1582
- };
1583
-
1584
- const slice = (config) => {
1585
- var _a, _b;
1586
- const faker = config.faker || createFaker(config.seed);
1587
- const model = config.model || slice$1({ faker });
1588
- const sliceType = (_a = config.type) != null ? _a : generateFieldId({ faker });
1589
- const sliceLabel = config.label !== void 0 ? config.label : changeCase.capitalCase(faker.words(faker.range(1, 2)));
1590
- const itemsCount = model.repeat && Object.keys(model.repeat).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.range(1, 6) : 0;
1591
- return {
1592
- slice_type: sliceType,
1593
- slice_label: sliceLabel,
1594
- primary: valueForModelMap({
1595
- faker,
1596
- map: model["non-repeat"] || {},
1597
- configs: config.primaryFieldConfigs
1598
- }),
1599
- items: Array(itemsCount).fill(void 0).map(() => {
1600
- return valueForModelMap({
1601
- faker,
1602
- map: model.repeat || {},
1603
- configs: config.itemsFieldConfigs
1604
- });
1605
- })
1606
- };
1607
- };
1608
-
1609
- const sharedSliceVariation = (config) => {
1610
- var _a, _b;
1611
- const faker = config.faker || createFaker(config.seed);
1612
- const model = config.model || sharedSliceVariation$1({ faker });
1613
- const sliceType = (_a = config.type) != null ? _a : generateFieldId({ faker });
1614
- const itemsCount = model.items && Object.keys(model.items).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.range(1, 6) : 0;
1615
- return {
1616
- slice_type: sliceType,
1617
- slice_label: null,
1618
- variation: model.id,
1619
- version: faker.hash(7),
1620
- primary: valueForModelMap({
1621
- faker,
1622
- map: model.primary || {},
1623
- configs: config.primaryFieldConfigs
1624
- }),
1625
- items: Array(itemsCount).fill(void 0).map(() => {
1626
- return valueForModelMap({
1627
- faker,
1628
- map: model.items || {},
1629
- configs: config.itemsFieldConfigs
1630
- });
1631
- })
1632
- };
1633
- };
1634
-
1635
- const sharedSlice = (config) => {
1636
- const faker = config.faker || createFaker(config.seed);
1637
- const model = config.model || sharedSlice$1({ faker });
1638
- const variationModel = faker.randomElement(model.variations);
1639
- return sharedSliceVariation({
1640
- faker,
1641
- model: variationModel,
1642
- itemsCount: config.itemsCount,
1643
- type: model.id,
1644
- primaryFieldConfigs: config.primaryFieldConfigs,
1645
- itemsFieldConfigs: config.itemsFieldConfigs
1646
- });
1647
- };
1648
-
1649
- const sliceZone = (config) => {
1650
- var _a, _b;
1651
- if (config.state === "empty") {
1652
- return [];
1653
- } else {
1654
- const faker = config.faker || createFaker(config.seed);
1655
- const model = config.model || sliceZone$1({ faker });
1656
- if (((_a = model.config) == null ? void 0 : _a.choices) && Object.keys(model.config.choices).length > 0) {
1657
- const itemsCount = (_b = config.itemsCount) != null ? _b : faker.range(1, 6);
1658
- return Array(itemsCount).fill(void 0).map(() => {
1659
- var _a2, _b2, _c, _d;
1660
- const choices = ((_a2 = model.config) == null ? void 0 : _a2.choices) && Object.entries(model.config.choices) || [];
1661
- const [choiceType, choiceModel] = faker.randomElement(choices);
1662
- const choiceLabels = ((_c = (_b2 = model.config) == null ? void 0 : _b2.labels) == null ? void 0 : _c[choiceType]) || [];
1663
- const choiceLabel = faker.randomElement(choiceLabels);
1664
- switch (choiceModel.type) {
1665
- case prismicT.CustomTypeModelSliceType.Slice: {
1666
- return slice({
1667
- faker,
1668
- model: choiceModel,
1669
- type: choiceType,
1670
- label: choiceLabel ? choiceLabel.name : null,
1671
- primaryFieldConfigs: config.primaryFieldConfigs,
1672
- itemsFieldConfigs: config.itemsFieldConfigs
1673
- });
1674
- }
1675
- case prismicT.CustomTypeModelSliceType.SharedSlice: {
1676
- const sharedSliceModel = (_d = config.sharedSliceModels) == null ? void 0 : _d.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1677
- if (sharedSliceModel) {
1678
- return sharedSlice({
1679
- faker,
1680
- model: sharedSliceModel,
1681
- primaryFieldConfigs: config.primaryFieldConfigs,
1682
- itemsFieldConfigs: config.itemsFieldConfigs
1683
- });
1684
- }
1685
- }
1686
- }
1687
- }).filter((slice2) => slice2 !== void 0);
1688
- } else {
1689
- return [];
1690
- }
1691
- }
1692
- };
1693
-
1694
- const title = (config) => {
1695
- const faker = config.faker || createFaker(config.seed);
1696
- if (config.state === "empty") {
1697
- return [];
1698
- } else {
1699
- return [
1700
- heading({
1701
- faker,
1702
- model: config.model,
1703
- pattern: config.pattern
1704
- })
1705
- ];
1706
- }
1707
- };
1708
-
1709
- const uid = (config) => {
1710
- const faker = config.faker || createFaker(config.seed);
1711
- return changeCase.snakeCase(faker.words(faker.range(1, 3)));
1712
- };
1713
-
1714
- var index$1 = /*#__PURE__*/Object.freeze({
1715
- __proto__: null,
1716
- boolean: boolean$1,
1717
- customType: customType,
1718
- color: color,
1719
- contentRelationship: contentRelationship,
1720
- document: customType,
1721
- date: date,
1722
- embed: embed$1,
1723
- geoPoint: geoPoint,
1724
- group: group,
1725
- image: image$1,
1726
- integrationFields: integrationFields,
1727
- keyText: keyText,
1728
- link: link,
1729
- linkToMedia: linkToMedia,
1730
- number: number,
1731
- richText: richText,
1732
- select: select,
1733
- slice: slice,
1734
- sliceZone: sliceZone,
1735
- sharedSlice: sharedSlice,
1736
- sharedSliceVariation: sharedSliceVariation,
1737
- timestamp: timestamp,
1738
- title: title,
1739
- uid: uid
1740
- });
1741
-
1742
- const ref = (config) => {
1743
- var _a;
1744
- const faker = config.faker || createFaker(config.seed);
1745
- const value = {
1746
- id: faker.hash(16),
1747
- ref: faker.hash(16),
1748
- isMasterRef: (_a = config.isMasterRef) != null ? _a : false,
1749
- label: config.isMasterRef ? "Master" : changeCase.capitalCase(faker.words(faker.range(1, 3)))
1750
- };
1751
- if (config.isScheduled) {
1752
- value.scheduledAt = timestamp({ faker });
1753
- }
1754
- return value;
1755
- };
1756
-
1757
- const repository = (config) => {
1758
- const faker = config.faker || createFaker(config.seed);
1759
- const types = (config.customTypeModels || []).reduce((acc, model) => {
1760
- acc[model.id] = model.label || model.id;
1761
- return acc;
1762
- }, {});
1763
- return {
1764
- refs: [
1765
- ref({ faker, isMasterRef: true }),
1766
- ...config.withReleases ? [ref({ faker }), ref({ faker })] : []
1767
- ],
1768
- integrationFieldsRef: ref({ faker }).ref,
1769
- types,
1770
- languages: [
1771
- {
1772
- id: faker.word(),
1773
- name: changeCase.capitalCase(faker.word())
1774
- }
1775
- ],
1776
- tags: generateTags({
1777
- faker,
1778
- min: 1,
1779
- max: 10
1780
- }),
1781
- forms: {},
1782
- license: "All Rights Reserved",
1783
- version: faker.hash(7),
1784
- bookmarks: {},
1785
- experiments: {},
1786
- oauth_token: faker.url(),
1787
- oauth_initiate: faker.url()
1788
- };
1789
- };
1790
-
1791
- const query = (config) => {
1792
- var _a, _b;
1793
- const faker = config.faker || createFaker(config.seed);
1794
- const documents = config.documents || [];
1795
- const page = Math.max(1, (_a = config.page) != null ? _a : 1);
1796
- const pageSize = Math.min(100, Math.max(1, (_b = config.pageSize) != null ? _b : 100));
1797
- const totalPages = Math.ceil(documents.length / pageSize);
1798
- const results = documents.slice((page - 1) * pageSize, page * pageSize);
1799
- return {
1800
- page,
1801
- next_page: page < totalPages ? faker.url() : null,
1802
- prev_page: page > 1 ? faker.url() : null,
1803
- total_pages: totalPages,
1804
- results_size: results.length,
1805
- results_per_page: pageSize,
1806
- total_results_size: documents.length,
1807
- results
1808
- };
1809
- };
1810
-
1811
- const tags = (config) => {
1812
- const faker = config.faker || createFaker(config.seed);
1813
- return generateTags({
1814
- faker,
1815
- min: 1,
1816
- max: 10
1817
- });
1818
- };
1819
-
1820
- var index = /*#__PURE__*/Object.freeze({
1821
- __proto__: null,
1822
- repository: repository,
1823
- ref: ref,
1824
- query: query,
1825
- tags: tags
1826
- });
1827
-
1828
- const createValueMockFactory = (...args) => {
1829
- return new ValueMockFactory(...args);
1830
- };
1831
- class ValueMockFactory {
1832
- constructor(config) {
1833
- this.faker = "faker" in config ? config.faker : createFaker(config.seed);
1834
- }
1835
- get seed() {
1836
- return this.faker.seed;
1837
- }
1838
- boolean(config) {
1839
- return boolean$1({ ...config, faker: this.faker });
1840
- }
1841
- color(config) {
1842
- return color({ ...config, faker: this.faker });
1843
- }
1844
- contentRelationship(config) {
1845
- return contentRelationship({ ...config, faker: this.faker });
1846
- }
1847
- customType(config) {
1848
- return customType({ ...config, faker: this.faker });
1849
- }
1850
- date(config) {
1851
- return date({ ...config, faker: this.faker });
1852
- }
1853
- document(config) {
1854
- return customType({ ...config, faker: this.faker });
1855
- }
1856
- embed(config) {
1857
- return embed$1({ ...config, faker: this.faker });
1858
- }
1859
- geoPoint(config) {
1860
- return geoPoint({ ...config, faker: this.faker });
1861
- }
1862
- group(config) {
1863
- return group({ ...config, faker: this.faker });
1864
- }
1865
- image(config) {
1866
- return image$1({ ...config, faker: this.faker });
1867
- }
1868
- integrationFields(config) {
1869
- return integrationFields({ ...config, faker: this.faker });
1870
- }
1871
- keyText(config) {
1872
- return keyText({ ...config, faker: this.faker });
1873
- }
1874
- link(config) {
1875
- return link({ ...config, faker: this.faker });
1876
- }
1877
- linkToMedia(config) {
1878
- return linkToMedia({ ...config, faker: this.faker });
1879
- }
1880
- number(config) {
1881
- return number({ ...config, faker: this.faker });
1882
- }
1883
- select(config) {
1884
- return select({ ...config, faker: this.faker });
1885
- }
1886
- sharedSlice(config) {
1887
- return sharedSlice({ ...config, faker: this.faker });
1888
- }
1889
- sharedSliceVariation(config) {
1890
- return sharedSliceVariation({ ...config, faker: this.faker });
1891
- }
1892
- slice(config) {
1893
- return slice({ ...config, faker: this.faker });
1894
- }
1895
- sliceZone(config) {
1896
- return sliceZone({ ...config, faker: this.faker });
1897
- }
1898
- timestamp(config) {
1899
- return timestamp({ ...config, faker: this.faker });
1900
- }
1901
- title(config) {
1902
- return title({ ...config, faker: this.faker });
1903
- }
1904
- uid(config) {
1905
- return uid({ ...config, faker: this.faker });
1906
- }
1907
- richText(config) {
1908
- return richText({ ...config, faker: this.faker });
1909
- }
1910
- }
1911
-
1912
- const createAPIMockFactory = (...args) => {
1913
- return new APIMockFactory(...args);
1914
- };
1915
- class APIMockFactory {
1916
- constructor(config) {
1917
- this.faker = "faker" in config ? config.faker : createFaker(config.seed);
1918
- }
1919
- get seed() {
1920
- return this.faker.seed;
1921
- }
1922
- query(config) {
1923
- return query({ ...config, faker: this.faker });
1924
- }
1925
- ref(config) {
1926
- return ref({ ...config, faker: this.faker });
1927
- }
1928
- repository(config) {
1929
- return repository({ ...config, faker: this.faker });
1930
- }
1931
- tags(config) {
1932
- return tags({ ...config, faker: this.faker });
1933
- }
1934
- }
1935
-
1936
- const createMockFactory = (...args) => {
1937
- return new MockFactory(...args);
1938
- };
1939
- class MockFactory {
1940
- constructor(config) {
1941
- this.faker = config.faker || createFaker(config.seed);
1942
- this.api = createAPIMockFactory({ faker: this.faker });
1943
- this.model = createModelMockFactory({ faker: this.faker });
1944
- this.value = createValueMockFactory({ faker: this.faker });
1945
- }
1946
- get seed() {
1947
- return this.faker.seed;
1948
- }
1949
- }
1950
-
1951
- export { APIMockFactory, MockFactory, ModelMockFactory, ValueMockFactory, index as api, createAPIMockFactory, createMockFactory, createModelMockFactory, createValueMockFactory, index$2 as model, index$1 as value };
1952
21
  //# sourceMappingURL=index.js.map