@heyo-sh/heyo-cms 0.0.0-stage → 0.2.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 (401) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +44 -2
  3. package/dist/access/index.d.ts +9 -0
  4. package/dist/access/index.d.ts.map +1 -0
  5. package/dist/access/permissions.d.ts +54 -0
  6. package/dist/access/permissions.d.ts.map +1 -0
  7. package/dist/adapters/astro.d.ts +45 -0
  8. package/dist/adapters/astro.d.ts.map +1 -0
  9. package/dist/adapters/astro.js +1 -0
  10. package/dist/adapters/deliver.d.ts +26 -0
  11. package/dist/adapters/deliver.d.ts.map +1 -0
  12. package/dist/adapters/next.d.ts +45 -0
  13. package/dist/adapters/next.d.ts.map +1 -0
  14. package/dist/adapters/next.js +1 -0
  15. package/dist/adapters/nuxt.d.ts +51 -0
  16. package/dist/adapters/nuxt.d.ts.map +1 -0
  17. package/dist/adapters/nuxt.js +1 -0
  18. package/dist/adapters/react-router.d.ts +36 -0
  19. package/dist/adapters/react-router.d.ts.map +1 -0
  20. package/dist/adapters/react-router.js +1 -0
  21. package/dist/adapters/sveltekit.d.ts +41 -0
  22. package/dist/adapters/sveltekit.d.ts.map +1 -0
  23. package/dist/adapters/sveltekit.js +1 -0
  24. package/dist/ai/assistant/context.d.ts +64 -0
  25. package/dist/ai/assistant/context.d.ts.map +1 -0
  26. package/dist/ai/assistant/limits.d.ts +10 -0
  27. package/dist/ai/assistant/limits.d.ts.map +1 -0
  28. package/dist/ai/assistant/plans.d.ts +83 -0
  29. package/dist/ai/assistant/plans.d.ts.map +1 -0
  30. package/dist/ai/assistant/prompt.d.ts +22 -0
  31. package/dist/ai/assistant/prompt.d.ts.map +1 -0
  32. package/dist/ai/assistant/run.d.ts +59 -0
  33. package/dist/ai/assistant/run.d.ts.map +1 -0
  34. package/dist/ai/assistant/runtime.d.ts +35 -0
  35. package/dist/ai/assistant/runtime.d.ts.map +1 -0
  36. package/dist/ai/assistant/schema.d.ts +66 -0
  37. package/dist/ai/assistant/schema.d.ts.map +1 -0
  38. package/dist/ai/assistant/tools.d.ts +41 -0
  39. package/dist/ai/assistant/tools.d.ts.map +1 -0
  40. package/dist/ai/assistant/values.d.ts +33 -0
  41. package/dist/ai/assistant/values.d.ts.map +1 -0
  42. package/dist/ai/crypto.d.ts +12 -0
  43. package/dist/ai/crypto.d.ts.map +1 -0
  44. package/dist/ai/index.d.ts +19 -0
  45. package/dist/ai/index.d.ts.map +1 -0
  46. package/dist/ai/pi.d.ts +89 -0
  47. package/dist/ai/pi.d.ts.map +1 -0
  48. package/dist/ai/registry.d.ts +66 -0
  49. package/dist/ai/registry.d.ts.map +1 -0
  50. package/dist/ai/service.d.ts +31 -0
  51. package/dist/ai/service.d.ts.map +1 -0
  52. package/dist/ai/variant-translation.d.ts +6 -0
  53. package/dist/ai/variant-translation.d.ts.map +1 -0
  54. package/dist/ai.d.ts +12 -0
  55. package/dist/ai.d.ts.map +1 -0
  56. package/dist/ai.js +1 -0
  57. package/dist/auth/config.d.ts +65 -0
  58. package/dist/auth/config.d.ts.map +1 -0
  59. package/dist/auth/crypto.d.ts +44 -0
  60. package/dist/auth/crypto.d.ts.map +1 -0
  61. package/dist/auth/index.d.ts +15 -0
  62. package/dist/auth/index.d.ts.map +1 -0
  63. package/dist/auth/oauth.d.ts +93 -0
  64. package/dist/auth/oauth.d.ts.map +1 -0
  65. package/dist/auth/service.d.ts +38 -0
  66. package/dist/auth/service.d.ts.map +1 -0
  67. package/dist/auth/totp.d.ts +34 -0
  68. package/dist/auth/totp.d.ts.map +1 -0
  69. package/dist/auth.d.ts +9 -0
  70. package/dist/auth.d.ts.map +1 -0
  71. package/dist/auth.js +1 -0
  72. package/dist/cli.d.ts +3 -0
  73. package/dist/cli.d.ts.map +1 -0
  74. package/dist/cli.js +30 -0
  75. package/dist/client/index.d.ts +51 -0
  76. package/dist/client/index.d.ts.map +1 -0
  77. package/dist/client/types.d.ts +363 -0
  78. package/dist/client/types.d.ts.map +1 -0
  79. package/dist/client.d.ts +46 -0
  80. package/dist/client.d.ts.map +1 -0
  81. package/dist/client.js +1 -0
  82. package/dist/config.d.ts +31 -0
  83. package/dist/config.d.ts.map +1 -0
  84. package/dist/config.js +1 -0
  85. package/dist/content/export.d.ts +28 -0
  86. package/dist/content/export.d.ts.map +1 -0
  87. package/dist/content/import.d.ts +65 -0
  88. package/dist/content/import.d.ts.map +1 -0
  89. package/dist/content/records.d.ts +73 -0
  90. package/dist/content/records.d.ts.map +1 -0
  91. package/dist/content.d.ts +12 -0
  92. package/dist/content.d.ts.map +1 -0
  93. package/dist/content.js +1 -0
  94. package/dist/db/d1.d.ts +29 -0
  95. package/dist/db/d1.d.ts.map +1 -0
  96. package/dist/db/d1.js +1 -0
  97. package/dist/db/mongodb.d.ts +128 -0
  98. package/dist/db/mongodb.d.ts.map +1 -0
  99. package/dist/db/mongodb.js +2 -0
  100. package/dist/db/postgres.d.ts +37 -0
  101. package/dist/db/postgres.d.ts.map +1 -0
  102. package/dist/db/postgres.js +1 -0
  103. package/dist/db/sql/adapter.d.ts +57 -0
  104. package/dist/db/sql/adapter.d.ts.map +1 -0
  105. package/dist/db/sql/compile.d.ts +50 -0
  106. package/dist/db/sql/compile.d.ts.map +1 -0
  107. package/dist/db/sql/ddl.d.ts +34 -0
  108. package/dist/db/sql/ddl.d.ts.map +1 -0
  109. package/dist/db/sql/dialect.d.ts +37 -0
  110. package/dist/db/sql/dialect.d.ts.map +1 -0
  111. package/dist/db/sql/driver.d.ts +34 -0
  112. package/dist/db/sql/driver.d.ts.map +1 -0
  113. package/dist/db/sql/introspect.d.ts +15 -0
  114. package/dist/db/sql/introspect.d.ts.map +1 -0
  115. package/dist/db/sqlite.d.ts +50 -0
  116. package/dist/db/sqlite.d.ts.map +1 -0
  117. package/dist/db/sqlite.js +1 -0
  118. package/dist/defaults.d.ts +5 -0
  119. package/dist/defaults.d.ts.map +1 -0
  120. package/dist/duration.d.ts +12 -0
  121. package/dist/duration.d.ts.map +1 -0
  122. package/dist/editor/builtin.d.ts +45 -0
  123. package/dist/editor/builtin.d.ts.map +1 -0
  124. package/dist/editor/index.d.ts +14 -0
  125. package/dist/editor/index.d.ts.map +1 -0
  126. package/dist/editor/markdown.d.ts +19 -0
  127. package/dist/editor/markdown.d.ts.map +1 -0
  128. package/dist/editor/registry.d.ts +30 -0
  129. package/dist/editor/registry.d.ts.map +1 -0
  130. package/dist/editor/serialize.d.ts +41 -0
  131. package/dist/editor/serialize.d.ts.map +1 -0
  132. package/dist/editor.d.ts +10 -0
  133. package/dist/editor.d.ts.map +1 -0
  134. package/dist/editor.js +1 -0
  135. package/dist/engine/access.d.ts +33 -0
  136. package/dist/engine/access.d.ts.map +1 -0
  137. package/dist/engine/activity.d.ts +16 -0
  138. package/dist/engine/activity.d.ts.map +1 -0
  139. package/dist/engine/cursor.d.ts +19 -0
  140. package/dist/engine/cursor.d.ts.map +1 -0
  141. package/dist/engine/documents.d.ts +81 -0
  142. package/dist/engine/documents.d.ts.map +1 -0
  143. package/dist/engine/engine.d.ts +295 -0
  144. package/dist/engine/engine.d.ts.map +1 -0
  145. package/dist/engine/field-access.d.ts +21 -0
  146. package/dist/engine/field-access.d.ts.map +1 -0
  147. package/dist/engine/hooks.d.ts +58 -0
  148. package/dist/engine/hooks.d.ts.map +1 -0
  149. package/dist/engine/index.d.ts +20 -0
  150. package/dist/engine/index.d.ts.map +1 -0
  151. package/dist/engine/jobs.d.ts +63 -0
  152. package/dist/engine/jobs.d.ts.map +1 -0
  153. package/dist/engine/locales.d.ts +40 -0
  154. package/dist/engine/locales.d.ts.map +1 -0
  155. package/dist/engine/outbox.d.ts +81 -0
  156. package/dist/engine/outbox.d.ts.map +1 -0
  157. package/dist/engine/relations.d.ts +60 -0
  158. package/dist/engine/relations.d.ts.map +1 -0
  159. package/dist/engine/scoped-db.d.ts +13 -0
  160. package/dist/engine/scoped-db.d.ts.map +1 -0
  161. package/dist/engine/slugs.d.ts +124 -0
  162. package/dist/engine/slugs.d.ts.map +1 -0
  163. package/dist/engine/trash.d.ts +25 -0
  164. package/dist/engine/trash.d.ts.map +1 -0
  165. package/dist/errors.d.ts +42 -0
  166. package/dist/errors.d.ts.map +1 -0
  167. package/dist/fields/builtin.d.ts +169 -0
  168. package/dist/fields/builtin.d.ts.map +1 -0
  169. package/dist/fields/index.d.ts +3 -0
  170. package/dist/fields/index.d.ts.map +1 -0
  171. package/dist/fields/registry.d.ts +35 -0
  172. package/dist/fields/registry.d.ts.map +1 -0
  173. package/dist/fields.d.ts +9 -0
  174. package/dist/fields.d.ts.map +1 -0
  175. package/dist/fields.js +1 -0
  176. package/dist/http/guard.d.ts +45 -0
  177. package/dist/http/guard.d.ts.map +1 -0
  178. package/dist/http/handler.d.ts +31 -0
  179. package/dist/http/handler.d.ts.map +1 -0
  180. package/dist/http/index.d.ts +13 -0
  181. package/dist/http/index.d.ts.map +1 -0
  182. package/dist/http/openapi.d.ts +5 -0
  183. package/dist/http/openapi.d.ts.map +1 -0
  184. package/dist/http/params.d.ts +32 -0
  185. package/dist/http/params.d.ts.map +1 -0
  186. package/dist/http/request-db.d.ts +19 -0
  187. package/dist/http/request-db.d.ts.map +1 -0
  188. package/dist/http/respond.d.ts +48 -0
  189. package/dist/http/respond.d.ts.map +1 -0
  190. package/dist/http/rich-text.d.ts +41 -0
  191. package/dist/http/rich-text.d.ts.map +1 -0
  192. package/dist/http/router.d.ts +55 -0
  193. package/dist/http/router.d.ts.map +1 -0
  194. package/dist/http/routes/access.d.ts +13 -0
  195. package/dist/http/routes/access.d.ts.map +1 -0
  196. package/dist/http/routes/admin.d.ts +28 -0
  197. package/dist/http/routes/admin.d.ts.map +1 -0
  198. package/dist/http/routes/ai.d.ts +26 -0
  199. package/dist/http/routes/ai.d.ts.map +1 -0
  200. package/dist/http/routes/auth.d.ts +13 -0
  201. package/dist/http/routes/auth.d.ts.map +1 -0
  202. package/dist/http/routes/documents.d.ts +24 -0
  203. package/dist/http/routes/documents.d.ts.map +1 -0
  204. package/dist/http/routes/generate.d.ts +5 -0
  205. package/dist/http/routes/generate.d.ts.map +1 -0
  206. package/dist/http/routes/media.d.ts +58 -0
  207. package/dist/http/routes/media.d.ts.map +1 -0
  208. package/dist/http/routes/panel.d.ts +20 -0
  209. package/dist/http/routes/panel.d.ts.map +1 -0
  210. package/dist/http/routes/system.d.ts +25 -0
  211. package/dist/http/routes/system.d.ts.map +1 -0
  212. package/dist/http/routes/webhooks.d.ts +17 -0
  213. package/dist/http/routes/webhooks.d.ts.map +1 -0
  214. package/dist/http/spec.d.ts +28 -0
  215. package/dist/http/spec.d.ts.map +1 -0
  216. package/dist/http.d.ts +17 -0
  217. package/dist/http.d.ts.map +1 -0
  218. package/dist/http.js +1 -0
  219. package/dist/i18n/index.d.ts +12 -0
  220. package/dist/i18n/index.d.ts.map +1 -0
  221. package/dist/i18n/names.d.ts +25 -0
  222. package/dist/i18n/names.d.ts.map +1 -0
  223. package/dist/ids.d.ts +28 -0
  224. package/dist/ids.d.ts.map +1 -0
  225. package/dist/index-2ddk43me.js +2 -0
  226. package/dist/index-2prbs05k.js +2 -0
  227. package/dist/index-385ggnge.js +2 -0
  228. package/dist/index-466cwb0b.js +2 -0
  229. package/dist/index-4qrep5f0.js +26 -0
  230. package/dist/index-67e458ws.js +2 -0
  231. package/dist/index-6m1kjq9g.js +2 -0
  232. package/dist/index-6w10rch0.js +3 -0
  233. package/dist/index-761dec5z.js +2 -0
  234. package/dist/index-8nzmqy0f.js +2 -0
  235. package/dist/index-8x2em6c8.js +14 -0
  236. package/dist/index-91fa1gzf.js +2 -0
  237. package/dist/index-9g2n7xa6.js +2 -0
  238. package/dist/index-a8jcwqsf.js +2 -0
  239. package/dist/index-abfzb1ve.js +2 -0
  240. package/dist/index-cv0hpz3d.js +2 -0
  241. package/dist/index-ebtj6ebd.js +0 -0
  242. package/dist/index-g041kfa5.js +18 -0
  243. package/dist/index-g4crf47y.js +0 -0
  244. package/dist/index-hbx67b20.js +7 -0
  245. package/dist/index-hpast878.js +40 -0
  246. package/dist/index-kc1j3h6z.js +2 -0
  247. package/dist/index-p2cqsmvw.js +2 -0
  248. package/dist/index-rg9tpg3p.js +5 -0
  249. package/dist/index-rw0hze6x.js +2 -0
  250. package/dist/index-s9x07zb3.js +2 -0
  251. package/dist/index-sgdnp83t.js +2 -0
  252. package/dist/index-szaq03qq.js +2 -0
  253. package/dist/index-vkwzdfte.js +5 -0
  254. package/dist/index-vzhxn50e.js +2 -0
  255. package/dist/index-x72d1hzh.js +2 -0
  256. package/dist/index-y8kzzn94.js +2 -0
  257. package/dist/index-ypcmns0v.js +2 -0
  258. package/dist/index.d.ts +25 -0
  259. package/dist/index.d.ts.map +1 -0
  260. package/dist/index.js +1 -0
  261. package/dist/jobs/runner.d.ts +77 -0
  262. package/dist/jobs/runner.d.ts.map +1 -0
  263. package/dist/jobs.d.ts +11 -0
  264. package/dist/jobs.d.ts.map +1 -0
  265. package/dist/jobs.js +1 -0
  266. package/dist/media/cloudflare.d.ts +58 -0
  267. package/dist/media/cloudflare.d.ts.map +1 -0
  268. package/dist/media/document.d.ts +29 -0
  269. package/dist/media/document.d.ts.map +1 -0
  270. package/dist/media/gc.d.ts +46 -0
  271. package/dist/media/gc.d.ts.map +1 -0
  272. package/dist/media/index.d.ts +20 -0
  273. package/dist/media/index.d.ts.map +1 -0
  274. package/dist/media/pipeline.d.ts +55 -0
  275. package/dist/media/pipeline.d.ts.map +1 -0
  276. package/dist/media/probe.d.ts +6 -0
  277. package/dist/media/probe.d.ts.map +1 -0
  278. package/dist/media/service.d.ts +26 -0
  279. package/dist/media/service.d.ts.map +1 -0
  280. package/dist/media/sharp.d.ts +28 -0
  281. package/dist/media/sharp.d.ts.map +1 -0
  282. package/dist/media/strip.d.ts +16 -0
  283. package/dist/media/strip.d.ts.map +1 -0
  284. package/dist/media/urls.d.ts +77 -0
  285. package/dist/media/urls.d.ts.map +1 -0
  286. package/dist/media/usages.d.ts +77 -0
  287. package/dist/media/usages.d.ts.map +1 -0
  288. package/dist/media/variants.d.ts +61 -0
  289. package/dist/media/variants.d.ts.map +1 -0
  290. package/dist/migrations.d.ts +115 -0
  291. package/dist/migrations.d.ts.map +1 -0
  292. package/dist/migrations.js +1 -0
  293. package/dist/panel.d.ts +31 -0
  294. package/dist/panel.d.ts.map +1 -0
  295. package/dist/plugins/indexnow.d.ts +82 -0
  296. package/dist/plugins/indexnow.d.ts.map +1 -0
  297. package/dist/plugins.d.ts +9 -0
  298. package/dist/plugins.d.ts.map +1 -0
  299. package/dist/plugins.js +1 -0
  300. package/dist/query.d.ts +40 -0
  301. package/dist/query.d.ts.map +1 -0
  302. package/dist/query.js +1 -0
  303. package/dist/run-bjge3v8e.js +6 -0
  304. package/dist/schema/describe.d.ts +19 -0
  305. package/dist/schema/describe.d.ts.map +1 -0
  306. package/dist/schema/index.d.ts +5 -0
  307. package/dist/schema/index.d.ts.map +1 -0
  308. package/dist/schema/plan.d.ts +20 -0
  309. package/dist/schema/plan.d.ts.map +1 -0
  310. package/dist/schema/snapshot.d.ts +24 -0
  311. package/dist/schema/snapshot.d.ts.map +1 -0
  312. package/dist/schema/system.d.ts +31 -0
  313. package/dist/schema/system.d.ts.map +1 -0
  314. package/dist/schema.d.ts +7 -0
  315. package/dist/schema.d.ts.map +1 -0
  316. package/dist/schema.js +1 -0
  317. package/dist/slugify.d.ts +31 -0
  318. package/dist/slugify.d.ts.map +1 -0
  319. package/dist/storage/bytes.d.ts +17 -0
  320. package/dist/storage/bytes.d.ts.map +1 -0
  321. package/dist/storage/http.d.ts +43 -0
  322. package/dist/storage/http.d.ts.map +1 -0
  323. package/dist/storage/local.d.ts +31 -0
  324. package/dist/storage/local.d.ts.map +1 -0
  325. package/dist/storage/providers.d.ts +95 -0
  326. package/dist/storage/providers.d.ts.map +1 -0
  327. package/dist/storage/sign.d.ts +53 -0
  328. package/dist/storage/sign.d.ts.map +1 -0
  329. package/dist/strings.d.ts +13 -0
  330. package/dist/strings.d.ts.map +1 -0
  331. package/dist/telemetry.d.ts +137 -0
  332. package/dist/telemetry.d.ts.map +1 -0
  333. package/dist/telemetry.js +1 -0
  334. package/dist/types/activity.d.ts +68 -0
  335. package/dist/types/activity.d.ts.map +1 -0
  336. package/dist/types/actor.d.ts +26 -0
  337. package/dist/types/actor.d.ts.map +1 -0
  338. package/dist/types/ai.d.ts +357 -0
  339. package/dist/types/ai.d.ts.map +1 -0
  340. package/dist/types/api.d.ts +268 -0
  341. package/dist/types/api.d.ts.map +1 -0
  342. package/dist/types/auth.d.ts +310 -0
  343. package/dist/types/auth.d.ts.map +1 -0
  344. package/dist/types/config.d.ts +647 -0
  345. package/dist/types/config.d.ts.map +1 -0
  346. package/dist/types/database.d.ts +75 -0
  347. package/dist/types/database.d.ts.map +1 -0
  348. package/dist/types/editor.d.ts +166 -0
  349. package/dist/types/editor.d.ts.map +1 -0
  350. package/dist/types/events.d.ts +72 -0
  351. package/dist/types/events.d.ts.map +1 -0
  352. package/dist/types/fields.d.ts +142 -0
  353. package/dist/types/fields.d.ts.map +1 -0
  354. package/dist/types/hooks.d.ts +142 -0
  355. package/dist/types/hooks.d.ts.map +1 -0
  356. package/dist/types/index.d.ts +25 -0
  357. package/dist/types/index.d.ts.map +1 -0
  358. package/dist/types/instance.d.ts +263 -0
  359. package/dist/types/instance.d.ts.map +1 -0
  360. package/dist/types/jobs.d.ts +78 -0
  361. package/dist/types/jobs.d.ts.map +1 -0
  362. package/dist/types/json.d.ts +24 -0
  363. package/dist/types/json.d.ts.map +1 -0
  364. package/dist/types/locales.d.ts +30 -0
  365. package/dist/types/locales.d.ts.map +1 -0
  366. package/dist/types/media.d.ts +342 -0
  367. package/dist/types/media.d.ts.map +1 -0
  368. package/dist/types/panel.d.ts +249 -0
  369. package/dist/types/panel.d.ts.map +1 -0
  370. package/dist/types/plugin.d.ts +194 -0
  371. package/dist/types/plugin.d.ts.map +1 -0
  372. package/dist/types/query.d.ts +101 -0
  373. package/dist/types/query.d.ts.map +1 -0
  374. package/dist/types/schema.d.ts +203 -0
  375. package/dist/types/schema.d.ts.map +1 -0
  376. package/dist/types/storage.d.ts +61 -0
  377. package/dist/types/storage.d.ts.map +1 -0
  378. package/dist/types/telemetry.d.ts +14 -0
  379. package/dist/types/telemetry.d.ts.map +1 -0
  380. package/dist/types/trash.d.ts +42 -0
  381. package/dist/types/trash.d.ts.map +1 -0
  382. package/dist/types/webhooks.d.ts +133 -0
  383. package/dist/types/webhooks.d.ts.map +1 -0
  384. package/dist/types.d.ts +8 -0
  385. package/dist/types.d.ts.map +1 -0
  386. package/dist/types.js +1 -0
  387. package/dist/uploads.d.ts +22 -0
  388. package/dist/uploads.d.ts.map +1 -0
  389. package/dist/uploads.js +9 -0
  390. package/dist/webhooks/index.d.ts +10 -0
  391. package/dist/webhooks/index.d.ts.map +1 -0
  392. package/dist/webhooks/job.d.ts +17 -0
  393. package/dist/webhooks/job.d.ts.map +1 -0
  394. package/dist/webhooks/service.d.ts +53 -0
  395. package/dist/webhooks/service.d.ts.map +1 -0
  396. package/dist/webhooks/sign.d.ts +26 -0
  397. package/dist/webhooks/sign.d.ts.map +1 -0
  398. package/dist/webhooks.d.ts +10 -0
  399. package/dist/webhooks.d.ts.map +1 -0
  400. package/dist/webhooks.js +1 -0
  401. package/package.json +187 -4
