@seshuk/payload-plugin-openapi 0.2.1 → 1.0.0-beta.1

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 (377) hide show
  1. package/README.md +67 -25
  2. package/dist/_tooling/telemetry.js +168 -0
  3. package/dist/_tooling/telemetry.js.map +1 -0
  4. package/dist/cli/generateSpec.d.ts +2 -0
  5. package/dist/cli/generateSpec.js +40 -0
  6. package/dist/cli/generateSpec.js.map +1 -0
  7. package/dist/index.d.ts +8 -9
  8. package/dist/index.js +76 -65
  9. package/dist/index.js.map +1 -0
  10. package/dist/{endpoints → server/endpoints}/interactiveAuth.d.ts +2 -2
  11. package/dist/server/endpoints/interactiveAuth.js +25 -0
  12. package/dist/server/endpoints/interactiveAuth.js.map +1 -0
  13. package/dist/server/endpoints/spec.d.ts +5 -0
  14. package/dist/server/endpoints/spec.js +39 -0
  15. package/dist/server/endpoints/spec.js.map +1 -0
  16. package/dist/server/options/resolveOptions.d.ts +4 -0
  17. package/dist/server/options/resolveOptions.js +65 -0
  18. package/dist/server/options/resolveOptions.js.map +1 -0
  19. package/dist/server/spec/build.d.ts +14 -0
  20. package/dist/server/spec/build.js +40 -0
  21. package/dist/server/spec/build.js.map +1 -0
  22. package/dist/server/spec/buildDocument.d.ts +16 -0
  23. package/dist/server/spec/buildDocument.js +287 -0
  24. package/dist/server/spec/buildDocument.js.map +1 -0
  25. package/dist/server/spec/components.d.ts +61 -0
  26. package/dist/server/spec/components.js +265 -0
  27. package/dist/server/spec/components.js.map +1 -0
  28. package/dist/{spec → server/spec}/downconvert.d.ts +2 -1
  29. package/dist/server/spec/downconvert.js +69 -0
  30. package/dist/server/spec/downconvert.js.map +1 -0
  31. package/dist/server/spec/entitySchemas.d.ts +16 -0
  32. package/dist/server/spec/entitySchemas.js +207 -0
  33. package/dist/server/spec/entitySchemas.js.map +1 -0
  34. package/dist/{spec → server/spec}/fields.d.ts +2 -1
  35. package/dist/server/spec/fields.js +47 -0
  36. package/dist/server/spec/fields.js.map +1 -0
  37. package/dist/server/spec/filters.d.ts +12 -0
  38. package/dist/server/spec/filters.js +91 -0
  39. package/dist/server/spec/filters.js.map +1 -0
  40. package/dist/server/spec/hierarchy.d.ts +11 -0
  41. package/dist/server/spec/hierarchy.js +38 -0
  42. package/dist/server/spec/hierarchy.js.map +1 -0
  43. package/dist/{spec → server/spec}/names.d.ts +2 -2
  44. package/dist/server/spec/names.js +43 -0
  45. package/dist/server/spec/names.js.map +1 -0
  46. package/dist/server/spec/params.d.ts +57 -0
  47. package/dist/server/spec/params.js +394 -0
  48. package/dist/server/spec/params.js.map +1 -0
  49. package/dist/server/spec/paths/auth.d.ts +10 -0
  50. package/dist/server/spec/paths/auth.js +190 -0
  51. package/dist/server/spec/paths/auth.js.map +1 -0
  52. package/dist/server/spec/paths/collections.d.ts +11 -0
  53. package/dist/server/spec/paths/collections.js +314 -0
  54. package/dist/server/spec/paths/collections.js.map +1 -0
  55. package/dist/server/spec/paths/custom.d.ts +10 -0
  56. package/dist/server/spec/paths/custom.js +42 -0
  57. package/dist/server/spec/paths/custom.js.map +1 -0
  58. package/dist/server/spec/paths/globals.d.ts +11 -0
  59. package/dist/server/spec/paths/globals.js +87 -0
  60. package/dist/server/spec/paths/globals.js.map +1 -0
  61. package/dist/server/spec/paths/jobs.d.ts +9 -0
  62. package/dist/server/spec/paths/jobs.js +98 -0
  63. package/dist/server/spec/paths/jobs.js.map +1 -0
  64. package/dist/server/spec/paths/system.d.ts +8 -0
  65. package/dist/server/spec/paths/system.js +137 -0
  66. package/dist/server/spec/paths/system.js.map +1 -0
  67. package/dist/server/spec/paths/versions.d.ts +22 -0
  68. package/dist/server/spec/paths/versions.js +185 -0
  69. package/dist/server/spec/paths/versions.js.map +1 -0
  70. package/dist/server/spec/security.d.ts +33 -0
  71. package/dist/server/spec/security.js +97 -0
  72. package/dist/server/spec/security.js.map +1 -0
  73. package/dist/server/spec/tags.d.ts +34 -0
  74. package/dist/server/spec/tags.js +83 -0
  75. package/dist/server/spec/tags.js.map +1 -0
  76. package/dist/server/telemetry.d.ts +31 -0
  77. package/dist/server/telemetry.js +33 -0
  78. package/dist/server/telemetry.js.map +1 -0
  79. package/dist/server/ui/createUiPlugin.d.ts +16 -0
  80. package/dist/server/ui/createUiPlugin.js +33 -0
  81. package/dist/server/ui/createUiPlugin.js.map +1 -0
  82. package/dist/{ui → server/ui}/html.d.ts +5 -3
  83. package/dist/server/ui/html.js +11 -0
  84. package/dist/server/ui/html.js.map +1 -0
  85. package/dist/server/ui/scalar.d.ts +4 -0
  86. package/dist/server/ui/scalar.js +17 -0
  87. package/dist/server/ui/scalar.js.map +1 -0
  88. package/dist/server/ui/swagger.d.ts +4 -0
  89. package/dist/server/ui/swagger.js +18 -0
  90. package/dist/server/ui/swagger.js.map +1 -0
  91. package/dist/shared/constants.d.ts +4 -0
  92. package/dist/shared/constants.js +6 -0
  93. package/dist/shared/constants.js.map +1 -0
  94. package/dist/shared/translations/index.d.ts +5 -0
  95. package/dist/{translations → shared/translations}/index.js +49 -47
  96. package/dist/shared/translations/index.js.map +1 -0
  97. package/dist/shared/translations/locales/ar.d.ts +3 -0
  98. package/dist/shared/translations/locales/ar.js +99 -0
  99. package/dist/shared/translations/locales/ar.js.map +1 -0
  100. package/dist/shared/translations/locales/az.d.ts +3 -0
  101. package/dist/shared/translations/locales/az.js +99 -0
  102. package/dist/shared/translations/locales/az.js.map +1 -0
  103. package/dist/shared/translations/locales/bg.d.ts +3 -0
  104. package/dist/shared/translations/locales/bg.js +99 -0
  105. package/dist/shared/translations/locales/bg.js.map +1 -0
  106. package/dist/shared/translations/locales/bnBd.d.ts +3 -0
  107. package/dist/shared/translations/locales/bnBd.js +99 -0
  108. package/dist/shared/translations/locales/bnBd.js.map +1 -0
  109. package/dist/shared/translations/locales/bnIn.d.ts +3 -0
  110. package/dist/shared/translations/locales/bnIn.js +99 -0
  111. package/dist/shared/translations/locales/bnIn.js.map +1 -0
  112. package/dist/shared/translations/locales/ca.d.ts +3 -0
  113. package/dist/shared/translations/locales/ca.js +99 -0
  114. package/dist/shared/translations/locales/ca.js.map +1 -0
  115. package/dist/shared/translations/locales/cs.d.ts +3 -0
  116. package/dist/shared/translations/locales/cs.js +99 -0
  117. package/dist/shared/translations/locales/cs.js.map +1 -0
  118. package/dist/shared/translations/locales/da.d.ts +3 -0
  119. package/dist/shared/translations/locales/da.js +99 -0
  120. package/dist/shared/translations/locales/da.js.map +1 -0
  121. package/dist/shared/translations/locales/de.d.ts +3 -0
  122. package/dist/shared/translations/locales/de.js +99 -0
  123. package/dist/shared/translations/locales/de.js.map +1 -0
  124. package/dist/shared/translations/locales/en.d.ts +3 -0
  125. package/dist/shared/translations/locales/en.js +99 -0
  126. package/dist/shared/translations/locales/en.js.map +1 -0
  127. package/dist/shared/translations/locales/es.d.ts +3 -0
  128. package/dist/shared/translations/locales/es.js +99 -0
  129. package/dist/shared/translations/locales/es.js.map +1 -0
  130. package/dist/shared/translations/locales/et.d.ts +3 -0
  131. package/dist/shared/translations/locales/et.js +99 -0
  132. package/dist/shared/translations/locales/et.js.map +1 -0
  133. package/dist/shared/translations/locales/fa.d.ts +3 -0
  134. package/dist/shared/translations/locales/fa.js +99 -0
  135. package/dist/shared/translations/locales/fa.js.map +1 -0
  136. package/dist/shared/translations/locales/fr.d.ts +3 -0
  137. package/dist/shared/translations/locales/fr.js +99 -0
  138. package/dist/shared/translations/locales/fr.js.map +1 -0
  139. package/dist/shared/translations/locales/he.d.ts +3 -0
  140. package/dist/shared/translations/locales/he.js +99 -0
  141. package/dist/shared/translations/locales/he.js.map +1 -0
  142. package/dist/shared/translations/locales/hr.d.ts +3 -0
  143. package/dist/shared/translations/locales/hr.js +99 -0
  144. package/dist/shared/translations/locales/hr.js.map +1 -0
  145. package/dist/shared/translations/locales/hu.d.ts +3 -0
  146. package/dist/shared/translations/locales/hu.js +99 -0
  147. package/dist/shared/translations/locales/hu.js.map +1 -0
  148. package/dist/shared/translations/locales/hy.d.ts +3 -0
  149. package/dist/shared/translations/locales/hy.js +99 -0
  150. package/dist/shared/translations/locales/hy.js.map +1 -0
  151. package/dist/shared/translations/locales/id.d.ts +3 -0
  152. package/dist/shared/translations/locales/id.js +99 -0
  153. package/dist/shared/translations/locales/id.js.map +1 -0
  154. package/dist/shared/translations/locales/is.d.ts +3 -0
  155. package/dist/shared/translations/locales/is.js +99 -0
  156. package/dist/shared/translations/locales/is.js.map +1 -0
  157. package/dist/shared/translations/locales/it.d.ts +3 -0
  158. package/dist/shared/translations/locales/it.js +99 -0
  159. package/dist/shared/translations/locales/it.js.map +1 -0
  160. package/dist/shared/translations/locales/ja.d.ts +3 -0
  161. package/dist/shared/translations/locales/ja.js +99 -0
  162. package/dist/shared/translations/locales/ja.js.map +1 -0
  163. package/dist/shared/translations/locales/ko.d.ts +3 -0
  164. package/dist/shared/translations/locales/ko.js +99 -0
  165. package/dist/shared/translations/locales/ko.js.map +1 -0
  166. package/dist/shared/translations/locales/lt.d.ts +3 -0
  167. package/dist/shared/translations/locales/lt.js +99 -0
  168. package/dist/shared/translations/locales/lt.js.map +1 -0
  169. package/dist/shared/translations/locales/lv.d.ts +3 -0
  170. package/dist/shared/translations/locales/lv.js +99 -0
  171. package/dist/shared/translations/locales/lv.js.map +1 -0
  172. package/dist/shared/translations/locales/my.d.ts +3 -0
  173. package/dist/shared/translations/locales/my.js +99 -0
  174. package/dist/shared/translations/locales/my.js.map +1 -0
  175. package/dist/shared/translations/locales/nb.d.ts +3 -0
  176. package/dist/shared/translations/locales/nb.js +99 -0
  177. package/dist/shared/translations/locales/nb.js.map +1 -0
  178. package/dist/shared/translations/locales/nl.d.ts +3 -0
  179. package/dist/shared/translations/locales/nl.js +99 -0
  180. package/dist/shared/translations/locales/nl.js.map +1 -0
  181. package/dist/shared/translations/locales/pl.d.ts +3 -0
  182. package/dist/shared/translations/locales/pl.js +99 -0
  183. package/dist/shared/translations/locales/pl.js.map +1 -0
  184. package/dist/shared/translations/locales/pt.d.ts +3 -0
  185. package/dist/shared/translations/locales/pt.js +99 -0
  186. package/dist/shared/translations/locales/pt.js.map +1 -0
  187. package/dist/shared/translations/locales/ro.d.ts +3 -0
  188. package/dist/shared/translations/locales/ro.js +99 -0
  189. package/dist/shared/translations/locales/ro.js.map +1 -0
  190. package/dist/shared/translations/locales/rs.d.ts +3 -0
  191. package/dist/shared/translations/locales/rs.js +99 -0
  192. package/dist/shared/translations/locales/rs.js.map +1 -0
  193. package/dist/shared/translations/locales/rsLatin.d.ts +3 -0
  194. package/dist/shared/translations/locales/rsLatin.js +99 -0
  195. package/dist/shared/translations/locales/rsLatin.js.map +1 -0
  196. package/dist/shared/translations/locales/ru.d.ts +3 -0
  197. package/dist/shared/translations/locales/ru.js +99 -0
  198. package/dist/shared/translations/locales/ru.js.map +1 -0
  199. package/dist/shared/translations/locales/sk.d.ts +3 -0
  200. package/dist/shared/translations/locales/sk.js +99 -0
  201. package/dist/shared/translations/locales/sk.js.map +1 -0
  202. package/dist/shared/translations/locales/sl.d.ts +3 -0
  203. package/dist/shared/translations/locales/sl.js +99 -0
  204. package/dist/shared/translations/locales/sl.js.map +1 -0
  205. package/dist/shared/translations/locales/sv.d.ts +3 -0
  206. package/dist/shared/translations/locales/sv.js +99 -0
  207. package/dist/shared/translations/locales/sv.js.map +1 -0
  208. package/dist/shared/translations/locales/ta.d.ts +3 -0
  209. package/dist/shared/translations/locales/ta.js +99 -0
  210. package/dist/shared/translations/locales/ta.js.map +1 -0
  211. package/dist/shared/translations/locales/th.d.ts +3 -0
  212. package/dist/shared/translations/locales/th.js +99 -0
  213. package/dist/shared/translations/locales/th.js.map +1 -0
  214. package/dist/shared/translations/locales/tr.d.ts +3 -0
  215. package/dist/shared/translations/locales/tr.js +99 -0
  216. package/dist/shared/translations/locales/tr.js.map +1 -0
  217. package/dist/shared/translations/locales/uk.d.ts +3 -0
  218. package/dist/shared/translations/locales/uk.js +99 -0
  219. package/dist/shared/translations/locales/uk.js.map +1 -0
  220. package/dist/shared/translations/locales/vi.d.ts +3 -0
  221. package/dist/shared/translations/locales/vi.js +99 -0
  222. package/dist/shared/translations/locales/vi.js.map +1 -0
  223. package/dist/shared/translations/locales/zh.d.ts +3 -0
  224. package/dist/shared/translations/locales/zh.js +99 -0
  225. package/dist/shared/translations/locales/zh.js.map +1 -0
  226. package/dist/shared/translations/locales/zhTw.d.ts +3 -0
  227. package/dist/shared/translations/locales/zhTw.js +99 -0
  228. package/dist/shared/translations/locales/zhTw.js.map +1 -0
  229. package/dist/shared/translations/types.d.ts +106 -0
  230. package/dist/shared/translations/types.js +1 -0
  231. package/dist/shared/types/index.d.ts +397 -0
  232. package/dist/shared/types/index.js +1 -0
  233. package/dist/{utils.d.ts → shared/utils.d.ts} +1 -0
  234. package/dist/shared/utils.js +13 -0
  235. package/dist/shared/utils.js.map +1 -0
  236. package/package.json +67 -56
  237. package/dist/bin/generateSpec.d.ts +0 -25
  238. package/dist/bin/generateSpec.js +0 -61
  239. package/dist/constants.d.ts +0 -1
  240. package/dist/constants.js +0 -2
  241. package/dist/endpoints/interactiveAuth.js +0 -27
  242. package/dist/endpoints/spec.d.ts +0 -5
  243. package/dist/endpoints/spec.js +0 -39
  244. package/dist/options.d.ts +0 -2
  245. package/dist/options.js +0 -45
  246. package/dist/spec/build.d.ts +0 -14
  247. package/dist/spec/build.js +0 -36
  248. package/dist/spec/buildDocument.d.ts +0 -15
  249. package/dist/spec/buildDocument.js +0 -268
  250. package/dist/spec/components.d.ts +0 -44
  251. package/dist/spec/components.js +0 -265
  252. package/dist/spec/downconvert.js +0 -74
  253. package/dist/spec/entitySchemas.d.ts +0 -15
  254. package/dist/spec/entitySchemas.js +0 -250
  255. package/dist/spec/fields.js +0 -44
  256. package/dist/spec/filters.d.ts +0 -11
  257. package/dist/spec/filters.js +0 -83
  258. package/dist/spec/names.js +0 -37
  259. package/dist/spec/params.d.ts +0 -55
  260. package/dist/spec/params.js +0 -436
  261. package/dist/spec/paths/auth.d.ts +0 -9
  262. package/dist/spec/paths/auth.js +0 -274
  263. package/dist/spec/paths/collections.d.ts +0 -9
  264. package/dist/spec/paths/collections.js +0 -278
  265. package/dist/spec/paths/custom.d.ts +0 -9
  266. package/dist/spec/paths/custom.js +0 -41
  267. package/dist/spec/paths/globals.d.ts +0 -9
  268. package/dist/spec/paths/globals.js +0 -78
  269. package/dist/spec/paths/jobs.d.ts +0 -7
  270. package/dist/spec/paths/jobs.js +0 -130
  271. package/dist/spec/paths/versions.d.ts +0 -19
  272. package/dist/spec/paths/versions.js +0 -252
  273. package/dist/spec/security.d.ts +0 -19
  274. package/dist/spec/security.js +0 -96
  275. package/dist/spec/tags.d.ts +0 -27
  276. package/dist/spec/tags.js +0 -79
  277. package/dist/translations/index.d.ts +0 -6
  278. package/dist/translations/locales/ar.d.ts +0 -2
  279. package/dist/translations/locales/ar.js +0 -81
  280. package/dist/translations/locales/az.d.ts +0 -2
  281. package/dist/translations/locales/az.js +0 -81
  282. package/dist/translations/locales/bg.d.ts +0 -2
  283. package/dist/translations/locales/bg.js +0 -81
  284. package/dist/translations/locales/bnBd.d.ts +0 -2
  285. package/dist/translations/locales/bnBd.js +0 -81
  286. package/dist/translations/locales/bnIn.d.ts +0 -2
  287. package/dist/translations/locales/bnIn.js +0 -81
  288. package/dist/translations/locales/ca.d.ts +0 -2
  289. package/dist/translations/locales/ca.js +0 -81
  290. package/dist/translations/locales/cs.d.ts +0 -2
  291. package/dist/translations/locales/cs.js +0 -81
  292. package/dist/translations/locales/da.d.ts +0 -2
  293. package/dist/translations/locales/da.js +0 -81
  294. package/dist/translations/locales/de.d.ts +0 -2
  295. package/dist/translations/locales/de.js +0 -81
  296. package/dist/translations/locales/en.d.ts +0 -2
  297. package/dist/translations/locales/en.js +0 -81
  298. package/dist/translations/locales/es.d.ts +0 -2
  299. package/dist/translations/locales/es.js +0 -81
  300. package/dist/translations/locales/et.d.ts +0 -2
  301. package/dist/translations/locales/et.js +0 -81
  302. package/dist/translations/locales/fa.d.ts +0 -2
  303. package/dist/translations/locales/fa.js +0 -81
  304. package/dist/translations/locales/fr.d.ts +0 -2
  305. package/dist/translations/locales/fr.js +0 -81
  306. package/dist/translations/locales/he.d.ts +0 -2
  307. package/dist/translations/locales/he.js +0 -81
  308. package/dist/translations/locales/hr.d.ts +0 -2
  309. package/dist/translations/locales/hr.js +0 -81
  310. package/dist/translations/locales/hu.d.ts +0 -2
  311. package/dist/translations/locales/hu.js +0 -81
  312. package/dist/translations/locales/hy.d.ts +0 -2
  313. package/dist/translations/locales/hy.js +0 -81
  314. package/dist/translations/locales/id.d.ts +0 -2
  315. package/dist/translations/locales/id.js +0 -81
  316. package/dist/translations/locales/is.d.ts +0 -2
  317. package/dist/translations/locales/is.js +0 -81
  318. package/dist/translations/locales/it.d.ts +0 -2
  319. package/dist/translations/locales/it.js +0 -81
  320. package/dist/translations/locales/ja.d.ts +0 -2
  321. package/dist/translations/locales/ja.js +0 -81
  322. package/dist/translations/locales/ko.d.ts +0 -2
  323. package/dist/translations/locales/ko.js +0 -81
  324. package/dist/translations/locales/lt.d.ts +0 -2
  325. package/dist/translations/locales/lt.js +0 -81
  326. package/dist/translations/locales/lv.d.ts +0 -2
  327. package/dist/translations/locales/lv.js +0 -81
  328. package/dist/translations/locales/my.d.ts +0 -2
  329. package/dist/translations/locales/my.js +0 -81
  330. package/dist/translations/locales/nb.d.ts +0 -2
  331. package/dist/translations/locales/nb.js +0 -81
  332. package/dist/translations/locales/nl.d.ts +0 -2
  333. package/dist/translations/locales/nl.js +0 -81
  334. package/dist/translations/locales/pl.d.ts +0 -2
  335. package/dist/translations/locales/pl.js +0 -81
  336. package/dist/translations/locales/pt.d.ts +0 -2
  337. package/dist/translations/locales/pt.js +0 -81
  338. package/dist/translations/locales/ro.d.ts +0 -2
  339. package/dist/translations/locales/ro.js +0 -81
  340. package/dist/translations/locales/rs.d.ts +0 -2
  341. package/dist/translations/locales/rs.js +0 -81
  342. package/dist/translations/locales/rsLatin.d.ts +0 -2
  343. package/dist/translations/locales/rsLatin.js +0 -81
  344. package/dist/translations/locales/ru.d.ts +0 -2
  345. package/dist/translations/locales/ru.js +0 -81
  346. package/dist/translations/locales/sk.d.ts +0 -2
  347. package/dist/translations/locales/sk.js +0 -81
  348. package/dist/translations/locales/sl.d.ts +0 -2
  349. package/dist/translations/locales/sl.js +0 -81
  350. package/dist/translations/locales/sv.d.ts +0 -2
  351. package/dist/translations/locales/sv.js +0 -81
  352. package/dist/translations/locales/ta.d.ts +0 -2
  353. package/dist/translations/locales/ta.js +0 -81
  354. package/dist/translations/locales/th.d.ts +0 -2
  355. package/dist/translations/locales/th.js +0 -81
  356. package/dist/translations/locales/tr.d.ts +0 -2
  357. package/dist/translations/locales/tr.js +0 -81
  358. package/dist/translations/locales/uk.d.ts +0 -2
  359. package/dist/translations/locales/uk.js +0 -81
  360. package/dist/translations/locales/vi.d.ts +0 -2
  361. package/dist/translations/locales/vi.js +0 -81
  362. package/dist/translations/locales/zh.d.ts +0 -2
  363. package/dist/translations/locales/zh.js +0 -81
  364. package/dist/translations/locales/zhTw.d.ts +0 -2
  365. package/dist/translations/locales/zhTw.js +0 -81
  366. package/dist/translations/types.d.ts +0 -87
  367. package/dist/translations/types.js +0 -1
  368. package/dist/types.d.ts +0 -192
  369. package/dist/types.js +0 -1
  370. package/dist/ui/createUiPlugin.d.ts +0 -14
  371. package/dist/ui/createUiPlugin.js +0 -28
  372. package/dist/ui/html.js +0 -8
  373. package/dist/ui/scalar.d.ts +0 -1
  374. package/dist/ui/scalar.js +0 -12
  375. package/dist/ui/swagger.d.ts +0 -1
  376. package/dist/ui/swagger.js +0 -12
  377. package/dist/utils.js +0 -13
