@payloadcms/figma 0.0.1-alpha.8 → 0.1.0-alpha.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 (470) hide show
  1. package/dist/api/control-plane.d.ts +56 -7
  2. package/dist/api/control-plane.js +188 -74
  3. package/dist/api/error-response.d.ts +36 -0
  4. package/dist/api/error-response.js +66 -0
  5. package/dist/api/figma-api.d.ts +24 -3
  6. package/dist/api/figma-api.js +110 -34
  7. package/dist/auth/browser.d.ts +0 -1
  8. package/dist/auth/browser.js +0 -2
  9. package/dist/auth/callback-server.d.ts +19 -8
  10. package/dist/auth/callback-server.js +72 -32
  11. package/dist/auth/credentials.d.ts +20 -0
  12. package/dist/auth/credentials.js +19 -0
  13. package/dist/auth/crypto-utils.d.ts +28 -1
  14. package/dist/auth/crypto-utils.js +132 -23
  15. package/dist/auth/jwt-validator.d.ts +23 -6
  16. package/dist/auth/jwt-validator.js +35 -9
  17. package/dist/auth/oauth-flow.d.ts +19 -4
  18. package/dist/auth/oauth-flow.js +151 -34
  19. package/dist/auth/paste-code.d.ts +33 -0
  20. package/dist/auth/paste-code.js +87 -0
  21. package/dist/auth/pkce.d.ts +0 -1
  22. package/dist/auth/pkce.js +0 -2
  23. package/dist/auth/project-token.d.ts +32 -17
  24. package/dist/auth/project-token.js +176 -68
  25. package/dist/auth/refresh.d.ts +2 -2
  26. package/dist/auth/refresh.js +25 -14
  27. package/dist/auth/token-store-migration.d.ts +57 -0
  28. package/dist/auth/token-store-migration.js +154 -0
  29. package/dist/auth/token-store.d.ts +63 -98
  30. package/dist/auth/token-store.js +405 -124
  31. package/dist/auth/types.d.ts +40 -6
  32. package/dist/auth/types.js +1 -3
  33. package/dist/cli.d.ts +0 -1
  34. package/dist/cli.js +102 -8
  35. package/dist/commands/bootstrap.d.ts +17 -0
  36. package/dist/commands/bootstrap.js +88 -0
  37. package/dist/commands/build-lambda-zip.d.ts +4 -0
  38. package/dist/commands/build-lambda-zip.js +17 -0
  39. package/dist/commands/debug.d.ts +7 -0
  40. package/dist/commands/debug.js +178 -0
  41. package/dist/commands/deploy.d.ts +11 -1
  42. package/dist/commands/deploy.js +193 -153
  43. package/dist/commands/dump-tokens.d.ts +11 -0
  44. package/dist/commands/dump-tokens.js +67 -0
  45. package/dist/commands/env.d.ts +12 -0
  46. package/dist/commands/env.js +86 -0
  47. package/dist/commands/init.d.ts +9 -6
  48. package/dist/commands/init.js +232 -152
  49. package/dist/commands/list-tokens.d.ts +3 -4
  50. package/dist/commands/list-tokens.js +24 -11
  51. package/dist/commands/login.d.ts +8 -2
  52. package/dist/commands/login.js +34 -18
  53. package/dist/commands/logout.d.ts +5 -5
  54. package/dist/commands/logout.js +77 -17
  55. package/dist/commands/upgrade.d.ts +4 -0
  56. package/dist/commands/upgrade.js +329 -0
  57. package/dist/commands/upload-schema.d.ts +8 -0
  58. package/dist/commands/upload-schema.js +91 -0
  59. package/dist/config/oauth.d.ts +17 -12
  60. package/dist/config/oauth.js +38 -39
  61. package/dist/constants.d.ts +63 -19
  62. package/dist/constants.js +158 -20
  63. package/dist/db-content-api/generated/content-api-types.d.ts +7574 -0
  64. package/dist/db-content-api/generated/content-api-types.js +5 -0
  65. package/dist/db-content-api/index.d.ts +37 -0
  66. package/dist/db-content-api/index.js +938 -0
  67. package/dist/db-content-api/temp-utilities/slug.d.ts +1 -0
  68. package/dist/db-content-api/temp-utilities/slug.js +1 -0
  69. package/dist/db-content-api/temp-utilities/sorting.d.ts +2 -0
  70. package/dist/db-content-api/temp-utilities/sorting.js +37 -0
  71. package/dist/db-content-api/temp-utilities/types.d.ts +21 -0
  72. package/dist/db-content-api/temp-utilities/types.js +13 -0
  73. package/dist/db-content-api/temp-utilities/unwrapDocument.d.ts +38 -0
  74. package/dist/db-content-api/temp-utilities/unwrapDocument.js +62 -0
  75. package/dist/db-content-api/utilities/auth.d.ts +29 -0
  76. package/dist/db-content-api/utilities/auth.js +82 -0
  77. package/dist/db-content-api/utilities/data/applyDefaults.d.ts +6 -0
  78. package/dist/db-content-api/utilities/data/applyDefaults.js +75 -0
  79. package/dist/db-content-api/utilities/data/castFieldValue.d.ts +10 -0
  80. package/dist/db-content-api/utilities/data/castFieldValue.js +66 -0
  81. package/dist/db-content-api/utilities/data/index.d.ts +48 -0
  82. package/dist/db-content-api/utilities/data/index.js +299 -0
  83. package/dist/db-content-api/utilities/data/pointShape.d.ts +3 -0
  84. package/dist/db-content-api/utilities/data/pointShape.js +43 -0
  85. package/dist/db-content-api/utilities/data/removeVirtualFields.d.ts +11 -0
  86. package/dist/db-content-api/utilities/data/removeVirtualFields.js +52 -0
  87. package/dist/db-content-api/utilities/data/richTextShape.d.ts +3 -0
  88. package/dist/db-content-api/utilities/data/richTextShape.js +56 -0
  89. package/dist/db-content-api/utilities/data/stripFields.d.ts +47 -0
  90. package/dist/db-content-api/utilities/data/stripFields.js +170 -0
  91. package/dist/db-content-api/utilities/data/transformPublishedLocale.d.ts +22 -0
  92. package/dist/db-content-api/utilities/data/transformPublishedLocale.js +40 -0
  93. package/dist/db-content-api/utilities/data/validateRelationships.d.ts +6 -0
  94. package/dist/db-content-api/utilities/data/validateRelationships.js +100 -0
  95. package/dist/db-content-api/utilities/joins.d.ts +52 -0
  96. package/dist/db-content-api/utilities/joins.js +137 -0
  97. package/dist/db-content-api/utilities/locale/index.d.ts +9 -0
  98. package/dist/db-content-api/utilities/locale/index.js +19 -0
  99. package/dist/db-content-api/utilities/meta/buildLocalizedPaths.d.ts +10 -0
  100. package/dist/db-content-api/utilities/meta/buildLocalizedPaths.js +71 -0
  101. package/dist/db-content-api/utilities/meta/buildMeta.d.ts +41 -0
  102. package/dist/db-content-api/utilities/meta/buildMeta.js +39 -0
  103. package/dist/db-content-api/utilities/meta/buildPathTypes.d.ts +16 -0
  104. package/dist/db-content-api/utilities/meta/buildPathTypes.js +243 -0
  105. package/dist/db-content-api/utilities/meta/buildUniquePaths.d.ts +12 -0
  106. package/dist/db-content-api/utilities/meta/buildUniquePaths.js +60 -0
  107. package/dist/db-content-api/utilities/meta/normalizeLocaleInWhere.d.ts +9 -0
  108. package/dist/db-content-api/utilities/meta/normalizeLocaleInWhere.js +100 -0
  109. package/dist/db-content-api/utilities/resolveBlocks.d.ts +19 -0
  110. package/dist/db-content-api/utilities/resolveBlocks.js +31 -0
  111. package/dist/db-content-api/utilities/schema/buildDocumentSchema.d.ts +55 -0
  112. package/dist/db-content-api/utilities/schema/buildDocumentSchema.js +182 -0
  113. package/dist/db-content-api/utilities/where.d.ts +19 -0
  114. package/dist/db-content-api/utilities/where.js +106 -0
  115. package/dist/deploy/schedule-extract-plugin.d.ts +10 -0
  116. package/dist/deploy/schedule-extract-plugin.js +32 -0
  117. package/dist/endpoints/health.d.ts +2 -0
  118. package/dist/endpoints/health.js +9 -0
  119. package/dist/endpoints/schema.d.ts +2 -0
  120. package/dist/endpoints/schema.js +27 -0
  121. package/dist/exports/client.d.ts +2 -1
  122. package/dist/exports/client.js +2 -2
  123. package/dist/index.d.ts +2 -2
  124. package/dist/index.js +3 -3
  125. package/dist/lib/download-skill.d.ts +12 -0
  126. package/dist/lib/download-skill.js +77 -0
  127. package/dist/oauth/components/FigmaAvatar/index.d.ts +3 -0
  128. package/dist/oauth/components/FigmaAvatar/index.js +25 -0
  129. package/dist/oauth/components/FigmaAvatar/index.scss +12 -0
  130. package/dist/oauth/components/FigmaAvatarCell/index.d.ts +4 -0
  131. package/dist/oauth/components/FigmaAvatarCell/index.js +23 -0
  132. package/dist/oauth/components/FigmaAvatarCell/index.scss +5 -0
  133. package/dist/oauth/components/FigmaAvatarPlaceholder/index.d.ts +8 -0
  134. package/dist/oauth/components/FigmaAvatarPlaceholder/index.js +35 -0
  135. package/dist/oauth/components/FigmaAvatarPlaceholder/index.scss +28 -0
  136. package/dist/oauth/components/LoginButton/iframeAutoLogin.d.ts +81 -0
  137. package/dist/oauth/components/LoginButton/iframeAutoLogin.js +168 -0
  138. package/dist/oauth/components/LoginButton/index.d.ts +0 -1
  139. package/dist/oauth/components/LoginButton/index.js +156 -18
  140. package/dist/oauth/components/LoginButton/index.scss +75 -3
  141. package/dist/oauth/components/LogoutButton/index.d.ts +0 -1
  142. package/dist/oauth/components/LogoutButton/index.js +20 -9
  143. package/dist/oauth/defaults.d.ts +3 -2
  144. package/dist/oauth/defaults.js +79 -12
  145. package/dist/oauth/endpoints/getLoginEndpoint.d.ts +0 -1
  146. package/dist/oauth/endpoints/getLoginEndpoint.js +87 -84
  147. package/dist/oauth/endpoints/getLogoutEndpoint.d.ts +0 -1
  148. package/dist/oauth/endpoints/getLogoutEndpoint.js +7 -6
  149. package/dist/oauth/endpoints/getMetaEndpoint.d.ts +0 -1
  150. package/dist/oauth/endpoints/getMetaEndpoint.js +18 -5
  151. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts +0 -1
  152. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js +11 -4
  153. package/dist/oauth/exports/client.d.ts +0 -1
  154. package/dist/oauth/exports/client.js +0 -2
  155. package/dist/oauth/hooks/afterLogout.d.ts +0 -1
  156. package/dist/oauth/hooks/afterLogout.js +0 -2
  157. package/dist/oauth/hooks/me.d.ts +0 -1
  158. package/dist/oauth/hooks/me.js +0 -2
  159. package/dist/oauth/hooks/refresh.d.ts +0 -1
  160. package/dist/oauth/hooks/refresh.js +2 -3
  161. package/dist/oauth/index.d.ts +0 -1
  162. package/dist/oauth/index.js +27 -7
  163. package/dist/oauth/strategy/index.d.ts +0 -3
  164. package/dist/oauth/strategy/index.js +55 -34
  165. package/dist/oauth/types.d.ts +23 -7
  166. package/dist/oauth/types.js +0 -2
  167. package/dist/oauth/utilities/buildUnauthorizedRedirect.d.ts +14 -0
  168. package/dist/oauth/utilities/buildUnauthorizedRedirect.js +28 -0
  169. package/dist/oauth/utilities/clearCookie.d.ts +0 -1
  170. package/dist/oauth/utilities/clearCookie.js +5 -3
  171. package/dist/oauth/utilities/createCookieOptions.d.ts +0 -1
  172. package/dist/oauth/utilities/createCookieOptions.js +9 -4
  173. package/dist/oauth/utilities/createDebugLogger.d.ts +0 -1
  174. package/dist/oauth/utilities/createDebugLogger.js +0 -2
  175. package/dist/oauth/utilities/establishSession.d.ts +22 -0
  176. package/dist/oauth/utilities/establishSession.js +80 -0
  177. package/dist/oauth/utilities/exchangeCodeForAccessToken.d.ts +23 -0
  178. package/dist/oauth/utilities/exchangeCodeForAccessToken.js +26 -0
  179. package/dist/oauth/utilities/extractOrigin.d.ts +0 -1
  180. package/dist/oauth/utilities/extractOrigin.js +0 -2
  181. package/dist/oauth/utilities/figmaHostnames.d.ts +2 -0
  182. package/dist/oauth/utilities/figmaHostnames.js +24 -0
  183. package/dist/oauth/utilities/getAdminCollectionSlug.d.ts +0 -1
  184. package/dist/oauth/utilities/getAdminCollectionSlug.js +0 -2
  185. package/dist/oauth/utilities/getAuthorizeURL.d.ts +65 -2
  186. package/dist/oauth/utilities/getAuthorizeURL.js +57 -4
  187. package/dist/oauth/utilities/getCookieExpiration.d.ts +0 -1
  188. package/dist/oauth/utilities/getCookieExpiration.js +0 -2
  189. package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts +0 -1
  190. package/dist/oauth/utilities/getSecondsFromTokenExp.js +0 -2
  191. package/dist/oauth/utilities/getTokenExp.d.ts +0 -1
  192. package/dist/oauth/utilities/getTokenExp.js +0 -2
  193. package/dist/oauth/utilities/getUsernameField.d.ts +0 -1
  194. package/dist/oauth/utilities/getUsernameField.js +0 -2
  195. package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts +0 -1
  196. package/dist/oauth/utilities/hasUserTokenPropsChanged.js +0 -2
  197. package/dist/oauth/utilities/isAbsoluteURL.d.ts +1 -0
  198. package/dist/oauth/utilities/isAbsoluteURL.js +1 -0
  199. package/dist/oauth/utilities/isDuplicateKeyError.d.ts +6 -0
  200. package/dist/oauth/utilities/isDuplicateKeyError.js +12 -0
  201. package/dist/oauth/utilities/mergeHeaders.d.ts +0 -1
  202. package/dist/oauth/utilities/mergeHeaders.js +0 -2
  203. package/dist/oauth/utilities/refreshTokens.d.ts +0 -1
  204. package/dist/oauth/utilities/refreshTokens.js +21 -13
  205. package/dist/oauth/utilities/withPartitionedCookie.d.ts +19 -0
  206. package/dist/oauth/utilities/withPartitionedCookie.js +26 -0
  207. package/dist/oauth/utils/getSearchParam.d.ts +17 -0
  208. package/dist/oauth/utils/getSearchParam.js +22 -0
  209. package/dist/plugin/adapter.d.ts +0 -1
  210. package/dist/plugin/adapter.js +0 -2
  211. package/dist/plugin/auth-preflight.d.ts +7 -0
  212. package/dist/plugin/auth-preflight.js +18 -0
  213. package/dist/plugin/bootstrap-preflight.d.ts +22 -0
  214. package/dist/plugin/bootstrap-preflight.js +43 -0
  215. package/dist/plugin/build-config.d.ts +27 -15
  216. package/dist/plugin/build-config.js +381 -18
  217. package/dist/plugin/dev-cookie-names.d.ts +13 -0
  218. package/dist/plugin/dev-cookie-names.js +17 -0
  219. package/dist/scss.d.js +2 -0
  220. package/dist/storage-content-api/api-types.d.ts +183 -0
  221. package/dist/storage-content-api/api-types.js +4 -0
  222. package/dist/storage-content-api/client-uploads/generate.d.ts +14 -0
  223. package/dist/storage-content-api/client-uploads/generate.js +69 -0
  224. package/dist/storage-content-api/client.d.ts +5 -0
  225. package/dist/storage-content-api/client.js +37 -0
  226. package/dist/storage-content-api/generateURL.d.ts +6 -0
  227. package/dist/storage-content-api/generateURL.js +6 -0
  228. package/dist/storage-content-api/handleDelete.d.ts +7 -0
  229. package/dist/storage-content-api/handleDelete.js +15 -0
  230. package/dist/storage-content-api/handleUpload.d.ts +10 -0
  231. package/dist/storage-content-api/handleUpload.js +162 -0
  232. package/dist/storage-content-api/index.d.ts +4 -0
  233. package/dist/storage-content-api/index.js +37 -0
  234. package/dist/storage-content-api/staticHandler.d.ts +9 -0
  235. package/dist/storage-content-api/staticHandler.js +61 -0
  236. package/dist/storage-content-api/types.d.ts +9 -0
  237. package/dist/storage-content-api/types.js +1 -0
  238. package/dist/storage-content-api/utilities/getSafeFilename.d.ts +11 -0
  239. package/dist/storage-content-api/utilities/getSafeFilename.js +59 -0
  240. package/dist/storage-content-api/utilities/index.d.ts +2 -0
  241. package/dist/storage-content-api/utilities/index.js +2 -0
  242. package/dist/storage-content-api/utilities/parseUploadReference.d.ts +17 -0
  243. package/dist/storage-content-api/utilities/parseUploadReference.js +27 -0
  244. package/dist/templates/.env.example +5 -0
  245. package/dist/templates/README.md +19 -0
  246. package/dist/types/config.d.ts +2 -2
  247. package/dist/types/config.js +0 -4
  248. package/dist/types.d.ts +10 -2
  249. package/dist/types.js +0 -2
  250. package/dist/utils/adapters/nextjs.d.ts +8 -0
  251. package/dist/utils/adapters/nextjs.js +61 -0
  252. package/dist/utils/adapters/nitro.d.ts +8 -0
  253. package/dist/utils/adapters/nitro.js +172 -0
  254. package/dist/utils/adapters/vite.d.ts +9 -0
  255. package/dist/utils/adapters/vite.js +31 -0
  256. package/dist/utils/asset-collection.d.ts +27 -7
  257. package/dist/utils/asset-collection.js +59 -32
  258. package/dist/utils/build-detection.d.ts +5 -12
  259. package/dist/utils/build-detection.js +74 -13
  260. package/dist/utils/build-lambda-zip.d.ts +25 -0
  261. package/dist/utils/build-lambda-zip.js +90 -0
  262. package/dist/utils/cache-bootstrap.d.ts +7 -0
  263. package/dist/utils/cache-bootstrap.js +16 -0
  264. package/dist/utils/config.d.ts +0 -1
  265. package/dist/utils/config.js +1 -3
  266. package/dist/utils/deploy-adapter.d.ts +45 -0
  267. package/dist/utils/deploy-adapter.js +56 -0
  268. package/dist/utils/download-template.d.ts +9 -2
  269. package/dist/utils/download-template.js +24 -20
  270. package/dist/utils/env-management.d.ts +24 -8
  271. package/dist/utils/env-management.js +119 -66
  272. package/dist/utils/format-env-suffix.d.ts +11 -0
  273. package/dist/utils/format-env-suffix.js +11 -0
  274. package/dist/utils/format.d.ts +0 -1
  275. package/dist/utils/format.js +0 -2
  276. package/dist/utils/formatter.d.ts +0 -1
  277. package/dist/utils/formatter.js +23 -13
  278. package/dist/utils/fs-utils.d.ts +12 -0
  279. package/dist/utils/fs-utils.js +55 -0
  280. package/dist/utils/git.d.ts +0 -1
  281. package/dist/utils/git.js +0 -2
  282. package/dist/utils/handle-upgrade.d.ts +8 -0
  283. package/dist/utils/handle-upgrade.js +39 -0
  284. package/dist/utils/is-debug.d.ts +0 -1
  285. package/dist/utils/is-debug.js +0 -2
  286. package/dist/utils/lambda-config.d.ts +3 -2
  287. package/dist/utils/lambda-config.js +75 -80
  288. package/dist/utils/load-payload-config.d.ts +9 -0
  289. package/dist/utils/load-payload-config.js +27 -0
  290. package/dist/utils/log.d.ts +0 -1
  291. package/dist/utils/log.js +0 -2
  292. package/dist/utils/messages.d.ts +1 -3
  293. package/dist/utils/messages.js +47 -13
  294. package/dist/utils/package-manager.d.ts +24 -1
  295. package/dist/utils/package-manager.js +53 -2
  296. package/dist/utils/parse-template-spec.d.ts +11 -0
  297. package/dist/utils/parse-template-spec.js +60 -0
  298. package/dist/utils/payload-config-ast.d.ts +27 -7
  299. package/dist/utils/payload-config-ast.js +106 -60
  300. package/dist/utils/payload-config-finder.d.ts +2 -3
  301. package/dist/utils/payload-config-finder.js +48 -11
  302. package/dist/utils/payload-config-modifier.d.ts +1 -2
  303. package/dist/utils/payload-config-modifier.js +114 -68
  304. package/dist/utils/payload-package-check.d.ts +28 -3
  305. package/dist/utils/payload-package-check.js +90 -31
  306. package/dist/utils/project.d.ts +8 -4
  307. package/dist/utils/project.js +63 -37
  308. package/dist/utils/resolve-environment.d.ts +13 -0
  309. package/dist/utils/resolve-environment.js +29 -0
  310. package/dist/utils/s3-upload.d.ts +7 -3
  311. package/dist/utils/s3-upload.js +44 -9
  312. package/dist/utils/token-display.d.ts +5 -2
  313. package/dist/utils/token-display.js +49 -24
  314. package/dist/utils/typescript-validator.d.ts +0 -1
  315. package/dist/utils/typescript-validator.js +4 -8
  316. package/dist/utils/version-check.d.ts +2 -0
  317. package/dist/utils/version-check.js +43 -0
  318. package/package.json +47 -16
  319. package/dist/api/control-plane.d.ts.map +0 -1
  320. package/dist/api/control-plane.js.map +0 -1
  321. package/dist/api/figma-api.d.ts.map +0 -1
  322. package/dist/api/figma-api.js.map +0 -1
  323. package/dist/auth/browser.d.ts.map +0 -1
  324. package/dist/auth/browser.js.map +0 -1
  325. package/dist/auth/callback-server.d.ts.map +0 -1
  326. package/dist/auth/callback-server.js.map +0 -1
  327. package/dist/auth/crypto-utils.d.ts.map +0 -1
  328. package/dist/auth/crypto-utils.js.map +0 -1
  329. package/dist/auth/jwt-validator.d.ts.map +0 -1
  330. package/dist/auth/jwt-validator.js.map +0 -1
  331. package/dist/auth/oauth-flow.d.ts.map +0 -1
  332. package/dist/auth/oauth-flow.js.map +0 -1
  333. package/dist/auth/pkce.d.ts.map +0 -1
  334. package/dist/auth/pkce.js.map +0 -1
  335. package/dist/auth/project-token.d.ts.map +0 -1
  336. package/dist/auth/project-token.js.map +0 -1
  337. package/dist/auth/refresh.d.ts.map +0 -1
  338. package/dist/auth/refresh.js.map +0 -1
  339. package/dist/auth/token-store.d.ts.map +0 -1
  340. package/dist/auth/token-store.js.map +0 -1
  341. package/dist/auth/types.d.ts.map +0 -1
  342. package/dist/auth/types.js.map +0 -1
  343. package/dist/cli.d.ts.map +0 -1
  344. package/dist/cli.js.map +0 -1
  345. package/dist/commands/deploy.d.ts.map +0 -1
  346. package/dist/commands/deploy.js.map +0 -1
  347. package/dist/commands/init.d.ts.map +0 -1
  348. package/dist/commands/init.js.map +0 -1
  349. package/dist/commands/list-tokens.d.ts.map +0 -1
  350. package/dist/commands/list-tokens.js.map +0 -1
  351. package/dist/commands/login.d.ts.map +0 -1
  352. package/dist/commands/login.js.map +0 -1
  353. package/dist/commands/logout.d.ts.map +0 -1
  354. package/dist/commands/logout.js.map +0 -1
  355. package/dist/config/oauth.d.ts.map +0 -1
  356. package/dist/config/oauth.js.map +0 -1
  357. package/dist/constants.d.ts.map +0 -1
  358. package/dist/constants.js.map +0 -1
  359. package/dist/exports/client.d.ts.map +0 -1
  360. package/dist/exports/client.js.map +0 -1
  361. package/dist/index.d.ts.map +0 -1
  362. package/dist/index.js.map +0 -1
  363. package/dist/oauth/components/LoginButton/index.d.ts.map +0 -1
  364. package/dist/oauth/components/LoginButton/index.js.map +0 -1
  365. package/dist/oauth/components/LogoutButton/index.d.ts.map +0 -1
  366. package/dist/oauth/components/LogoutButton/index.js.map +0 -1
  367. package/dist/oauth/defaults.d.ts.map +0 -1
  368. package/dist/oauth/defaults.js.map +0 -1
  369. package/dist/oauth/endpoints/getLoginEndpoint.d.ts.map +0 -1
  370. package/dist/oauth/endpoints/getLoginEndpoint.js.map +0 -1
  371. package/dist/oauth/endpoints/getLogoutEndpoint.d.ts.map +0 -1
  372. package/dist/oauth/endpoints/getLogoutEndpoint.js.map +0 -1
  373. package/dist/oauth/endpoints/getMetaEndpoint.d.ts.map +0 -1
  374. package/dist/oauth/endpoints/getMetaEndpoint.js.map +0 -1
  375. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts.map +0 -1
  376. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js.map +0 -1
  377. package/dist/oauth/exports/client.d.ts.map +0 -1
  378. package/dist/oauth/exports/client.js.map +0 -1
  379. package/dist/oauth/hooks/afterLogout.d.ts.map +0 -1
  380. package/dist/oauth/hooks/afterLogout.js.map +0 -1
  381. package/dist/oauth/hooks/me.d.ts.map +0 -1
  382. package/dist/oauth/hooks/me.js.map +0 -1
  383. package/dist/oauth/hooks/refresh.d.ts.map +0 -1
  384. package/dist/oauth/hooks/refresh.js.map +0 -1
  385. package/dist/oauth/index.d.ts.map +0 -1
  386. package/dist/oauth/index.js.map +0 -1
  387. package/dist/oauth/strategy/index.d.ts.map +0 -1
  388. package/dist/oauth/strategy/index.js.map +0 -1
  389. package/dist/oauth/types.d.ts.map +0 -1
  390. package/dist/oauth/types.js.map +0 -1
  391. package/dist/oauth/utilities/clearCookie.d.ts.map +0 -1
  392. package/dist/oauth/utilities/clearCookie.js.map +0 -1
  393. package/dist/oauth/utilities/createCookieOptions.d.ts.map +0 -1
  394. package/dist/oauth/utilities/createCookieOptions.js.map +0 -1
  395. package/dist/oauth/utilities/createDebugLogger.d.ts.map +0 -1
  396. package/dist/oauth/utilities/createDebugLogger.js.map +0 -1
  397. package/dist/oauth/utilities/extractOrigin.d.ts.map +0 -1
  398. package/dist/oauth/utilities/extractOrigin.js.map +0 -1
  399. package/dist/oauth/utilities/getAdminCollectionSlug.d.ts.map +0 -1
  400. package/dist/oauth/utilities/getAdminCollectionSlug.js.map +0 -1
  401. package/dist/oauth/utilities/getAdminPath.d.ts +0 -8
  402. package/dist/oauth/utilities/getAdminPath.d.ts.map +0 -1
  403. package/dist/oauth/utilities/getAdminPath.js +0 -9
  404. package/dist/oauth/utilities/getAdminPath.js.map +0 -1
  405. package/dist/oauth/utilities/getAuthorizeURL.d.ts.map +0 -1
  406. package/dist/oauth/utilities/getAuthorizeURL.js.map +0 -1
  407. package/dist/oauth/utilities/getCookieExpiration.d.ts.map +0 -1
  408. package/dist/oauth/utilities/getCookieExpiration.js.map +0 -1
  409. package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts.map +0 -1
  410. package/dist/oauth/utilities/getSecondsFromTokenExp.js.map +0 -1
  411. package/dist/oauth/utilities/getTokenExp.d.ts.map +0 -1
  412. package/dist/oauth/utilities/getTokenExp.js.map +0 -1
  413. package/dist/oauth/utilities/getUsernameField.d.ts.map +0 -1
  414. package/dist/oauth/utilities/getUsernameField.js.map +0 -1
  415. package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts.map +0 -1
  416. package/dist/oauth/utilities/hasUserTokenPropsChanged.js.map +0 -1
  417. package/dist/oauth/utilities/mergeHeaders.d.ts.map +0 -1
  418. package/dist/oauth/utilities/mergeHeaders.js.map +0 -1
  419. package/dist/oauth/utilities/refreshTokens.d.ts.map +0 -1
  420. package/dist/oauth/utilities/refreshTokens.js.map +0 -1
  421. package/dist/plugin/adapter.d.ts.map +0 -1
  422. package/dist/plugin/adapter.js.map +0 -1
  423. package/dist/plugin/build-config.d.ts.map +0 -1
  424. package/dist/plugin/build-config.js.map +0 -1
  425. package/dist/types/config.d.ts.map +0 -1
  426. package/dist/types/config.js.map +0 -1
  427. package/dist/types.d.ts.map +0 -1
  428. package/dist/types.js.map +0 -1
  429. package/dist/utils/asset-collection.d.ts.map +0 -1
  430. package/dist/utils/asset-collection.js.map +0 -1
  431. package/dist/utils/build-detection.d.ts.map +0 -1
  432. package/dist/utils/build-detection.js.map +0 -1
  433. package/dist/utils/config.d.ts.map +0 -1
  434. package/dist/utils/config.js.map +0 -1
  435. package/dist/utils/download-template.d.ts.map +0 -1
  436. package/dist/utils/download-template.js.map +0 -1
  437. package/dist/utils/env-management.d.ts.map +0 -1
  438. package/dist/utils/env-management.js.map +0 -1
  439. package/dist/utils/format.d.ts.map +0 -1
  440. package/dist/utils/format.js.map +0 -1
  441. package/dist/utils/formatter.d.ts.map +0 -1
  442. package/dist/utils/formatter.js.map +0 -1
  443. package/dist/utils/git.d.ts.map +0 -1
  444. package/dist/utils/git.js.map +0 -1
  445. package/dist/utils/is-debug.d.ts.map +0 -1
  446. package/dist/utils/is-debug.js.map +0 -1
  447. package/dist/utils/lambda-config.d.ts.map +0 -1
  448. package/dist/utils/lambda-config.js.map +0 -1
  449. package/dist/utils/log.d.ts.map +0 -1
  450. package/dist/utils/log.js.map +0 -1
  451. package/dist/utils/messages.d.ts.map +0 -1
  452. package/dist/utils/messages.js.map +0 -1
  453. package/dist/utils/package-manager.d.ts.map +0 -1
  454. package/dist/utils/package-manager.js.map +0 -1
  455. package/dist/utils/payload-config-ast.d.ts.map +0 -1
  456. package/dist/utils/payload-config-ast.js.map +0 -1
  457. package/dist/utils/payload-config-finder.d.ts.map +0 -1
  458. package/dist/utils/payload-config-finder.js.map +0 -1
  459. package/dist/utils/payload-config-modifier.d.ts.map +0 -1
  460. package/dist/utils/payload-config-modifier.js.map +0 -1
  461. package/dist/utils/payload-package-check.d.ts.map +0 -1
  462. package/dist/utils/payload-package-check.js.map +0 -1
  463. package/dist/utils/project.d.ts.map +0 -1
  464. package/dist/utils/project.js.map +0 -1
  465. package/dist/utils/s3-upload.d.ts.map +0 -1
  466. package/dist/utils/s3-upload.js.map +0 -1
  467. package/dist/utils/token-display.d.ts.map +0 -1
  468. package/dist/utils/token-display.js.map +0 -1
  469. package/dist/utils/typescript-validator.d.ts.map +0 -1
  470. package/dist/utils/typescript-validator.js.map +0 -1
