@aphexcms/cms-core 0.2.3 → 2.0.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 (617) hide show
  1. package/dist/api/api-keys.d.ts +37 -0
  2. package/dist/api/api-keys.d.ts.map +1 -0
  3. package/dist/api/api-keys.js +20 -0
  4. package/dist/api/assets.d.ts +27 -0
  5. package/dist/api/assets.d.ts.map +1 -1
  6. package/dist/api/assets.js +22 -1
  7. package/dist/api/index.d.ts +8 -0
  8. package/dist/api/index.d.ts.map +1 -1
  9. package/dist/api/index.js +4 -0
  10. package/dist/api/instance.d.ts +17 -0
  11. package/dist/api/instance.d.ts.map +1 -0
  12. package/dist/api/instance.js +21 -0
  13. package/dist/api/invitations.d.ts +37 -0
  14. package/dist/api/invitations.d.ts.map +1 -0
  15. package/dist/api/invitations.js +27 -0
  16. package/dist/api/organizations.d.ts +7 -0
  17. package/dist/api/organizations.d.ts.map +1 -1
  18. package/dist/api/organizations.js +7 -0
  19. package/dist/api/types.d.ts +1 -1
  20. package/dist/api/types.d.ts.map +1 -1
  21. package/dist/api/user.d.ts +23 -0
  22. package/dist/api/user.d.ts.map +1 -0
  23. package/dist/api/user.js +20 -0
  24. package/dist/auth/auth-errors.d.ts +1 -1
  25. package/dist/auth/auth-errors.d.ts.map +1 -1
  26. package/dist/auth/auth-hooks.d.ts.map +1 -1
  27. package/dist/auth/auth-hooks.js +39 -23
  28. package/dist/auth/provider.d.ts +2 -2
  29. package/dist/auth/provider.d.ts.map +1 -1
  30. package/dist/cli/generate-types.d.ts +14 -0
  31. package/dist/cli/generate-types.d.ts.map +1 -0
  32. package/dist/cli/generate-types.js +15 -7
  33. package/dist/cli/generate-types.js.map +1 -0
  34. package/dist/cli/index.d.ts +7 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +1 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/client/index.d.ts +1 -0
  39. package/dist/client/index.d.ts.map +1 -1
  40. package/dist/client/index.js +2 -0
  41. package/dist/components/AdminApp.svelte +160 -63
  42. package/dist/components/AdminApp.svelte.d.ts +1 -1
  43. package/dist/components/AdminApp.svelte.d.ts.map +1 -1
  44. package/dist/components/admin/AdminLayout.svelte.d.ts +3 -3
  45. package/dist/components/admin/AssetBrowserModal.svelte +66 -0
  46. package/dist/components/admin/AssetBrowserModal.svelte.d.ts +15 -0
  47. package/dist/components/admin/AssetBrowserModal.svelte.d.ts.map +1 -0
  48. package/dist/components/admin/DocumentEditor.svelte +137 -69
  49. package/dist/components/admin/DocumentEditor.svelte.d.ts +1 -1
  50. package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
  51. package/dist/components/admin/DocumentsSkeleton.svelte +40 -0
  52. package/dist/components/admin/DocumentsSkeleton.svelte.d.ts +7 -0
  53. package/dist/components/admin/DocumentsSkeleton.svelte.d.ts.map +1 -0
  54. package/dist/components/admin/MediaBrowser.svelte +1398 -0
  55. package/dist/components/admin/MediaBrowser.svelte.d.ts +23 -0
  56. package/dist/components/admin/MediaBrowser.svelte.d.ts.map +1 -0
  57. package/dist/components/admin/ObjectModal.svelte +3 -4
  58. package/dist/components/admin/ObjectModal.svelte.d.ts +1 -1
  59. package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -1
  60. package/dist/components/admin/SchemaField.svelte +109 -81
  61. package/dist/components/admin/SchemaField.svelte.d.ts +1 -1
  62. package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -1
  63. package/dist/components/admin/fields/ArrayField.svelte +611 -277
  64. package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
  65. package/dist/components/admin/fields/DateField.svelte +3 -2
  66. package/dist/components/admin/fields/DateField.svelte.d.ts.map +1 -1
  67. package/dist/components/admin/fields/DateTimeField.svelte +3 -2
  68. package/dist/components/admin/fields/DateTimeField.svelte.d.ts.map +1 -1
  69. package/dist/components/admin/fields/ImageField.svelte +217 -120
  70. package/dist/components/admin/fields/ImageField.svelte.d.ts +1 -0
  71. package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -1
  72. package/dist/components/admin/fields/ReferenceField.svelte +11 -6
  73. package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -1
  74. package/dist/components/admin/fields/StringField.svelte +2 -1
  75. package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -1
  76. package/dist/components/index.d.ts +2 -0
  77. package/dist/components/index.d.ts.map +1 -1
  78. package/dist/components/index.js +2 -0
  79. package/dist/components/layout/OrganizationSwitcher.svelte +109 -45
  80. package/dist/components/layout/OrganizationSwitcher.svelte.d.ts.map +1 -1
  81. package/dist/components/layout/Sidebar.svelte +36 -14
  82. package/dist/components/layout/Sidebar.svelte.d.ts +2 -1
  83. package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -1
  84. package/dist/components/layout/sidebar/AppSidebar.svelte +1 -1
  85. package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts +8 -1
  86. package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts.map +1 -1
  87. package/dist/components/layout/sidebar/NavMain.svelte +1 -1
  88. package/dist/components/layout/sidebar/NavMain.svelte.d.ts +1 -1
  89. package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -1
  90. package/dist/components/layout/sidebar/NavSecondary.svelte +3 -3
  91. package/dist/components/layout/sidebar/NavUser.svelte +22 -10
  92. package/dist/components/layout/sidebar/NavUser.svelte.d.ts +2 -2
  93. package/dist/components/layout/sidebar/NavUser.svelte.d.ts.map +1 -1
  94. package/dist/db/interfaces/document.d.ts +20 -0
  95. package/dist/db/interfaces/document.d.ts.map +1 -1
  96. package/dist/db/interfaces/index.d.ts +3 -1
  97. package/dist/db/interfaces/index.d.ts.map +1 -1
  98. package/dist/db/interfaces/instance.d.ts +7 -0
  99. package/dist/db/interfaces/instance.d.ts.map +1 -0
  100. package/dist/db/interfaces/instance.js +1 -0
  101. package/dist/db/interfaces/organization.d.ts +1 -0
  102. package/dist/db/interfaces/organization.d.ts.map +1 -1
  103. package/dist/engine.d.ts.map +1 -1
  104. package/dist/engine.js +4 -3
  105. package/dist/field-validation/date-utils.d.ts.map +1 -1
  106. package/dist/field-validation/date-utils.js +12 -11
  107. package/dist/field-validation/rule.d.ts.map +1 -1
  108. package/dist/field-validation/rule.js +11 -10
  109. package/dist/field-validation/utils.d.ts.map +1 -1
  110. package/dist/field-validation/utils.js +16 -15
  111. package/dist/graphql/index.d.ts +23 -0
  112. package/dist/graphql/index.d.ts.map +1 -0
  113. package/dist/graphql/index.js +85 -0
  114. package/dist/graphql/resolvers.d.ts +4 -0
  115. package/dist/graphql/resolvers.d.ts.map +1 -0
  116. package/dist/graphql/resolvers.js +542 -0
  117. package/dist/graphql/schema.d.ts +3 -0
  118. package/dist/graphql/schema.d.ts.map +1 -0
  119. package/dist/graphql/schema.js +356 -0
  120. package/dist/hooks.d.ts +2 -0
  121. package/dist/hooks.d.ts.map +1 -1
  122. package/dist/hooks.js +62 -9
  123. package/dist/lib/api/api-keys.d.ts +37 -0
  124. package/dist/lib/api/api-keys.d.ts.map +1 -0
  125. package/dist/lib/api/api-keys.js +21 -0
  126. package/dist/lib/api/api-keys.js.map +1 -0
  127. package/dist/lib/api/assets.d.ts +75 -0
  128. package/dist/lib/api/assets.d.ts.map +1 -0
  129. package/dist/lib/api/assets.js +74 -0
  130. package/dist/lib/api/assets.js.map +1 -0
  131. package/dist/lib/api/client.d.ts +37 -0
  132. package/dist/lib/api/client.d.ts.map +1 -0
  133. package/dist/lib/api/client.js +132 -0
  134. package/dist/lib/api/client.js.map +1 -0
  135. package/dist/lib/api/documents.d.ts +57 -0
  136. package/dist/lib/api/documents.d.ts.map +1 -0
  137. package/dist/lib/api/documents.js +86 -0
  138. package/dist/lib/api/documents.js.map +1 -0
  139. package/dist/lib/api/index.d.ts +15 -0
  140. package/dist/lib/api/index.d.ts.map +1 -0
  141. package/dist/lib/api/index.js +10 -0
  142. package/dist/lib/api/index.js.map +1 -0
  143. package/dist/lib/api/instance.d.ts +17 -0
  144. package/dist/lib/api/instance.d.ts.map +1 -0
  145. package/dist/lib/api/instance.js +22 -0
  146. package/dist/lib/api/instance.js.map +1 -0
  147. package/dist/lib/api/invitations.d.ts +37 -0
  148. package/dist/lib/api/invitations.d.ts.map +1 -0
  149. package/dist/lib/api/invitations.js +28 -0
  150. package/dist/lib/api/invitations.js.map +1 -0
  151. package/dist/lib/api/organizations.d.ts +108 -0
  152. package/dist/lib/api/organizations.d.ts.map +1 -0
  153. package/dist/lib/api/organizations.js +100 -0
  154. package/dist/lib/api/organizations.js.map +1 -0
  155. package/dist/lib/api/types.d.ts +47 -0
  156. package/dist/lib/api/types.d.ts.map +1 -0
  157. package/dist/lib/api/types.js +2 -0
  158. package/dist/lib/api/types.js.map +1 -0
  159. package/dist/lib/api/user.d.ts +23 -0
  160. package/dist/lib/api/user.d.ts.map +1 -0
  161. package/dist/lib/api/user.js +21 -0
  162. package/dist/lib/api/user.js.map +1 -0
  163. package/dist/lib/auth/auth-errors.d.ts +7 -0
  164. package/dist/lib/auth/auth-errors.d.ts.map +1 -0
  165. package/dist/lib/auth/auth-errors.js +14 -0
  166. package/dist/lib/auth/auth-errors.js.map +1 -0
  167. package/dist/lib/auth/auth-hooks.d.ts +6 -0
  168. package/dist/lib/auth/auth-hooks.d.ts.map +1 -0
  169. package/dist/lib/auth/auth-hooks.js +139 -0
  170. package/dist/lib/auth/auth-hooks.js.map +1 -0
  171. package/dist/lib/auth/provider.d.ts +17 -0
  172. package/dist/lib/auth/provider.d.ts.map +1 -0
  173. package/dist/lib/auth/provider.js +1 -0
  174. package/dist/lib/auth/provider.js.map +1 -0
  175. package/dist/lib/client/index.d.ts +24 -0
  176. package/dist/lib/client/index.d.ts.map +1 -0
  177. package/dist/lib/client/index.js +33 -0
  178. package/dist/lib/client/index.js.map +1 -0
  179. package/dist/lib/components/fields/index.d.ts +9 -0
  180. package/dist/lib/components/fields/index.d.ts.map +1 -0
  181. package/dist/lib/components/fields/index.js +10 -0
  182. package/dist/lib/components/fields/index.js.map +1 -0
  183. package/dist/lib/components/index.d.ts +8 -0
  184. package/dist/lib/components/index.d.ts.map +1 -0
  185. package/dist/lib/components/index.js +14 -0
  186. package/dist/lib/components/index.js.map +1 -0
  187. package/dist/lib/config.d.ts +3 -0
  188. package/dist/lib/config.d.ts.map +1 -0
  189. package/dist/lib/config.js +16 -0
  190. package/dist/lib/config.js.map +1 -0
  191. package/dist/lib/db/adapters/index.d.ts +1 -0
  192. package/dist/lib/db/adapters/index.d.ts.map +1 -0
  193. package/dist/lib/db/adapters/index.js +5 -0
  194. package/dist/lib/db/adapters/index.js.map +1 -0
  195. package/dist/lib/db/index.d.ts +2 -0
  196. package/dist/lib/db/index.d.ts.map +1 -0
  197. package/dist/lib/db/index.js +1 -0
  198. package/dist/lib/db/index.js.map +1 -0
  199. package/dist/lib/db/interfaces/asset.d.ts +73 -0
  200. package/dist/lib/db/interfaces/asset.d.ts.map +1 -0
  201. package/dist/lib/db/interfaces/asset.js +1 -0
  202. package/dist/lib/db/interfaces/asset.js.map +1 -0
  203. package/dist/lib/db/interfaces/document.d.ts +79 -0
  204. package/dist/lib/db/interfaces/document.d.ts.map +1 -0
  205. package/dist/lib/db/interfaces/document.js +1 -0
  206. package/dist/lib/db/interfaces/document.js.map +1 -0
  207. package/dist/lib/db/interfaces/index.d.ts +76 -0
  208. package/dist/lib/db/interfaces/index.d.ts.map +1 -0
  209. package/dist/lib/db/interfaces/index.js +1 -0
  210. package/dist/lib/db/interfaces/index.js.map +1 -0
  211. package/dist/lib/db/interfaces/instance.d.ts +7 -0
  212. package/dist/lib/db/interfaces/instance.d.ts.map +1 -0
  213. package/dist/lib/db/interfaces/instance.js +2 -0
  214. package/dist/lib/db/interfaces/instance.js.map +1 -0
  215. package/dist/lib/db/interfaces/organization.d.ts +28 -0
  216. package/dist/lib/db/interfaces/organization.d.ts.map +1 -0
  217. package/dist/lib/db/interfaces/organization.js +1 -0
  218. package/dist/lib/db/interfaces/organization.js.map +1 -0
  219. package/dist/lib/db/interfaces/schema.d.ts +21 -0
  220. package/dist/lib/db/interfaces/schema.d.ts.map +1 -0
  221. package/dist/lib/db/interfaces/schema.js +1 -0
  222. package/dist/lib/db/interfaces/schema.js.map +1 -0
  223. package/dist/lib/db/interfaces/user.d.ts +17 -0
  224. package/dist/lib/db/interfaces/user.d.ts.map +1 -0
  225. package/dist/lib/db/interfaces/user.js +1 -0
  226. package/dist/lib/db/interfaces/user.js.map +1 -0
  227. package/dist/lib/db/utils/reference-resolver.d.ts +18 -0
  228. package/dist/lib/db/utils/reference-resolver.d.ts.map +1 -0
  229. package/dist/lib/db/utils/reference-resolver.js +81 -0
  230. package/dist/lib/db/utils/reference-resolver.js.map +1 -0
  231. package/dist/lib/define.d.ts +3 -0
  232. package/dist/lib/define.d.ts.map +1 -0
  233. package/dist/lib/define.js +5 -0
  234. package/dist/lib/define.js.map +1 -0
  235. package/dist/lib/email/index.d.ts +2 -0
  236. package/dist/lib/email/index.d.ts.map +1 -0
  237. package/dist/lib/email/index.js +1 -0
  238. package/dist/lib/email/index.js.map +1 -0
  239. package/dist/lib/email/interfaces/email.d.ts +42 -0
  240. package/dist/lib/email/interfaces/email.d.ts.map +1 -0
  241. package/dist/lib/email/interfaces/email.js +1 -0
  242. package/dist/lib/email/interfaces/email.js.map +1 -0
  243. package/dist/lib/engine.d.ts +26 -0
  244. package/dist/lib/engine.d.ts.map +1 -0
  245. package/dist/lib/engine.js +71 -0
  246. package/dist/lib/engine.js.map +1 -0
  247. package/dist/lib/field-validation/date-utils.d.ts +30 -0
  248. package/dist/lib/field-validation/date-utils.d.ts.map +1 -0
  249. package/dist/lib/field-validation/date-utils.js +13 -11
  250. package/dist/lib/field-validation/date-utils.js.map +1 -0
  251. package/dist/lib/field-validation/rule.d.ts +55 -0
  252. package/dist/lib/field-validation/rule.d.ts.map +1 -0
  253. package/dist/lib/field-validation/rule.js +12 -10
  254. package/dist/lib/field-validation/rule.js.map +1 -0
  255. package/dist/lib/field-validation/utils.d.ts +43 -0
  256. package/dist/lib/field-validation/utils.d.ts.map +1 -0
  257. package/dist/lib/field-validation/utils.js +17 -15
  258. package/dist/lib/field-validation/utils.js.map +1 -0
  259. package/dist/lib/graphql/index.d.ts +23 -0
  260. package/dist/lib/graphql/index.d.ts.map +1 -0
  261. package/dist/lib/graphql/index.js +86 -0
  262. package/dist/lib/graphql/index.js.map +1 -0
  263. package/dist/lib/graphql/resolvers.d.ts +4 -0
  264. package/dist/lib/graphql/resolvers.d.ts.map +1 -0
  265. package/dist/lib/graphql/resolvers.js +543 -0
  266. package/dist/lib/graphql/resolvers.js.map +1 -0
  267. package/dist/lib/graphql/schema.d.ts +3 -0
  268. package/dist/lib/graphql/schema.d.ts.map +1 -0
  269. package/dist/lib/graphql/schema.js +357 -0
  270. package/dist/lib/graphql/schema.js.map +1 -0
  271. package/dist/lib/hooks.d.ts +27 -0
  272. package/dist/lib/hooks.d.ts.map +1 -0
  273. package/dist/lib/hooks.js +235 -0
  274. package/dist/lib/hooks.js.map +1 -0
  275. package/dist/lib/index.d.ts +2 -0
  276. package/dist/lib/index.d.ts.map +1 -0
  277. package/dist/lib/index.js +5 -0
  278. package/dist/lib/index.js.map +1 -0
  279. package/dist/lib/is-mobile.svelte.d.ts +5 -0
  280. package/dist/lib/is-mobile.svelte.d.ts.map +1 -0
  281. package/dist/lib/is-mobile.svelte.js +8 -0
  282. package/dist/lib/is-mobile.svelte.js.map +1 -0
  283. package/dist/lib/local-api/auth-helpers.d.ts +65 -0
  284. package/dist/lib/local-api/auth-helpers.d.ts.map +1 -0
  285. package/dist/lib/local-api/auth-helpers.js +103 -0
  286. package/dist/lib/local-api/auth-helpers.js.map +1 -0
  287. package/dist/lib/local-api/collection-api.d.ts +150 -0
  288. package/dist/lib/local-api/collection-api.d.ts.map +1 -0
  289. package/dist/lib/local-api/collection-api.js +311 -0
  290. package/dist/lib/local-api/collection-api.js.map +1 -0
  291. package/dist/lib/local-api/index.d.ts +108 -0
  292. package/dist/lib/local-api/index.d.ts.map +1 -0
  293. package/dist/lib/local-api/index.js +158 -0
  294. package/dist/lib/local-api/index.js.map +1 -0
  295. package/dist/lib/local-api/permissions.d.ts +45 -0
  296. package/dist/lib/local-api/permissions.d.ts.map +1 -0
  297. package/dist/lib/local-api/permissions.js +117 -0
  298. package/dist/lib/local-api/permissions.js.map +1 -0
  299. package/dist/lib/local-api/types.d.ts +65 -0
  300. package/dist/lib/local-api/types.d.ts.map +1 -0
  301. package/dist/lib/local-api/types.js +5 -0
  302. package/dist/lib/local-api/types.js.map +1 -0
  303. package/dist/lib/routes/assets-bulk.d.ts +3 -0
  304. package/dist/lib/routes/assets-bulk.d.ts.map +1 -0
  305. package/dist/lib/routes/assets-bulk.js +49 -0
  306. package/dist/lib/routes/assets-bulk.js.map +1 -0
  307. package/dist/lib/routes/assets-by-id.d.ts +5 -0
  308. package/dist/lib/routes/assets-by-id.d.ts.map +1 -0
  309. package/dist/lib/routes/assets-by-id.js +106 -0
  310. package/dist/lib/routes/assets-by-id.js.map +1 -0
  311. package/dist/lib/routes/assets-cdn.d.ts +3 -0
  312. package/dist/lib/routes/assets-cdn.d.ts.map +1 -0
  313. package/dist/lib/routes/assets-cdn.js +125 -0
  314. package/dist/lib/routes/assets-cdn.js.map +1 -0
  315. package/dist/lib/routes/assets-references-counts.d.ts +7 -0
  316. package/dist/lib/routes/assets-references-counts.d.ts.map +1 -0
  317. package/dist/lib/routes/assets-references-counts.js +32 -0
  318. package/dist/lib/routes/assets-references-counts.js.map +1 -0
  319. package/dist/lib/routes/assets-references.d.ts +7 -0
  320. package/dist/lib/routes/assets-references.d.ts.map +1 -0
  321. package/dist/lib/routes/assets-references.js +35 -0
  322. package/dist/lib/routes/assets-references.js.map +1 -0
  323. package/dist/lib/routes/assets.d.ts +4 -0
  324. package/dist/lib/routes/assets.d.ts.map +1 -0
  325. package/dist/lib/routes/assets.js +121 -0
  326. package/dist/lib/routes/assets.js.map +1 -0
  327. package/dist/lib/routes/documents-by-id.d.ts +5 -0
  328. package/dist/lib/routes/documents-by-id.d.ts.map +1 -0
  329. package/dist/lib/routes/documents-by-id.js +176 -0
  330. package/dist/lib/routes/documents-by-id.js.map +1 -0
  331. package/dist/lib/routes/documents-publish.d.ts +4 -0
  332. package/dist/lib/routes/documents-publish.d.ts.map +1 -0
  333. package/dist/lib/routes/documents-publish.js +138 -0
  334. package/dist/lib/routes/documents-publish.js.map +1 -0
  335. package/dist/lib/routes/documents-query.d.ts +26 -0
  336. package/dist/lib/routes/documents-query.d.ts.map +1 -0
  337. package/dist/lib/routes/documents-query.js +101 -0
  338. package/dist/lib/routes/documents-query.js.map +1 -0
  339. package/dist/lib/routes/documents.d.ts +4 -0
  340. package/dist/lib/routes/documents.d.ts.map +1 -0
  341. package/dist/lib/routes/documents.js +154 -0
  342. package/dist/lib/routes/documents.js.map +1 -0
  343. package/dist/lib/routes/index.d.ts +9 -0
  344. package/dist/lib/routes/index.d.ts.map +1 -0
  345. package/dist/lib/routes/index.js +15 -0
  346. package/dist/lib/routes/index.js.map +1 -0
  347. package/dist/lib/routes/organizations-by-id.d.ts +5 -0
  348. package/dist/lib/routes/organizations-by-id.d.ts.map +1 -0
  349. package/dist/lib/routes/organizations-by-id.js +189 -0
  350. package/dist/lib/routes/organizations-by-id.js.map +1 -0
  351. package/dist/lib/routes/organizations-invitations.d.ts +4 -0
  352. package/dist/lib/routes/organizations-invitations.d.ts.map +1 -0
  353. package/dist/lib/routes/organizations-invitations.js +127 -0
  354. package/dist/lib/routes/organizations-invitations.js.map +1 -0
  355. package/dist/lib/routes/organizations-members.d.ts +5 -0
  356. package/dist/lib/routes/organizations-members.d.ts.map +1 -0
  357. package/dist/lib/routes/organizations-members.js +208 -0
  358. package/dist/lib/routes/organizations-members.js.map +1 -0
  359. package/dist/lib/routes/organizations-switch.d.ts +3 -0
  360. package/dist/lib/routes/organizations-switch.d.ts.map +1 -0
  361. package/dist/lib/routes/organizations-switch.js +55 -0
  362. package/dist/lib/routes/organizations-switch.js.map +1 -0
  363. package/dist/lib/routes/organizations.d.ts +4 -0
  364. package/dist/lib/routes/organizations.d.ts.map +1 -0
  365. package/dist/lib/routes/organizations.js +111 -0
  366. package/dist/lib/routes/organizations.js.map +1 -0
  367. package/dist/lib/routes/schemas-by-type.d.ts +3 -0
  368. package/dist/lib/routes/schemas-by-type.d.ts.map +1 -0
  369. package/dist/lib/routes/schemas-by-type.js +27 -0
  370. package/dist/lib/routes/schemas-by-type.js.map +1 -0
  371. package/dist/lib/routes/schemas.d.ts +3 -0
  372. package/dist/lib/routes/schemas.d.ts.map +1 -0
  373. package/dist/lib/routes/schemas.js +12 -0
  374. package/dist/lib/routes/schemas.js.map +1 -0
  375. package/dist/lib/routes/user-preferences.d.ts +4 -0
  376. package/dist/lib/routes/user-preferences.d.ts.map +1 -0
  377. package/dist/lib/routes/user-preferences.js +79 -0
  378. package/dist/lib/routes/user-preferences.js.map +1 -0
  379. package/dist/lib/routes-exports.d.ts +17 -0
  380. package/dist/lib/routes-exports.d.ts.map +1 -0
  381. package/dist/lib/routes-exports.js +23 -0
  382. package/dist/lib/routes-exports.js.map +1 -0
  383. package/dist/lib/schema/index.d.ts +6 -0
  384. package/dist/lib/schema/index.d.ts.map +1 -0
  385. package/dist/lib/schema/index.js +12 -0
  386. package/dist/lib/schema/index.js.map +1 -0
  387. package/dist/lib/schema-context.svelte.d.ts +10 -0
  388. package/dist/lib/schema-context.svelte.d.ts.map +1 -0
  389. package/dist/lib/schema-context.svelte.js +19 -0
  390. package/dist/lib/schema-context.svelte.js.map +1 -0
  391. package/dist/lib/schema-utils/cleanup.d.ts +21 -0
  392. package/dist/lib/schema-utils/cleanup.d.ts.map +1 -0
  393. package/dist/lib/schema-utils/cleanup.js +81 -0
  394. package/dist/lib/schema-utils/cleanup.js.map +1 -0
  395. package/dist/lib/schema-utils/index.d.ts +4 -0
  396. package/dist/lib/schema-utils/index.d.ts.map +1 -0
  397. package/dist/lib/schema-utils/index.js +5 -0
  398. package/dist/lib/schema-utils/index.js.map +1 -0
  399. package/dist/lib/schema-utils/utils.d.ts +34 -0
  400. package/dist/lib/schema-utils/utils.d.ts.map +1 -0
  401. package/dist/lib/schema-utils/utils.js +59 -0
  402. package/dist/lib/schema-utils/utils.js.map +1 -0
  403. package/dist/lib/schema-utils/validator.d.ts +10 -0
  404. package/dist/lib/schema-utils/validator.d.ts.map +1 -0
  405. package/dist/lib/schema-utils/validator.js +167 -0
  406. package/dist/lib/schema-utils/validator.js.map +1 -0
  407. package/dist/lib/server/index.d.ts +19 -0
  408. package/dist/lib/server/index.d.ts.map +1 -0
  409. package/dist/lib/server/index.js +35 -0
  410. package/dist/lib/server/index.js.map +1 -0
  411. package/dist/lib/services/asset-service.d.ts +86 -0
  412. package/dist/lib/services/asset-service.d.ts.map +1 -0
  413. package/dist/lib/services/asset-service.js +189 -0
  414. package/dist/lib/services/asset-service.js.map +1 -0
  415. package/dist/lib/services/index.d.ts +3 -0
  416. package/dist/lib/services/index.d.ts.map +1 -0
  417. package/dist/lib/services/index.js +5 -0
  418. package/dist/lib/services/index.js.map +1 -0
  419. package/dist/lib/storage/adapters/index.d.ts +2 -0
  420. package/dist/lib/storage/adapters/index.d.ts.map +1 -0
  421. package/dist/lib/storage/adapters/index.js +3 -0
  422. package/dist/lib/storage/adapters/index.js.map +1 -0
  423. package/dist/lib/storage/adapters/local-storage-adapter.d.ts +54 -0
  424. package/dist/lib/storage/adapters/local-storage-adapter.d.ts.map +1 -0
  425. package/dist/lib/storage/adapters/local-storage-adapter.js +189 -0
  426. package/dist/lib/storage/adapters/local-storage-adapter.js.map +1 -0
  427. package/dist/lib/storage/index.d.ts +3 -0
  428. package/dist/lib/storage/index.d.ts.map +1 -0
  429. package/dist/lib/storage/index.js +7 -0
  430. package/dist/lib/storage/index.js.map +1 -0
  431. package/dist/lib/storage/interfaces/index.d.ts +2 -0
  432. package/dist/lib/storage/interfaces/index.d.ts.map +1 -0
  433. package/dist/lib/storage/interfaces/index.js +1 -0
  434. package/dist/lib/storage/interfaces/index.js.map +1 -0
  435. package/dist/lib/storage/interfaces/storage.d.ts +91 -0
  436. package/dist/lib/storage/interfaces/storage.d.ts.map +1 -0
  437. package/dist/lib/storage/interfaces/storage.js +1 -0
  438. package/dist/lib/storage/interfaces/storage.js.map +1 -0
  439. package/dist/lib/storage/providers/storage.d.ts +43 -0
  440. package/dist/lib/storage/providers/storage.d.ts.map +1 -0
  441. package/dist/lib/storage/providers/storage.js +65 -0
  442. package/dist/lib/storage/providers/storage.js.map +1 -0
  443. package/dist/lib/types/asset.d.ts +73 -0
  444. package/dist/lib/types/asset.d.ts.map +1 -0
  445. package/dist/lib/types/asset.js +1 -0
  446. package/dist/lib/types/asset.js.map +1 -0
  447. package/dist/lib/types/auth.d.ts +62 -0
  448. package/dist/lib/types/auth.d.ts.map +1 -0
  449. package/dist/lib/types/auth.js +7 -5
  450. package/dist/lib/types/auth.js.map +1 -0
  451. package/dist/lib/types/config.d.ts +77 -0
  452. package/dist/lib/types/config.d.ts.map +1 -0
  453. package/dist/lib/types/config.js +1 -0
  454. package/dist/lib/types/config.js.map +1 -0
  455. package/dist/lib/types/document.d.ts +35 -0
  456. package/dist/lib/types/document.d.ts.map +1 -0
  457. package/dist/lib/types/document.js +1 -0
  458. package/dist/lib/types/document.js.map +1 -0
  459. package/dist/lib/types/filters.d.ts +186 -0
  460. package/dist/lib/types/filters.d.ts.map +1 -0
  461. package/dist/lib/types/filters.js +1 -0
  462. package/dist/lib/types/filters.js.map +1 -0
  463. package/dist/lib/types/index.d.ts +11 -0
  464. package/dist/lib/types/index.d.ts.map +1 -0
  465. package/dist/lib/types/index.js +2 -0
  466. package/dist/lib/types/index.js.map +1 -0
  467. package/dist/lib/types/instance.d.ts +5 -0
  468. package/dist/lib/types/instance.d.ts.map +1 -0
  469. package/dist/lib/types/instance.js +3 -0
  470. package/dist/lib/types/instance.js.map +1 -0
  471. package/dist/lib/types/organization.d.ts +108 -0
  472. package/dist/lib/types/organization.d.ts.map +1 -0
  473. package/dist/lib/types/organization.js +1 -0
  474. package/dist/lib/types/organization.js.map +1 -0
  475. package/dist/lib/types/schemas.d.ts +179 -0
  476. package/dist/lib/types/schemas.d.ts.map +1 -0
  477. package/dist/lib/types/schemas.js +1 -0
  478. package/dist/lib/types/schemas.js.map +1 -0
  479. package/dist/lib/types/sidebar.d.ts +34 -0
  480. package/dist/lib/types/sidebar.d.ts.map +1 -0
  481. package/dist/lib/types/sidebar.js +1 -0
  482. package/dist/lib/types/sidebar.js.map +1 -0
  483. package/dist/lib/types/user.d.ts +14 -0
  484. package/dist/lib/types/user.d.ts.map +1 -0
  485. package/dist/lib/types/user.js +1 -0
  486. package/dist/lib/types/user.js.map +1 -0
  487. package/dist/lib/utils/asset-actions.d.ts +9 -0
  488. package/dist/lib/utils/asset-actions.d.ts.map +1 -0
  489. package/dist/lib/utils/asset-actions.js +28 -0
  490. package/dist/lib/utils/asset-actions.js.map +1 -0
  491. package/dist/lib/utils/content-hash.d.ts +22 -0
  492. package/dist/lib/utils/content-hash.d.ts.map +1 -0
  493. package/dist/lib/utils/content-hash.js +68 -0
  494. package/dist/lib/utils/content-hash.js.map +1 -0
  495. package/dist/lib/utils/default-orderings.d.ts +10 -0
  496. package/dist/lib/utils/default-orderings.d.ts.map +1 -0
  497. package/dist/lib/utils/default-orderings.js +64 -0
  498. package/dist/lib/utils/default-orderings.js.map +1 -0
  499. package/dist/lib/utils/element-events.d.ts +15 -0
  500. package/dist/lib/utils/element-events.d.ts.map +1 -0
  501. package/dist/lib/utils/element-events.js +17 -0
  502. package/dist/lib/utils/element-events.js.map +1 -0
  503. package/dist/lib/utils/field-defaults.d.ts +8 -0
  504. package/dist/lib/utils/field-defaults.d.ts.map +1 -0
  505. package/dist/lib/utils/field-defaults.js +21 -0
  506. package/dist/lib/utils/field-defaults.js.map +1 -0
  507. package/dist/lib/utils/image-url.d.ts +88 -0
  508. package/dist/lib/utils/image-url.d.ts.map +1 -0
  509. package/dist/lib/utils/image-url.js +167 -0
  510. package/dist/lib/utils/image-url.js.map +1 -0
  511. package/dist/lib/utils/index.d.ts +8 -0
  512. package/dist/lib/utils/index.d.ts.map +1 -0
  513. package/dist/lib/utils/index.js +13 -0
  514. package/dist/lib/utils/index.js.map +1 -0
  515. package/dist/lib/utils/initial-value-helpers.d.ts +50 -0
  516. package/dist/lib/utils/initial-value-helpers.d.ts.map +1 -0
  517. package/dist/lib/utils/initial-value-helpers.js +71 -0
  518. package/dist/lib/utils/initial-value-helpers.js.map +1 -0
  519. package/dist/lib/utils/logger.d.ts +9 -0
  520. package/dist/lib/utils/logger.d.ts.map +1 -0
  521. package/dist/lib/utils/logger.js +30 -0
  522. package/dist/lib/utils/logger.js.map +1 -0
  523. package/dist/lib/utils/slug.d.ts +13 -0
  524. package/dist/lib/utils/slug.d.ts.map +1 -0
  525. package/dist/lib/utils/slug.js +31 -0
  526. package/dist/lib/utils/slug.js.map +1 -0
  527. package/dist/lib/utils.d.ts +13 -0
  528. package/dist/lib/utils.d.ts.map +1 -0
  529. package/dist/lib/utils.js +6 -0
  530. package/dist/lib/utils.js.map +1 -0
  531. package/dist/local-api/index.d.ts.map +1 -1
  532. package/dist/local-api/permissions.d.ts.map +1 -1
  533. package/dist/local-api/permissions.js +3 -4
  534. package/dist/routes/assets-bulk.d.ts +3 -0
  535. package/dist/routes/assets-bulk.d.ts.map +1 -0
  536. package/dist/routes/assets-bulk.js +48 -0
  537. package/dist/routes/assets-by-id.d.ts.map +1 -1
  538. package/dist/routes/assets-by-id.js +22 -55
  539. package/dist/routes/assets-cdn.d.ts.map +1 -1
  540. package/dist/routes/assets-cdn.js +12 -50
  541. package/dist/routes/assets-references-counts.d.ts +7 -0
  542. package/dist/routes/assets-references-counts.d.ts.map +1 -0
  543. package/dist/routes/assets-references-counts.js +31 -0
  544. package/dist/routes/assets-references.d.ts +7 -0
  545. package/dist/routes/assets-references.d.ts.map +1 -0
  546. package/dist/routes/assets-references.js +34 -0
  547. package/dist/routes/assets.d.ts.map +1 -1
  548. package/dist/routes/assets.js +27 -6
  549. package/dist/routes/documents-by-id.d.ts.map +1 -1
  550. package/dist/routes/documents-by-id.js +4 -3
  551. package/dist/routes/documents-publish.d.ts.map +1 -1
  552. package/dist/routes/documents-publish.js +3 -2
  553. package/dist/routes/documents-query.d.ts.map +1 -1
  554. package/dist/routes/documents-query.js +2 -1
  555. package/dist/routes/documents.d.ts.map +1 -1
  556. package/dist/routes/documents.js +3 -2
  557. package/dist/routes/organizations-by-id.d.ts.map +1 -1
  558. package/dist/routes/organizations-by-id.js +4 -3
  559. package/dist/routes/organizations-invitations.d.ts.map +1 -1
  560. package/dist/routes/organizations-invitations.js +5 -4
  561. package/dist/routes/organizations-members.d.ts.map +1 -1
  562. package/dist/routes/organizations-members.js +7 -6
  563. package/dist/routes/organizations-switch.d.ts.map +1 -1
  564. package/dist/routes/organizations-switch.js +2 -1
  565. package/dist/routes/organizations.d.ts.map +1 -1
  566. package/dist/routes/organizations.js +3 -2
  567. package/dist/routes/schemas-by-type.d.ts.map +1 -1
  568. package/dist/routes/schemas-by-type.js +3 -2
  569. package/dist/routes/user-preferences.d.ts.map +1 -1
  570. package/dist/routes/user-preferences.js +3 -2
  571. package/dist/routes-exports.d.ts +3 -0
  572. package/dist/routes-exports.d.ts.map +1 -1
  573. package/dist/routes-exports.js +3 -0
  574. package/dist/schema/index.d.ts +6 -0
  575. package/dist/schema/index.d.ts.map +1 -0
  576. package/dist/schema/index.js +11 -0
  577. package/dist/schema-utils/validator.d.ts.map +1 -1
  578. package/dist/schema-utils/validator.js +4 -3
  579. package/dist/server/index.d.ts +2 -0
  580. package/dist/server/index.d.ts.map +1 -1
  581. package/dist/server/index.js +4 -0
  582. package/dist/services/asset-service.d.ts.map +1 -1
  583. package/dist/services/asset-service.js +8 -7
  584. package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -1
  585. package/dist/storage/adapters/local-storage-adapter.js +5 -4
  586. package/dist/types/auth.d.ts +13 -1
  587. package/dist/types/auth.d.ts.map +1 -1
  588. package/dist/types/auth.js +6 -5
  589. package/dist/types/config.d.ts +14 -1
  590. package/dist/types/config.d.ts.map +1 -1
  591. package/dist/types/document.d.ts +1 -1
  592. package/dist/types/document.d.ts.map +1 -1
  593. package/dist/types/index.d.ts +1 -0
  594. package/dist/types/index.d.ts.map +1 -1
  595. package/dist/types/index.js +1 -0
  596. package/dist/types/instance.d.ts +5 -0
  597. package/dist/types/instance.d.ts.map +1 -0
  598. package/dist/types/instance.js +2 -0
  599. package/dist/types/schemas.d.ts +1 -1
  600. package/dist/types/schemas.d.ts.map +1 -1
  601. package/dist/types/sidebar.d.ts +1 -0
  602. package/dist/types/sidebar.d.ts.map +1 -1
  603. package/dist/utils/asset-actions.d.ts +9 -0
  604. package/dist/utils/asset-actions.d.ts.map +1 -0
  605. package/dist/utils/asset-actions.js +27 -0
  606. package/dist/utils/element-events.d.ts +15 -0
  607. package/dist/utils/element-events.d.ts.map +1 -0
  608. package/dist/utils/element-events.js +16 -0
  609. package/dist/utils/image-url.d.ts.map +1 -1
  610. package/dist/utils/image-url.js +10 -9
  611. package/dist/utils/index.d.ts +1 -0
  612. package/dist/utils/index.d.ts.map +1 -1
  613. package/dist/utils/index.js +2 -0
  614. package/dist/utils/logger.d.ts +9 -0
  615. package/dist/utils/logger.d.ts.map +1 -0
  616. package/dist/utils/logger.js +29 -0
  617. package/package.json +69 -36
