@byline/host-tanstack-start 4.19.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/dist/admin-shell/chrome/admin-app-bar.d.ts +7 -0
  2. package/dist/admin-shell/chrome/admin-app-bar.js +10 -2
  3. package/dist/admin-shell/chrome/session-change-boundary.d.ts +14 -0
  4. package/dist/admin-shell/chrome/session-change-boundary.js +87 -0
  5. package/dist/admin-shell/chrome/session-change-boundary.test.d.ts +8 -0
  6. package/dist/admin-shell/chrome/sign-in-page.d.ts +2 -1
  7. package/dist/admin-shell/chrome/sign-in-page.js +60 -3
  8. package/dist/admin-shell/collections/edit.d.ts +1 -1
  9. package/dist/admin-shell/collections/edit.js +151 -31
  10. package/dist/admin-shell/collections/history.js +4 -2
  11. package/dist/admin-shell/collections/list.js +30 -6
  12. package/dist/admin-shell/collections/restore-version-modal.d.ts +3 -1
  13. package/dist/admin-shell/collections/restore-version-modal.js +9 -4
  14. package/dist/admin-shell/collections/tree-list.js +16 -6
  15. package/dist/admin-shell/collections/version-history.d.ts +2 -1
  16. package/dist/admin-shell/collections/version-history.js +11 -2
  17. package/dist/admin-shell/document-mutation-notice.d.ts +6 -0
  18. package/dist/admin-shell/document-mutation-notice.js +53 -0
  19. package/dist/admin-shell/document-mutation-state.d.ts +22 -0
  20. package/dist/admin-shell/document-mutation-state.js +71 -0
  21. package/dist/admin-shell/document-mutation-state.test.d.ts +1 -0
  22. package/dist/admin-shell/scheduled-publications/list.js +15 -5
  23. package/dist/admin-shell/singletons/history.js +4 -2
  24. package/dist/admin-shell/singletons/view.d.ts +1 -1
  25. package/dist/admin-shell/singletons/view.js +98 -19
  26. package/dist/integrations/byline-admin-services.js +7 -1
  27. package/dist/integrations/byline-field-services.js +2 -9
  28. package/dist/integrations/client-ip.d.ts +19 -0
  29. package/dist/integrations/client-ip.js +34 -0
  30. package/dist/integrations/session-coordination.d.ts +24 -0
  31. package/dist/integrations/session-coordination.js +85 -0
  32. package/dist/integrations/session-middleware.d.ts +11 -0
  33. package/dist/integrations/session-middleware.js +94 -0
  34. package/dist/integrations/session-request-kind.d.ts +9 -0
  35. package/dist/integrations/session-request-kind.js +10 -0
  36. package/dist/integrations/session-request-middleware.d.ts +9 -0
  37. package/dist/integrations/session-request-middleware.js +7 -0
  38. package/dist/integrations/sign-in-body.d.ts +12 -0
  39. package/dist/integrations/sign-in-body.js +52 -0
  40. package/dist/integrations/sign-in-middleware.d.ts +9 -0
  41. package/dist/integrations/sign-in-middleware.js +10 -0
  42. package/dist/routes/create-admin-layout-route.js +46 -31
  43. package/dist/routes/create-collection-edit-route.js +1 -1
  44. package/dist/routes/create-collection-list-route.d.ts +0 -7
  45. package/dist/routes/create-collection-list-route.js +7 -9
  46. package/dist/routes/create-sign-in-route.js +4 -2
  47. package/dist/routes/create-singleton-route.d.ts +2 -0
  48. package/dist/routes/create-singleton-route.js +4 -3
  49. package/dist/server-fns/admin-account/change-password.d.ts +3 -1
  50. package/dist/server-fns/admin-account/change-password.js +9 -3
  51. package/dist/server-fns/admin-account/get.d.ts +3 -1
  52. package/dist/server-fns/admin-account/get.js +4 -1
  53. package/dist/server-fns/admin-account/index.d.ts +5 -5
  54. package/dist/server-fns/admin-account/update.d.ts +3 -1
  55. package/dist/server-fns/admin-account/update.js +4 -1
  56. package/dist/server-fns/admin-activity/get.d.ts +3 -1
  57. package/dist/server-fns/admin-activity/get.js +4 -1
  58. package/dist/server-fns/admin-permissions/get-role-abilities.d.ts +3 -1
  59. package/dist/server-fns/admin-permissions/get-role-abilities.js +4 -1
  60. package/dist/server-fns/admin-permissions/index.d.ts +4 -4
  61. package/dist/server-fns/admin-permissions/list-registered.d.ts +3 -1
  62. package/dist/server-fns/admin-permissions/list-registered.js +4 -1
  63. package/dist/server-fns/admin-permissions/set-role-abilities.d.ts +3 -1
  64. package/dist/server-fns/admin-permissions/set-role-abilities.js +4 -1
  65. package/dist/server-fns/admin-permissions/who-has.d.ts +3 -1
  66. package/dist/server-fns/admin-permissions/who-has.js +4 -1
  67. package/dist/server-fns/admin-roles/create.d.ts +3 -1
  68. package/dist/server-fns/admin-roles/create.js +4 -1
  69. package/dist/server-fns/admin-roles/delete.d.ts +3 -1
  70. package/dist/server-fns/admin-roles/delete.js +4 -1
  71. package/dist/server-fns/admin-roles/get.d.ts +3 -1
  72. package/dist/server-fns/admin-roles/get.js +4 -1
  73. package/dist/server-fns/admin-roles/index.d.ts +6 -6
  74. package/dist/server-fns/admin-roles/list.d.ts +3 -1
  75. package/dist/server-fns/admin-roles/list.js +4 -1
  76. package/dist/server-fns/admin-roles/reorder.d.ts +3 -1
  77. package/dist/server-fns/admin-roles/reorder.js +4 -1
  78. package/dist/server-fns/admin-roles/update.d.ts +3 -1
  79. package/dist/server-fns/admin-roles/update.js +4 -1
  80. package/dist/server-fns/admin-users/create.d.ts +3 -1
  81. package/dist/server-fns/admin-users/create.js +4 -1
  82. package/dist/server-fns/admin-users/delete.d.ts +3 -1
  83. package/dist/server-fns/admin-users/delete.js +4 -1
  84. package/dist/server-fns/admin-users/disable.d.ts +3 -1
  85. package/dist/server-fns/admin-users/disable.js +4 -1
  86. package/dist/server-fns/admin-users/enable.d.ts +3 -1
  87. package/dist/server-fns/admin-users/enable.js +4 -1
  88. package/dist/server-fns/admin-users/get-user-roles.d.ts +3 -1
  89. package/dist/server-fns/admin-users/get-user-roles.js +4 -1
  90. package/dist/server-fns/admin-users/get.d.ts +3 -1
  91. package/dist/server-fns/admin-users/get.js +4 -1
  92. package/dist/server-fns/admin-users/index.d.ts +10 -10
  93. package/dist/server-fns/admin-users/list.d.ts +3 -1
  94. package/dist/server-fns/admin-users/list.js +4 -1
  95. package/dist/server-fns/admin-users/set-password.d.ts +3 -1
  96. package/dist/server-fns/admin-users/set-password.js +4 -1
  97. package/dist/server-fns/admin-users/set-user-roles.d.ts +3 -1
  98. package/dist/server-fns/admin-users/set-user-roles.js +4 -1
  99. package/dist/server-fns/admin-users/update.d.ts +3 -1
  100. package/dist/server-fns/admin-users/update.js +4 -1
  101. package/dist/server-fns/ai/execute.d.ts +3 -1
  102. package/dist/server-fns/ai/execute.js +4 -1
  103. package/dist/server-fns/ai/index.d.ts +1 -1
  104. package/dist/server-fns/analytics/maintenance.d.ts +6 -2
  105. package/dist/server-fns/analytics/maintenance.js +7 -2
  106. package/dist/server-fns/analytics/queries.d.ts +18 -6
  107. package/dist/server-fns/analytics/queries.js +19 -6
  108. package/dist/server-fns/auth/current-user.d.ts +1 -0
  109. package/dist/server-fns/auth/current-user.js +5 -2
  110. package/dist/server-fns/auth/renew.d.ts +13 -0
  111. package/dist/server-fns/auth/renew.js +45 -0
  112. package/dist/server-fns/auth/sign-in.d.ts +2 -1
  113. package/dist/server-fns/auth/sign-in.js +88 -17
  114. package/dist/server-fns/auth/sign-out.d.ts +3 -1
  115. package/dist/server-fns/auth/sign-out.js +38 -6
  116. package/dist/server-fns/collections/audit.d.ts +3 -1
  117. package/dist/server-fns/collections/audit.js +4 -1
  118. package/dist/server-fns/collections/copy-to-locale.d.ts +5 -1
  119. package/dist/server-fns/collections/copy-to-locale.js +7 -2
  120. package/dist/server-fns/collections/create.d.ts +4 -1
  121. package/dist/server-fns/collections/create.js +8 -3
  122. package/dist/server-fns/collections/delete-locale.d.ts +5 -1
  123. package/dist/server-fns/collections/delete-locale.js +7 -2
  124. package/dist/server-fns/collections/delete-outcome.d.ts +7 -3
  125. package/dist/server-fns/collections/delete-outcome.js +4 -0
  126. package/dist/server-fns/collections/delete.d.ts +5 -1
  127. package/dist/server-fns/collections/delete.js +8 -3
  128. package/dist/server-fns/collections/duplicate.d.ts +5 -1
  129. package/dist/server-fns/collections/duplicate.js +8 -3
  130. package/dist/server-fns/collections/get.d.ts +1 -0
  131. package/dist/server-fns/collections/get.js +12 -6
  132. package/dist/server-fns/collections/history.d.ts +3 -1
  133. package/dist/server-fns/collections/history.js +4 -1
  134. package/dist/server-fns/collections/index.d.ts +21 -21
  135. package/dist/server-fns/collections/list.d.ts +3 -1
  136. package/dist/server-fns/collections/list.js +15 -4
  137. package/dist/server-fns/collections/reindex.d.ts +3 -1
  138. package/dist/server-fns/collections/reindex.js +4 -1
  139. package/dist/server-fns/collections/reorder.d.ts +10 -2
  140. package/dist/server-fns/collections/reorder.js +23 -76
  141. package/dist/server-fns/collections/restore-version.d.ts +6 -1
  142. package/dist/server-fns/collections/restore-version.js +8 -2
  143. package/dist/server-fns/collections/save-outcome.d.ts +1 -0
  144. package/dist/server-fns/collections/save-outcome.js +1 -0
  145. package/dist/server-fns/collections/scheduled-publication.d.ts +64 -7
  146. package/dist/server-fns/collections/scheduled-publication.js +42 -21
  147. package/dist/server-fns/collections/set-list-view-preference.d.ts +3 -1
  148. package/dist/server-fns/collections/set-list-view-preference.js +4 -1
  149. package/dist/server-fns/collections/stats.js +4 -1
  150. package/dist/server-fns/collections/status.d.ts +14 -2
  151. package/dist/server-fns/collections/status.js +18 -5
  152. package/dist/server-fns/collections/tree-mutation.d.ts +7 -6
  153. package/dist/server-fns/collections/tree-mutation.js +17 -5
  154. package/dist/server-fns/collections/tree.d.ts +29 -6
  155. package/dist/server-fns/collections/tree.js +32 -17
  156. package/dist/server-fns/collections/update.d.ts +18 -6
  157. package/dist/server-fns/collections/update.js +39 -20
  158. package/dist/server-fns/collections/upload.d.ts +11 -1
  159. package/dist/server-fns/collections/upload.js +6 -2
  160. package/dist/server-fns/document-mutation-errors.d.ts +5 -0
  161. package/dist/server-fns/document-mutation-errors.js +50 -0
  162. package/dist/server-fns/editable-revision.d.ts +9 -0
  163. package/dist/server-fns/editable-revision.js +11 -0
  164. package/dist/server-fns/i18n/set-locale.d.ts +3 -1
  165. package/dist/server-fns/i18n/set-locale.js +18 -3
  166. package/dist/server-fns/preview/disable.d.ts +3 -1
  167. package/dist/server-fns/preview/disable.js +4 -1
  168. package/dist/server-fns/preview/enable.d.ts +3 -1
  169. package/dist/server-fns/preview/enable.js +4 -1
  170. package/dist/server-fns/singleton-document-read.d.ts +1 -1
  171. package/dist/server-fns/singleton-document-read.js +7 -3
  172. package/dist/server-fns/singletons/cancel-scheduled-publish.d.ts +9 -2
  173. package/dist/server-fns/singletons/cancel-scheduled-publish.js +7 -1
  174. package/dist/server-fns/singletons/change-status.d.ts +5 -1
  175. package/dist/server-fns/singletons/change-status.js +7 -1
  176. package/dist/server-fns/singletons/confirm-scheduled-publish.d.ts +8 -2
  177. package/dist/server-fns/singletons/confirm-scheduled-publish.js +7 -2
  178. package/dist/server-fns/singletons/copy-to-locale.d.ts +5 -1
  179. package/dist/server-fns/singletons/copy-to-locale.js +7 -2
  180. package/dist/server-fns/singletons/find-by-version.d.ts +3 -1
  181. package/dist/server-fns/singletons/find-by-version.js +4 -1
  182. package/dist/server-fns/singletons/get-scheduled-publish.d.ts +3 -1
  183. package/dist/server-fns/singletons/get-scheduled-publish.js +4 -1
  184. package/dist/server-fns/singletons/get.d.ts +6 -4
  185. package/dist/server-fns/singletons/get.js +4 -1
  186. package/dist/server-fns/singletons/history.d.ts +3 -1
  187. package/dist/server-fns/singletons/history.js +4 -1
  188. package/dist/server-fns/singletons/restore-version.d.ts +5 -1
  189. package/dist/server-fns/singletons/restore-version.js +9 -3
  190. package/dist/server-fns/singletons/schedule-publish.d.ts +8 -2
  191. package/dist/server-fns/singletons/schedule-publish.js +7 -2
  192. package/dist/server-fns/singletons/unpublish.d.ts +5 -1
  193. package/dist/server-fns/singletons/unpublish.js +7 -1
  194. package/dist/server-fns/singletons/update.d.ts +6 -4
  195. package/dist/server-fns/singletons/update.js +8 -4
  196. package/dist/server-fns/structural-receipt.d.ts +4 -0
  197. package/dist/server-fns/structural-receipt.js +31 -0
  198. package/package.json +20 -20
  199. package/src/admin-shell/chrome/admin-app-bar.tsx +11 -6
  200. package/src/admin-shell/chrome/session-change-boundary.test.tsx +78 -0
  201. package/src/admin-shell/chrome/session-change-boundary.tsx +94 -0
  202. package/src/admin-shell/chrome/sign-in-page.tsx +68 -3
  203. package/src/admin-shell/collections/edit.tsx +173 -54
  204. package/src/admin-shell/collections/history.tsx +11 -2
  205. package/src/admin-shell/collections/list.tsx +22 -6
  206. package/src/admin-shell/collections/restore-version-modal.tsx +12 -3
  207. package/src/admin-shell/collections/save-navigation.test.tsx +156 -8
  208. package/src/admin-shell/collections/tree-list.tsx +16 -6
  209. package/src/admin-shell/collections/version-history.tsx +13 -3
  210. package/src/admin-shell/document-mutation-notice.tsx +45 -0
  211. package/src/admin-shell/document-mutation-state.test.tsx +146 -0
  212. package/src/admin-shell/document-mutation-state.ts +95 -0
  213. package/src/admin-shell/scheduled-publications/list.tsx +16 -6
  214. package/src/admin-shell/singletons/history.test.tsx +3 -1
  215. package/src/admin-shell/singletons/history.tsx +10 -2
  216. package/src/admin-shell/singletons/view.test.tsx +59 -18
  217. package/src/admin-shell/singletons/view.tsx +110 -29
  218. package/src/integrations/byline-admin-services.ts +7 -1
  219. package/src/integrations/byline-field-services.ts +2 -3
  220. package/src/integrations/client-ip.test.node.ts +45 -0
  221. package/src/integrations/client-ip.ts +54 -0
  222. package/src/integrations/framework-fetch-shape.test.node.ts +56 -0
  223. package/src/integrations/session-client.test.node.ts +121 -0
  224. package/src/integrations/session-coordination.test.node.ts +77 -0
  225. package/src/integrations/session-coordination.ts +96 -0
  226. package/src/integrations/session-middleware.test.node.ts +87 -0
  227. package/src/integrations/session-middleware.ts +107 -0
  228. package/src/integrations/session-request-kind.ts +18 -0
  229. package/src/integrations/session-request-middleware.ts +17 -0
  230. package/src/integrations/sign-in-body.test.node.ts +59 -0
  231. package/src/integrations/sign-in-body.ts +50 -0
  232. package/src/integrations/sign-in-middleware.ts +24 -0
  233. package/src/routes/create-admin-layout-route.tsx +48 -30
  234. package/src/routes/create-collection-edit-route.tsx +1 -0
  235. package/src/routes/create-collection-list-route.tsx +13 -2
  236. package/src/routes/create-sign-in-route.tsx +10 -2
  237. package/src/routes/create-singleton-route.test.node.ts +10 -2
  238. package/src/routes/create-singleton-route.tsx +6 -4
  239. package/src/server-fns/admin-account/change-password.test.node.ts +69 -0
  240. package/src/server-fns/admin-account/change-password.ts +13 -2
  241. package/src/server-fns/admin-account/get.ts +2 -0
  242. package/src/server-fns/admin-account/update.ts +2 -0
  243. package/src/server-fns/admin-activity/get.ts +2 -0
  244. package/src/server-fns/admin-permissions/get-role-abilities.ts +2 -0
  245. package/src/server-fns/admin-permissions/list-registered.ts +5 -4
  246. package/src/server-fns/admin-permissions/set-role-abilities.ts +2 -0
  247. package/src/server-fns/admin-permissions/who-has.ts +2 -0
  248. package/src/server-fns/admin-roles/create.ts +2 -0
  249. package/src/server-fns/admin-roles/delete.ts +2 -0
  250. package/src/server-fns/admin-roles/get.ts +2 -0
  251. package/src/server-fns/admin-roles/list.ts +5 -4
  252. package/src/server-fns/admin-roles/reorder.ts +2 -0
  253. package/src/server-fns/admin-roles/update.ts +2 -0
  254. package/src/server-fns/admin-users/create.ts +2 -0
  255. package/src/server-fns/admin-users/delete.ts +2 -0
  256. package/src/server-fns/admin-users/disable.ts +2 -0
  257. package/src/server-fns/admin-users/enable.ts +2 -0
  258. package/src/server-fns/admin-users/get-user-roles.ts +2 -0
  259. package/src/server-fns/admin-users/get.ts +2 -0
  260. package/src/server-fns/admin-users/list.ts +2 -0
  261. package/src/server-fns/admin-users/set-password.ts +2 -0
  262. package/src/server-fns/admin-users/set-user-roles.ts +2 -0
  263. package/src/server-fns/admin-users/update.ts +2 -0
  264. package/src/server-fns/ai/execute.ts +3 -0
  265. package/src/server-fns/analytics/maintenance.ts +4 -0
  266. package/src/server-fns/analytics/queries.ts +14 -8
  267. package/src/server-fns/auth/current-user.ts +7 -3
  268. package/src/server-fns/auth/renew.test.node.ts +85 -0
  269. package/src/server-fns/auth/renew.ts +54 -0
  270. package/src/server-fns/auth/sign-in.test.node.ts +114 -0
  271. package/src/server-fns/auth/sign-in.ts +80 -27
  272. package/src/server-fns/auth/sign-out.test.node.ts +85 -0
  273. package/src/server-fns/auth/sign-out.ts +44 -19
  274. package/src/server-fns/collections/audit.ts +2 -0
  275. package/src/server-fns/collections/copy-to-locale.ts +43 -36
  276. package/src/server-fns/collections/create.ts +56 -50
  277. package/src/server-fns/collections/delete-locale.ts +43 -32
  278. package/src/server-fns/collections/delete-outcome.test.node.ts +16 -0
  279. package/src/server-fns/collections/delete-outcome.ts +27 -16
  280. package/src/server-fns/collections/delete.ts +46 -38
  281. package/src/server-fns/collections/duplicate.ts +40 -32
  282. package/src/server-fns/collections/get.ts +11 -4
  283. package/src/server-fns/collections/history.ts +2 -0
  284. package/src/server-fns/collections/list.ts +10 -3
  285. package/src/server-fns/collections/reindex.ts +2 -0
  286. package/src/server-fns/collections/reorder.ts +34 -124
  287. package/src/server-fns/collections/restore-version.ts +49 -39
  288. package/src/server-fns/collections/revision-input.test.node.ts +122 -0
  289. package/src/server-fns/collections/save-outcome.test.node.ts +3 -0
  290. package/src/server-fns/collections/save-outcome.ts +2 -0
  291. package/src/server-fns/collections/scheduled-publication.ts +149 -115
  292. package/src/server-fns/collections/set-list-view-preference.ts +2 -0
  293. package/src/server-fns/collections/stats.ts +2 -0
  294. package/src/server-fns/collections/status.ts +89 -64
  295. package/src/server-fns/collections/tree-mutation.test.node.ts +87 -29
  296. package/src/server-fns/collections/tree-mutation.ts +28 -11
  297. package/src/server-fns/collections/tree.ts +156 -122
  298. package/src/server-fns/collections/update.ts +113 -86
  299. package/src/server-fns/collections/upload-singleton.test.node.ts +10 -7
  300. package/src/server-fns/collections/upload.ts +91 -77
  301. package/src/server-fns/document-mutation-errors.ts +67 -0
  302. package/src/server-fns/document-mutation-transport.test.node.ts +211 -0
  303. package/src/server-fns/editable-revision.test.node.ts +23 -0
  304. package/src/server-fns/editable-revision.ts +18 -0
  305. package/src/server-fns/i18n/set-locale.ts +19 -3
  306. package/src/server-fns/preview/disable.ts +8 -4
  307. package/src/server-fns/preview/enable.ts +9 -5
  308. package/src/server-fns/singleton-document-read.ts +7 -3
  309. package/src/server-fns/singletons/cancel-scheduled-publish.ts +12 -3
  310. package/src/server-fns/singletons/change-status.ts +12 -3
  311. package/src/server-fns/singletons/confirm-scheduled-publish.ts +14 -6
  312. package/src/server-fns/singletons/copy-to-locale.ts +22 -15
  313. package/src/server-fns/singletons/find-by-version.ts +2 -0
  314. package/src/server-fns/singletons/get-scheduled-publish.ts +2 -0
  315. package/src/server-fns/singletons/get.ts +5 -3
  316. package/src/server-fns/singletons/history.ts +2 -0
  317. package/src/server-fns/singletons/restore-version.ts +19 -12
  318. package/src/server-fns/singletons/schedule-publish.ts +20 -7
  319. package/src/server-fns/singletons/singletons.test.node.ts +69 -25
  320. package/src/server-fns/singletons/unpublish.ts +12 -3
  321. package/src/server-fns/singletons/update.ts +23 -16
  322. package/src/server-fns/structural-receipt.ts +41 -0
