rimecms 0.31.5 → 0.32.1

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 (1076) hide show
  1. package/dist/adapter-sqlite/area.server.d.ts +10 -46
  2. package/dist/adapter-sqlite/area.server.js +31 -309
  3. package/dist/adapter-sqlite/auth.server.d.ts +11 -19
  4. package/dist/adapter-sqlite/auth.server.js +20 -77
  5. package/dist/adapter-sqlite/blocks.server.d.ts +7 -8
  6. package/dist/adapter-sqlite/blocks.server.js +17 -12
  7. package/dist/adapter-sqlite/collection.server.d.ts +10 -67
  8. package/dist/adapter-sqlite/collection.server.js +22 -418
  9. package/dist/adapter-sqlite/columns.server.d.ts +140 -0
  10. package/dist/adapter-sqlite/columns.server.js +307 -0
  11. package/dist/adapter-sqlite/generate-schema/column.server.js +1 -1
  12. package/dist/adapter-sqlite/generate-schema/index.server.d.ts +3 -3
  13. package/dist/adapter-sqlite/generate-schema/index.server.js +64 -139
  14. package/dist/adapter-sqlite/generate-schema/relations/junction.server.d.ts +3 -2
  15. package/dist/adapter-sqlite/generate-schema/relations/junction.server.js +14 -7
  16. package/dist/adapter-sqlite/generate-schema/root.server.d.ts +31 -7
  17. package/dist/adapter-sqlite/generate-schema/root.server.js +35 -19
  18. package/dist/adapter-sqlite/generate-schema/templates.server.d.ts +62 -65
  19. package/dist/adapter-sqlite/generate-schema/templates.server.js +119 -175
  20. package/dist/adapter-sqlite/generate-schema/write.server.js +19 -6
  21. package/dist/adapter-sqlite/index.server.d.ts +17 -23
  22. package/dist/adapter-sqlite/index.server.js +33 -36
  23. package/dist/adapter-sqlite/locales.server.d.ts +31 -0
  24. package/dist/adapter-sqlite/locales.server.js +57 -0
  25. package/dist/adapter-sqlite/naming.server.d.ts +134 -0
  26. package/dist/adapter-sqlite/naming.server.js +98 -0
  27. package/dist/adapter-sqlite/order-by.server.d.ts +29 -0
  28. package/dist/adapter-sqlite/order-by.server.js +115 -0
  29. package/dist/adapter-sqlite/read.server.d.ts +78 -0
  30. package/dist/adapter-sqlite/read.server.js +188 -0
  31. package/dist/adapter-sqlite/registry.server.d.ts +45 -0
  32. package/dist/adapter-sqlite/registry.server.js +63 -0
  33. package/dist/adapter-sqlite/relations.server.d.ts +10 -12
  34. package/dist/adapter-sqlite/relations.server.js +24 -8
  35. package/dist/adapter-sqlite/rows.server.d.ts +36 -0
  36. package/dist/adapter-sqlite/rows.server.js +6 -0
  37. package/dist/adapter-sqlite/select.server.d.ts +25 -0
  38. package/dist/adapter-sqlite/select.server.js +274 -0
  39. package/dist/adapter-sqlite/table.server.d.ts +18 -0
  40. package/dist/adapter-sqlite/table.server.js +63 -0
  41. package/dist/adapter-sqlite/transform.server.d.ts +13 -12
  42. package/dist/adapter-sqlite/transform.server.js +118 -197
  43. package/dist/adapter-sqlite/tree.server.d.ts +7 -8
  44. package/dist/adapter-sqlite/tree.server.js +13 -12
  45. package/dist/adapter-sqlite/types.server.d.ts +6 -5
  46. package/dist/adapter-sqlite/where.server.d.ts +25 -3
  47. package/dist/adapter-sqlite/where.server.js +46 -36
  48. package/dist/adapter-sqlite/write.server.d.ts +166 -0
  49. package/dist/adapter-sqlite/write.server.js +272 -0
  50. package/dist/core/adapter.d.ts +456 -0
  51. package/dist/core/adapter.js +13 -0
  52. package/dist/core/auth/access.d.ts +73 -0
  53. package/dist/core/auth/augment.d.ts +18 -0
  54. package/dist/core/auth/augment.js +110 -0
  55. package/dist/core/auth/augment.server.d.ts +3 -0
  56. package/dist/core/auth/augment.server.js +23 -0
  57. package/dist/core/auth/better-auth/config.server.d.ts +2122 -0
  58. package/dist/core/auth/better-auth/config.server.js +81 -0
  59. package/dist/core/auth/better-auth/hooks.server.js +132 -0
  60. package/dist/core/auth/better-auth/instance.server.d.ts +4215 -0
  61. package/dist/core/auth/better-auth/instance.server.js +26 -0
  62. package/dist/core/auth/better-auth-tables.server.d.ts +33 -0
  63. package/dist/core/auth/better-auth-tables.server.js +50 -0
  64. package/dist/core/auth/configure.d.ts +21 -0
  65. package/dist/core/auth/configure.js +21 -0
  66. package/dist/core/auth/constant.server.d.ts +28 -0
  67. package/dist/core/auth/constant.server.js +43 -0
  68. package/dist/core/auth/enabled.d.ts +10 -0
  69. package/dist/core/auth/enabled.js +10 -0
  70. package/dist/core/auth/handler/index.server.js +159 -0
  71. package/dist/core/auth/hooks/augment-fields-password.server.d.ts +20 -0
  72. package/dist/core/auth/hooks/augment-fields-password.server.js +44 -0
  73. package/dist/core/auth/hooks/create-better-auth-user.server.d.ts +4 -0
  74. package/dist/core/auth/hooks/create-better-auth-user.server.js +212 -0
  75. package/dist/core/auth/hooks/delete-better-auth-user.server.d.ts +4 -0
  76. package/dist/core/auth/hooks/delete-better-auth-user.server.js +25 -0
  77. package/dist/core/auth/hooks/forward-roles.server.d.ts +12 -0
  78. package/dist/core/auth/hooks/forward-roles.server.js +58 -0
  79. package/dist/core/auth/hooks/index.server.d.ts +18 -0
  80. package/dist/core/auth/hooks/index.server.js +18 -0
  81. package/dist/core/auth/hooks/populate-api-key.server.d.ts +5 -0
  82. package/dist/core/auth/hooks/populate-api-key.server.js +22 -0
  83. package/dist/core/auth/hooks/prevent-superadmin-deletion.server.d.ts +6 -0
  84. package/dist/core/auth/hooks/prevent-superadmin-deletion.server.js +16 -0
  85. package/dist/core/auth/hooks/prevent-superadmin-mutation.server.d.ts +5 -0
  86. package/dist/core/auth/hooks/prevent-superadmin-mutation.server.js +28 -0
  87. package/dist/core/auth/hooks/prevent-user-mutations.server.d.ts +5 -0
  88. package/dist/core/auth/hooks/prevent-user-mutations.server.js +13 -0
  89. package/dist/core/auth/hooks/remove-private-fields.server.d.ts +7 -0
  90. package/dist/core/auth/hooks/remove-private-fields.server.js +11 -0
  91. package/dist/core/auth/hooks/sign-in-new-user.server.d.ts +12 -0
  92. package/dist/core/auth/hooks/sign-in-new-user.server.js +29 -0
  93. package/dist/core/auth/module.d.ts +2 -0
  94. package/dist/core/auth/module.js +2 -0
  95. package/dist/core/auth/module.server.d.ts +2 -0
  96. package/dist/core/auth/module.server.js +2 -0
  97. package/dist/core/auth/staff/configure.d.ts +7 -0
  98. package/dist/core/auth/staff/configure.js +13 -0
  99. package/dist/core/auth/staff/configure.server.d.ts +7 -0
  100. package/dist/core/auth/staff/configure.server.js +14 -0
  101. package/dist/core/auth/staff/derive.d.ts +23 -0
  102. package/dist/core/auth/staff/derive.js +58 -0
  103. package/dist/core/auth/tables.d.ts +38 -0
  104. package/dist/core/auth/tables.js +157 -0
  105. package/dist/core/auth/types.d.ts +47 -0
  106. package/dist/core/auth/user.server.d.ts +43 -0
  107. package/dist/core/auth/user.server.js +73 -0
  108. package/dist/core/auth/util.d.ts +13 -0
  109. package/dist/core/auth/validate-config.d.ts +13 -0
  110. package/dist/core/auth/validate-config.js +42 -0
  111. package/dist/core/boot.server.d.ts +4227 -0
  112. package/dist/core/boot.server.js +61 -0
  113. package/dist/core/codegen.server.d.ts +22 -0
  114. package/dist/core/codegen.server.js +58 -0
  115. package/dist/core/config/build.d.ts +23 -0
  116. package/dist/core/config/build.js +22 -0
  117. package/dist/core/config/build.server.d.ts +70 -0
  118. package/dist/core/config/build.server.js +33 -0
  119. package/dist/core/config/configure.d.ts +26 -0
  120. package/dist/core/config/configure.js +40 -0
  121. package/dist/core/config/context.server.d.ts +82 -0
  122. package/dist/core/config/context.server.js +118 -0
  123. package/dist/core/config/index.d.ts +4 -0
  124. package/dist/core/config/index.js +4 -0
  125. package/dist/core/config/index.server.d.ts +9 -0
  126. package/dist/core/config/index.server.js +11 -0
  127. package/dist/core/config/types.d.ts +88 -170
  128. package/dist/core/config/validate.server.d.ts +3 -0
  129. package/dist/core/config/validate.server.js +259 -0
  130. package/dist/core/constants.d.ts +69 -0
  131. package/dist/core/constants.js +69 -0
  132. package/dist/core/constants.server.d.ts +5 -0
  133. package/dist/core/constants.server.js +6 -0
  134. package/dist/core/cors/configure.server.d.ts +11 -0
  135. package/dist/core/cors/configure.server.js +14 -0
  136. package/dist/core/cors/handler.server.js +75 -0
  137. package/dist/core/cors/module.browser.js +1 -0
  138. package/dist/core/cors/module.server.d.ts +1 -0
  139. package/dist/core/cors/module.server.js +7 -0
  140. package/dist/core/dev/cache.server.d.ts +17 -0
  141. package/dist/core/dev/cache.server.js +65 -0
  142. package/dist/core/dev/cli/commands/build.js +70 -0
  143. package/dist/core/dev/cli/commands/clear.server.js +42 -0
  144. package/dist/core/dev/cli/commands/generate-exports.server.d.ts +26 -0
  145. package/dist/core/dev/cli/commands/generate-exports.server.js +155 -0
  146. package/dist/core/dev/cli/commands/generate.server.js +98 -0
  147. package/dist/core/dev/cli/commands/init.server.js +242 -0
  148. package/dist/core/dev/cli/index.js +16 -16
  149. package/dist/core/dev/cli/templates/build.js +45 -0
  150. package/dist/core/dev/cli/templates/init.js +117 -0
  151. package/dist/core/dev/cli/util/package-manager.server.js +7 -3
  152. package/dist/core/dev/cli/util/package.server.d.ts +0 -8
  153. package/dist/core/dev/cli/util/package.server.js +0 -10
  154. package/dist/core/dev/codegen/routes/common.server.d.ts +35 -0
  155. package/dist/core/dev/codegen/routes/common.server.js +437 -0
  156. package/dist/core/dev/codegen/routes/custom-css.server.js +86 -0
  157. package/dist/core/dev/codegen/routes/index.server.d.ts +17 -0
  158. package/dist/core/dev/codegen/routes/index.server.js +110 -0
  159. package/dist/core/dev/codegen/routes/util.server.d.ts +52 -0
  160. package/dist/core/dev/codegen/routes/util.server.js +118 -0
  161. package/dist/core/dev/codegen/runtime/index.server.d.ts +78 -0
  162. package/dist/core/dev/codegen/runtime/index.server.js +92 -0
  163. package/dist/core/dev/codegen/runtime/parse-exports.server.d.ts +16 -0
  164. package/dist/core/dev/codegen/runtime/parse-exports.server.js +60 -0
  165. package/dist/core/dev/codegen/sanitize/index.server.js +834 -0
  166. package/dist/core/dev/codegen/types/contributions.server.d.ts +37 -0
  167. package/dist/core/dev/codegen/types/contributions.server.js +25 -0
  168. package/dist/core/dev/codegen/types/index.server.js +132 -0
  169. package/dist/core/dev/codegen/types/templates.server.d.ts +13 -0
  170. package/dist/core/dev/codegen/types/templates.server.js +134 -0
  171. package/dist/core/dev/config-memo.server.js +85 -0
  172. package/dist/core/dev/constants.server.d.ts +20 -0
  173. package/dist/core/dev/constants.server.js +63 -0
  174. package/dist/core/dev/ensure.server.d.ts +30 -0
  175. package/dist/core/dev/ensure.server.js +82 -0
  176. package/dist/core/dev/prototype-routes.server.d.ts +16 -0
  177. package/dist/core/dev/prototype-routes.server.js +23 -0
  178. package/dist/core/dev/version.server.d.ts +12 -0
  179. package/dist/core/dev/version.server.js +27 -0
  180. package/dist/core/dev/vite.server.js +242 -0
  181. package/dist/core/errors/handler.server.d.ts +17 -1
  182. package/dist/core/errors/handler.server.js +4 -23
  183. package/dist/core/fields/builders/boolean-builder.d.ts +1 -1
  184. package/dist/core/fields/builders/field-builder.d.ts +12 -1
  185. package/dist/core/fields/builders/form-field-builder.d.ts +16 -5
  186. package/dist/core/fields/builders/form-field-builder.js +19 -8
  187. package/dist/core/fields/builders/select-builder.d.ts +1 -1
  188. package/dist/core/fields/types.d.ts +16 -0
  189. package/dist/core/fields/util.d.ts +60 -0
  190. package/dist/core/fields/util.js +84 -1
  191. package/dist/core/fields/validate.js +171 -0
  192. package/dist/core/handler.server.d.ts +4 -0
  193. package/dist/core/handler.server.js +25 -0
  194. package/dist/core/i18n/en/common.d.ts +18 -0
  195. package/dist/core/i18n/en/common.js +20 -1
  196. package/dist/core/i18n/fr/common.d.ts +18 -0
  197. package/dist/core/i18n/fr/common.js +20 -1
  198. package/dist/core/i18n/index.d.ts +0 -1
  199. package/dist/core/i18n/index.js +0 -1
  200. package/dist/core/locale/copy.server.d.ts +35 -0
  201. package/dist/core/locale/copy.server.js +93 -0
  202. package/dist/core/locale/types.d.ts +20 -0
  203. package/dist/core/panel/configure.d.ts +63 -0
  204. package/dist/core/panel/configure.js +56 -0
  205. package/dist/core/panel/types.d.ts +61 -0
  206. package/dist/core/pipeline/build-document.server.d.ts +26 -0
  207. package/dist/core/pipeline/build-document.server.js +83 -0
  208. package/dist/core/pipeline/build.server.d.ts +23 -0
  209. package/dist/core/pipeline/build.server.js +76 -0
  210. package/dist/core/pipeline/config-map/build-tree-map.d.ts +4 -0
  211. package/dist/core/pipeline/config-map/index.d.ts +6 -0
  212. package/dist/core/pipeline/config-map/index.js +54 -0
  213. package/dist/core/pipeline/define-hook.d.ts +42 -0
  214. package/dist/core/pipeline/define-hook.js +40 -0
  215. package/dist/core/pipeline/extract-data.server.d.ts +18 -0
  216. package/dist/core/pipeline/extract-data.server.js +78 -0
  217. package/dist/core/pipeline/hook-name.server.d.ts +11 -0
  218. package/dist/core/pipeline/hook-name.server.js +14 -0
  219. package/dist/core/pipeline/hooks/authorize.server.d.ts +6 -0
  220. package/dist/core/pipeline/hooks/authorize.server.js +37 -0
  221. package/dist/core/pipeline/hooks/data-config-map.server.d.ts +8 -0
  222. package/dist/core/pipeline/hooks/data-config-map.server.js +19 -0
  223. package/dist/core/pipeline/hooks/get-original-document.server.d.ts +9 -0
  224. package/dist/core/pipeline/hooks/get-original-document.server.js +34 -0
  225. package/dist/core/pipeline/hooks/normalize-resolved-references.server.d.ts +16 -0
  226. package/dist/core/pipeline/hooks/normalize-resolved-references.server.js +40 -0
  227. package/dist/core/pipeline/hooks/original-config-map.server.d.ts +8 -0
  228. package/dist/core/pipeline/hooks/original-config-map.server.js +23 -0
  229. package/dist/core/pipeline/hooks/process-document-fields.server.d.ts +5 -0
  230. package/dist/core/pipeline/hooks/process-document-fields.server.js +62 -0
  231. package/dist/core/pipeline/hooks/resolve-content-owner.server.d.ts +17 -0
  232. package/dist/core/pipeline/hooks/resolve-content-owner.server.js +24 -0
  233. package/dist/core/pipeline/hooks/set-default-values.server.d.ts +16 -0
  234. package/dist/core/pipeline/hooks/set-default-values.server.js +79 -0
  235. package/dist/core/pipeline/hooks/set-document-locale.server.d.ts +5 -0
  236. package/dist/core/pipeline/hooks/set-document-locale.server.js +19 -0
  237. package/dist/core/pipeline/hooks/set-document-type.server.d.ts +6 -0
  238. package/dist/core/pipeline/hooks/set-document-type.server.js +19 -0
  239. package/dist/core/pipeline/hooks/sort-document-props.server.d.ts +7 -0
  240. package/dist/core/pipeline/hooks/sort-document-props.server.js +71 -0
  241. package/dist/core/pipeline/hooks/validate-fields.server.d.ts +12 -0
  242. package/dist/core/pipeline/hooks/validate-fields.server.js +170 -0
  243. package/dist/core/pipeline/persist/blocks/diff.server.d.ts +15 -0
  244. package/dist/core/pipeline/persist/blocks/diff.server.js +69 -0
  245. package/dist/core/pipeline/persist/blocks/extract.server.d.ts +9 -0
  246. package/dist/core/pipeline/persist/blocks/extract.server.js +33 -0
  247. package/dist/core/pipeline/persist/blocks/index.server.d.ts +27 -0
  248. package/dist/core/pipeline/persist/blocks/index.server.js +68 -0
  249. package/dist/core/pipeline/persist/relations/diff.server.d.ts +14 -0
  250. package/dist/core/pipeline/persist/relations/diff.server.js +47 -0
  251. package/dist/core/pipeline/persist/relations/extract.server.d.ts +11 -0
  252. package/dist/core/pipeline/persist/relations/extract.server.js +59 -0
  253. package/dist/core/pipeline/persist/relations/index.server.d.ts +26 -0
  254. package/dist/core/pipeline/persist/relations/index.server.js +66 -0
  255. package/dist/core/pipeline/persist/tree/diff.server.d.ts +20 -0
  256. package/dist/core/pipeline/persist/tree/diff.server.js +51 -0
  257. package/dist/core/pipeline/persist/tree/extract.server.d.ts +9 -0
  258. package/dist/core/pipeline/persist/tree/extract.server.js +34 -0
  259. package/dist/core/pipeline/persist/tree/index.server.d.ts +14 -0
  260. package/dist/core/pipeline/persist/tree/index.server.js +50 -0
  261. package/dist/core/pipeline/query.d.ts +14 -0
  262. package/dist/core/pipeline/query.js +36 -0
  263. package/dist/core/pipeline/run.server.d.ts +146 -0
  264. package/dist/core/pipeline/run.server.js +256 -0
  265. package/dist/core/pipeline/types.d.ts +140 -0
  266. package/dist/core/pipeline/types.js +10 -0
  267. package/dist/core/plugins/api-init/index.server.js +84 -0
  268. package/dist/core/plugins/cache/cache.server.js +1 -1
  269. package/dist/core/plugins/cache/index.d.ts +1 -2
  270. package/dist/core/plugins/cache/index.js +3 -1
  271. package/dist/core/plugins/cache/types.d.ts +5 -0
  272. package/dist/core/plugins/configure.d.ts +12 -0
  273. package/dist/core/plugins/configure.js +26 -0
  274. package/dist/core/plugins/defaults/index.d.ts +1 -0
  275. package/dist/core/plugins/defaults/index.js +3 -0
  276. package/dist/core/plugins/defaults/module.d.ts +12 -0
  277. package/dist/core/plugins/defaults/module.js +14 -0
  278. package/dist/core/plugins/defaults/module.server.d.ts +4 -0
  279. package/dist/core/plugins/defaults/module.server.js +15 -0
  280. package/dist/core/plugins/defaults/types.d.ts +18 -0
  281. package/dist/core/plugins/defaults/types.js +1 -0
  282. package/dist/core/plugins/mailer/index.server.js +29 -0
  283. package/dist/core/plugins/plugins.server.js +10 -0
  284. package/dist/core/plugins/sse/bus.server.d.ts +16 -0
  285. package/dist/core/plugins/sse/bus.server.js +69 -0
  286. package/dist/core/plugins/sse/client.d.ts +14 -16
  287. package/dist/core/plugins/sse/client.js +42 -34
  288. package/dist/core/plugins/sse/index.d.ts +10 -2
  289. package/dist/core/plugins/sse/index.js +9 -1
  290. package/dist/core/plugins/sse/index.server.d.ts +29 -0
  291. package/dist/core/plugins/sse/index.server.js +18 -0
  292. package/dist/core/plugins/sse/types.d.ts +15 -7
  293. package/dist/core/prototype/area/api.server.d.ts +91 -0
  294. package/dist/core/prototype/area/api.server.js +117 -0
  295. package/dist/core/prototype/area/augment-label.d.ts +16 -0
  296. package/dist/core/prototype/area/augment-label.js +13 -0
  297. package/dist/core/prototype/area/definition.d.ts +18 -0
  298. package/dist/core/prototype/area/definition.js +44 -0
  299. package/dist/core/prototype/area/definition.server.d.ts +9 -0
  300. package/dist/core/prototype/area/definition.server.js +40 -0
  301. package/dist/core/prototype/area/hooks.server.d.ts +17 -0
  302. package/dist/core/prototype/area/hooks.server.js +61 -0
  303. package/dist/core/prototype/area/index.d.ts +1 -0
  304. package/dist/core/prototype/area/index.js +1 -0
  305. package/dist/core/prototype/area/operations/find.d.ts +18 -0
  306. package/dist/core/prototype/area/operations/find.js +43 -0
  307. package/dist/core/prototype/area/operations/update.d.ts +29 -0
  308. package/dist/core/prototype/area/operations/update.js +44 -0
  309. package/dist/core/prototype/area/rest/endpoint.server.d.ts +14 -0
  310. package/dist/core/prototype/area/rest/endpoint.server.js +15 -0
  311. package/dist/core/prototype/area/rest/get.server.d.ts +4 -0
  312. package/dist/core/prototype/area/rest/get.server.js +31 -0
  313. package/dist/core/prototype/area/rest/index.server.d.ts +9 -0
  314. package/dist/core/prototype/area/rest/index.server.js +14 -0
  315. package/dist/core/prototype/area/rest/lock.server.d.ts +2 -0
  316. package/dist/core/prototype/area/rest/lock.server.js +38 -0
  317. package/dist/core/prototype/area/rest/update.server.d.ts +4 -0
  318. package/dist/core/prototype/area/rest/update.server.js +38 -0
  319. package/dist/core/prototype/area/types.js +1 -0
  320. package/dist/core/prototype/collection/api.server.d.ts +173 -0
  321. package/dist/core/prototype/collection/api.server.js +224 -0
  322. package/dist/core/prototype/collection/augment-label.d.ts +6 -0
  323. package/dist/core/prototype/collection/definition.d.ts +26 -0
  324. package/dist/core/prototype/collection/definition.js +74 -0
  325. package/dist/core/prototype/collection/definition.server.d.ts +8 -0
  326. package/dist/core/prototype/collection/definition.server.js +24 -0
  327. package/dist/core/prototype/collection/hooks/merge-with-blank.server.d.ts +5 -0
  328. package/dist/core/prototype/collection/hooks/merge-with-blank.server.js +28 -0
  329. package/dist/core/prototype/collection/hooks.server.d.ts +28 -0
  330. package/dist/core/prototype/collection/hooks.server.js +133 -0
  331. package/dist/core/prototype/collection/index.d.ts +1 -0
  332. package/dist/core/prototype/collection/index.js +1 -0
  333. package/dist/core/prototype/collection/nested/enabled.d.ts +8 -0
  334. package/dist/core/prototype/collection/nested/enabled.js +7 -0
  335. package/dist/core/prototype/collection/nested/hooks/add-children.server.d.ts +4 -0
  336. package/dist/core/prototype/collection/nested/hooks/add-children.server.js +40 -0
  337. package/dist/core/prototype/collection/nested/hooks/index.server.d.ts +9 -0
  338. package/dist/core/prototype/collection/nested/hooks/index.server.js +9 -0
  339. package/dist/core/prototype/collection/nested/module.d.ts +15 -0
  340. package/dist/core/prototype/collection/nested/module.js +17 -0
  341. package/dist/core/prototype/collection/nested/module.server.d.ts +16 -0
  342. package/dist/core/prototype/collection/nested/module.server.js +21 -0
  343. package/dist/core/prototype/collection/operations/create.d.ts +18 -0
  344. package/dist/core/prototype/collection/operations/create.js +68 -0
  345. package/dist/core/prototype/collection/operations/delete-by-id.d.ts +11 -0
  346. package/dist/core/prototype/collection/operations/delete-by-id.js +44 -0
  347. package/dist/core/prototype/collection/operations/delete.d.ts +15 -0
  348. package/dist/core/prototype/collection/operations/delete.js +34 -0
  349. package/dist/core/prototype/collection/operations/duplicate.d.ts +12 -0
  350. package/dist/core/prototype/collection/operations/duplicate.js +112 -0
  351. package/dist/core/prototype/collection/operations/find-by-id.d.ts +22 -0
  352. package/dist/core/prototype/collection/operations/find-by-id.js +47 -0
  353. package/dist/core/prototype/collection/operations/find.d.ts +22 -0
  354. package/dist/core/prototype/collection/operations/find.js +65 -0
  355. package/dist/core/prototype/collection/operations/update-by-id.d.ts +30 -0
  356. package/dist/core/prototype/collection/operations/update-by-id.js +52 -0
  357. package/dist/core/prototype/collection/rest/create.server.d.ts +4 -0
  358. package/dist/core/prototype/collection/rest/create.server.js +26 -0
  359. package/dist/core/prototype/collection/rest/delete-by-id.server.d.ts +4 -0
  360. package/dist/core/prototype/collection/rest/delete-by-id.server.js +16 -0
  361. package/dist/core/prototype/collection/rest/delete.server.d.ts +4 -0
  362. package/dist/core/prototype/collection/rest/delete.server.js +33 -0
  363. package/dist/core/prototype/collection/rest/duplicate.server.d.ts +1 -0
  364. package/dist/core/prototype/collection/rest/duplicate.server.js +17 -0
  365. package/dist/core/prototype/collection/rest/endpoint.server.d.ts +27 -0
  366. package/dist/core/prototype/collection/rest/endpoint.server.js +23 -0
  367. package/dist/core/prototype/collection/rest/get-by-id.server.d.ts +4 -0
  368. package/dist/core/prototype/collection/rest/get-by-id.server.js +40 -0
  369. package/dist/core/prototype/collection/rest/get.server.d.ts +4 -0
  370. package/dist/core/prototype/collection/rest/get.server.js +38 -0
  371. package/dist/core/prototype/collection/rest/index.server.d.ts +12 -0
  372. package/dist/core/prototype/collection/rest/index.server.js +24 -0
  373. package/dist/core/prototype/collection/rest/lock.server.d.ts +2 -0
  374. package/dist/core/prototype/collection/rest/lock.server.js +59 -0
  375. package/dist/core/prototype/collection/rest/update-by-id.server.d.ts +4 -0
  376. package/dist/core/prototype/collection/rest/update-by-id.server.js +44 -0
  377. package/dist/core/prototype/collection/thumbnail/augment.d.ts +13 -0
  378. package/dist/core/prototype/collection/thumbnail/augment.js +15 -0
  379. package/dist/core/prototype/collection/thumbnail/find-thumbnail.d.ts +9 -0
  380. package/dist/core/prototype/collection/thumbnail/find-thumbnail.js +34 -0
  381. package/dist/core/prototype/collection/thumbnail/hooks/index.server.d.ts +9 -0
  382. package/dist/core/prototype/collection/thumbnail/hooks/index.server.js +9 -0
  383. package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.d.ts +7 -0
  384. package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.js +40 -0
  385. package/dist/core/prototype/collection/types.d.ts +14 -0
  386. package/dist/core/prototype/collection/types.js +1 -0
  387. package/dist/core/prototype/collection/upload/boot/index.server.d.ts +13 -0
  388. package/dist/core/prototype/collection/upload/boot/index.server.js +11 -0
  389. package/dist/core/prototype/collection/upload/constant.d.ts +10 -0
  390. package/dist/core/prototype/collection/upload/constant.js +10 -0
  391. package/dist/core/prototype/collection/upload/directories/configure.d.ts +14 -0
  392. package/dist/core/prototype/collection/upload/directories/configure.js +19 -0
  393. package/dist/core/prototype/collection/upload/directories/configure.server.d.ts +12 -0
  394. package/dist/core/prototype/collection/upload/directories/configure.server.js +35 -0
  395. package/dist/core/prototype/collection/upload/directories/derive.d.ts +7 -0
  396. package/dist/core/prototype/collection/upload/directories/derive.js +56 -0
  397. package/dist/core/prototype/collection/upload/directories/pipeline.server.d.ts +10 -0
  398. package/dist/core/prototype/collection/upload/directories/pipeline.server.js +22 -0
  399. package/dist/core/prototype/collection/upload/disk/delete.server.d.ts +9 -0
  400. package/dist/core/prototype/collection/upload/disk/delete.server.js +106 -0
  401. package/dist/core/prototype/collection/upload/disk/save.server.d.ts +32 -0
  402. package/dist/core/prototype/collection/upload/disk/save.server.js +190 -0
  403. package/dist/core/prototype/collection/upload/doc-type.d.ts +14 -0
  404. package/dist/core/prototype/collection/upload/doc-type.js +28 -0
  405. package/dist/core/prototype/collection/upload/enabled.d.ts +8 -0
  406. package/dist/core/prototype/collection/upload/enabled.js +7 -0
  407. package/dist/core/prototype/collection/upload/ensure.server.d.ts +12 -0
  408. package/dist/core/prototype/collection/upload/ensure.server.js +19 -0
  409. package/dist/core/prototype/collection/upload/hooks/clean-up-files.server.d.ts +10 -0
  410. package/dist/core/prototype/collection/upload/hooks/clean-up-files.server.js +17 -0
  411. package/dist/core/prototype/collection/upload/hooks/convert-base64.server.d.ts +13 -0
  412. package/dist/core/prototype/collection/upload/hooks/convert-base64.server.js +36 -0
  413. package/dist/core/prototype/collection/upload/hooks/extract-path.server.d.ts +6 -0
  414. package/dist/core/prototype/collection/upload/hooks/extract-path.server.js +25 -0
  415. package/dist/core/prototype/collection/upload/hooks/handle-path-creation.server.d.ts +6 -0
  416. package/dist/core/prototype/collection/upload/hooks/handle-path-creation.server.js +82 -0
  417. package/dist/core/prototype/collection/upload/hooks/index.server.d.ts +13 -0
  418. package/dist/core/prototype/collection/upload/hooks/index.server.js +13 -0
  419. package/dist/core/prototype/collection/upload/hooks/populate-sizes.server.d.ts +4 -0
  420. package/dist/core/prototype/collection/upload/hooks/populate-sizes.server.js +48 -0
  421. package/dist/core/prototype/collection/upload/hooks/process-file-upload.server.d.ts +20 -0
  422. package/dist/core/prototype/collection/upload/hooks/process-file-upload.server.js +60 -0
  423. package/dist/core/prototype/collection/upload/hooks/update-directory-children.server.d.ts +10 -0
  424. package/dist/core/prototype/collection/upload/hooks/update-directory-children.server.js +47 -0
  425. package/dist/core/prototype/collection/upload/module.d.ts +15 -0
  426. package/dist/core/prototype/collection/upload/module.js +92 -0
  427. package/dist/core/prototype/collection/upload/module.server.d.ts +24 -0
  428. package/dist/core/prototype/collection/upload/module.server.js +36 -0
  429. package/dist/core/prototype/collection/upload/naming.d.ts +23 -0
  430. package/dist/core/prototype/collection/upload/naming.js +37 -0
  431. package/dist/core/prototype/collection/upload/types.d.ts +102 -0
  432. package/dist/core/prototype/collection/upload/types.js +1 -0
  433. package/dist/core/prototype/collection/upload/util/config.d.ts +16 -0
  434. package/dist/core/prototype/collection/upload/util/converter.server.d.ts +29 -0
  435. package/dist/core/prototype/collection/upload/util/converter.server.js +127 -0
  436. package/dist/core/prototype/collection/upload/util/path.d.ts +69 -0
  437. package/dist/core/prototype/collection/upload/util/path.js +143 -0
  438. package/dist/core/prototype/define.d.ts +112 -0
  439. package/dist/core/prototype/define.js +50 -0
  440. package/dist/core/prototype/doc.d.ts +31 -0
  441. package/dist/core/prototype/doc.js +118 -0
  442. package/dist/core/prototype/index.d.ts +14 -0
  443. package/dist/core/prototype/index.js +14 -0
  444. package/dist/core/prototype/naming.d.ts +22 -0
  445. package/dist/core/prototype/naming.js +23 -0
  446. package/dist/core/prototype/shared/metas/constant.d.ts +16 -0
  447. package/dist/core/prototype/shared/metas/constant.js +16 -0
  448. package/dist/core/prototype/shared/metas/fields.d.ts +8 -0
  449. package/dist/core/prototype/shared/metas/fields.js +27 -0
  450. package/dist/core/prototype/shared/metas/hooks/delete-panel-lock-metas.server.d.ts +9 -0
  451. package/dist/core/prototype/shared/metas/hooks/delete-panel-lock-metas.server.js +20 -0
  452. package/dist/core/prototype/shared/metas/hooks/index.server.d.ts +7 -0
  453. package/dist/core/prototype/shared/metas/hooks/index.server.js +7 -0
  454. package/dist/core/prototype/shared/metas/hooks/stamp-authorship.server.d.ts +2 -0
  455. package/dist/core/prototype/shared/metas/hooks/stamp-authorship.server.js +27 -0
  456. package/dist/core/prototype/shared/metas/lock.d.ts +15 -0
  457. package/dist/core/prototype/shared/metas/lock.js +30 -0
  458. package/dist/core/prototype/shared/metas/lock.server.d.ts +46 -0
  459. package/dist/core/prototype/shared/metas/lock.server.js +91 -0
  460. package/dist/core/prototype/shared/metas/module.d.ts +38 -0
  461. package/dist/core/prototype/shared/metas/module.js +38 -0
  462. package/dist/core/prototype/shared/metas/module.server.d.ts +30 -0
  463. package/dist/core/prototype/shared/metas/module.server.js +38 -0
  464. package/dist/core/prototype/shared/title/augment.d.ts +27 -0
  465. package/dist/core/prototype/shared/title/augment.js +19 -0
  466. package/dist/core/prototype/shared/title/find-title.d.ts +14 -0
  467. package/dist/core/prototype/shared/title/find-title.js +35 -0
  468. package/dist/core/prototype/shared/title/hooks/index.server.d.ts +9 -0
  469. package/dist/core/prototype/shared/title/hooks/index.server.js +9 -0
  470. package/dist/core/prototype/shared/title/hooks/set-document-title.server.d.ts +4 -0
  471. package/dist/core/prototype/shared/title/hooks/set-document-title.server.js +32 -0
  472. package/dist/core/prototype/shared/title/select.d.ts +16 -0
  473. package/dist/core/prototype/shared/title/select.js +24 -0
  474. package/dist/core/prototype/shared/url/augment.d.ts +13 -0
  475. package/dist/core/prototype/shared/url/augment.js +11 -0
  476. package/dist/core/prototype/shared/url/enabled.d.ts +8 -0
  477. package/dist/core/prototype/shared/url/enabled.js +7 -0
  478. package/dist/core/prototype/shared/url/hooks/index.server.d.ts +9 -0
  479. package/dist/core/prototype/shared/url/hooks/index.server.js +9 -0
  480. package/dist/core/prototype/shared/url/hooks/populate-url.server.d.ts +4 -0
  481. package/dist/core/prototype/shared/url/hooks/populate-url.server.js +120 -0
  482. package/dist/core/prototype/shared/versions/augment.d.ts +23 -0
  483. package/dist/core/prototype/shared/versions/augment.js +47 -0
  484. package/dist/core/prototype/shared/versions/auto-saves.server.d.ts +16 -0
  485. package/dist/core/prototype/shared/versions/auto-saves.server.js +29 -0
  486. package/dist/core/prototype/shared/versions/blank.d.ts +13 -0
  487. package/dist/core/prototype/shared/versions/blank.js +15 -0
  488. package/dist/core/prototype/shared/versions/configure.server.d.ts +7 -0
  489. package/dist/core/prototype/shared/versions/configure.server.js +75 -0
  490. package/dist/core/prototype/shared/versions/constant.d.ts +14 -0
  491. package/dist/core/prototype/shared/versions/constant.js +13 -0
  492. package/dist/core/prototype/shared/versions/doc-type.d.ts +8 -0
  493. package/dist/core/prototype/shared/versions/doc-type.js +9 -0
  494. package/dist/core/prototype/shared/versions/enabled.d.ts +10 -0
  495. package/dist/core/prototype/shared/versions/enabled.js +9 -0
  496. package/dist/core/prototype/shared/versions/hooks/define-version-operation.server.d.ts +19 -0
  497. package/dist/core/prototype/shared/versions/hooks/define-version-operation.server.js +37 -0
  498. package/dist/core/prototype/shared/versions/hooks/demote-other-versions.d.ts +17 -0
  499. package/dist/core/prototype/shared/versions/hooks/demote-other-versions.js +37 -0
  500. package/dist/core/prototype/shared/versions/hooks/discard-auto-saves-of.server.d.ts +8 -0
  501. package/dist/core/prototype/shared/versions/hooks/discard-auto-saves-of.server.js +17 -0
  502. package/dist/core/prototype/shared/versions/hooks/expose-version-id.d.ts +12 -0
  503. package/dist/core/prototype/shared/versions/hooks/expose-version-id.js +17 -0
  504. package/dist/core/prototype/shared/versions/hooks/fallback-data-from-original.d.ts +9 -0
  505. package/dist/core/prototype/shared/versions/hooks/fallback-data-from-original.js +31 -0
  506. package/dist/core/prototype/shared/versions/hooks/handle-new-version.server.d.ts +32 -0
  507. package/dist/core/prototype/shared/versions/hooks/handle-new-version.server.js +194 -0
  508. package/dist/core/prototype/shared/versions/hooks/index.server.d.ts +15 -0
  509. package/dist/core/prototype/shared/versions/hooks/index.server.js +15 -0
  510. package/dist/core/prototype/shared/versions/hooks/prevent-last-version-deletion.server.d.ts +7 -0
  511. package/dist/core/prototype/shared/versions/hooks/prevent-last-version-deletion.server.js +21 -0
  512. package/dist/core/prototype/shared/versions/hooks/strip-auto-save-flag.server.d.ts +7 -0
  513. package/dist/core/prototype/shared/versions/hooks/strip-auto-save-flag.server.js +14 -0
  514. package/dist/core/prototype/shared/versions/module.browser.js +1 -0
  515. package/dist/core/prototype/shared/versions/module.server.d.ts +1 -0
  516. package/dist/core/prototype/shared/versions/module.server.js +4 -0
  517. package/dist/core/prototype/shared/versions/naming.d.ts +7 -0
  518. package/dist/core/prototype/shared/versions/naming.js +21 -0
  519. package/dist/core/prototype/shared/versions/read-query.d.ts +27 -0
  520. package/dist/core/prototype/shared/versions/read-query.js +35 -0
  521. package/dist/core/prototype/shared/versions/retire-auto-saves.server.d.ts +16 -0
  522. package/dist/core/prototype/shared/versions/retire-auto-saves.server.js +29 -0
  523. package/dist/core/prototype/shared/versions/strategy.d.ts +86 -0
  524. package/dist/core/prototype/shared/versions/strategy.js +93 -0
  525. package/dist/core/prototype/shared/versions/types.d.ts +37 -0
  526. package/dist/core/prototype/shared/versions/types.js +1 -0
  527. package/dist/core/prototype/shared/versions/validate-config.server.d.ts +8 -0
  528. package/dist/core/prototype/shared/versions/validate-config.server.js +21 -0
  529. package/dist/core/prototype/shared/versions/write-plan.d.ts +30 -0
  530. package/dist/core/prototype/shared/versions/write-plan.js +38 -0
  531. package/dist/core/prototype/types.d.ts +79 -0
  532. package/dist/core/prototype/types.js +1 -0
  533. package/dist/core/prototype/when.d.ts +25 -0
  534. package/dist/core/prototype/when.js +32 -0
  535. package/dist/core/rime.server.d.ts +64 -4363
  536. package/dist/core/rime.server.js +45 -93
  537. package/dist/core/routes/constants.d.ts +12 -0
  538. package/dist/core/routes/constants.js +16 -0
  539. package/dist/core/routes/constants.server.d.ts +5 -0
  540. package/dist/core/routes/constants.server.js +9 -0
  541. package/dist/core/routes/context.server.d.ts +17 -0
  542. package/dist/core/routes/context.server.js +29 -0
  543. package/dist/core/routes/handler.server.d.ts +58 -0
  544. package/dist/core/routes/handler.server.js +107 -0
  545. package/dist/core/routes/panel-navigation.d.ts +18 -0
  546. package/dist/core/routes/panel-navigation.js +64 -0
  547. package/dist/core/routes/util.d.ts +24 -0
  548. package/dist/core/routes/util.js +44 -0
  549. package/dist/fields/blocks/component/AddBlockButton.svelte +1 -1
  550. package/dist/fields/blocks/component/AddBlockButton.svelte.d.ts +1 -1
  551. package/dist/fields/blocks/component/Block.svelte +1 -1
  552. package/dist/fields/blocks/component/Blocks.svelte +1 -1
  553. package/dist/fields/blocks/index.d.ts +2 -1
  554. package/dist/fields/blocks/index.js +18 -2
  555. package/dist/fields/email/index.js +1 -1
  556. package/dist/fields/group/component/Group.svelte +1 -1
  557. package/dist/fields/group/component/Group.svelte.d.ts +1 -1
  558. package/dist/fields/group/index.d.ts +2 -2
  559. package/dist/fields/link/component/RessourceInput.svelte +2 -2
  560. package/dist/fields/link/index.d.ts +1 -1
  561. package/dist/fields/link/index.js +57 -60
  562. package/dist/fields/link/module.server.js +1 -1
  563. package/dist/fields/number/index.d.ts +1 -1
  564. package/dist/fields/relation/component/Cell.svelte +2 -2
  565. package/dist/fields/relation/component/Relation.svelte +13 -22
  566. package/dist/fields/relation/component/default/Default.svelte +4 -3
  567. package/dist/fields/relation/component/types.d.ts +2 -1
  568. package/dist/fields/relation/component/upload/Browse.svelte +4 -4
  569. package/dist/fields/relation/component/upload/Upload.svelte +2 -2
  570. package/dist/fields/relation/index.d.ts +11 -1
  571. package/dist/fields/relation/index.js +81 -63
  572. package/dist/fields/relation/module.server.js +3 -8
  573. package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +2 -2
  574. package/dist/fields/rich-text/core/features/resource/resource-extension.d.ts +1 -1
  575. package/dist/fields/rich-text/core/features/resource/resource.svelte +2 -2
  576. package/dist/fields/rich-text/core/features/upload/upload.svelte +2 -2
  577. package/dist/fields/slug/index.d.ts +1 -1
  578. package/dist/fields/tabs/index.d.ts +1 -1
  579. package/dist/fields/text/index.d.ts +1 -1
  580. package/dist/fields/textarea/index.d.ts +1 -1
  581. package/dist/fields/toggle/index.d.ts +1 -1
  582. package/dist/fields/tree/component/TreeBlock.svelte +1 -1
  583. package/dist/fields/tree/component/TreeBlock.svelte.d.ts +1 -1
  584. package/dist/fields/tree/component/props.d.ts +1 -1
  585. package/dist/fields/tree/index.d.ts +1 -1
  586. package/dist/fields/tree/index.js +12 -1
  587. package/dist/fields/types.d.ts +4 -9
  588. package/dist/index.d.ts +5 -2
  589. package/dist/index.js +2 -1
  590. package/dist/panel/components/Root.svelte +12 -8
  591. package/dist/panel/components/Root.svelte.d.ts +1 -1
  592. package/dist/panel/components/sections/auth/AuthForm.svelte +3 -0
  593. package/dist/panel/components/sections/collection/StatusDot.svelte +2 -1
  594. package/dist/panel/components/sections/collection/StatusDot.svelte.d.ts +1 -1
  595. package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte +1 -1
  596. package/dist/panel/components/sections/collection/folder/FolderEdit.svelte +2 -2
  597. package/dist/panel/components/sections/collection/folder/FolderEdit.svelte.d.ts +1 -1
  598. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +8 -8
  599. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte.d.ts +1 -1
  600. package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +1 -1
  601. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +7 -5
  602. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +1 -1
  603. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +9 -6
  604. package/dist/panel/components/sections/collection/header/DisplayMode.svelte +1 -2
  605. package/dist/panel/components/sections/collection/header/Header.svelte +2 -5
  606. package/dist/panel/components/sections/collection/list/CollectionList.svelte +1 -1
  607. package/dist/panel/components/sections/collection/list/header/Header.svelte +7 -1
  608. package/dist/panel/components/sections/collection/list/row/Row.svelte +9 -4
  609. package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +1 -1
  610. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte +2 -2
  611. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte.d.ts +1 -1
  612. package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +1 -1
  613. package/dist/panel/components/sections/document/AuthFooter.svelte +3 -3
  614. package/dist/panel/components/sections/document/AutoSaveBanner.svelte +115 -0
  615. package/dist/panel/components/sections/document/AutoSaveBanner.svelte.d.ts +16 -0
  616. package/dist/panel/components/sections/document/ButtonStatus.svelte +12 -5
  617. package/dist/panel/components/sections/document/CurrentlyEdited.svelte +10 -27
  618. package/dist/panel/components/sections/document/CurrentlyEdited.svelte.d.ts +6 -5
  619. package/dist/panel/components/sections/document/Document.svelte +220 -18
  620. package/dist/panel/components/sections/document/Document.svelte.d.ts +1 -1
  621. package/dist/panel/components/sections/document/Header.svelte +49 -5
  622. package/dist/panel/components/sections/document/Header.svelte.d.ts +2 -0
  623. package/dist/panel/components/sections/document/Settings.svelte +77 -21
  624. package/dist/panel/components/sections/document/Versions.svelte +140 -51
  625. package/dist/panel/components/sections/document/Versions.svelte.d.ts +11 -8
  626. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +4 -2
  627. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte.d.ts +1 -1
  628. package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte +1 -1
  629. package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte.d.ts +2 -2
  630. package/dist/panel/components/sections/document/versions-list.d.ts +10 -0
  631. package/dist/panel/components/sections/document/versions-list.js +10 -0
  632. package/dist/panel/components/sections/live/Consumer.svelte +1 -1
  633. package/dist/panel/components/sections/live/Consumer.svelte.d.ts +1 -1
  634. package/dist/panel/components/sections/live/LiveEdit.svelte +1 -1
  635. package/dist/panel/components/ui/card-resource/card-resource.svelte +13 -2
  636. package/dist/panel/components/ui/nav/Nav.svelte +3 -3
  637. package/dist/panel/components/ui/nav/NavItem.svelte +2 -1
  638. package/dist/panel/components/ui/nav/UserButton.svelte +1 -1
  639. package/dist/panel/context/collection.svelte.d.ts +2 -2
  640. package/dist/panel/context/collection.svelte.js +6 -7
  641. package/dist/panel/context/config.svelte.d.ts +1 -1
  642. package/dist/panel/context/documentForm.svelte.d.ts +19 -3
  643. package/dist/panel/context/documentForm.svelte.js +210 -36
  644. package/dist/panel/context/live.svelte.d.ts +1 -1
  645. package/dist/panel/context/live.svelte.js +2 -2
  646. package/dist/panel/context/user.svelte.d.ts +1 -1
  647. package/dist/panel/context/versions.svelte.d.ts +8 -0
  648. package/dist/panel/context/versions.svelte.js +34 -0
  649. package/dist/panel/index.d.ts +15 -12
  650. package/dist/panel/index.js +1 -3
  651. package/dist/panel/pages/area/Area.svelte +7 -2
  652. package/dist/panel/pages/area/Area.svelte.d.ts +1 -1
  653. package/dist/panel/pages/area/actions.server.js +31 -17
  654. package/dist/panel/pages/area/load.server.d.ts +1 -1
  655. package/dist/panel/pages/area/load.server.js +10 -25
  656. package/dist/panel/pages/auth/fields.js +1 -1
  657. package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +1 -1
  658. package/dist/panel/pages/auth/forgot-password/load.server.js +3 -2
  659. package/dist/panel/pages/auth/reset-password/ResetPassword.svelte +1 -1
  660. package/dist/panel/pages/auth/reset-password/load.server.js +3 -2
  661. package/dist/panel/pages/auth/sign-in/SignIn.svelte +1 -1
  662. package/dist/panel/pages/auth/sign-in/load.server.d.ts +1 -1
  663. package/dist/panel/pages/auth/sign-in/load.server.js +5 -4
  664. package/dist/panel/pages/collection/Collection.svelte +15 -138
  665. package/dist/panel/pages/collection/Collection.svelte.d.ts +5 -8
  666. package/dist/panel/pages/collection/CollectionPage.svelte +146 -0
  667. package/dist/panel/pages/collection/CollectionPage.svelte.d.ts +18 -0
  668. package/dist/panel/pages/collection/load.server.d.ts +3 -3
  669. package/dist/panel/pages/collection/load.server.js +8 -10
  670. package/dist/panel/pages/collection-document/CollectionDocument.svelte +7 -2
  671. package/dist/panel/pages/collection-document/CollectionDocument.svelte.d.ts +1 -1
  672. package/dist/panel/pages/collection-document/actions.server.js +28 -12
  673. package/dist/panel/pages/collection-document/load.server.d.ts +1 -1
  674. package/dist/panel/pages/collection-document/load.server.js +16 -25
  675. package/dist/panel/pages/dashboard/Dashboard.svelte +1 -1
  676. package/dist/panel/pages/dashboard/Dashboard.svelte.d.ts +1 -1
  677. package/dist/panel/pages/dashboard/load.server.js +23 -21
  678. package/dist/panel/pages/dashboard/types.d.ts +1 -1
  679. package/dist/panel/pages/live/Live.svelte +1 -2
  680. package/dist/panel/pages/live/load.server.js +1 -1
  681. package/dist/panel/types.d.ts +2 -2
  682. package/dist/panel/util/live.server.d.ts +1 -1
  683. package/dist/panel/util/live.server.js +2 -2
  684. package/dist/panel/util/url.d.ts +0 -35
  685. package/dist/panel/util/url.js +1 -43
  686. package/dist/server.d.ts +6 -5
  687. package/dist/server.js +6 -5
  688. package/dist/types.d.ts +12 -6
  689. package/dist/util/coerce.d.ts +12 -0
  690. package/dist/util/coerce.js +38 -0
  691. package/dist/util/index.d.ts +16 -9
  692. package/dist/util/index.js +14 -12
  693. package/dist/util/object.d.ts +10 -0
  694. package/dist/util/object.js +14 -1
  695. package/dist/util/path.d.ts +16 -0
  696. package/dist/util/path.js +19 -0
  697. package/dist/util/string.d.ts +25 -0
  698. package/dist/util/string.js +30 -0
  699. package/dist/util/types.d.ts +5 -10
  700. package/dist/util/types.js +5 -0
  701. package/package.json +83 -21
  702. package/dist/.rime-modules.d.ts +0 -23
  703. package/dist/.rime-modules.json +0 -1
  704. package/dist/adapter-sqlite/generate-schema/relations/definition.server.d.ts +0 -55
  705. package/dist/adapter-sqlite/generate-schema/relations/definition.server.js +0 -52
  706. package/dist/adapter-sqlite/generate-schema/util.server.d.ts +0 -49
  707. package/dist/adapter-sqlite/generate-schema/util.server.js +0 -58
  708. package/dist/adapter-sqlite/orderBy.server.d.ts +0 -11
  709. package/dist/adapter-sqlite/orderBy.server.js +0 -98
  710. package/dist/adapter-sqlite/url.server.d.ts +0 -14
  711. package/dist/adapter-sqlite/url.server.js +0 -77
  712. package/dist/adapter-sqlite/util.server.d.ts +0 -174
  713. package/dist/adapter-sqlite/util.server.js +0 -357
  714. package/dist/adapter-sqlite/with.server.d.ts +0 -9
  715. package/dist/adapter-sqlite/with.server.js +0 -266
  716. package/dist/core/areas/config/augment-hooks.server.d.ts +0 -10
  717. package/dist/core/areas/config/augment-hooks.server.js +0 -51
  718. package/dist/core/areas/config/augment-metas.d.ts +0 -10
  719. package/dist/core/areas/config/augment-metas.js +0 -13
  720. package/dist/core/areas/config/augment-title.d.ts +0 -9
  721. package/dist/core/areas/config/augment-title.js +0 -8
  722. package/dist/core/areas/config/augment-url.d.ts +0 -10
  723. package/dist/core/areas/config/augment-url.js +0 -14
  724. package/dist/core/areas/config/augment-versions.d.ts +0 -14
  725. package/dist/core/areas/config/augment-versions.js +0 -25
  726. package/dist/core/areas/config/builder.d.ts +0 -3
  727. package/dist/core/areas/config/builder.js +0 -33
  728. package/dist/core/areas/config/builder.server.d.ts +0 -15
  729. package/dist/core/areas/config/builder.server.js +0 -35
  730. package/dist/core/areas/local-api.server.d.ts +0 -80
  731. package/dist/core/areas/local-api.server.js +0 -126
  732. package/dist/core/areas/operations/find.d.ts +0 -15
  733. package/dist/core/areas/operations/find.js +0 -52
  734. package/dist/core/areas/operations/update.d.ts +0 -15
  735. package/dist/core/areas/operations/update.js +0 -101
  736. package/dist/core/areas/rest/get.server.d.ts +0 -18
  737. package/dist/core/areas/rest/get.server.js +0 -45
  738. package/dist/core/areas/rest/index.server.d.ts +0 -6
  739. package/dist/core/areas/rest/index.server.js +0 -3
  740. package/dist/core/areas/rest/update.server.d.ts +0 -18
  741. package/dist/core/areas/rest/update.server.js +0 -43
  742. package/dist/core/collections/auth/constant.server.d.ts +0 -9
  743. package/dist/core/collections/auth/constant.server.js +0 -9
  744. package/dist/core/collections/auth/fields.d.ts +0 -13
  745. package/dist/core/collections/auth/fields.js +0 -55
  746. package/dist/core/collections/auth/hooks/after-create/populate-api-key.server.d.ts +0 -5
  747. package/dist/core/collections/auth/hooks/after-create/populate-api-key.server.js +0 -22
  748. package/dist/core/collections/auth/hooks/after-delete/delete-better-auth-user.server.d.ts +0 -4
  749. package/dist/core/collections/auth/hooks/after-delete/delete-better-auth-user.server.js +0 -25
  750. package/dist/core/collections/auth/hooks/before-create/create-better-auth-user.server.d.ts +0 -4
  751. package/dist/core/collections/auth/hooks/before-create/create-better-auth-user.server.js +0 -187
  752. package/dist/core/collections/auth/hooks/before-delete/prevent-superadmin-deletion.server.d.ts +0 -1
  753. package/dist/core/collections/auth/hooks/before-delete/prevent-superadmin-deletion.server.js +0 -10
  754. package/dist/core/collections/auth/hooks/before-read/remove-private-fields.server.d.ts +0 -1
  755. package/dist/core/collections/auth/hooks/before-read/remove-private-fields.server.js +0 -8
  756. package/dist/core/collections/auth/hooks/before-update/forward-roles.server.d.ts +0 -4
  757. package/dist/core/collections/auth/hooks/before-update/forward-roles.server.js +0 -54
  758. package/dist/core/collections/auth/hooks/before-update/prevent-superadmin-mutation.server.d.ts +0 -5
  759. package/dist/core/collections/auth/hooks/before-update/prevent-superadmin-mutation.server.js +0 -27
  760. package/dist/core/collections/auth/hooks/before-update/prevent-user-mutations.server.d.ts +0 -5
  761. package/dist/core/collections/auth/hooks/before-update/prevent-user-mutations.server.js +0 -18
  762. package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.d.ts +0 -6
  763. package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.js +0 -21
  764. package/dist/core/collections/auth/hooks/hooks.server.d.ts +0 -8
  765. package/dist/core/collections/auth/hooks/hooks.server.js +0 -8
  766. package/dist/core/collections/auth/types.d.ts +0 -8
  767. package/dist/core/collections/auth/util.d.ts +0 -13
  768. package/dist/core/collections/config/augment-auth.d.ts +0 -17
  769. package/dist/core/collections/config/augment-auth.js +0 -88
  770. package/dist/core/collections/config/augment-auth.server.d.ts +0 -3
  771. package/dist/core/collections/config/augment-auth.server.js +0 -23
  772. package/dist/core/collections/config/augment-hooks.server.d.ts +0 -14
  773. package/dist/core/collections/config/augment-hooks.server.js +0 -98
  774. package/dist/core/collections/config/augment-label.d.ts +0 -6
  775. package/dist/core/collections/config/augment-metas.d.ts +0 -9
  776. package/dist/core/collections/config/augment-metas.js +0 -12
  777. package/dist/core/collections/config/augment-nested.d.ts +0 -12
  778. package/dist/core/collections/config/augment-nested.js +0 -15
  779. package/dist/core/collections/config/augment-nested.server.d.ts +0 -12
  780. package/dist/core/collections/config/augment-nested.server.js +0 -18
  781. package/dist/core/collections/config/augment-panel.d.ts +0 -13
  782. package/dist/core/collections/config/augment-panel.js +0 -19
  783. package/dist/core/collections/config/augment-thumbnail.d.ts +0 -16
  784. package/dist/core/collections/config/augment-thumbnail.js +0 -15
  785. package/dist/core/collections/config/augment-title.d.ts +0 -16
  786. package/dist/core/collections/config/augment-title.js +0 -27
  787. package/dist/core/collections/config/augment-upload.d.ts +0 -10
  788. package/dist/core/collections/config/augment-upload.js +0 -59
  789. package/dist/core/collections/config/augment-upload.server.d.ts +0 -7
  790. package/dist/core/collections/config/augment-upload.server.js +0 -19
  791. package/dist/core/collections/config/augment-url.d.ts +0 -10
  792. package/dist/core/collections/config/augment-url.js +0 -14
  793. package/dist/core/collections/config/augment-versions.d.ts +0 -14
  794. package/dist/core/collections/config/augment-versions.js +0 -24
  795. package/dist/core/collections/config/builder.d.ts +0 -3
  796. package/dist/core/collections/config/builder.js +0 -51
  797. package/dist/core/collections/config/builder.server.d.ts +0 -15
  798. package/dist/core/collections/config/builder.server.js +0 -47
  799. package/dist/core/collections/config/types.d.ts +0 -3
  800. package/dist/core/collections/local-api.server.d.ts +0 -166
  801. package/dist/core/collections/local-api.server.js +0 -303
  802. package/dist/core/collections/nested/hooks/index.server.d.ts +0 -4
  803. package/dist/core/collections/nested/hooks/index.server.js +0 -33
  804. package/dist/core/collections/operations/create.d.ts +0 -16
  805. package/dist/core/collections/operations/create.js +0 -119
  806. package/dist/core/collections/operations/delete.d.ts +0 -17
  807. package/dist/core/collections/operations/delete.js +0 -32
  808. package/dist/core/collections/operations/deleteById.d.ts +0 -13
  809. package/dist/core/collections/operations/deleteById.js +0 -48
  810. package/dist/core/collections/operations/duplicate.d.ts +0 -12
  811. package/dist/core/collections/operations/duplicate.js +0 -142
  812. package/dist/core/collections/operations/find.d.ts +0 -21
  813. package/dist/core/collections/operations/find.js +0 -70
  814. package/dist/core/collections/operations/findById.d.ts +0 -16
  815. package/dist/core/collections/operations/findById.js +0 -53
  816. package/dist/core/collections/operations/updateById.d.ts +0 -20
  817. package/dist/core/collections/operations/updateById.js +0 -111
  818. package/dist/core/collections/rest/create.server.d.ts +0 -18
  819. package/dist/core/collections/rest/create.server.js +0 -37
  820. package/dist/core/collections/rest/delete.server.d.ts +0 -18
  821. package/dist/core/collections/rest/delete.server.js +0 -37
  822. package/dist/core/collections/rest/deleteById.server.d.ts +0 -18
  823. package/dist/core/collections/rest/deleteById.server.js +0 -21
  824. package/dist/core/collections/rest/duplicate.server.d.ts +0 -15
  825. package/dist/core/collections/rest/duplicate.server.js +0 -20
  826. package/dist/core/collections/rest/get.server.d.ts +0 -18
  827. package/dist/core/collections/rest/get.server.js +0 -50
  828. package/dist/core/collections/rest/getById.server.d.ts +0 -18
  829. package/dist/core/collections/rest/getById.server.js +0 -35
  830. package/dist/core/collections/rest/index.server.d.ts +0 -16
  831. package/dist/core/collections/rest/index.server.js +0 -16
  832. package/dist/core/collections/rest/updateById.server.d.ts +0 -18
  833. package/dist/core/collections/rest/updateById.server.js +0 -44
  834. package/dist/core/collections/upload/disk/delete.server.d.ts +0 -9
  835. package/dist/core/collections/upload/disk/delete.server.js +0 -77
  836. package/dist/core/collections/upload/disk/save.server.d.ts +0 -32
  837. package/dist/core/collections/upload/disk/save.server.js +0 -190
  838. package/dist/core/collections/upload/hooks/clean-up-files.server.d.ts +0 -10
  839. package/dist/core/collections/upload/hooks/clean-up-files.server.js +0 -17
  840. package/dist/core/collections/upload/hooks/convert-base64.server.d.ts +0 -13
  841. package/dist/core/collections/upload/hooks/convert-base64.server.js +0 -36
  842. package/dist/core/collections/upload/hooks/extract-path.server.d.ts +0 -6
  843. package/dist/core/collections/upload/hooks/extract-path.server.js +0 -25
  844. package/dist/core/collections/upload/hooks/handle-path-creation.server.d.ts +0 -6
  845. package/dist/core/collections/upload/hooks/handle-path-creation.server.js +0 -64
  846. package/dist/core/collections/upload/hooks/populate-sizes.server.d.ts +0 -1
  847. package/dist/core/collections/upload/hooks/populate-sizes.server.js +0 -45
  848. package/dist/core/collections/upload/hooks/process-file-upload.server.d.ts +0 -20
  849. package/dist/core/collections/upload/hooks/process-file-upload.server.js +0 -60
  850. package/dist/core/collections/upload/hooks/update-directory-children.server.d.ts +0 -2
  851. package/dist/core/collections/upload/hooks/update-directory-children.server.js +0 -41
  852. package/dist/core/collections/upload/upload.d.ts +0 -16
  853. package/dist/core/collections/upload/util/config.d.ts +0 -16
  854. package/dist/core/collections/upload/util/converter.server.d.ts +0 -16
  855. package/dist/core/collections/upload/util/converter.server.js +0 -105
  856. package/dist/core/collections/upload/util/path.d.ts +0 -66
  857. package/dist/core/collections/upload/util/path.js +0 -139
  858. package/dist/core/collections/versions/operations.d.ts +0 -93
  859. package/dist/core/collections/versions/operations.js +0 -117
  860. package/dist/core/config/auth/better-auth-hooks.server.js +0 -138
  861. package/dist/core/config/auth/better-auth.server.d.ts +0 -2121
  862. package/dist/core/config/auth/better-auth.server.js +0 -81
  863. package/dist/core/config/client/augment-directories.d.ts +0 -6
  864. package/dist/core/config/client/augment-directories.js +0 -11
  865. package/dist/core/config/client/augment-panel.d.ts +0 -35
  866. package/dist/core/config/client/augment-panel.js +0 -22
  867. package/dist/core/config/client/augment-plugins.d.ts +0 -4
  868. package/dist/core/config/client/augment-plugins.js +0 -13
  869. package/dist/core/config/client/augment-staff.d.ts +0 -7
  870. package/dist/core/config/client/augment-staff.js +0 -6
  871. package/dist/core/config/client/build-config.d.ts +0 -41
  872. package/dist/core/config/client/build-config.js +0 -13
  873. package/dist/core/config/client/index.d.ts +0 -4
  874. package/dist/core/config/client/index.js +0 -4
  875. package/dist/core/config/config-context.server.d.ts +0 -70
  876. package/dist/core/config/config-context.server.js +0 -113
  877. package/dist/core/config/server/augment-cors.server.d.ts +0 -4
  878. package/dist/core/config/server/augment-cors.server.js +0 -7
  879. package/dist/core/config/server/augment-directories.server.d.ts +0 -6
  880. package/dist/core/config/server/augment-directories.server.js +0 -37
  881. package/dist/core/config/server/augment-panel-access.server.d.ts +0 -28
  882. package/dist/core/config/server/augment-panel-access.server.js +0 -8
  883. package/dist/core/config/server/augment-plugins.server.d.ts +0 -5
  884. package/dist/core/config/server/augment-plugins.server.js +0 -45
  885. package/dist/core/config/server/augment-staff.server.d.ts +0 -7
  886. package/dist/core/config/server/augment-staff.server.js +0 -6
  887. package/dist/core/config/server/build-config.server.d.ts +0 -123
  888. package/dist/core/config/server/build-config.server.js +0 -28
  889. package/dist/core/config/server/index.server.d.ts +0 -9
  890. package/dist/core/config/server/index.server.js +0 -11
  891. package/dist/core/config/server/validate.server.d.ts +0 -3
  892. package/dist/core/config/server/validate.server.js +0 -234
  893. package/dist/core/config/server/write.server.js +0 -77
  894. package/dist/core/config/shared/augment-icons.d.ts +0 -9
  895. package/dist/core/config/shared/augment-icons.js +0 -11
  896. package/dist/core/config/shared/augment-prototypes.d.ts +0 -8
  897. package/dist/core/config/shared/augment-prototypes.js +0 -7
  898. package/dist/core/config/shared/compile.d.ts +0 -19
  899. package/dist/core/config/shared/compile.js +0 -26
  900. package/dist/core/config/shared/find-thumbnail.d.ts +0 -9
  901. package/dist/core/config/shared/find-thumbnail.js +0 -34
  902. package/dist/core/config/shared/find-title.d.ts +0 -14
  903. package/dist/core/config/shared/find-title.js +0 -35
  904. package/dist/core/config/shared/get-staff-collection.d.ts +0 -22
  905. package/dist/core/config/shared/get-staff-collection.js +0 -55
  906. package/dist/core/config/shared/upload-directories.d.ts +0 -7
  907. package/dist/core/config/shared/upload-directories.js +0 -55
  908. package/dist/core/config/shared/versions-alias.server.d.ts +0 -10
  909. package/dist/core/config/shared/versions-alias.server.js +0 -59
  910. package/dist/core/constant.d.ts +0 -62
  911. package/dist/core/constant.js +0 -73
  912. package/dist/core/constant.server.d.ts +0 -2
  913. package/dist/core/constant.server.js +0 -3
  914. package/dist/core/dev/cache/index.server.d.ts +0 -11
  915. package/dist/core/dev/cache/index.server.js +0 -37
  916. package/dist/core/dev/cli/build/index.js +0 -70
  917. package/dist/core/dev/cli/build/templates.js +0 -45
  918. package/dist/core/dev/cli/clear/index.server.js +0 -42
  919. package/dist/core/dev/cli/generate/index.server.js +0 -98
  920. package/dist/core/dev/cli/generate-manifest/index.server.d.ts +0 -17
  921. package/dist/core/dev/cli/generate-manifest/index.server.js +0 -221
  922. package/dist/core/dev/cli/init/index.server.js +0 -241
  923. package/dist/core/dev/cli/init/templates.js +0 -116
  924. package/dist/core/dev/cli/util/log.server.d.ts +0 -1
  925. package/dist/core/dev/cli/util/log.server.js +0 -4
  926. package/dist/core/dev/constants.d.ts +0 -34
  927. package/dist/core/dev/constants.js +0 -76
  928. package/dist/core/dev/generate/routes/common.server.d.ts +0 -17
  929. package/dist/core/dev/generate/routes/common.server.js +0 -500
  930. package/dist/core/dev/generate/routes/custom-css.server.js +0 -86
  931. package/dist/core/dev/generate/routes/index.server.d.ts +0 -15
  932. package/dist/core/dev/generate/routes/index.server.js +0 -89
  933. package/dist/core/dev/generate/routes/util.server.d.ts +0 -50
  934. package/dist/core/dev/generate/routes/util.server.js +0 -112
  935. package/dist/core/dev/generate/runtime/index.server.d.ts +0 -44
  936. package/dist/core/dev/generate/runtime/index.server.js +0 -92
  937. package/dist/core/dev/generate/runtime/parse-exports.server.d.ts +0 -7
  938. package/dist/core/dev/generate/runtime/parse-exports.server.js +0 -40
  939. package/dist/core/dev/generate/sanitize/index.server.js +0 -834
  940. package/dist/core/dev/generate/types/index.server.js +0 -368
  941. package/dist/core/dev/vite/index.server.js +0 -308
  942. package/dist/core/ensure.server.d.ts +0 -34
  943. package/dist/core/ensure.server.js +0 -91
  944. package/dist/core/handlers/auth.server.js +0 -162
  945. package/dist/core/handlers/cors.server.js +0 -73
  946. package/dist/core/handlers/index.d.ts +0 -3
  947. package/dist/core/handlers/index.js +0 -16
  948. package/dist/core/handlers/main.server.d.ts +0 -4
  949. package/dist/core/handlers/main.server.js +0 -14
  950. package/dist/core/handlers/plugins.server.js +0 -10
  951. package/dist/core/handlers/routes.server.d.ts +0 -71
  952. package/dist/core/handlers/routes.server.js +0 -89
  953. package/dist/core/naming.d.ts +0 -82
  954. package/dist/core/naming.js +0 -86
  955. package/dist/core/operations/blocks/diff.server.d.ts +0 -15
  956. package/dist/core/operations/blocks/diff.server.js +0 -82
  957. package/dist/core/operations/blocks/extract.server.d.ts +0 -9
  958. package/dist/core/operations/blocks/extract.server.js +0 -33
  959. package/dist/core/operations/blocks/index.server.d.ts +0 -26
  960. package/dist/core/operations/blocks/index.server.js +0 -71
  961. package/dist/core/operations/configMap/buildTreeMap.d.ts +0 -4
  962. package/dist/core/operations/configMap/index.d.ts +0 -6
  963. package/dist/core/operations/configMap/index.js +0 -54
  964. package/dist/core/operations/extract-data.server.d.ts +0 -37
  965. package/dist/core/operations/extract-data.server.js +0 -101
  966. package/dist/core/operations/hooks/before-create/merge-with-blank.server.d.ts +0 -1
  967. package/dist/core/operations/hooks/before-create/merge-with-blank.server.js +0 -24
  968. package/dist/core/operations/hooks/before-operation/authorize.server.d.ts +0 -1
  969. package/dist/core/operations/hooks/before-operation/authorize.server.js +0 -32
  970. package/dist/core/operations/hooks/before-read/populate-url.server.d.ts +0 -4
  971. package/dist/core/operations/hooks/before-read/populate-url.server.js +0 -108
  972. package/dist/core/operations/hooks/before-read/process-document-fields.server.d.ts +0 -1
  973. package/dist/core/operations/hooks/before-read/process-document-fields.server.js +0 -58
  974. package/dist/core/operations/hooks/before-read/set-document-locale.server.d.ts +0 -1
  975. package/dist/core/operations/hooks/before-read/set-document-locale.server.js +0 -15
  976. package/dist/core/operations/hooks/before-read/set-document-thumbnail.server.d.ts +0 -1
  977. package/dist/core/operations/hooks/before-read/set-document-thumbnail.server.js +0 -34
  978. package/dist/core/operations/hooks/before-read/set-document-title.server.d.ts +0 -1
  979. package/dist/core/operations/hooks/before-read/set-document-title.server.js +0 -29
  980. package/dist/core/operations/hooks/before-read/set-document-type.server.d.ts +0 -1
  981. package/dist/core/operations/hooks/before-read/set-document-type.server.js +0 -14
  982. package/dist/core/operations/hooks/before-read/sort-document-props.server.d.ts +0 -1
  983. package/dist/core/operations/hooks/before-read/sort-document-props.server.js +0 -63
  984. package/dist/core/operations/hooks/before-update/define-version-operation.server.d.ts +0 -1
  985. package/dist/core/operations/hooks/before-update/define-version-operation.server.js +0 -18
  986. package/dist/core/operations/hooks/before-update/get-original-document.server.d.ts +0 -1
  987. package/dist/core/operations/hooks/before-update/get-original-document.server.js +0 -37
  988. package/dist/core/operations/hooks/before-upsert/data-config-map.server.d.ts +0 -1
  989. package/dist/core/operations/hooks/before-upsert/data-config-map.server.js +0 -12
  990. package/dist/core/operations/hooks/before-upsert/handle-new-version.server.d.ts +0 -5
  991. package/dist/core/operations/hooks/before-upsert/handle-new-version.server.js +0 -98
  992. package/dist/core/operations/hooks/before-upsert/original-config-map.server.d.ts +0 -1
  993. package/dist/core/operations/hooks/before-upsert/original-config-map.server.js +0 -16
  994. package/dist/core/operations/hooks/before-upsert/set-default-values.server.d.ts +0 -10
  995. package/dist/core/operations/hooks/before-upsert/set-default-values.server.js +0 -70
  996. package/dist/core/operations/hooks/before-upsert/validate-fields.server.d.ts +0 -1
  997. package/dist/core/operations/hooks/before-upsert/validate-fields.server.js +0 -150
  998. package/dist/core/operations/hooks/index.server.d.ts +0 -128
  999. package/dist/core/operations/hooks/index.server.js +0 -45
  1000. package/dist/core/operations/relations/diff.server.d.ts +0 -14
  1001. package/dist/core/operations/relations/diff.server.js +0 -47
  1002. package/dist/core/operations/relations/extract.server.d.ts +0 -11
  1003. package/dist/core/operations/relations/extract.server.js +0 -59
  1004. package/dist/core/operations/relations/index.server.d.ts +0 -25
  1005. package/dist/core/operations/relations/index.server.js +0 -68
  1006. package/dist/core/operations/shared/fallback-data-from-original.d.ts +0 -9
  1007. package/dist/core/operations/shared/fallback-data-from-original.js +0 -31
  1008. package/dist/core/operations/tree/diff.server.d.ts +0 -20
  1009. package/dist/core/operations/tree/diff.server.js +0 -64
  1010. package/dist/core/operations/tree/extract.server.d.ts +0 -9
  1011. package/dist/core/operations/tree/extract.server.js +0 -34
  1012. package/dist/core/operations/tree/index.server.d.ts +0 -12
  1013. package/dist/core/operations/tree/index.server.js +0 -52
  1014. package/dist/core/plugins/api-init/index.d.ts +0 -2
  1015. package/dist/core/plugins/api-init/index.js +0 -1
  1016. package/dist/core/plugins/api-init/module.server.js +0 -83
  1017. package/dist/core/plugins/mailer/index.d.ts +0 -2
  1018. package/dist/core/plugins/mailer/index.js +0 -1
  1019. package/dist/core/plugins/mailer/module.server.js +0 -32
  1020. package/dist/core/plugins/sse/broadcast.d.ts +0 -13
  1021. package/dist/core/plugins/sse/broadcast.js +0 -30
  1022. package/dist/core/plugins/sse/module.server.d.ts +0 -16
  1023. package/dist/core/plugins/sse/module.server.js +0 -52
  1024. package/dist/core/types/doc.d.ts +0 -74
  1025. package/dist/core/types/index.d.ts +0 -5
  1026. package/dist/panel/navigation.d.ts +0 -18
  1027. package/dist/panel/navigation.js +0 -64
  1028. package/dist/panel/pages/area/AreaVersionsDoc.svelte +0 -24
  1029. package/dist/panel/pages/area/AreaVersionsDoc.svelte.d.ts +0 -7
  1030. package/dist/panel/pages/collection-document/CollectionDocVersions.svelte +0 -29
  1031. package/dist/panel/pages/collection-document/CollectionDocVersions.svelte.d.ts +0 -7
  1032. package/dist/util/access/index.d.ts +0 -73
  1033. package/dist/util/cases.d.ts +0 -39
  1034. package/dist/util/cases.js +0 -58
  1035. package/dist/util/doc.d.ts +0 -50
  1036. package/dist/util/doc.js +0 -140
  1037. package/dist/util/validate.js +0 -171
  1038. /package/dist/{util/access/index.js → core/auth/access.js} +0 -0
  1039. /package/dist/core/{config/auth/better-auth-hooks.server.d.ts → auth/better-auth/hooks.server.d.ts} +0 -0
  1040. /package/dist/core/{config/auth/better-auth-permissions.d.ts → auth/better-auth/permissions.d.ts} +0 -0
  1041. /package/dist/core/{config/auth/better-auth-permissions.js → auth/better-auth/permissions.js} +0 -0
  1042. /package/dist/core/{handlers/auth.server.d.ts → auth/handler/index.server.d.ts} +0 -0
  1043. /package/dist/core/{areas/config → auth}/types.js +0 -0
  1044. /package/dist/core/{collections/auth → auth}/util.js +0 -0
  1045. /package/dist/core/{handlers/cors.server.d.ts → cors/handler.server.d.ts} +0 -0
  1046. /package/dist/core/dev/cli/{build/index.d.ts → commands/build.d.ts} +0 -0
  1047. /package/dist/core/dev/cli/{clear/index.server.d.ts → commands/clear.server.d.ts} +0 -0
  1048. /package/dist/core/dev/cli/{generate/index.server.d.ts → commands/generate.server.d.ts} +0 -0
  1049. /package/dist/core/dev/cli/{init/index.server.d.ts → commands/init.server.d.ts} +0 -0
  1050. /package/dist/core/dev/cli/{build/templates.d.ts → templates/build.d.ts} +0 -0
  1051. /package/dist/core/dev/cli/{init/templates.d.ts → templates/init.d.ts} +0 -0
  1052. /package/dist/core/dev/{generate → codegen}/routes/custom-css.server.d.ts +0 -0
  1053. /package/dist/core/dev/{generate → codegen}/sanitize/index.server.d.ts +0 -0
  1054. /package/dist/core/dev/{generate → codegen}/types/index.server.d.ts +0 -0
  1055. /package/dist/core/{config/server/write.server.d.ts → dev/config-memo.server.d.ts} +0 -0
  1056. /package/dist/core/dev/{vite/index.server.d.ts → vite.server.d.ts} +0 -0
  1057. /package/dist/core/{collections/auth → fields}/types.js +0 -0
  1058. /package/dist/{util → core/fields}/validate.d.ts +0 -0
  1059. /package/dist/core/{collections/config → locale}/types.js +0 -0
  1060. /package/dist/core/{logger/index.server.d.ts → logger.server.d.ts} +0 -0
  1061. /package/dist/core/{logger/index.server.js → logger.server.js} +0 -0
  1062. /package/dist/core/{operations/configMap → panel}/types.js +0 -0
  1063. /package/dist/core/{operations/configMap/buildTreeMap.js → pipeline/config-map/build-tree-map.js} +0 -0
  1064. /package/dist/core/{operations/configMap → pipeline/config-map}/types.d.ts +0 -0
  1065. /package/dist/core/{types/doc.js → pipeline/config-map/types.js} +0 -0
  1066. /package/dist/core/plugins/api-init/{module.server.d.ts → index.server.d.ts} +0 -0
  1067. /package/dist/core/{types/index.js → plugins/cache/types.js} +0 -0
  1068. /package/dist/core/plugins/mailer/{module.server.d.ts → index.server.d.ts} +0 -0
  1069. /package/dist/core/{handlers → plugins}/plugins.server.d.ts +0 -0
  1070. /package/dist/core/{areas/config → prototype/area}/types.d.ts +0 -0
  1071. /package/dist/core/{collections/config → prototype/collection}/augment-label.js +0 -0
  1072. /package/dist/core/{collections → prototype/collection}/upload/util/client.d.ts +0 -0
  1073. /package/dist/core/{collections → prototype/collection}/upload/util/client.js +0 -0
  1074. /package/dist/core/{collections → prototype/collection}/upload/util/config.js +0 -0
  1075. /package/dist/core/{collections → prototype/collection}/upload/util/mime.d.ts +0 -0
  1076. /package/dist/core/{collections → prototype/collection}/upload/util/mime.js +0 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The two prototypes, isomorphic halves.