@@ -0,0 +1,542 @@
1
+ import { GraphQLError } from 'graphql';
2
+ import { authToContext } from '../local-api/auth-helpers.js';
3
+ import { getDefaultValueForFieldType } from '../utils/field-defaults.js';
4
+ import { cmsLogger } from '../utils/logger.js';
5
+ function capitalizeFirst(str) {
6
+ return str.charAt(0).toUpperCase() + str.slice(1);
7
+ }
8
+ // Normalize null/undefined field values to type-appropriate defaults (recursive)
9
+ function normalizeDocumentFields(data, schemaType, allSchemaTypes) {
10
+ if (!data)
11
+ return data;
12
+ const normalized = { ...data };
13
+ schemaType.fields.forEach((field) => {
14
+ const fieldValue = normalized[field.name];
15
+ // Normalize null/undefined values to defaults based on field type
16
+ if (fieldValue === null || fieldValue === undefined) {
17
+ normalized[field.name] = getDefaultValueForFieldType(field.type);
18
+ }
19
+ // Recursively normalize nested objects
20
+ if (field.type === 'object' && normalized[field.name] && field.fields) {
21
+ const syntheticSchema = {
22
+ name: `${schemaType.name}_${field.name}`,
23
+ type: 'object',
24
+ fields: field.fields,
25
+ title: field.title || field.name
26
+ };
27
+ normalized[field.name] = normalizeDocumentFields(normalized[field.name], syntheticSchema, allSchemaTypes);
28
+ }
29
+ // Recursively normalize arrays of objects
30
+ if (field.type === 'array' && Array.isArray(normalized[field.name]) && field.of) {
31
+ normalized[field.name] = normalized[field.name].map((item) => {
32
+ if (item && typeof item === 'object' && item._type) {
33
+ const itemSchema = allSchemaTypes.find((s) => s.name === item._type);
34
+ if (itemSchema) {
35
+ return normalizeDocumentFields(item, itemSchema, allSchemaTypes);
36
+ }
37
+ }
38
+ return item;
39
+ });
40
+ }
41
+ });
42
+ return normalized;
43
+ }
44
+ // Sanitize GraphQL input data - remove null values and convert to undefined
45
+ function sanitizeInputData(data) {
46
+ if (data === null)
47
+ return undefined;
48
+ if (typeof data !== 'object')
49
+ return data;
50
+ if (Array.isArray(data)) {
51
+ return data.map((item) => sanitizeInputData(item));
52
+ }
53
+ const sanitized = {};
54
+ for (const [key, value] of Object.entries(data)) {
55
+ if (value !== null) {
56
+ sanitized[key] = sanitizeInputData(value);
57
+ }
58
+ }
59
+ return sanitized;
60
+ }
61
+ // Parse GraphQL where input into LocalAPI where clause
62
+ function parseWhereInput(where) {
63
+ if (!where)
64
+ return undefined;
65
+ const parsed = {};
66
+ Object.keys(where).forEach((key) => {
67
+ const value = where[key];
68
+ // Handle logical operators
69
+ if (key === 'AND' && Array.isArray(value)) {
70
+ parsed.and = value.map((w) => parseWhereInput(w));
71
+ return;
72
+ }
73
+ if (key === 'OR' && Array.isArray(value)) {
74
+ parsed.or = value.map((w) => parseWhereInput(w));
75
+ return;
76
+ }
77
+ // Handle field filters
78
+ if (value && typeof value === 'object') {
79
+ parsed[key] = {};
80
+ // Map GraphQL operators to LocalAPI operators
81
+ if ('equals' in value)
82
+ parsed[key].equals = value.equals;
83
+ if ('not_equals' in value)
84
+ parsed[key].not_equals = value.not_equals;
85
+ if ('in' in value)
86
+ parsed[key].in = value.in;
87
+ if ('not_in' in value)
88
+ parsed[key].not_in = value.not_in;
89
+ if ('contains' in value)
90
+ parsed[key].contains = value.contains;
91
+ if ('starts_with' in value)
92
+ parsed[key].starts_with = value.starts_with;
93
+ if ('ends_with' in value)
94
+ parsed[key].ends_with = value.ends_with;
95
+ if ('like' in value)
96
+ parsed[key].like = value.like;
97
+ if ('greater_than' in value)
98
+ parsed[key].greater_than = value.greater_than;
99
+ if ('greater_than_equal' in value)
100
+ parsed[key].greater_than_equal = value.greater_than_equal;
101
+ if ('less_than' in value)
102
+ parsed[key].less_than = value.less_than;
103
+ if ('less_than_equal' in value)
104
+ parsed[key].less_than_equal = value.less_than_equal;
105
+ if ('exists' in value)
106
+ parsed[key].exists = value.exists;
107
+ }
108
+ else {
109
+ // Direct value (shorthand for equals)
110
+ parsed[key] = { equals: value };
111
+ }
112
+ });
113
+ return parsed;
114
+ }
115
+ export function createResolvers(cms, schemaTypes, defaultPerspective = 'published') {
116
+ const resolvers = {
117
+ Query: {},
118
+ Mutation: {},
119
+ Image: {
120
+ // Return the image object as-is for frontend urlFor() usage
121
+ _type: (parent) => parent?._type || 'image',
122
+ asset: (parent) => parent?.asset || null,
123
+ url: (parent) => {
124
+ // Optional: provide a convenience URL field
125
+ const assetRef = parent?.asset?._ref;
126
+ return assetRef ? `/media/${assetRef}/image` : null;
127
+ }
128
+ }
129
+ };
130
+ // Generate reference field resolvers for all types
131
+ function generateReferenceFieldResolvers() {
132
+ schemaTypes.forEach((schemaType) => {
133
+ const typeName = capitalizeFirst(schemaType.name);
134
+ function processFields(fields, currentTypeName) {
135
+ fields.forEach((field) => {
136
+ // Handle reference fields
137
+ if (field.type === 'reference' && field.to && field.to.length > 0) {
138
+ // Create resolver for this reference field
139
+ if (!resolvers[currentTypeName]) {
140
+ resolvers[currentTypeName] = {};
141
+ }
142
+ resolvers[currentTypeName][field.name] = async (parent, _args, context) => {
143
+ const referenceId = parent[field.name];
144
+ if (!referenceId || typeof referenceId !== 'string') {
145
+ return null;
146
+ }
147
+ try {
148
+ // Use LocalAPI to fetch referenced document
149
+ const { auth } = context;
150
+ const apiContext = authToContext(auth);
151
+ // Use the same perspective as the parent document
152
+ const perspective = parent.status || context?.perspective || defaultPerspective;
153
+ // Get referenced document - need to determine the collection type
154
+ // For now, we'll try to find it by ID across all collections
155
+ const referencedDoc = await cms.databaseAdapter.findByDocIdAdvanced(apiContext.organizationId, referenceId);
156
+ if (!referencedDoc) {
157
+ return null;
158
+ }
159
+ // Select the correct data based on perspective
160
+ const data = perspective === 'published'
161
+ ? referencedDoc.publishedData
162
+ : referencedDoc.draftData;
163
+ // If the referenced document has no data for this perspective, return null
164
+ if (!data)
165
+ return null;
166
+ // Find the schema type for normalization
167
+ const refSchemaType = schemaTypes.find((s) => s.name === referencedDoc.type);
168
+ const normalizedData = refSchemaType
169
+ ? normalizeDocumentFields(data, refSchemaType, schemaTypes)
170
+ : data;
171
+ return {
172
+ id: referencedDoc.id,
173
+ type: referencedDoc.type,
174
+ status: perspective,
175
+ createdAt: referencedDoc.createdAt?.toISOString() || null,
176
+ updatedAt: referencedDoc.updatedAt?.toISOString() || null,
177
+ publishedAt: null,
178
+ ...normalizedData
179
+ };
180
+ }
181
+ catch (error) {
182
+ cmsLogger.error(`Failed to resolve reference ${field.name}:`, error);
183
+ return null;
184
+ }
185
+ };
186
+ }
187
+ // Handle nested objects
188
+ if (field.type === 'object' && field.fields) {
189
+ const nestedTypeName = capitalizeFirst(`${schemaType.name}${field.name}Object`);
190
+ processFields(field.fields, nestedTypeName);
191
+ }
192
+ });
193
+ }
194
+ processFields(schemaType.fields, typeName);
195
+ });
196
+ }
197
+ generateReferenceFieldResolvers();
198
+ // Generate union type resolvers for array fields
199
+ function generateUnionResolvers() {
200
+ schemaTypes.forEach((schemaType) => {
201
+ function processFields(fields, parentName) {
202
+ fields.forEach((field) => {
203
+ if (field.type === 'array' && field.of && field.of.length > 1) {
204
+ // Create resolver for union types
205
+ const unionName = `${capitalizeFirst(parentName)}${capitalizeFirst(field.name)}Item`;
206
+ resolvers[unionName] = {
207
+ __resolveType(obj) {
208
+ // Use the _type field to determine GraphQL type
209
+ if (obj._type) {
210
+ return capitalizeFirst(obj._type);
211
+ }
212
+ return null;
213
+ }
214
+ };
215
+ }
216
+ // Handle nested objects
217
+ if (field.type === 'object' && field.fields) {
218
+ processFields(field.fields, `${parentName}${field.name}`);
219
+ }
220
+ });
221
+ }
222
+ processFields(schemaType.fields, schemaType.name);
223
+ });
224
+ }
225
+ generateUnionResolvers();
226
+ // Generate resolvers for each document type
227
+ const documentTypes = schemaTypes.filter((type) => type.type === 'document');
228
+ documentTypes.forEach((schemaType) => {
229
+ const typeName = capitalizeFirst(schemaType.name);
230
+ // Single document resolver: page(id: "123", perspective: "draft")
231
+ resolvers.Query[schemaType.name] = async (_, args, context) => {
232
+ try {
233
+ const { localAPI, auth } = context;
234
+ const apiContext = authToContext(auth);
235
+ const perspective = args.perspective || defaultPerspective;
236
+ // Store perspective in context for nested resolvers
237
+ context.perspective = perspective;
238
+ // Get collection from LocalAPI
239
+ const collection = localAPI.collections[schemaType.name];
240
+ if (!collection) {
241
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
242
+ extensions: { code: 'NOT_FOUND' }
243
+ });
244
+ }
245
+ // Use LocalAPI to fetch document
246
+ const doc = await collection.findByID(apiContext, args.id, {
247
+ perspective,
248
+ depth: args.depth || 0
249
+ });
250
+ if (!doc) {
251
+ return null;
252
+ }
253
+ // Extract data from _meta
254
+ const data = { ...doc };
255
+ const meta = data._meta || {};
256
+ delete data._meta;
257
+ // Normalize array fields
258
+ const normalizedData = normalizeDocumentFields(data, schemaType, schemaTypes);
259
+ return {
260
+ id: meta.id || args.id,
261
+ type: meta.type || schemaType.name,
262
+ status: perspective,
263
+ createdAt: meta.createdAt?.toISOString() || null,
264
+ updatedAt: meta.updatedAt?.toISOString() || null,
265
+ publishedAt: meta.publishedAt?.toISOString() || null,
266
+ ...normalizedData
267
+ };
268
+ }
269
+ catch (error) {
270
+ if (error instanceof GraphQLError) {
271
+ throw error;
272
+ }
273
+ throw new GraphQLError(error.message, {
274
+ extensions: { code: 'INTERNAL_SERVER_ERROR' }
275
+ });
276
+ }
277
+ };
278
+ // Collection resolver with advanced filtering: allPages(where: {...}, limit: 20, offset: 0, sort: "-publishedAt")
279
+ resolvers.Query[`all${typeName}`] = async (_, args, context) => {
280
+ try {
281
+ const { localAPI, auth } = context;
282
+ const apiContext = authToContext(auth);
283
+ const perspective = args.perspective || defaultPerspective;
284
+ // Store perspective in context for nested resolvers
285
+ context.perspective = perspective;
286
+ // Get collection from LocalAPI
287
+ const collection = localAPI.collections[schemaType.name];
288
+ if (!collection) {
289
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
290
+ extensions: { code: 'NOT_FOUND' }
291
+ });
292
+ }
293
+ // Parse where clause
294
+ const where = parseWhereInput(args.where);
295
+ // Use LocalAPI to fetch documents
296
+ const result = await collection.find(apiContext, {
297
+ where,
298
+ perspective,
299
+ limit: args.limit || 50,
300
+ offset: args.offset || 0,
301
+ sort: args.sort || undefined,
302
+ depth: args.depth || 0
303
+ });
304
+ // Map documents to GraphQL format
305
+ return result.docs.map((doc) => {
306
+ const data = { ...doc };
307
+ const meta = data._meta || {};
308
+ delete data._meta;
309
+ // Normalize array fields
310
+ const normalizedData = normalizeDocumentFields(data, schemaType, schemaTypes);
311
+ return {
312
+ id: meta.id || doc.id,
313
+ type: meta.type || schemaType.name,
314
+ status: perspective,
315
+ createdAt: meta.createdAt?.toISOString() || null,
316
+ updatedAt: meta.updatedAt?.toISOString() || null,
317
+ publishedAt: meta.publishedAt?.toISOString() || null,
318
+ ...normalizedData
319
+ };
320
+ });
321
+ }
322
+ catch (error) {
323
+ if (error instanceof GraphQLError) {
324
+ throw error;
325
+ }
326
+ throw new GraphQLError(error.message, {
327
+ extensions: { code: 'INTERNAL_SERVER_ERROR' }
328
+ });
329
+ }
330
+ };
331
+ // Mutation: createDocument
332
+ resolvers.Mutation[`create${typeName}`] = async (_, args, context) => {
333
+ try {
334
+ const { localAPI, auth } = context;
335
+ const apiContext = authToContext(auth);
336
+ // Get collection from LocalAPI
337
+ const collection = localAPI.collections[schemaType.name];
338
+ if (!collection) {
339
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
340
+ extensions: { code: 'NOT_FOUND' }
341
+ });
342
+ }
343
+ // Sanitize input data (convert null to undefined)
344
+ const sanitizedData = sanitizeInputData(args.data);
345
+ // Create document via LocalAPI
346
+ const result = await collection.create(apiContext, sanitizedData, {
347
+ publish: args.publish || false
348
+ });
349
+ const doc = result.document;
350
+ const perspective = args.publish ? 'published' : 'draft';
351
+ const data = { ...doc };
352
+ const meta = data._meta || {};
353
+ delete data._meta;
354
+ // Normalize document fields
355
+ const normalizedData = normalizeDocumentFields(data, schemaType, schemaTypes);
356
+ return {
357
+ id: meta.id || doc.id,
358
+ type: meta.type || schemaType.name,
359
+ status: perspective,
360
+ createdAt: meta.createdAt?.toISOString() || null,
361
+ updatedAt: meta.updatedAt?.toISOString() || null,
362
+ publishedAt: meta.publishedAt?.toISOString() || null,
363
+ ...normalizedData
364
+ };
365
+ }
366
+ catch (error) {
367
+ if (error instanceof GraphQLError) {
368
+ throw error;
369
+ }
370
+ cmsLogger.error(`GraphQL mutation error:`, error);
371
+ throw new GraphQLError(error.message, {
372
+ extensions: { code: 'BAD_REQUEST', originalError: error.stack }
373
+ });
374
+ }
375
+ };
376
+ // Mutation: updateDocument
377
+ resolvers.Mutation[`update${typeName}`] = async (_, args, context) => {
378
+ try {
379
+ const { localAPI, auth } = context;
380
+ const apiContext = authToContext(auth);
381
+ // Get collection from LocalAPI
382
+ const collection = localAPI.collections[schemaType.name];
383
+ if (!collection) {
384
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
385
+ extensions: { code: 'NOT_FOUND' }
386
+ });
387
+ }
388
+ // Sanitize input data (convert null to undefined)
389
+ const sanitizedData = sanitizeInputData(args.data);
390
+ // Update document via LocalAPI
391
+ const result = await collection.update(apiContext, args.id, sanitizedData, {
392
+ publish: args.publish || false
393
+ });
394
+ if (!result) {
395
+ throw new GraphQLError('Document not found', {
396
+ extensions: { code: 'NOT_FOUND' }
397
+ });
398
+ }
399
+ const doc = result.document;
400
+ const perspective = args.publish ? 'published' : 'draft';
401
+ const data = { ...doc };
402
+ const meta = data._meta || {};
403
+ delete data._meta;
404
+ // Normalize document fields
405
+ const normalizedData = normalizeDocumentFields(data, schemaType, schemaTypes);
406
+ return {
407
+ id: meta.id || args.id,
408
+ type: meta.type || schemaType.name,
409
+ status: perspective,
410
+ createdAt: meta.createdAt?.toISOString() || null,
411
+ updatedAt: meta.updatedAt?.toISOString() || null,
412
+ publishedAt: meta.publishedAt?.toISOString() || null,
413
+ ...normalizedData
414
+ };
415
+ }
416
+ catch (error) {
417
+ if (error instanceof GraphQLError) {
418
+ throw error;
419
+ }
420
+ cmsLogger.error(`GraphQL mutation error:`, error);
421
+ throw new GraphQLError(error.message, {
422
+ extensions: { code: 'BAD_REQUEST', originalError: error.stack }
423
+ });
424
+ }
425
+ };
426
+ // Mutation: deleteDocument
427
+ resolvers.Mutation[`delete${typeName}`] = async (_, args, context) => {
428
+ try {
429
+ const { localAPI, auth } = context;
430
+ const apiContext = authToContext(auth);
431
+ // Get collection from LocalAPI
432
+ const collection = localAPI.collections[schemaType.name];
433
+ if (!collection) {
434
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
435
+ extensions: { code: 'NOT_FOUND' }
436
+ });
437
+ }
438
+ // Delete document via LocalAPI
439
+ const success = await collection.delete(apiContext, args.id);
440
+ return { success };
441
+ }
442
+ catch (error) {
443
+ if (error instanceof GraphQLError) {
444
+ throw error;
445
+ }
446
+ cmsLogger.error(`GraphQL mutation error:`, error);
447
+ throw new GraphQLError(error.message, {
448
+ extensions: { code: 'BAD_REQUEST', originalError: error.stack }
449
+ });
450
+ }
451
+ };
452
+ // Mutation: publishDocument
453
+ resolvers.Mutation[`publish${typeName}`] = async (_, args, context) => {
454
+ try {
455
+ const { localAPI, auth } = context;
456
+ const apiContext = authToContext(auth);
457
+ // Get collection from LocalAPI
458
+ const collection = localAPI.collections[schemaType.name];
459
+ if (!collection) {
460
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
461
+ extensions: { code: 'NOT_FOUND' }
462
+ });
463
+ }
464
+ // Publish document via LocalAPI
465
+ const doc = await collection.publish(apiContext, args.id);
466
+ if (!doc) {
467
+ throw new GraphQLError('Document not found', {
468
+ extensions: { code: 'NOT_FOUND' }
469
+ });
470
+ }
471
+ const data = { ...doc };
472
+ const meta = data._meta || {};
473
+ delete data._meta;
474
+ // Normalize array fields
475
+ const normalizedData = normalizeDocumentFields(data, schemaType, schemaTypes);
476
+ return {
477
+ id: meta.id || args.id,
478
+ type: meta.type || schemaType.name,
479
+ status: 'published',
480
+ createdAt: meta.createdAt?.toISOString() || null,
481
+ updatedAt: meta.updatedAt?.toISOString() || null,
482
+ publishedAt: meta.publishedAt?.toISOString() || null,
483
+ ...normalizedData
484
+ };
485
+ }
486
+ catch (error) {
487
+ if (error instanceof GraphQLError) {
488
+ throw error;
489
+ }
490
+ cmsLogger.error(`GraphQL mutation error:`, error);
491
+ throw new GraphQLError(error.message, {
492
+ extensions: { code: 'BAD_REQUEST', originalError: error.stack }
493
+ });
494
+ }
495
+ };
496
+ // Mutation: unpublishDocument
497
+ resolvers.Mutation[`unpublish${typeName}`] = async (_, args, context) => {
498
+ try {
499
+ const { localAPI, auth } = context;
500
+ const apiContext = authToContext(auth);
501
+ // Get collection from LocalAPI
502
+ const collection = localAPI.collections[schemaType.name];
503
+ if (!collection) {
504
+ throw new GraphQLError(`Collection '${schemaType.name}' not found`, {
505
+ extensions: { code: 'NOT_FOUND' }
506
+ });
507
+ }
508
+ // Unpublish document via LocalAPI
509
+ const doc = await collection.unpublish(apiContext, args.id);
510
+ if (!doc) {
511
+ throw new GraphQLError('Document not found', {
512
+ extensions: { code: 'NOT_FOUND' }
513
+ });
514
+ }
515
+ const data = { ...doc };
516
+ const meta = data._meta || {};
517
+ delete data._meta;
518
+ // Normalize array fields
519
+ const normalizedData = normalizeDocumentFields(data, schemaType, schemaTypes);
520
+ return {
521
+ id: meta.id || args.id,
522
+ type: meta.type || schemaType.name,
523
+ status: 'draft',
524
+ createdAt: meta.createdAt?.toISOString() || null,
525
+ updatedAt: meta.updatedAt?.toISOString() || null,
526
+ publishedAt: null,
527
+ ...normalizedData
528
+ };
529
+ }
530
+ catch (error) {
531
+ if (error instanceof GraphQLError) {
532
+ throw error;
533
+ }
534
+ cmsLogger.error(`GraphQL mutation error:`, error);
535
+ throw new GraphQLError(error.message, {
536
+ extensions: { code: 'BAD_REQUEST', originalError: error.stack }
537
+ });
538
+ }
539
+ };
540
+ });
541
+ return resolvers;
542
+ }
@@ -0,0 +1,3 @@
1
+ import type { SchemaType } from '../types/schemas.js';
2
+ export declare function generateGraphQLSchema(schemaTypes: SchemaType[]): string;
3
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkD,MAAM,kBAAkB,CAAC;AAkWnG,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CA0EvE"}