@vertz/ui-server 0.2.26 → 0.2.29

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.
@@ -593,14 +593,16 @@ function createSourceMapResolver(projectRoot) {
593
593
  }
594
594
 
595
595
  // src/ssr-access-evaluator.ts
596
- function toPrefetchSession(ssrAuth) {
596
+ function toPrefetchSession(ssrAuth, accessSet) {
597
597
  if (!ssrAuth || ssrAuth.status !== "authenticated" || !ssrAuth.user) {
598
598
  return { status: "unauthenticated" };
599
599
  }
600
600
  const roles = ssrAuth.user.role ? [ssrAuth.user.role] : undefined;
601
+ const entitlements = accessSet != null ? Object.fromEntries(Object.entries(accessSet.entitlements).map(([name, check]) => [name, check.allowed])) : undefined;
601
602
  return {
602
603
  status: "authenticated",
603
604
  roles,
605
+ entitlements,
604
606
  tenantId: ssrAuth.user.tenantId
605
607
  };
606
608
  }
@@ -3583,6 +3585,7 @@ data: {}
3583
3585
  }) : null;
3584
3586
  let sessionScript = "";
3585
3587
  let ssrAuth;
3588
+ let ssrAccessSet;
3586
3589
  if (sessionResolver) {
3587
3590
  try {
3588
3591
  const sessionResult = await sessionResolver(request);
@@ -3592,6 +3595,7 @@ data: {}
3592
3595
  user: sessionResult.session.user,
3593
3596
  expiresAt: sessionResult.session.expiresAt
3594
3597
  };
3598
+ ssrAccessSet = sessionResult.accessSet;
3595
3599
  const scripts = [];
3596
3600
  scripts.push(createSessionScript(sessionResult.session));
3597
3601
  if (sessionResult.accessSet != null) {
@@ -3626,7 +3630,7 @@ data: {}
3626
3630
  fallbackMetrics: fontFallbackMetrics,
3627
3631
  ssrAuth,
3628
3632
  manifest: prefetchManager?.getSSRManifest(),
3629
- prefetchSession: toPrefetchSession(ssrAuth)
3633
+ prefetchSession: toPrefetchSession(ssrAuth, ssrAccessSet)
3630
3634
  });
3631
3635
  logger.log("ssr", "render-done", {
3632
3636
  url: pathname,
package/dist/index.d.ts CHANGED
@@ -381,8 +381,20 @@ type PrefetchSession = {
381
381
  status: "unauthenticated";
382
382
  };
383
383
  /**
384
+ * Minimal shape of an AccessSet for entitlement extraction.
385
+ * Avoids importing @vertz/server types into the SSR pipeline.
386
+ */
387
+ interface AccessSetLike {
388
+ entitlements: Record<string, {
389
+ allowed: boolean;
390
+ }>;
391
+ }
392
+ /**
384
393
  * Convert SSRAuth (from the JWT/session resolver) to PrefetchSession
385
394
  * for entity access evaluation during SSR prefetching.
395
+ *
396
+ * @param ssrAuth - Auth state from session resolver
397
+ * @param accessSet - Access set from JWT acl claim (null = overflow, undefined = not configured)
386
398
  */
387
399
  declare function toPrefetchSession(ssrAuth: {
388
400
  status: string;
@@ -390,7 +402,7 @@ declare function toPrefetchSession(ssrAuth: {
390
402
  role?: string;
391
403
  [key: string]: unknown;
392
404
  };
393
- } | undefined): PrefetchSession;
405
+ } | undefined, accessSet?: AccessSetLike | null): PrefetchSession;
394
406
  /**
395
407
  * Evaluate a serialized access rule against the current session.
396
408
  *
package/dist/index.js CHANGED
@@ -484,14 +484,16 @@ async function renderToHTML(appOrOptions, maybeOptions) {
484
484
  });
485
485
  }
486
486
  // src/ssr-access-evaluator.ts
487
- function toPrefetchSession(ssrAuth) {
487
+ function toPrefetchSession(ssrAuth, accessSet) {
488
488
  if (!ssrAuth || ssrAuth.status !== "authenticated" || !ssrAuth.user) {
489
489
  return { status: "unauthenticated" };
490
490
  }
491
491
  const roles = ssrAuth.user.role ? [ssrAuth.user.role] : undefined;
492
+ const entitlements = accessSet != null ? Object.fromEntries(Object.entries(accessSet.entitlements).map(([name, check]) => [name, check.allowed])) : undefined;
492
493
  return {
493
494
  status: "authenticated",
494
495
  roles,
496
+ entitlements,
495
497
  tenantId: ssrAuth.user.tenantId
496
498
  };
497
499
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertz/ui-server",
3
- "version": "0.2.26",
3
+ "version": "0.2.29",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Vertz UI server-side rendering runtime",
@@ -58,15 +58,15 @@
58
58
  "@ampproject/remapping": "^2.3.0",
59
59
  "@capsizecss/unpack": "^4.0.0",
60
60
  "@jridgewell/trace-mapping": "^0.3.31",
61
- "@vertz/core": "^0.2.25",
62
- "@vertz/ui": "^0.2.25",
63
- "@vertz/ui-compiler": "^0.2.25",
61
+ "@vertz/core": "^0.2.28",
62
+ "@vertz/ui": "^0.2.28",
63
+ "@vertz/ui-compiler": "^0.2.28",
64
64
  "magic-string": "^0.30.0",
65
65
  "sharp": "^0.34.5",
66
66
  "ts-morph": "^27.0.2"
67
67
  },
68
68
  "devDependencies": {
69
- "@vertz/codegen": "^0.2.25",
69
+ "@vertz/codegen": "^0.2.28",
70
70
  "@vertz/ui-auth": "^0.2.19",
71
71
  "bun-types": "^1.3.10",
72
72
  "bunup": "^0.16.31",