@byline/host-tanstack-start 6.7.2 → 6.9.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 (74) hide show
  1. package/dist/admin-shell/admin-roles/container_module.css +1 -1
  2. package/dist/admin-shell/admin-roles/delete.js +1 -1
  3. package/dist/admin-shell/admin-users/container.js +181 -159
  4. package/dist/admin-shell/admin-users/container.module.js +2 -1
  5. package/dist/admin-shell/admin-users/container_module.css +5 -1
  6. package/dist/admin-shell/admin-users/delete.js +1 -1
  7. package/dist/admin-shell/chrome/admin-app-bar.d.ts +0 -7
  8. package/dist/admin-shell/collections/api.d.ts +6 -2
  9. package/dist/admin-shell/collections/api.js +109 -3
  10. package/dist/admin-shell/collections/api.test.d.ts +8 -0
  11. package/dist/admin-shell/collections/edit.js +2 -0
  12. package/dist/admin-shell/collections/preview-link.js +17 -13
  13. package/dist/admin-shell/collections/view-menu.d.ts +8 -1
  14. package/dist/admin-shell/collections/view-menu.js +124 -107
  15. package/dist/admin-shell/collections/view-menu.module.js +1 -0
  16. package/dist/admin-shell/collections/view-menu_module.css +15 -1
  17. package/dist/admin-shell/scheduled-publications/list.js +2 -2
  18. package/dist/admin-shell/singletons/preview-link.js +17 -13
  19. package/dist/admin-shell/singletons/view-menu.js +78 -63
  20. package/dist/admin-shell/singletons/view.js +2 -0
  21. package/dist/integrations/byline-admin-services.js +2 -0
  22. package/dist/integrations/passkey-admin-services.d.ts +9 -0
  23. package/dist/integrations/passkey-admin-services.js +53 -0
  24. package/dist/integrations/session-coordination.d.ts +3 -1
  25. package/dist/integrations/session-coordination.js +3 -1
  26. package/dist/integrations/session-middleware.d.ts +3 -1
  27. package/dist/integrations/session-middleware.js +87 -79
  28. package/dist/integrations/sign-in-body.d.ts +3 -0
  29. package/dist/integrations/sign-in-body.js +19 -4
  30. package/dist/integrations/sign-in-middleware.js +30 -5
  31. package/dist/server-fns/auth/passkey-admission.d.ts +24 -0
  32. package/dist/server-fns/auth/passkey-admission.js +88 -0
  33. package/dist/server-fns/auth/passkeys.d.ts +96 -0
  34. package/dist/server-fns/auth/passkeys.js +238 -0
  35. package/dist/server-fns/auth/reconcile-locale.d.ts +20 -0
  36. package/dist/server-fns/auth/reconcile-locale.js +16 -0
  37. package/dist/server-fns/auth/sign-in.js +1 -15
  38. package/dist/server-fns/collections/get.d.ts +1 -0
  39. package/dist/server-fns/collections/get.js +4 -0
  40. package/package.json +11 -11
  41. package/src/admin-shell/admin-roles/container.module.css +1 -1
  42. package/src/admin-shell/admin-roles/delete.tsx +1 -1
  43. package/src/admin-shell/admin-users/container.module.css +7 -1
  44. package/src/admin-shell/admin-users/container.tsx +22 -2
  45. package/src/admin-shell/admin-users/delete.tsx +1 -1
  46. package/src/admin-shell/chrome/admin-app-bar.tsx +2 -2
  47. package/src/admin-shell/chrome/dashboard.test.tsx +2 -2
  48. package/src/admin-shell/collections/api.test.tsx +223 -0
  49. package/src/admin-shell/collections/api.tsx +98 -3
  50. package/src/admin-shell/collections/edit.tsx +9 -1
  51. package/src/admin-shell/collections/preview-link.tsx +13 -12
  52. package/src/admin-shell/collections/view-menu.module.css +29 -3
  53. package/src/admin-shell/collections/view-menu.tsx +114 -96
  54. package/src/admin-shell/scheduled-publications/list.tsx +3 -4
  55. package/src/admin-shell/singletons/history.test.tsx +1 -1
  56. package/src/admin-shell/singletons/preview-link.tsx +13 -12
  57. package/src/admin-shell/singletons/view-menu.tsx +65 -59
  58. package/src/admin-shell/singletons/view.test.tsx +4 -4
  59. package/src/admin-shell/singletons/view.tsx +3 -1
  60. package/src/integrations/byline-admin-services.ts +3 -0
  61. package/src/integrations/passkey-admin-services.ts +85 -0
  62. package/src/integrations/session-client.test.node.ts +73 -0
  63. package/src/integrations/session-coordination.ts +3 -1
  64. package/src/integrations/session-middleware.ts +86 -72
  65. package/src/integrations/sign-in-body.test.node.ts +31 -1
  66. package/src/integrations/sign-in-body.ts +27 -3
  67. package/src/integrations/sign-in-middleware.ts +42 -9
  68. package/src/server-fns/auth/passkey-admission.test.node.ts +173 -0
  69. package/src/server-fns/auth/passkey-admission.ts +125 -0
  70. package/src/server-fns/auth/passkeys.test.node.ts +247 -0
  71. package/src/server-fns/auth/passkeys.ts +252 -0
  72. package/src/server-fns/auth/reconcile-locale.ts +40 -0
  73. package/src/server-fns/auth/sign-in.ts +1 -32
  74. package/src/server-fns/collections/get.ts +3 -0
