rimecms 0.31.4 → 0.32.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 (1079) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter-sqlite/area.server.d.ts +10 -46
  3. package/dist/adapter-sqlite/area.server.js +31 -309
  4. package/dist/adapter-sqlite/auth.server.d.ts +11 -19
  5. package/dist/adapter-sqlite/auth.server.js +20 -77
  6. package/dist/adapter-sqlite/blocks.server.d.ts +7 -8
  7. package/dist/adapter-sqlite/blocks.server.js +17 -12
  8. package/dist/adapter-sqlite/collection.server.d.ts +10 -67
  9. package/dist/adapter-sqlite/collection.server.js +22 -418
  10. package/dist/adapter-sqlite/columns.server.d.ts +140 -0
  11. package/dist/adapter-sqlite/columns.server.js +307 -0
  12. package/dist/adapter-sqlite/generate-schema/column.server.js +1 -1
  13. package/dist/adapter-sqlite/generate-schema/index.server.d.ts +3 -3
  14. package/dist/adapter-sqlite/generate-schema/index.server.js +64 -139
  15. package/dist/adapter-sqlite/generate-schema/relations/junction.server.d.ts +3 -2
  16. package/dist/adapter-sqlite/generate-schema/relations/junction.server.js +14 -7
  17. package/dist/adapter-sqlite/generate-schema/root.server.d.ts +31 -7
  18. package/dist/adapter-sqlite/generate-schema/root.server.js +35 -19
  19. package/dist/adapter-sqlite/generate-schema/templates.server.d.ts +55 -60
  20. package/dist/adapter-sqlite/generate-schema/templates.server.js +110 -169
  21. package/dist/adapter-sqlite/generate-schema/write.server.js +19 -6
  22. package/dist/adapter-sqlite/index.server.d.ts +17 -23
  23. package/dist/adapter-sqlite/index.server.js +33 -36
  24. package/dist/adapter-sqlite/locales.server.d.ts +31 -0
  25. package/dist/adapter-sqlite/locales.server.js +57 -0
  26. package/dist/adapter-sqlite/naming.server.d.ts +134 -0
  27. package/dist/adapter-sqlite/naming.server.js +98 -0
  28. package/dist/adapter-sqlite/order-by.server.d.ts +29 -0
  29. package/dist/adapter-sqlite/order-by.server.js +115 -0
  30. package/dist/adapter-sqlite/read.server.d.ts +78 -0
  31. package/dist/adapter-sqlite/read.server.js +188 -0
  32. package/dist/adapter-sqlite/registry.server.d.ts +45 -0
  33. package/dist/adapter-sqlite/registry.server.js +63 -0
  34. package/dist/adapter-sqlite/relations.server.d.ts +10 -12
  35. package/dist/adapter-sqlite/relations.server.js +24 -8
  36. package/dist/adapter-sqlite/rows.server.d.ts +36 -0
  37. package/dist/adapter-sqlite/rows.server.js +6 -0
  38. package/dist/adapter-sqlite/select.server.d.ts +25 -0
  39. package/dist/adapter-sqlite/select.server.js +274 -0
  40. package/dist/adapter-sqlite/table.server.d.ts +18 -0
  41. package/dist/adapter-sqlite/table.server.js +63 -0
  42. package/dist/adapter-sqlite/transform.server.d.ts +13 -12
  43. package/dist/adapter-sqlite/transform.server.js +118 -197
  44. package/dist/adapter-sqlite/tree.server.d.ts +7 -8
  45. package/dist/adapter-sqlite/tree.server.js +13 -12
  46. package/dist/adapter-sqlite/types.server.d.ts +6 -5
  47. package/dist/adapter-sqlite/where.server.d.ts +25 -3
  48. package/dist/adapter-sqlite/where.server.js +46 -36
  49. package/dist/adapter-sqlite/write.server.d.ts +166 -0
  50. package/dist/adapter-sqlite/write.server.js +272 -0
  51. package/dist/core/adapter.d.ts +456 -0
  52. package/dist/core/adapter.js +13 -0
  53. package/dist/core/auth/access.d.ts +73 -0
  54. package/dist/core/auth/augment.d.ts +18 -0
  55. package/dist/core/auth/augment.js +110 -0
  56. package/dist/core/auth/augment.server.d.ts +3 -0
  57. package/dist/core/auth/augment.server.js +23 -0
  58. package/dist/core/auth/better-auth/config.server.d.ts +2122 -0
  59. package/dist/core/auth/better-auth/config.server.js +81 -0
  60. package/dist/core/auth/better-auth/hooks.server.js +132 -0
  61. package/dist/core/auth/better-auth/instance.server.d.ts +4215 -0
  62. package/dist/core/auth/better-auth/instance.server.js +26 -0
  63. package/dist/core/auth/better-auth-tables.server.d.ts +33 -0
  64. package/dist/core/auth/better-auth-tables.server.js +50 -0
  65. package/dist/core/auth/configure.d.ts +21 -0
  66. package/dist/core/auth/configure.js +21 -0
  67. package/dist/core/auth/constant.server.d.ts +28 -0
  68. package/dist/core/auth/constant.server.js +43 -0
  69. package/dist/core/auth/enabled.d.ts +10 -0
  70. package/dist/core/auth/enabled.js +10 -0
  71. package/dist/core/auth/handler/index.server.js +159 -0
  72. package/dist/core/auth/hooks/augment-fields-password.server.d.ts +20 -0
  73. package/dist/core/auth/hooks/augment-fields-password.server.js +44 -0
  74. package/dist/core/auth/hooks/create-better-auth-user.server.d.ts +4 -0
  75. package/dist/core/auth/hooks/create-better-auth-user.server.js +212 -0
  76. package/dist/core/auth/hooks/delete-better-auth-user.server.d.ts +4 -0
  77. package/dist/core/auth/hooks/delete-better-auth-user.server.js +25 -0
  78. package/dist/core/auth/hooks/forward-roles.server.d.ts +12 -0
  79. package/dist/core/auth/hooks/forward-roles.server.js +58 -0
  80. package/dist/core/auth/hooks/index.server.d.ts +18 -0
  81. package/dist/core/auth/hooks/index.server.js +18 -0
  82. package/dist/core/auth/hooks/populate-api-key.server.d.ts +5 -0
  83. package/dist/core/auth/hooks/populate-api-key.server.js +22 -0
  84. package/dist/core/auth/hooks/prevent-superadmin-deletion.server.d.ts +6 -0
  85. package/dist/core/auth/hooks/prevent-superadmin-deletion.server.js +16 -0
  86. package/dist/core/auth/hooks/prevent-superadmin-mutation.server.d.ts +5 -0
  87. package/dist/core/auth/hooks/prevent-superadmin-mutation.server.js +28 -0
  88. package/dist/core/auth/hooks/prevent-user-mutations.server.d.ts +5 -0
  89. package/dist/core/auth/hooks/prevent-user-mutations.server.js +13 -0
  90. package/dist/core/auth/hooks/remove-private-fields.server.d.ts +7 -0
  91. package/dist/core/auth/hooks/remove-private-fields.server.js +11 -0
  92. package/dist/core/auth/hooks/sign-in-new-user.server.d.ts +12 -0
  93. package/dist/core/auth/hooks/sign-in-new-user.server.js +29 -0
  94. package/dist/core/auth/module.d.ts +2 -0
  95. package/dist/core/auth/module.js +2 -0
  96. package/dist/core/auth/module.server.d.ts +2 -0
  97. package/dist/core/auth/module.server.js +2 -0
  98. package/dist/core/auth/staff/configure.d.ts +7 -0
  99. package/dist/core/auth/staff/configure.js +13 -0
  100. package/dist/core/auth/staff/configure.server.d.ts +7 -0
  101. package/dist/core/auth/staff/configure.server.js +14 -0
  102. package/dist/core/auth/staff/derive.d.ts +23 -0
  103. package/dist/core/auth/staff/derive.js +58 -0
  104. package/dist/core/auth/tables.d.ts +38 -0
  105. package/dist/core/auth/tables.js +157 -0
  106. package/dist/core/auth/types.d.ts +47 -0
  107. package/dist/core/auth/user.server.d.ts +43 -0
  108. package/dist/core/auth/user.server.js +73 -0
  109. package/dist/core/auth/util.d.ts +13 -0
  110. package/dist/core/auth/validate-config.d.ts +13 -0
  111. package/dist/core/auth/validate-config.js +42 -0
  112. package/dist/core/boot.server.d.ts +4227 -0
  113. package/dist/core/boot.server.js +61 -0
  114. package/dist/core/codegen.server.d.ts +22 -0
  115. package/dist/core/codegen.server.js +58 -0
  116. package/dist/core/config/build.d.ts +23 -0
  117. package/dist/core/config/build.js +22 -0
  118. package/dist/core/config/build.server.d.ts +70 -0
  119. package/dist/core/config/build.server.js +33 -0
  120. package/dist/core/config/configure.d.ts +26 -0
  121. package/dist/core/config/configure.js +40 -0
  122. package/dist/core/config/context.server.d.ts +82 -0
  123. package/dist/core/config/context.server.js +118 -0
  124. package/dist/core/config/index.d.ts +4 -0
  125. package/dist/core/config/index.js +4 -0
  126. package/dist/core/config/index.server.d.ts +9 -0
  127. package/dist/core/config/index.server.js +11 -0
  128. package/dist/core/config/types.d.ts +88 -170
  129. package/dist/core/config/validate.server.d.ts +3 -0
  130. package/dist/core/config/validate.server.js +259 -0
  131. package/dist/core/constants.d.ts +69 -0
  132. package/dist/core/constants.js +69 -0
  133. package/dist/core/constants.server.d.ts +5 -0
  134. package/dist/core/constants.server.js +6 -0
  135. package/dist/core/cors/configure.server.d.ts +11 -0
  136. package/dist/core/cors/configure.server.js +14 -0
  137. package/dist/core/cors/handler.server.js +75 -0
  138. package/dist/core/cors/module.browser.js +1 -0
  139. package/dist/core/cors/module.server.d.ts +1 -0
  140. package/dist/core/cors/module.server.js +7 -0
  141. package/dist/core/dev/cache.server.d.ts +17 -0
  142. package/dist/core/dev/cache.server.js +65 -0
  143. package/dist/core/dev/cli/commands/build.js +70 -0
  144. package/dist/core/dev/cli/commands/clear.server.js +42 -0
  145. package/dist/core/dev/cli/commands/generate-exports.server.d.ts +26 -0
  146. package/dist/core/dev/cli/commands/generate-exports.server.js +155 -0
  147. package/dist/core/dev/cli/commands/generate.server.js +98 -0
  148. package/dist/core/dev/cli/commands/init.server.js +242 -0
  149. package/dist/core/dev/cli/index.js +16 -16
  150. package/dist/core/dev/cli/templates/build.js +45 -0
  151. package/dist/core/dev/cli/templates/init.d.ts +18 -0
  152. package/dist/core/dev/cli/templates/init.js +117 -0
  153. package/dist/core/dev/cli/util/package-manager.server.js +7 -3
  154. package/dist/core/dev/cli/util/package.server.d.ts +0 -8
  155. package/dist/core/dev/cli/util/package.server.js +0 -10
  156. package/dist/core/dev/codegen/routes/common.server.d.ts +35 -0
  157. package/dist/core/dev/codegen/routes/common.server.js +437 -0
  158. package/dist/core/dev/codegen/routes/custom-css.server.js +86 -0
  159. package/dist/core/dev/codegen/routes/index.server.d.ts +17 -0
  160. package/dist/core/dev/codegen/routes/index.server.js +110 -0
  161. package/dist/core/dev/codegen/routes/util.server.d.ts +52 -0
  162. package/dist/core/dev/codegen/routes/util.server.js +118 -0
  163. package/dist/core/dev/codegen/runtime/index.server.d.ts +78 -0
  164. package/dist/core/dev/codegen/runtime/index.server.js +92 -0
  165. package/dist/core/dev/codegen/runtime/parse-exports.server.d.ts +16 -0
  166. package/dist/core/dev/codegen/runtime/parse-exports.server.js +60 -0
  167. package/dist/core/dev/codegen/sanitize/index.server.js +834 -0
  168. package/dist/core/dev/codegen/types/contributions.server.d.ts +37 -0
  169. package/dist/core/dev/codegen/types/contributions.server.js +25 -0
  170. package/dist/core/dev/codegen/types/index.server.js +132 -0
  171. package/dist/core/dev/codegen/types/templates.server.d.ts +13 -0
  172. package/dist/core/dev/codegen/types/templates.server.js +134 -0
  173. package/dist/core/dev/config-memo.server.js +85 -0
  174. package/dist/core/dev/constants.server.d.ts +20 -0
  175. package/dist/core/dev/constants.server.js +63 -0
  176. package/dist/core/dev/ensure.server.d.ts +30 -0
  177. package/dist/core/dev/ensure.server.js +82 -0
  178. package/dist/core/dev/prototype-routes.server.d.ts +16 -0
  179. package/dist/core/dev/prototype-routes.server.js +23 -0
  180. package/dist/core/dev/version.server.d.ts +12 -0
  181. package/dist/core/dev/version.server.js +27 -0
  182. package/dist/core/dev/vite.server.js +237 -0
  183. package/dist/core/errors/handler.server.d.ts +17 -1
  184. package/dist/core/errors/handler.server.js +4 -23
  185. package/dist/core/fields/builders/boolean-builder.d.ts +1 -1
  186. package/dist/core/fields/builders/field-builder.d.ts +12 -1
  187. package/dist/core/fields/builders/form-field-builder.d.ts +16 -5
  188. package/dist/core/fields/builders/form-field-builder.js +19 -8
  189. package/dist/core/fields/builders/select-builder.d.ts +1 -1
  190. package/dist/core/fields/types.d.ts +16 -0
  191. package/dist/core/fields/util.d.ts +60 -0
  192. package/dist/core/fields/util.js +84 -1
  193. package/dist/core/fields/validate.js +171 -0
  194. package/dist/core/handler.server.d.ts +4 -0
  195. package/dist/core/handler.server.js +25 -0
  196. package/dist/core/i18n/en/common.d.ts +18 -0
  197. package/dist/core/i18n/en/common.js +20 -1
  198. package/dist/core/i18n/fr/common.d.ts +18 -0
  199. package/dist/core/i18n/fr/common.js +20 -1
  200. package/dist/core/i18n/index.d.ts +0 -1
  201. package/dist/core/i18n/index.js +0 -1
  202. package/dist/core/locale/copy.server.d.ts +35 -0
  203. package/dist/core/locale/copy.server.js +93 -0
  204. package/dist/core/locale/types.d.ts +20 -0
  205. package/dist/core/panel/configure.d.ts +63 -0
  206. package/dist/core/panel/configure.js +56 -0
  207. package/dist/core/panel/types.d.ts +61 -0
  208. package/dist/core/pipeline/build-document.server.d.ts +26 -0
  209. package/dist/core/pipeline/build-document.server.js +83 -0
  210. package/dist/core/pipeline/build.server.d.ts +23 -0
  211. package/dist/core/pipeline/build.server.js +76 -0
  212. package/dist/core/pipeline/config-map/build-tree-map.d.ts +4 -0
  213. package/dist/core/pipeline/config-map/index.d.ts +6 -0
  214. package/dist/core/pipeline/config-map/index.js +54 -0
  215. package/dist/core/pipeline/define-hook.d.ts +42 -0
  216. package/dist/core/pipeline/define-hook.js +40 -0
  217. package/dist/core/pipeline/extract-data.server.d.ts +18 -0
  218. package/dist/core/pipeline/extract-data.server.js +78 -0
  219. package/dist/core/pipeline/hook-name.server.d.ts +11 -0
  220. package/dist/core/pipeline/hook-name.server.js +14 -0
  221. package/dist/core/pipeline/hooks/authorize.server.d.ts +6 -0
  222. package/dist/core/pipeline/hooks/authorize.server.js +37 -0
  223. package/dist/core/pipeline/hooks/data-config-map.server.d.ts +8 -0
  224. package/dist/core/pipeline/hooks/data-config-map.server.js +19 -0
  225. package/dist/core/pipeline/hooks/get-original-document.server.d.ts +9 -0
  226. package/dist/core/pipeline/hooks/get-original-document.server.js +34 -0
  227. package/dist/core/pipeline/hooks/normalize-resolved-references.server.d.ts +16 -0
  228. package/dist/core/pipeline/hooks/normalize-resolved-references.server.js +40 -0
  229. package/dist/core/pipeline/hooks/original-config-map.server.d.ts +8 -0
  230. package/dist/core/pipeline/hooks/original-config-map.server.js +23 -0
  231. package/dist/core/pipeline/hooks/process-document-fields.server.d.ts +5 -0
  232. package/dist/core/pipeline/hooks/process-document-fields.server.js +62 -0
  233. package/dist/core/pipeline/hooks/resolve-content-owner.server.d.ts +17 -0
  234. package/dist/core/pipeline/hooks/resolve-content-owner.server.js +24 -0
  235. package/dist/core/pipeline/hooks/set-default-values.server.d.ts +16 -0
  236. package/dist/core/pipeline/hooks/set-default-values.server.js +79 -0
  237. package/dist/core/pipeline/hooks/set-document-locale.server.d.ts +5 -0
  238. package/dist/core/pipeline/hooks/set-document-locale.server.js +19 -0
  239. package/dist/core/pipeline/hooks/set-document-type.server.d.ts +6 -0
  240. package/dist/core/pipeline/hooks/set-document-type.server.js +19 -0
  241. package/dist/core/pipeline/hooks/sort-document-props.server.d.ts +7 -0
  242. package/dist/core/pipeline/hooks/sort-document-props.server.js +71 -0
  243. package/dist/core/pipeline/hooks/validate-fields.server.d.ts +12 -0
  244. package/dist/core/pipeline/hooks/validate-fields.server.js +170 -0
  245. package/dist/core/pipeline/persist/blocks/diff.server.d.ts +15 -0
  246. package/dist/core/pipeline/persist/blocks/diff.server.js +69 -0
  247. package/dist/core/pipeline/persist/blocks/extract.server.d.ts +9 -0
  248. package/dist/core/pipeline/persist/blocks/extract.server.js +33 -0
  249. package/dist/core/pipeline/persist/blocks/index.server.d.ts +27 -0
  250. package/dist/core/pipeline/persist/blocks/index.server.js +68 -0
  251. package/dist/core/pipeline/persist/relations/diff.server.d.ts +14 -0
  252. package/dist/core/pipeline/persist/relations/diff.server.js +47 -0
  253. package/dist/core/pipeline/persist/relations/extract.server.d.ts +11 -0
  254. package/dist/core/pipeline/persist/relations/extract.server.js +59 -0
  255. package/dist/core/pipeline/persist/relations/index.server.d.ts +26 -0
  256. package/dist/core/pipeline/persist/relations/index.server.js +66 -0
  257. package/dist/core/pipeline/persist/tree/diff.server.d.ts +20 -0
  258. package/dist/core/pipeline/persist/tree/diff.server.js +51 -0
  259. package/dist/core/pipeline/persist/tree/extract.server.d.ts +9 -0
  260. package/dist/core/pipeline/persist/tree/extract.server.js +34 -0
  261. package/dist/core/pipeline/persist/tree/index.server.d.ts +14 -0
  262. package/dist/core/pipeline/persist/tree/index.server.js +50 -0
  263. package/dist/core/pipeline/query.d.ts +14 -0
  264. package/dist/core/pipeline/query.js +36 -0
  265. package/dist/core/pipeline/run.server.d.ts +146 -0
  266. package/dist/core/pipeline/run.server.js +256 -0
  267. package/dist/core/pipeline/types.d.ts +140 -0
  268. package/dist/core/pipeline/types.js +10 -0
  269. package/dist/core/plugins/api-init/index.server.js +84 -0
  270. package/dist/core/plugins/cache/cache.server.js +1 -1
  271. package/dist/core/plugins/cache/handler.server.js +1 -1
  272. package/dist/core/plugins/cache/index.d.ts +1 -2
  273. package/dist/core/plugins/cache/index.js +3 -1
  274. package/dist/core/plugins/cache/types.d.ts +5 -0
  275. package/dist/core/plugins/configure.d.ts +12 -0
  276. package/dist/core/plugins/configure.js +26 -0
  277. package/dist/core/plugins/defaults/index.d.ts +1 -0
  278. package/dist/core/plugins/defaults/index.js +3 -0
  279. package/dist/core/plugins/defaults/module.d.ts +12 -0
  280. package/dist/core/plugins/defaults/module.js +14 -0
  281. package/dist/core/plugins/defaults/module.server.d.ts +4 -0
  282. package/dist/core/plugins/defaults/module.server.js +15 -0
  283. package/dist/core/plugins/defaults/types.d.ts +18 -0
  284. package/dist/core/plugins/defaults/types.js +1 -0
  285. package/dist/core/plugins/mailer/index.server.js +29 -0
  286. package/dist/core/plugins/plugins.server.js +10 -0
  287. package/dist/core/plugins/sse/bus.server.d.ts +16 -0
  288. package/dist/core/plugins/sse/bus.server.js +69 -0
  289. package/dist/core/plugins/sse/client.d.ts +14 -16
  290. package/dist/core/plugins/sse/client.js +42 -34
  291. package/dist/core/plugins/sse/index.d.ts +10 -2
  292. package/dist/core/plugins/sse/index.js +9 -1
  293. package/dist/core/plugins/sse/index.server.d.ts +29 -0
  294. package/dist/core/plugins/sse/index.server.js +18 -0
  295. package/dist/core/plugins/sse/types.d.ts +15 -7
  296. package/dist/core/prototype/area/api.server.d.ts +91 -0
  297. package/dist/core/prototype/area/api.server.js +117 -0
  298. package/dist/core/prototype/area/augment-label.d.ts +16 -0
  299. package/dist/core/prototype/area/augment-label.js +13 -0
  300. package/dist/core/prototype/area/definition.d.ts +18 -0
  301. package/dist/core/prototype/area/definition.js +44 -0
  302. package/dist/core/prototype/area/definition.server.d.ts +9 -0
  303. package/dist/core/prototype/area/definition.server.js +40 -0
  304. package/dist/core/prototype/area/hooks.server.d.ts +17 -0
  305. package/dist/core/prototype/area/hooks.server.js +61 -0
  306. package/dist/core/prototype/area/index.d.ts +1 -0
  307. package/dist/core/prototype/area/index.js +1 -0
  308. package/dist/core/prototype/area/operations/find.d.ts +18 -0
  309. package/dist/core/prototype/area/operations/find.js +43 -0
  310. package/dist/core/prototype/area/operations/update.d.ts +29 -0
  311. package/dist/core/prototype/area/operations/update.js +44 -0
  312. package/dist/core/prototype/area/rest/endpoint.server.d.ts +14 -0
  313. package/dist/core/prototype/area/rest/endpoint.server.js +15 -0
  314. package/dist/core/prototype/area/rest/get.server.d.ts +4 -0
  315. package/dist/core/prototype/area/rest/get.server.js +31 -0
  316. package/dist/core/prototype/area/rest/index.server.d.ts +9 -0
  317. package/dist/core/prototype/area/rest/index.server.js +14 -0
  318. package/dist/core/prototype/area/rest/lock.server.d.ts +2 -0
  319. package/dist/core/prototype/area/rest/lock.server.js +38 -0
  320. package/dist/core/prototype/area/rest/update.server.d.ts +4 -0
  321. package/dist/core/prototype/area/rest/update.server.js +38 -0
  322. package/dist/core/prototype/area/types.js +1 -0
  323. package/dist/core/prototype/collection/api.server.d.ts +173 -0
  324. package/dist/core/prototype/collection/api.server.js +224 -0
  325. package/dist/core/prototype/collection/augment-label.d.ts +6 -0
  326. package/dist/core/prototype/collection/definition.d.ts +26 -0
  327. package/dist/core/prototype/collection/definition.js +74 -0
  328. package/dist/core/prototype/collection/definition.server.d.ts +8 -0
  329. package/dist/core/prototype/collection/definition.server.js +24 -0
  330. package/dist/core/prototype/collection/hooks/merge-with-blank.server.d.ts +5 -0
  331. package/dist/core/prototype/collection/hooks/merge-with-blank.server.js +28 -0
  332. package/dist/core/prototype/collection/hooks.server.d.ts +28 -0
  333. package/dist/core/prototype/collection/hooks.server.js +133 -0
  334. package/dist/core/prototype/collection/index.d.ts +1 -0
  335. package/dist/core/prototype/collection/index.js +1 -0
  336. package/dist/core/prototype/collection/nested/enabled.d.ts +8 -0
  337. package/dist/core/prototype/collection/nested/enabled.js +7 -0
  338. package/dist/core/prototype/collection/nested/hooks/add-children.server.d.ts +4 -0
  339. package/dist/core/prototype/collection/nested/hooks/add-children.server.js +40 -0
  340. package/dist/core/prototype/collection/nested/hooks/index.server.d.ts +9 -0
  341. package/dist/core/prototype/collection/nested/hooks/index.server.js +9 -0
  342. package/dist/core/prototype/collection/nested/module.d.ts +15 -0
  343. package/dist/core/prototype/collection/nested/module.js +17 -0
  344. package/dist/core/prototype/collection/nested/module.server.d.ts +16 -0
  345. package/dist/core/prototype/collection/nested/module.server.js +21 -0
  346. package/dist/core/prototype/collection/operations/create.d.ts +18 -0
  347. package/dist/core/prototype/collection/operations/create.js +68 -0
  348. package/dist/core/prototype/collection/operations/delete-by-id.d.ts +11 -0
  349. package/dist/core/prototype/collection/operations/delete-by-id.js +44 -0
  350. package/dist/core/prototype/collection/operations/delete.d.ts +15 -0
  351. package/dist/core/prototype/collection/operations/delete.js +34 -0
  352. package/dist/core/prototype/collection/operations/duplicate.d.ts +12 -0
  353. package/dist/core/prototype/collection/operations/duplicate.js +112 -0
  354. package/dist/core/prototype/collection/operations/find-by-id.d.ts +22 -0
  355. package/dist/core/prototype/collection/operations/find-by-id.js +47 -0
  356. package/dist/core/prototype/collection/operations/find.d.ts +22 -0
  357. package/dist/core/prototype/collection/operations/find.js +65 -0
  358. package/dist/core/prototype/collection/operations/update-by-id.d.ts +30 -0
  359. package/dist/core/prototype/collection/operations/update-by-id.js +52 -0
  360. package/dist/core/prototype/collection/rest/create.server.d.ts +4 -0
  361. package/dist/core/prototype/collection/rest/create.server.js +26 -0
  362. package/dist/core/prototype/collection/rest/delete-by-id.server.d.ts +4 -0
  363. package/dist/core/prototype/collection/rest/delete-by-id.server.js +16 -0
  364. package/dist/core/prototype/collection/rest/delete.server.d.ts +4 -0
  365. package/dist/core/prototype/collection/rest/delete.server.js +33 -0
  366. package/dist/core/prototype/collection/rest/duplicate.server.d.ts +1 -0
  367. package/dist/core/prototype/collection/rest/duplicate.server.js +17 -0
  368. package/dist/core/prototype/collection/rest/endpoint.server.d.ts +27 -0
  369. package/dist/core/prototype/collection/rest/endpoint.server.js +23 -0
  370. package/dist/core/prototype/collection/rest/get-by-id.server.d.ts +4 -0
  371. package/dist/core/prototype/collection/rest/get-by-id.server.js +40 -0
  372. package/dist/core/prototype/collection/rest/get.server.d.ts +4 -0
  373. package/dist/core/prototype/collection/rest/get.server.js +38 -0
  374. package/dist/core/prototype/collection/rest/index.server.d.ts +12 -0
  375. package/dist/core/prototype/collection/rest/index.server.js +24 -0
  376. package/dist/core/prototype/collection/rest/lock.server.d.ts +2 -0
  377. package/dist/core/prototype/collection/rest/lock.server.js +59 -0
  378. package/dist/core/prototype/collection/rest/update-by-id.server.d.ts +4 -0
  379. package/dist/core/prototype/collection/rest/update-by-id.server.js +44 -0
  380. package/dist/core/prototype/collection/thumbnail/augment.d.ts +13 -0
  381. package/dist/core/prototype/collection/thumbnail/augment.js +15 -0
  382. package/dist/core/prototype/collection/thumbnail/find-thumbnail.d.ts +9 -0
  383. package/dist/core/prototype/collection/thumbnail/find-thumbnail.js +34 -0
  384. package/dist/core/prototype/collection/thumbnail/hooks/index.server.d.ts +9 -0
  385. package/dist/core/prototype/collection/thumbnail/hooks/index.server.js +9 -0
  386. package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.d.ts +7 -0
  387. package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.js +40 -0
  388. package/dist/core/prototype/collection/types.d.ts +14 -0
  389. package/dist/core/prototype/collection/types.js +1 -0
  390. package/dist/core/prototype/collection/upload/boot/index.server.d.ts +13 -0
  391. package/dist/core/prototype/collection/upload/boot/index.server.js +11 -0
  392. package/dist/core/prototype/collection/upload/constant.d.ts +10 -0
  393. package/dist/core/prototype/collection/upload/constant.js +10 -0
  394. package/dist/core/prototype/collection/upload/directories/configure.d.ts +14 -0
  395. package/dist/core/prototype/collection/upload/directories/configure.js +19 -0
  396. package/dist/core/prototype/collection/upload/directories/configure.server.d.ts +12 -0
  397. package/dist/core/prototype/collection/upload/directories/configure.server.js +35 -0
  398. package/dist/core/prototype/collection/upload/directories/derive.d.ts +7 -0
  399. package/dist/core/prototype/collection/upload/directories/derive.js +56 -0
  400. package/dist/core/prototype/collection/upload/directories/pipeline.server.d.ts +10 -0
  401. package/dist/core/prototype/collection/upload/directories/pipeline.server.js +22 -0
  402. package/dist/core/prototype/collection/upload/disk/delete.server.d.ts +9 -0
  403. package/dist/core/prototype/collection/upload/disk/delete.server.js +106 -0
  404. package/dist/core/prototype/collection/upload/disk/save.server.d.ts +32 -0
  405. package/dist/core/prototype/collection/upload/disk/save.server.js +190 -0
  406. package/dist/core/prototype/collection/upload/doc-type.d.ts +14 -0
  407. package/dist/core/prototype/collection/upload/doc-type.js +28 -0
  408. package/dist/core/prototype/collection/upload/enabled.d.ts +8 -0
  409. package/dist/core/prototype/collection/upload/enabled.js +7 -0
  410. package/dist/core/prototype/collection/upload/ensure.server.d.ts +12 -0
  411. package/dist/core/prototype/collection/upload/ensure.server.js +19 -0
  412. package/dist/core/prototype/collection/upload/hooks/clean-up-files.server.d.ts +10 -0
  413. package/dist/core/prototype/collection/upload/hooks/clean-up-files.server.js +17 -0
  414. package/dist/core/prototype/collection/upload/hooks/convert-base64.server.d.ts +13 -0
  415. package/dist/core/prototype/collection/upload/hooks/convert-base64.server.js +36 -0
  416. package/dist/core/prototype/collection/upload/hooks/extract-path.server.d.ts +6 -0
  417. package/dist/core/prototype/collection/upload/hooks/extract-path.server.js +25 -0
  418. package/dist/core/prototype/collection/upload/hooks/handle-path-creation.server.d.ts +6 -0
  419. package/dist/core/prototype/collection/upload/hooks/handle-path-creation.server.js +82 -0
  420. package/dist/core/prototype/collection/upload/hooks/index.server.d.ts +13 -0
  421. package/dist/core/prototype/collection/upload/hooks/index.server.js +13 -0
  422. package/dist/core/prototype/collection/upload/hooks/populate-sizes.server.d.ts +4 -0
  423. package/dist/core/prototype/collection/upload/hooks/populate-sizes.server.js +48 -0
  424. package/dist/core/prototype/collection/upload/hooks/process-file-upload.server.d.ts +20 -0
  425. package/dist/core/prototype/collection/upload/hooks/process-file-upload.server.js +60 -0
  426. package/dist/core/prototype/collection/upload/hooks/update-directory-children.server.d.ts +10 -0
  427. package/dist/core/prototype/collection/upload/hooks/update-directory-children.server.js +47 -0
  428. package/dist/core/prototype/collection/upload/module.d.ts +15 -0
  429. package/dist/core/prototype/collection/upload/module.js +92 -0
  430. package/dist/core/prototype/collection/upload/module.server.d.ts +24 -0
  431. package/dist/core/prototype/collection/upload/module.server.js +36 -0
  432. package/dist/core/prototype/collection/upload/naming.d.ts +23 -0
  433. package/dist/core/prototype/collection/upload/naming.js +37 -0
  434. package/dist/core/prototype/collection/upload/types.d.ts +102 -0
  435. package/dist/core/prototype/collection/upload/types.js +1 -0
  436. package/dist/core/prototype/collection/upload/util/config.d.ts +16 -0
  437. package/dist/core/prototype/collection/upload/util/converter.server.d.ts +29 -0
  438. package/dist/core/prototype/collection/upload/util/converter.server.js +127 -0
  439. package/dist/core/prototype/collection/upload/util/path.d.ts +69 -0
  440. package/dist/core/prototype/collection/upload/util/path.js +143 -0
  441. package/dist/core/prototype/define.d.ts +112 -0
  442. package/dist/core/prototype/define.js +50 -0
  443. package/dist/core/prototype/doc.d.ts +31 -0
  444. package/dist/core/prototype/doc.js +118 -0
  445. package/dist/core/prototype/index.d.ts +14 -0
  446. package/dist/core/prototype/index.js +14 -0
  447. package/dist/core/prototype/naming.d.ts +22 -0
  448. package/dist/core/prototype/naming.js +23 -0
  449. package/dist/core/prototype/shared/metas/constant.d.ts +16 -0
  450. package/dist/core/prototype/shared/metas/constant.js +16 -0
  451. package/dist/core/prototype/shared/metas/fields.d.ts +8 -0
  452. package/dist/core/prototype/shared/metas/fields.js +27 -0
  453. package/dist/core/prototype/shared/metas/hooks/delete-panel-lock-metas.server.d.ts +9 -0
  454. package/dist/core/prototype/shared/metas/hooks/delete-panel-lock-metas.server.js +20 -0
  455. package/dist/core/prototype/shared/metas/hooks/index.server.d.ts +7 -0
  456. package/dist/core/prototype/shared/metas/hooks/index.server.js +7 -0
  457. package/dist/core/prototype/shared/metas/hooks/stamp-authorship.server.d.ts +2 -0
  458. package/dist/core/prototype/shared/metas/hooks/stamp-authorship.server.js +27 -0
  459. package/dist/core/prototype/shared/metas/lock.d.ts +15 -0
  460. package/dist/core/prototype/shared/metas/lock.js +30 -0
  461. package/dist/core/prototype/shared/metas/lock.server.d.ts +46 -0
  462. package/dist/core/prototype/shared/metas/lock.server.js +91 -0
  463. package/dist/core/prototype/shared/metas/module.d.ts +38 -0
  464. package/dist/core/prototype/shared/metas/module.js +38 -0
  465. package/dist/core/prototype/shared/metas/module.server.d.ts +30 -0
  466. package/dist/core/prototype/shared/metas/module.server.js +38 -0
  467. package/dist/core/prototype/shared/title/augment.d.ts +27 -0
  468. package/dist/core/prototype/shared/title/augment.js +19 -0
  469. package/dist/core/prototype/shared/title/find-title.d.ts +14 -0
  470. package/dist/core/prototype/shared/title/find-title.js +35 -0
  471. package/dist/core/prototype/shared/title/hooks/index.server.d.ts +9 -0
  472. package/dist/core/prototype/shared/title/hooks/index.server.js +9 -0
  473. package/dist/core/prototype/shared/title/hooks/set-document-title.server.d.ts +4 -0
  474. package/dist/core/prototype/shared/title/hooks/set-document-title.server.js +32 -0
  475. package/dist/core/prototype/shared/title/select.d.ts +16 -0
  476. package/dist/core/prototype/shared/title/select.js +24 -0
  477. package/dist/core/prototype/shared/url/augment.d.ts +13 -0
  478. package/dist/core/prototype/shared/url/augment.js +11 -0
  479. package/dist/core/prototype/shared/url/enabled.d.ts +8 -0
  480. package/dist/core/prototype/shared/url/enabled.js +7 -0
  481. package/dist/core/prototype/shared/url/hooks/index.server.d.ts +9 -0
  482. package/dist/core/prototype/shared/url/hooks/index.server.js +9 -0
  483. package/dist/core/prototype/shared/url/hooks/populate-url.server.d.ts +4 -0
  484. package/dist/core/prototype/shared/url/hooks/populate-url.server.js +120 -0
  485. package/dist/core/prototype/shared/versions/augment.d.ts +23 -0
  486. package/dist/core/prototype/shared/versions/augment.js +47 -0
  487. package/dist/core/prototype/shared/versions/auto-saves.server.d.ts +16 -0
  488. package/dist/core/prototype/shared/versions/auto-saves.server.js +29 -0
  489. package/dist/core/prototype/shared/versions/blank.d.ts +13 -0
  490. package/dist/core/prototype/shared/versions/blank.js +15 -0
  491. package/dist/core/prototype/shared/versions/configure.server.d.ts +7 -0
  492. package/dist/core/prototype/shared/versions/configure.server.js +75 -0
  493. package/dist/core/prototype/shared/versions/constant.d.ts +14 -0
  494. package/dist/core/prototype/shared/versions/constant.js +13 -0
  495. package/dist/core/prototype/shared/versions/doc-type.d.ts +8 -0
  496. package/dist/core/prototype/shared/versions/doc-type.js +9 -0
  497. package/dist/core/prototype/shared/versions/enabled.d.ts +10 -0
  498. package/dist/core/prototype/shared/versions/enabled.js +9 -0
  499. package/dist/core/prototype/shared/versions/hooks/define-version-operation.server.d.ts +19 -0
  500. package/dist/core/prototype/shared/versions/hooks/define-version-operation.server.js +37 -0
  501. package/dist/core/prototype/shared/versions/hooks/demote-other-versions.d.ts +17 -0
  502. package/dist/core/prototype/shared/versions/hooks/demote-other-versions.js +37 -0
  503. package/dist/core/prototype/shared/versions/hooks/discard-auto-saves-of.server.d.ts +8 -0
  504. package/dist/core/prototype/shared/versions/hooks/discard-auto-saves-of.server.js +17 -0
  505. package/dist/core/prototype/shared/versions/hooks/expose-version-id.d.ts +12 -0
  506. package/dist/core/prototype/shared/versions/hooks/expose-version-id.js +17 -0
  507. package/dist/core/prototype/shared/versions/hooks/fallback-data-from-original.d.ts +9 -0
  508. package/dist/core/prototype/shared/versions/hooks/fallback-data-from-original.js +31 -0
  509. package/dist/core/prototype/shared/versions/hooks/handle-new-version.server.d.ts +32 -0
  510. package/dist/core/prototype/shared/versions/hooks/handle-new-version.server.js +194 -0
  511. package/dist/core/prototype/shared/versions/hooks/index.server.d.ts +15 -0
  512. package/dist/core/prototype/shared/versions/hooks/index.server.js +15 -0
  513. package/dist/core/prototype/shared/versions/hooks/prevent-last-version-deletion.server.d.ts +7 -0
  514. package/dist/core/prototype/shared/versions/hooks/prevent-last-version-deletion.server.js +21 -0
  515. package/dist/core/prototype/shared/versions/hooks/strip-auto-save-flag.server.d.ts +7 -0
  516. package/dist/core/prototype/shared/versions/hooks/strip-auto-save-flag.server.js +14 -0
  517. package/dist/core/prototype/shared/versions/module.browser.js +1 -0
  518. package/dist/core/prototype/shared/versions/module.server.d.ts +1 -0
  519. package/dist/core/prototype/shared/versions/module.server.js +4 -0
  520. package/dist/core/prototype/shared/versions/naming.d.ts +7 -0
  521. package/dist/core/prototype/shared/versions/naming.js +21 -0
  522. package/dist/core/prototype/shared/versions/read-query.d.ts +27 -0
  523. package/dist/core/prototype/shared/versions/read-query.js +35 -0
  524. package/dist/core/prototype/shared/versions/retire-auto-saves.server.d.ts +16 -0
  525. package/dist/core/prototype/shared/versions/retire-auto-saves.server.js +29 -0
  526. package/dist/core/prototype/shared/versions/strategy.d.ts +86 -0
  527. package/dist/core/prototype/shared/versions/strategy.js +93 -0
  528. package/dist/core/prototype/shared/versions/types.d.ts +37 -0
  529. package/dist/core/prototype/shared/versions/types.js +1 -0
  530. package/dist/core/prototype/shared/versions/validate-config.server.d.ts +8 -0
  531. package/dist/core/prototype/shared/versions/validate-config.server.js +21 -0
  532. package/dist/core/prototype/shared/versions/write-plan.d.ts +30 -0
  533. package/dist/core/prototype/shared/versions/write-plan.js +38 -0
  534. package/dist/core/prototype/types.d.ts +79 -0
  535. package/dist/core/prototype/types.js +1 -0
  536. package/dist/core/prototype/when.d.ts +25 -0
  537. package/dist/core/prototype/when.js +32 -0
  538. package/dist/core/rime.server.d.ts +64 -4363
  539. package/dist/core/rime.server.js +45 -93
  540. package/dist/core/routes/constants.d.ts +12 -0
  541. package/dist/core/routes/constants.js +16 -0
  542. package/dist/core/routes/constants.server.d.ts +5 -0
  543. package/dist/core/routes/constants.server.js +9 -0
  544. package/dist/core/routes/context.server.d.ts +17 -0
  545. package/dist/core/routes/context.server.js +29 -0
  546. package/dist/core/routes/handler.server.d.ts +58 -0
  547. package/dist/core/routes/handler.server.js +107 -0
  548. package/dist/core/routes/panel-navigation.d.ts +18 -0
  549. package/dist/core/routes/panel-navigation.js +64 -0
  550. package/dist/core/routes/util.d.ts +24 -0
  551. package/dist/core/routes/util.js +44 -0
  552. package/dist/fields/blocks/component/AddBlockButton.svelte +1 -1
  553. package/dist/fields/blocks/component/AddBlockButton.svelte.d.ts +1 -1
  554. package/dist/fields/blocks/component/Block.svelte +1 -1
  555. package/dist/fields/blocks/component/Blocks.svelte +1 -1
  556. package/dist/fields/blocks/index.d.ts +2 -1
  557. package/dist/fields/blocks/index.js +18 -2
  558. package/dist/fields/email/index.js +1 -1
  559. package/dist/fields/group/component/Group.svelte +1 -1
  560. package/dist/fields/group/component/Group.svelte.d.ts +1 -1
  561. package/dist/fields/group/index.d.ts +2 -2
  562. package/dist/fields/link/component/RessourceInput.svelte +2 -2
  563. package/dist/fields/link/index.d.ts +1 -1
  564. package/dist/fields/link/index.js +57 -60
  565. package/dist/fields/link/module.server.js +1 -1
  566. package/dist/fields/number/index.d.ts +1 -1
  567. package/dist/fields/relation/component/Cell.svelte +2 -2
  568. package/dist/fields/relation/component/Relation.svelte +13 -22
  569. package/dist/fields/relation/component/default/Default.svelte +4 -3
  570. package/dist/fields/relation/component/types.d.ts +2 -1
  571. package/dist/fields/relation/component/upload/Browse.svelte +4 -4
  572. package/dist/fields/relation/component/upload/Upload.svelte +2 -2
  573. package/dist/fields/relation/index.d.ts +11 -1
  574. package/dist/fields/relation/index.js +81 -63
  575. package/dist/fields/relation/module.server.js +3 -8
  576. package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +2 -2
  577. package/dist/fields/rich-text/core/features/resource/resource-extension.d.ts +1 -1
  578. package/dist/fields/rich-text/core/features/resource/resource.svelte +2 -2
  579. package/dist/fields/rich-text/core/features/upload/upload.svelte +2 -2
  580. package/dist/fields/slug/index.d.ts +1 -1
  581. package/dist/fields/tabs/index.d.ts +1 -1
  582. package/dist/fields/text/index.d.ts +1 -1
  583. package/dist/fields/textarea/index.d.ts +1 -1
  584. package/dist/fields/toggle/index.d.ts +1 -1
  585. package/dist/fields/tree/component/TreeBlock.svelte +1 -1
  586. package/dist/fields/tree/component/TreeBlock.svelte.d.ts +1 -1
  587. package/dist/fields/tree/component/props.d.ts +1 -1
  588. package/dist/fields/tree/index.d.ts +1 -1
  589. package/dist/fields/tree/index.js +12 -1
  590. package/dist/fields/types.d.ts +4 -9
  591. package/dist/index.d.ts +5 -2
  592. package/dist/index.js +2 -1
  593. package/dist/panel/components/Root.svelte +12 -8
  594. package/dist/panel/components/Root.svelte.d.ts +1 -1
  595. package/dist/panel/components/sections/auth/AuthForm.svelte +3 -0
  596. package/dist/panel/components/sections/collection/StatusDot.svelte +2 -1
  597. package/dist/panel/components/sections/collection/StatusDot.svelte.d.ts +1 -1
  598. package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte +1 -1
  599. package/dist/panel/components/sections/collection/folder/FolderEdit.svelte +2 -2
  600. package/dist/panel/components/sections/collection/folder/FolderEdit.svelte.d.ts +1 -1
  601. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +8 -8
  602. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte.d.ts +1 -1
  603. package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +1 -1
  604. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +7 -5
  605. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +1 -1
  606. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +9 -6
  607. package/dist/panel/components/sections/collection/header/DisplayMode.svelte +1 -2
  608. package/dist/panel/components/sections/collection/header/Header.svelte +2 -5
  609. package/dist/panel/components/sections/collection/list/CollectionList.svelte +1 -1
  610. package/dist/panel/components/sections/collection/list/header/Header.svelte +7 -1
  611. package/dist/panel/components/sections/collection/list/row/Row.svelte +9 -3
  612. package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +1 -1
  613. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte +3 -2
  614. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte.d.ts +1 -1
  615. package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +1 -1
  616. package/dist/panel/components/sections/document/AuthFooter.svelte +4 -3
  617. package/dist/panel/components/sections/document/AutoSaveBanner.svelte +115 -0
  618. package/dist/panel/components/sections/document/AutoSaveBanner.svelte.d.ts +16 -0
  619. package/dist/panel/components/sections/document/ButtonStatus.svelte +12 -5
  620. package/dist/panel/components/sections/document/CurrentlyEdited.svelte +10 -27
  621. package/dist/panel/components/sections/document/CurrentlyEdited.svelte.d.ts +6 -5
  622. package/dist/panel/components/sections/document/Document.svelte +220 -18
  623. package/dist/panel/components/sections/document/Document.svelte.d.ts +1 -1
  624. package/dist/panel/components/sections/document/Header.svelte +49 -5
  625. package/dist/panel/components/sections/document/Header.svelte.d.ts +2 -0
  626. package/dist/panel/components/sections/document/Settings.svelte +77 -21
  627. package/dist/panel/components/sections/document/Versions.svelte +140 -51
  628. package/dist/panel/components/sections/document/Versions.svelte.d.ts +11 -8
  629. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +4 -2
  630. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte.d.ts +1 -1
  631. package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte +1 -1
  632. package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte.d.ts +2 -2
  633. package/dist/panel/components/sections/document/versions-list.d.ts +10 -0
  634. package/dist/panel/components/sections/document/versions-list.js +10 -0
  635. package/dist/panel/components/sections/live/Consumer.svelte +1 -1
  636. package/dist/panel/components/sections/live/Consumer.svelte.d.ts +1 -1
  637. package/dist/panel/components/sections/live/LiveEdit.svelte +1 -1
  638. package/dist/panel/components/ui/card-resource/card-resource.svelte +13 -1
  639. package/dist/panel/components/ui/nav/Nav.svelte +3 -3
  640. package/dist/panel/components/ui/nav/NavItem.svelte +5 -3
  641. package/dist/panel/components/ui/nav/UserButton.svelte +3 -3
  642. package/dist/panel/context/collection.svelte.d.ts +2 -2
  643. package/dist/panel/context/collection.svelte.js +6 -7
  644. package/dist/panel/context/config.svelte.d.ts +1 -1
  645. package/dist/panel/context/documentForm.svelte.d.ts +19 -3
  646. package/dist/panel/context/documentForm.svelte.js +214 -41
  647. package/dist/panel/context/live.svelte.d.ts +1 -1
  648. package/dist/panel/context/live.svelte.js +2 -2
  649. package/dist/panel/context/user.svelte.d.ts +1 -1
  650. package/dist/panel/context/versions.svelte.d.ts +8 -0
  651. package/dist/panel/context/versions.svelte.js +34 -0
  652. package/dist/panel/index.d.ts +15 -12
  653. package/dist/panel/index.js +1 -3
  654. package/dist/panel/pages/area/Area.svelte +7 -2
  655. package/dist/panel/pages/area/Area.svelte.d.ts +1 -1
  656. package/dist/panel/pages/area/actions.server.js +31 -16
  657. package/dist/panel/pages/area/load.server.d.ts +1 -1
  658. package/dist/panel/pages/area/load.server.js +10 -24
  659. package/dist/panel/pages/auth/fields.js +1 -1
  660. package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +2 -1
  661. package/dist/panel/pages/auth/forgot-password/load.server.js +3 -2
  662. package/dist/panel/pages/auth/reset-password/ResetPassword.svelte +2 -1
  663. package/dist/panel/pages/auth/reset-password/load.server.js +3 -2
  664. package/dist/panel/pages/auth/sign-in/SignIn.svelte +3 -2
  665. package/dist/panel/pages/auth/sign-in/actions.server.js +2 -2
  666. package/dist/panel/pages/auth/sign-in/load.server.js +4 -3
  667. package/dist/panel/pages/collection/Collection.svelte +15 -138
  668. package/dist/panel/pages/collection/Collection.svelte.d.ts +5 -8
  669. package/dist/panel/pages/collection/CollectionPage.svelte +146 -0
  670. package/dist/panel/pages/collection/CollectionPage.svelte.d.ts +18 -0
  671. package/dist/panel/pages/collection/load.server.d.ts +3 -3
  672. package/dist/panel/pages/collection/load.server.js +12 -9
  673. package/dist/panel/pages/collection-document/CollectionDocument.svelte +7 -2
  674. package/dist/panel/pages/collection-document/CollectionDocument.svelte.d.ts +1 -1
  675. package/dist/panel/pages/collection-document/actions.server.js +28 -10
  676. package/dist/panel/pages/collection-document/load.server.d.ts +1 -1
  677. package/dist/panel/pages/collection-document/load.server.js +19 -24
  678. package/dist/panel/pages/dashboard/Dashboard.svelte +1 -1
  679. package/dist/panel/pages/dashboard/Dashboard.svelte.d.ts +1 -1
  680. package/dist/panel/pages/dashboard/load.server.js +23 -20
  681. package/dist/panel/pages/dashboard/types.d.ts +1 -1
  682. package/dist/panel/pages/live/Live.svelte +3 -8
  683. package/dist/panel/pages/live/load.server.js +1 -1
  684. package/dist/panel/types.d.ts +2 -2
  685. package/dist/panel/util/live.server.d.ts +1 -1
  686. package/dist/panel/util/live.server.js +2 -2
  687. package/dist/panel/util/url.d.ts +0 -6
  688. package/dist/panel/util/url.js +1 -9
  689. package/dist/server.d.ts +6 -5
  690. package/dist/server.js +6 -5
  691. package/dist/types.d.ts +12 -6
  692. package/dist/util/coerce.d.ts +12 -0
  693. package/dist/util/coerce.js +38 -0
  694. package/dist/util/index.d.ts +16 -9
  695. package/dist/util/index.js +14 -12
  696. package/dist/util/object.d.ts +10 -0
  697. package/dist/util/object.js +14 -1
  698. package/dist/util/path.d.ts +16 -0
  699. package/dist/util/path.js +19 -0
  700. package/dist/util/string.d.ts +25 -0
  701. package/dist/util/string.js +30 -0
  702. package/dist/util/types.d.ts +5 -10
  703. package/dist/util/types.js +5 -0
  704. package/package.json +83 -21
  705. package/dist/.rime-modules.d.ts +0 -23
  706. package/dist/.rime-modules.json +0 -1
  707. package/dist/adapter-sqlite/generate-schema/relations/definition.server.d.ts +0 -55
  708. package/dist/adapter-sqlite/generate-schema/relations/definition.server.js +0 -52
  709. package/dist/adapter-sqlite/generate-schema/util.server.d.ts +0 -49
  710. package/dist/adapter-sqlite/generate-schema/util.server.js +0 -58
  711. package/dist/adapter-sqlite/orderBy.server.d.ts +0 -11
  712. package/dist/adapter-sqlite/orderBy.server.js +0 -98
  713. package/dist/adapter-sqlite/url.server.d.ts +0 -14
  714. package/dist/adapter-sqlite/url.server.js +0 -77
  715. package/dist/adapter-sqlite/util.server.d.ts +0 -174
  716. package/dist/adapter-sqlite/util.server.js +0 -357
  717. package/dist/adapter-sqlite/with.server.d.ts +0 -9
  718. package/dist/adapter-sqlite/with.server.js +0 -266
  719. package/dist/core/areas/config/augment-hooks.server.d.ts +0 -10
  720. package/dist/core/areas/config/augment-hooks.server.js +0 -51
  721. package/dist/core/areas/config/augment-metas.d.ts +0 -10
  722. package/dist/core/areas/config/augment-metas.js +0 -13
  723. package/dist/core/areas/config/augment-title.d.ts +0 -9
  724. package/dist/core/areas/config/augment-title.js +0 -8
  725. package/dist/core/areas/config/augment-url.d.ts +0 -10
  726. package/dist/core/areas/config/augment-url.js +0 -14
  727. package/dist/core/areas/config/augment-versions.d.ts +0 -14
  728. package/dist/core/areas/config/augment-versions.js +0 -25
  729. package/dist/core/areas/config/builder.d.ts +0 -3
  730. package/dist/core/areas/config/builder.js +0 -33
  731. package/dist/core/areas/config/builder.server.d.ts +0 -15
  732. package/dist/core/areas/config/builder.server.js +0 -35
  733. package/dist/core/areas/local-api.server.d.ts +0 -80
  734. package/dist/core/areas/local-api.server.js +0 -126
  735. package/dist/core/areas/operations/find.d.ts +0 -15
  736. package/dist/core/areas/operations/find.js +0 -52
  737. package/dist/core/areas/operations/update.d.ts +0 -15
  738. package/dist/core/areas/operations/update.js +0 -101
  739. package/dist/core/areas/rest/get.server.d.ts +0 -18
  740. package/dist/core/areas/rest/get.server.js +0 -45
  741. package/dist/core/areas/rest/index.server.d.ts +0 -6
  742. package/dist/core/areas/rest/index.server.js +0 -3
  743. package/dist/core/areas/rest/update.server.d.ts +0 -18
  744. package/dist/core/areas/rest/update.server.js +0 -43
  745. package/dist/core/collections/auth/constant.server.d.ts +0 -9
  746. package/dist/core/collections/auth/constant.server.js +0 -9
  747. package/dist/core/collections/auth/fields.d.ts +0 -13
  748. package/dist/core/collections/auth/fields.js +0 -55
  749. package/dist/core/collections/auth/hooks/after-create/populate-api-key.server.d.ts +0 -5
  750. package/dist/core/collections/auth/hooks/after-create/populate-api-key.server.js +0 -22
  751. package/dist/core/collections/auth/hooks/after-delete/delete-better-auth-user.server.d.ts +0 -4
  752. package/dist/core/collections/auth/hooks/after-delete/delete-better-auth-user.server.js +0 -25
  753. package/dist/core/collections/auth/hooks/before-create/create-better-auth-user.server.d.ts +0 -4
  754. package/dist/core/collections/auth/hooks/before-create/create-better-auth-user.server.js +0 -187
  755. package/dist/core/collections/auth/hooks/before-delete/prevent-superadmin-deletion.server.d.ts +0 -1
  756. package/dist/core/collections/auth/hooks/before-delete/prevent-superadmin-deletion.server.js +0 -10
  757. package/dist/core/collections/auth/hooks/before-read/remove-private-fields.server.d.ts +0 -1
  758. package/dist/core/collections/auth/hooks/before-read/remove-private-fields.server.js +0 -8
  759. package/dist/core/collections/auth/hooks/before-update/forward-roles.server.d.ts +0 -4
  760. package/dist/core/collections/auth/hooks/before-update/forward-roles.server.js +0 -54
  761. package/dist/core/collections/auth/hooks/before-update/prevent-superadmin-mutation.server.d.ts +0 -5
  762. package/dist/core/collections/auth/hooks/before-update/prevent-superadmin-mutation.server.js +0 -27
  763. package/dist/core/collections/auth/hooks/before-update/prevent-user-mutations.server.d.ts +0 -5
  764. package/dist/core/collections/auth/hooks/before-update/prevent-user-mutations.server.js +0 -18
  765. package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.d.ts +0 -6
  766. package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.js +0 -21
  767. package/dist/core/collections/auth/hooks/hooks.server.d.ts +0 -8
  768. package/dist/core/collections/auth/hooks/hooks.server.js +0 -8
  769. package/dist/core/collections/auth/types.d.ts +0 -8
  770. package/dist/core/collections/auth/util.d.ts +0 -13
  771. package/dist/core/collections/config/augment-auth.d.ts +0 -17
  772. package/dist/core/collections/config/augment-auth.js +0 -88
  773. package/dist/core/collections/config/augment-auth.server.d.ts +0 -3
  774. package/dist/core/collections/config/augment-auth.server.js +0 -23
  775. package/dist/core/collections/config/augment-hooks.server.d.ts +0 -14
  776. package/dist/core/collections/config/augment-hooks.server.js +0 -98
  777. package/dist/core/collections/config/augment-label.d.ts +0 -6
  778. package/dist/core/collections/config/augment-metas.d.ts +0 -9
  779. package/dist/core/collections/config/augment-metas.js +0 -12
  780. package/dist/core/collections/config/augment-nested.d.ts +0 -12
  781. package/dist/core/collections/config/augment-nested.js +0 -15
  782. package/dist/core/collections/config/augment-nested.server.d.ts +0 -12
  783. package/dist/core/collections/config/augment-nested.server.js +0 -18
  784. package/dist/core/collections/config/augment-panel.d.ts +0 -13
  785. package/dist/core/collections/config/augment-panel.js +0 -19
  786. package/dist/core/collections/config/augment-thumbnail.d.ts +0 -16
  787. package/dist/core/collections/config/augment-thumbnail.js +0 -15
  788. package/dist/core/collections/config/augment-title.d.ts +0 -16
  789. package/dist/core/collections/config/augment-title.js +0 -27
  790. package/dist/core/collections/config/augment-upload.d.ts +0 -10
  791. package/dist/core/collections/config/augment-upload.js +0 -59
  792. package/dist/core/collections/config/augment-upload.server.d.ts +0 -7
  793. package/dist/core/collections/config/augment-upload.server.js +0 -19
  794. package/dist/core/collections/config/augment-url.d.ts +0 -10
  795. package/dist/core/collections/config/augment-url.js +0 -14
  796. package/dist/core/collections/config/augment-versions.d.ts +0 -14
  797. package/dist/core/collections/config/augment-versions.js +0 -24
  798. package/dist/core/collections/config/builder.d.ts +0 -3
  799. package/dist/core/collections/config/builder.js +0 -51
  800. package/dist/core/collections/config/builder.server.d.ts +0 -15
  801. package/dist/core/collections/config/builder.server.js +0 -47
  802. package/dist/core/collections/config/types.d.ts +0 -3
  803. package/dist/core/collections/local-api.server.d.ts +0 -166
  804. package/dist/core/collections/local-api.server.js +0 -303
  805. package/dist/core/collections/nested/hooks/index.server.d.ts +0 -4
  806. package/dist/core/collections/nested/hooks/index.server.js +0 -33
  807. package/dist/core/collections/operations/create.d.ts +0 -16
  808. package/dist/core/collections/operations/create.js +0 -119
  809. package/dist/core/collections/operations/delete.d.ts +0 -17
  810. package/dist/core/collections/operations/delete.js +0 -32
  811. package/dist/core/collections/operations/deleteById.d.ts +0 -13
  812. package/dist/core/collections/operations/deleteById.js +0 -48
  813. package/dist/core/collections/operations/duplicate.d.ts +0 -12
  814. package/dist/core/collections/operations/duplicate.js +0 -142
  815. package/dist/core/collections/operations/find.d.ts +0 -21
  816. package/dist/core/collections/operations/find.js +0 -70
  817. package/dist/core/collections/operations/findById.d.ts +0 -16
  818. package/dist/core/collections/operations/findById.js +0 -53
  819. package/dist/core/collections/operations/updateById.d.ts +0 -20
  820. package/dist/core/collections/operations/updateById.js +0 -111
  821. package/dist/core/collections/rest/create.server.d.ts +0 -18
  822. package/dist/core/collections/rest/create.server.js +0 -37
  823. package/dist/core/collections/rest/delete.server.d.ts +0 -18
  824. package/dist/core/collections/rest/delete.server.js +0 -37
  825. package/dist/core/collections/rest/deleteById.server.d.ts +0 -18
  826. package/dist/core/collections/rest/deleteById.server.js +0 -21
  827. package/dist/core/collections/rest/duplicate.server.d.ts +0 -15
  828. package/dist/core/collections/rest/duplicate.server.js +0 -20
  829. package/dist/core/collections/rest/get.server.d.ts +0 -18
  830. package/dist/core/collections/rest/get.server.js +0 -50
  831. package/dist/core/collections/rest/getById.server.d.ts +0 -18
  832. package/dist/core/collections/rest/getById.server.js +0 -35
  833. package/dist/core/collections/rest/index.server.d.ts +0 -16
  834. package/dist/core/collections/rest/index.server.js +0 -16
  835. package/dist/core/collections/rest/updateById.server.d.ts +0 -18
  836. package/dist/core/collections/rest/updateById.server.js +0 -44
  837. package/dist/core/collections/upload/disk/delete.server.d.ts +0 -9
  838. package/dist/core/collections/upload/disk/delete.server.js +0 -77
  839. package/dist/core/collections/upload/disk/save.server.d.ts +0 -32
  840. package/dist/core/collections/upload/disk/save.server.js +0 -190
  841. package/dist/core/collections/upload/hooks/clean-up-files.server.d.ts +0 -10
  842. package/dist/core/collections/upload/hooks/clean-up-files.server.js +0 -17
  843. package/dist/core/collections/upload/hooks/convert-base64.server.d.ts +0 -13
  844. package/dist/core/collections/upload/hooks/convert-base64.server.js +0 -36
  845. package/dist/core/collections/upload/hooks/extract-path.server.d.ts +0 -6
  846. package/dist/core/collections/upload/hooks/extract-path.server.js +0 -25
  847. package/dist/core/collections/upload/hooks/handle-path-creation.server.d.ts +0 -6
  848. package/dist/core/collections/upload/hooks/handle-path-creation.server.js +0 -64
  849. package/dist/core/collections/upload/hooks/populate-sizes.server.d.ts +0 -1
  850. package/dist/core/collections/upload/hooks/populate-sizes.server.js +0 -45
  851. package/dist/core/collections/upload/hooks/process-file-upload.server.d.ts +0 -20
  852. package/dist/core/collections/upload/hooks/process-file-upload.server.js +0 -60
  853. package/dist/core/collections/upload/hooks/update-directory-children.server.d.ts +0 -2
  854. package/dist/core/collections/upload/hooks/update-directory-children.server.js +0 -41
  855. package/dist/core/collections/upload/upload.d.ts +0 -16
  856. package/dist/core/collections/upload/util/config.d.ts +0 -16
  857. package/dist/core/collections/upload/util/converter.server.d.ts +0 -16
  858. package/dist/core/collections/upload/util/converter.server.js +0 -105
  859. package/dist/core/collections/upload/util/path.d.ts +0 -65
  860. package/dist/core/collections/upload/util/path.js +0 -139
  861. package/dist/core/collections/versions/operations.d.ts +0 -93
  862. package/dist/core/collections/versions/operations.js +0 -117
  863. package/dist/core/config/auth/better-auth-hooks.server.js +0 -138
  864. package/dist/core/config/auth/better-auth.server.d.ts +0 -2121
  865. package/dist/core/config/auth/better-auth.server.js +0 -81
  866. package/dist/core/config/client/augment-directories.d.ts +0 -6
  867. package/dist/core/config/client/augment-directories.js +0 -11
  868. package/dist/core/config/client/augment-panel.d.ts +0 -35
  869. package/dist/core/config/client/augment-panel.js +0 -22
  870. package/dist/core/config/client/augment-plugins.d.ts +0 -4
  871. package/dist/core/config/client/augment-plugins.js +0 -13
  872. package/dist/core/config/client/augment-staff.d.ts +0 -7
  873. package/dist/core/config/client/augment-staff.js +0 -6
  874. package/dist/core/config/client/build-config.d.ts +0 -41
  875. package/dist/core/config/client/build-config.js +0 -13
  876. package/dist/core/config/client/index.d.ts +0 -4
  877. package/dist/core/config/client/index.js +0 -4
  878. package/dist/core/config/config-context.server.d.ts +0 -70
  879. package/dist/core/config/config-context.server.js +0 -113
  880. package/dist/core/config/server/augment-cors.server.d.ts +0 -4
  881. package/dist/core/config/server/augment-cors.server.js +0 -7
  882. package/dist/core/config/server/augment-directories.server.d.ts +0 -6
  883. package/dist/core/config/server/augment-directories.server.js +0 -37
  884. package/dist/core/config/server/augment-panel-access.server.d.ts +0 -28
  885. package/dist/core/config/server/augment-panel-access.server.js +0 -8
  886. package/dist/core/config/server/augment-plugins.server.d.ts +0 -5
  887. package/dist/core/config/server/augment-plugins.server.js +0 -45
  888. package/dist/core/config/server/augment-staff.server.d.ts +0 -7
  889. package/dist/core/config/server/augment-staff.server.js +0 -6
  890. package/dist/core/config/server/build-config.server.d.ts +0 -123
  891. package/dist/core/config/server/build-config.server.js +0 -28
  892. package/dist/core/config/server/index.server.d.ts +0 -9
  893. package/dist/core/config/server/index.server.js +0 -11
  894. package/dist/core/config/server/validate.server.d.ts +0 -3
  895. package/dist/core/config/server/validate.server.js +0 -234
  896. package/dist/core/config/server/write.server.js +0 -77
  897. package/dist/core/config/shared/augment-icons.d.ts +0 -9
  898. package/dist/core/config/shared/augment-icons.js +0 -11
  899. package/dist/core/config/shared/augment-prototypes.d.ts +0 -8
  900. package/dist/core/config/shared/augment-prototypes.js +0 -7
  901. package/dist/core/config/shared/compile.d.ts +0 -19
  902. package/dist/core/config/shared/compile.js +0 -26
  903. package/dist/core/config/shared/find-thumbnail.d.ts +0 -9
  904. package/dist/core/config/shared/find-thumbnail.js +0 -34
  905. package/dist/core/config/shared/find-title.d.ts +0 -14
  906. package/dist/core/config/shared/find-title.js +0 -35
  907. package/dist/core/config/shared/get-staff-collection.d.ts +0 -22
  908. package/dist/core/config/shared/get-staff-collection.js +0 -55
  909. package/dist/core/config/shared/upload-directories.d.ts +0 -7
  910. package/dist/core/config/shared/upload-directories.js +0 -55
  911. package/dist/core/config/shared/versions-alias.server.d.ts +0 -10
  912. package/dist/core/config/shared/versions-alias.server.js +0 -59
  913. package/dist/core/constant.d.ts +0 -52
  914. package/dist/core/constant.js +0 -51
  915. package/dist/core/constant.server.d.ts +0 -2
  916. package/dist/core/constant.server.js +0 -3
  917. package/dist/core/dev/cache/index.server.d.ts +0 -11
  918. package/dist/core/dev/cache/index.server.js +0 -37
  919. package/dist/core/dev/cli/build/index.js +0 -70
  920. package/dist/core/dev/cli/build/templates.js +0 -43
  921. package/dist/core/dev/cli/clear/index.server.js +0 -42
  922. package/dist/core/dev/cli/generate/index.server.js +0 -98
  923. package/dist/core/dev/cli/generate-manifest/index.server.d.ts +0 -17
  924. package/dist/core/dev/cli/generate-manifest/index.server.js +0 -221
  925. package/dist/core/dev/cli/init/index.server.js +0 -240
  926. package/dist/core/dev/cli/init/templates.d.ts +0 -16
  927. package/dist/core/dev/cli/init/templates.js +0 -105
  928. package/dist/core/dev/cli/util/log.server.d.ts +0 -1
  929. package/dist/core/dev/cli/util/log.server.js +0 -4
  930. package/dist/core/dev/constants.d.ts +0 -29
  931. package/dist/core/dev/constants.js +0 -67
  932. package/dist/core/dev/generate/routes/common.server.d.ts +0 -17
  933. package/dist/core/dev/generate/routes/common.server.js +0 -500
  934. package/dist/core/dev/generate/routes/custom-css.server.js +0 -86
  935. package/dist/core/dev/generate/routes/index.server.d.ts +0 -12
  936. package/dist/core/dev/generate/routes/index.server.js +0 -83
  937. package/dist/core/dev/generate/routes/util.server.d.ts +0 -42
  938. package/dist/core/dev/generate/routes/util.server.js +0 -101
  939. package/dist/core/dev/generate/runtime/index.server.d.ts +0 -44
  940. package/dist/core/dev/generate/runtime/index.server.js +0 -92
  941. package/dist/core/dev/generate/runtime/parse-exports.server.d.ts +0 -7
  942. package/dist/core/dev/generate/runtime/parse-exports.server.js +0 -40
  943. package/dist/core/dev/generate/sanitize/index.server.js +0 -834
  944. package/dist/core/dev/generate/types/index.server.js +0 -368
  945. package/dist/core/dev/vite/index.server.js +0 -308
  946. package/dist/core/ensure.server.d.ts +0 -34
  947. package/dist/core/ensure.server.js +0 -91
  948. package/dist/core/handlers/auth.server.js +0 -154
  949. package/dist/core/handlers/cors.server.js +0 -73
  950. package/dist/core/handlers/index.d.ts +0 -3
  951. package/dist/core/handlers/index.js +0 -16
  952. package/dist/core/handlers/main.server.d.ts +0 -4
  953. package/dist/core/handlers/main.server.js +0 -14
  954. package/dist/core/handlers/plugins.server.js +0 -10
  955. package/dist/core/handlers/routes.server.d.ts +0 -71
  956. package/dist/core/handlers/routes.server.js +0 -88
  957. package/dist/core/naming.d.ts +0 -82
  958. package/dist/core/naming.js +0 -86
  959. package/dist/core/operations/blocks/diff.server.d.ts +0 -15
  960. package/dist/core/operations/blocks/diff.server.js +0 -82
  961. package/dist/core/operations/blocks/extract.server.d.ts +0 -9
  962. package/dist/core/operations/blocks/extract.server.js +0 -33
  963. package/dist/core/operations/blocks/index.server.d.ts +0 -26
  964. package/dist/core/operations/blocks/index.server.js +0 -71
  965. package/dist/core/operations/configMap/buildTreeMap.d.ts +0 -4
  966. package/dist/core/operations/configMap/index.d.ts +0 -6
  967. package/dist/core/operations/configMap/index.js +0 -54
  968. package/dist/core/operations/extract-data.server.d.ts +0 -37
  969. package/dist/core/operations/extract-data.server.js +0 -101
  970. package/dist/core/operations/hooks/before-create/merge-with-blank.server.d.ts +0 -1
  971. package/dist/core/operations/hooks/before-create/merge-with-blank.server.js +0 -24
  972. package/dist/core/operations/hooks/before-operation/authorize.server.d.ts +0 -1
  973. package/dist/core/operations/hooks/before-operation/authorize.server.js +0 -32
  974. package/dist/core/operations/hooks/before-read/populate-url.server.d.ts +0 -4
  975. package/dist/core/operations/hooks/before-read/populate-url.server.js +0 -107
  976. package/dist/core/operations/hooks/before-read/process-document-fields.server.d.ts +0 -1
  977. package/dist/core/operations/hooks/before-read/process-document-fields.server.js +0 -58
  978. package/dist/core/operations/hooks/before-read/set-document-locale.server.d.ts +0 -1
  979. package/dist/core/operations/hooks/before-read/set-document-locale.server.js +0 -15
  980. package/dist/core/operations/hooks/before-read/set-document-thumbnail.server.d.ts +0 -1
  981. package/dist/core/operations/hooks/before-read/set-document-thumbnail.server.js +0 -34
  982. package/dist/core/operations/hooks/before-read/set-document-title.server.d.ts +0 -1
  983. package/dist/core/operations/hooks/before-read/set-document-title.server.js +0 -29
  984. package/dist/core/operations/hooks/before-read/set-document-type.server.d.ts +0 -1
  985. package/dist/core/operations/hooks/before-read/set-document-type.server.js +0 -14
  986. package/dist/core/operations/hooks/before-read/sort-document-props.server.d.ts +0 -1
  987. package/dist/core/operations/hooks/before-read/sort-document-props.server.js +0 -63
  988. package/dist/core/operations/hooks/before-update/define-version-operation.server.d.ts +0 -1
  989. package/dist/core/operations/hooks/before-update/define-version-operation.server.js +0 -18
  990. package/dist/core/operations/hooks/before-update/get-original-document.server.d.ts +0 -1
  991. package/dist/core/operations/hooks/before-update/get-original-document.server.js +0 -37
  992. package/dist/core/operations/hooks/before-upsert/data-config-map.server.d.ts +0 -1
  993. package/dist/core/operations/hooks/before-upsert/data-config-map.server.js +0 -12
  994. package/dist/core/operations/hooks/before-upsert/handle-new-version.server.d.ts +0 -5
  995. package/dist/core/operations/hooks/before-upsert/handle-new-version.server.js +0 -98
  996. package/dist/core/operations/hooks/before-upsert/original-config-map.server.d.ts +0 -1
  997. package/dist/core/operations/hooks/before-upsert/original-config-map.server.js +0 -16
  998. package/dist/core/operations/hooks/before-upsert/set-default-values.server.d.ts +0 -10
  999. package/dist/core/operations/hooks/before-upsert/set-default-values.server.js +0 -70
  1000. package/dist/core/operations/hooks/before-upsert/validate-fields.server.d.ts +0 -1
  1001. package/dist/core/operations/hooks/before-upsert/validate-fields.server.js +0 -150
  1002. package/dist/core/operations/hooks/index.server.d.ts +0 -128
  1003. package/dist/core/operations/hooks/index.server.js +0 -45
  1004. package/dist/core/operations/relations/diff.server.d.ts +0 -14
  1005. package/dist/core/operations/relations/diff.server.js +0 -47
  1006. package/dist/core/operations/relations/extract.server.d.ts +0 -11
  1007. package/dist/core/operations/relations/extract.server.js +0 -59
  1008. package/dist/core/operations/relations/index.server.d.ts +0 -25
  1009. package/dist/core/operations/relations/index.server.js +0 -68
  1010. package/dist/core/operations/shared/fallback-data-from-original.d.ts +0 -9
  1011. package/dist/core/operations/shared/fallback-data-from-original.js +0 -31
  1012. package/dist/core/operations/tree/diff.server.d.ts +0 -20
  1013. package/dist/core/operations/tree/diff.server.js +0 -64
  1014. package/dist/core/operations/tree/extract.server.d.ts +0 -9
  1015. package/dist/core/operations/tree/extract.server.js +0 -34
  1016. package/dist/core/operations/tree/index.server.d.ts +0 -12
  1017. package/dist/core/operations/tree/index.server.js +0 -52
  1018. package/dist/core/plugins/api-init/index.d.ts +0 -2
  1019. package/dist/core/plugins/api-init/index.js +0 -1
  1020. package/dist/core/plugins/api-init/module.server.js +0 -83
  1021. package/dist/core/plugins/mailer/index.d.ts +0 -2
  1022. package/dist/core/plugins/mailer/index.js +0 -1
  1023. package/dist/core/plugins/mailer/module.server.js +0 -32
  1024. package/dist/core/plugins/sse/broadcast.d.ts +0 -13
  1025. package/dist/core/plugins/sse/broadcast.js +0 -30
  1026. package/dist/core/plugins/sse/module.server.d.ts +0 -16
  1027. package/dist/core/plugins/sse/module.server.js +0 -52
  1028. package/dist/core/types/doc.d.ts +0 -74
  1029. package/dist/core/types/index.d.ts +0 -5
  1030. package/dist/panel/navigation.d.ts +0 -13
  1031. package/dist/panel/navigation.js +0 -59
  1032. package/dist/panel/pages/area/AreaVersionsDoc.svelte +0 -24
  1033. package/dist/panel/pages/area/AreaVersionsDoc.svelte.d.ts +0 -7
  1034. package/dist/panel/pages/collection-document/CollectionDocVersions.svelte +0 -29
  1035. package/dist/panel/pages/collection-document/CollectionDocVersions.svelte.d.ts +0 -7
  1036. package/dist/util/access/index.d.ts +0 -73
  1037. package/dist/util/cases.d.ts +0 -39
  1038. package/dist/util/cases.js +0 -58
  1039. package/dist/util/doc.d.ts +0 -50
  1040. package/dist/util/doc.js +0 -140
  1041. package/dist/util/validate.js +0 -171
  1042. /package/dist/{util/access/index.js → core/auth/access.js} +0 -0
  1043. /package/dist/core/{config/auth/better-auth-hooks.server.d.ts → auth/better-auth/hooks.server.d.ts} +0 -0
  1044. /package/dist/core/{config/auth/better-auth-permissions.d.ts → auth/better-auth/permissions.d.ts} +0 -0
  1045. /package/dist/core/{config/auth/better-auth-permissions.js → auth/better-auth/permissions.js} +0 -0
  1046. /package/dist/core/{handlers/auth.server.d.ts → auth/handler/index.server.d.ts} +0 -0
  1047. /package/dist/core/{areas/config → auth}/types.js +0 -0
  1048. /package/dist/core/{collections/auth → auth}/util.js +0 -0
  1049. /package/dist/core/{handlers/cors.server.d.ts → cors/handler.server.d.ts} +0 -0
  1050. /package/dist/core/dev/cli/{build/index.d.ts → commands/build.d.ts} +0 -0
  1051. /package/dist/core/dev/cli/{clear/index.server.d.ts → commands/clear.server.d.ts} +0 -0
  1052. /package/dist/core/dev/cli/{generate/index.server.d.ts → commands/generate.server.d.ts} +0 -0
  1053. /package/dist/core/dev/cli/{init/index.server.d.ts → commands/init.server.d.ts} +0 -0
  1054. /package/dist/core/dev/cli/{build/templates.d.ts → templates/build.d.ts} +0 -0
  1055. /package/dist/core/dev/{generate → codegen}/routes/custom-css.server.d.ts +0 -0
  1056. /package/dist/core/dev/{generate → codegen}/sanitize/index.server.d.ts +0 -0
  1057. /package/dist/core/dev/{generate → codegen}/types/index.server.d.ts +0 -0
  1058. /package/dist/core/{config/server/write.server.d.ts → dev/config-memo.server.d.ts} +0 -0
  1059. /package/dist/core/dev/{vite/index.server.d.ts → vite.server.d.ts} +0 -0
  1060. /package/dist/core/{collections/auth → fields}/types.js +0 -0
  1061. /package/dist/{util → core/fields}/validate.d.ts +0 -0
  1062. /package/dist/core/{collections/config → locale}/types.js +0 -0
  1063. /package/dist/core/{logger/index.server.d.ts → logger.server.d.ts} +0 -0
  1064. /package/dist/core/{logger/index.server.js → logger.server.js} +0 -0
  1065. /package/dist/core/{operations/configMap → panel}/types.js +0 -0
  1066. /package/dist/core/{operations/configMap/buildTreeMap.js → pipeline/config-map/build-tree-map.js} +0 -0
  1067. /package/dist/core/{operations/configMap → pipeline/config-map}/types.d.ts +0 -0
  1068. /package/dist/core/{types/doc.js → pipeline/config-map/types.js} +0 -0
  1069. /package/dist/core/plugins/api-init/{module.server.d.ts → index.server.d.ts} +0 -0
  1070. /package/dist/core/{types/index.js → plugins/cache/types.js} +0 -0
  1071. /package/dist/core/plugins/mailer/{module.server.d.ts → index.server.d.ts} +0 -0
  1072. /package/dist/core/{handlers → plugins}/plugins.server.d.ts +0 -0
  1073. /package/dist/core/{areas/config → prototype/area}/types.d.ts +0 -0
  1074. /package/dist/core/{collections/config → prototype/collection}/augment-label.js +0 -0
  1075. /package/dist/core/{collections → prototype/collection}/upload/util/client.d.ts +0 -0
  1076. /package/dist/core/{collections → prototype/collection}/upload/util/client.js +0 -0
  1077. /package/dist/core/{collections → prototype/collection}/upload/util/config.js +0 -0
  1078. /package/dist/core/{collections → prototype/collection}/upload/util/mime.d.ts +0 -0
  1079. /package/dist/core/{collections → prototype/collection}/upload/util/mime.js +0 -0