@@ -0,0 +1,47 @@
1
+ const isHiddenField = (field) => "hidden" in field && field.hidden === true;
2
+ const AUTH_FIELDS = /* @__PURE__ */ new Set([
3
+ "salt",
4
+ "hash",
5
+ "password",
6
+ "resetPasswordToken",
7
+ "resetPasswordExpiration",
8
+ "loginAttempts",
9
+ "lockUntil",
10
+ "sessions"
11
+ ]);
12
+ const hasName = (field) => "name" in field && typeof field.name === "string";
13
+ const flattenFields = (fields) => {
14
+ const out = [];
15
+ for (const field of fields) {
16
+ if (field.type === "ui") continue;
17
+ if (field.type === "row" || field.type === "collapsible") {
18
+ out.push(...flattenFields(field.fields));
19
+ continue;
20
+ }
21
+ if (field.type === "tabs") {
22
+ for (const tab of field.tabs) {
23
+ const tabName = hasName(tab) ? tab.name : void 0;
24
+ if (tabName) out.push({
25
+ type: "group",
26
+ name: tabName,
27
+ fields: tab.fields
28
+ });
29
+ else out.push(...flattenFields(tab.fields));
30
+ }
31
+ continue;
32
+ }
33
+ if (field.type === "group" && !hasName(field)) {
34
+ out.push(...flattenFields(field.fields));
35
+ continue;
36
+ }
37
+ out.push(field);
38
+ }
39
+ return out;
40
+ };
41
+ const exposableFields = (fields) => flattenFields(fields).filter((field) => {
42
+ const name = "name" in field ? field.name : void 0;
43
+ return Boolean(name) && !isHiddenField(field) && !AUTH_FIELDS.has(name);
44
+ });
45
+ export { AUTH_FIELDS, exposableFields, flattenFields, isHiddenField };
46
+
47
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","names":[],"sources":["../../../src/server/spec/fields.ts"],"sourcesContent":["import type { Field, NamedTab } from 'payload'\n\nexport const isHiddenField = (field: Field): boolean => 'hidden' in field && field.hidden === true\n\nexport const AUTH_FIELDS = new Set([\n 'salt',\n 'hash',\n 'password',\n 'resetPasswordToken',\n 'resetPasswordExpiration',\n 'loginAttempts',\n 'lockUntil',\n 'sessions',\n])\n\nconst hasName = (field: object): boolean => 'name' in field && typeof (field as { name?: unknown }).name === 'string'\n\nexport const flattenFields = (fields: Field[]): Field[] => {\n const out: Field[] = []\n for (const field of fields) {\n if (field.type === 'ui') continue\n\n if (field.type === 'row' || field.type === 'collapsible') {\n out.push(...flattenFields(field.fields))\n continue\n }\n\n if (field.type === 'tabs') {\n for (const tab of field.tabs) {\n const tabName = hasName(tab) ? (tab as NamedTab).name : undefined\n if (tabName) {\n out.push({ type: 'group', name: tabName, fields: tab.fields } as unknown as Field)\n } else {\n out.push(...flattenFields(tab.fields))\n }\n }\n continue\n }\n\n if (field.type === 'group' && !hasName(field)) {\n out.push(...flattenFields(field.fields))\n continue\n }\n\n out.push(field)\n }\n return out\n}\n\nexport const exposableFields = (fields: Field[]): Field[] =>\n flattenFields(fields).filter((field) => {\n const name = 'name' in field ? (field as { name?: string }).name : undefined\n return Boolean(name) && !isHiddenField(field) && !AUTH_FIELDS.has(name as string)\n })\n"],"mappings":"AAEA,MAAa,iBAAiB,UAA0B,YAAY,SAAS,MAAM,WAAW;AAE9F,MAAa,8BAAc,IAAI,IAAI;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,WAAW,UAA2B,UAAU,SAAS,OAAQ,MAA6B,SAAS;AAE7G,MAAa,iBAAiB,WAA6B;CACzD,MAAM,MAAe,CAAC;CACtB,KAAK,MAAM,SAAS,QAAQ;EAC1B,IAAI,MAAM,SAAS,MAAM;EAEzB,IAAI,MAAM,SAAS,SAAS,MAAM,SAAS,eAAe;GACxD,IAAI,KAAK,GAAG,cAAc,MAAM,MAAM,CAAC;GACvC;EACF;EAEA,IAAI,MAAM,SAAS,QAAQ;GACzB,KAAK,MAAM,OAAO,MAAM,MAAM;IAC5B,MAAM,UAAU,QAAQ,GAAG,IAAK,IAAiB,OAAO,KAAA;IACxD,IAAI,SACF,IAAI,KAAK;KAAE,MAAM;KAAS,MAAM;KAAS,QAAQ,IAAI;IAAO,CAAqB;SAEjF,IAAI,KAAK,GAAG,cAAc,IAAI,MAAM,CAAC;GAEzC;GACA;EACF;EAEA,IAAI,MAAM,SAAS,WAAW,CAAC,QAAQ,KAAK,GAAG;GAC7C,IAAI,KAAK,GAAG,cAAc,MAAM,MAAM,CAAC;GACvC;EACF;EAEA,IAAI,KAAK,KAAK;CAChB;CACA,OAAO;AACT;AAEA,MAAa,mBAAmB,WAC9B,cAAc,MAAM,CAAC,CAAC,QAAQ,UAAU;CACtC,MAAM,OAAO,UAAU,QAAS,MAA4B,OAAO,KAAA;CACnE,OAAO,QAAQ,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,YAAY,IAAI,IAAc;AAClF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { OperationKind, ResolvedFilters } from "../../shared/types/index.js";
2
+ import { SanitizedCollectionConfig, SanitizedGlobalConfig } from "payload";
3
+ import { PathsObject } from "@scalar/openapi-types/3.2";
4
+ export declare const shouldIncludeCollection: (collection: SanitizedCollectionConfig, filters: ResolvedFilters) => boolean;
5
+ export declare const shouldIncludeGlobal: (global: SanitizedGlobalConfig, filters: ResolvedFilters) => boolean;
6
+ export declare const filterOperations: ({ paths, slug, kind, filters }: {
7
+ paths: PathsObject;
8
+ slug?: string;
9
+ kind: OperationKind;
10
+ filters: ResolvedFilters;
11
+ }) => Promise<PathsObject>;
12
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1,91 @@
1
+ const SYSTEM_COLLECTIONS = /* @__PURE__ */ new Set([
2
+ "payload-jobs",
3
+ "payload-locked-documents",
4
+ "payload-preferences",
5
+ "payload-migrations",
6
+ "payload-kv",
7
+ "payload-llm-instructions",
8
+ "payload-query-presets"
9
+ ]);
10
+ const SYSTEM_GLOBALS = /* @__PURE__ */ new Set(["payload-jobs-stats"]);
11
+ const HTTP_METHODS = [
12
+ "get",
13
+ "post",
14
+ "patch",
15
+ "put",
16
+ "delete"
17
+ ];
18
+ const matchesEntity = (matcher, { slug, kind }) => {
19
+ if (typeof matcher === "string") return matcher === slug;
20
+ if (matcher instanceof RegExp) return matcher.test(slug);
21
+ return matcher.kind === kind && matcher.slug === slug;
22
+ };
23
+ const anyMatch = (matchers, entity) => matchers.some((m) => matchesEntity(m, entity));
24
+ const isHiddenCollection = (collection) => {
25
+ if (collection.hidden === true) return true;
26
+ const hidden = collection.admin?.hidden;
27
+ if (typeof hidden === "function") try {
28
+ return hidden({ user: null }) === true;
29
+ } catch {
30
+ return false;
31
+ }
32
+ return hidden === true;
33
+ };
34
+ const passesIncludeExclude = (entity, filters) => {
35
+ if (filters.include.length > 0 && !anyMatch(filters.include, entity)) return false;
36
+ if (anyMatch(filters.exclude, entity)) return false;
37
+ return true;
38
+ };
39
+ const shouldIncludeCollection = (collection, filters) => {
40
+ const { slug } = collection;
41
+ if (SYSTEM_COLLECTIONS.has(slug) && !filters.includeSystem) return false;
42
+ if (!filters.includeHidden && isHiddenCollection(collection)) return false;
43
+ return passesIncludeExclude({
44
+ slug,
45
+ kind: "collection"
46
+ }, filters);
47
+ };
48
+ const shouldIncludeGlobal = (global, filters) => {
49
+ if (SYSTEM_GLOBALS.has(global.slug) && !filters.includeSystem) return false;
50
+ return passesIncludeExclude({
51
+ slug: global.slug,
52
+ kind: "global"
53
+ }, filters);
54
+ };
55
+ const ruleMatchesMethod = (rule, method) => {
56
+ if (rule.method === void 0) return true;
57
+ return Array.isArray(rule.method) ? rule.method.includes(method) : rule.method === method;
58
+ };
59
+ const ruleMatchesSlug = (rule, slug) => {
60
+ if (rule.slug === void 0) return true;
61
+ if (slug === void 0) return false;
62
+ return rule.slug instanceof RegExp ? rule.slug.test(slug) : rule.slug === slug;
63
+ };
64
+ const ruleMatches = (rule, { method, slug, kind, path }) => ruleMatchesMethod(rule, method) && ruleMatchesSlug(rule, slug) && (rule.kind === void 0 || rule.kind === kind) && (rule.path === void 0 || rule.path.test(path));
65
+ const isOperationExcluded = async (filters, op) => {
66
+ for (const rule of filters.excludeOperations) if (typeof rule === "function" ? await rule(op) === true : ruleMatches(rule, op)) return true;
67
+ return false;
68
+ };
69
+ const filterOperations = async ({ paths, slug, kind, filters }) => {
70
+ if (filters.excludeOperations.length === 0) return paths;
71
+ for (const [path, item] of Object.entries(paths)) {
72
+ if (!item) continue;
73
+ let remaining = 0;
74
+ const ops = item;
75
+ for (const method of HTTP_METHODS) {
76
+ if (!ops[method]) continue;
77
+ if (await isOperationExcluded(filters, {
78
+ method,
79
+ path,
80
+ slug,
81
+ kind
82
+ })) delete ops[method];
83
+ else remaining += 1;
84
+ }
85
+ if (remaining === 0) delete paths[path];
86
+ }
87
+ return paths;
88
+ };
89
+ export { filterOperations, shouldIncludeCollection, shouldIncludeGlobal };
90
+
91
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","names":[],"sources":["../../../src/server/spec/filters.ts"],"sourcesContent":["import type { PathsObject } from '@scalar/openapi-types/3.2'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type {\n EntityKind,\n EntityMatcher,\n HttpMethod,\n OperationContext,\n OperationKind,\n OperationRule,\n ResolvedFilters,\n} from '@/shared/types/index.js'\n\nconst SYSTEM_COLLECTIONS = new Set([\n 'payload-jobs',\n 'payload-locked-documents',\n 'payload-preferences',\n 'payload-migrations',\n 'payload-kv',\n 'payload-llm-instructions',\n 'payload-query-presets',\n])\n\nconst SYSTEM_GLOBALS = new Set(['payload-jobs-stats'])\n\nconst HTTP_METHODS: HttpMethod[] = ['get', 'post', 'patch', 'put', 'delete']\n\ninterface EntityRef {\n slug: string\n kind: EntityKind\n}\n\nconst matchesEntity = (matcher: EntityMatcher, { slug, kind }: EntityRef): boolean => {\n if (typeof matcher === 'string') return matcher === slug\n if (matcher instanceof RegExp) return matcher.test(slug)\n return matcher.kind === kind && matcher.slug === slug\n}\n\nconst anyMatch = (matchers: EntityMatcher[], entity: EntityRef): boolean =>\n matchers.some((m) => matchesEntity(m, entity))\n\nconst isHiddenCollection = (collection: SanitizedCollectionConfig): boolean => {\n if ((collection as { hidden?: unknown }).hidden === true) return true\n const hidden = collection.admin?.hidden\n if (typeof hidden === 'function') {\n try {\n return hidden({ user: null } as never) === true\n } catch {\n return false\n }\n }\n return hidden === true\n}\n\nconst passesIncludeExclude = (entity: EntityRef, filters: ResolvedFilters): boolean => {\n if (filters.include.length > 0 && !anyMatch(filters.include, entity)) return false\n if (anyMatch(filters.exclude, entity)) return false\n return true\n}\n\nexport const shouldIncludeCollection = (collection: SanitizedCollectionConfig, filters: ResolvedFilters): boolean => {\n const { slug } = collection\n if (SYSTEM_COLLECTIONS.has(slug) && !filters.includeSystem) return false\n if (!filters.includeHidden && isHiddenCollection(collection)) return false\n return passesIncludeExclude({ slug, kind: 'collection' }, filters)\n}\n\nexport const shouldIncludeGlobal = (global: SanitizedGlobalConfig, filters: ResolvedFilters): boolean => {\n if (SYSTEM_GLOBALS.has(global.slug) && !filters.includeSystem) return false\n return passesIncludeExclude({ slug: global.slug, kind: 'global' }, filters)\n}\n\nconst ruleMatchesMethod = (rule: OperationRule, method: HttpMethod): boolean => {\n if (rule.method === undefined) return true\n return Array.isArray(rule.method) ? rule.method.includes(method) : rule.method === method\n}\n\nconst ruleMatchesSlug = (rule: OperationRule, slug: string | undefined): boolean => {\n if (rule.slug === undefined) return true\n if (slug === undefined) return false\n return rule.slug instanceof RegExp ? rule.slug.test(slug) : rule.slug === slug\n}\n\nconst ruleMatches = (rule: OperationRule, { method, slug, kind, path }: OperationContext): boolean =>\n ruleMatchesMethod(rule, method) &&\n ruleMatchesSlug(rule, slug) &&\n (rule.kind === undefined || rule.kind === kind) &&\n (rule.path === undefined || rule.path.test(path))\n\nconst isOperationExcluded = async (filters: ResolvedFilters, op: OperationContext): Promise<boolean> => {\n for (const rule of filters.excludeOperations) {\n if (typeof rule === 'function' ? (await rule(op)) === true : ruleMatches(rule, op)) return true\n }\n return false\n}\n\nexport const filterOperations = async ({\n paths,\n slug,\n kind,\n filters,\n}: {\n paths: PathsObject\n slug?: string\n kind: OperationKind\n filters: ResolvedFilters\n}): Promise<PathsObject> => {\n if (filters.excludeOperations.length === 0) return paths\n\n for (const [path, item] of Object.entries(paths)) {\n if (!item) continue\n let remaining = 0\n const ops = item as Record<HttpMethod, unknown>\n for (const method of HTTP_METHODS) {\n if (!ops[method]) continue\n if (await isOperationExcluded(filters, { method, path, slug, kind })) {\n delete ops[method]\n } else {\n remaining += 1\n }\n }\n if (remaining === 0) delete paths[path]\n }\n return paths\n}\n"],"mappings":"AAaA,MAAM,qCAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,iCAAiB,IAAI,IAAI,CAAC,oBAAoB,CAAC;AAErD,MAAM,eAA6B;CAAC;CAAO;CAAQ;CAAS;CAAO;AAAQ;AAO3E,MAAM,iBAAiB,SAAwB,EAAE,MAAM,WAA+B;CACpF,IAAI,OAAO,YAAY,UAAU,OAAO,YAAY;CACpD,IAAI,mBAAmB,QAAQ,OAAO,QAAQ,KAAK,IAAI;CACvD,OAAO,QAAQ,SAAS,QAAQ,QAAQ,SAAS;AACnD;AAEA,MAAM,YAAY,UAA2B,WAC3C,SAAS,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAE/C,MAAM,sBAAsB,eAAmD;CAC7E,IAAK,WAAoC,WAAW,MAAM,OAAO;CACjE,MAAM,SAAS,WAAW,OAAO;CACjC,IAAI,OAAO,WAAW,YACpB,IAAI;EACF,OAAO,OAAO,EAAE,MAAM,KAAK,CAAU,MAAM;CAC7C,QAAQ;EACN,OAAO;CACT;CAEF,OAAO,WAAW;AACpB;AAEA,MAAM,wBAAwB,QAAmB,YAAsC;CACrF,IAAI,QAAQ,QAAQ,SAAS,KAAK,CAAC,SAAS,QAAQ,SAAS,MAAM,GAAG,OAAO;CAC7E,IAAI,SAAS,QAAQ,SAAS,MAAM,GAAG,OAAO;CAC9C,OAAO;AACT;AAEA,MAAa,2BAA2B,YAAuC,YAAsC;CACnH,MAAM,EAAE,SAAS;CACjB,IAAI,mBAAmB,IAAI,IAAI,KAAK,CAAC,QAAQ,eAAe,OAAO;CACnE,IAAI,CAAC,QAAQ,iBAAiB,mBAAmB,UAAU,GAAG,OAAO;CACrE,OAAO,qBAAqB;EAAE;EAAM,MAAM;CAAa,GAAG,OAAO;AACnE;AAEA,MAAa,uBAAuB,QAA+B,YAAsC;CACvG,IAAI,eAAe,IAAI,OAAO,IAAI,KAAK,CAAC,QAAQ,eAAe,OAAO;CACtE,OAAO,qBAAqB;EAAE,MAAM,OAAO;EAAM,MAAM;CAAS,GAAG,OAAO;AAC5E;AAEA,MAAM,qBAAqB,MAAqB,WAAgC;CAC9E,IAAI,KAAK,WAAW,KAAA,GAAW,OAAO;CACtC,OAAO,MAAM,QAAQ,KAAK,MAAM,IAAI,KAAK,OAAO,SAAS,MAAM,IAAI,KAAK,WAAW;AACrF;AAEA,MAAM,mBAAmB,MAAqB,SAAsC;CAClF,IAAI,KAAK,SAAS,KAAA,GAAW,OAAO;CACpC,IAAI,SAAS,KAAA,GAAW,OAAO;CAC/B,OAAO,KAAK,gBAAgB,SAAS,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS;AAC5E;AAEA,MAAM,eAAe,MAAqB,EAAE,QAAQ,MAAM,MAAM,WAC9D,kBAAkB,MAAM,MAAM,KAC9B,gBAAgB,MAAM,IAAI,MACzB,KAAK,SAAS,KAAA,KAAa,KAAK,SAAS,UACzC,KAAK,SAAS,KAAA,KAAa,KAAK,KAAK,KAAK,IAAI;AAEjD,MAAM,sBAAsB,OAAO,SAA0B,OAA2C;CACtG,KAAK,MAAM,QAAQ,QAAQ,mBACzB,IAAI,OAAO,SAAS,aAAc,MAAM,KAAK,EAAE,MAAO,OAAO,YAAY,MAAM,EAAE,GAAG,OAAO;CAE7F,OAAO;AACT;AAEA,MAAa,mBAAmB,OAAO,EACrC,OACA,MACA,MACA,cAM0B;CAC1B,IAAI,QAAQ,kBAAkB,WAAW,GAAG,OAAO;CAEnD,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,CAAC,MAAM;EACX,IAAI,YAAY;EAChB,MAAM,MAAM;EACZ,KAAK,MAAM,UAAU,cAAc;GACjC,IAAI,CAAC,IAAI,SAAS;GAClB,IAAI,MAAM,oBAAoB,SAAS;IAAE;IAAQ;IAAM;IAAM;GAAK,CAAC,GACjE,OAAO,IAAI;QAEX,aAAa;EAEjB;EACA,IAAI,cAAc,GAAG,OAAO,MAAM;CACpC;CACA,OAAO;AACT"}
@@ -0,0 +1,11 @@
1
+ import { BuildContext } from "../../shared/types/index.js";
2
+ import { SanitizedCollectionConfig } from "payload";
3
+ import { PathsObject, SchemaObject } from "@scalar/openapi-types/3.2";
4
+ export declare const applyHierarchy: ({ collection, base, paths, schemas, ctx }: {
5
+ collection: SanitizedCollectionConfig;
6
+ base: string;
7
+ paths: PathsObject;
8
+ schemas: Record<string, SchemaObject>;
9
+ ctx: BuildContext;
10
+ }) => void;
11
+ //# sourceMappingURL=hierarchy.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { createSchemaName, querySchemaName, updateSchemaName } from "./names.js";
2
+ import { makeT } from "../../shared/translations/index.js";
3
+ const applyHierarchy = ({ collection, base, paths, schemas, ctx }) => {
4
+ const { hierarchy } = collection;
5
+ if (!hierarchy) return;
6
+ const t = makeT(ctx.i18n);
7
+ const pathFields = {
8
+ [hierarchy.slugPathFieldName]: t("schemaHierarchySlugPath"),
9
+ [hierarchy.titlePathFieldName]: t("schemaHierarchyTitlePath")
10
+ };
11
+ const read = schemas[base]?.properties;
12
+ for (const [name, description] of Object.entries(pathFields)) {
13
+ if (read?.[name]) read[name] = {
14
+ ...read[name],
15
+ readOnly: true,
16
+ description
17
+ };
18
+ for (const other of [
19
+ createSchemaName(base),
20
+ updateSchemaName(base),
21
+ querySchemaName(base)
22
+ ]) delete schemas[other]?.properties?.[name];
23
+ }
24
+ const param = {
25
+ name: "computeHierarchyPaths",
26
+ in: "query",
27
+ description: t("paramComputeHierarchyPaths", {
28
+ slugPath: hierarchy.slugPathFieldName,
29
+ titlePath: hierarchy.titlePathFieldName
30
+ }),
31
+ schema: { type: "boolean" }
32
+ };
33
+ const route = `${ctx.apiRoute}/${collection.slug}`;
34
+ for (const op of [paths[route]?.get, paths[`${route}/{id}`]?.get]) op?.parameters?.push(param);
35
+ };
36
+ export { applyHierarchy };
37
+
38
+ //# sourceMappingURL=hierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hierarchy.js","names":[],"sources":["../../../src/server/spec/hierarchy.ts"],"sourcesContent":["import type { OperationObject, ParameterObject, PathsObject, SchemaObject } from '@scalar/openapi-types/3.2'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { createSchemaName, querySchemaName, updateSchemaName } from '@/server/spec/names.js'\nimport { makeT } from '@/shared/translations/index.js'\nimport type { BuildContext } from '@/shared/types/index.js'\n\nexport const applyHierarchy = ({\n collection,\n base,\n paths,\n schemas,\n ctx,\n}: {\n collection: SanitizedCollectionConfig\n base: string\n paths: PathsObject\n schemas: Record<string, SchemaObject>\n ctx: BuildContext\n}): void => {\n const { hierarchy } = collection\n if (!hierarchy) return\n const t = makeT(ctx.i18n)\n const pathFields = {\n [hierarchy.slugPathFieldName]: t('schemaHierarchySlugPath'),\n [hierarchy.titlePathFieldName]: t('schemaHierarchyTitlePath'),\n }\n\n const read = schemas[base]?.properties\n for (const [name, description] of Object.entries(pathFields)) {\n if (read?.[name]) read[name] = { ...read[name], readOnly: true, description }\n for (const other of [createSchemaName(base), updateSchemaName(base), querySchemaName(base)]) {\n delete schemas[other]?.properties?.[name]\n }\n }\n\n const param: ParameterObject = {\n name: 'computeHierarchyPaths',\n in: 'query',\n description: t('paramComputeHierarchyPaths', {\n slugPath: hierarchy.slugPathFieldName,\n titlePath: hierarchy.titlePathFieldName,\n }),\n schema: { type: 'boolean' },\n }\n const route = `${ctx.apiRoute}/${collection.slug}`\n for (const op of [paths[route]?.get, paths[`${route}/{id}`]?.get] as (OperationObject | undefined)[]) {\n op?.parameters?.push(param)\n }\n}\n"],"mappings":";;AAOA,MAAa,kBAAkB,EAC7B,YACA,MACA,OACA,SACA,UAOU;CACV,MAAM,EAAE,cAAc;CACtB,IAAI,CAAC,WAAW;CAChB,MAAM,IAAI,MAAM,IAAI,IAAI;CACxB,MAAM,aAAa;GAChB,UAAU,oBAAoB,EAAE,yBAAyB;GACzD,UAAU,qBAAqB,EAAE,0BAA0B;CAC9D;CAEA,MAAM,OAAO,QAAQ,KAAK,EAAE;CAC5B,KAAK,MAAM,CAAC,MAAM,gBAAgB,OAAO,QAAQ,UAAU,GAAG;EAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ;GAAE,GAAG,KAAK;GAAO,UAAU;GAAM;EAAY;EAC5E,KAAK,MAAM,SAAS;GAAC,iBAAiB,IAAI;GAAG,iBAAiB,IAAI;GAAG,gBAAgB,IAAI;EAAC,GACxF,OAAO,QAAQ,MAAM,EAAE,aAAa;CAExC;CAEA,MAAM,QAAyB;EAC7B,MAAM;EACN,IAAI;EACJ,aAAa,EAAE,8BAA8B;GAC3C,UAAU,UAAU;GACpB,WAAW,UAAU;EACvB,CAAC;EACD,QAAQ,EAAE,MAAM,UAAU;CAC5B;CACA,MAAM,QAAQ,GAAG,IAAI,SAAS,GAAG,WAAW;CAC5C,KAAK,MAAM,MAAM,CAAC,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,MAAM,OAAO,EAAE,GAAG,GAC9D,IAAI,YAAY,KAAK,KAAK;AAE9B"}
@@ -10,5 +10,5 @@ export declare const populateSchemaName: (base: string) => string;
10
10
  export declare const joinsSchemaName: (base: string) => string;
