opacacms 0.1.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 (399) hide show
  1. package/bun.lock +34 -0
  2. package/dist/admin/api-client.d.ts +8 -0
  3. package/dist/admin/auth-client.d.ts +940 -0
  4. package/dist/admin/custom-field.d.ts +71 -0
  5. package/dist/admin/index.d.ts +11 -0
  6. package/dist/admin/react.d.ts +3 -0
  7. package/dist/admin/router.d.ts +7 -0
  8. package/dist/admin/stores/admin-queries.d.ts +32 -0
  9. package/dist/admin/stores/auth.d.ts +33 -0
  10. package/dist/admin/stores/column-visibility.d.ts +21 -0
  11. package/dist/admin/stores/config.d.ts +7 -0
  12. package/dist/admin/stores/media.d.ts +44 -0
  13. package/dist/admin/stores/query.d.ts +4 -0
  14. package/dist/admin/stores/ui.d.ts +11 -0
  15. package/dist/admin/ui/admin-client.d.ts +7 -0
  16. package/dist/admin/ui/admin-layout.d.ts +14 -0
  17. package/dist/admin/ui/components/ColumnVisibilityToggle.d.ts +10 -0
  18. package/dist/admin/ui/components/DataDetailSheet.d.ts +13 -0
  19. package/dist/admin/ui/components/DataDetailView.d.ts +9 -0
  20. package/dist/admin/ui/components/Table.d.ts +10 -0
  21. package/dist/admin/ui/components/fields/ArrayField.d.ts +13 -0
  22. package/dist/admin/ui/components/fields/BlocksField.d.ts +17 -0
  23. package/dist/admin/ui/components/fields/BooleanField.d.ts +13 -0
  24. package/dist/admin/ui/components/fields/CollapsibleField.d.ts +16 -0
  25. package/dist/admin/ui/components/fields/DateField.d.ts +13 -0
  26. package/dist/admin/ui/components/fields/FileField.d.ts +23 -0
  27. package/dist/admin/ui/components/fields/GroupField.d.ts +13 -0
  28. package/dist/admin/ui/components/fields/JoinField.d.ts +15 -0
  29. package/dist/admin/ui/components/fields/NumberField.d.ts +14 -0
  30. package/dist/admin/ui/components/fields/RadioField.d.ts +17 -0
  31. package/dist/admin/ui/components/fields/RelationshipField.d.ts +16 -0
  32. package/dist/admin/ui/components/fields/RowField.d.ts +12 -0
  33. package/dist/admin/ui/components/fields/SelectField.d.ts +18 -0
  34. package/dist/admin/ui/components/fields/TabsField.d.ts +15 -0
  35. package/dist/admin/ui/components/fields/TextAreaField.d.ts +14 -0
  36. package/dist/admin/ui/components/fields/TextField.d.ts +14 -0
  37. package/dist/admin/ui/components/fields/VirtualField.d.ts +8 -0
  38. package/dist/admin/ui/components/fields/index.d.ts +28 -0
  39. package/dist/admin/ui/components/fields/richtext-editor/index.d.ts +10 -0
  40. package/dist/admin/ui/components/fields/richtext-editor/nodes/ImageComponent.d.ts +7 -0
  41. package/dist/admin/ui/components/fields/richtext-editor/nodes/ImageNode.d.ts +27 -0
  42. package/dist/admin/ui/components/fields/richtext-editor/plugins/ComponentPickerPlugin.d.ts +1 -0
  43. package/dist/admin/ui/components/fields/richtext-editor/plugins/EditableSyncPlugin.d.ts +5 -0
  44. package/dist/admin/ui/components/fields/richtext-editor/plugins/NotionToolbarPlugin.d.ts +1 -0
  45. package/dist/admin/ui/components/fields/richtext-editor/plugins/SimpleToolbarPlugin.d.ts +1 -0
  46. package/dist/admin/ui/components/fields/richtext-editor/plugins/ValueSyncPlugin.d.ts +5 -0
  47. package/dist/admin/ui/components/fields/utils.d.ts +1 -0
  48. package/dist/admin/ui/components/link.d.ts +8 -0
  49. package/dist/admin/ui/components/media/AssetManagerModal.d.ts +17 -0
  50. package/dist/admin/ui/components/toast.d.ts +10 -0
  51. package/dist/admin/ui/components/ui/accordion.d.ts +11 -0
  52. package/dist/admin/ui/components/ui/alert-dialog.d.ts +12 -0
  53. package/dist/admin/ui/components/ui/blocks.d.ts +5 -0
  54. package/dist/admin/ui/components/ui/breadcrumbs.d.ts +7 -0
  55. package/dist/admin/ui/components/ui/button.d.ts +7 -0
  56. package/dist/admin/ui/components/ui/collapsible.d.ts +16 -0
  57. package/dist/admin/ui/components/ui/dialog.d.ts +27 -0
  58. package/dist/admin/ui/components/ui/group.d.ts +6 -0
  59. package/dist/admin/ui/components/ui/index.d.ts +17 -0
  60. package/dist/admin/ui/components/ui/input.d.ts +5 -0
  61. package/dist/admin/ui/components/ui/join.d.ts +7 -0
  62. package/dist/admin/ui/components/ui/label.d.ts +3 -0
  63. package/dist/admin/ui/components/ui/radio-group.d.ts +13 -0
  64. package/dist/admin/ui/components/ui/relationship-detail-sheet.d.ts +9 -0
  65. package/dist/admin/ui/components/ui/relationship.d.ts +8 -0
  66. package/dist/admin/ui/components/ui/scroll-area.d.ts +7 -0
  67. package/dist/admin/ui/components/ui/select.d.ts +37 -0
  68. package/dist/admin/ui/components/ui/separator.d.ts +8 -0
  69. package/dist/admin/ui/components/ui/sheet.d.ts +28 -0
  70. package/dist/admin/ui/components/ui/tabs.d.ts +17 -0
  71. package/dist/admin/ui/components/ui/utils.d.ts +1 -0
  72. package/dist/admin/ui/hooks/use-debounce.d.ts +1 -0
  73. package/dist/admin/ui/views/collection-list-view.d.ts +5 -0
  74. package/dist/admin/ui/views/dashboard-view.d.ts +10 -0
  75. package/dist/admin/ui/views/document-edit-view.d.ts +7 -0
  76. package/dist/admin/ui/views/global-edit-view.d.ts +19 -0
  77. package/dist/admin/ui/views/init-view.d.ts +4 -0
  78. package/dist/admin/ui/views/login-view.d.ts +4 -0
  79. package/dist/admin/ui/views/media-registry-view.d.ts +7 -0
  80. package/dist/admin/ui/views/settings-view.d.ts +7 -0
  81. package/dist/admin/webcomponent.d.ts +1 -0
  82. package/dist/api.d.ts +6 -0
  83. package/dist/auth/index.d.ts +2107 -0
  84. package/dist/auth/migrations.d.ts +5 -0
  85. package/dist/auth/premissions.d.ts +6 -0
  86. package/dist/chunk-16vgcf3k.js +88 -0
  87. package/dist/chunk-2zm8cy1w.js +9482 -0
  88. package/dist/chunk-5gvbp2qa.js +167 -0
  89. package/dist/chunk-62ev8gnc.js +41 -0
  90. package/dist/chunk-6dhs73zq.js +126 -0
  91. package/dist/chunk-6ew02s0c.js +472 -0
  92. package/dist/chunk-7a9kn0np.js +116 -0
  93. package/dist/chunk-8gkhn1d4.js +309 -0
  94. package/dist/chunk-8sqjbsgt.js +42 -0
  95. package/dist/chunk-9kxpbcb1.js +85 -0
  96. package/dist/chunk-cvdd4eqh.js +110 -0
  97. package/dist/chunk-d3ffeqp9.js +87 -0
  98. package/dist/chunk-dy5t83hr.js +261 -0
  99. package/dist/chunk-f3nvxn63.js +17 -0
  100. package/dist/chunk-hmhcense.js +1352 -0
  101. package/dist/chunk-j4d50hrx.js +20 -0
  102. package/dist/chunk-jwjk85ze.js +15 -0
  103. package/dist/chunk-kwp83w8b.js +250 -0
  104. package/dist/chunk-s8mqwnm1.js +14 -0
  105. package/dist/chunk-srsac177.js +85 -0
  106. package/dist/chunk-v521d72w.js +10 -0
  107. package/dist/chunk-xa7rjsn2.js +20 -0
  108. package/dist/chunk-xg35h5a3.js +15 -0
  109. package/dist/chunk-ybbbqj63.js +130 -0
  110. package/dist/chunk-zvwb67nd.js +332 -0
  111. package/dist/cli/commands/generate-types.d.ts +1 -0
  112. package/dist/cli/commands/init.d.ts +1 -0
  113. package/dist/cli/commands/migrate-commands.d.ts +5 -0
  114. package/dist/cli/commands/seed-command.d.ts +2 -0
  115. package/dist/cli/d1-mock.d.ts +30 -0
  116. package/dist/cli/index.d.ts +5 -0
  117. package/dist/cli/index.test.d.ts +1 -0
  118. package/dist/cli/r2-mock.d.ts +46 -0
  119. package/dist/cli/seeding.d.ts +17 -0
  120. package/dist/client.d.ts +51 -0
  121. package/dist/config-utils.d.ts +6 -0
  122. package/dist/config.d.ts +10 -0
  123. package/dist/db/adapter.d.ts +34 -0
  124. package/dist/db/better-sqlite.d.ts +40 -0
  125. package/dist/db/bun-sqlite.d.ts +40 -0
  126. package/dist/db/d1.d.ts +42 -0
  127. package/dist/db/kysely/data-mapper.d.ts +6 -0
  128. package/dist/db/kysely/field-mapper.d.ts +22 -0
  129. package/dist/db/kysely/migration-generator.d.ts +9 -0
  130. package/dist/db/kysely/query-builder.d.ts +9 -0
  131. package/dist/db/kysely/schema-builder.d.ts +15 -0
  132. package/dist/db/kysely/sql-utils.d.ts +1 -0
  133. package/dist/db/postgres.d.ts +51 -0
  134. package/dist/db/sqlite.d.ts +41 -0
  135. package/dist/db/system-schema.d.ts +2 -0
  136. package/dist/index.d.ts +6 -0
  137. package/dist/runtimes/bun.d.ts +17 -0
  138. package/dist/runtimes/cloudflare-workers.d.ts +10 -0
  139. package/dist/runtimes/next.d.ts +16 -0
  140. package/dist/runtimes/node.d.ts +18 -0
  141. package/dist/schema/collection.d.ts +100 -0
  142. package/dist/schema/fields/base.d.ts +83 -0
  143. package/dist/schema/fields/index.d.ts +135 -0
  144. package/dist/schema/global.d.ts +82 -0
  145. package/dist/schema/index.d.ts +4 -0
  146. package/dist/schema/infer.d.ts +55 -0
  147. package/dist/server/admin-router.d.ts +9 -0
  148. package/dist/server/admin.d.ts +18 -0
  149. package/dist/server/assets.d.ts +47 -0
  150. package/dist/server/collection-router.d.ts +14 -0
  151. package/dist/server/handlers.d.ts +76 -0
  152. package/dist/server/middlewares/admin.d.ts +6 -0
  153. package/dist/server/middlewares/auth.d.ts +16 -0
  154. package/dist/server/middlewares/context.d.ts +9 -0
  155. package/dist/server/middlewares/cors.d.ts +3 -0
  156. package/dist/server/middlewares/database-init.d.ts +11 -0
  157. package/dist/server/middlewares/rate-limit.d.ts +3 -0
  158. package/dist/server/router.d.ts +7 -0
  159. package/dist/server/setup-middlewares.d.ts +17 -0
  160. package/dist/server/system-router.d.ts +9 -0
  161. package/dist/server.d.ts +6 -0
  162. package/dist/src/admin/index.css +47 -0
  163. package/dist/src/admin/index.js +176 -0
  164. package/dist/src/admin/webcomponent.js +19 -0
  165. package/dist/src/api.js +27 -0
  166. package/dist/src/cli/index.js +157 -0
  167. package/dist/src/client.js +9 -0
  168. package/dist/src/db/bun-sqlite.js +523 -0
  169. package/dist/src/db/d1.js +568 -0
  170. package/dist/src/db/postgres.js +520 -0
  171. package/dist/src/db/sqlite.js +534 -0
  172. package/dist/src/index.js +20 -0
  173. package/dist/src/runtimes/bun.js +36 -0
  174. package/dist/src/runtimes/cloudflare-workers.js +29 -0
  175. package/dist/src/runtimes/next.js +26 -0
  176. package/dist/src/runtimes/node.js +38 -0
  177. package/dist/src/server.js +27 -0
  178. package/dist/src/storage/index.js +355 -0
  179. package/dist/storage/adapters/cloudflare-r2.d.ts +6 -0
  180. package/dist/storage/adapters/local.d.ts +6 -0
  181. package/dist/storage/adapters/s3.d.ts +13 -0
  182. package/dist/storage/errors.d.ts +12 -0
  183. package/dist/storage/index.d.ts +5 -0
  184. package/dist/storage/types.d.ts +31 -0
  185. package/dist/types.d.ts +484 -0
  186. package/dist/utils/lexical.d.ts +5 -0
  187. package/dist/utils/logger.d.ts +35 -0
  188. package/dist/validation.d.ts +300 -0
  189. package/dist/validator.d.ts +9 -0
  190. package/global.d.ts +11 -0
  191. package/package.json +151 -0
  192. package/src/admin/api-client.ts +63 -0
  193. package/src/admin/auth-client.ts +40 -0
  194. package/src/admin/custom-field.ts +179 -0
  195. package/src/admin/index.ts +15 -0
  196. package/src/admin/react.tsx +72 -0
  197. package/src/admin/router.ts +9 -0
  198. package/src/admin/stores/admin-queries.ts +121 -0
  199. package/src/admin/stores/auth.ts +61 -0
  200. package/src/admin/stores/column-visibility.ts +67 -0
  201. package/src/admin/stores/config.ts +15 -0
  202. package/src/admin/stores/media.ts +95 -0
  203. package/src/admin/stores/query.ts +13 -0
  204. package/src/admin/stores/ui.ts +29 -0
  205. package/src/admin/ui/admin-client.tsx +283 -0
  206. package/src/admin/ui/admin-layout.tsx +276 -0
  207. package/src/admin/ui/components/ColumnVisibilityToggle.tsx +141 -0
  208. package/src/admin/ui/components/DataDetailSheet.tsx +141 -0
  209. package/src/admin/ui/components/DataDetailView.tsx +175 -0
  210. package/src/admin/ui/components/Table.tsx +67 -0
  211. package/src/admin/ui/components/fields/ArrayField.tsx +166 -0
  212. package/src/admin/ui/components/fields/BlocksField.tsx +202 -0
  213. package/src/admin/ui/components/fields/BooleanField.tsx +50 -0
  214. package/src/admin/ui/components/fields/CollapsibleField.tsx +75 -0
  215. package/src/admin/ui/components/fields/DateField.tsx +45 -0
  216. package/src/admin/ui/components/fields/FileField.tsx +322 -0
  217. package/src/admin/ui/components/fields/GroupField.tsx +50 -0
  218. package/src/admin/ui/components/fields/JoinField.tsx +23 -0
  219. package/src/admin/ui/components/fields/NumberField.tsx +46 -0
  220. package/src/admin/ui/components/fields/RadioField.tsx +62 -0
  221. package/src/admin/ui/components/fields/RelationshipField.tsx +278 -0
  222. package/src/admin/ui/components/fields/RowField.tsx +40 -0
  223. package/src/admin/ui/components/fields/SelectField.tsx +59 -0
  224. package/src/admin/ui/components/fields/TabsField.tsx +101 -0
  225. package/src/admin/ui/components/fields/TextAreaField.tsx +54 -0
  226. package/src/admin/ui/components/fields/TextField.tsx +49 -0
  227. package/src/admin/ui/components/fields/VirtualField.tsx +53 -0
  228. package/src/admin/ui/components/fields/index.tsx +371 -0
  229. package/src/admin/ui/components/fields/richtext-editor/index.tsx +211 -0
  230. package/src/admin/ui/components/fields/richtext-editor/nodes/ImageComponent.tsx +142 -0
  231. package/src/admin/ui/components/fields/richtext-editor/nodes/ImageNode.tsx +95 -0
  232. package/src/admin/ui/components/fields/richtext-editor/plugins/ComponentPickerPlugin.tsx +226 -0
  233. package/src/admin/ui/components/fields/richtext-editor/plugins/EditableSyncPlugin.tsx +16 -0
  234. package/src/admin/ui/components/fields/richtext-editor/plugins/NotionToolbarPlugin.tsx +184 -0
  235. package/src/admin/ui/components/fields/richtext-editor/plugins/SimpleToolbarPlugin.tsx +240 -0
  236. package/src/admin/ui/components/fields/richtext-editor/plugins/ValueSyncPlugin.tsx +40 -0
  237. package/src/admin/ui/components/fields/utils.ts +1 -0
  238. package/src/admin/ui/components/link.tsx +41 -0
  239. package/src/admin/ui/components/media/AssetManagerModal.tsx +334 -0
  240. package/src/admin/ui/components/toast.tsx +72 -0
  241. package/src/admin/ui/components/ui/accordion.tsx +51 -0
  242. package/src/admin/ui/components/ui/alert-dialog.tsx +98 -0
  243. package/src/admin/ui/components/ui/blocks.tsx +32 -0
  244. package/src/admin/ui/components/ui/breadcrumbs.tsx +59 -0
  245. package/src/admin/ui/components/ui/button.tsx +26 -0
  246. package/src/admin/ui/components/ui/collapsible.tsx +124 -0
  247. package/src/admin/ui/components/ui/dialog.tsx +79 -0
  248. package/src/admin/ui/components/ui/group.tsx +20 -0
  249. package/src/admin/ui/components/ui/index.ts +17 -0
  250. package/src/admin/ui/components/ui/input.tsx +12 -0
  251. package/src/admin/ui/components/ui/join.tsx +53 -0
  252. package/src/admin/ui/components/ui/label.tsx +11 -0
  253. package/src/admin/ui/components/ui/radio-group.tsx +75 -0
  254. package/src/admin/ui/components/ui/relationship-detail-sheet.tsx +122 -0
  255. package/src/admin/ui/components/ui/relationship.tsx +58 -0
  256. package/src/admin/ui/components/ui/scroll-area.tsx +19 -0
  257. package/src/admin/ui/components/ui/select.tsx +187 -0
  258. package/src/admin/ui/components/ui/separator.tsx +21 -0
  259. package/src/admin/ui/components/ui/sheet.tsx +106 -0
  260. package/src/admin/ui/components/ui/tabs.tsx +116 -0
  261. package/src/admin/ui/components/ui/utils.ts +3 -0
  262. package/src/admin/ui/hooks/use-debounce.ts +15 -0
  263. package/src/admin/ui/styles/_locale-switcher.scss +33 -0
  264. package/src/admin/ui/styles/accordion.scss +60 -0
  265. package/src/admin/ui/styles/animations.scss +41 -0
  266. package/src/admin/ui/styles/asset-manager.scss +547 -0
  267. package/src/admin/ui/styles/badge.scss +13 -0
  268. package/src/admin/ui/styles/base.scss +22 -0
  269. package/src/admin/ui/styles/button.scss +161 -0
  270. package/src/admin/ui/styles/card.scss +13 -0
  271. package/src/admin/ui/styles/collapsible.scss +75 -0
  272. package/src/admin/ui/styles/data-detail.scss +92 -0
  273. package/src/admin/ui/styles/dialog.scss +102 -0
  274. package/src/admin/ui/styles/empty-state.scss +22 -0
  275. package/src/admin/ui/styles/group.scss +19 -0
  276. package/src/admin/ui/styles/index.scss +33 -0
  277. package/src/admin/ui/styles/input.scss +80 -0
  278. package/src/admin/ui/styles/label.scss +12 -0
  279. package/src/admin/ui/styles/layout.scss +56 -0
  280. package/src/admin/ui/styles/lexical.scss +469 -0
  281. package/src/admin/ui/styles/loading.scss +102 -0
  282. package/src/admin/ui/styles/media-registry.scss +597 -0
  283. package/src/admin/ui/styles/pagination.scss +20 -0
  284. package/src/admin/ui/styles/radio-group.scss +66 -0
  285. package/src/admin/ui/styles/row.scss +17 -0
  286. package/src/admin/ui/styles/scrollbar.scss +36 -0
  287. package/src/admin/ui/styles/select.scss +121 -0
  288. package/src/admin/ui/styles/separator.scss +14 -0
  289. package/src/admin/ui/styles/sheet.scss +152 -0
  290. package/src/admin/ui/styles/sidebar.scss +148 -0
  291. package/src/admin/ui/styles/switch.scss +59 -0
  292. package/src/admin/ui/styles/table.scss +207 -0
  293. package/src/admin/ui/styles/tabs.scss +62 -0
  294. package/src/admin/ui/styles/toast.scss +45 -0
  295. package/src/admin/ui/styles/variables.scss +24 -0
  296. package/src/admin/ui/views/collection-list-view.tsx +720 -0
  297. package/src/admin/ui/views/dashboard-view.tsx +263 -0
  298. package/src/admin/ui/views/document-edit-view.tsx +384 -0
  299. package/src/admin/ui/views/global-edit-view.tsx +226 -0
  300. package/src/admin/ui/views/init-view.tsx +182 -0
  301. package/src/admin/ui/views/login-view.tsx +123 -0
  302. package/src/admin/ui/views/media-registry-view.tsx +1104 -0
  303. package/src/admin/ui/views/settings-view.tsx +729 -0
  304. package/src/admin/webcomponent.tsx +15 -0
  305. package/src/api.ts +9 -0
  306. package/src/auth/index.ts +194 -0
  307. package/src/auth/migrations.ts +87 -0
  308. package/src/auth/premissions.ts +46 -0
  309. package/src/cli/commands/generate-types.ts +116 -0
  310. package/src/cli/commands/init.ts +95 -0
  311. package/src/cli/commands/migrate-commands.ts +160 -0
  312. package/src/cli/commands/seed-command.ts +11 -0
  313. package/src/cli/d1-mock.ts +101 -0
  314. package/src/cli/index.test.ts +84 -0
  315. package/src/cli/index.ts +183 -0
  316. package/src/cli/r2-mock.ts +217 -0
  317. package/src/cli/seeding.ts +405 -0
  318. package/src/client.ts +181 -0
  319. package/src/config-utils.ts +102 -0
  320. package/src/config.ts +49 -0
  321. package/src/db/adapter.ts +53 -0
  322. package/src/db/better-sqlite.ts +630 -0
  323. package/src/db/bun-sqlite.ts +646 -0
  324. package/src/db/d1.ts +711 -0
  325. package/src/db/kysely/data-mapper.ts +142 -0
  326. package/src/db/kysely/field-mapper.ts +148 -0
  327. package/src/db/kysely/migration-generator.ts +223 -0
  328. package/src/db/kysely/query-builder.ts +92 -0
  329. package/src/db/kysely/schema-builder.ts +439 -0
  330. package/src/db/kysely/sql-utils.ts +13 -0
  331. package/src/db/postgres.ts +621 -0
  332. package/src/db/sqlite.ts +658 -0
  333. package/src/db/system-schema.ts +121 -0
  334. package/src/index.ts +13 -0
  335. package/src/runtimes/README.md +59 -0
  336. package/src/runtimes/bun.ts +49 -0
  337. package/src/runtimes/cloudflare-workers.ts +38 -0
  338. package/src/runtimes/next.ts +26 -0
  339. package/src/runtimes/node.ts +52 -0
  340. package/src/schema/collection.ts +184 -0
  341. package/src/schema/fields/base.ts +164 -0
  342. package/src/schema/fields/index.ts +427 -0
  343. package/src/schema/global.ts +145 -0
  344. package/src/schema/index.ts +4 -0
  345. package/src/schema/infer.ts +72 -0
  346. package/src/server/admin-router.ts +20 -0
  347. package/src/server/admin.ts +142 -0
  348. package/src/server/assets.ts +306 -0
  349. package/src/server/collection-router.ts +55 -0
  350. package/src/server/handlers.ts +722 -0
  351. package/src/server/middlewares/admin.ts +27 -0
  352. package/src/server/middlewares/auth.ts +89 -0
  353. package/src/server/middlewares/context.ts +17 -0
  354. package/src/server/middlewares/cors.ts +24 -0
  355. package/src/server/middlewares/database-init.ts +74 -0
  356. package/src/server/middlewares/rate-limit.ts +71 -0
  357. package/src/server/router.ts +47 -0
  358. package/src/server/setup-middlewares.ts +58 -0
  359. package/src/server/system-router.ts +35 -0
  360. package/src/server.ts +9 -0
  361. package/src/storage/adapters/cloudflare-r2.ts +136 -0
  362. package/src/storage/adapters/local.ts +146 -0
  363. package/src/storage/adapters/s3.ts +186 -0
  364. package/src/storage/errors.ts +46 -0
  365. package/src/storage/index.ts +5 -0
  366. package/src/storage/types.ts +39 -0
  367. package/src/types.ts +577 -0
  368. package/src/utils/lexical.ts +37 -0
  369. package/src/utils/logger.ts +73 -0
  370. package/src/validation.ts +429 -0
  371. package/src/validator.ts +179 -0
  372. package/test/admin-custom-field.test.ts +162 -0
  373. package/test/admin-react-field.test.tsx +134 -0
  374. package/test/api-features.test.ts +78 -0
  375. package/test/api.test.ts +178 -0
  376. package/test/auth.test.ts +62 -0
  377. package/test/cli-integration.test.ts +146 -0
  378. package/test/cli.test.ts +25 -0
  379. package/test/db/postgres.test.ts +95 -0
  380. package/test/db/sqlite-filter.test.ts +53 -0
  381. package/test/db/sqlite.test.ts +82 -0
  382. package/test/engine-features.test.ts +79 -0
  383. package/test/globals.test.ts +74 -0
  384. package/test/integration-tmp/db-app/opacacms.config.ts +15 -0
  385. package/test/integration-tmp/my-sqlite-app/opacacms.config.ts +25 -0
  386. package/test/integration-tmp/my-test-app/index.ts +8 -0
  387. package/test/integration-tmp/my-test-app/opacacms.config.ts +16 -0
  388. package/test/integration-tmp/my-test-app/package.json +12 -0
  389. package/test/populate.test.ts +79 -0
  390. package/test/runtimes.test.ts +43 -0
  391. package/test/schema-builder.test.ts +107 -0
  392. package/test/schema-features.test.ts +63 -0
  393. package/test/seeding.test.ts +68 -0
  394. package/test/storage/local.test.ts +72 -0
  395. package/test/storage/s3.test.ts +60 -0
  396. package/test/structural-data.test.ts +100 -0
  397. package/test/test-setup.ts +11 -0
  398. package/test/validation.test.ts +162 -0
  399. package/tsconfig.json +42 -0