@@ -0,0 +1,106 @@
1
+ import { logger } from '../../../../logger.server.js';
2
+ import { isFormField } from '../../../../fields/util.js';
3
+ import { existsSync, unlink, unlinkSync } from 'fs';
4
+ import path from 'path';
5
+ /**
6
+ * Whether this collection's **own table** holds `name` — which is the only question this file has
7
+ * about where a filename can be.
8
+ *
9
+ * A config with a versions table keeps only its `$root()` fields on its own table; everything else is the
10
+ * versions's, and the versions table is a registered collection in its own right. `filename` is not a root
11
+ * field (only `_path` is, on upload), so on a versioned upload collection it lives on the versions table
12
+ * and the base table has no such column at all.
13
+ *
14
+ * This replaces a pair of tests that named the versions feature — `!hasVersionsSuffix(slug)` to
15
+ * drop the version tables from the scan, then `versions ? withVersionsSuffix(slug) : slug` to map each
16
+ * base onto one. Same set of slugs, arrived at by asking the schema instead of reading a suffix,
17
+ * and with no feature importing another feature to do it.
18
+ */
19
+ const ownsField = (rime, config, name) => {
20
+ const field = config.fields.filter(isFormField).find((one) => one.name === name);
21
+ if (!field)
22
+ return false;
23
+ return config._versions ? !!field.get.root : true;
24
+ };
25
+ /**
26
+ * A given filename on disk can be shared by several document rows across unrelated upload
27
+ * collections — saveFile dedupes any byte-identical upload to a single file (see isSameFile).
28
+ *
29
+ * The scan goes table by table, not collection by collection, and that distinction is load-bearing
30
+ * for a collection whose content lives on a versions table: querying the *collection* returns one row per
31
+ * document (the read joins in a single content row), so a filename referenced only by an older
32
+ * revision would be missed and the file deleted out from under it. Querying the versions table directly
33
+ * sees every revision. `ownsField` above is what picks the right table without knowing why there
34
+ * are two.
35
+ *
36
+ * `selfId` must already be in whichever id-space `selfSlug` resolves to — a versions table row's own id,
37
+ * not the base row's (see `contentId` in mergeContentRow).
38
+ *
39
+ * Every configured locale is checked since a localized collection's query can otherwise miss rows
40
+ * in non-default locales, even though `filename` itself is never a localized field.
41
+ */
42
+ const isFilenameStillReferenced = async (args) => {
43
+ const { rime, filename, selfSlug, selfId } = args;
44
+ // Every table a row carrying this filename could be in. `upload` narrows it to collections that
45
+ // store files at all; `ownsField` picks the one table of each that actually has the column.
46
+ const targetSlugs = Object.values(rime.config.collections)
47
+ .filter((c) => c?.upload && ownsField(rime, c, 'filename'))
48
+ .map((c) => c.slug);
49
+ const locales = rime.config.getLocalesCodes();
50
+ const localesToQuery = locales.length ? locales : [undefined];
51
+ for (const slug of targetSlugs) {
52
+ for (const locale of localesToQuery) {
53
+ const docs = await rime.collection(slug).find({
54
+ query: `where[filename][equals]=${filename}`,
55
+ latest: true,
56
+ locale,
57
+ limit: slug === selfSlug ? 2 : 1
58
+ });
59
+ const referenced = docs.some((doc) => slug !== selfSlug || doc.id !== selfId);
60
+ if (referenced)
61
+ return true;
62
+ }
63
+ }
64
+ return false;
65
+ };
66
+ export const cleanUpDocumentFile = async (args) => {
67
+ //
68
+ const { config, rime, id } = args;
69
+ const doc = await rime.collection(config.slug).findById({ id, latest: true });
70
+ try {
71
+ if (!doc.filename)
72
+ return doc;
73
+ const stillReferenced = await isFilenameStillReferenced({
74
+ rime,
75
+ filename: doc.filename,
76
+ // The table this document's own filename is in — the same expression `persistRelational`
77
+ // uses, read off the config rather than asked of the adapter.
78
+ selfSlug: config._versions?.slug ?? config.slug,
79
+ // The content row's id — `contentId` rather than `versionId`, so upload names no
80
+ // other feature. See mergeContentRow.
81
+ selfId: doc.contentId ?? doc.id
82
+ });
83
+ if (stillReferenced)
84
+ return doc;
85
+ const filePath = path.resolve(process.cwd(), `static/medias/${doc.filename}`);
86
+ // Delete original
87
+ unlinkSync(filePath);
88
+ const unlinkPath = (sizePath) => {
89
+ if (existsSync(sizePath)) {
90
+ unlink(sizePath, () => { });
91
+ }
92
+ };
93
+ // Process all entries in doc.sizes
94
+ if (doc.sizes) {
95
+ Object.values(doc.sizes).forEach((path) => {
96
+ if (typeof path === 'string') {
97
+ unlinkPath(`static/${path}`);
98
+ }
99
+ });
100
+ }
101
+ }
102
+ catch (err) {
103
+ logger.error(err);
104
+ }
105
+ return doc;
106
+ };
@@ -0,0 +1,32 @@
1
+ import type { ImageSizesConfig } from '../types.js';
2
+ import type { Dic } from '../../../../../util/types.js';
3
+ /**
4
+ * Saves a file to disk with deduplication and generates image sizes if needed
5
+ * Checks if identical file already exists before creating a new one
6
+ * @example
7
+ * const file = event.request.formData.get('file');
8
+ * const { filename, imageSizes } = await saveFile(file, config.imageSizes);
9
+ */
10
+ export declare const saveFile: (file: File, imagesSizes: ImageSizesConfig[] | false) => Promise<{
11
+ filename: string;
12
+ imageSizes: Record<string, string>;
13
+ }>;
14
+ /**
15
+ * Generates various image sizes based on configuration
16
+ * Creates resized versions and format conversions as specified
17
+ * @example
18
+ * const sizes = await generateSizes({
19
+ * name: 'image',
20
+ * extension: 'jpg',
21
+ * sizes: imageSizesConfig,
22
+ * buffer: imageBuffer
23
+ * });
24
+ */
25
+ export declare const generateSizes: ({ sizes, buffer, name, extension }: GenerateSizeArgs) => Promise<Dic>;
26
+ type GenerateSizeArgs = {
27
+ sizes: ImageSizesConfig[];
28
+ buffer: Buffer;
29
+ name: string;
30
+ extension: string;
31
+ };
32
+ export {};
@@ -0,0 +1,190 @@
1
+ import { RimeError } from '../../../../errors/index.js';
2
+ import { normalizeFileName } from '../../../../../util/file.js';
3
+ import { pick } from '../../../../../util/object.js';
4
+ import { toCamelCase } from '../../../../../util/string.js';
5
+ import crypto from 'crypto';
6
+ import { existsSync, readFileSync, statSync, writeFileSync } from 'fs';
7
+ import path from 'path';
8
+ import sharp from 'sharp';
9
+ /**
10
+ * Compares a buffer with an existing file to determine if they are identical
11
+ * Uses file size as a quick check before comparing content hashes
12
+ * @example
13
+ * const identical = isSameFile(fileBuffer, '/path/to/file.jpg');
14
+ * if (identical) {
15
+ * console.log('Files are the same');
16
+ * }
17
+ */
18
+ const isSameFile = (buffer, filePath) => {
19
+ try {
20
+ // Check if file exists
21
+ if (!existsSync(filePath))
22
+ return false;
23
+ // Compare file sizes first (quick check)
24
+ const stats = statSync(filePath);
25
+ if (stats.size !== buffer.length)
26
+ return false;
27
+ // Compare content hash (more thorough check)
28
+ const existingFileBuffer = readFileSync(filePath);
29
+ const existingFileHash = crypto.createHash('md5').update(existingFileBuffer).digest('hex');
30
+ const newFileHash = crypto.createHash('md5').update(buffer).digest('hex');
31
+ return existingFileHash === newFileHash;
32
+ }
33
+ catch {
34
+ // If any error occurs during comparison, assume files are different
35
+ return false;
36
+ }
37
+ };
38
+ /**
39
+ * Verifies if all image size variations already exist for a given base filename
40
+ * Returns a record of size names to filenames if all exist, empty object otherwise
41
+ * @example
42
+ * const sizes = checkImageSizesExist('image', 'jpg', imageSizesConfig);
43
+ * if (Object.keys(sizes).length > 0) {
44
+ * console.log('All image sizes already exist');
45
+ * }
46
+ */
47
+ const checkImageSizesExist = (name, extension, imagesSizes) => {
48
+ const sizes = {};
49
+ for (const size of imagesSizes) {
50
+ const whString = `${size.width}x${size.height}`;
51
+ if (!size.out || !size.out.length) {
52
+ // Check if the resized image exists
53
+ const filename = `${name}-${toCamelCase(size.name)}-${whString}.${extension}`;
54
+ const filePath = path.resolve(process.cwd(), `static/medias/${filename}`);
55
+ if (!existsSync(filePath)) {
56
+ return {}; // If any size doesn't exist, return empty object
57
+ }
58
+ sizes[toCamelCase(size.name)] = filename;
59
+ }
60
+ else {
61
+ // Check if all format conversions exist
62
+ const convertedFilenames = [];
63
+ for (const format of size.out) {
64
+ const filename = `${name}-${toCamelCase(size.name)}-${whString}.${format}`;
65
+ const filePath = path.resolve(process.cwd(), `static/medias/${filename}`);
66
+ if (!existsSync(filePath)) {
67
+ return {}; // If any format doesn't exist, return empty object
68
+ }
69
+ convertedFilenames.push(filename);
70
+ }
71
+ sizes[toCamelCase(size.name)] = convertedFilenames.join('|');
72
+ }
73
+ }
74
+ return sizes;
75
+ };
76
+ /**
77
+ * Saves a file to disk with deduplication and generates image sizes if needed
78
+ * Checks if identical file already exists before creating a new one
79
+ * @example
80
+ * const file = event.request.formData.get('file');
81
+ * const { filename, imageSizes } = await saveFile(file, config.imageSizes);
82
+ */
83
+ export const saveFile = async (file, imagesSizes) => {
84
+ const { name: initialName, extension } = normalizeFileName(file.name);
85
+ let name = initialName;
86
+ let sizes = {};
87
+ let filename = `${name}.${extension}`;
88
+ let filePath = path.resolve(process.cwd(), `static/medias/${filename}`);
89
+ // Get buffer once to avoid multiple arrayBuffer() calls
90
+ const buffer = Buffer.from(await file.arrayBuffer());
91
+ // Check if file exists and is identical
92
+ if (existsSync(filePath) && isSameFile(buffer, filePath)) {
93
+ // File already exists and is identical
94
+ // Check if image sizes already exist
95
+ if (imagesSizes && file.type.includes('image') && !file.type.includes('svg')) {
96
+ const existingSizes = checkImageSizesExist(name, extension, imagesSizes);
97
+ // If all sizes exist, use them
98
+ if (Object.keys(existingSizes).length > 0) {
99
+ return { filename, imageSizes: existingSizes };
100
+ }
101
+ // Otherwise, we'll need to generate the sizes
102
+ sizes = await generateSizes({
103
+ name,
104
+ extension,
105
+ sizes: imagesSizes,
106
+ buffer
107
+ });
108
+ }
109
+ return { filename, imageSizes: sizes };
110
+ }
111
+ // File doesn't exist or is different, find a unique name
112
+ while (existsSync(filePath)) {
113
+ name += `-${new Date().getTime().toString()}`;
114
+ filename = `${name}.${extension}`;
115
+ filePath = path.resolve(process.cwd(), `static/medias/${filename}`);
116
+ }
117
+ try {
118
+ writeFileSync(filePath, buffer);
119
+ if (imagesSizes && file.type.includes('image') && !file.type.includes('svg')) {
120
+ sizes = await generateSizes({
121
+ name,
122
+ extension,
123
+ sizes: imagesSizes,
124
+ buffer
125
+ });
126
+ }
127
+ }
128
+ catch (error) {
129
+ throw new RimeError(RimeError.UPLOAD, `Error while processing file: ${error.message}`);
130
+ }
131
+ return { filename, imageSizes: sizes };
132
+ };
133
+ /**
134
+ * Generates various image sizes based on configuration
135
+ * Creates resized versions and format conversions as specified
136
+ * @example
137
+ * const sizes = await generateSizes({
138
+ * name: 'image',
139
+ * extension: 'jpg',
140
+ * sizes: imageSizesConfig,
141
+ * buffer: imageBuffer
142
+ * });
143
+ */
144
+ export const generateSizes = async ({ sizes, buffer, name, extension }) => {
145
+ const imageSizes = {};
146
+ for (const size of sizes) {
147
+ const wh = pick(['width', 'height'], size);
148
+ const resizedImage = sharp(buffer).resize(wh);
149
+ const whString = `${wh.width || ''}${wh.height && wh.width ? 'x' : ''}${wh.height || ''}`;
150
+ // If no output formats specified, keep original format
151
+ if (!size.out?.length) {
152
+ let resizedBuffer;
153
+ const shouldApplyCompression = extension === 'jpg' || extension === 'webp';
154
+ if (shouldApplyCompression) {
155
+ const compression = size.compression || 60;
156
+ if (extension === 'jpg') {
157
+ resizedBuffer = await resizedImage.jpeg({ quality: compression }).toBuffer();
158
+ }
159
+ else {
160
+ resizedBuffer = await resizedImage.webp({ quality: compression }).toBuffer();
161
+ }
162
+ }
163
+ else {
164
+ resizedBuffer = await resizedImage.toBuffer();
165
+ }
166
+ const filename = `${name}-${toCamelCase(size.name)}-${whString}.${extension}`;
167
+ const filePath = path.resolve(process.cwd(), `static/medias/${filename}`);
168
+ writeFileSync(filePath, resizedBuffer);
169
+ imageSizes[toCamelCase(size.name)] = filename;
170
+ continue;
171
+ }
172
+ // Handle format conversions
173
+ const convertedFiles = await Promise.all(size.out.map(async (format) => {
174
+ const compression = size.compression || 60;
175
+ let convertedImage;
176
+ if (format === 'jpg') {
177
+ convertedImage = await resizedImage.jpeg({ quality: compression }).toBuffer();
178
+ }
179
+ else {
180
+ convertedImage = await resizedImage.webp({ quality: compression }).toBuffer();
181
+ }
182
+ const filename = `${name}-${toCamelCase(size.name)}-${whString}.${format}`;
183
+ const filePath = path.resolve(process.cwd(), `static/medias/${filename}`);
184
+ writeFileSync(filePath, convertedImage);
185
+ return filename;
186
+ }));
187
+ imageSizes[toCamelCase(size.name)] = convertedFiles.join('|');
188
+ }
189
+ return imageSizes;
190
+ };
@@ -0,0 +1,14 @@
1
+ import type { DocTypeContribution } from '../../../dev/codegen/types/contributions.server.js';
2
+ import type { ImageSizesConfig } from './types.js';
3
+ import type { Dic } from '../../../../util/types.js';
4
+ /**
5
+ * What an upload document's type carries, and which of its fields describe themselves.
6
+ *
7
+ * Three reads of `collection.upload` in `dev/codegen/types` — the `UploadDoc` intersection, the
8
+ * `sizes` object, and the filter that keeps the per-size fields from appearing twice.
9
+ */
10
+ export declare const uploadDocType: (config: {
11
+ upload?: {
12
+ imageSizes?: ImageSizesConfig[];
13
+ };
14
+ } | Dic) => DocTypeContribution;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * What an upload document's type carries, and which of its fields describe themselves.
3
+ *
4
+ * Three reads of `collection.upload` in `dev/codegen/types` — the `UploadDoc` intersection, the
5
+ * `sizes` object, and the filter that keeps the per-size fields from appearing twice.
6
+ */
7
+ export const uploadDocType = (config) => {
8
+ const sizes = config.upload?.imageSizes ?? [];
9
+ const contribution = { extends: ['UploadDoc'] };
10
+ if (!sizes.length)
11
+ return contribution;
12
+ return {
13
+ ...contribution,
14
+ members: [sizesMember(sizes)],
15
+ /**
16
+ * Each image size becomes a column named after it, and its type comes from the `sizes` object
17
+ * above rather than from the field's own builder — so the field itself generates nothing.
18
+ * Every other field, blocks and tabs included, generates its type as on any collection.
19
+ */
20
+ fields: (field) => !sizes.some((s) => s.name === field.name)
21
+ };
22
+ };
23
+ /** One member holding every generated size, matching what `generateImageSizesType` emitted. */
24
+ const sizesMember = (sizes) => `sizes:{${sizes
25
+ .map((size) => size.out && size.out.length > 1
26
+ ? size.out.map((format) => `${size.name}_${format}: string`).join(', ')
27
+ : `${size.name}: string`)
28
+ .join(', ')}}`;
@@ -0,0 +1,8 @@
1
+ import type { Dic } from '../../../../util/types.js';
2
+ /**
3
+ * A collection stores files by declaring `upload`.
4
+ *
5
+ * `Dic`, not a narrow shape: an area has no `upload` member at all, and every caller that guards
6
+ * a step here holds one config or the other.
7
+ */
8
+ export declare const isUpload: (config: Dic) => boolean;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A collection stores files by declaring `upload`.
3
+ *
4
+ * `Dic`, not a narrow shape: an area has no `upload` member at all, and every caller that guards
5
+ * a step here holds one config or the other.
6
+ */
7
+ export const isUpload = (config) => !!config.upload;
@@ -0,0 +1,12 @@
1
+ import type { BuiltCollection } from '../../../../types.js';
2
+ /**
3
+ * Creates static/medias when any collection has upload enabled.
4
+ *
5
+ * Lives with the upload feature rather than in dev/ensure.server.ts: the other ensure*
6
+ * helpers assert that a project was initialised and throw when it wasn't, while this one is
7
+ * a runtime side effect of the upload feature being switched on, and it runs on every config
8
+ * build (see core/config/context.server.ts).
9
+ */
10
+ export declare function ensureMedias<C extends {
11
+ collections?: BuiltCollection[];
12
+ }>(config: C): void;
@@ -0,0 +1,19 @@
1
+ import { existsSync, mkdirSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ /**
4
+ * Creates static/medias when any collection has upload enabled.
5
+ *
6
+ * Lives with the upload feature rather than in dev/ensure.server.ts: the other ensure*
7
+ * helpers assert that a project was initialised and throw when it wasn't, while this one is
8
+ * a runtime side effect of the upload feature being switched on, and it runs on every config
9
+ * build (see core/config/context.server.ts).
10
+ */
11
+ export function ensureMedias(config) {
12
+ const hasUpload = (config.collections || []).some((collection) => !!collection.upload);
13
+ if (hasUpload) {
14
+ const mediasDirectory = path.resolve(process.cwd(), 'static/medias');
15
+ if (!existsSync(mediasDirectory)) {
16
+ mkdirSync(mediasDirectory, { recursive: true });
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hook executed before deleting a document to clean up associated files from storage.
3
+ *
4
+ * This hook performs the following operations:
5
+ * 1. Retrieves the document ID from the deletion event
6
+ * 2. Locates and removes all files associated with the document from storage
7
+ * 3. Ensures no orphaned files remain after document deletion
8
+ *
9
+ */
10
+ export declare const cleanUpFiles: import("../../../../pipeline/types").Hook<"raw", "delete", "before">;
@@ -0,0 +1,17 @@
1
+ import { Hooks } from '../../../../pipeline/define-hook.js';
2
+ import { cleanUpDocumentFile } from '../disk/delete.server.js';
3
+ /**
4
+ * Hook executed before deleting a document to clean up associated files from storage.
5
+ *
6
+ * This hook performs the following operations:
7
+ * 1. Retrieves the document ID from the deletion event
8
+ * 2. Locates and removes all files associated with the document from storage
9
+ * 3. Ensures no orphaned files remain after document deletion
10
+ *
11
+ */
12
+ export const cleanUpFiles = Hooks.beforeDelete(async function cleanUpFiles(args) {
13
+ const config = args.config;
14
+ const id = args.context.params.id || '';
15
+ await cleanUpDocumentFile({ config, rime: args.event.locals.rime, id });
16
+ return args;
17
+ });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Hook executed before save/update operations to convert base64 encoded files to File objects.
3
+ *
4
+ * @description
5
+ * This hook performs the following operations:
6
+ * 1. Checks if the incoming document contains a base64 encoded file
7
+ * 2. Converts it to a proper File object for disk storage
8
+ * 3. Preserves or generates metadata (filename, size, type)
9
+ *
10
+ * @param args Hook arguments containing the document to process
11
+ * @returns Updated args object with converted file data
12
+ */
13
+ export declare const castBase64ToFile: import("../../../../pipeline/types").Hook<"upload", "create" | "update", "before">;
@@ -0,0 +1,36 @@
1
+ import { Hooks } from '../../../../pipeline/define-hook.js';
2
+ import { jsonFileToFile } from '../util/converter.server.js';
3
+ import { RimeError } from '../../../../errors/index.js';
4
+ import { isFile } from '../../../../../util/file.js';
5
+ /**
6
+ * Hook executed before save/update operations to convert base64 encoded files to File objects.
7
+ *
8
+ * @description
9
+ * This hook performs the following operations:
10
+ * 1. Checks if the incoming document contains a base64 encoded file
11
+ * 2. Converts it to a proper File object for disk storage
12
+ * 3. Preserves or generates metadata (filename, size, type)
13
+ *
14
+ * @param args Hook arguments containing the document to process
15
+ * @returns Updated args object with converted file data
16
+ */
17
+ export const castBase64ToFile = Hooks.beforeUpsert(async function castBase64ToFile(args) {
18
+ let data = args.data;
19
+ if (data?.file && !isFile(data.file)) {
20
+ try {
21
+ const { file, filename, filesize, mimeType } = jsonFileToFile(data.file);
22
+ data = {
23
+ ...data,
24
+ file,
25
+ filename: data.filename || filename,
26
+ filesize: data.filesize || filesize,
27
+ mimeType: data.mimeType || mimeType
28
+ };
29
+ }
30
+ catch (err) {
31
+ args.event.locals.rime.logger.error('Failed to convert base64 string to File object', err.message);
32
+ throw new RimeError(RimeError.UPLOAD, 'Unable to process file');
33
+ }
34
+ }
35
+ return { ...args, data };
36
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hook executed before save/update operations on {uploadSlug}_directories collections
3
+ * the function normalize and validate path ({slug}_directories.id).
4
+ * Then extract parent, name from the given path.
5
+ */
6
+ export declare const exctractPath: import("../../../../pipeline/types").Hook<"directory", "create" | "update", "before">;
@@ -0,0 +1,25 @@
1
+ import { Hooks } from '../../../../pipeline/define-hook.js';
2
+ import { RimeError } from '../../../../errors/index.js';
3
+ import { trycatchSync } from '../../../../../util/function.js';
4
+ import { getSegments } from '../util/path.js';
5
+ /**
6
+ * Hook executed before save/update operations on {uploadSlug}_directories collections
7
+ * the function normalize and validate path ({slug}_directories.id).
8
+ * Then extract parent, name from the given path.
9
+ */
10
+ export const exctractPath = Hooks.beforeUpsert(async function exctractPath(args) {
11
+ let data = args.data;
12
+ if (data?.id) {
13
+ const [error, segments] = trycatchSync(() => getSegments(data.id));
14
+ if (error) {
15
+ throw new RimeError(RimeError.INVALID_DATA, error.message);
16
+ }
17
+ data = {
18
+ ...data,
19
+ id: segments.path,
20
+ name: segments.name,
21
+ parent: segments.parent
22
+ };
23
+ }
24
+ return { ...args, data };
25
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hook executed before save/update operations on an upload collections
3
+ * the function get the document _path and check if it exists,
4
+ * if it doesn't it create {upload_slug}_directories entries recursively
5
+ */
6
+ export declare const handlePathCreation: import("../../../../pipeline/types").Hook<"upload", "create" | "update", "before">;
@@ -0,0 +1,82 @@
1
+ import { Hooks } from '../../../../pipeline/define-hook.js';
2
+ import { UPLOAD_PATH } from '../constant.js';
3
+ import { logger } from '../../../../logger.server.js';
4
+ import { directoriesOf } from '../naming.js';
5
+ import { trycatch } from '../../../../../util/function.js';
6
+ import { getSegments } from '../util/path.js';
7
+ /**
8
+ * Hook executed before save/update operations on an upload collections
9
+ * the function get the document _path and check if it exists,
10
+ * if it doesn't it create {upload_slug}_directories entries recursively
11
+ */
12
+ export const handlePathCreation = Hooks.beforeUpsert(async function handlePathCreation(args) {
13
+ const { rime } = args.event.locals;
14
+ const data = args.data;
15
+ /**
16
+ * An update that says nothing about the path leaves it alone; a create always has one.
17
+ *
18
+ * `getSegments` answers `root` for a missing *or null* path, which is what makes the second
19
+ * half true — and null is the case that matters, because the blank document a create is
20
+ * merged with puts `_path: null` in `data`. A test for `'_path' in data` therefore never
21
+ * fires on a create, which is why the **adapter** was the thing defaulting it.
22
+ */
23
+ if (args.operation !== 'create' && !args.data._path)
24
+ return args;
25
+ /**
26
+ * Normalise first — `getSegments` drops empty segments and trailing separators, and
27
+ * collapses a one-segment path to `root`. What is stored has to be the normalised form,
28
+ * because every directory row below is created under it and every lookup goes against it.
29
+ *
30
+ * The **adapter** did this, in `insertPrototype`, behind `'upload' in config` — a feature
31
+ * reaching into a write. It also re-created the directory row for the normalised path,
32
+ * which is what this hook already does and does properly: recursively, for every segment,
33
+ * through the public API. Only the assignment was missing here, and it had to move above
34
+ * the early return below to happen at all.
35
+ *
36
+ * `getSegments` throws `BAD_REQUEST` on an invalid path, which is the same rejection the
37
+ * adapter made, one layer earlier.
38
+ */
39
+ const pathInfo = getSegments(args.data._path);
40
+ args.data._path = pathInfo.path;
41
+ const directorySlug = directoriesOf(args.config);
42
+ const [, dir] = await trycatch(() => rime.collection(directorySlug).findById({
43
+ select: ['id'],
44
+ id: data._path
45
+ }));
46
+ if (dir)
47
+ return args;
48
+ // Split the path into segments
49
+ const segments = pathInfo.path.split(UPLOAD_PATH.SEPARATOR);
50
+ // Process all segments, including root
51
+ let currentPath = '';
52
+ for (let i = 0; i < segments.length; i++) {
53
+ const segment = segments[i];
54
+ const parentPath = currentPath || null; // For root, parent is null
55
+ // Build the current path
56
+ currentPath = currentPath ? `${currentPath}${UPLOAD_PATH.SEPARATOR}${segment}` : segment;
57
+ // Check if this segment exists
58
+ const [, segExists] = await trycatch(() => rime.collection(directorySlug).findById({
59
+ select: ['id'],
60
+ id: currentPath
61
+ }));
62
+ // If the segment doesn't exist, create it
63
+ if (!segExists) {
64
+ const [createError] = await trycatch(() => rime.collection(directorySlug).create({
65
+ data: {
66
+ id: currentPath,
67
+ parent: parentPath,
68
+ name: segment,
69
+ createdAt: new Date(),
70
+ updatedAt: new Date()
71
+ }
72
+ }));
73
+ if (createError) {
74
+ logger.error(`Failed to create directory segment ${currentPath}`, createError);
75
+ // If we can't create a segment, fall back to root
76
+ args.data._path = UPLOAD_PATH.ROOT_NAME;
77
+ return args;
78
+ }
79
+ }
80
+ }
81
+ return args;
82
+ });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This feature's hooks, by name, so a prototype can place them as `upload.someHook`.
3
+ *
4
+ * A barrel and nothing else — `module.server.ts` beside it is the pair half `$rime/modules:` resolves, and
5
+ * only files named exactly `module(.server).ts` are, so this one is invisible to that mechanism.
6
+ * It exists because a prototype's `hooks.server.ts` writes the run order and would otherwise carry
7
+ * one import line per hook.
8
+ */
9
+ export { castBase64ToFile } from './convert-base64.server.js';
10
+ export { cleanUpFiles } from './clean-up-files.server.js';
11
+ export { handlePathCreation } from './handle-path-creation.server.js';
12
+ export { populateSizes } from './populate-sizes.server.js';
13
+ export { processFileUpload } from './process-file-upload.server.js';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This feature's hooks, by name, so a prototype can place them as `upload.someHook`.
3
+ *
4
+ * A barrel and nothing else — `module.server.ts` beside it is the pair half `$rime/modules:` resolves, and
5
+ * only files named exactly `module(.server).ts` are, so this one is invisible to that mechanism.
6
+ * It exists because a prototype's `hooks.server.ts` writes the run order and would otherwise carry
7
+ * one import line per hook.
8
+ */
9
+ export { castBase64ToFile } from './convert-base64.server.js';
10
+ export { cleanUpFiles } from './clean-up-files.server.js';
11
+ export { handlePathCreation } from './handle-path-creation.server.js';
12
+ export { populateSizes } from './populate-sizes.server.js';
13
+ export { processFileUpload } from './process-file-upload.server.js';