@@ -2,11 +2,15 @@ import { createServerFn } from "@tanstack/react-start";
2
2
  import { getAdminBylineClient, getAdminRequestContext } from "@byline/client/server";
3
3
  import { BylineError, ERR_NOT_FOUND, ErrorCodes, documentAbilityKey, getCollectionSchemasForPath, getLogger, getServerConfig } from "@byline/core";
4
4
  import { ensureCollection } from "../../integrations/api-utils.js";
5
+ import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
5
6
  import { resolveAdminDocumentRead } from "../admin-document-presentation.js";
7
+ import { withEditableRevision } from "../editable-revision.js";
6
8
  import { serialise } from "./utils.js";
7
9
  const getDocumentFn = createServerFn({
8
10
  method: 'GET'
9
- }).validator((input)=>input).handler(async ({ data })=>{
11
+ }).middleware([
12
+ adminSessionMiddleware
13
+ ]).validator((input)=>input).handler(async ({ data })=>{
10
14
  const { collection: path, id, locale, depth, populateRelations } = data;
11
15
  const logger = getLogger();
12
16
  const config = await ensureCollection(path);
@@ -18,12 +22,12 @@ const getDocumentFn = createServerFn({
18
22
  }).log(logger);
19
23
  const client = getAdminBylineClient();
20
24
  const handle = client.collection(path);
21
- const { options: readOptions, populatedTree } = resolveAdminDocumentRead(config.definition, {
25
+ const { options: { status: _status, ...readOptions }, populatedTree } = resolveAdminDocumentRead(config.definition, {
22
26
  locale,
23
27
  depth,
24
28
  populateRelations
25
29
  });
26
- const document = await handle.findById(id, {
30
+ const document = await handle.findByIdForEdit(id, {
27
31
  ...readOptions
28
32
  });
29
33
  if (!document) throw ERR_NOT_FOUND({
@@ -61,11 +65,11 @@ const getDocumentFn = createServerFn({
61
65
  if (scheduledPublicationEnabled) {
62
66
  const actor = (await getAdminRequestContext()).actor;
63
67
  canSchedulePublication = actor?.hasAbility(documentAbilityKey(config.definition, 'changeStatus')) === true && actor.hasAbility(documentAbilityKey(config.definition, 'publish'));
64
- if (canSchedulePublication) scheduledPublish = await handle.getScheduledPublish(id);
68
+ if (canSchedulePublication) scheduledPublish = document.scheduledPublication;
65
69
  }
66
70
  const serializedSchedule = null == scheduledPublish ? null : serialise(scheduledPublish);
67
71
  return {
68
- ...parsed,
72
+ ...withEditableRevision(parsed, document),
69
73
  _publishedVersion: publishedVersion,
70
74
  ...restoreWarnings && restoreWarnings.length > 0 ? {
71
75
  _restoreWarnings: restoreWarnings
@@ -87,7 +91,9 @@ const getDocumentFn = createServerFn({
87
91
  });
88
92
  const getDocumentByVersionFn = createServerFn({
89
93
  method: 'GET'
90
- }).validator((input)=>input).handler(async ({ data })=>{
94
+ }).middleware([
95
+ adminSessionMiddleware
96
+ ]).validator((input)=>input).handler(async ({ data })=>{
91
97
  const { collection: path, versionId, locale } = data;
92
98
  const resolvedLocale = locale ?? 'all';
93
99
  const logger = getLogger();
@@ -13,7 +13,9 @@ export interface HistorySearchParams {
13
13
  desc?: boolean;
14
14
  locale?: string;
15
15
  }
16
- export declare const getCollectionDocumentHistory: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
16
+ export declare const getCollectionDocumentHistory: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
17
+ bylineExpectedSessionId: string | null;
18
+ }, undefined, undefined>], (input: {
17
19
  collection: string;
18
20
  id: string;
19
21
  params: HistorySearchParams;
@@ -2,11 +2,14 @@ import { createServerFn } from "@tanstack/react-start";
2
2
  import { getAdminBylineClient } from "@byline/client/server";
3
3
  import { ERR_NOT_FOUND, getCollectionSchemasForPath, getLogger } from "@byline/core";
4
4
  import { ensureCollection } from "../../integrations/api-utils.js";
5
+ import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
5
6
  import { resolveActorLabels } from "./actors.js";
6
7
  import { serialise } from "./utils.js";
7
8
  const getCollectionDocumentHistory = createServerFn({
8
9
  method: 'GET'
9
- }).validator((input)=>input).handler(async ({ data })=>{
10
+ }).middleware([
11
+ adminSessionMiddleware
12
+ ]).validator((input)=>input).handler(async ({ data })=>{
10
13
  const { collection: path, id, params } = data;
11
14
  const config = await ensureCollection(path);
12
15
  if (!config) throw ERR_NOT_FOUND({
@@ -4,24 +4,24 @@
4
4
  * Each module is self-contained: it defines the TanStack Start server
5
5
  * function and exports a clean public API.
6
6
  */
7
- export * from './audit';
8
- export * from './copy-to-locale';
9
- export * from './create';
10
- export * from './delete';
11
- export * from './delete-locale';
12
- export * from './delete-outcome';
13
- export * from './duplicate';
14
- export * from './get';
15
- export * from './history';
16
- export * from './list';
17
- export * from './reindex';
18
- export * from './reorder';
19
- export * from './restore-version';
20
- export * from './save-outcome';
21
- export * from './scheduled-publication';
22
- export * from './set-list-view-preference';
23
- export * from './stats';
24
- export * from './status';
25
- export * from './tree';
26
- export * from './update';
27
- export * from './upload';
7
+ export * from './audit.js';
8
+ export * from './copy-to-locale.js';
9
+ export * from './create.js';
10
+ export * from './delete.js';
11
+ export * from './delete-locale.js';
12
+ export * from './delete-outcome.js';
13
+ export * from './duplicate.js';
14
+ export * from './get.js';
15
+ export * from './history.js';
16
+ export * from './list.js';
17
+ export * from './reindex.js';
18
+ export * from './reorder.js';
19
+ export * from './restore-version.js';
20
+ export * from './save-outcome.js';
21
+ export * from './scheduled-publication.js';
22
+ export * from './set-list-view-preference.js';
23
+ export * from './stats.js';
24
+ export * from './status.js';
25
+ export * from './tree.js';
26
+ export * from './update.js';
27
+ export * from './upload.js';
@@ -15,7 +15,9 @@ export interface CollectionSearchParams {
15
15
  status?: string;
16
16
  fields?: string[];
17
17
  }
18
- export declare const getCollectionDocuments: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
18
+ export declare const getCollectionDocuments: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
19
+ bylineExpectedSessionId: string | null;
20
+ }, undefined, undefined>], (input: {
19
21
  collection: string;
20
22
  params: CollectionSearchParams;
21
23
  }) => {
@@ -4,11 +4,15 @@ import { getAdminBylineClient, getAdminRequestContext } from "@byline/client/ser
4
4
  import { ERR_NOT_FOUND, buildRelationSummaryPopulateMap, getCollectionAdminConfig, getCollectionDefinition, getCollectionSchemasForPath, getLogger, getServerConfig } from "@byline/core";
5
5
  import { ensureCollection } from "../../integrations/api-utils.js";
6
6
  import { bylineCore } from "../../integrations/byline-core.js";
7
+ import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
8
+ import { withEditableRevision } from "../editable-revision.js";
7
9
  import { resolveListViewState, sortableFieldNames } from "./list-view-state.js";
8
10
  import { serialise } from "./utils.js";
9
11
  const getCollectionDocuments = createServerFn({
10
12
  method: 'GET'
11
- }).validator((input)=>input).handler(async ({ data })=>{
13
+ }).middleware([
14
+ adminSessionMiddleware
15
+ ]).validator((input)=>input).handler(async ({ data })=>{
12
16
  const { collection: path, params } = data;
13
17
  const config = await ensureCollection(path);
14
18
  if (!config) throw ERR_NOT_FOUND({
@@ -61,7 +65,7 @@ const getCollectionDocuments = createServerFn({
61
65
  }));
62
66
  const hasRelations = Object.keys(populateMap).length > 0;
63
67
  const populate = hasRelations ? populateMap : void 0;
64
- const result = await handle.find({
68
+ const result = await handle.findForEdit({
65
69
  where: Object.keys(where).length > 0 ? where : void 0,
66
70
  sort: viewState.sort,
67
71
  locale: params.locale ?? 'en',
@@ -70,7 +74,6 @@ const getCollectionDocuments = createServerFn({
70
74
  select: params.fields,
71
75
  populate,
72
76
  depth: hasRelations ? 1 : void 0,
73
- status: 'any',
74
77
  onMissingLocale: 'empty'
75
78
  });
76
79
  const documentIds = result.docs.map((d)=>d.id);
@@ -104,6 +107,14 @@ const getCollectionDocuments = createServerFn({
104
107
  const serialised = serialise(response);
105
108
  const { list } = getCollectionSchemasForPath(path);
106
109
  if (hasRelations) return serialised;
107
- return list.parse(serialised);
110
+ const parsed = list.parse(serialised);
111
+ const observations = new Map(result.docs.map((doc)=>[
112
+ doc.id,
113
+ doc
114
+ ]));
115
+ return {
116
+ ...parsed,
117
+ docs: parsed.docs.map((doc)=>withEditableRevision(doc, observations.get(doc.id)))
118
+ };
108
119
  });
109
120
  export { getCollectionDocuments };
@@ -7,7 +7,9 @@
7
7
  */
8
8
  import type { ReindexResult } from '@byline/client';
9
9
  export type { ReindexResult };
10
- export declare const reindexCollection: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
10
+ export declare const reindexCollection: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
11
+ bylineExpectedSessionId: string | null;
12
+ }, undefined, undefined>], (input: {
11
13
  collection: string;
12
14
  }) => {
13
15
  collection: string;
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
2
2
  import { getAdminBylineClient } from "@byline/client/server";
3
3
  import { ERR_NOT_FOUND, getLogger } from "@byline/core";
4
4
  import { ensureCollection } from "../../integrations/api-utils.js";
5
+ import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
5
6
  const reindexCollection = createServerFn({
6
7
  method: 'POST'
7
- }).validator((input)=>input).handler(async ({ data })=>{
8
+ }).middleware([
9
+ adminSessionMiddleware
10
+ ]).validator((input)=>input).handler(async ({ data })=>{
8
11
  const { collection } = data;
9
12
  const config = await ensureCollection(collection);
10
13
  if (!config) throw ERR_NOT_FOUND({
@@ -5,17 +5,25 @@
5
5
  *
6
6
  * Copyright (c) Infonomic Company Limited
7
7
  */
8
- export declare const reorderCollectionDocument: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
8
+ export declare const reorderCollectionDocument: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
9
+ bylineExpectedSessionId: string | null;
10
+ }, undefined, undefined>], (input: {
11
+ expectedRevision: number;
9
12
  collection: string;
10
13
  documentId: string;
11
14
  beforeDocumentId?: string | null;
12
15
  afterDocumentId?: string | null;
13
16
  }) => {
17
+ expectedRevision: number;
14
18
  collection: string;
15
19
  documentId: string;
16
20
  beforeDocumentId?: string | null;
17
21
  afterDocumentId?: string | null;
18
22
  }, Promise<{
19
- status: 'ok';
23
+ documentId: string;
24
+ revision: number;
25
+ affectedDocuments: import("@byline/core").DocumentRevisionReceipt[];
26
+ scheduledPublicationsNeedReconfirmation: boolean;
20
27
  orderKey: string;
28
+ status: 'ok';
21
29
  }>>;
@@ -1,10 +1,14 @@
1
1
  import { createServerFn } from "@tanstack/react-start";
2
2
  import { getAdminRequestContext } from "@byline/client/server";
3
- import { ERR_NOT_FOUND, ERR_VALIDATION, assertActorCanPerform, generateKeyBetween, generateNKeysBetween, getLogger, getServerConfig } from "@byline/core";
3
+ import { ERR_NOT_FOUND, getLogger, getServerConfig, reorderDocument } from "@byline/core";
4
4
  import { ensureCollection } from "../../integrations/api-utils.js";
5
+ import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
6
+ import { withDocumentMutationErrors } from "../document-mutation-errors.js";
5
7
  const reorderCollectionDocument = createServerFn({
6
8
  method: 'POST'
7
- }).validator((input)=>input).handler(async ({ data: input })=>{
9
+ }).middleware([
10
+ adminSessionMiddleware
11
+ ]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
8
12
  const { collection: path, documentId, beforeDocumentId, afterDocumentId } = input;
9
13
  const logger = getLogger();
10
14
  const config = await ensureCollection(path);
@@ -14,83 +18,26 @@ const reorderCollectionDocument = createServerFn({
14
18
  collectionPath: path
15
19
  }
16
20
  }).log(logger);
17
- if (true !== config.definition.orderable) throw ERR_VALIDATION({
18
- message: `collection '${path}' is not orderable; set \`orderable: true\` on its collection definition to enable reordering`,
19
- details: {
20
- collectionPath: path
21
- }
22
- }).log(logger);
23
- const requestContext = await getAdminRequestContext();
24
- assertActorCanPerform(requestContext, config.definition, 'update');
25
21
  const serverConfig = getServerConfig();
26
- const collectionId = config.collection.id;
27
- const canonical = await serverConfig.db.queries.documents.getCanonicalDocumentOrder({
28
- collection_id: collectionId
29
- });
30
- let corrupted = false;
31
- {
32
- const seen = new Set();
33
- let lastKey = null;
34
- for (const doc of canonical)if (null != doc.order_key) {
35
- if (seen.has(doc.order_key)) {
36
- corrupted = true;
37
- break;
38
- }
39
- if (null != lastKey && doc.order_key <= lastKey) {
40
- corrupted = true;
41
- break;
42
- }
43
- seen.add(doc.order_key);
44
- lastKey = doc.order_key;
45
- }
46
- }
47
- if (corrupted) {
48
- const allKeys = generateNKeysBetween(null, null, canonical.length);
49
- for(let i = 0; i < canonical.length; i++)await serverConfig.db.commands.documents.setOrderKey({
50
- document_id: canonical[i]?.id,
51
- order_key: allKeys[i]
52
- });
53
- } else {
54
- const firstNullIdx = canonical.findIndex((d)=>null == d.order_key);
55
- if (-1 !== firstNullIdx) {
56
- const nullDocs = canonical.slice(firstNullIdx);
57
- const lastExistingKey = 0 === firstNullIdx ? null : canonical[firstNullIdx - 1]?.order_key;
58
- const newKeys = generateNKeysBetween(lastExistingKey, null, nullDocs.length);
59
- for(let i = 0; i < nullDocs.length; i++)await serverConfig.db.commands.documents.setOrderKey({
60
- document_id: nullDocs[i]?.id,
61
- order_key: newKeys[i]
62
- });
63
- }
64
- }
65
- const { left, right } = await serverConfig.db.queries.documents.getNeighborOrderKeys({
66
- collection_id: collectionId,
67
- before_document_id: beforeDocumentId ?? null,
68
- after_document_id: afterDocumentId ?? null
69
- });
70
- let newKey;
71
- try {
72
- newKey = generateKeyBetween(left, right);
73
- } catch (err) {
74
- throw ERR_VALIDATION({
75
- message: 'cannot generate order_key between supplied neighbors',
76
- details: {
77
- collectionPath: path,
78
- documentId,
79
- beforeDocumentId,
80
- afterDocumentId,
81
- left,
82
- right,
83
- cause: err instanceof Error ? err.message : String(err)
84
- }
85
- }).log(logger);
86
- }
87
- await serverConfig.db.commands.documents.setOrderKey({
88
- document_id: documentId,
89
- order_key: newKey
22
+ const result = await reorderDocument({
23
+ db: serverConfig.db,
24
+ definition: config.definition,
25
+ collectionId: config.collection.id,
26
+ collectionVersion: config.collection.version,
27
+ collectionPath: path,
28
+ requestContext: await getAdminRequestContext(),
29
+ logger,
30
+ defaultLocale: serverConfig.i18n.content.defaultLocale,
31
+ slugifier: serverConfig.slugifier
32
+ }, {
33
+ documentId,
34
+ expectedRevision: input.expectedRevision,
35
+ beforeDocumentId,
36
+ afterDocumentId
90
37
  });
91
38
  return {
92
39
  status: 'ok',
93
- orderKey: newKey
40
+ ...result
94
41
  };
95
- });
42
+ }));
96
43
  export { reorderCollectionDocument };
@@ -5,17 +5,22 @@
5
5
  *
6
6
  * Copyright (c) Infonomic Company Limited
7
7
  */
8
- export declare const restoreDocumentVersion: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
8
+ export declare const restoreDocumentVersion: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
9
+ bylineExpectedSessionId: string | null;
10
+ }, undefined, undefined>], (input: {
11
+ expectedRevision: number;
9
12
  collection: string;
10
13
  id: string;
11
14
  versionId: string;
12
15
  }) => {
16
+ expectedRevision: number;
13
17
  collection: string;
14
18
  id: string;
15
19
  versionId: string;
16
20
  }, Promise<import("./save-outcome.js").CollectionDocumentCommittedHookFailureResponse | {
17
21
  status: 'ok';
18
22
  documentId: string;
23
+ revision: number;
19
24
  documentVersionId: string;
20
25
  sourceVersionId: string;
21
26
  }>>;
@@ -3,10 +3,14 @@ import { getAdminRequestContext } from "@byline/client/server";
3
3
  import { ERR_NOT_FOUND, getLogger, getServerConfig } from "@byline/core";
4
4
  import { restoreDocumentVersion } from "@byline/core/services";
5
5
  import { ensureCollection } from "../../integrations/api-utils.js";
6
+ import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
7
+ import { withDocumentMutationErrors } from "../document-mutation-errors.js";
6
8
  import { toCommittedDocumentHookFailureResponse } from "./save-outcome.js";
7
9
  const restore_version_restoreDocumentVersion = createServerFn({
8
10
  method: 'POST'
9
- }).validator((input)=>input).handler(async ({ data: input })=>{
11
+ }).middleware([
12
+ adminSessionMiddleware
13
+ ]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
10
14
  const { collection: path, id, versionId } = input;
11
15
  const logger = getLogger();
12
16
  const config = await ensureCollection(path);
@@ -31,11 +35,13 @@ const restore_version_restoreDocumentVersion = createServerFn({
31
35
  try {
32
36
  const result = await restoreDocumentVersion(ctx, {
33
37
  documentId: id,
38
+ expectedRevision: input.expectedRevision,
34
39
  sourceVersionId: versionId
35
40
  });
36
41
  return {
37
42
  status: 'ok',
38
43
  documentId: result.documentId,
44
+ revision: result.revision,
39
45
  documentVersionId: result.documentVersionId,
40
46
  sourceVersionId: result.sourceVersionId
41
47
  };
@@ -44,5 +50,5 @@ const restore_version_restoreDocumentVersion = createServerFn({
44
50
  if (null != committedFailure) return committedFailure;
45
51
  throw error;
46
52
  }
47
- });
53
+ }));
48
54
  export { restore_version_restoreDocumentVersion as restoreDocumentVersion };
@@ -10,6 +10,7 @@ export interface CollectionDocumentCommittedHookFailureResponse {
10
10
  status: 'committed-hook-failed';
11
11
  documentId: string;
12
12
  documentVersionId: string;
13
+ revision: number;
13
14
  sideEffectFailure: {
14
15
  phase: DocumentHookCommittedPhase;
15
16
  code: DocumentHookSideEffectCode;
@@ -6,6 +6,7 @@ function toCommittedDocumentHookFailureResponse(error) {
6
6
  status: 'committed-hook-failed',
7
7
  documentId: details.documentId,
8
8
  documentVersionId: details.documentVersionId,
9
+ revision: details.revision,
9
10
  sideEffectFailure: {
10
11
  phase: details.phase,
11
12
  code: details.sideEffectCode
@@ -31,6 +31,7 @@ export type SerializedDocumentPublishSchedule = Omit<DocumentPublishScheduleInfo
31
31
  nextAttemptAt: string;
32
32
  };
33
33
  export interface ScheduledPublicationListItem extends SerializedDocumentPublishSchedule {
34
+ revision: number;
34
35
  collectionPath: string;
35
36
  collectionLabel: string;
36
37
  documentPath: string | null;
@@ -54,41 +55,97 @@ export interface ScheduledPublicationListResponse {
54
55
  runtime: ScheduledPublicationRuntime;
55
56
  }
56
57
  /** Authenticated feature discovery for the admin shell and health warning. */
57
- export declare const getScheduledPublicationRuntime: import("@tanstack/react-start").OptionalFetcher<undefined, undefined, Promise<ScheduledPublicationRuntime>>;
58
- export declare const scheduleCollectionDocumentPublish: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
58
+ export declare const getScheduledPublicationRuntime: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
59
+ bylineExpectedSessionId: string | null;
60
+ }, undefined, undefined>], undefined, Promise<ScheduledPublicationRuntime>>;
61
+ export declare const scheduleCollectionDocumentPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
62
+ bylineExpectedSessionId: string | null;
63
+ }, undefined, undefined>], (input: {
64
+ expectedRevision: number;
59
65
  collection: string;
60
66
  id: string;
61
67
  publishAt: string;
62
68
  expectedVersionId: string;
63
69
  }) => {
70
+ expectedRevision: number;
64
71
  collection: string;
65
72
  id: string;
66
73
  publishAt: string;
67
74
  expectedVersionId: string;
68
- }, Promise<SerializedDocumentPublishSchedule>>;
69
- export declare const confirmCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
75
+ }, Promise<{
76
+ authorizedRevision: number | null;
77
+ documentId: string;
78
+ collectionId: string;
79
+ targetVersionId: string;
80
+ state: DocumentPublishScheduleState;
81
+ suspendedReason: ("content_edited" | "document_metadata_changed" | "upgrade_invalidated") | null;
82
+ scheduledBy: string | null;
83
+ lastAuthorizedBy: string | null;
84
+ attemptCount: number;
85
+ lastError: string | null;
86
+ publishAt: string;
87
+ suspendedAt: string | null;
88
+ lastAuthorizedAt: string;
89
+ scheduledAt: string;
90
+ updatedAt: string;
91
+ lastAttemptAt: string | null;
92
+ nextAttemptAt: string;
93
+ revision: number;
94
+ }>>;
95
+ export declare const confirmCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
96
+ bylineExpectedSessionId: string | null;
97
+ }, undefined, undefined>], (input: {
98
+ expectedRevision: number;
70
99
  collection: string;
71
100
  id: string;
72
101
  expectedVersionId: string;
73
102
  }) => {
103
+ expectedRevision: number;
74
104
  collection: string;
75
105
  id: string;
76
106
  expectedVersionId: string;
77
- }, Promise<SerializedDocumentPublishSchedule>>;
78
- export declare const cancelCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
107
+ }, Promise<{
108
+ authorizedRevision: number | null;
109
+ documentId: string;
110
+ collectionId: string;
111
+ targetVersionId: string;
112
+ state: DocumentPublishScheduleState;
113
+ suspendedReason: ("content_edited" | "document_metadata_changed" | "upgrade_invalidated") | null;
114
+ scheduledBy: string | null;
115
+ lastAuthorizedBy: string | null;
116
+ attemptCount: number;
117
+ lastError: string | null;
118
+ publishAt: string;
119
+ suspendedAt: string | null;
120
+ lastAuthorizedAt: string;
121
+ scheduledAt: string;
122
+ updatedAt: string;
123
+ lastAttemptAt: string | null;
124
+ nextAttemptAt: string;
125
+ revision: number;
126
+ }>>;
127
+ export declare const cancelCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
128
+ bylineExpectedSessionId: string | null;
129
+ }, undefined, undefined>], (input: {
130
+ expectedRevision: number;
79
131
  collection: string;
80
132
  id: string;
81
133
  }) => {
134
+ expectedRevision: number;
82
135
  collection: string;
83
136
  id: string;
84
137
  }, Promise<{
85
138
  status: 'not_found';
139
+ revision: number;
86
140
  schedule?: undefined;
87
141
  } | {
88
142
  status: 'cancelled';
89
143
  schedule: SerializedDocumentPublishSchedule;
144
+ revision: number;
90
145
  }>>;
91
- export declare const listScheduledPublications: import("@tanstack/react-start").RequiredFetcher<undefined, (input: {
146
+ export declare const listScheduledPublications: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
147
+ bylineExpectedSessionId: string | null;
148
+ }, undefined, undefined>], (input: {
92
149
  states?: readonly DocumentPublishScheduleState[];
93
150
  lastAuthorizedBy?: string;
94
151
  page?: number;