@@ -29,10 +29,9 @@ import {
29
29
  import { getServerConfig } from '@byline/core'
30
30
  import { passwordSignInSchema } from '@byline/core/validation'
31
31
 
32
- import { readAdminLocaleCookie } from '../../i18n/locale-cookie.js'
33
- import { bylineCore } from '../../integrations/byline-core.js'
34
32
  import { normalizeClientIp } from '../../integrations/client-ip.js'
35
33
  import { wasSignInBodyChecked } from '../../integrations/sign-in-body.js'
34
+ import { reconcileLocaleAfterSignIn } from './reconcile-locale.js'
36
35
 
37
36
  export interface SignInInput {
38
37
  email: string
@@ -137,33 +136,3 @@ export const adminSignIn = createServerFn({ method: 'POST' })
137
136
 
138
137
  return { userId: result.actor.id, sessionId: result.sessionId }
139
138
  })
140
-
141
- /**
142
- * Apply the `byline_admin_lng` cookie to `admin_users.preferred_locale`
143
- * when the two diverge after sign-in. No-op when:
144
- *
145
- * - The cookie is unset (the cascade falls through to the existing
146
- * column / Accept-Language / default anyway).
147
- * - The cookie carries a locale outside `i18n.admin.locales`
148
- * (stale value pointing at a removed locale — let the resolver
149
- * fall through cleanly).
150
- * - No admin store is configured (headless tooling paths).
151
- * - The stored value already matches the cookie.
152
- */
153
- async function reconcileLocaleAfterSignIn(adminUserId: string): Promise<void> {
154
- const cookieLocale = readAdminLocaleCookie()
155
- if (cookieLocale == null) return
156
-
157
- const core = bylineCore()
158
- const locales = core.config.i18n.admin.locales
159
- if (!locales.includes(cookieLocale)) return
160
-
161
- const adminStore = core.adminStore
162
- if (adminStore == null) return
163
-
164
- const row = await adminStore.adminUsers.getById(adminUserId)
165
- if (!row) return
166
- if (row.preferred_locale === cookieLocale) return
167
-
168
- await adminStore.adminUsers.setPreferredLocale(adminUserId, cookieLocale)
169
- }
@@ -120,6 +120,8 @@ const getDocumentFn = createServerFn({ method: 'GET' })
120
120
  | string[]
121
121
  | undefined
122
122
 
123
+ const unavailableBlocks = document._unavailableBlocks
124
+
123
125
  // Same preservation for the available-locales metadata — both are stripped
124
126
  // by the Zod parse but the sidebar widget needs them at edit time:
125
127
  // `availableLocales` — the stored editorial set → initialises the
@@ -155,6 +157,7 @@ const getDocumentFn = createServerFn({ method: 'GET' })
155
157
  return {
156
158
  ...withEditableRevision(parsed, document),
157
159
  _publishedVersion: publishedVersion,
160
+ ...(unavailableBlocks?.length ? { _unavailableBlocks: unavailableBlocks } : {}),
158
161
  ...(restoreWarnings && restoreWarnings.length > 0
159
162
  ? { _restoreWarnings: restoreWarnings }
160
163
  : {}),