@@ -0,0 +1 @@
1
+ export declare const getGlobalSlug: (slug: string) => string;
@@ -0,0 +1 @@
1
+ export const getGlobalSlug = (slug)=>`_global-${slug}`;
@@ -0,0 +1,2 @@
1
+ import type { Payload } from 'payload';
2
+ export declare function addFallbackSort(sort: string | string[] | undefined, payload: Payload, collectionSlug: string | string[], defaultSort?: string | string[]): string | string[] | undefined;
@@ -0,0 +1,37 @@
1
+ // Add fallback sort to ensure consistent ordering when sorting by non-unique fields
2
+ // Matches MongoDB adapter behavior
3
+ // If multiple collections are joined, we need to ensure fallback sort fields are consistent across them to avoid conflicts.
4
+ // If all collections have timestamps, use createdAt, otherwise use id.
5
+ // TO-DECIDE: Should this live here or in content-api?
6
+ export function addFallbackSort(sort, payload, collectionSlug, defaultSort) {
7
+ const collectionsArray = Array.isArray(collectionSlug) ? collectionSlug : [
8
+ collectionSlug
9
+ ];
10
+ const collectionConfigs = collectionsArray.map((slug)=>payload.config.collections.find((c)=>c.slug === slug)).filter((collection)=>collection != null);
11
+ if (sort == null || collectionConfigs.length === 0) {
12
+ if (defaultSort) {
13
+ return addFallbackSort(defaultSort, payload, collectionSlug);
14
+ }
15
+ return sort;
16
+ }
17
+ const sortArray = Array.isArray(sort) ? sort : [
18
+ sort
19
+ ];
20
+ // Determine fallback sort field
21
+ // If all collections have timestamps, use createdAt, otherwise use id
22
+ const fallbackSort = collectionConfigs.every((config)=>config.timestamps) ? '-createdAt' : '-id';
23
+ const fallbackInverse = fallbackSort.startsWith('-') ? fallbackSort.substring(1) : `-${fallbackSort}`;
24
+ // Check if fallback sort is already included
25
+ const hasFallback = sortArray.some((item)=>item === fallbackSort || item === fallbackInverse);
26
+ if (hasFallback) {
27
+ return sort;
28
+ }
29
+ // Check if all sort fields are unique (then no fallback needed)
30
+ // For simplicity, we'll always add fallback - checking uniqueness requires field traversal
31
+ // which would be expensive. This matches the conservative approach.
32
+ // Add fallback sort - always return array to preserve multiple sort fields
33
+ return [
34
+ ...sortArray,
35
+ fallbackSort
36
+ ];
37
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * PathType can be either a simple string type or an object with additional metadata.
3
+ *
4
+ * Simple types: "array" - for array fields, blocks, or hasMany relationships/selects
5
+ *
6
+ * Relationship types include collection info needed for Content API to perform JOINs:
7
+ * - type: "relationship" for stored references, "join" for virtual reverse lookups
8
+ * - collection: target collection slug (or array for polymorphic)
9
+ * - hasMany: whether it stores multiple references
10
+ *
11
+ * TODO: This type is defined here temporarily so Content API can test the integration.
12
+ * Once Content API implements support for this, the type should be generated from openapi.json.
13
+ */
14
+ export type PathTypeValue = 'array' | {
15
+ collection: string | string[];
16
+ hasMany?: boolean;
17
+ /** For join fields, the field path in the related collection that points back */
18
+ on?: string;
19
+ type: 'join' | 'relationship';
20
+ };
21
+ export type PathTypesRecord = Record<string, PathTypeValue>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * PathType can be either a simple string type or an object with additional metadata.
3
+ *
4
+ * Simple types: "array" - for array fields, blocks, or hasMany relationships/selects
5
+ *
6
+ * Relationship types include collection info needed for Content API to perform JOINs:
7
+ * - type: "relationship" for stored references, "join" for virtual reverse lookups
8
+ * - collection: target collection slug (or array for polymorphic)
9
+ * - hasMany: whether it stores multiple references
10
+ *
11
+ * TODO: This type is defined here temporarily so Content API can test the integration.
12
+ * Once Content API implements support for this, the type should be generated from openapi.json.
13
+ */ export { };
@@ -0,0 +1,38 @@
1
+ import type { Payload } from 'payload';
2
+ import type { components } from '../generated/content-api-types.js';
3
+ type DocumentResponse = {
4
+ id: string;
5
+ } & components['schemas']['Document'];
6
+ type DocumentVersionResponse = {
7
+ id: string;
8
+ } & components['schemas']['DocumentVersion'];
9
+ export declare function unwrapDocument(args: {
10
+ collectionSlug?: string;
11
+ doc: DocumentResponse | DocumentVersionResponse;
12
+ locale?: string;
13
+ payload: Payload;
14
+ }): Record<string, unknown>;
15
+ export declare const unwrapFindResponse: (payload: Payload, response: components["schemas"]["FindDocumentsResponse"]["result"] | components["schemas"]["FindDocumentVersionsResponse"]["result"], collection: string, locale?: string) => {
16
+ totalDocs: number;
17
+ limit: number;
18
+ page: number;
19
+ totalPages: number;
20
+ pagingCounter: number;
21
+ hasPrevPage: boolean;
22
+ hasNextPage: boolean;
23
+ prevPage: number | null;
24
+ nextPage: number | null;
25
+ docs: Record<string, unknown>[];
26
+ } | {
27
+ totalDocs: number;
28
+ limit: number;
29
+ page: number;
30
+ totalPages: number;
31
+ pagingCounter: number;
32
+ hasPrevPage: boolean;
33
+ hasNextPage: boolean;
34
+ prevPage: number | null;
35
+ nextPage: number | null;
36
+ docs: Record<string, unknown>[];
37
+ };
38
+ export {};
@@ -0,0 +1,62 @@
1
+ import { dataFromContentAPI } from '../utilities/data/index.js';
2
+ // Helper to unwrap Content API document format to Payload format
3
+ // Content API returns:
4
+ // - For documents: { id, contentSystemId, collection, doc: { ...fields, createdAt, updatedAt } }
5
+ // - For versions: { id, contentSystemId, collection, versionDoc: { id, createdAt, updatedAt, latest, parent, version: {...fields} } }
6
+ // Payload expects:
7
+ // - For documents: { id, ...fields, createdAt, updatedAt }
8
+ // - For versions: { id, parent, latest, version: { ...fields }, createdAt, updatedAt }
9
+ export function unwrapDocument(args) {
10
+ const { collectionSlug, doc, locale, payload } = args;
11
+ if (!doc) {
12
+ return doc;
13
+ }
14
+ // Check if this is a DocumentVersion (has versionDoc field)
15
+ const isVersion = 'versionDoc' in doc;
16
+ if (isVersion) {
17
+ // For versions, Payload expects nested structure with 'version' field
18
+ const { versionDoc } = doc;
19
+ const baseDoc = {
20
+ ...versionDoc
21
+ };
22
+ const versionData = baseDoc.version;
23
+ if (versionData && '_payloadAutosave' in versionData) {
24
+ baseDoc.autosave = versionData._payloadAutosave;
25
+ delete versionData._payloadAutosave;
26
+ }
27
+ // Transform data from Content API format to Payload format
28
+ if (collectionSlug) {
29
+ // Only transform the nested 'version' field
30
+ baseDoc.version = dataFromContentAPI(payload, collectionSlug, baseDoc.version, locale);
31
+ // Also convert version ID if collection uses numeric custom ID
32
+ const customIDType = payload.collections?.[collectionSlug]?.customIDType;
33
+ if (customIDType === 'number') {
34
+ baseDoc.id = Number(baseDoc.id);
35
+ }
36
+ }
37
+ return baseDoc;
38
+ }
39
+ // For regular documents, spread doc data at root level
40
+ const { id, doc: docData } = doc;
41
+ const baseDoc = {
42
+ ...docData,
43
+ id
44
+ };
45
+ // Transform data from Content API format to Payload format
46
+ if (collectionSlug) {
47
+ return dataFromContentAPI(payload, collectionSlug, baseDoc, locale);
48
+ }
49
+ return baseDoc;
50
+ }
51
+ export const unwrapFindResponse = (payload, response, collection, locale)=>{
52
+ const { data, ...paginationFields } = response;
53
+ return {
54
+ docs: data.map((doc)=>unwrapDocument({
55
+ collectionSlug: collection,
56
+ doc: doc,
57
+ locale,
58
+ payload
59
+ })),
60
+ ...paginationFields
61
+ };
62
+ };
@@ -0,0 +1,29 @@
1
+ import type { Middleware } from 'openapi-fetch';
2
+ import type { Payload } from 'payload';
3
+ import type { TokenStore } from '../../auth/token-store.js';
4
+ type ApiKeyAuth = {
5
+ apiKey: string;
6
+ mode: 'apiKey';
7
+ };
8
+ type TokenStoreAuth = {
9
+ mode: 'tokenStore';
10
+ tokenStore: TokenStore;
11
+ };
12
+ type DevJwtAuth = {
13
+ mode: 'devJwt';
14
+ };
15
+ export type AuthMode = ApiKeyAuth | DevJwtAuth | TokenStoreAuth;
16
+ export declare function fetchDevJwt(url: string, contentSystemId: string): Promise<string>;
17
+ export declare function createAuthMiddleware(opts: {
18
+ auth: AuthMode;
19
+ contentSystemId: string;
20
+ logger: Payload['logger'];
21
+ url: string;
22
+ }): Middleware;
23
+ export declare function createErrorMiddleware(opts: {
24
+ auth: AuthMode;
25
+ contentSystemId: string;
26
+ logger: Payload['logger'];
27
+ url: string;
28
+ }): Middleware;
29
+ export {};
@@ -0,0 +1,82 @@
1
+ import { getValidProjectToken } from '../../auth/project-token.js';
2
+ // Module-level cache for dev JWT tokens
3
+ const devJwtCache = new Map();
4
+ export async function fetchDevJwt(url, contentSystemId) {
5
+ const usesSuperUser = !contentSystemId || contentSystemId === 'test-system' || contentSystemId === '*';
6
+ const contentSystemIdForJWT = usesSuperUser ? '*' : contentSystemId;
7
+ const response = await fetch(`${url}/dev/jwt`, {
8
+ body: JSON.stringify({
9
+ content_system_id: contentSystemIdForJWT
10
+ }),
11
+ headers: {
12
+ 'Content-Type': 'application/json'
13
+ },
14
+ method: 'POST'
15
+ });
16
+ if (!response.ok) {
17
+ throw new Error(`Failed to get dev JWT: ${response.status} ${response.statusText}`);
18
+ }
19
+ const { token } = await response.json();
20
+ return token;
21
+ }
22
+ export function createAuthMiddleware(opts) {
23
+ return {
24
+ async onRequest ({ request }) {
25
+ if (opts.auth.mode === 'apiKey') {
26
+ request.headers.set('X-Api-Key', opts.auth.apiKey);
27
+ } else if (opts.auth.mode === 'tokenStore') {
28
+ const token = await getValidProjectToken({
29
+ tenantId: opts.contentSystemId,
30
+ tokenStore: opts.auth.tokenStore
31
+ });
32
+ if (!token) {
33
+ throw new Error('Authentication required. Run `npx @payloadcms/figma login` to authenticate.');
34
+ }
35
+ request.headers.set('Authorization', `Bearer ${token}`);
36
+ } else {
37
+ let token = devJwtCache.get(opts.contentSystemId);
38
+ if (!token) {
39
+ token = await fetchDevJwt(opts.url, opts.contentSystemId);
40
+ devJwtCache.set(opts.contentSystemId, token);
41
+ opts.logger.info(`Dev JWT acquired for content system: ${opts.contentSystemId}`);
42
+ }
43
+ request.headers.set('Authorization', `Bearer ${token}`);
44
+ }
45
+ return request;
46
+ }
47
+ };
48
+ }
49
+ export function createErrorMiddleware(opts) {
50
+ return {
51
+ async onResponse ({ request, response }) {
52
+ if (!response.ok) {
53
+ // Handle 401 retry for dev JWT
54
+ if (response.status === 401 && opts.auth.mode === 'devJwt') {
55
+ const retryCount = parseInt(request.headers.get('X-Retry-Count') || '0', 10);
56
+ if (retryCount < 1) {
57
+ opts.logger.info('Dev JWT expired, refreshing...');
58
+ devJwtCache.delete(opts.contentSystemId);
59
+ const newToken = await fetchDevJwt(opts.url, opts.contentSystemId);
60
+ devJwtCache.set(opts.contentSystemId, newToken);
61
+ // duplex: 'half' is required for Node.js fetch with streaming body
62
+ const newRequest = new Request(request.url, {
63
+ body: request.body,
64
+ duplex: 'half',
65
+ headers: new Headers(request.headers),
66
+ method: request.method
67
+ });
68
+ newRequest.headers.set('X-Retry-Count', '1');
69
+ newRequest.headers.set('Authorization', `Bearer ${newToken}`);
70
+ return fetch(newRequest);
71
+ }
72
+ }
73
+ const text = await response.clone().text();
74
+ opts.logger.error({
75
+ msg: `HTTP ${response.status} from ${request.url}`,
76
+ response: text
77
+ });
78
+ }
79
+ return response;
80
+ }
81
+ };
82
+ }
@@ -0,0 +1,6 @@
1
+ import type { Field, FlattenedBlock } from 'payload';
2
+ /**
3
+ * Recursively apply static default values to data
4
+ * This handles defaults for nested structures (arrays, groups) which traverseFields doesn't handle
5
+ */
6
+ export declare function applyDefaults(data: Record<string, unknown>, fields: Field[], configBlocks?: FlattenedBlock[]): void;
@@ -0,0 +1,75 @@
1
+ import { resolveBlocks } from '../resolveBlocks.js';
2
+ /**
3
+ * Recursively apply static default values to data
4
+ * This handles defaults for nested structures (arrays, groups) which traverseFields doesn't handle
5
+ */ export function applyDefaults(data, fields, configBlocks) {
6
+ for (const field of fields){
7
+ // Tabs fields: unnamed tabs are transparent (fields at the same level); named tabs nest
8
+ // their fields under the tab's name key. Recurse before the name-based guard so
9
+ // tab-nested fields (e.g. hasError in payload-jobs) get their defaults applied.
10
+ if (field.type === 'tabs') {
11
+ for (const tab of field.tabs){
12
+ if ('name' in tab && tab.name) {
13
+ if (!data[tab.name]) {
14
+ data[tab.name] = {};
15
+ }
16
+ applyDefaults(data[tab.name], tab.fields, configBlocks);
17
+ } else {
18
+ applyDefaults(data, tab.fields, configBlocks);
19
+ }
20
+ }
21
+ continue;
22
+ }
23
+ // Only process fields that affect data (have a name)
24
+ if (!('name' in field) || !field.name) {
25
+ continue;
26
+ }
27
+ const value = data[field.name];
28
+ // Check if field has a default value (only for FieldAffectingData types)
29
+ const defaultValue = 'defaultValue' in field ? field.defaultValue : undefined;
30
+ const hasDefault = defaultValue !== undefined;
31
+ const isFunction = typeof defaultValue === 'function';
32
+ // Skip function defaults - they need req/user context
33
+ if (hasDefault && isFunction) {
34
+ continue;
35
+ }
36
+ // Apply default if value is undefined
37
+ if (hasDefault && value === undefined) {
38
+ let appliedDefault = typeof defaultValue === 'object' ? JSON.parse(JSON.stringify(defaultValue)) : defaultValue;
39
+ // Special handling for point fields: convert array [lng, lat] to GeoJSON format
40
+ if (field.type === 'point' && Array.isArray(appliedDefault) && appliedDefault.length === 2) {
41
+ appliedDefault = {
42
+ type: 'Point',
43
+ coordinates: appliedDefault
44
+ };
45
+ }
46
+ data[field.name] = appliedDefault;
47
+ }
48
+ // Recursively process nested structures
49
+ const currentValue = data[field.name];
50
+ if (field.type === 'array' && Array.isArray(currentValue) && 'fields' in field) {
51
+ // Apply defaults to each array element
52
+ for (const element of currentValue){
53
+ if (element && typeof element === 'object') {
54
+ applyDefaults(element, field.fields, configBlocks);
55
+ }
56
+ }
57
+ } else if (field.type === 'group' && 'fields' in field) {
58
+ if (currentValue == null || typeof currentValue !== 'object') {
59
+ data[field.name] = {};
60
+ }
61
+ applyDefaults(data[field.name], field.fields, configBlocks);
62
+ } else if (field.type === 'blocks' && Array.isArray(currentValue) && 'blocks' in field) {
63
+ const resolvedBlocks = resolveBlocks(field.blocks, configBlocks);
64
+ // Apply defaults to each block
65
+ for (const element of currentValue){
66
+ if (element && typeof element === 'object' && 'blockType' in element) {
67
+ const block = resolvedBlocks.find((b)=>b.slug === element.blockType);
68
+ if (block?.fields) {
69
+ applyDefaults(element, block.fields, configBlocks);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,10 @@
1
+ import type { Field, TabAsField } from 'payload';
2
+ /**
3
+ * Cast field values to the appropriate type for Content API storage.
4
+ *
5
+ * This function implements type coercion similar to Mongoose (used by MongoDB adapter)
6
+ * to ensure data consistency. When users ignore TypeScript types and pass incorrect types,
7
+ * we automatically convert them to the expected type.
8
+ *
9
+ */
10
+ export declare function castFieldValue(field: Field | TabAsField, value: unknown): unknown;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Cast field values to the appropriate type for Content API storage.
3
+ *
4
+ * This function implements type coercion similar to Mongoose (used by MongoDB adapter)
5
+ * to ensure data consistency. When users ignore TypeScript types and pass incorrect types,
6
+ * we automatically convert them to the expected type.
7
+ *
8
+ */ export function castFieldValue(field, value) {
9
+ if (value === null || value === undefined) {
10
+ return value;
11
+ }
12
+ if (field.type === 'number') {
13
+ if ('hasMany' in field && field.hasMany && Array.isArray(value)) {
14
+ return value.map((item)=>{
15
+ if (typeof item === 'number') {
16
+ return item;
17
+ }
18
+ if (typeof item === 'string' || typeof item === 'boolean') {
19
+ return Number(item);
20
+ }
21
+ return item;
22
+ });
23
+ }
24
+ if (typeof value !== 'number') {
25
+ if (typeof value === 'string' || typeof value === 'boolean') {
26
+ return Number(value);
27
+ }
28
+ return value;
29
+ }
30
+ }
31
+ if (field.type === 'checkbox' && typeof value !== 'boolean') {
32
+ // Localized fields store locale-keyed objects like { en: true } — don't cast
33
+ if ('localized' in field && field.localized && typeof value === 'object' && value !== null) {
34
+ return value;
35
+ }
36
+ if (typeof value === 'string') {
37
+ if (value.toLowerCase() === 'true' || value === '1') {
38
+ return true;
39
+ }
40
+ if (value.toLowerCase() === 'false' || value === '0' || value === '') {
41
+ return false;
42
+ }
43
+ }
44
+ return Boolean(value);
45
+ }
46
+ // Matches Mongoose behavior: stores dates as ISO strings
47
+ if (field.type === 'date' && typeof value !== 'string') {
48
+ // Localized fields store locale-keyed objects like { en: '2024-01-01' } — don't cast
49
+ if ('localized' in field && field.localized && typeof value === 'object' && value !== null) {
50
+ return value;
51
+ }
52
+ if (value instanceof Date) {
53
+ return value.toISOString();
54
+ }
55
+ if (typeof value === 'number') {
56
+ return new Date(value).toISOString();
57
+ }
58
+ return value;
59
+ }
60
+ // Text-like fields: convert non-strings to JSON strings.
61
+ // Exceptions: localized (stored as locale map) and hasMany (stored as array).
62
+ if ((field.type === 'text' || field.type === 'textarea' || field.type === 'email' || field.type === 'code') && typeof value !== 'string' && !('localized' in field && field.localized) && !('hasMany' in field && field.hasMany && Array.isArray(value))) {
63
+ return JSON.stringify(value);
64
+ }
65
+ return value;
66
+ }
@@ -0,0 +1,48 @@
1
+ import type { Payload } from 'payload';
2
+ import type { components } from '../../generated/content-api-types.js';
3
+ type DataWithOperations = components['schemas']['DataWithOperations'];
4
+ interface DataToContentAPIOptions {
5
+ /** Apply static defaults for undefined fields */
6
+ applyDefaults?: boolean;
7
+ /** Add createdAt timestamp */
8
+ createdAt?: boolean;
9
+ /**
10
+ * Transform publishedLocale to localizeStatus format.
11
+ * When provided, converts `_status: 'published'` + `publishedLocale: 'en'`
12
+ * to `_status: { en: 'published' }` format.
13
+ */
14
+ publishedLocale?: string;
15
+ }
16
+ /**
17
+ * Transform data before sending to Content API (WRITE operations)
18
+ *
19
+ * Conversions applied:
20
+ * - Default values: Apply static defaults for undefined fields (when applyDefaults=true)
21
+ * - Type casting: Convert values to match field types (e.g., number -> string for text fields)
22
+ * - RichText fields: Objects -> JSON strings
23
+ * - Virtual fields: Remove fields with `virtual: true` (pure virtual fields should never be saved)
24
+ * - Timestamps: Add updatedAt (always), and createdAt (when createdAt=true)
25
+ * - publishedLocale: Transform to localizeStatus format (when publishedLocale is provided)
26
+ *
27
+ * Note: Date fields are automatically converted to ISO strings by JSON.stringify()
28
+ */
29
+ export declare function dataToContentAPI(payload: Payload, collectionSlug: string, data: unknown, options?: DataToContentAPIOptions): DataWithOperations;
30
+ /**
31
+ * Transform data received from Content API (READ operations)
32
+ *
33
+ * Conversions applied:
34
+ * - RichText fields: JSON strings -> Objects
35
+ * - Virtual fields: Remove fields with `virtual: true` (should not be in DB but Content API backend may add them)
36
+ *
37
+ * Note: Date fields come as ISO strings from Content API and stay as strings
38
+ * (matching MongoDB and other adapters' behavior)
39
+ */
40
+ /**
41
+ * Extract version content from versionData that may be flat (no nested `version` key).
42
+ * Some callers spread version content at the top level alongside metadata
43
+ * (e.g. `{ ...version.version, createdAt }`), so we reconstruct the `version`
44
+ * object by filtering out known metadata keys.
45
+ */
46
+ export declare function resolveVersionContent(version: unknown, versionMeta: Record<string, unknown>): unknown;
47
+ export declare function dataFromContentAPI(payload: Payload, collectionSlug: string, data: unknown, locale?: string): unknown;
48
+ export {};