@@ -0,0 +1,940 @@
1
+ export declare const configureAuth: (serverUrl: string) => void;
2
+ /**
3
+ * A proxy for the authClient that allows us to configure it late
4
+ * (e.g. after we have the user's config with serverURL).
5
+ */
6
+ export declare const authClient: {
7
+ signOut: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
8
+ query?: Record<string, any> | undefined;
9
+ fetchOptions?: FetchOptions | undefined;
10
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
11
+ success: boolean;
12
+ }, {
13
+ code?: string | undefined;
14
+ message?: string | undefined;
15
+ }, FetchOptions["throw"] extends true ? true : false>>;
16
+ } & {
17
+ resetPassword: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
18
+ newPassword: string;
19
+ token?: string | undefined;
20
+ }> & Record<string, any>, Partial<{
21
+ token?: string | undefined;
22
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
23
+ newPassword: string;
24
+ token?: string | undefined;
25
+ } & {
26
+ fetchOptions?: FetchOptions | undefined;
27
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
28
+ status: boolean;
29
+ }, {
30
+ code?: string | undefined;
31
+ message?: string | undefined;
32
+ }, FetchOptions["throw"] extends true ? true : false>>;
33
+ } & {
34
+ verifyEmail: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
35
+ token: string;
36
+ callbackURL?: string | undefined;
37
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
38
+ query: {
39
+ token: string;
40
+ callbackURL?: string | undefined;
41
+ };
42
+ fetchOptions?: FetchOptions | undefined;
43
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<NonNullable<void | {
44
+ status: boolean;
45
+ }>, {
46
+ code?: string | undefined;
47
+ message?: string | undefined;
48
+ }, FetchOptions["throw"] extends true ? true : false>>;
49
+ } & {
50
+ sendVerificationEmail: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
51
+ email: string;
52
+ callbackURL?: string | undefined;
53
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
54
+ email: string;
55
+ callbackURL?: string | undefined;
56
+ } & {
57
+ fetchOptions?: FetchOptions | undefined;
58
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
59
+ status: boolean;
60
+ }, {
61
+ code?: string | undefined;
62
+ message?: string | undefined;
63
+ }, FetchOptions["throw"] extends true ? true : false>>;
64
+ } & {
65
+ changeEmail: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
66
+ newEmail: string;
67
+ callbackURL?: string | undefined;
68
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
69
+ newEmail: string;
70
+ callbackURL?: string | undefined;
71
+ } & {
72
+ fetchOptions?: FetchOptions | undefined;
73
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
74
+ status: boolean;
75
+ }, {
76
+ code?: string | undefined;
77
+ message?: string | undefined;
78
+ }, FetchOptions["throw"] extends true ? true : false>>;
79
+ } & {
80
+ changePassword: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
81
+ newPassword: string;
82
+ currentPassword: string;
83
+ revokeOtherSessions?: boolean | undefined;
84
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
85
+ newPassword: string;
86
+ currentPassword: string;
87
+ revokeOtherSessions?: boolean | undefined;
88
+ } & {
89
+ fetchOptions?: FetchOptions | undefined;
90
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<Omit<{
91
+ token: string | null;
92
+ user: {
93
+ id: string;
94
+ createdAt: Date;
95
+ updatedAt: Date;
96
+ email: string;
97
+ emailVerified: boolean;
98
+ name: string;
99
+ image?: string | null | undefined;
100
+ } & Record<string, any> & {
101
+ id: string;
102
+ createdAt: Date;
103
+ updatedAt: Date;
104
+ email: string;
105
+ emailVerified: boolean;
106
+ name: string;
107
+ image?: string | null | undefined;
108
+ };
109
+ }, "user"> & {
110
+ user: import("better-auth").StripEmptyObjects<{
111
+ id: string;
112
+ createdAt: Date;
113
+ updatedAt: Date;
114
+ email: string;
115
+ emailVerified: boolean;
116
+ name: string;
117
+ image?: string | null | undefined;
118
+ }>;
119
+ }, {
120
+ code?: string | undefined;
121
+ message?: string | undefined;
122
+ }, FetchOptions["throw"] extends true ? true : false>>;
123
+ } & {
124
+ deleteUser: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
125
+ callbackURL?: string | undefined;
126
+ password?: string | undefined;
127
+ token?: string | undefined;
128
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
129
+ callbackURL?: string | undefined;
130
+ password?: string | undefined;
131
+ token?: string | undefined;
132
+ } & {
133
+ fetchOptions?: FetchOptions | undefined;
134
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
135
+ success: boolean;
136
+ message: string;
137
+ }, {
138
+ code?: string | undefined;
139
+ message?: string | undefined;
140
+ }, FetchOptions["throw"] extends true ? true : false>>;
141
+ } & {
142
+ requestPasswordReset: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
143
+ email: string;
144
+ redirectTo?: string | undefined;
145
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
146
+ email: string;
147
+ redirectTo?: string | undefined;
148
+ } & {
149
+ fetchOptions?: FetchOptions | undefined;
150
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
151
+ status: boolean;
152
+ message: string;
153
+ }, {
154
+ code?: string | undefined;
155
+ message?: string | undefined;
156
+ }, FetchOptions["throw"] extends true ? true : false>>;
157
+ } & {
158
+ resetPassword: {
159
+ ":token": <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
160
+ callbackURL: string;
161
+ }> & Record<string, any>, {
162
+ token: string;
163
+ }>>(data_0: import("better-auth").Prettify<{
164
+ query: {
165
+ callbackURL: string;
166
+ };
167
+ fetchOptions?: FetchOptions | undefined;
168
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<never, {
169
+ code?: string | undefined;
170
+ message?: string | undefined;
171
+ }, FetchOptions["throw"] extends true ? true : false>>;
172
+ };
173
+ } & {
174
+ revokeSession: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
175
+ token: string;
176
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
177
+ token: string;
178
+ } & {
179
+ fetchOptions?: FetchOptions | undefined;
180
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
181
+ status: boolean;
182
+ }, {
183
+ code?: string | undefined;
184
+ message?: string | undefined;
185
+ }, FetchOptions["throw"] extends true ? true : false>>;
186
+ } & {
187
+ revokeSessions: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
188
+ query?: Record<string, any> | undefined;
189
+ fetchOptions?: FetchOptions | undefined;
190
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
191
+ status: boolean;
192
+ }, {
193
+ code?: string | undefined;
194
+ message?: string | undefined;
195
+ }, FetchOptions["throw"] extends true ? true : false>>;
196
+ } & {
197
+ revokeOtherSessions: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
198
+ query?: Record<string, any> | undefined;
199
+ fetchOptions?: FetchOptions | undefined;
200
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
201
+ status: boolean;
202
+ }, {
203
+ code?: string | undefined;
204
+ message?: string | undefined;
205
+ }, FetchOptions["throw"] extends true ? true : false>>;
206
+ } & {
207
+ linkSocial: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
208
+ provider: unknown;
209
+ callbackURL?: string | undefined;
210
+ idToken?: {
211
+ token: string;
212
+ nonce?: string | undefined;
213
+ accessToken?: string | undefined;
214
+ refreshToken?: string | undefined;
215
+ scopes?: string[] | undefined;
216
+ } | undefined;
217
+ requestSignUp?: boolean | undefined;
218
+ scopes?: string[] | undefined;
219
+ errorCallbackURL?: string | undefined;
220
+ disableRedirect?: boolean | undefined;
221
+ additionalData?: Record<string, any> | undefined;
222
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
223
+ provider: unknown;
224
+ callbackURL?: string | undefined;
225
+ idToken?: {
226
+ token: string;
227
+ nonce?: string | undefined;
228
+ accessToken?: string | undefined;
229
+ refreshToken?: string | undefined;
230
+ scopes?: string[] | undefined;
231
+ } | undefined;
232
+ requestSignUp?: boolean | undefined;
233
+ scopes?: string[] | undefined;
234
+ errorCallbackURL?: string | undefined;
235
+ disableRedirect?: boolean | undefined;
236
+ additionalData?: Record<string, any> | undefined;
237
+ } & {
238
+ fetchOptions?: FetchOptions | undefined;
239
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
240
+ url: string;
241
+ redirect: boolean;
242
+ }, {
243
+ code?: string | undefined;
244
+ message?: string | undefined;
245
+ }, FetchOptions["throw"] extends true ? true : false>>;
246
+ } & {
247
+ listAccounts: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
248
+ query?: Record<string, any> | undefined;
249
+ fetchOptions?: FetchOptions | undefined;
250
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
251
+ scopes: string[];
252
+ id: string;
253
+ createdAt: Date;
254
+ updatedAt: Date;
255
+ userId: string;
256
+ providerId: string;
257
+ accountId: string;
258
+ }[], {
259
+ code?: string | undefined;
260
+ message?: string | undefined;
261
+ }, FetchOptions["throw"] extends true ? true : false>>;
262
+ } & {
263
+ deleteUser: {
264
+ callback: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
265
+ token: string;
266
+ callbackURL?: string | undefined;
267
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
268
+ query: {
269
+ token: string;
270
+ callbackURL?: string | undefined;
271
+ };
272
+ fetchOptions?: FetchOptions | undefined;
273
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
274
+ success: boolean;
275
+ message: string;
276
+ }, {
277
+ code?: string | undefined;
278
+ message?: string | undefined;
279
+ }, FetchOptions["throw"] extends true ? true : false>>;
280
+ };
281
+ } & {
282
+ unlinkAccount: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
283
+ providerId: string;
284
+ accountId?: string | undefined;
285
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
286
+ providerId: string;
287
+ accountId?: string | undefined;
288
+ } & {
289
+ fetchOptions?: FetchOptions | undefined;
290
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
291
+ status: boolean;
292
+ }, {
293
+ code?: string | undefined;
294
+ message?: string | undefined;
295
+ }, FetchOptions["throw"] extends true ? true : false>>;
296
+ } & {
297
+ refreshToken: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
298
+ providerId: string;
299
+ accountId?: string | undefined;
300
+ userId?: string | undefined;
301
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
302
+ providerId: string;
303
+ accountId?: string | undefined;
304
+ userId?: string | undefined;
305
+ } & {
306
+ fetchOptions?: FetchOptions | undefined;
307
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
308
+ accessToken: string | undefined;
309
+ refreshToken: string;
310
+ accessTokenExpiresAt: Date | undefined;
311
+ refreshTokenExpiresAt: Date | null | undefined;
312
+ scope: string | null | undefined;
313
+ idToken: string | null | undefined;
314
+ providerId: string;
315
+ accountId: string;
316
+ }, {
317
+ code?: string | undefined;
318
+ message?: string | undefined;
319
+ }, FetchOptions["throw"] extends true ? true : false>>;
320
+ } & {
321
+ getAccessToken: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
322
+ providerId: string;
323
+ accountId?: string | undefined;
324
+ userId?: string | undefined;
325
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
326
+ providerId: string;
327
+ accountId?: string | undefined;
328
+ userId?: string | undefined;
329
+ } & {
330
+ fetchOptions?: FetchOptions | undefined;
331
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
332
+ accessToken: string;
333
+ accessTokenExpiresAt: Date | undefined;
334
+ scopes: string[];
335
+ idToken: string | undefined;
336
+ }, {
337
+ code?: string | undefined;
338
+ message?: string | undefined;
339
+ }, FetchOptions["throw"] extends true ? true : false>>;
340
+ } & {
341
+ accountInfo: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
342
+ accountId?: string | undefined;
343
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
344
+ query?: {
345
+ accountId?: string | undefined;
346
+ } | undefined;
347
+ fetchOptions?: FetchOptions | undefined;
348
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
349
+ user: import("better-auth").OAuth2UserInfo;
350
+ data: Record<string, any>;
351
+ }, {
352
+ code?: string | undefined;
353
+ message?: string | undefined;
354
+ }, FetchOptions["throw"] extends true ? true : false>>;
355
+ } & {
356
+ listSessions: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
357
+ query?: Record<string, any> | undefined;
358
+ fetchOptions?: FetchOptions | undefined;
359
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<import("better-auth").Prettify<{
360
+ id: string;
361
+ createdAt: Date;
362
+ updatedAt: Date;
363
+ userId: string;
364
+ expiresAt: Date;
365
+ token: string;
366
+ ipAddress?: string | null | undefined | undefined;
367
+ userAgent?: string | null | undefined | undefined;
368
+ }>[], {
369
+ code?: string | undefined;
370
+ message?: string | undefined;
371
+ }, FetchOptions["throw"] extends true ? true : false>>;
372
+ } & {
373
+ signIn: {
374
+ social: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
375
+ provider: (string & {}) | "linear" | "huggingface" | "notion" | "github" | "google" | "apple" | "atlassian" | "cognito" | "discord" | "facebook" | "figma" | "microsoft" | "slack" | "spotify" | "twitch" | "twitter" | "dropbox" | "kick" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "salesforce" | "vk" | "zoom" | "kakao" | "naver" | "line" | "paybin" | "paypal" | "polar" | "railway" | "vercel";
376
+ callbackURL?: string | undefined;
377
+ newUserCallbackURL?: string | undefined;
378
+ errorCallbackURL?: string | undefined;
379
+ disableRedirect?: boolean | undefined;
380
+ idToken?: {
381
+ token: string;
382
+ nonce?: string | undefined;
383
+ accessToken?: string | undefined;
384
+ refreshToken?: string | undefined;
385
+ expiresAt?: number | undefined;
386
+ user?: {
387
+ name?: {
388
+ firstName?: string | undefined;
389
+ lastName?: string | undefined;
390
+ } | undefined;
391
+ email?: string | undefined;
392
+ } | undefined;
393
+ } | undefined;
394
+ scopes?: string[] | undefined;
395
+ requestSignUp?: boolean | undefined;
396
+ loginHint?: string | undefined;
397
+ additionalData?: Record<string, any> | undefined;
398
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
399
+ provider: (string & {}) | "linear" | "huggingface" | "notion" | "github" | "google" | "apple" | "atlassian" | "cognito" | "discord" | "facebook" | "figma" | "microsoft" | "slack" | "spotify" | "twitch" | "twitter" | "dropbox" | "kick" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "salesforce" | "vk" | "zoom" | "kakao" | "naver" | "line" | "paybin" | "paypal" | "polar" | "railway" | "vercel";
400
+ callbackURL?: string | undefined;
401
+ newUserCallbackURL?: string | undefined;
402
+ errorCallbackURL?: string | undefined;
403
+ disableRedirect?: boolean | undefined;
404
+ idToken?: {
405
+ token: string;
406
+ nonce?: string | undefined;
407
+ accessToken?: string | undefined;
408
+ refreshToken?: string | undefined;
409
+ expiresAt?: number | undefined;
410
+ user?: {
411
+ name?: {
412
+ firstName?: string | undefined;
413
+ lastName?: string | undefined;
414
+ } | undefined;
415
+ email?: string | undefined;
416
+ } | undefined;
417
+ } | undefined;
418
+ scopes?: string[] | undefined;
419
+ requestSignUp?: boolean | undefined;
420
+ loginHint?: string | undefined;
421
+ additionalData?: Record<string, any> | undefined;
422
+ } & {
423
+ fetchOptions?: FetchOptions | undefined;
424
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
425
+ redirect: boolean;
426
+ url: string;
427
+ } | (Omit<{
428
+ redirect: boolean;
429
+ token: string;
430
+ url: undefined;
431
+ user: {
432
+ id: string;
433
+ createdAt: Date;
434
+ updatedAt: Date;
435
+ email: string;
436
+ emailVerified: boolean;
437
+ name: string;
438
+ image?: string | null | undefined | undefined;
439
+ };
440
+ }, "user"> & {
441
+ user: import("better-auth").StripEmptyObjects<{
442
+ id: string;
443
+ createdAt: Date;
444
+ updatedAt: Date;
445
+ email: string;
446
+ emailVerified: boolean;
447
+ name: string;
448
+ image?: string | null | undefined;
449
+ }>;
450
+ }), {
451
+ code?: string | undefined;
452
+ message?: string | undefined;
453
+ }, FetchOptions["throw"] extends true ? true : false>>;
454
+ };
455
+ } & {
456
+ signUp: {
457
+ email: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
458
+ name: string;
459
+ email: string;
460
+ password: string;
461
+ image?: string | undefined;
462
+ callbackURL?: string | undefined;
463
+ rememberMe?: boolean | undefined;
464
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
465
+ email: string;
466
+ name: string;
467
+ password: string;
468
+ image?: string | undefined;
469
+ callbackURL?: string | undefined;
470
+ fetchOptions?: FetchOptions | undefined;
471
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<(Omit<{
472
+ token: null;
473
+ user: {
474
+ id: string;
475
+ createdAt: Date;
476
+ updatedAt: Date;
477
+ email: string;
478
+ emailVerified: boolean;
479
+ name: string;
480
+ image?: string | null | undefined | undefined;
481
+ };
482
+ }, "user"> & {
483
+ user: import("better-auth").StripEmptyObjects<{
484
+ id: string;
485
+ createdAt: Date;
486
+ updatedAt: Date;
487
+ email: string;
488
+ emailVerified: boolean;
489
+ name: string;
490
+ image?: string | null | undefined;
491
+ }>;
492
+ }) | (Omit<{
493
+ token: string;
494
+ user: {
495
+ id: string;
496
+ createdAt: Date;
497
+ updatedAt: Date;
498
+ email: string;
499
+ emailVerified: boolean;
500
+ name: string;
501
+ image?: string | null | undefined | undefined;
502
+ };
503
+ }, "user"> & {
504
+ user: import("better-auth").StripEmptyObjects<{
505
+ id: string;
506
+ createdAt: Date;
507
+ updatedAt: Date;
508
+ email: string;
509
+ emailVerified: boolean;
510
+ name: string;
511
+ image?: string | null | undefined;
512
+ }>;
513
+ }), {
514
+ code?: string | undefined;
515
+ message?: string | undefined;
516
+ }, FetchOptions["throw"] extends true ? true : false>>;
517
+ };
518
+ } & {
519
+ signIn: {
520
+ email: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
521
+ email: string;
522
+ password: string;
523
+ callbackURL?: string | undefined;
524
+ rememberMe?: boolean | undefined;
525
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: import("better-auth").Prettify<{
526
+ email: string;
527
+ password: string;
528
+ callbackURL?: string | undefined;
529
+ rememberMe?: boolean | undefined;
530
+ } & {
531
+ fetchOptions?: FetchOptions | undefined;
532
+ }>, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<Omit<{
533
+ redirect: boolean;
534
+ token: string;
535
+ url?: string | undefined;
536
+ user: {
537
+ id: string;
538
+ createdAt: Date;
539
+ updatedAt: Date;
540
+ email: string;
541
+ emailVerified: boolean;
542
+ name: string;
543
+ image?: string | null | undefined | undefined;
544
+ };
545
+ }, "user"> & {
546
+ user: import("better-auth").StripEmptyObjects<{
547
+ id: string;
548
+ createdAt: Date;
549
+ updatedAt: Date;
550
+ email: string;
551
+ emailVerified: boolean;
552
+ name: string;
553
+ image?: string | null | undefined;
554
+ }>;
555
+ }, {
556
+ code?: string | undefined;
557
+ message?: string | undefined;
558
+ }, FetchOptions["throw"] extends true ? true : false>>;
559
+ };
560
+ } & {
561
+ updateSession: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<Partial<{}>> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<Partial<{}> & {
562
+ fetchOptions?: FetchOptions | undefined;
563
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
564
+ session: {
565
+ id: string;
566
+ createdAt: Date;
567
+ updatedAt: Date;
568
+ userId: string;
569
+ expiresAt: Date;
570
+ token: string;
571
+ ipAddress?: string | null | undefined;
572
+ userAgent?: string | null | undefined;
573
+ };
574
+ }, {
575
+ code?: string | undefined;
576
+ message?: string | undefined;
577
+ }, FetchOptions["throw"] extends true ? true : false>>;
578
+ } & {
579
+ updateUser: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<Partial<{}> & {
580
+ name?: string | undefined;
581
+ image?: string | undefined | null;
582
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<import("better-auth/client").InferUserUpdateCtx<import("better-auth").BetterAuthClientOptions, FetchOptions>> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
583
+ status: boolean;
584
+ }, {
585
+ code?: string | undefined;
586
+ message?: string | undefined;
587
+ }, FetchOptions["throw"] extends true ? true : false>>;
588
+ } & {
589
+ getSession: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
590
+ disableCookieCache?: unknown;
591
+ disableRefresh?: unknown;
592
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: import("better-auth").Prettify<{
593
+ query?: {
594
+ disableCookieCache?: unknown;
595
+ disableRefresh?: unknown;
596
+ } | undefined;
597
+ fetchOptions?: FetchOptions | undefined;
598
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("@better-fetch/fetch").BetterFetchResponse<{
599
+ user: import("better-auth").StripEmptyObjects<{
600
+ id: string;
601
+ createdAt: Date;
602
+ updatedAt: Date;
603
+ email: string;
604
+ emailVerified: boolean;
605
+ name: string;
606
+ image?: string | null | undefined;
607
+ }>;
608
+ session: import("better-auth").StripEmptyObjects<{
609
+ id: string;
610
+ createdAt: Date;
611
+ updatedAt: Date;
612
+ userId: string;
613
+ expiresAt: Date;
614
+ token: string;
615
+ ipAddress?: string | null | undefined;
616
+ userAgent?: string | null | undefined;
617
+ }>;
618
+ } | null, {
619
+ code?: string | undefined;
620
+ message?: string | undefined;
621
+ }, FetchOptions["throw"] extends true ? true : false>>;
622
+ } & {
623
+ useSession: import("nanostores").Atom<{
624
+ data: {
625
+ user: import("better-auth").StripEmptyObjects<{
626
+ id: string;
627
+ createdAt: Date;
628
+ updatedAt: Date;
629
+ email: string;
630
+ emailVerified: boolean;
631
+ name: string;
632
+ image?: string | null | undefined;
633
+ }>;
634
+ session: import("better-auth").StripEmptyObjects<{
635
+ id: string;
636
+ createdAt: Date;
637
+ updatedAt: Date;
638
+ userId: string;
639
+ expiresAt: Date;
640
+ token: string;
641
+ ipAddress?: string | null | undefined;
642
+ userAgent?: string | null | undefined;
643
+ }>;
644
+ } | null;
645
+ error: import("@better-fetch/fetch").BetterFetchError | null;
646
+ isPending: boolean;
647
+ isRefetching: boolean;
648
+ refetch: (queryParams?: {
649
+ query?: import("better-auth").SessionQueryParams;
650
+ } | undefined) => Promise<void>;
651
+ }>;
652
+ $fetch: import("@better-fetch/fetch").BetterFetch<{
653
+ plugins: (import("@better-fetch/fetch").BetterFetchPlugin<Record<string, any>> | {
654
+ id: string;
655
+ name: string;
656
+ hooks: {
657
+ onSuccess(context: import("@better-fetch/fetch").SuccessContext<any>): void;
658
+ };
659
+ } | {
660
+ id: string;
661
+ name: string;
662
+ hooks: {
663
+ onSuccess: ((context: import("@better-fetch/fetch").SuccessContext<any>) => Promise<void> | void) | undefined;
664
+ onError: ((context: import("@better-fetch/fetch").ErrorContext) => Promise<void> | void) | undefined;
665
+ onRequest: (<T extends Record<string, any>>(context: import("@better-fetch/fetch").RequestContext<T>) => Promise<import("@better-fetch/fetch").RequestContext | void> | import("@better-fetch/fetch").RequestContext | void) | undefined;
666
+ onResponse: ((context: import("@better-fetch/fetch").ResponseContext) => Promise<Response | void | import("@better-fetch/fetch").ResponseContext> | Response | import("@better-fetch/fetch").ResponseContext | void) | undefined;
667
+ };
668
+ })[];
669
+ cache?: RequestCache | undefined;
670
+ priority?: RequestPriority | undefined;
671
+ credentials?: RequestCredentials;
672
+ headers?: (HeadersInit & (HeadersInit | {
673
+ accept: "application/json" | "text/plain" | "application/octet-stream";
674
+ "content-type": "application/json" | "text/plain" | "application/x-www-form-urlencoded" | "multipart/form-data" | "application/octet-stream";
675
+ authorization: "Bearer" | "Basic";
676
+ })) | undefined;
677
+ integrity?: string | undefined;
678
+ keepalive?: boolean | undefined;
679
+ method: string;
680
+ mode?: RequestMode | undefined;
681
+ redirect?: RequestRedirect | undefined;
682
+ referrer?: string | undefined;
683
+ referrerPolicy?: ReferrerPolicy | undefined;
684
+ signal?: (AbortSignal | null) | undefined;
685
+ window?: null | undefined;
686
+ onRetry?: ((response: import("@better-fetch/fetch").ResponseContext) => Promise<void> | void) | undefined;
687
+ hookOptions?: {
688
+ cloneResponse?: boolean;
689
+ } | undefined;
690
+ timeout?: number | undefined;
691
+ customFetchImpl: import("@better-fetch/fetch").FetchEsque;
692
+ baseURL: string;
693
+ throw?: boolean | undefined;
694
+ auth?: ({
695
+ type: "Bearer";
696
+ token: string | Promise<string | undefined> | (() => string | Promise<string | undefined> | undefined) | undefined;
697
+ } | {
698
+ type: "Basic";
699
+ username: string | (() => string | undefined) | undefined;
700
+ password: string | (() => string | undefined) | undefined;
701
+ } | {
702
+ type: "Custom";
703
+ prefix: string | (() => string | undefined) | undefined;
704
+ value: string | (() => string | undefined) | undefined;
705
+ }) | undefined;
706
+ body?: any;
707
+ query?: any;
708
+ params?: any;
709
+ duplex?: "full" | "half" | undefined;
710
+ jsonParser: (text: string) => Promise<any> | any;
711
+ retry?: import("@better-fetch/fetch").RetryOptions | undefined;
712
+ retryAttempt?: number | undefined;
713
+ output?: (import("@better-fetch/fetch").StandardSchemaV1 | typeof Blob | typeof File) | undefined;
714
+ errorSchema?: import("@better-fetch/fetch").StandardSchemaV1 | undefined;
715
+ disableValidation?: boolean | undefined;
716
+ disableSignal?: boolean | undefined;
717
+ }, unknown, unknown, {}>;
718
+ $store: {
719
+ notify: (signal?: (Omit<string, "$sessionSignal"> | "$sessionSignal") | undefined) => void;
720
+ listen: (signal: Omit<string, "$sessionSignal"> | "$sessionSignal", listener: (value: boolean, oldValue?: boolean | undefined) => void) => void;
721
+ atoms: Record<string, import("nanostores").WritableAtom<any>>;
722
+ };
723
+ $Infer: {
724
+ Session: {
725
+ user: import("better-auth").StripEmptyObjects<{
726
+ id: string;
727
+ createdAt: Date;
728
+ updatedAt: Date;
729
+ email: string;
730
+ emailVerified: boolean;
731
+ name: string;
732
+ image?: string | null | undefined;
733
+ }>;
734
+ session: import("better-auth").StripEmptyObjects<{
735
+ id: string;
736
+ createdAt: Date;
737
+ updatedAt: Date;
738
+ userId: string;
739
+ expiresAt: Date;
740
+ token: string;
741
+ ipAddress?: string | null | undefined;
742
+ userAgent?: string | null | undefined;
743
+ }>;
744
+ };
745
+ };
746
+ $ERROR_CODES: {
747
+ USER_NOT_FOUND: {
748
+ readonly code: "USER_NOT_FOUND";
749
+ message: string;
750
+ };
751
+ FAILED_TO_CREATE_USER: {
752
+ readonly code: "FAILED_TO_CREATE_USER";
753
+ message: string;
754
+ };
755
+ FAILED_TO_CREATE_SESSION: {
756
+ readonly code: "FAILED_TO_CREATE_SESSION";
757
+ message: string;
758
+ };
759
+ FAILED_TO_UPDATE_USER: {
760
+ readonly code: "FAILED_TO_UPDATE_USER";
761
+ message: string;
762
+ };
763
+ FAILED_TO_GET_SESSION: {
764
+ readonly code: "FAILED_TO_GET_SESSION";
765
+ message: string;
766
+ };
767
+ INVALID_PASSWORD: {
768
+ readonly code: "INVALID_PASSWORD";
769
+ message: string;
770
+ };
771
+ INVALID_EMAIL: {
772
+ readonly code: "INVALID_EMAIL";
773
+ message: string;
774
+ };
775
+ INVALID_EMAIL_OR_PASSWORD: {
776
+ readonly code: "INVALID_EMAIL_OR_PASSWORD";
777
+ message: string;
778
+ };
779
+ INVALID_USER: {
780
+ readonly code: "INVALID_USER";
781
+ message: string;
782
+ };
783
+ SOCIAL_ACCOUNT_ALREADY_LINKED: {
784
+ readonly code: "SOCIAL_ACCOUNT_ALREADY_LINKED";
785
+ message: string;
786
+ };
787
+ PROVIDER_NOT_FOUND: {
788
+ readonly code: "PROVIDER_NOT_FOUND";
789
+ message: string;
790
+ };
791
+ INVALID_TOKEN: {
792
+ readonly code: "INVALID_TOKEN";
793
+ message: string;
794
+ };
795
+ TOKEN_EXPIRED: {
796
+ readonly code: "TOKEN_EXPIRED";
797
+ message: string;
798
+ };
799
+ ID_TOKEN_NOT_SUPPORTED: {
800
+ readonly code: "ID_TOKEN_NOT_SUPPORTED";
801
+ message: string;
802
+ };
803
+ FAILED_TO_GET_USER_INFO: {
804
+ readonly code: "FAILED_TO_GET_USER_INFO";
805
+ message: string;
806
+ };
807
+ USER_EMAIL_NOT_FOUND: {
808
+ readonly code: "USER_EMAIL_NOT_FOUND";
809
+ message: string;
810
+ };
811
+ EMAIL_NOT_VERIFIED: {
812
+ readonly code: "EMAIL_NOT_VERIFIED";
813
+ message: string;
814
+ };
815
+ PASSWORD_TOO_SHORT: {
816
+ readonly code: "PASSWORD_TOO_SHORT";
817
+ message: string;
818
+ };
819
+ PASSWORD_TOO_LONG: {
820
+ readonly code: "PASSWORD_TOO_LONG";
821
+ message: string;
822
+ };
823
+ USER_ALREADY_EXISTS: {
824
+ readonly code: "USER_ALREADY_EXISTS";
825
+ message: string;
826
+ };
827
+ USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: {
828
+ readonly code: "USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL";
829
+ message: string;
830
+ };
831
+ EMAIL_CAN_NOT_BE_UPDATED: {
832
+ readonly code: "EMAIL_CAN_NOT_BE_UPDATED";
833
+ message: string;
834
+ };
835
+ CREDENTIAL_ACCOUNT_NOT_FOUND: {
836
+ readonly code: "CREDENTIAL_ACCOUNT_NOT_FOUND";
837
+ message: string;
838
+ };
839
+ ACCOUNT_NOT_FOUND: {
840
+ readonly code: "ACCOUNT_NOT_FOUND";
841
+ message: string;
842
+ };
843
+ SESSION_EXPIRED: {
844
+ readonly code: "SESSION_EXPIRED";
845
+ message: string;
846
+ };
847
+ FAILED_TO_UNLINK_LAST_ACCOUNT: {
848
+ readonly code: "FAILED_TO_UNLINK_LAST_ACCOUNT";
849
+ message: string;
850
+ };
851
+ USER_ALREADY_HAS_PASSWORD: {
852
+ readonly code: "USER_ALREADY_HAS_PASSWORD";
853
+ message: string;
854
+ };
855
+ CROSS_SITE_NAVIGATION_LOGIN_BLOCKED: {
856
+ readonly code: "CROSS_SITE_NAVIGATION_LOGIN_BLOCKED";
857
+ message: string;
858
+ };
859
+ VERIFICATION_EMAIL_NOT_ENABLED: {
860
+ readonly code: "VERIFICATION_EMAIL_NOT_ENABLED";
861
+ message: string;
862
+ };
863
+ EMAIL_ALREADY_VERIFIED: {
864
+ readonly code: "EMAIL_ALREADY_VERIFIED";
865
+ message: string;
866
+ };
867
+ EMAIL_MISMATCH: {
868
+ readonly code: "EMAIL_MISMATCH";
869
+ message: string;
870
+ };
871
+ SESSION_NOT_FRESH: {
872
+ readonly code: "SESSION_NOT_FRESH";
873
+ message: string;
874
+ };
875
+ LINKED_ACCOUNT_ALREADY_EXISTS: {
876
+ readonly code: "LINKED_ACCOUNT_ALREADY_EXISTS";
877
+ message: string;
878
+ };
879
+ INVALID_ORIGIN: {
880
+ readonly code: "INVALID_ORIGIN";
881
+ message: string;
882
+ };
883
+ INVALID_CALLBACK_URL: {
884
+ readonly code: "INVALID_CALLBACK_URL";
885
+ message: string;
886
+ };
887
+ INVALID_REDIRECT_URL: {
888
+ readonly code: "INVALID_REDIRECT_URL";
889
+ message: string;
890
+ };
891
+ INVALID_ERROR_CALLBACK_URL: {
892
+ readonly code: "INVALID_ERROR_CALLBACK_URL";
893
+ message: string;
894
+ };
895
+ INVALID_NEW_USER_CALLBACK_URL: {
896
+ readonly code: "INVALID_NEW_USER_CALLBACK_URL";
897
+ message: string;
898
+ };
899
+ MISSING_OR_NULL_ORIGIN: {
900
+ readonly code: "MISSING_OR_NULL_ORIGIN";
901
+ message: string;
902
+ };
903
+ CALLBACK_URL_REQUIRED: {
904
+ readonly code: "CALLBACK_URL_REQUIRED";
905
+ message: string;
906
+ };
907
+ FAILED_TO_CREATE_VERIFICATION: {
908
+ readonly code: "FAILED_TO_CREATE_VERIFICATION";
909
+ message: string;
910
+ };
911
+ FIELD_NOT_ALLOWED: {
912
+ readonly code: "FIELD_NOT_ALLOWED";
913
+ message: string;
914
+ };
915
+ ASYNC_VALIDATION_NOT_SUPPORTED: {
916
+ readonly code: "ASYNC_VALIDATION_NOT_SUPPORTED";
917
+ message: string;
918
+ };
919
+ VALIDATION_ERROR: {
920
+ readonly code: "VALIDATION_ERROR";
921
+ message: string;
922
+ };
923
+ MISSING_FIELD: {
924
+ readonly code: "MISSING_FIELD";
925
+ message: string;
926
+ };
927
+ METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED: {
928
+ readonly code: "METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED";
929
+ message: string;
930
+ };
931
+ BODY_MUST_BE_AN_OBJECT: {
932
+ readonly code: "BODY_MUST_BE_AN_OBJECT";
933
+ message: string;
934
+ };
935
+ PASSWORD_ALREADY_SET: {
936
+ readonly code: "PASSWORD_ALREADY_SET";
937
+ message: string;
938
+ };
939
+ };
940
+ };