11
11
  export declare const refTo: (name: string) => string;
12
12
  type JsonValue = Record<string, unknown> | unknown[] | string | number | boolean | null;
13
- export declare const rewriteRefs: (node: JsonValue, blockSlugs?: Set<string>) => JsonValue;
14
- export {};
13
+ export declare const rewriteRefs: (node: JsonValue, blockSlugs?: Set<string>, defs?: Map<string, unknown>) => JsonValue;
14
+ //# sourceMappingURL=names.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { upperFirst } from "../../shared/utils.js";
2
+ const schemaName = (slug) => upperFirst(slug.replace(/-([a-z])/g, (_, c) => c.toUpperCase()));
3
+ const blockSchemaName = (slug) => {
4
+ const stripped = slug.replace(/^block[-_]?/i, "").replace(/[-_]?block$/i, "");
5
+ return `Block${schemaName(stripped || slug)}`;
6
+ };
7
+ const globalSchemaName = (slug) => `Global${schemaName(slug)}`;
8
+ const listSchemaName = (base) => `${base}List`;
9
+ const createSchemaName = (base) => `${base}Create`;
10
+ const updateSchemaName = (base) => `${base}Update`;
11
+ const querySchemaName = (base) => `${base}QueryOperations`;
12
+ const selectSchemaName = (base) => `${base}Select`;
13
+ const populateSchemaName = (base) => `${base}Populate`;
14
+ const joinsSchemaName = (base) => `${base}Joins`;
15
+ const refTo = (name) => `#/components/schemas/${name}`;
16
+ const REF = /^#\/(?:definitions|\$defs|components\/schemas)\/(.+)$/;
17
+ const findBlockSlug = (name, blockSlugs) => [...blockSlugs].find((s) => s === name || schemaName(s) === schemaName(name));
18
+ const normalizeRef = (ref, blockSlugs) => {
19
+ const match = REF.exec(ref);
20
+ if (!match) return ref;
21
+ const captured = match[1];
22
+ const blockSlug = findBlockSlug(captured, blockSlugs);
23
+ if (blockSlug) return `#/components/schemas/${blockSchemaName(blockSlug)}`;
24
+ return `#/components/schemas/${schemaName(captured)}`;
25
+ };
26
+ const rewriteRefs = (node, blockSlugs = /* @__PURE__ */ new Set(), defs = /* @__PURE__ */ new Map()) => {
27
+ if (Array.isArray(node)) return node.map((item) => rewriteRefs(item, blockSlugs, defs));
28
+ if (node && typeof node === "object") {
29
+ const { $ref, ...rest } = node;
30
+ const name = typeof $ref === "string" ? REF.exec($ref)?.[1] : void 0;
31
+ if (name && defs.has(name) && !findBlockSlug(name, blockSlugs)) return rewriteRefs({
32
+ ...defs.get(name),
33
+ ...rest
34
+ }, blockSlugs, defs);
35
+ const out = {};
36
+ for (const [key, value] of Object.entries(node)) out[key] = key === "$ref" && typeof value === "string" ? normalizeRef(value, blockSlugs) : rewriteRefs(value, blockSlugs, defs);
37
+ return out;
38
+ }
39
+ return node;
40
+ };
41
+ export { blockSchemaName, createSchemaName, globalSchemaName, joinsSchemaName, listSchemaName, populateSchemaName, querySchemaName, refTo, rewriteRefs, schemaName, selectSchemaName, updateSchemaName };
42
+
43
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","names":[],"sources":["../../../src/server/spec/names.ts"],"sourcesContent":["import { upperFirst } from '@/shared/utils.js'\n\nexport const schemaName = (slug: string): string =>\n upperFirst(slug.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase()))\n\nexport const blockSchemaName = (slug: string): string => {\n const stripped = slug.replace(/^block[-_]?/i, '').replace(/[-_]?block$/i, '')\n return `Block${schemaName(stripped || slug)}`\n}\n\nexport const globalSchemaName = (slug: string): string => `Global${schemaName(slug)}`\n\nexport const listSchemaName = (base: string): string => `${base}List`\nexport const createSchemaName = (base: string): string => `${base}Create`\nexport const updateSchemaName = (base: string): string => `${base}Update`\nexport const querySchemaName = (base: string): string => `${base}QueryOperations`\nexport const selectSchemaName = (base: string): string => `${base}Select`\nexport const populateSchemaName = (base: string): string => `${base}Populate`\nexport const joinsSchemaName = (base: string): string => `${base}Joins`\n\nexport const refTo = (name: string): string => `#/components/schemas/${name}`\n\ntype JsonValue = Record<string, unknown> | unknown[] | string | number | boolean | null\n\nconst REF = /^#\\/(?:definitions|\\$defs|components\\/schemas)\\/(.+)$/\n\nconst findBlockSlug = (name: string, blockSlugs: Set<string>): string | undefined =>\n [...blockSlugs].find((s) => s === name || schemaName(s) === schemaName(name))\n\nconst normalizeRef = (ref: string, blockSlugs: Set<string>): string => {\n const match = REF.exec(ref)\n if (!match) return ref\n const captured = match[1]!\n const blockSlug = findBlockSlug(captured, blockSlugs)\n if (blockSlug) return `#/components/schemas/${blockSchemaName(blockSlug)}`\n return `#/components/schemas/${schemaName(captured)}`\n}\n\nexport const rewriteRefs = (\n node: JsonValue,\n blockSlugs: Set<string> = new Set(),\n defs: Map<string, unknown> = new Map(),\n): JsonValue => {\n if (Array.isArray(node)) return node.map((item) => rewriteRefs(item as JsonValue, blockSlugs, defs))\n if (node && typeof node === 'object') {\n const { $ref, ...rest } = node\n const name = typeof $ref === 'string' ? REF.exec($ref)?.[1] : undefined\n if (name && defs.has(name) && !findBlockSlug(name, blockSlugs)) {\n return rewriteRefs({ ...(defs.get(name) as Record<string, unknown>), ...rest }, blockSlugs, defs)\n }\n const out: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(node)) {\n out[key] =\n key === '$ref' && typeof value === 'string'\n ? normalizeRef(value, blockSlugs)\n : rewriteRefs(value as JsonValue, blockSlugs, defs)\n }\n return out\n }\n return node\n}\n"],"mappings":";AAEA,MAAa,cAAc,SACzB,WAAW,KAAK,QAAQ,cAAc,GAAG,MAAc,EAAE,YAAY,CAAC,CAAC;AAEzE,MAAa,mBAAmB,SAAyB;CACvD,MAAM,WAAW,KAAK,QAAQ,gBAAgB,EAAE,CAAC,CAAC,QAAQ,gBAAgB,EAAE;CAC5E,OAAO,QAAQ,WAAW,YAAY,IAAI;AAC5C;AAEA,MAAa,oBAAoB,SAAyB,SAAS,WAAW,IAAI;AAElF,MAAa,kBAAkB,SAAyB,GAAG,KAAK;AAChE,MAAa,oBAAoB,SAAyB,GAAG,KAAK;AAClE,MAAa,oBAAoB,SAAyB,GAAG,KAAK;AAClE,MAAa,mBAAmB,SAAyB,GAAG,KAAK;AACjE,MAAa,oBAAoB,SAAyB,GAAG,KAAK;AAClE,MAAa,sBAAsB,SAAyB,GAAG,KAAK;AACpE,MAAa,mBAAmB,SAAyB,GAAG,KAAK;AAEjE,MAAa,SAAS,SAAyB,wBAAwB;AAIvE,MAAM,MAAM;AAEZ,MAAM,iBAAiB,MAAc,eACnC,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,WAAW,CAAC,MAAM,WAAW,IAAI,CAAC;AAE9E,MAAM,gBAAgB,KAAa,eAAoC;CACrE,MAAM,QAAQ,IAAI,KAAK,GAAG;CAC1B,IAAI,CAAC,OAAO,OAAO;CACnB,MAAM,WAAW,MAAM;CACvB,MAAM,YAAY,cAAc,UAAU,UAAU;CACpD,IAAI,WAAW,OAAO,wBAAwB,gBAAgB,SAAS;CACvE,OAAO,wBAAwB,WAAW,QAAQ;AACpD;AAEA,MAAa,eACX,MACA,6BAA0B,IAAI,IAAI,GAClC,uBAA6B,IAAI,IAAI,MACvB;CACd,IAAI,MAAM,QAAQ,IAAI,GAAG,OAAO,KAAK,KAAK,SAAS,YAAY,MAAmB,YAAY,IAAI,CAAC;CACnG,IAAI,QAAQ,OAAO,SAAS,UAAU;EACpC,MAAM,EAAE,MAAM,GAAG,SAAS;EAC1B,MAAM,OAAO,OAAO,SAAS,WAAW,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,KAAA;EAC9D,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,cAAc,MAAM,UAAU,GAC3D,OAAO,YAAY;GAAE,GAAI,KAAK,IAAI,IAAI;GAA+B,GAAG;EAAK,GAAG,YAAY,IAAI;EAElG,MAAM,MAA+B,CAAC;EACtC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAC5C,IAAI,OACF,QAAQ,UAAU,OAAO,UAAU,WAC/B,aAAa,OAAO,UAAU,IAC9B,YAAY,OAAoB,YAAY,IAAI;EAExD,OAAO;CACT;CACA,OAAO;AACT"}
@@ -0,0 +1,57 @@
1
+ import { BuildContext, Entity } from "../../shared/types/index.js";
2
+ import { Field } from "payload";
3
+ import { ParameterObject, SchemaObject } from "@scalar/openapi-types/3.2";
4
+ export declare const buildSelectSchema: ({ fields, ctx }: {
5
+ fields: Field[];
6
+ ctx: BuildContext;
7
+ }) => SchemaObject;
8
+ export declare const buildPopulateSchema: ({ fields, ctx }: {
9
+ fields: Field[];
10
+ ctx: BuildContext;
11
+ }) => SchemaObject | undefined;
12
+ export declare const buildJoinsSchema: ({ fields, ctx }: {
13
+ fields: Field[];
14
+ ctx: BuildContext;
15
+ }) => SchemaObject | undefined;
16
+ export interface ParamSchemas {
17
+ select: SchemaObject;
18
+ populate?: SchemaObject;
19
+ joins?: SchemaObject;
20
+ }
21
+ export declare const buildParamSchemas: ({ fields, ctx }: {
22
+ fields: Field[];
23
+ ctx: BuildContext;
24
+ }) => ParamSchemas;
25
+ export declare const collectionHasFilters: (fields: Field[]) => boolean;
26
+ export declare const buildQueryOperationsSchema: ({ base, fields, ctx }: {
27
+ base: string;
28
+ fields: Field[];
29
+ ctx: BuildContext;
30
+ }) => SchemaObject;
31
+ export interface ReadParamRefs {
32
+ select: boolean;
33
+ populate: boolean;
34
+ joins: boolean;
35
+ }
36
+ export declare const commonReadParams: ({ base, ctx, refs }: {
37
+ base: string;
38
+ ctx: BuildContext;
39
+ refs: ReadParamRefs;
40
+ }) => ParameterObject[];
41
+ export type WriteOperation = 'create' | 'update' | 'updateByID' | 'delete' | 'duplicate' | 'globalUpdate';
42
+ export declare const writeParams: ({ base, entity, ctx, refs, operation }: {
43
+ base: string;
44
+ entity: Entity;
45
+ ctx: BuildContext;
46
+ refs: ReadParamRefs;
47
+ operation: WriteOperation;
48
+ }) => ParameterObject[];
49
+ export declare const validateParams: (ctx: BuildContext) => ParameterObject[];
50
+ export declare const whereParam: (base: string) => ParameterObject;
51
+ export declare const buildListParams: ({ base, fields, ctx, refs }: {
52
+ base: string;
53
+ fields: Field[];
54
+ ctx: BuildContext;
55
+ refs: ReadParamRefs;
56
+ }) => ParameterObject[];
57
+ //# sourceMappingURL=params.d.ts.map