@@ -0,0 +1,363 @@
1
+ import type { CollectionsConfig, GlobalsConfig, InferDocument } from "../types/config";
2
+ import type { CmsInstance } from "../types/instance";
3
+ import type { ActivityListArgs, ActivityPage } from "../types/activity";
4
+ import type { ApiKeyRecord, CmsUser, IssuedApiKey, RoleRecord, SignInResult } from "../types/auth";
5
+ import type { FindResult, PreviousSlug, SlugResolution } from "../types/api";
6
+ import type { JsonObject } from "../types/json";
7
+ import type { LocaleRecord } from "../types/locales";
8
+ import type { MediaDocument, MediaListResult, MediaUsage } from "../types/media";
9
+ import type { CmsPlugin } from "../types/plugin";
10
+ import type { OrderBy, Where } from "../types/query";
11
+ import type { TrashPage } from "../types/trash";
12
+ import type { JobFailure, JobRunReport } from "../types/jobs";
13
+ /**
14
+ * The typed client's argument types.
15
+ *
16
+ * Shaped after the local API on purpose: `client.posts.find({ where: eq(...) })`
17
+ * and `cms.api.posts.find({ where: eq(...) })` take the same object, because
18
+ * the second is what the first ends up calling (section 10). The filter
19
+ * helpers from `@heyo-sh/heyo-cms/query` therefore work on both sides of the
20
+ * network, and there is one query language in the product rather than one per
21
+ * transport.
22
+ */
23
+ export interface ClientLocaleArgs {
24
+ locale?: string;
25
+ fallbackLocale?: string | false;
26
+ }
27
+ export interface ClientReadArgs extends ClientLocaleArgs {
28
+ depth?: number;
29
+ includeTrashed?: boolean;
30
+ /** Per-call headers, e.g. a one-off `authorization`. */
31
+ headers?: Record<string, string>;
32
+ signal?: AbortSignal;
33
+ }
34
+ export interface ClientFindArgs extends ClientReadArgs {
35
+ where?: Where;
36
+ orderBy?: OrderBy[];
37
+ limit?: number;
38
+ offset?: number;
39
+ cursor?: string;
40
+ count?: boolean;
41
+ }
42
+ export type ClientInput<TDoc> = Partial<Omit<TDoc, "id" | "createdAt" | "updatedAt" | "updatedBy" | "deletedAt" | "purgeAfter" | "scheduledAt" | "scheduledPatch" | "_fallback">>;
43
+ export interface ClientCreateArgs<TDoc> extends ClientReadArgs {
44
+ data: ClientInput<TDoc>;
45
+ }
46
+ export interface ClientUpdateArgs<TDoc> extends ClientReadArgs {
47
+ id: string;
48
+ data: ClientInput<TDoc>;
49
+ }
50
+ export interface ClientDeleteArgs extends ClientReadArgs {
51
+ id: string;
52
+ /** Skips the trash. Governed by the `purge` permission. */
53
+ permanent?: boolean;
54
+ }
55
+ export interface ClientScheduleArgs<TDoc> extends ClientReadArgs {
56
+ id: string;
57
+ at: Date | string;
58
+ data: ClientInput<TDoc>;
59
+ }
60
+ /**
61
+ * One collection, over HTTP.
62
+ *
63
+ * A write answers `null` when a `before` hook stopped it — the 204 the route
64
+ * sends — so the client's return types match the local API's exactly and code
65
+ * can move between them without a change.
66
+ */
67
+ export interface ClientCollection<TDoc> {
68
+ find(args?: ClientFindArgs): Promise<FindResult<TDoc>>;
69
+ findById(id: string, args?: ClientReadArgs): Promise<TDoc | null>;
70
+ create(args: ClientCreateArgs<TDoc>): Promise<TDoc | null>;
71
+ update(args: ClientUpdateArgs<TDoc>): Promise<TDoc | null>;
72
+ delete(args: ClientDeleteArgs): Promise<TDoc | null>;
73
+ restore(args: {
74
+ id: string;
75
+ } & ClientReadArgs): Promise<TDoc | null>;
76
+ schedule(args: ClientScheduleArgs<TDoc>): Promise<TDoc | null>;
77
+ unschedule(args: {
78
+ id: string;
79
+ } & ClientReadArgs): Promise<TDoc | null>;
80
+ /** `GET /<collection>/resolve-slug`; null when no readable document has it. */
81
+ resolveSlug(slug: string, args?: {
82
+ field?: string;
83
+ } & Omit<ClientReadArgs, "includeTrashed">): Promise<SlugResolution<TDoc> | null>;
84
+ previousSlugs(args: {
85
+ id: string;
86
+ field?: string;
87
+ } & ClientLocaleArgs & ClientCallArgs): Promise<PreviousSlug[]>;
88
+ addPreviousSlug(args: {
89
+ id: string;
90
+ slug: string;
91
+ field?: string;
92
+ } & ClientLocaleArgs & ClientCallArgs): Promise<PreviousSlug[]>;
93
+ removePreviousSlug(args: {
94
+ id: string;
95
+ slug: string;
96
+ field?: string;
97
+ } & ClientLocaleArgs & ClientCallArgs): Promise<PreviousSlug[]>;
98
+ }
99
+ /** Per-call transport options. */
100
+ export interface ClientCallArgs {
101
+ headers?: Record<string, string>;
102
+ signal?: AbortSignal;
103
+ }
104
+ export interface ClientGlobal<TDoc> {
105
+ get(args?: ClientReadArgs): Promise<TDoc>;
106
+ update(args: {
107
+ data: ClientInput<TDoc>;
108
+ } & ClientReadArgs): Promise<TDoc | null>;
109
+ schedule(args: {
110
+ at: Date | string;
111
+ data: ClientInput<TDoc>;
112
+ } & ClientReadArgs): Promise<TDoc | null>;
113
+ unschedule(args?: ClientReadArgs): Promise<TDoc | null>;
114
+ }
115
+ export interface ClientUploadArgs {
116
+ file: Blob | Uint8Array | ArrayBuffer;
117
+ filename?: string;
118
+ contentType?: string;
119
+ alt?: string;
120
+ locale?: string;
121
+ metadata?: JsonObject;
122
+ signal?: AbortSignal;
123
+ }
124
+ export interface ClientMedia {
125
+ upload(args: ClientUploadArgs | File): Promise<MediaDocument>;
126
+ list(args?: {
127
+ status?: MediaDocument["status"];
128
+ mimeType?: string;
129
+ search?: string;
130
+ limit?: number;
131
+ cursor?: string;
132
+ }): Promise<MediaListResult>;
133
+ get(id: string): Promise<MediaDocument | null>;
134
+ update(args: {
135
+ id: string;
136
+ filename?: string;
137
+ alt?: string | Record<string, string>;
138
+ locale?: string;
139
+ focalPoint?: {
140
+ x: number;
141
+ y: number;
142
+ } | null;
143
+ crop?: {
144
+ x: number;
145
+ y: number;
146
+ width: number;
147
+ height: number;
148
+ } | null;
149
+ metadata?: JsonObject;
150
+ }): Promise<MediaDocument>;
151
+ delete(args: {
152
+ id: string;
153
+ force?: boolean;
154
+ }): Promise<MediaDocument>;
155
+ keep(args: {
156
+ id: string;
157
+ }): Promise<MediaDocument>;
158
+ usages(id: string): Promise<MediaUsage[]>;
159
+ /**
160
+ * The URL of a size, built rather than fetched.
161
+ *
162
+ * A string, not a request: this is what goes into an `<img src>`, and a
163
+ * client that had to await the bytes to produce a URL would make rendering
164
+ * a list of thumbnails a waterfall.
165
+ */
166
+ url(id: string, variant?: string): string;
167
+ }
168
+ export interface ClientAuth {
169
+ signIn(args: {
170
+ email: string;
171
+ password: string;
172
+ }): Promise<SignInResult>;
173
+ /**
174
+ * Creates the first account on a CMS that has none, and signs it in.
175
+ *
176
+ * Answers 409 once any account exists; `GET /panel` reports whether it is
177
+ * still open as `auth.setupRequired`.
178
+ */
179
+ claimFirstAccount(args: {
180
+ email: string;
181
+ password: string;
182
+ name?: string;
183
+ }): Promise<SignInResult>;
184
+ signOut(): Promise<void>;
185
+ session(): Promise<{
186
+ actor: unknown | null;
187
+ user: CmsUser | null;
188
+ }>;
189
+ magicLink(args: {
190
+ email: string;
191
+ }): Promise<{
192
+ status: string;
193
+ }>;
194
+ verifyMagicLink(args: {
195
+ token: string;
196
+ }): Promise<SignInResult>;
197
+ forgotPassword(args: {
198
+ email: string;
199
+ }): Promise<{
200
+ status: string;
201
+ }>;
202
+ resetPassword(args: {
203
+ token: string;
204
+ password: string;
205
+ }): Promise<{
206
+ user: CmsUser;
207
+ }>;
208
+ acceptInvite(args: {
209
+ token: string;
210
+ password?: string;
211
+ name?: string;
212
+ }): Promise<SignInResult>;
213
+ verifyTwoFactor(args: {
214
+ challenge: string;
215
+ code: string;
216
+ }): Promise<SignInResult>;
217
+ beginTwoFactor(): Promise<{
218
+ secret: string;
219
+ uri: string;
220
+ }>;
221
+ enableTwoFactor(args: {
222
+ code: string;
223
+ }): Promise<{
224
+ user: CmsUser;
225
+ }>;
226
+ disableTwoFactor(): Promise<{
227
+ user: CmsUser;
228
+ }>;
229
+ apiKeys: {
230
+ list(): Promise<ApiKeyRecord[]>;
231
+ create(args: {
232
+ name: string;
233
+ scopes?: string[];
234
+ }): Promise<IssuedApiKey>;
235
+ revoke(id: string): Promise<void>;
236
+ };
237
+ /** The URL to send a browser to for an OAuth or SSO sign-in. */
238
+ oauthUrl(provider: string, redirectTo?: string): string;
239
+ }
240
+ export interface ClientUsers {
241
+ list(args?: {
242
+ status?: CmsUser["status"];
243
+ search?: string;
244
+ limit?: number;
245
+ offset?: number;
246
+ }): Promise<{
247
+ users: CmsUser[];
248
+ totalUsers: number;
249
+ }>;
250
+ get(id: string): Promise<CmsUser | null>;
251
+ update(id: string, args: {
252
+ name?: string | null;
253
+ roles?: string[];
254
+ status?: CmsUser["status"];
255
+ locale?: string | null;
256
+ }): Promise<CmsUser>;
257
+ invite(args: {
258
+ email: string;
259
+ name?: string;
260
+ roles?: string[];
261
+ }): Promise<{
262
+ token: string;
263
+ expiresAt: string;
264
+ user: CmsUser;
265
+ }>;
266
+ remove(id: string): Promise<void>;
267
+ }
268
+ export interface ClientRoles {
269
+ list(): Promise<RoleRecord[]>;
270
+ create(args: {
271
+ name: string;
272
+ permissions: string[];
273
+ label?: string;
274
+ }): Promise<RoleRecord>;
275
+ update(name: string, args: {
276
+ permissions?: string[];
277
+ label?: string | null;
278
+ }): Promise<RoleRecord>;
279
+ remove(name: string): Promise<void>;
280
+ }
281
+ export interface ClientTrash {
282
+ list(args?: {
283
+ collection?: string;
284
+ limit?: number;
285
+ cursor?: string;
286
+ locale?: string;
287
+ }): Promise<TrashPage>;
288
+ restore(args: {
289
+ collection: string;
290
+ id: string;
291
+ }): Promise<JsonObject>;
292
+ purge(args: {
293
+ collection: string;
294
+ id: string;
295
+ }): Promise<JsonObject>;
296
+ }
297
+ /**
298
+ * The configured languages.
299
+ *
300
+ * Read-only, because `i18n.locales` is code: a client that could add one
301
+ * would be editing a file it cannot see.
302
+ */
303
+ export interface ClientLocales {
304
+ list(): Promise<{
305
+ locales: LocaleRecord[];
306
+ defaultLocale: string;
307
+ }>;
308
+ }
309
+ export interface ClientJobs {
310
+ run(args?: {
311
+ limit?: number;
312
+ only?: string[];
313
+ }): Promise<JobRunReport>;
314
+ failures(args?: {
315
+ type?: string;
316
+ limit?: number;
317
+ }): Promise<JobFailure[]>;
318
+ }
319
+ /** The escape hatch, and what a plugin's client extension is built on. */
320
+ export interface ClientRequest {
321
+ (path: string, init?: RequestInit & {
322
+ query?: Record<string, unknown>;
323
+ }): Promise<unknown>;
324
+ }
325
+ export interface ClientCore {
326
+ baseUrl: string;
327
+ request: ClientRequest;
328
+ media: ClientMedia;
329
+ auth: ClientAuth;
330
+ users: ClientUsers;
331
+ roles: ClientRoles;
332
+ trash: ClientTrash;
333
+ locales: ClientLocales;
334
+ activity: {
335
+ list(args?: ActivityListArgs): Promise<ActivityPage>;
336
+ };
337
+ jobs: ClientJobs;
338
+ openapi(): Promise<JsonObject>;
339
+ }
340
+ /** Collections become top-level properties, as in `client.posts.find()`. */
341
+ export type ClientCollections<TCollections extends CollectionsConfig> = {
342
+ [K in keyof TCollections]: ClientCollection<InferDocument<TCollections[K]>>;
343
+ };
344
+ export type ClientGlobals<TGlobals extends GlobalsConfig> = {
345
+ [K in keyof TGlobals]: ClientGlobal<InferDocument<TGlobals[K]>>;
346
+ };
347
+ /**
348
+ * The client for one configuration.
349
+ *
350
+ * `globals` is a property rather than being flattened next to the collections
351
+ * because a global and a collection can share a name in different registries
352
+ * and a flat namespace would make that a silent overwrite.
353
+ */
354
+ export type CmsClient<TCms> = TCms extends CmsInstance<infer TCollections, infer TGlobals> ? ClientCore & ClientCollections<TCollections> & {
355
+ globals: ClientGlobals<TGlobals>;
356
+ } : never;
357
+ /** Turns a plugin tuple into the intersection of what their clients add. */
358
+ export type PluginExtensions<TPlugins extends readonly CmsPlugin<unknown>[]> = UnionToIntersection<{
359
+ [K in keyof TPlugins]: TPlugins[K] extends CmsPlugin<infer Ext> ? Ext : never;
360
+ }[number]>;
361
+ type UnionToIntersection<TUnion> = (TUnion extends unknown ? (value: TUnion) => void : never) extends (value: infer TIntersection) => void ? TIntersection : never;
362
+ export {};
363
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { CmsClientOptions } from "./client/index";
2
+ import type { CmsClient, PluginExtensions } from "./client/types";
3
+ import type { CmsInstance } from "./types/instance";
4
+ import type { CmsPlugin } from "./types/plugin";
5
+ /**
6
+ * `@heyo-sh/heyo-cms/client`.
7
+ *
8
+ * The typed client. Separate from the main entry point because this is the
9
+ * half that ships to a browser: importing it must not pull in the engine, the
10
+ * field registry or a database adapter.
11
+ *
12
+ * A generated project registers its `typeof cms` here through declaration
13
+ * merging. That is a type-only link — the server configuration is never
14
+ * imported into a browser bundle — and lets the ordinary call stay small:
15
+ *
16
+ * ```ts
17
+ * import { heyoCmsClient } from "@heyo-sh/heyo-cms/client";
18
+ *
19
+ * const client = heyoCmsClient();
20
+ * await client.posts.find();
21
+ * ```
22
+ *
23
+ * Registering one CMS is the normal application case. The explicit generic
24
+ * remains the escape hatch for a library or a TypeScript program with more
25
+ * than one CMS:
26
+ *
27
+ * ```ts
28
+ * const client = heyoCmsClient<typeof cms>({ baseUrl: "https://cms.acme.dev/api/heyo-cms" });
29
+ * ```
30
+ */
31
+ export interface HeyoCmsClientRegistry {
32
+ }
33
+ type RegisteredCms = HeyoCmsClientRegistry extends {
34
+ cms: infer TCms;
35
+ } ? TCms : CmsInstance;
36
+ /**
37
+ * Creates the browser client.
38
+ *
39
+ * With no options it calls the same-origin `/api/heyo-cms` mount. A generated
40
+ * `heyo-cms.client.d.ts` supplies the document types; without one, the client
41
+ * remains usable with the broad fallback types.
42
+ */
43
+ export declare function heyoCmsClient<TCms = RegisteredCms, const TPlugins extends readonly CmsPlugin<unknown>[] = []>(options?: CmsClientOptions<TPlugins>): CmsClient<TCms> & PluginExtensions<TPlugins>;
44
+ export type { CmsClientOptions } from "./client/index";
45
+ export type * from "./client/types";
46
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,qBAAqB;CAAG;AAEzC,KAAK,aAAa,GAAG,qBAAqB,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAClE,IAAI,GACJ,WAAW,CAAC;AAEhB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAG,aAAa,EACpB,KAAK,CAAC,QAAQ,SAAS,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAEzD,OAAO,GAAE,gBAAgB,CAAC,QAAQ,CAAM,GACvC,SAAS,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAE9C;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,mBAAmB,gBAAgB,CAAC"}
package/dist/client.js ADDED
@@ -0,0 +1 @@
1
+ import{ge}from"./index-y8kzzn94.js";import{x}from"./index-2ddk43me.js";import{e}from"./index-x72d1hzh.js";function O(n={}){let r=x(n.baseUrl??ge),o=n.fetch??((...i)=>fetch(...i)),t=async(i,l={})=>{let{query:m,headers:y,...U}=l,k=I(r,i);for(let[w,P]of Object.entries(m??{})){if(P===void 0||P===null)continue;k.searchParams.set(w,String(P))}let g=new Headers(y);for(let[w,P]of Object.entries(await D(n)))if(!g.has(w))g.set(w,P);let R=await B(n);if(R&&!g.has("authorization"))g.set("authorization",`Bearer ${R}`);let v=await o(k,{...U,headers:g,credentials:n.credentials??"same-origin"});if(v.status===204)return null;let b=await F(v);if(!v.ok)throw H(v,b);return b},a={baseUrl:r,request:t,media:q(t,r),auth:{signIn:(i)=>t("/auth/sign-in",u(i)),claimFirstAccount:(i)=>t("/auth/setup",u(i)),signOut:async()=>{await t("/auth/sign-out",{method:"POST"})},session:()=>t("/auth/session"),magicLink:(i)=>t("/auth/magic-link",u(i)),verifyMagicLink:(i)=>t("/auth/magic-link/verify",u(i)),forgotPassword:(i)=>t("/auth/password/forgot",u(i)),resetPassword:(i)=>t("/auth/password/reset",u(i)),acceptInvite:(i)=>t("/auth/invite/accept",u(i)),verifyTwoFactor:(i)=>t("/auth/2fa/verify",u(i)),beginTwoFactor:()=>t("/auth/2fa/begin",{method:"POST"}),enableTwoFactor:(i)=>t("/auth/2fa/enable",u(i)),disableTwoFactor:()=>t("/auth/2fa/disable",{method:"POST"}),apiKeys:{list:async()=>C(await t("/auth/api-keys"),"keys"),create:(i)=>t("/auth/api-keys",u(i)),revoke:async(i)=>{await t(`/auth/api-keys/${encodeURIComponent(i)}`,{method:"DELETE"})}},oauthUrl:(i,l)=>{let m=I(r,`/auth/oauth/${encodeURIComponent(i)}`);if(l)m.searchParams.set("redirectTo",l);return m.toString()}},users:{list:(i)=>t("/users",{query:i}),get:async(i)=>C(await t(`/users/${encodeURIComponent(i)}`),"user"),update:async(i,l)=>C(await t(`/users/${encodeURIComponent(i)}`,u(l,"PATCH")),"user"),invite:(i)=>t("/users/invite",u(i)),remove:async(i)=>{await t(`/users/${encodeURIComponent(i)}`,{method:"DELETE"})}},roles:{list:async()=>C(await t("/roles"),"roles"),create:async(i)=>C(await t("/roles",u(i)),"role"),update:async(i,l)=>C(await t(`/roles/${encodeURIComponent(i)}`,u(l,"PATCH")),"role"),remove:async(i)=>{await t(`/roles/${encodeURIComponent(i)}`,{method:"DELETE"})}},trash:{list:(i)=>t("/trash",{query:i}),restore:(i)=>t(`/trash/${encodeURIComponent(i.collection)}/${encodeURIComponent(i.id)}/restore`,{method:"POST"}),purge:(i)=>t(`/trash/${encodeURIComponent(i.collection)}/${encodeURIComponent(i.id)}`,{method:"DELETE"})},locales:{list:()=>t("/locales")},activity:{list:(i)=>t("/activity",{query:i})},jobs:{run:(i)=>t("/jobs/run",{method:"POST",query:{...i?.limit===void 0?{}:{limit:i.limit},...i?.only===void 0?{}:{only:i.only.join(",")}}}),failures:async(i)=>C(await t("/jobs/failures",{query:i}),"failures")},openapi:()=>t("/openapi.json")},c=new Map,d=new Proxy(a,{get(i,l){if(typeof l!=="string"||l in i)return i[l];let m=c.get(l);if(m)return m;let y=S(t,l);return c.set(l,y),y},has(i,l){return typeof l==="string"?!0:Reflect.has(i,l)}}),h=new Map;a.globals=new Proxy({},{get(i,l){if(typeof l!=="string")return;let m=h.get(l);if(m)return m;let y=j(t,l);return h.set(l,y),y}});for(let i of n.plugins??[]){let l=i.client?.({baseUrl:r,request:t});if(!l)continue;for(let[m,y]of Object.entries(l)){if(m in a)throw new e(`The "${i.id}" plugin's client extension would overwrite "${m}".`,{status:500,code:"client_extension_conflict"});a[m]=y}}return d}function S(n,r){let o=`/${r}`,t=(s)=>`${o}/${encodeURIComponent(s)}`;return{find:(s={})=>n(o,{query:L(s),...f(s)}),findById:(s,a={})=>n(t(s),{query:p(a),...f(a)}),create:({data:s,...a})=>n(o,{...u({data:s}),query:p(a),...f(a)}),update:({id:s,data:a,...c})=>n(t(s),{...u({data:a},"PATCH"),query:p(c),...f(c)}),delete:({id:s,permanent:a,...c})=>n(t(s),{method:"DELETE",query:{...p(c),...a===!0?{permanent:!0}:{}},...f(c)}),restore:({id:s,...a})=>n(`${t(s)}/restore`,{method:"POST",query:p(a),...f(a)}),schedule:({id:s,at:a,data:c,...d})=>n(`${t(s)}/schedule`,{...u({at:a instanceof Date?a.toISOString():a,data:c}),query:p(d),...f(d)}),unschedule:({id:s,...a})=>n(`${t(s)}/schedule`,{method:"DELETE",query:p(a),...f(a)}),resolveSlug:async(s,{field:a,...c}={})=>{try{return await n(`${o}/resolve-slug`,{query:{...p(c),slug:s,field:a},...f(c)})}catch(d){if(d instanceof e&&d.status===404)return null;throw d}},previousSlugs:({id:s,field:a,locale:c,...d})=>n(`${t(s)}/previous-slugs`,{query:{field:a,locale:c},...f(d)}),addPreviousSlug:({id:s,slug:a,field:c,locale:d,...h})=>n(`${t(s)}/previous-slugs`,{...u({slug:a,field:c,locale:d}),...f(h)}),removePreviousSlug:({id:s,slug:a,field:c,locale:d,...h})=>n(`${t(s)}/previous-slugs`,{method:"DELETE",query:{slug:a,field:c,locale:d},...f(h)})}}function j(n,r){let o=`/globals/${r}`;return{get:(t={})=>n(o,{query:p(t),...f(t)}),update:({data:t,...s})=>n(o,{...u({data:t},"PATCH"),query:p(s)}),schedule:({at:t,data:s,...a})=>n(`${o}/schedule`,{...u({at:t instanceof Date?t.toISOString():t,data:s}),query:p(a)}),unschedule:(t={})=>n(`${o}/schedule`,{method:"DELETE",query:p(t)})}}function q(n,r){return{async upload(o){let t=new FormData;if(typeof File<"u"&&o instanceof File)t.set("file",o);else{let s=o,a=s.file instanceof Blob?s.file:new Blob([s.file],{...s.contentType?{type:s.contentType}:{}});if(t.set("file",a,s.filename??"upload"),s.filename)t.set("filename",s.filename);if(s.alt!==void 0)t.set("alt",s.alt);if(s.locale!==void 0)t.set("locale",s.locale);if(s.metadata!==void 0)t.set("metadata",JSON.stringify(s.metadata))}return n("/media/upload",{method:"POST",body:t})},list:(o)=>n("/media",{query:o}),get:(o)=>n(`/media/${encodeURIComponent(o)}`),update:({id:o,...t})=>n(`/media/${encodeURIComponent(o)}`,u(t,"PATCH")),delete:({id:o,force:t})=>n(`/media/${encodeURIComponent(o)}`,{method:"DELETE",...t===!0?{query:{force:!0}}:{}}),keep:({id:o})=>n(`/media/${encodeURIComponent(o)}/keep`,{method:"POST"}),usages:async(o)=>C(await n(`/media/${encodeURIComponent(o)}/usages`),"usages"),url:(o,t="original")=>`${r}/media/${encodeURIComponent(o)}/${encodeURIComponent(t)}`}}function u(n,r="POST"){return{method:r,body:JSON.stringify(n),headers:{"content-type":"application/json"}}}function f(n){return{...n.headers===void 0?{}:{headers:n.headers},...n.signal===void 0?{}:{signal:n.signal}}}function p(n){return{...n.locale===void 0?{}:{locale:n.locale},...n.fallbackLocale===void 0?{}:{fallbackLocale:String(n.fallbackLocale)},...n.depth===void 0?{}:{depth:n.depth},...n.includeTrashed===void 0?{}:{includeTrashed:n.includeTrashed}}}function L(n){return{...p(n),...n.where===void 0?{}:{where:JSON.stringify(T(n.where))},...n.orderBy===void 0?{}:{sort:A(n.orderBy)},...n.limit===void 0?{}:{limit:n.limit},...n.offset===void 0?{}:{offset:n.offset},...n.cursor===void 0?{}:{cursor:n.cursor},...n.count===void 0?{}:{count:n.count}}}function T(n){if(n.kind==="and"||n.kind==="or")return{kind:n.kind,conditions:n.conditions.map(T)};if(n.kind==="not")return{kind:"not",condition:T(n.condition)};let r=Array.isArray(n.value)?n.value.map(E):E(n.value);return{kind:"compare",path:n.path,operator:n.operator,value:r}}function E(n){return n instanceof Date?n.toISOString():n}function A(n){return n.map((r)=>r.direction==="desc"?`-${r.path}`:r.path).join(",")}function I(n,r){let o=`${n}${r}`;try{return new URL(o)}catch{let t=globalThis.location?.origin;if(t)return new URL(o,t);throw new e('heyoCmsClient() needs "baseUrl" outside a browser.',{status:500,code:"client_base_url_required"})}}async function D(n){let r=n.headers;if(!r)return{};return typeof r==="function"?r():r}async function B(n){let r=n.token;if(!r)return null;return(typeof r==="function"?await r():r)??null}async function F(n){if((n.headers.get("content-type")??"").includes("application/json"))return await n.json();let o=await n.text();return o.length===0?null:o}function H(n,r){let o=typeof r==="object"&&r!==null?r.error??{}:{},t=typeof o.message==="string"?o.message:`The CMS answered ${n.status}.`;return new e(t,{status:n.status,code:typeof o.code==="string"?o.code:"request_failed",...o.details===void 0?{}:{details:o.details}})}function C(n,r){if(typeof n!=="object"||n===null)return n;return n[r]}function z(n={}){return O(n)}export{z as heyoCmsClient};
@@ -0,0 +1,31 @@
1
+ import type { Actor } from "./types/actor";
2
+ import type { CollectionDefinition, CollectionDefinitionInput, CollectionsConfig, GlobalDefinition, GlobalsConfig, HeyoCmsConfig } from "./types/config";
3
+ import type { FieldsConfig } from "./types/fields";
4
+ import type { CmsInstance } from "./types/instance";
5
+ export { defaultAdminPath, defaultBasePath, defaultMigrationsDirectory, } from "./defaults";
6
+ /**
7
+ * Declares a collection.
8
+ *
9
+ * Returns the definition unchanged apart from a tag: the work happens in
10
+ * `heyoCms()`, which is the only place that can see collections, globals and
11
+ * plugins at once and therefore the only place that can validate them against
12
+ * each other.
13
+ */
14
+ export declare function defineCollection<TFields extends FieldsConfig>(definition: CollectionDefinitionInput<TFields>): CollectionDefinition<TFields>;
15
+ /** Declares a singleton. Same machinery, one row. */
16
+ export declare function defineGlobal<TFields extends FieldsConfig>(definition: Omit<CollectionDefinitionInput<TFields>, "access"> & {
17
+ access?: GlobalDefinition<TFields>["access"];
18
+ }): GlobalDefinition<TFields>;
19
+ /**
20
+ * Builds the CMS.
21
+ *
22
+ * Everything that can be decided without a database is decided here: names,
23
+ * defaults, the schema the configuration implies, the order hooks will run
24
+ * in. A misconfiguration should fail while the module is loading, with the
25
+ * path to the offending key — not on the first request that happens to touch
26
+ * it.
27
+ */
28
+ export declare function heyoCms<const TCollections extends CollectionsConfig, const TGlobals extends GlobalsConfig = Record<string, never>>(config: HeyoCmsConfig<TCollections, TGlobals>): CmsInstance<TCollections, TGlobals>;
29
+ /** Convenience for tests and tooling that need an actor without a session. */
30
+ export declare function systemActor(id?: string): Actor;
31
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAGV,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AA4CpB;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,YAAY,EAC3D,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,oBAAoB,CAAC,OAAO,CAAC,CAE/B;AAED,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,OAAO,SAAS,YAAY,EACvD,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/D,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9C,GACA,gBAAgB,CAAC,OAAO,CAAC,CAE3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,KAAK,CAAC,YAAY,SAAS,iBAAiB,EAC5C,KAAK,CAAC,QAAQ,SAAS,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE5D,MAAM,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAC5C,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAqQrC;AAg+BD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,SAAW,GAAG,KAAK,CAEhD"}
package/dist/config.js ADDED
@@ -0,0 +1 @@
1
+ import{Vn,Gn,Kn,yt}from"./index-cv0hpz3d.js";import"./index-kc1j3h6z.js";import"./index-6w10rch0.js";import"./index-hpast878.js";import"./index-91fa1gzf.js";import"./index-8x2em6c8.js";import"./index-g041kfa5.js";import{ge,et,tt}from"./index-y8kzzn94.js";import"./index-abfzb1ve.js";import"./index-2prbs05k.js";import"./index-sgdnp83t.js";import"./index-6m1kjq9g.js";export{et as defaultAdminPath,ge as defaultBasePath,tt as defaultMigrationsDirectory,Vn as defineCollection,Gn as defineGlobal,Kn as heyoCms,yt as systemActor};
@@ -0,0 +1,28 @@
1
+ import type { CmsInstance } from "../types/instance";
2
+ import { type ContentRecord } from "./records";
3
+ export interface ExportOptions {
4
+ /** Collection names. Defaults to every collection in the configuration. */
5
+ collections?: string[];
6
+ /** Global names. Defaults to every global. */
7
+ globals?: string[];
8
+ /** Includes documents that are in the trash. Off by default. */
9
+ includeTrashed?: boolean;
10
+ /** Rows per query. Paging keeps a large dump off the heap. */
11
+ batchSize?: number;
12
+ }
13
+ /**
14
+ * Reads the content out, one record at a time.
15
+ *
16
+ * This is the one operation in the package that reads rows rather than
17
+ * documents, and it has a reason: a read resolves a locale, and an export
18
+ * that resolved a locale would drop every translation it did not pick. So the
19
+ * export takes the storage shape — locale maps and all — and the importer
20
+ * writes it back through the ordinary API, which is what keeps the single
21
+ * write path the engine is built around (stage 3) intact in both directions.
22
+ *
23
+ * It yields instead of returning an array because the caller is a CLI writing
24
+ * to a file descriptor: a collection with a hundred thousand documents must
25
+ * cost a constant amount of memory to export.
26
+ */
27
+ export declare function exportContent(cms: CmsInstance, options?: ExportOptions): AsyncGenerator<ContentRecord>;
28
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/content/export.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAuB,aAAa,CAClC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,aAAkB,GAC1B,cAAc,CAAC,aAAa,CAAC,CA4D/B"}
@@ -0,0 +1,65 @@
1
+ import type { Actor } from "../types/actor";
2
+ import type { ResolvedCollection } from "../types/config";
3
+ import type { CmsInstance } from "../types/instance";
4
+ import type { JsonObject } from "../types/json";
5
+ import { type ContentRecord } from "./records";
6
+ export interface ImportOptions {
7
+ /**
8
+ * What to do with a document whose id is already there.
9
+ *
10
+ * `skip` is the default because an import is usually a restore into an
11
+ * empty deployment, and the destructive reading of "merge these two
12
+ * environments" should have to be asked for by name.
13
+ */
14
+ onConflict?: "skip" | "update" | "fail";
15
+ /** Who the writes are attributed to. Defaults to the system actor. */
16
+ actor?: Actor | null;
17
+ /** Parses and reports without writing anything. */
18
+ dryRun?: boolean;
19
+ }
20
+ export interface ImportReport {
21
+ documents: {
22
+ created: number;
23
+ updated: number;
24
+ skipped: number;
25
+ };
26
+ globals: {
27
+ updated: number;
28
+ skipped: number;
29
+ };
30
+ /** Everything that was refused, with the reason, in the order it happened. */
31
+ errors: string[];
32
+ }
33
+ /**
34
+ * Writes an export back, through the ordinary API.
35
+ *
36
+ * Every document goes through `create`/`update`, which means access control,
37
+ * validation, hooks, the activity log and the outbox all run — an import is
38
+ * an ordinary set of writes performed quickly, not a second way into the
39
+ * database. The cost is that `createdAt` and `updatedAt` are the import's own
40
+ * timestamps; a publication date that matters belongs in a field, where a
41
+ * reader can see it.
42
+ *
43
+ * Ids are preserved. That is what keeps a relation pointing at the document
44
+ * it pointed at, and a rich-text image pointing at the file it was, without
45
+ * a rewriting pass that would have to understand every field type a plugin
46
+ * ever adds.
47
+ */
48
+ export declare function importContent(cms: CmsInstance, records: AsyncIterable<ContentRecord> | Iterable<ContentRecord>, options?: ImportOptions): Promise<ImportReport>;
49
+ interface SplitData {
50
+ /** Everything that can be written in one call, in the default locale. */
51
+ base: JsonObject;
52
+ /** One patch per further locale, written after the document exists. */
53
+ translations: Record<string, JsonObject>;
54
+ }
55
+ /**
56
+ * Turns the storage shape back into a sequence of ordinary writes.
57
+ *
58
+ * A localized field is stored as `{ en: ..., pl: ... }` and written one
59
+ * language at a time, because that is what the API offers and inventing a
60
+ * multi-locale write for the importer alone would be a second write path with
61
+ * its own hooks problem.
62
+ */
63
+ export declare function splitLocales(collection: ResolvedCollection, data: JsonObject, defaultLocale: string): SplitData;
64
+ export {};
65
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/content/import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,8EAA8E;IAC9E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,EAC/D,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA6CvB;AA2HD,UAAU,SAAS;IACjB,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,SAAS,CAkCX"}