rimecms 0.31.5 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +55 -60
  19. package/dist/adapter-sqlite/generate-schema/templates.server.js +110 -169
  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 +237 -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
@@ -1,20 +1,23 @@
1
1
  import { RimeError } from '../core/errors/index.js';
2
2
  import { getFieldAtPath } from '../core/fields/util.js';
3
- import { logger } from '../core/logger/index.server.js';
4
- import { hasVersionsSuffix, withLocalesSuffix } from '../core/naming.js';
3
+ import { logger } from '../core/logger.server.js';
5
4
  import { RelationFieldBuilder } from '../fields/relation/index.js';
6
5
  import {} from '../index.js';
7
6
  import * as drizzleORM from 'drizzle-orm';
8
7
  import { and, eq, getTableColumns, inArray, or } from 'drizzle-orm';
9
- export const buildWhereParam = ({ query, slug, db, locale, tables, configCtx }) => {
8
+ import { localeOrder } from './locales.server.js';
9
+ import { baseTableName, tableName } from './naming.server.js';
10
+ export const buildWhereParam = ({ query, slug, db, locale, tables, configCtx, base, rootTable }) => {
11
+ /** `slug` names a content table standing in for `base`, not a prototype's own rows. */
12
+ const isShadow = !!base;
10
13
  // Helper to get table by key with correct typing
11
14
  function getTable(key) {
12
15
  return tables[key];
13
16
  }
14
17
  function getTablesAndColumns(slug) {
15
18
  // Get main table and localized table if applicable
16
- const table = getTable(slug);
17
- const tableNameLocales = withLocalesSuffix(slug);
19
+ const table = getTable(baseTableName(slug));
20
+ const tableNameLocales = tableName({ owner: baseTableName(slug), branch: 'locales' });
18
21
  const tableLocales = getTable(tableNameLocales);
19
22
  // Get localized and unlocalized columns
20
23
  const localizedColumns = locale && tableNameLocales in tables ? Object.keys(getTableColumns(tableLocales)) : [];
@@ -23,7 +26,13 @@ export const buildWhereParam = ({ query, slug, db, locale, tables, configCtx })
23
26
  }
24
27
  const {
25
28
  // Get main table and localized table if applicable
26
- table, tableLocales, localizedColumns, unlocalizedColumns } = getTablesAndColumns(slug);
29
+ table: ownTable, tableLocales, localizedColumns, unlocalizedColumns } = getTablesAndColumns(slug);
30
+ /** What the outer condition names — the caller's alias where there is one. */
31
+ const table = rootTable ?? ownTable;
32
+ // The base row a versions table hangs off, and its columns. `baseTableName`, not the bare
33
+ // slug: a camelCase slug is not a table name.
34
+ const baseTable = isShadow ? getTable(baseTableName(base)) : undefined;
35
+ const baseColumns = baseTable ? Object.keys(getTableColumns(baseTable)) : [];
27
36
  const buildCondition = (conditionObject) => {
28
37
  // Handle nested AND conditions
29
38
  if ('and' in conditionObject && Array.isArray(conditionObject.and)) {
@@ -39,28 +48,30 @@ export const buildWhereParam = ({ query, slug, db, locale, tables, configCtx })
39
48
  .filter(Boolean);
40
49
  return subConditions.length ? or(...subConditions) : false;
41
50
  }
42
- conditionObject = normalizedForVersion(conditionObject, slug);
51
+ conditionObject = normalizedForShadow(conditionObject, isShadow);
43
52
  const {
44
53
  // Get condition members
45
54
  column, sqlColumn, fn, operator, rawValue, value } = getConditionMembers(conditionObject);
46
- // Handle hierarchy fields (_parent, _position) in versioned collections
47
- if (shouldHandleVersionedHierarchyFields(slug, sqlColumn)) {
48
- // Get the root table name by removing the '_versions' suffix
49
- const rootSlug = slug.replace('_versions', '');
50
- const rootTable = getTable(rootSlug);
51
- // Query the root table for the hierarchy field
52
- return inArray(table.ownerId, db.select({ ownerId: rootTable.id }).from(rootTable).where(fn(rootTable[sqlColumn], value)));
53
- }
54
55
  // Handle regular fields
55
56
  if (unlocalizedColumns.includes(sqlColumn)) {
56
57
  return fn(table[sqlColumn], value);
57
58
  }
58
- // Handle localized fields
59
+ // A localized column is compared as a read would show it: the first locale in the fallback
60
+ // order that holds a value, `''` counting as none — so a page found by its slug in one locale
61
+ // is found by the same slug in a locale it was not translated to yet.
59
62
  if (locale && localizedColumns.includes(sqlColumn)) {
60
- return inArray(table.id, db
61
- .select({ id: tableLocales.ownerId })
62
- .from(tableLocales)
63
- .where(and(fn(tableLocales[sqlColumn], value), eq(tableLocales.locale, locale))));
63
+ const { sql } = drizzleORM;
64
+ const order = localeOrder(configCtx, locale) ?? [locale];
65
+ const valueIn = (code) => sql `NULLIF((SELECT ${tableLocales[sqlColumn]} FROM ${tableLocales} WHERE ${tableLocales.ownerId} = ${table.id} AND ${tableLocales.locale} = ${code}), '')`;
66
+ const resolved = order.length > 1
67
+ ? sql `COALESCE(${sql.join(order.map(valueIn), sql `, `)})`
68
+ : valueIn(order[0]);
69
+ return fn(resolved, value);
70
+ }
71
+ // A column the base row keeps — the hierarchy columns, and any `$root()` field — reached
72
+ // through `ownerId` when the table queried is the versions table.
73
+ if (baseTable && baseColumns.includes(sqlColumn)) {
74
+ return inArray(table.ownerId, db.select({ ownerId: baseTable.id }).from(baseTable).where(fn(baseTable[sqlColumn], value)));
64
75
  }
65
76
  // Look for a relation field
66
77
  // Get document config
@@ -136,7 +147,7 @@ export const buildWhereParam = ({ query, slug, db, locale, tables, configCtx })
136
147
  .select({ id: relatedTable.id })
137
148
  .from(relatedTable)
138
149
  .where(relatedCondition);
139
- const relsTable = getTable(`${slug}Rels`);
150
+ const relsTable = getTable(tableName({ owner: baseTableName(slug), child: { kind: 'rels' } }));
140
151
  // Join relation rows to documents by matching the related id and the relation path
141
152
  const ownersWithMatching = db
142
153
  .select({ id: relsTable.ownerId })
@@ -166,7 +177,7 @@ export const buildWhereParam = ({ query, slug, db, locale, tables, configCtx })
166
177
  fieldConfig.get.localized,
167
178
  fieldConfig.get.many
168
179
  ];
169
- const relsTableName = `${slug}Rels`;
180
+ const relsTableName = tableName({ owner: baseTableName(slug), child: { kind: 'rels' } });
170
181
  const relsTable = getTable(relsTableName);
171
182
  // Helpers for building common relation-owner subqueries (operate on the relations table)
172
183
  const buildOwnersWithTotalCount = (count) => db
@@ -307,25 +318,24 @@ function getConditionMembers(obj) {
307
318
  const value = formatValue({ operator, value: rawValue });
308
319
  return { column, sqlColumn, fn, operator, rawValue, value };
309
320
  }
310
- // Determine if we should handle versioned hierarchy fields
311
- function shouldHandleVersionedHierarchyFields(slug, sqlColumn) {
312
- return (hasVersionsSuffix(slug) &&
313
- (sqlColumn === '_parent' || sqlColumn === '_position' || sqlColumn === '_path'));
314
- }
315
321
  // Normalize condition object for versioned collections
316
- function normalizedForVersion(conditionObject, slug) {
317
- // Handle id field for versioned collections
318
- // if "id" inside the query it should refer to the root table
319
- if (hasVersionsSuffix(slug) && 'id' in conditionObject) {
320
- // Replace id with ownerId and keep the same operator and value
322
+ /**
323
+ * Retargets the two id conditions when the table being queried is a versions table.
324
+ *
325
+ * A caller filtering by `id` means the document, which is the base row — on a versions table that is
326
+ * `ownerId`. `versionId` means the content row itself, which is the versions table's own `id`.
327
+ */
328
+ function normalizedForShadow(conditionObject, isShadow) {
329
+ if (!isShadow)
330
+ return conditionObject;
331
+ // "id" refers to the document, so it resolves against the base row this versions hangs off.
332
+ if ('id' in conditionObject) {
321
333
  const idOperator = conditionObject.id;
322
334
  delete conditionObject.id;
323
335
  conditionObject.ownerId = idOperator;
324
336
  }
325
- // Handle versionId field for versioned collections
326
- // if "versionId" inside the query it should refer to the id of the version table (current)
327
- if (hasVersionsSuffix(slug) && 'versionId' in conditionObject) {
328
- // Replace id with ownerId and keep the same operator and value
337
+ // "versionId" refers to the content row, which is this table's own id.
338
+ if ('versionId' in conditionObject) {
329
339
  const idOperator = conditionObject.versionId;
330
340
  delete conditionObject.versionId;
331
341
  conditionObject.id = idOperator;
@@ -0,0 +1,166 @@
1
+ import type { VersionsTable } from '../core/adapter.js';
2
+ import type { OperationQuery } from '../core/pipeline/types.js';
3
+ import type { PrototypeSlug } from '../core/prototype/types.js';
4
+ import type { ConfigContext } from '../core/rime.server.js';
5
+ import type { Dic } from '../util/types.js';
6
+ import { type TableName } from './naming.server.js';
7
+ /**
8
+ * Writing a prototype's rows — insert, update, delete, and the bootstrap a singleton needs.
9
+ *
10
+ * The other half of `read.server.ts`; the vocabulary is written down there. `singleton` decides
11
+ * what `insert` and `delete` refuse outright, and which row an update resolves when it was handed
12
+ * no id.
13
+ *
14
+ * Two apparent differences between the collection and area facades this replaces turned out to be
15
+ * nothing: an area's update reset every content row's status with no `where` while a collection
16
+ * scoped it to `ownerId = id` — the same set for a single row; and a collection split off its
17
+ * `$root()` fields before writing while an area did not — `splitRootData` returns an empty half
18
+ * when a config marks none. Both are core's now, and this is handed both halves.
19
+ */
20
+ /**
21
+ * Writes a row and, when it has localized columns, its `__$$locales` half.
22
+ *
23
+ * Every insert goes through here, a document's and a singleton's bootstrap alike.
24
+ *
25
+ * Returns the id actually written, which insertTableRecord derives from `row.id` or generates.
26
+ */
27
+ export declare const insertRowWithLocales: ({ db, tables }: Deps, args: {
28
+ table: TableName;
29
+ row: Dic;
30
+ now: Date;
31
+ localized: {
32
+ data: Dic;
33
+ isLocalized: boolean;
34
+ locale?: string;
35
+ };
36
+ }) => Promise<string>;
37
+ type UpdateArgs = {
38
+ slug: string;
39
+ versions?: VersionsTable;
40
+ /** The base row to write. An area resolves its singleton's id before calling. */
41
+ id: string;
42
+ /** What goes on it. */
43
+ data: Dic;
44
+ /** And the content row this write also touches, when the caller named one. */
45
+ content?: {
46
+ id: string;
47
+ data: Dic;
48
+ };
49
+ locale?: string;
50
+ };
51
+ type Deps = {
52
+ db: any;
53
+ tables: Dic;
54
+ };
55
+ /**
56
+ * Writes the rows the caller's plan names.
57
+ *
58
+ * Three branches until 1ec2dfca's successor, decoded here from an enum the caller passed down.
59
+ * They differed in exactly two facts — is there a second row, and has somebody already written it
60
+ * — and both are settled before the call now (`core/pipeline/run.server.ts` builds the plan,
61
+ * `FeatureDefinition.writePlan` refines it). What was left is the same two writes in every case,
62
+ * so there is one path.
63
+ *
64
+ * The content row's *table* is still the adapter's to know: registration carries the versions table, and
65
+ * where rows live is storage. Which row, and whether to touch it, is the caller's.
66
+ *
67
+ * Returns `{ id: data.id || id }`. For an area the two always agree — it is a single row, so any
68
+ * `id` in its data is that row's — and preferring `data.id` keeps a disagreement visible instead
69
+ * of silently picking the id of the row that was written.
70
+ */
71
+ export declare const updatePrototype: ({ db, tables }: Deps, { slug, id, data, content, locale, versions }: UpdateArgs) => Promise<{
72
+ id: any;
73
+ }>;
74
+ /**
75
+ * Sets columns on every row of this prototype's own table that `query` matches.
76
+ *
77
+ * A primitive: a table, a filter, a patch. It writes exactly the columns it is given — no
78
+ * `updatedAt`, no children — because the callers that want a bulk column write want the rows left
79
+ * otherwise alone. Its one caller flips a status column across a document's other content rows,
80
+ * and depends on `updatedAt` *not* moving: that caller prunes by `updatedAt`, so touching it here
81
+ * would silently re-order which rows survive.
82
+ *
83
+ * With `locale`, a localized column lands on the `__$$locales` branch instead — resolved by
84
+ * `prepareSchemaData`, the same split every other write goes through, so a caller says "set this
85
+ * field" without knowing which of the two tables it is in.
86
+ *
87
+ * It goes through `buildWhereParam`, so the filter is the same REST-shaped query every other
88
+ * operation takes rather than a second dialect.
89
+ */
90
+ export declare const updateWherePrototype: ({ db, tables, configCtx }: DepsWithConfig, { slug, query, data, locale }: {
91
+ slug: PrototypeSlug;
92
+ query: OperationQuery;
93
+ data: Dic;
94
+ locale?: string;
95
+ }) => Promise<void>;
96
+ /**
97
+ * Writes a new document: the rows the plan names.
98
+ *
99
+ * The insert half of `updatePrototype`, and it reads the same way: the caller says which rows this
100
+ * write touches, and this executes. Where a versioned config's `$root()` fields go is
101
+ * `versionsWritePlan`'s statement, made before the call.
102
+ *
103
+ * `contentId` names the row the content landed on — the versions row when there is one, the base row
104
+ * otherwise — which is what the caller hangs blocks, tree nodes and relations off.
105
+ */
106
+ export declare const insertPrototype: ({ db, tables }: Deps, { slug, data, content, locale, versions }: InsertArgs) => Promise<{
107
+ id: string;
108
+ contentId: string;
109
+ }>;
110
+ /**
111
+ * Reads many documents, merged with the content row each should show.
112
+ *
113
+ * The versioned branch queries the base table and pulls one content row per document, because
114
+ * pagination and ordering are properties of the document rather than of one of its rows.
115
+ */
116
+ export declare const deletePrototype: ({ db, tables }: Deps, { slug, id }: {
117
+ slug: string;
118
+ id: string;
119
+ }) => Promise<string | undefined>;
120
+ /**
121
+ * The ids of the documents whose `_parent` is `parentId`, in `_position` order.
122
+ *
123
+ * Cannot go through `findMany`: hierarchy lives on the base table while a versioned prototype's
124
+ * `where` resolves against the content table. `_parent` and `_position` are columns the adapter
125
+ * writes itself, so answering this is its job.
126
+ */
127
+ /**
128
+ * Brings a singleton's row into being if it is not already there. Boot only.
129
+ *
130
+ * Deliberately not an `insert`: it takes no data beyond the blank document, hands back no id,
131
+ * and a second call does nothing. That shape is what lets a singleton have no create at all
132
+ * while its one row still comes from somewhere.
133
+ */
134
+ export declare const ensurePrototypeExists: ({ db, tables }: Deps, { slug, blank, locale, versions }: EnsureExistsArgs) => Promise<void>;
135
+ type InsertArgs = {
136
+ versions?: VersionsTable;
137
+ slug: string;
138
+ data: Dic;
139
+ /** No `id`: the row does not exist yet. See `Adapter.insert`. */
140
+ content?: {
141
+ data: Dic;
142
+ };
143
+ locale?: string;
144
+ };
145
+ type EnsureExistsArgs = {
146
+ versions?: VersionsTable;
147
+ slug: string;
148
+ /**
149
+ * The document to write. Already shaped by whatever the prototype's features say a bootstrapped
150
+ * first document carries — see `FeatureDefinition.blank` with intent `'seed'`. This module
151
+ * writes it and asks nothing about what is in it.
152
+ */
153
+ blank: Dic;
154
+ locale?: string;
155
+ };
156
+ /**
157
+ * `updateWhere` alone reaches `buildWhereParam`, which is typed against the generated schema
158
+ * rather than against `Dic`. Confining the looseness to the one operation that needs it beats
159
+ * widening `Deps` for everything.
160
+ */
161
+ type DepsWithConfig = {
162
+ db: any;
163
+ tables: any;
164
+ configCtx: ConfigContext;
165
+ };
166
+ export {};
@@ -0,0 +1,272 @@
1
+ import { normalizeQuery } from '../core/pipeline/query.js';
2
+ import { and, eq, inArray } from 'drizzle-orm';
3
+ import { RimeError } from '../core/errors/index.js';
4
+ import { baseTableName, tableName } from './naming.server.js';
5
+ import * as adapterUtil from './columns.server.js';
6
+ import { buildWhereParam } from './where.server.js';
7
+ /**
8
+ * Writing a prototype's rows — insert, update, delete, and the bootstrap a singleton needs.
9
+ *
10
+ * The other half of `read.server.ts`; the vocabulary is written down there. `singleton` decides
11
+ * what `insert` and `delete` refuse outright, and which row an update resolves when it was handed
12
+ * no id.
13
+ *
14
+ * Two apparent differences between the collection and area facades this replaces turned out to be
15
+ * nothing: an area's update reset every content row's status with no `where` while a collection
16
+ * scoped it to `ownerId = id` — the same set for a single row; and a collection split off its
17
+ * `$root()` fields before writing while an area did not — `splitRootData` returns an empty half
18
+ * when a config marks none. Both are core's now, and this is handed both halves.
19
+ */
20
+ /**
21
+ * Writes a row and, when it has localized columns, its `__$$locales` half.
22
+ *
23
+ * Every insert goes through here, a document's and a singleton's bootstrap alike.
24
+ *
25
+ * Returns the id actually written, which insertTableRecord derives from `row.id` or generates.
26
+ */
27
+ export const insertRowWithLocales = async ({ db, tables }, args) => {
28
+ const id = await adapterUtil.insertTableRecord(db, tables, args.table, {
29
+ ...args.row,
30
+ createdAt: args.now,
31
+ updatedAt: args.now
32
+ });
33
+ // A locales row says the locale was written. With nothing to say there is no row, and the
34
+ // first write in that locale makes one — the same for a document and for a singleton's
35
+ // bootstrap, whose seeded `id` is not a value.
36
+ const { data, isLocalized, locale } = args.localized;
37
+ const written = Object.entries(data).some(([key, value]) => key !== 'id' && value !== null && value !== undefined);
38
+ if (isLocalized && written) {
39
+ await adapterUtil.insertTableRecord(db, tables, tableName({ owner: args.table, branch: 'locales' }), {
40
+ ...data,
41
+ ownerId: id,
42
+ locale: locale
43
+ });
44
+ }
45
+ return id;
46
+ };
47
+ /**
48
+ * Writes the rows the caller's plan names.
49
+ *
50
+ * Three branches until 1ec2dfca's successor, decoded here from an enum the caller passed down.
51
+ * They differed in exactly two facts — is there a second row, and has somebody already written it
52
+ * — and both are settled before the call now (`core/pipeline/run.server.ts` builds the plan,
53
+ * `FeatureDefinition.writePlan` refines it). What was left is the same two writes in every case,
54
+ * so there is one path.
55
+ *
56
+ * The content row's *table* is still the adapter's to know: registration carries the versions table, and
57
+ * where rows live is storage. Which row, and whether to touch it, is the caller's.
58
+ *
59
+ * Returns `{ id: data.id || id }`. For an area the two always agree — it is a single row, so any
60
+ * `id` in its data is that row's — and preferring `data.id` keeps a disagreement visible instead
61
+ * of silently picking the id of the row that was written.
62
+ */
63
+ export const updatePrototype = async ({ db, tables }, { slug, id, data, content, locale, versions }) => {
64
+ const now = new Date();
65
+ await writeRow({ db, tables }, { table: baseTableName(slug), recordId: id, data, locale, now });
66
+ if (content) {
67
+ // `versions!` — a plan names a content row only for a prototype that has one, and registration
68
+ // answered with the versions table for exactly those.
69
+ await writeRow({ db, tables }, {
70
+ table: baseTableName(versions.slug),
71
+ recordId: content.id,
72
+ data: content.data,
73
+ locale,
74
+ now
75
+ });
76
+ }
77
+ return { id: data.id || id };
78
+ };
79
+ /** One row and its locales, which is what both halves of an update come down to. */
80
+ const writeRow = async ({ db, tables }, args) => {
81
+ const { table, recordId, data, locale, now } = args;
82
+ const localesTable = tableName({ owner: table, branch: 'locales' });
83
+ const { mainData, localizedData, isLocalized } = adapterUtil.prepareSchemaData(data, {
84
+ tables,
85
+ mainTableName: table,
86
+ localesTableName: localesTable,
87
+ locale
88
+ });
89
+ await adapterUtil.updateTableRecord(db, tables, table, {
90
+ recordId,
91
+ data: { ...mainData, updatedAt: now }
92
+ });
93
+ if (isLocalized) {
94
+ await adapterUtil.upsertLocalizedData(db, tables, localesTable, {
95
+ ownerId: recordId,
96
+ data: localizedData,
97
+ locale: locale
98
+ });
99
+ }
100
+ };
101
+ /**
102
+ * Sets columns on every row of this prototype's own table that `query` matches.
103
+ *
104
+ * A primitive: a table, a filter, a patch. It writes exactly the columns it is given — no
105
+ * `updatedAt`, no children — because the callers that want a bulk column write want the rows left
106
+ * otherwise alone. Its one caller flips a status column across a document's other content rows,
107
+ * and depends on `updatedAt` *not* moving: that caller prunes by `updatedAt`, so touching it here
108
+ * would silently re-order which rows survive.
109
+ *
110
+ * With `locale`, a localized column lands on the `__$$locales` branch instead — resolved by
111
+ * `prepareSchemaData`, the same split every other write goes through, so a caller says "set this
112
+ * field" without knowing which of the two tables it is in.
113
+ *
114
+ * It goes through `buildWhereParam`, so the filter is the same REST-shaped query every other
115
+ * operation takes rather than a second dialect.
116
+ */
117
+ export const updateWherePrototype = async ({ db, tables, configCtx }, { slug, query, data, locale }) => {
118
+ const table = baseTableName(slug);
119
+ const localesTable = tableName({ owner: table, branch: 'locales' });
120
+ const where = buildWhereParam({ query: normalizeQuery(query), slug, db, tables, configCtx });
121
+ const { mainData, localizedData, isLocalized } = adapterUtil.prepareSchemaData(data, {
122
+ tables,
123
+ mainTableName: table,
124
+ localesTableName: localesTable,
125
+ locale
126
+ });
127
+ if (Object.keys(mainData).length) {
128
+ await db.update(tables[table]).set(mainData).where(where);
129
+ }
130
+ if (isLocalized && Object.keys(localizedData).length) {
131
+ // The branch is keyed by its owner, so the rows to touch are the ones this filter matched.
132
+ //
133
+ // An update, never an upsert — `upsertLocalizedData` would *insert* a locales row for a
134
+ // document that has none yet, and its caller runs during reads. A half-populated
135
+ // locales row written ahead of the real one is how the multilingual duplicate tests started
136
+ // failing when this was first written as an upsert.
137
+ const owners = await db.select({ id: tables[table].id }).from(tables[table]).where(where);
138
+ const ownerIds = owners.map((owner) => owner.id);
139
+ if (ownerIds.length) {
140
+ const branch = tables[localesTable];
141
+ await db
142
+ .update(branch)
143
+ .set(localizedData)
144
+ .where(and(inArray(branch.ownerId, ownerIds), eq(branch.locale, locale)));
145
+ }
146
+ }
147
+ };
148
+ /**
149
+ * Writes a new document: the rows the plan names.
150
+ *
151
+ * The insert half of `updatePrototype`, and it reads the same way: the caller says which rows this
152
+ * write touches, and this executes. Where a versioned config's `$root()` fields go is
153
+ * `versionsWritePlan`'s statement, made before the call.
154
+ *
155
+ * `contentId` names the row the content landed on — the versions row when there is one, the base row
156
+ * otherwise — which is what the caller hangs blocks, tree nodes and relations off.
157
+ */
158
+ export const insertPrototype = async ({ db, tables }, { slug, data, content, locale, versions }) => {
159
+ const now = new Date();
160
+ if (versions) {
161
+ // The base row has no columns for the content, so a plan naming no content half would write
162
+ // half a document and hang its children off the base row. Loud, rather than silently wrong.
163
+ if (!content) {
164
+ throw new RimeError(RimeError.OPERATION_ERROR, `insert on "${slug}" names no content row, and its content lives on "${versions.slug}"`);
165
+ }
166
+ const docId = await adapterUtil.insertTableRecord(db, tables, baseTableName(slug), {
167
+ createdAt: now,
168
+ updatedAt: now,
169
+ ...data
170
+ });
171
+ const contentTable = baseTableName(versions.slug);
172
+ const { mainData, localizedData, isLocalized } = adapterUtil.prepareSchemaData(content.data, {
173
+ tables,
174
+ mainTableName: contentTable,
175
+ localesTableName: tableName({ owner: contentTable, branch: 'locales' }),
176
+ locale
177
+ });
178
+ const contentId = await insertRowWithLocales({ db, tables }, {
179
+ table: contentTable,
180
+ row: { id: adapterUtil.generatePK(), ownerId: docId, ...mainData },
181
+ now,
182
+ localized: { data: localizedData, isLocalized, locale }
183
+ });
184
+ return { id: docId, contentId };
185
+ }
186
+ const docId = data.id || adapterUtil.generatePK();
187
+ const table = baseTableName(slug);
188
+ const { mainData, localizedData, isLocalized } = adapterUtil.prepareSchemaData(data, {
189
+ tables,
190
+ mainTableName: table,
191
+ localesTableName: tableName({ owner: table, branch: 'locales' }),
192
+ locale
193
+ });
194
+ await insertRowWithLocales({ db, tables }, {
195
+ table,
196
+ row: { id: docId, ...mainData },
197
+ now,
198
+ localized: { data: localizedData, isLocalized, locale }
199
+ });
200
+ // No second row exists, so the two ids are the same thing.
201
+ // No versions: the content is on the base row, so that is the row children hang off.
202
+ return { id: docId, contentId: docId };
203
+ };
204
+ /**
205
+ * Reads many documents, merged with the content row each should show.
206
+ *
207
+ * The versioned branch queries the base table and pulls one content row per document, because
208
+ * pagination and ordering are properties of the document rather than of one of its rows.
209
+ */
210
+ export const deletePrototype = async ({ db, tables }, { slug, id }) => {
211
+ const table = tables[baseTableName(slug)];
212
+ const docs = await db.delete(table).where(eq(table.id, id)).returning();
213
+ if (!docs || !Array.isArray(docs) || !docs.length)
214
+ throw new RimeError(RimeError.NOT_FOUND);
215
+ return docs[0].id;
216
+ };
217
+ /**
218
+ * The ids of the documents whose `_parent` is `parentId`, in `_position` order.
219
+ *
220
+ * Cannot go through `findMany`: hierarchy lives on the base table while a versioned prototype's
221
+ * `where` resolves against the content table. `_parent` and `_position` are columns the adapter
222
+ * writes itself, so answering this is its job.
223
+ */
224
+ /**
225
+ * Brings a singleton's row into being if it is not already there. Boot only.
226
+ *
227
+ * Deliberately not an `insert`: it takes no data beyond the blank document, hands back no id,
228
+ * and a second call does nothing. That shape is what lets a singleton have no create at all
229
+ * while its one row still comes from somewhere.
230
+ */
231
+ export const ensurePrototypeExists = async ({ db, tables }, { slug, blank, locale, versions }) => {
232
+ const table = baseTableName(slug);
233
+ const [existing] = await db.select({ id: tables[table].id }).from(tables[table]);
234
+ if (existing)
235
+ return;
236
+ const now = new Date();
237
+ if (versions) {
238
+ const docId = await adapterUtil.insertTableRecord(db, tables, table, {
239
+ createdAt: now,
240
+ updatedAt: now
241
+ });
242
+ const contentTable = baseTableName(versions.slug);
243
+ const { mainData, localizedData, isLocalized } = adapterUtil.prepareSchemaData(blank, {
244
+ tables,
245
+ mainTableName: contentTable,
246
+ localesTableName: tableName({ owner: contentTable, branch: 'locales' }),
247
+ locale,
248
+ fillNotNull: true
249
+ });
250
+ await insertRowWithLocales({ db, tables }, {
251
+ table: contentTable,
252
+ row: { ownerId: docId, ...mainData },
253
+ now,
254
+ localized: { data: localizedData, isLocalized, locale }
255
+ });
256
+ return;
257
+ }
258
+ const localesTable = tableName({ owner: table, branch: 'locales' });
259
+ const { mainData, localizedData, isLocalized } = adapterUtil.prepareSchemaData(blank, {
260
+ tables,
261
+ mainTableName: table,
262
+ localesTableName: localesTable,
263
+ locale,
264
+ fillNotNull: true
265
+ });
266
+ await insertRowWithLocales({ db, tables }, {
267
+ table,
268
+ row: mainData,
269
+ now,
270
+ localized: { data: localizedData, isLocalized, locale }
271
+ });
272
+ };