JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q39791F
  • License ISC

Package Exports

  • @jss-rule-engine/edge
  • @jss-rule-engine/edge/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@jss-rule-engine/edge) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Using @jss-rule-engine/edge in a Next.js App

Overview

The @jss-rule-engine/edge package provides middleware and utilities for enabling Sitecore Experience Edge personalization in Next.js applications. It is primarily used to:

  • Personalize pages at the edge using Next.js Middleware.
  • Integrate with Sitecore Experience Edge and CDP for dynamic page variants.
  • Support advanced routing and personalization scenarios.

1. Edge Middleware Personalization

File: src/lib/middleware/plugins/scpersonalize.ts

The ScPersonalizeMiddleware is used in a custom Next.js middleware plugin to enable Sitecore personalization at the edge.

Example:

import { ScPersonalizeMiddleware } from '@jss-rule-engine/edge';

class ScPersonalizePlugin implements MiddlewarePlugin {
  private personalizeMiddleware?: ScPersonalizeMiddleware;
  order = 1;

  async exec(req: NextRequest, res?: NextResponse): Promise<NextResponse> {
    this.personalizeMiddleware = new ScPersonalizeMiddleware({
      edgeConfig: {
        endpoint: config.graphQLEndpoint,
        apiKey: config.sitecoreApiKey,
        timeout: 2000,
        scope: process.env.NEXT_PUBLIC_PERSONALIZE_SCOPE,
      },
      disabled: () => false,
      excludeRoute: () => false,
      siteResolver,
    });
    return this.personalizeMiddleware.getHandler()(req, res);
  }
}
  • Purpose:
    • Calls Sitecore Experience Edge to get personalization info for the page.
    • Calls Sitecore CDP to determine the correct page variant for the user.
    • Rewrites the response to serve the personalized variant.

2. Configuration

  • Edge Config:

    • endpoint: Sitecore Experience Edge GraphQL endpoint.
    • apiKey: Sitecore API key.
    • timeout: (optional) Timeout for Edge requests.
    • scope: (optional) Personalization scope.
  • CDP Integration:

    • The middleware can be configured to enable/disable personalization and exclude certain routes for performance or privacy reasons.
  • Site Resolver:

    • Used to resolve the current site and language for personalization.

3. Usage Notes

  • Place the middleware plugin in your Next.js middleware pipeline to enable edge personalization.
  • You may want to customize the disabled and excludeRoute functions to fit your privacy, consent, or performance requirements.
  • The middleware runs on every request, so be mindful of performance and only enable for routes that require personalization.

Summary

  • ScPersonalizeMiddleware: Use in Next.js middleware to enable Sitecore Experience Edge personalization.
  • Configuration: Set up with your Sitecore endpoints, API keys, and any custom logic for enabling/disabling or excluding routes.
  • Integration: Allows dynamic, personalized page variants to be served at the edge, improving user experience and performance.