3
+ *
4
+ * There was a registry here — `prototypeNames`, `protos`, `prototypes`, plus folds over them. It
5
+ * bought core the ability never to write the words `collection` and `area`, and it cost the folder
6
+ * its entry point: three exports that were three views of the same two objects, and callers that
7
+ * merged both lists only to split them apart again further down.
8
+ *
9
+ * The server halves are **not** re-exported here. They carry `api`, `rest` and `boot`, they are
10
+ * different objects under the same two names, and a caller that needs one names
11
+ * `collection/definition.server.js` — the path says which half, where the name could not.
12
+ */
13
+ export { collection } from './collection/index.js';
14
+ export { area } from './area/index.js';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A prototype slug's URL form.
3
+ *
4
+ * One canonical slug produces every other representation by pure transform, so nothing here
5
+ * knows what any particular marker means:
6
+ *
7
+ * pages -> pages
8
+ * someSlug -> some-slug
9
+ * $someSlug__versions -> some-slug--versions
10
+ * $someSlugDirectories-> some-slug-directories
11
+ *
12
+ * The `$` is dropped — it marks a slug as rime-derived for config authors, and has no business
13
+ * in a URL. The `__` becomes `--`, keeping a segment boundary visible and distinct from the
14
+ * word breaks around it.
15
+ *
16
+ * This replaced a `prototypeKebabToSlug` that matched `/(_(?:directories|versions))$/` — core
17
+ * hardcoding two features' suffixes. Going the other way is now a lookup against the config
18
+ * rather than an inverse transform (see handlers/routes.server.ts), which is both exact and
19
+ * feature-agnostic: `medias-directories` cannot be reversed by rule, since it is indistinguishable
20
+ * from a user collection named `mediasDirectories`.
21
+ */
22
+ export declare const prototypeKebab: (slug: string) => string;
@@ -0,0 +1,23 @@
1
+ import { mapSegments, toKebabCase } from '../../util/string.js';
2
+ /**
3
+ * A prototype slug's URL form.
4
+ *
5
+ * One canonical slug produces every other representation by pure transform, so nothing here
6
+ * knows what any particular marker means:
7
+ *
8
+ * pages -> pages
9
+ * someSlug -> some-slug
10
+ * $someSlug__versions -> some-slug--versions
11
+ * $someSlugDirectories-> some-slug-directories
12
+ *
13
+ * The `$` is dropped — it marks a slug as rime-derived for config authors, and has no business
14
+ * in a URL. The `__` becomes `--`, keeping a segment boundary visible and distinct from the
15
+ * word breaks around it.
16
+ *
17
+ * This replaced a `prototypeKebabToSlug` that matched `/(_(?:directories|versions))$/` — core
18
+ * hardcoding two features' suffixes. Going the other way is now a lookup against the config
19
+ * rather than an inverse transform (see handlers/routes.server.ts), which is both exact and
20
+ * feature-agnostic: `medias-directories` cannot be reversed by rule, since it is indistinguishable
21
+ * from a user collection named `mediasDirectories`.
22
+ */
23
+ export const prototypeKebab = (slug) => mapSegments(slug.replace(/^\$/, ''), toKebabCase, '--');
@@ -0,0 +1,16 @@
1
+ /**
2
+ * How long a claim on a document stays good without being renewed.
3
+ *
4
+ * The lock stops two people overwriting each other; it does not reserve a document. Nothing
5
+ * releases a claim when an editor walks away, so the expiry is what keeps an abandoned one from
6
+ * stranding the document behind whoever opened it.
7
+ */
8
+ export declare const EDIT_LOCK_TTL_MS: number;
9
+ /**
10
+ * How long a claim survives the tab going away.
11
+ *
12
+ * A release is a short lease, not a hand-back: a refresh unloads the page and reclaims it a
13
+ * moment later, and clearing the claim outright leaves a window where another tab's renewal
14
+ * takes the document from someone who never left.
15
+ */
16
+ export declare const EDIT_LOCK_TTL_AFTER_CLOSE_MS: number;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * How long a claim on a document stays good without being renewed.
3
+ *
4
+ * The lock stops two people overwriting each other; it does not reserve a document. Nothing
5
+ * releases a claim when an editor walks away, so the expiry is what keeps an abandoned one from
6
+ * stranding the document behind whoever opened it.
7
+ */
8
+ export const EDIT_LOCK_TTL_MS = 5 * 60 * 1000;
9
+ /**
10
+ * How long a claim survives the tab going away.
11
+ *
12
+ * A release is a short lease, not a hand-back: a refresh unloads the page and reclaims it a
13
+ * moment later, and clearing the claim outright leaves a window where another tab's renewal
14
+ * takes the document from someone who never left.
15
+ */
16
+ export const EDIT_LOCK_TTL_AFTER_CLOSE_MS = 10 * 1000;
@@ -0,0 +1,8 @@
1
+ export declare const metasFields: {
2
+ currentlyEditedBy: () => import("../../../../fields/text/index.js").TextFieldBuilder;
3
+ currentlyEditedAt: () => import("../../../../fields/date/index.js").DateFieldBuilder;
4
+ createdBy: () => import("../../../../fields/text/index.js").TextFieldBuilder;
5
+ createdAt: () => import("../../../../fields/date/index.js").DateFieldBuilder;
6
+ updatedBy: () => import("../../../../fields/text/index.js").TextFieldBuilder;
7
+ updatedAt: () => import("../../../../fields/date/index.js").DateFieldBuilder;
8
+ };
@@ -0,0 +1,27 @@
1
+ import { isStaff } from '../../../auth/access.js';
2
+ import { date } from '../../../../fields/date/index.js';
3
+ import { text } from '../../../../fields/text/index.js';
4
+ /**
5
+ * The metas fields, declared once for both halves of the module.
6
+ *
7
+ * Factories, not instances: a builder is mutable and ends up on one config's field list, so the
8
+ * two halves share the declaration rather than the object. `module.server.ts` calls the same
9
+ * factories and adds the foreign key to `staff` on the three id columns.
10
+ */
11
+ /**
12
+ * Who wrote a document and who is holding it open are staff business. Said on the field, so the
13
+ * pipeline enforces it for every caller — `processDocumentFields` drops what a reader may not
14
+ * see, `validateFields` drops what a writer may not set — rather than each read path remembering.
15
+ */
16
+ const staffOnly = {
17
+ read: (user) => isStaff(user),
18
+ update: (user) => isStaff(user)
19
+ };
20
+ export const metasFields = {
21
+ currentlyEditedBy: () => text('currentlyEditedBy').hidden().access(staffOnly),
22
+ currentlyEditedAt: () => date('currentlyEditedAt').hidden().access(staffOnly),
23
+ createdBy: () => text('createdBy').hidden().$root().access(staffOnly),
24
+ createdAt: () => date('createdAt').hidden(),
25
+ updatedBy: () => text('updatedBy').hidden().access(staffOnly),
26
+ updatedAt: () => date('updatedAt').hidden()
27
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Drops the edit lock from every read that is not a panel read.
3
+ *
4
+ * The fields already carry `.access({ read: isStaff })`, which answers "who may see a lock" —
5
+ * a different question from "where does a lock mean anything". It only means something in the
6
+ * panel, and a staff member reading through the API is still staff, so the field access alone
7
+ * would hand them a lock they cannot act on.
8
+ */
9
+ export declare const deletePanelLockMetas: import("../../../../pipeline/types").Hook<"raw", "read", "before">;
@@ -0,0 +1,20 @@
1
+ import { Hooks } from '../../../../pipeline/define-hook.js';
2
+ /**
3
+ * Drops the edit lock from every read that is not a panel read.
4
+ *
5
+ * The fields already carry `.access({ read: isStaff })`, which answers "who may see a lock" —
6
+ * a different question from "where does a lock mean anything". It only means something in the
7
+ * panel, and a staff member reading through the API is still staff, so the field access alone
8
+ * would hand them a lock they cannot act on.
9
+ */
10
+ export const deletePanelLockMetas = Hooks.beforeRead(async (args) => {
11
+ const { rime } = args.event.locals;
12
+ if (args.context.isSystemOperation)
13
+ return args;
14
+ if (rime.routes.isPanel)
15
+ return args;
16
+ const doc = args.doc;
17
+ delete doc.currentlyEditedBy;
18
+ delete doc.currentlyEditedAt;
19
+ return { ...args, doc };
20
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This feature's hooks, by name, so a prototype can place them as `metas.someHook`.
3
+ *
4
+ * A barrel and nothing else — see the note on `title/hooks/index.server.ts`.
5
+ */
6
+ export { deletePanelLockMetas } from './delete-panel-lock-metas.server.js';
7
+ export { stampCreatedBy, stampUpdatedBy } from './stamp-authorship.server.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This feature's hooks, by name, so a prototype can place them as `metas.someHook`.
3
+ *
4
+ * A barrel and nothing else — see the note on `title/hooks/index.server.ts`.
5
+ */
6
+ export { deletePanelLockMetas } from './delete-panel-lock-metas.server.js';
7
+ export { stampCreatedBy, stampUpdatedBy } from './stamp-authorship.server.js';
@@ -0,0 +1,2 @@
1
+ export declare const stampCreatedBy: import("../../../../pipeline/types").Hook<"raw", "create", "before">;
2
+ export declare const stampUpdatedBy: import("../../../../pipeline/types").Hook<"raw", "update", "before">;
@@ -0,0 +1,27 @@
1
+ import { Hooks } from '../../../../pipeline/define-hook.js';
2
+ /**
3
+ * Records who made a document, and who last wrote to it.
4
+ *
5
+ * Two hooks rather than one `beforeUpsert`, because they do not write the same fields: a create
6
+ * answers both questions at once, an update only the second. `createdBy` is never rewritten —
7
+ * that is the whole difference between it and `updatedBy`.
8
+ *
9
+ * **Both stand down without a user, and on a system operation.** Rime writes as itself when it
10
+ * bootstraps a singleton, propagates a document into the other locales, or migrates. None of
11
+ * those is somebody editing, and stamping them would name whoever's request happened to trigger
12
+ * the work as the author of documents they never touched.
13
+ */
14
+ /** Who is writing, when that is a person and not rime itself. */
15
+ const editor = (args) => (args.context.isSystemOperation ? undefined : args.event.locals.user?.id);
16
+ export const stampCreatedBy = Hooks.beforeCreate(async function stampCreatedBy(args) {
17
+ const by = editor(args);
18
+ if (!by)
19
+ return args;
20
+ return { ...args, data: { ...args.data, createdBy: by, updatedBy: by } };
21
+ });
22
+ export const stampUpdatedBy = Hooks.beforeUpdate(async function stampUpdatedBy(args) {
23
+ const by = editor(args);
24
+ if (!by)
25
+ return args;
26
+ return { ...args, data: { ...args.data, updatedBy: by } };
27
+ });
@@ -0,0 +1,15 @@
1
+ import type { GenericDoc } from '../../types.js';
2
+ /**
3
+ * Reading a claim. Pure, and in the isomorphic half on purpose: the server decides whether to
4
+ * grant a claim and the panel decides whether to draw the overlay, and the two have to agree on
5
+ * what "held" means.
6
+ */
7
+ /** A claim older than the TTL says nothing: whoever made it is not coming back. */
8
+ export declare const isLockStale: (at: unknown, now?: number) => boolean;
9
+ /**
10
+ * The id a claim names. A read hands the holder back joined, `{ id, name, email }`; a write and
11
+ * an older row carry the bare id.
12
+ */
13
+ export declare const lockHolderId: (doc: Partial<GenericDoc>) => string | null;
14
+ /** Somebody other than `userId` is in this document, recently enough to still mean it. */
15
+ export declare const isLockHeldByOther: (doc: Partial<GenericDoc>, userId: string, now?: number) => boolean;
@@ -0,0 +1,30 @@
1
+ import { EDIT_LOCK_TTL_MS } from './constant.js';
2
+ /**
3
+ * Reading a claim. Pure, and in the isomorphic half on purpose: the server decides whether to
4
+ * grant a claim and the panel decides whether to draw the overlay, and the two have to agree on
5
+ * what "held" means.
6
+ */
7
+ /** A claim older than the TTL says nothing: whoever made it is not coming back. */
8
+ export const isLockStale = (at, now = Date.now()) => {
9
+ if (!at)
10
+ return true;
11
+ const since = at instanceof Date ? at.getTime() : new Date(at).getTime();
12
+ return Number.isNaN(since) || now - since >= EDIT_LOCK_TTL_MS;
13
+ };
14
+ /**
15
+ * The id a claim names. A read hands the holder back joined, `{ id, name, email }`; a write and
16
+ * an older row carry the bare id.
17
+ */
18
+ export const lockHolderId = (doc) => {
19
+ const by = doc.currentlyEditedBy;
20
+ if (typeof by === 'string')
21
+ return by;
22
+ if (by && typeof by === 'object' && typeof by.id === 'string')
23
+ return by.id;
24
+ return null;
25
+ };
26
+ /** Somebody other than `userId` is in this document, recently enough to still mean it. */
27
+ export const isLockHeldByOther = (doc, userId, now = Date.now()) => {
28
+ const by = lockHolderId(doc);
29
+ return !!by && by !== userId && !isLockStale(doc.currentlyEditedAt, now);
30
+ };
@@ -0,0 +1,46 @@
1
+ import type { BuiltArea, BuiltCollection } from '../../../config/types.js';
2
+ import type { GenericDoc } from '../../types.js';
3
+ import type { RequestEvent } from '@sveltejs/kit';
4
+ type LockArgs = {
5
+ event: RequestEvent;
6
+ config: BuiltCollection | BuiltArea;
7
+ /** The document being edited. Its `versionId`, when it has one, is the row the claim sits on. */
8
+ doc: Partial<GenericDoc>;
9
+ userId: string;
10
+ };
11
+ /**
12
+ * Take the document, unless somebody else holds it.
13
+ *
14
+ * Also the renewal: a claim we already hold is rewritten with a fresh timestamp, which is what
15
+ * keeps a lock alive while its holder is still in the document. Answers whether the caller holds
16
+ * it afterwards.
17
+ *
18
+ * `force` takes it regardless — the *Take control* button, which exists to get past a claim
19
+ * somebody walked away from before it ages out.
20
+ */
21
+ export declare const claimEditLock: (args: LockArgs & {
22
+ force?: boolean;
23
+ }) => Promise<boolean>;
24
+ /**
25
+ * Give the document back, if it is ours to give — as a short lease rather than a hand-back.
26
+ *
27
+ * The claim keeps our name and is back-dated to expire in `EDIT_LOCK_TTL_AFTER_CLOSE_MS`, so a
28
+ * refresh has time to reclaim it. Clearing it outright is what let another tab's renewal take the
29
+ * document from someone who only reloaded.
30
+ *
31
+ * The `doc` guard matters: a release racing somebody else's claim would otherwise hand them a
32
+ * document with no lock on it a moment after they took it.
33
+ */
34
+ export declare const releaseEditLock: (args: LockArgs) => Promise<boolean>;
35
+ /**
36
+ * Carry a claim onto the row just made from the one it sits on.
37
+ *
38
+ * An auto-save or a fork continues the same edit on a new row. Made by the holder, the new row
39
+ * is theirs from the first moment: the claim is cleared on `doc` and stamped on `to`, and the
40
+ * client keeps renewing whatever row its form is on. Nothing moves when `doc` is held by somebody
41
+ * else, by nobody, or by a claim that has aged out.
42
+ */
43
+ export declare const moveEditLock: (args: LockArgs & {
44
+ to: Partial<GenericDoc>;
45
+ }) => Promise<boolean>;
46
+ export {};
@@ -0,0 +1,91 @@
1
+ import { logger } from '../../../logger.server.js';
2
+ import { EDIT_LOCK_TTL_AFTER_CLOSE_MS, EDIT_LOCK_TTL_MS } from './constant.js';
3
+ import { isLockHeldByOther, isLockStale, lockHolderId } from './lock.js';
4
+ /**
5
+ * Write the lock fields and nothing else, on the row being edited.
6
+ *
7
+ * **Which row.** The lock is not `$root()`, so on a versioned config it lives with the content —
8
+ * one claim per revision. Two people on two different versions are not editing the same thing, and
9
+ * locking one must not lock the other. Where there are no versions there is one row and this
10
+ * resolves to it.
11
+ *
12
+ * **`updateWhere` rather than `update`**: a table, a filter and a patch, writing exactly the
13
+ * columns it is given. Opening a document is not editing it, so the write leaves `updatedAt` where
14
+ * it is and never runs the pipeline — which would stamp `updatedBy` and cut a revision whose only
15
+ * change is who is looking at it.
16
+ */
17
+ const writeLock = async (args, data) => {
18
+ const { event, config, doc } = args;
19
+ const { rime } = event.locals;
20
+ const versionsSlug = config._versions?.slug;
21
+ // A versioned config keeps these columns on its versions table and nowhere else — they are not
22
+ // `$root()`. Writing to the base row would target columns that table does not have, so a
23
+ // versioned document with no `versionId` is a caller bug, not a row to guess at.
24
+ if (versionsSlug && !doc.versionId) {
25
+ logger.warn(`edit lock on ${config.slug}: versioned document with no versionId, ignored`);
26
+ return;
27
+ }
28
+ const id = versionsSlug ? doc.versionId : doc.id;
29
+ await rime.adapter.contentOwner(config.slug).updateWhere({
30
+ query: `where[id][equals]=${id}`,
31
+ data
32
+ });
33
+ // Tell whoever else has the document open, so they reload — for the overlay, and for the
34
+ // content, which the holder has usually just changed. Only when the lock actually changed
35
+ // hands: a claim is also the renewal, and those would reach every client twice a TTL.
36
+ if (lockHolderId(doc) !== data.currentlyEditedBy) {
37
+ // Keyed on the document's own id, not the version row's — it is what the panel subscribed to.
38
+ rime.sse.emit(`rime:${config.slug}:${doc.id}`, 'rime:lock');
39
+ }
40
+ };
41
+ /**
42
+ * Take the document, unless somebody else holds it.
43
+ *
44
+ * Also the renewal: a claim we already hold is rewritten with a fresh timestamp, which is what
45
+ * keeps a lock alive while its holder is still in the document. Answers whether the caller holds
46
+ * it afterwards.
47
+ *
48
+ * `force` takes it regardless — the *Take control* button, which exists to get past a claim
49
+ * somebody walked away from before it ages out.
50
+ */
51
+ export const claimEditLock = async (args) => {
52
+ if (!args.force && isLockHeldByOther(args.doc, args.userId))
53
+ return false;
54
+ await writeLock(args, { currentlyEditedBy: args.userId, currentlyEditedAt: new Date() });
55
+ return true;
56
+ };
57
+ /**
58
+ * Give the document back, if it is ours to give — as a short lease rather than a hand-back.
59
+ *
60
+ * The claim keeps our name and is back-dated to expire in `EDIT_LOCK_TTL_AFTER_CLOSE_MS`, so a
61
+ * refresh has time to reclaim it. Clearing it outright is what let another tab's renewal take the
62
+ * document from someone who only reloaded.
63
+ *
64
+ * The `doc` guard matters: a release racing somebody else's claim would otherwise hand them a
65
+ * document with no lock on it a moment after they took it.
66
+ */
67
+ export const releaseEditLock = async (args) => {
68
+ if (lockHolderId(args.doc) !== args.userId)
69
+ return false;
70
+ await writeLock(args, {
71
+ currentlyEditedBy: args.userId,
72
+ currentlyEditedAt: new Date(Date.now() - EDIT_LOCK_TTL_MS + EDIT_LOCK_TTL_AFTER_CLOSE_MS)
73
+ });
74
+ return true;
75
+ };
76
+ /**
77
+ * Carry a claim onto the row just made from the one it sits on.
78
+ *
79
+ * An auto-save or a fork continues the same edit on a new row. Made by the holder, the new row
80
+ * is theirs from the first moment: the claim is cleared on `doc` and stamped on `to`, and the
81
+ * client keeps renewing whatever row its form is on. Nothing moves when `doc` is held by somebody
82
+ * else, by nobody, or by a claim that has aged out.
83
+ */
84
+ export const moveEditLock = async (args) => {
85
+ const { doc, to, userId } = args;
86
+ if (lockHolderId(doc) !== userId || isLockStale(doc.currentlyEditedAt))
87
+ return false;
88
+ await writeLock(args, { currentlyEditedBy: null, currentlyEditedAt: null });
89
+ await writeLock({ ...args, doc: to }, { currentlyEditedBy: userId, currentlyEditedAt: new Date() });
90
+ return true;
91
+ };
@@ -0,0 +1,38 @@
1
+ import type { Collection } from '../../../config/types.js';
2
+ type Input = {
3
+ fields?: Collection<any>['fields'];
4
+ };
5
+ /**
6
+ * The bookkeeping every document carries: when it was written, and by whom.
7
+ *
8
+ * Three separate questions about who, because each has its own lifetime — one is written once,
9
+ * one on every write, and one is ephemeral:
10
+ *
11
+ * - `createdBy` — who made *the document*. One answer, whatever its revision history.
12
+ * - `updatedBy` — who wrote *this revision*.
13
+ * - `currentlyEditedBy` / `currentlyEditedAt` — who holds the document open, and since when.
14
+ *
15
+ * **Which of them are `$root()`.** On a versioned config the schema generator sends `$root()`
16
+ * fields to the base row and everything else to the versions table
17
+ * (`adapter-sqlite/generate-schema/index.server.ts`), so each lands where the question it answers
18
+ * belongs. `createdBy` is a property of the document — one answer per document, whatever its
19
+ * revisions — so it sits on the base row. `updatedBy` and the lock are properties of a *revision*:
20
+ * two people on two different versions are not editing the same thing, so locking one must not
21
+ * lock the other.
22
+ *
23
+ * **Text columns, read back as the staff member.** Each of the three ids is a `text` column the
24
+ * server half marks `$references('staff', { resolve: true })`: the adapter joins the target on
25
+ * read, so the document carries `{ id, name, email }` on the same key and the panel has a name to
26
+ * show. A write takes that object or the id. A text column is also what can be `$root()`, which
27
+ * a relation field cannot.
28
+ *
29
+ * **The lock is staff-only, said on the field.** `.access({ read, update })` is enforced by the
30
+ * pipeline for every caller — `processDocumentFields` drops what a reader may not see,
31
+ * `validateFields` drops what a writer may not set — so who can see and claim a lock is one
32
+ * declaration here rather than a rule each read path has to remember.
33
+ *
34
+ * The client half. `module.server.ts` adds the reference to `staff` on the three id columns,
35
+ * which is what decides what happens to a document whose author is deleted.
36
+ */
37
+ export declare const augmentMetas: <T extends Input>(config: T) => T;
38
+ export {};
@@ -0,0 +1,38 @@
1
+ import { metasFields } from './fields.js';
2
+ /**
3
+ * The bookkeeping every document carries: when it was written, and by whom.
4
+ *
5
+ * Three separate questions about who, because each has its own lifetime — one is written once,
6
+ * one on every write, and one is ephemeral:
7
+ *
8
+ * - `createdBy` — who made *the document*. One answer, whatever its revision history.
9
+ * - `updatedBy` — who wrote *this revision*.
10
+ * - `currentlyEditedBy` / `currentlyEditedAt` — who holds the document open, and since when.
11
+ *
12
+ * **Which of them are `$root()`.** On a versioned config the schema generator sends `$root()`
13
+ * fields to the base row and everything else to the versions table
14
+ * (`adapter-sqlite/generate-schema/index.server.ts`), so each lands where the question it answers
15
+ * belongs. `createdBy` is a property of the document — one answer per document, whatever its
16
+ * revisions — so it sits on the base row. `updatedBy` and the lock are properties of a *revision*:
17
+ * two people on two different versions are not editing the same thing, so locking one must not
18
+ * lock the other.
19
+ *
20
+ * **Text columns, read back as the staff member.** Each of the three ids is a `text` column the
21
+ * server half marks `$references('staff', { resolve: true })`: the adapter joins the target on
22
+ * read, so the document carries `{ id, name, email }` on the same key and the panel has a name to
23
+ * show. A write takes that object or the id. A text column is also what can be `$root()`, which
24
+ * a relation field cannot.
25
+ *
26
+ * **The lock is staff-only, said on the field.** `.access({ read, update })` is enforced by the
27
+ * pipeline for every caller — `processDocumentFields` drops what a reader may not see,
28
+ * `validateFields` drops what a writer may not set — so who can see and claim a lock is one
29
+ * declaration here rather than a rule each read path has to remember.
30
+ *
31
+ * The client half. `module.server.ts` adds the reference to `staff` on the three id columns,
32
+ * which is what decides what happens to a document whose author is deleted.
33
+ */
34
+ export const augmentMetas = (config) => {
35
+ const fields = [...(config.fields || [])];
36
+ fields.push(metasFields.createdBy(), metasFields.updatedBy(), metasFields.currentlyEditedBy(), metasFields.currentlyEditedAt(), metasFields.createdAt(), metasFields.updatedAt());
37
+ return { ...config, fields };
38
+ };
@@ -0,0 +1,30 @@
1
+ import type { Collection } from '../../../config/types.js';
2
+ type Input = {
3
+ slug?: string;
4
+ fields?: Collection<any>['fields'];
5
+ };
6
+ /**
7
+ * The metas' server half: the same fields, carrying a foreign key to `staff`.
8
+ *
9
+ * **A column with a reference, not a relation field.** A `relation('createdBy').to('staff')` would
10
+ * store the id in the junction table, one row per document per field — so the answer to "who made
11
+ * this" would not be visible beside the document in any database view, and reading it would cost a
12
+ * join the panel's list does per row. A `text` column with `$references` puts the id in the row
13
+ * itself and still gets referential integrity out of the database.
14
+ *
15
+ * **`resolve: true` is what puts a name in the panel.** The adapter joins the staff member on
16
+ * read and the document carries `{ id, name, email }` where the id column is; the pipeline
17
+ * writes the id back.
18
+ *
19
+ * **`onDelete: 'set null'` is the policy for a deleted user**, and it is the reason this half
20
+ * exists at all. Without a reference, deleting a staff member leaves their id behind on every
21
+ * document they touched, pointing at nothing — the panel renders a dash and the database cannot
22
+ * tell you the row is stale. `set null` says it plainly: the documents outlive their author and
23
+ * lose the attribution. A config where documents genuinely should not outlive their owner wants
24
+ * `cascade` instead, and that is a one-word change here rather than a cleanup job.
25
+ *
26
+ * The reference has to be on the builder at construction, which is why this is written out rather
27
+ * than wrapping the client half — the same reason `nested/module.server.ts` is.
28
+ */
29
+ export declare const augmentMetas: <T extends Input>(config: T) => T;
30
+ export {};
@@ -0,0 +1,38 @@
1
+ import { STAFF_SLUG } from '../../../auth/tables.js';
2
+ import { metasFields } from './fields.js';
3
+ /**
4
+ * The metas' server half: the same fields, carrying a foreign key to `staff`.
5
+ *
6
+ * **A column with a reference, not a relation field.** A `relation('createdBy').to('staff')` would
7
+ * store the id in the junction table, one row per document per field — so the answer to "who made
8
+ * this" would not be visible beside the document in any database view, and reading it would cost a
9
+ * join the panel's list does per row. A `text` column with `$references` puts the id in the row
10
+ * itself and still gets referential integrity out of the database.
11
+ *
12
+ * **`resolve: true` is what puts a name in the panel.** The adapter joins the staff member on
13
+ * read and the document carries `{ id, name, email }` where the id column is; the pipeline
14
+ * writes the id back.
15
+ *
16
+ * **`onDelete: 'set null'` is the policy for a deleted user**, and it is the reason this half
17
+ * exists at all. Without a reference, deleting a staff member leaves their id behind on every
18
+ * document they touched, pointing at nothing — the panel renders a dash and the database cannot
19
+ * tell you the row is stale. `set null` says it plainly: the documents outlive their author and
20
+ * lose the attribution. A config where documents genuinely should not outlive their owner wants
21
+ * `cascade` instead, and that is a one-word change here rather than a cleanup job.
22
+ *
23
+ * The reference has to be on the builder at construction, which is why this is written out rather
24
+ * than wrapping the client half — the same reason `nested/module.server.ts` is.
25
+ */
26
+ export const augmentMetas = (config) => {
27
+ const fields = [...(config.fields || [])];
28
+ // The staff collection's own metas cannot reference the table they sit on without a
29
+ // self-referencing accessor; it is also the one collection where "who made this user" is
30
+ // answered by the bootstrap rather than a person.
31
+ const staffRef = (field) => field.$references(STAFF_SLUG, {
32
+ onDelete: 'set null',
33
+ resolve: true,
34
+ selfReferencing: config.slug === STAFF_SLUG
35
+ });
36
+ fields.push(staffRef(metasFields.createdBy()), staffRef(metasFields.updatedBy()), staffRef(metasFields.currentlyEditedBy()), metasFields.currentlyEditedAt(), metasFields.createdAt(), metasFields.updatedAt());
37
+ return { ...config, fields };
38
+ };
@@ -0,0 +1,27 @@
1
+ import type { Collection } from '../../../config/types.js';
2
+ type Input = {
3
+ fields?: Collection<any>['fields'];
4
+ /**
5
+ * The prototype's fallback, as any feature before this one left it.
6
+ *
7
+ * Required, not optional: this augment has no default of its own, so a config reaching it
8
+ * without one is a prototype that failed to seed it rather than a document with no name.
9
+ */
10
+ _titleFallback: string;
11
+ };
12
+ type WithAsTitle<T> = T & {
13
+ asTitle: string;
14
+ };
15
+ /**
16
+ * Resolves `asTitle`: the field that stands in for a document wherever one is listed.
17
+ *
18
+ * **It names no feature, and it owns no default.** The prototype seeds `_titleFallback` with what
19
+ * its documents are called; a feature that knows better overrides it (auth with `email`, upload
20
+ * with `filename`); this reads whatever is left.
21
+ *
22
+ * The precedence: a field marked as the title wins, then the last override, then the prototype's
23
+ * own fallback. "Last override" is registry order — upload comes after auth, so upload wins for a
24
+ * config carrying both.
25
+ */
26
+ export declare const augmentTitle: <T extends Input>(config: T) => WithAsTitle<T>;
27
+ export {};
@@ -0,0 +1,19 @@
1
+ import { findTitleField } from './find-title.js';
2
+ /**
3
+ * Resolves `asTitle`: the field that stands in for a document wherever one is listed.
4
+ *
5
+ * **It names no feature, and it owns no default.** The prototype seeds `_titleFallback` with what
6
+ * its documents are called; a feature that knows better overrides it (auth with `email`, upload
7
+ * with `filename`); this reads whatever is left.
8
+ *
9
+ * The precedence: a field marked as the title wins, then the last override, then the prototype's
10
+ * own fallback. "Last override" is registry order — upload comes after auth, so upload wins for a
11
+ * config carrying both.
12
+ */
13
+ export const augmentTitle = (config) => {
14
+ const titleField = findTitleField(config.fields);
15
+ return {
16
+ ...config,
17
+ asTitle: titleField?.path ?? config._titleFallback
18
+ };
19
+ };
@@ -0,0 +1,14 @@
1
+ import type { FieldBuilder } from '../../../fields/builders/field-builder.js';
2
+ import { FormFieldBuilder } from '../../../fields/builders/form-field-builder.js';
3
+ import type { DateField } from '../../../../fields/date/index.js';
4
+ import type { EmailField } from '../../../../fields/email/index.js';
5
+ import type { SlugField } from '../../../../fields/slug/index.js';
6
+ import type { TextField } from '../../../../fields/text/index.js';
7
+ import type { Field, FormField, RichTextField } from '../../../../fields/types.js';
8
+ export declare const hasMaybeTitle: (field: Field) => field is TextField | DateField | SlugField | EmailField | RichTextField;
9
+ interface TitleFieldResult {
10
+ field: FormFieldBuilder<FormField>;
11
+ path: string;
12
+ }
13
+ export declare function findTitleField(fields?: FieldBuilder<Field>[], basePath?: string): TitleFieldResult | null;
14
+ export {};