@uniformdev/next-app-router 20.7.1-alpha.120 → 20.7.1-alpha.122

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.
@@ -1,7 +1,7 @@
1
1
  import { RootComponentInstance, ComponentInstance } from '@uniformdev/canvas';
2
2
  import { ComponentProps } from '@uniformdev/next-app-router-shared';
3
3
  import React, { ComponentType } from 'react';
4
- import { a as ResolvedRouteResult, R as ResolveRouteFunction } from './resolveRouteFromCode-CA63-EPp.mjs';
4
+ import { a as ResolvedRouteResult, R as ResolveRouteFunction } from './resolveRouteFromCode-CKaYNXte.mjs';
5
5
  import { ClientContextComponent } from '@uniformdev/next-app-router-client';
6
6
 
7
7
  type CompositionCache = {
@@ -1,7 +1,7 @@
1
1
  import { RootComponentInstance, ComponentInstance } from '@uniformdev/canvas';
2
2
  import { ComponentProps } from '@uniformdev/next-app-router-shared';
3
3
  import React, { ComponentType } from 'react';
4
- import { a as ResolvedRouteResult, R as ResolveRouteFunction } from './resolveRouteFromCode-B2rqnHgJ.js';
4
+ import { a as ResolvedRouteResult, R as ResolveRouteFunction } from './resolveRouteFromCode-DgTsfMK8.js';
5
5
  import { ClientContextComponent } from '@uniformdev/next-app-router-client';
6
6
 
7
7
  type CompositionCache = {
package/dist/cache.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as ResolveRouteFunction } from './resolveRouteFromCode-CA63-EPp.mjs';
1
+ import { R as ResolveRouteFunction } from './resolveRouteFromCode-CKaYNXte.mjs';
2
2
  import '@uniformdev/canvas';
3
3
  import '@uniformdev/next-app-router-shared';
4
4
  import './client-BCGVjYM-.mjs';
package/dist/cache.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as ResolveRouteFunction } from './resolveRouteFromCode-B2rqnHgJ.js';
1
+ import { R as ResolveRouteFunction } from './resolveRouteFromCode-DgTsfMK8.js';
2
2
  import '@uniformdev/canvas';
3
3
  import '@uniformdev/next-app-router-shared';
4
4
  import './client-BCGVjYM-.js';
package/dist/cache.js CHANGED
@@ -1845,7 +1845,8 @@ var DefaultDataClient = class {
1845
1845
  path: options.pageState.routePath,
1846
1846
  state: options.pageState.compositionState,
1847
1847
  withComponentIDs: true,
1848
- releaseId: options.pageState.releaseId
1848
+ releaseId: options.pageState.releaseId,
1849
+ locale: options.pageState.locale
1849
1850
  };
1850
1851
  const resolvedRoute = await this.getRouteFromApi({
1851
1852
  source: "pageState",
@@ -1871,10 +1872,9 @@ var DefaultDataClient = class {
1871
1872
 
1872
1873
  // src/data/resolveRouteFromCode.ts
1873
1874
  var resolveRouteFromCode = async ({
1874
- params,
1875
+ code,
1875
1876
  dataClient: providedDataClient
1876
1877
  }) => {
1877
- const { code } = await params;
1878
1878
  const pageState = (0, import_next_app_router_shared.deserializeEvaluationResult)({ input: code });
1879
1879
  const dataClient = providedDataClient != null ? providedDataClient : new DefaultDataClient();
1880
1880
  const { route } = await dataClient.getRoute({
@@ -1892,12 +1892,12 @@ var resolveRouteFromCode = async ({
1892
1892
 
1893
1893
  // src/cache.ts
1894
1894
  var resolveRouteFromCode2 = async ({
1895
- params,
1895
+ code,
1896
1896
  dataClient: providedDataClient
1897
1897
  }) => {
1898
1898
  "use cache";
1899
1899
  const result = await resolveRouteFromCode({
1900
- params,
1900
+ code,
1901
1901
  dataClient: providedDataClient
1902
1902
  });
1903
1903
  if (process.env.NODE_ENV === "development") {
package/dist/cache.mjs CHANGED
@@ -1834,7 +1834,8 @@ var DefaultDataClient = class {
1834
1834
  path: options.pageState.routePath,
1835
1835
  state: options.pageState.compositionState,
1836
1836
  withComponentIDs: true,
1837
- releaseId: options.pageState.releaseId
1837
+ releaseId: options.pageState.releaseId,
1838
+ locale: options.pageState.locale
1838
1839
  };
1839
1840
  const resolvedRoute = await this.getRouteFromApi({
1840
1841
  source: "pageState",
@@ -1860,10 +1861,9 @@ var DefaultDataClient = class {
1860
1861
 
1861
1862
  // src/data/resolveRouteFromCode.ts
1862
1863
  var resolveRouteFromCode = async ({
1863
- params,
1864
+ code,
1864
1865
  dataClient: providedDataClient
1865
1866
  }) => {
1866
- const { code } = await params;
1867
1867
  const pageState = deserializeEvaluationResult({ input: code });
1868
1868
  const dataClient = providedDataClient != null ? providedDataClient : new DefaultDataClient();
1869
1869
  const { route } = await dataClient.getRoute({
@@ -1881,12 +1881,12 @@ var resolveRouteFromCode = async ({
1881
1881
 
1882
1882
  // src/cache.ts
1883
1883
  var resolveRouteFromCode2 = async ({
1884
- params,
1884
+ code,
1885
1885
  dataClient: providedDataClient
1886
1886
  }) => {
1887
1887
  "use cache";
1888
1888
  const result = await resolveRouteFromCode({
1889
- params,
1889
+ code,
1890
1890
  dataClient: providedDataClient
1891
1891
  });
1892
1892
  if (process.env.NODE_ENV === "development") {
package/dist/compat.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import React, { ComponentType } from 'react';
2
2
  import { ComponentProps as ComponentProps$1, ComponentParameter } from '@uniformdev/next-app-router-shared';
3
3
  import { U as UniformTextProps$1 } from './UniformText-ChMwHBw4.mjs';
4
- import { R as ResolveComponentResult, a as ResolveComponentFunction } from './UniformComposition-Bekn8k24.mjs';
4
+ import { R as ResolveComponentResult, a as ResolveComponentFunction } from './UniformComposition-CHUPULqc.mjs';
5
5
  import '@uniformdev/next-app-router-client';
6
6
  import '@uniformdev/canvas';
7
- import './resolveRouteFromCode-CA63-EPp.mjs';
7
+ import './resolveRouteFromCode-CKaYNXte.mjs';
8
8
  import './client-BCGVjYM-.mjs';
9
9
  import '@uniformdev/context';
10
10
 
package/dist/compat.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import React, { ComponentType } from 'react';
2
2
  import { ComponentProps as ComponentProps$1, ComponentParameter } from '@uniformdev/next-app-router-shared';
3
3
  import { U as UniformTextProps$1 } from './UniformText-ChMwHBw4.js';
4
- import { R as ResolveComponentResult, a as ResolveComponentFunction } from './UniformComposition-CdXfLiaB.js';
4
+ import { R as ResolveComponentResult, a as ResolveComponentFunction } from './UniformComposition-r8a9xGZn.js';
5
5
  import '@uniformdev/next-app-router-client';
6
6
  import '@uniformdev/canvas';
7
- import './resolveRouteFromCode-B2rqnHgJ.js';
7
+ import './resolveRouteFromCode-DgTsfMK8.js';
8
8
  import './client-BCGVjYM-.js';
9
9
  import '@uniformdev/context';
10
10
 
package/dist/index.d.mts CHANGED
@@ -2,12 +2,12 @@ import { CanvasClient, RouteClient, ComponentInstance } from '@uniformdev/canvas
2
2
  import { CacheMode, CanvasCacheMode, ManifestCacheMode, ProjectMapCacheMode, RewriteRequestPathResult } from '@uniformdev/next-app-router-shared';
3
3
  import { ManifestClient } from '@uniformdev/context/api';
4
4
  import { ProjectMapClient } from '@uniformdev/project-map';
5
- import { U as UniformCompositionProps } from './UniformComposition-Bekn8k24.mjs';
6
- export { C as CompositionCache, a as ResolveComponentFunction, R as ResolveComponentResult, b as UniformComposition, c as createCompositionCache } from './UniformComposition-Bekn8k24.mjs';
7
- import { a as ResolvedRouteResult } from './resolveRouteFromCode-CA63-EPp.mjs';
8
- export { A as AwaitedUniformPageParameters, R as ResolveRouteFunction, U as UniformPageParameters, r as resolveRouteFromCode } from './resolveRouteFromCode-CA63-EPp.mjs';
5
+ import { U as UniformCompositionProps } from './UniformComposition-CHUPULqc.mjs';
6
+ export { C as CompositionCache, a as ResolveComponentFunction, R as ResolveComponentResult, b as UniformComposition, c as createCompositionCache } from './UniformComposition-CHUPULqc.mjs';
9
7
  import React from 'react';
10
8
  export { D as DataClient, a as DefaultDataClient, E as EnhanceRouteOptions, G as GetRouteFromMiddlewareOptions, b as GetRouteFromPageStateOptions, c as GetRouteOptions, R as RewriteRouteOptions, d as RewriteRouteResult, e as expireMiddlewareCacheTag } from './client-BCGVjYM-.mjs';
9
+ import { a as ResolvedRouteResult } from './resolveRouteFromCode-CKaYNXte.mjs';
10
+ export { R as ResolveRouteFunction, r as resolveRouteFromCode } from './resolveRouteFromCode-CKaYNXte.mjs';
11
11
  import '@uniformdev/next-app-router-client';
12
12
  import '@uniformdev/context';
13
13
 
@@ -197,6 +197,15 @@ type PlaygroundParameters = {
197
197
  }>;
198
198
  };
199
199
 
200
+ type UniformPageParameters = {
201
+ params: Promise<{
202
+ code: string;
203
+ }>;
204
+ };
205
+ type AwaitedUniformPageParameters = {
206
+ params: Awaited<UniformPageParameters['params']>;
207
+ };
208
+
200
209
  type UniformPlaygroundProps = UniformCompositionProps;
201
210
  declare const UniformPlayground: ({ resolveRoute, ...rest }: UniformPlaygroundProps) => Promise<React.JSX.Element>;
202
211
 
@@ -205,6 +214,7 @@ type CreateStaticParamsOptions = {
205
214
  rewrite?: (options: {
206
215
  path: string;
207
216
  }) => Promise<RewriteRequestPathResult | undefined>;
217
+ locale?: string;
208
218
  };
209
219
  /**
210
220
  * Function to generate all possible page states for the given paths in playground mode.
@@ -245,7 +255,9 @@ type PrecomputeCompositionOptions = Pick<ResolvedRouteResult, 'pageState' | 'rou
245
255
  };
246
256
  declare const precomputeComposition: ({ pageState, route, evaluatePersonalizations, evaluateTests, }: PrecomputeCompositionOptions) => Promise<void>;
247
257
 
248
- declare const resolvePlaygroundRoute: ({ params, }: PlaygroundParameters) => Promise<ResolvedRouteResult>;
258
+ declare const resolvePlaygroundRoute: ({ code }: {
259
+ code: string;
260
+ }) => Promise<ResolvedRouteResult>;
249
261
 
250
262
  type CustomRoute = {
251
263
  id: string;
@@ -259,4 +271,4 @@ declare const findRouteMatch: (routes: CustomRoute[], path: string) => RouteMatc
259
271
 
260
272
  declare const serverContext: <T>(defaultValue?: T) => [() => T | undefined, (v: T) => void];
261
273
 
262
- export { type CreateStaticParamsOptions, type CustomRoute, type GetCanvasClientOptions, type GetManifestClientOptions, type GetProjectMapClientOptions, type GetRouteClientOptions, type PlaygroundParameters, type RouteMatch, UniformCompositionProps, UniformPlayground, createUniformPlaygroundStaticParams, createUniformStaticParams, findRouteMatch, getCanvasClient, getManifest, getManifestClient, getProjectMapClient, getRouteClient, precomputeComposition, resolvePlaygroundRoute, serverContext };
274
+ export { type AwaitedUniformPageParameters, type CreateStaticParamsOptions, type CustomRoute, type GetCanvasClientOptions, type GetManifestClientOptions, type GetProjectMapClientOptions, type GetRouteClientOptions, type PlaygroundParameters, type RouteMatch, UniformCompositionProps, type UniformPageParameters, UniformPlayground, createUniformPlaygroundStaticParams, createUniformStaticParams, findRouteMatch, getCanvasClient, getManifest, getManifestClient, getProjectMapClient, getRouteClient, precomputeComposition, resolvePlaygroundRoute, serverContext };
package/dist/index.d.ts CHANGED
@@ -2,12 +2,12 @@ import { CanvasClient, RouteClient, ComponentInstance } from '@uniformdev/canvas
2
2
  import { CacheMode, CanvasCacheMode, ManifestCacheMode, ProjectMapCacheMode, RewriteRequestPathResult } from '@uniformdev/next-app-router-shared';
3
3
  import { ManifestClient } from '@uniformdev/context/api';
4
4
  import { ProjectMapClient } from '@uniformdev/project-map';
5
- import { U as UniformCompositionProps } from './UniformComposition-CdXfLiaB.js';
6
- export { C as CompositionCache, a as ResolveComponentFunction, R as ResolveComponentResult, b as UniformComposition, c as createCompositionCache } from './UniformComposition-CdXfLiaB.js';
7
- import { a as ResolvedRouteResult } from './resolveRouteFromCode-B2rqnHgJ.js';
8
- export { A as AwaitedUniformPageParameters, R as ResolveRouteFunction, U as UniformPageParameters, r as resolveRouteFromCode } from './resolveRouteFromCode-B2rqnHgJ.js';
5
+ import { U as UniformCompositionProps } from './UniformComposition-r8a9xGZn.js';
6
+ export { C as CompositionCache, a as ResolveComponentFunction, R as ResolveComponentResult, b as UniformComposition, c as createCompositionCache } from './UniformComposition-r8a9xGZn.js';
9
7
  import React from 'react';
10
8
  export { D as DataClient, a as DefaultDataClient, E as EnhanceRouteOptions, G as GetRouteFromMiddlewareOptions, b as GetRouteFromPageStateOptions, c as GetRouteOptions, R as RewriteRouteOptions, d as RewriteRouteResult, e as expireMiddlewareCacheTag } from './client-BCGVjYM-.js';
9
+ import { a as ResolvedRouteResult } from './resolveRouteFromCode-DgTsfMK8.js';
10
+ export { R as ResolveRouteFunction, r as resolveRouteFromCode } from './resolveRouteFromCode-DgTsfMK8.js';
11
11
  import '@uniformdev/next-app-router-client';
12
12
  import '@uniformdev/context';
13
13
 
@@ -197,6 +197,15 @@ type PlaygroundParameters = {
197
197
  }>;
198
198
  };
199
199
 
200
+ type UniformPageParameters = {
201
+ params: Promise<{
202
+ code: string;
203
+ }>;
204
+ };
205
+ type AwaitedUniformPageParameters = {
206
+ params: Awaited<UniformPageParameters['params']>;
207
+ };
208
+
200
209
  type UniformPlaygroundProps = UniformCompositionProps;
201
210
  declare const UniformPlayground: ({ resolveRoute, ...rest }: UniformPlaygroundProps) => Promise<React.JSX.Element>;
202
211
 
@@ -205,6 +214,7 @@ type CreateStaticParamsOptions = {
205
214
  rewrite?: (options: {
206
215
  path: string;
207
216
  }) => Promise<RewriteRequestPathResult | undefined>;
217
+ locale?: string;
208
218
  };
209
219
  /**
210
220
  * Function to generate all possible page states for the given paths in playground mode.
@@ -245,7 +255,9 @@ type PrecomputeCompositionOptions = Pick<ResolvedRouteResult, 'pageState' | 'rou
245
255
  };
246
256
  declare const precomputeComposition: ({ pageState, route, evaluatePersonalizations, evaluateTests, }: PrecomputeCompositionOptions) => Promise<void>;
247
257
 
248
- declare const resolvePlaygroundRoute: ({ params, }: PlaygroundParameters) => Promise<ResolvedRouteResult>;
258
+ declare const resolvePlaygroundRoute: ({ code }: {
259
+ code: string;
260
+ }) => Promise<ResolvedRouteResult>;
249
261
 
250
262
  type CustomRoute = {
251
263
  id: string;
@@ -259,4 +271,4 @@ declare const findRouteMatch: (routes: CustomRoute[], path: string) => RouteMatc
259
271
 
260
272
  declare const serverContext: <T>(defaultValue?: T) => [() => T | undefined, (v: T) => void];
261
273
 
262
- export { type CreateStaticParamsOptions, type CustomRoute, type GetCanvasClientOptions, type GetManifestClientOptions, type GetProjectMapClientOptions, type GetRouteClientOptions, type PlaygroundParameters, type RouteMatch, UniformCompositionProps, UniformPlayground, createUniformPlaygroundStaticParams, createUniformStaticParams, findRouteMatch, getCanvasClient, getManifest, getManifestClient, getProjectMapClient, getRouteClient, precomputeComposition, resolvePlaygroundRoute, serverContext };
274
+ export { type AwaitedUniformPageParameters, type CreateStaticParamsOptions, type CustomRoute, type GetCanvasClientOptions, type GetManifestClientOptions, type GetProjectMapClientOptions, type GetRouteClientOptions, type PlaygroundParameters, type RouteMatch, UniformCompositionProps, type UniformPageParameters, UniformPlayground, createUniformPlaygroundStaticParams, createUniformStaticParams, findRouteMatch, getCanvasClient, getManifest, getManifestClient, getProjectMapClient, getRouteClient, precomputeComposition, resolvePlaygroundRoute, serverContext };
package/dist/index.esm.js CHANGED
@@ -2884,7 +2884,7 @@ async function UniformCompositionInner({
2884
2884
  }) {
2885
2885
  var _a, _b;
2886
2886
  const result = await resolveRoute({
2887
- params: Promise.resolve({ code })
2887
+ code
2888
2888
  });
2889
2889
  if (!(result == null ? void 0 : result.route) || ((_a = result == null ? void 0 : result.route) == null ? void 0 : _a.type) !== "composition") {
2890
2890
  notFound();
@@ -3182,10 +3182,7 @@ import React6 from "react";
3182
3182
 
3183
3183
  // src/data/resolvePlaygroundRoute.ts
3184
3184
  import { deserializeEvaluationResult as deserializeEvaluationResult2 } from "@uniformdev/next-app-router-shared";
3185
- var resolvePlaygroundRoute = async ({
3186
- params
3187
- }) => {
3188
- const { code } = await params;
3185
+ var resolvePlaygroundRoute = async ({ code }) => {
3189
3186
  const pageState = deserializeEvaluationResult2({ input: code });
3190
3187
  const canvasClient = getCanvasClient({
3191
3188
  cache: {
@@ -3283,18 +3280,12 @@ var extractPersonalization = ({
3283
3280
 
3284
3281
  // src/data/extract/extractRunnables.ts
3285
3282
  var findAncestorVariant = (ancestorsAndSelf) => {
3286
- let nodeIndex = -1;
3287
- for (let i = 1; i < ancestorsAndSelf.length; i++) {
3283
+ for (let i = 0; i < ancestorsAndSelf.length; i++) {
3288
3284
  const node = ancestorsAndSelf[i];
3289
3285
  if (node.type === "slot" && (node.parentSlot === CANVAS_PERSONALIZE_SLOT || node.parentSlot === CANVAS_TEST_SLOT)) {
3290
- nodeIndex = i;
3291
- break;
3286
+ return node.node._id;
3292
3287
  }
3293
3288
  }
3294
- if (nodeIndex !== -1) {
3295
- const node = ancestorsAndSelf[nodeIndex];
3296
- return node.node._id;
3297
- }
3298
3289
  return void 0;
3299
3290
  };
3300
3291
  var extractRunnables = (composition) => {
@@ -3365,7 +3356,8 @@ var createUniformPlaygroundStaticParams = async (options) => {
3365
3356
  runnables,
3366
3357
  path: route.compositionApiResponse.composition._id,
3367
3358
  keys: void 0,
3368
- state: route.compositionApiResponse.state
3359
+ state: route.compositionApiResponse.state,
3360
+ locale: options.locale
3369
3361
  });
3370
3362
  return (_a = choices == null ? void 0 : choices.map((code) => {
3371
3363
  return {
@@ -3378,7 +3370,7 @@ var createUniformStaticParams = async (options) => {
3378
3370
  const { paths, rewrite } = options;
3379
3371
  const codes = [];
3380
3372
  for (const path of paths) {
3381
- const pageStates = await processRoutePath({ path, rewrite });
3373
+ const pageStates = await processRoutePath({ path, rewrite, locale: options.locale });
3382
3374
  if (pageStates) {
3383
3375
  codes.push(...pageStates);
3384
3376
  }
@@ -3391,7 +3383,8 @@ var createUniformStaticParams = async (options) => {
3391
3383
  };
3392
3384
  async function processRoutePath({
3393
3385
  path,
3394
- rewrite
3386
+ rewrite,
3387
+ locale
3395
3388
  }) {
3396
3389
  var _a;
3397
3390
  const routeClient = getRouteClient({
@@ -3412,7 +3405,8 @@ async function processRoutePath({
3412
3405
  runnables,
3413
3406
  path: resolvedPath,
3414
3407
  keys: rewrittenPath == null ? void 0 : rewrittenPath.keys,
3415
- state: CANVAS_PUBLISHED_STATE
3408
+ state: CANVAS_PUBLISHED_STATE,
3409
+ locale
3416
3410
  });
3417
3411
  return choices;
3418
3412
  }
@@ -3514,7 +3508,8 @@ var generateStatesRecursively = (dependencyMap, parentVariantId, currentState) =
3514
3508
  const mergedState = applyChoicesToPageState(currentState, groups, permutation);
3515
3509
  const selectedVariantIds = extractSelectedVariantIds(groups, permutation);
3516
3510
  let subResults = [mergedState];
3517
- for (const variantId of selectedVariantIds) {
3511
+ const uniqueVariantIds = [...new Set(selectedVariantIds)].filter((id) => id !== void 0);
3512
+ for (const variantId of uniqueVariantIds) {
3518
3513
  if (dependencyMap.has(variantId)) {
3519
3514
  subResults = subResults.flatMap(
3520
3515
  (state) => generateStatesRecursively(dependencyMap, variantId, state)
@@ -3529,7 +3524,8 @@ var generatePossiblePageStates = ({
3529
3524
  runnables,
3530
3525
  path,
3531
3526
  keys,
3532
- state
3527
+ state,
3528
+ locale
3533
3529
  }) => {
3534
3530
  const dependencyMap = buildDependencyMap(runnables);
3535
3531
  const initialState = {
@@ -3540,7 +3536,8 @@ var generatePossiblePageStates = ({
3540
3536
  components: {},
3541
3537
  defaultConsent: void 0,
3542
3538
  previewMode: void 0,
3543
- rules: void 0
3539
+ rules: void 0,
3540
+ locale
3544
3541
  };
3545
3542
  const allStates = generateStatesRecursively(dependencyMap, void 0, initialState);
3546
3543
  return allStates.map((payload) => serializeEvaluationResult({ payload }));
@@ -3710,7 +3707,8 @@ var DefaultDataClient = class {
3710
3707
  path: options.pageState.routePath,
3711
3708
  state: options.pageState.compositionState,
3712
3709
  withComponentIDs: true,
3713
- releaseId: options.pageState.releaseId
3710
+ releaseId: options.pageState.releaseId,
3711
+ locale: options.pageState.locale
3714
3712
  };
3715
3713
  const resolvedRoute = await this.getRouteFromApi({
3716
3714
  source: "pageState",
@@ -3818,10 +3816,9 @@ var precomputeComposition = ({
3818
3816
  // src/data/resolveRouteFromCode.ts
3819
3817
  import { deserializeEvaluationResult as deserializeEvaluationResult3 } from "@uniformdev/next-app-router-shared";
3820
3818
  var resolveRouteFromCode = async ({
3821
- params,
3819
+ code,
3822
3820
  dataClient: providedDataClient
3823
3821
  }) => {
3824
- const { code } = await params;
3825
3822
  const pageState = deserializeEvaluationResult3({ input: code });
3826
3823
  const dataClient = providedDataClient != null ? providedDataClient : new DefaultDataClient();
3827
3824
  const { route } = await dataClient.getRoute({
package/dist/index.js CHANGED
@@ -2907,7 +2907,7 @@ async function UniformCompositionInner({
2907
2907
  }) {
2908
2908
  var _a, _b;
2909
2909
  const result = await resolveRoute({
2910
- params: Promise.resolve({ code })
2910
+ code
2911
2911
  });
2912
2912
  if (!(result == null ? void 0 : result.route) || ((_a = result == null ? void 0 : result.route) == null ? void 0 : _a.type) !== "composition") {
2913
2913
  (0, import_navigation.notFound)();
@@ -3205,10 +3205,7 @@ var import_react7 = __toESM(require("react"));
3205
3205
 
3206
3206
  // src/data/resolvePlaygroundRoute.ts
3207
3207
  var import_next_app_router_shared5 = require("@uniformdev/next-app-router-shared");
3208
- var resolvePlaygroundRoute = async ({
3209
- params
3210
- }) => {
3211
- const { code } = await params;
3208
+ var resolvePlaygroundRoute = async ({ code }) => {
3212
3209
  const pageState = (0, import_next_app_router_shared5.deserializeEvaluationResult)({ input: code });
3213
3210
  const canvasClient = getCanvasClient({
3214
3211
  cache: {
@@ -3304,18 +3301,12 @@ var extractPersonalization = ({
3304
3301
 
3305
3302
  // src/data/extract/extractRunnables.ts
3306
3303
  var findAncestorVariant = (ancestorsAndSelf) => {
3307
- let nodeIndex = -1;
3308
- for (let i = 1; i < ancestorsAndSelf.length; i++) {
3304
+ for (let i = 0; i < ancestorsAndSelf.length; i++) {
3309
3305
  const node = ancestorsAndSelf[i];
3310
3306
  if (node.type === "slot" && (node.parentSlot === CANVAS_PERSONALIZE_SLOT || node.parentSlot === CANVAS_TEST_SLOT)) {
3311
- nodeIndex = i;
3312
- break;
3307
+ return node.node._id;
3313
3308
  }
3314
3309
  }
3315
- if (nodeIndex !== -1) {
3316
- const node = ancestorsAndSelf[nodeIndex];
3317
- return node.node._id;
3318
- }
3319
3310
  return void 0;
3320
3311
  };
3321
3312
  var extractRunnables = (composition) => {
@@ -3386,7 +3377,8 @@ var createUniformPlaygroundStaticParams = async (options) => {
3386
3377
  runnables,
3387
3378
  path: route.compositionApiResponse.composition._id,
3388
3379
  keys: void 0,
3389
- state: route.compositionApiResponse.state
3380
+ state: route.compositionApiResponse.state,
3381
+ locale: options.locale
3390
3382
  });
3391
3383
  return (_a = choices == null ? void 0 : choices.map((code) => {
3392
3384
  return {
@@ -3399,7 +3391,7 @@ var createUniformStaticParams = async (options) => {
3399
3391
  const { paths, rewrite } = options;
3400
3392
  const codes = [];
3401
3393
  for (const path of paths) {
3402
- const pageStates = await processRoutePath({ path, rewrite });
3394
+ const pageStates = await processRoutePath({ path, rewrite, locale: options.locale });
3403
3395
  if (pageStates) {
3404
3396
  codes.push(...pageStates);
3405
3397
  }
@@ -3412,7 +3404,8 @@ var createUniformStaticParams = async (options) => {
3412
3404
  };
3413
3405
  async function processRoutePath({
3414
3406
  path,
3415
- rewrite
3407
+ rewrite,
3408
+ locale
3416
3409
  }) {
3417
3410
  var _a;
3418
3411
  const routeClient = getRouteClient({
@@ -3433,7 +3426,8 @@ async function processRoutePath({
3433
3426
  runnables,
3434
3427
  path: resolvedPath,
3435
3428
  keys: rewrittenPath == null ? void 0 : rewrittenPath.keys,
3436
- state: CANVAS_PUBLISHED_STATE
3429
+ state: CANVAS_PUBLISHED_STATE,
3430
+ locale
3437
3431
  });
3438
3432
  return choices;
3439
3433
  }
@@ -3535,7 +3529,8 @@ var generateStatesRecursively = (dependencyMap, parentVariantId, currentState) =
3535
3529
  const mergedState = applyChoicesToPageState(currentState, groups, permutation);
3536
3530
  const selectedVariantIds = extractSelectedVariantIds(groups, permutation);
3537
3531
  let subResults = [mergedState];
3538
- for (const variantId of selectedVariantIds) {
3532
+ const uniqueVariantIds = [...new Set(selectedVariantIds)].filter((id) => id !== void 0);
3533
+ for (const variantId of uniqueVariantIds) {
3539
3534
  if (dependencyMap.has(variantId)) {
3540
3535
  subResults = subResults.flatMap(
3541
3536
  (state) => generateStatesRecursively(dependencyMap, variantId, state)
@@ -3550,7 +3545,8 @@ var generatePossiblePageStates = ({
3550
3545
  runnables,
3551
3546
  path,
3552
3547
  keys,
3553
- state
3548
+ state,
3549
+ locale
3554
3550
  }) => {
3555
3551
  const dependencyMap = buildDependencyMap(runnables);
3556
3552
  const initialState = {
@@ -3561,7 +3557,8 @@ var generatePossiblePageStates = ({
3561
3557
  components: {},
3562
3558
  defaultConsent: void 0,
3563
3559
  previewMode: void 0,
3564
- rules: void 0
3560
+ rules: void 0,
3561
+ locale
3565
3562
  };
3566
3563
  const allStates = generateStatesRecursively(dependencyMap, void 0, initialState);
3567
3564
  return allStates.map((payload) => (0, import_next_app_router_shared8.serializeEvaluationResult)({ payload }));
@@ -3731,7 +3728,8 @@ var DefaultDataClient = class {
3731
3728
  path: options.pageState.routePath,
3732
3729
  state: options.pageState.compositionState,
3733
3730
  withComponentIDs: true,
3734
- releaseId: options.pageState.releaseId
3731
+ releaseId: options.pageState.releaseId,
3732
+ locale: options.pageState.locale
3735
3733
  };
3736
3734
  const resolvedRoute = await this.getRouteFromApi({
3737
3735
  source: "pageState",
@@ -3835,10 +3833,9 @@ var precomputeComposition = ({
3835
3833
  // src/data/resolveRouteFromCode.ts
3836
3834
  var import_next_app_router_shared10 = require("@uniformdev/next-app-router-shared");
3837
3835
  var resolveRouteFromCode = async ({
3838
- params,
3836
+ code,
3839
3837
  dataClient: providedDataClient
3840
3838
  }) => {
3841
- const { code } = await params;
3842
3839
  const pageState = (0, import_next_app_router_shared10.deserializeEvaluationResult)({ input: code });
3843
3840
  const dataClient = providedDataClient != null ? providedDataClient : new DefaultDataClient();
3844
3841
  const { route } = await dataClient.getRoute({
package/dist/index.mjs CHANGED
@@ -2884,7 +2884,7 @@ async function UniformCompositionInner({
2884
2884
  }) {
2885
2885
  var _a, _b;
2886
2886
  const result = await resolveRoute({
2887
- params: Promise.resolve({ code })
2887
+ code
2888
2888
  });
2889
2889
  if (!(result == null ? void 0 : result.route) || ((_a = result == null ? void 0 : result.route) == null ? void 0 : _a.type) !== "composition") {
2890
2890
  notFound();
@@ -3182,10 +3182,7 @@ import React6 from "react";
3182
3182
 
3183
3183
  // src/data/resolvePlaygroundRoute.ts
3184
3184
  import { deserializeEvaluationResult as deserializeEvaluationResult2 } from "@uniformdev/next-app-router-shared";
3185
- var resolvePlaygroundRoute = async ({
3186
- params
3187
- }) => {
3188
- const { code } = await params;
3185
+ var resolvePlaygroundRoute = async ({ code }) => {
3189
3186
  const pageState = deserializeEvaluationResult2({ input: code });
3190
3187
  const canvasClient = getCanvasClient({
3191
3188
  cache: {
@@ -3283,18 +3280,12 @@ var extractPersonalization = ({
3283
3280
 
3284
3281
  // src/data/extract/extractRunnables.ts
3285
3282
  var findAncestorVariant = (ancestorsAndSelf) => {
3286
- let nodeIndex = -1;
3287
- for (let i = 1; i < ancestorsAndSelf.length; i++) {
3283
+ for (let i = 0; i < ancestorsAndSelf.length; i++) {
3288
3284
  const node = ancestorsAndSelf[i];
3289
3285
  if (node.type === "slot" && (node.parentSlot === CANVAS_PERSONALIZE_SLOT || node.parentSlot === CANVAS_TEST_SLOT)) {
3290
- nodeIndex = i;
3291
- break;
3286
+ return node.node._id;
3292
3287
  }
3293
3288
  }
3294
- if (nodeIndex !== -1) {
3295
- const node = ancestorsAndSelf[nodeIndex];
3296
- return node.node._id;
3297
- }
3298
3289
  return void 0;
3299
3290
  };
3300
3291
  var extractRunnables = (composition) => {
@@ -3365,7 +3356,8 @@ var createUniformPlaygroundStaticParams = async (options) => {
3365
3356
  runnables,
3366
3357
  path: route.compositionApiResponse.composition._id,
3367
3358
  keys: void 0,
3368
- state: route.compositionApiResponse.state
3359
+ state: route.compositionApiResponse.state,
3360
+ locale: options.locale
3369
3361
  });
3370
3362
  return (_a = choices == null ? void 0 : choices.map((code) => {
3371
3363
  return {
@@ -3378,7 +3370,7 @@ var createUniformStaticParams = async (options) => {
3378
3370
  const { paths, rewrite } = options;
3379
3371
  const codes = [];
3380
3372
  for (const path of paths) {
3381
- const pageStates = await processRoutePath({ path, rewrite });
3373
+ const pageStates = await processRoutePath({ path, rewrite, locale: options.locale });
3382
3374
  if (pageStates) {
3383
3375
  codes.push(...pageStates);
3384
3376
  }
@@ -3391,7 +3383,8 @@ var createUniformStaticParams = async (options) => {
3391
3383
  };
3392
3384
  async function processRoutePath({
3393
3385
  path,
3394
- rewrite
3386
+ rewrite,
3387
+ locale
3395
3388
  }) {
3396
3389
  var _a;
3397
3390
  const routeClient = getRouteClient({
@@ -3412,7 +3405,8 @@ async function processRoutePath({
3412
3405
  runnables,
3413
3406
  path: resolvedPath,
3414
3407
  keys: rewrittenPath == null ? void 0 : rewrittenPath.keys,
3415
- state: CANVAS_PUBLISHED_STATE
3408
+ state: CANVAS_PUBLISHED_STATE,
3409
+ locale
3416
3410
  });
3417
3411
  return choices;
3418
3412
  }
@@ -3514,7 +3508,8 @@ var generateStatesRecursively = (dependencyMap, parentVariantId, currentState) =
3514
3508
  const mergedState = applyChoicesToPageState(currentState, groups, permutation);
3515
3509
  const selectedVariantIds = extractSelectedVariantIds(groups, permutation);
3516
3510
  let subResults = [mergedState];
3517
- for (const variantId of selectedVariantIds) {
3511
+ const uniqueVariantIds = [...new Set(selectedVariantIds)].filter((id) => id !== void 0);
3512
+ for (const variantId of uniqueVariantIds) {
3518
3513
  if (dependencyMap.has(variantId)) {
3519
3514
  subResults = subResults.flatMap(
3520
3515
  (state) => generateStatesRecursively(dependencyMap, variantId, state)
@@ -3529,7 +3524,8 @@ var generatePossiblePageStates = ({
3529
3524
  runnables,
3530
3525
  path,
3531
3526
  keys,
3532
- state
3527
+ state,
3528
+ locale
3533
3529
  }) => {
3534
3530
  const dependencyMap = buildDependencyMap(runnables);
3535
3531
  const initialState = {
@@ -3540,7 +3536,8 @@ var generatePossiblePageStates = ({
3540
3536
  components: {},
3541
3537
  defaultConsent: void 0,
3542
3538
  previewMode: void 0,
3543
- rules: void 0
3539
+ rules: void 0,
3540
+ locale
3544
3541
  };
3545
3542
  const allStates = generateStatesRecursively(dependencyMap, void 0, initialState);
3546
3543
  return allStates.map((payload) => serializeEvaluationResult({ payload }));
@@ -3710,7 +3707,8 @@ var DefaultDataClient = class {
3710
3707
  path: options.pageState.routePath,
3711
3708
  state: options.pageState.compositionState,
3712
3709
  withComponentIDs: true,
3713
- releaseId: options.pageState.releaseId
3710
+ releaseId: options.pageState.releaseId,
3711
+ locale: options.pageState.locale
3714
3712
  };
3715
3713
  const resolvedRoute = await this.getRouteFromApi({
3716
3714
  source: "pageState",
@@ -3818,10 +3816,9 @@ var precomputeComposition = ({
3818
3816
  // src/data/resolveRouteFromCode.ts
3819
3817
  import { deserializeEvaluationResult as deserializeEvaluationResult3 } from "@uniformdev/next-app-router-shared";
3820
3818
  var resolveRouteFromCode = async ({
3821
- params,
3819
+ code,
3822
3820
  dataClient: providedDataClient
3823
3821
  }) => {
3824
- const { code } = await params;
3825
3822
  const pageState = deserializeEvaluationResult3({ input: code });
3826
3823
  const dataClient = providedDataClient != null ? providedDataClient : new DefaultDataClient();
3827
3824
  const { route } = await dataClient.getRoute({
@@ -57,6 +57,10 @@ type HandleOptions = {
57
57
  * If not provided, middleware will use the server config default consent or false if not set.
58
58
  */
59
59
  defaultConsent?: boolean | undefined;
60
+ /**
61
+ * If provided, the middleware will use this locale to resolve the route.
62
+ */
63
+ locale?: string;
60
64
  };
61
65
  declare const uniformMiddleware: (options?: HandleOptions) => (request: NextRequest) => Promise<NextResponse<unknown>>;
62
66
  declare const handleUniformRoute: ({ request, dataClient, ...options }: HandleOptions & {
@@ -57,6 +57,10 @@ type HandleOptions = {
57
57
  * If not provided, middleware will use the server config default consent or false if not set.
58
58
  */
59
59
  defaultConsent?: boolean | undefined;
60
+ /**
61
+ * If provided, the middleware will use this locale to resolve the route.
62
+ */
63
+ locale?: string;
60
64
  };
61
65
  declare const uniformMiddleware: (options?: HandleOptions) => (request: NextRequest) => Promise<NextResponse<unknown>>;
62
66
  declare const handleUniformRoute: ({ request, dataClient, ...options }: HandleOptions & {
@@ -5015,7 +5015,8 @@ var DefaultDataClient = class {
5015
5015
  path: options.pageState.routePath,
5016
5016
  state: options.pageState.compositionState,
5017
5017
  withComponentIDs: true,
5018
- releaseId: options.pageState.releaseId
5018
+ releaseId: options.pageState.releaseId,
5019
+ locale: options.pageState.locale
5019
5020
  };
5020
5021
  const resolvedRoute = await this.getRouteFromApi({
5021
5022
  source: "pageState",
@@ -5108,18 +5109,12 @@ var extractTest = ({ component }) => {
5108
5109
 
5109
5110
  // src/data/extract/extractRunnables.ts
5110
5111
  var findAncestorVariant = (ancestorsAndSelf) => {
5111
- let nodeIndex = -1;
5112
- for (let i = 1; i < ancestorsAndSelf.length; i++) {
5112
+ for (let i = 0; i < ancestorsAndSelf.length; i++) {
5113
5113
  const node = ancestorsAndSelf[i];
5114
5114
  if (node.type === "slot" && (node.parentSlot === CANVAS_PERSONALIZE_SLOT || node.parentSlot === CANVAS_TEST_SLOT)) {
5115
- nodeIndex = i;
5116
- break;
5115
+ return node.node._id;
5117
5116
  }
5118
5117
  }
5119
- if (nodeIndex !== -1) {
5120
- const node = ancestorsAndSelf[nodeIndex];
5121
- return node.node._id;
5122
- }
5123
5118
  return void 0;
5124
5119
  };
5125
5120
  var extractRunnables = (composition) => {
@@ -5330,32 +5325,6 @@ var calculateScoreChanges = ({
5330
5325
  return changes;
5331
5326
  };
5332
5327
 
5333
- // src/middleware/generateETag.ts
5334
- var generateETag = ({ pageState, modified }) => {
5335
- const pieces = [modified.valueOf().toString()];
5336
- const shortKeys = {};
5337
- const sortedComponentKeys = Object.keys(pageState.components).sort();
5338
- sortedComponentKeys.forEach((key) => {
5339
- const value = pageState.components[key];
5340
- for (let i = 0; i < key.length; i++) {
5341
- const shortKey = key.slice(0, i + 1);
5342
- if (!shortKeys[shortKey]) {
5343
- shortKeys[shortKey] = true;
5344
- pieces.push(shortKey);
5345
- break;
5346
- }
5347
- }
5348
- if (value.indexes) {
5349
- pieces.push(...value.indexes.map((index) => index.toString()));
5350
- }
5351
- if (typeof value.visibility === "boolean") {
5352
- pieces.push(value.visibility ? "0" : "1");
5353
- }
5354
- });
5355
- const eTag = pieces.join("-");
5356
- return eTag;
5357
- };
5358
-
5359
5328
  // src/middleware/resolveRoute.ts
5360
5329
  var resolveRoute = async ({
5361
5330
  path,
@@ -5363,7 +5332,8 @@ var resolveRoute = async ({
5363
5332
  searchParams,
5364
5333
  draftModeEnabled,
5365
5334
  dataClient,
5366
- releaseId
5335
+ releaseId,
5336
+ locale
5367
5337
  }) => {
5368
5338
  var _a;
5369
5339
  let result;
@@ -5376,7 +5346,8 @@ var resolveRoute = async ({
5376
5346
  searchParams,
5377
5347
  draftModeEnabled,
5378
5348
  dataClient,
5379
- releaseId
5349
+ releaseId,
5350
+ locale
5380
5351
  });
5381
5352
  } catch (e) {
5382
5353
  console.warn(`Failed to retrieve route by path: ${path} with state ${state}`, e);
@@ -5393,7 +5364,8 @@ var retrieveRouteByPath = async ({
5393
5364
  searchParams,
5394
5365
  draftModeEnabled,
5395
5366
  dataClient,
5396
- releaseId
5367
+ releaseId,
5368
+ locale
5397
5369
  }) => {
5398
5370
  var _a;
5399
5371
  return await dataClient.getRoute({
@@ -5406,7 +5378,8 @@ var retrieveRouteByPath = async ({
5406
5378
  dataSourceVariant: getDataSourceVariantFromRouteGetParams({}, state),
5407
5379
  withComponentIDs: true,
5408
5380
  withContentSourceMap: (_a = getServerConfig().experimental) == null ? void 0 : _a.vercelVisualEditing,
5409
- releaseId
5381
+ releaseId,
5382
+ locale
5410
5383
  }
5411
5384
  });
5412
5385
  };
@@ -5565,7 +5538,8 @@ var handlePlaygroundRequest = async ({
5565
5538
  isDraftModeEnabled: true
5566
5539
  // this is checked above
5567
5540
  }),
5568
- rules
5541
+ rules,
5542
+ locale: options.locale
5569
5543
  };
5570
5544
  const code = (0, import_next_app_router_shared5.serializeEvaluationResult)({
5571
5545
  payload: pageState
@@ -5601,7 +5575,8 @@ var handleRouteRequest = async ({
5601
5575
  searchParams: request.nextUrl.searchParams,
5602
5576
  draftModeEnabled,
5603
5577
  dataClient,
5604
- releaseId: (_c = options.release) == null ? void 0 : _c.id
5578
+ releaseId: (_c = options.release) == null ? void 0 : _c.id,
5579
+ locale: options.locale
5605
5580
  }),
5606
5581
  createOnDemandContext({
5607
5582
  cookies: request.cookies,
@@ -5688,24 +5663,9 @@ var handleRouteRequest = async ({
5688
5663
  defaultConsent: options.defaultConsent
5689
5664
  }),
5690
5665
  previewMode,
5691
- rules
5666
+ rules,
5667
+ locale: options.locale
5692
5668
  };
5693
- const eTagsConfig = serverConfig2.eTags;
5694
- const generateETags = typeof (eTagsConfig == null ? void 0 : eTagsConfig.generateETags) === "boolean" ? eTagsConfig.generateETags : false;
5695
- let eTag = void 0;
5696
- if (state === CANVAS_PUBLISHED_STATE && generateETags) {
5697
- eTag = generateETag({ pageState, modified: new Date(route.compositionApiResponse.modified) });
5698
- const ifNoneMatch = request.headers.get("If-None-Match");
5699
- const quotedETag = `"${eTag}"`;
5700
- if (ifNoneMatch === quotedETag) {
5701
- return new import_server.NextResponse(null, {
5702
- status: 304,
5703
- headers: {
5704
- ETag: quotedETag
5705
- }
5706
- });
5707
- }
5708
- }
5709
5669
  const code = (0, import_next_app_router_shared5.serializeEvaluationResult)({
5710
5670
  payload: pageState
5711
5671
  });
@@ -5714,13 +5674,6 @@ var handleRouteRequest = async ({
5714
5674
  pathToRewriteTo = `/uniform/${code}`;
5715
5675
  }
5716
5676
  const headers = new Headers();
5717
- if (eTag) {
5718
- const eTagCacheControl = typeof (eTagsConfig == null ? void 0 : eTagsConfig.cacheControl) !== "undefined" ? eTagsConfig.cacheControl : "no-cache, must-revalidate";
5719
- headers.append("ETag", `"${eTag}"`);
5720
- if (eTagCacheControl) {
5721
- headers.append("Cache-Control", eTagCacheControl);
5722
- }
5723
- }
5724
5677
  if (serializedScoreCookie) {
5725
5678
  headers.append(
5726
5679
  "Set-Cookie",
@@ -5769,7 +5722,8 @@ var extractAndEvaluateRunnables = async ({
5769
5722
  releaseId,
5770
5723
  defaultConsent,
5771
5724
  previewMode,
5772
- rules: void 0
5725
+ rules: void 0,
5726
+ locale: void 0
5773
5727
  }
5774
5728
  }
5775
5729
  });
@@ -5005,7 +5005,8 @@ var DefaultDataClient = class {
5005
5005
  path: options.pageState.routePath,
5006
5006
  state: options.pageState.compositionState,
5007
5007
  withComponentIDs: true,
5008
- releaseId: options.pageState.releaseId
5008
+ releaseId: options.pageState.releaseId,
5009
+ locale: options.pageState.locale
5009
5010
  };
5010
5011
  const resolvedRoute = await this.getRouteFromApi({
5011
5012
  source: "pageState",
@@ -5100,18 +5101,12 @@ var extractTest = ({ component }) => {
5100
5101
 
5101
5102
  // src/data/extract/extractRunnables.ts
5102
5103
  var findAncestorVariant = (ancestorsAndSelf) => {
5103
- let nodeIndex = -1;
5104
- for (let i = 1; i < ancestorsAndSelf.length; i++) {
5104
+ for (let i = 0; i < ancestorsAndSelf.length; i++) {
5105
5105
  const node = ancestorsAndSelf[i];
5106
5106
  if (node.type === "slot" && (node.parentSlot === CANVAS_PERSONALIZE_SLOT || node.parentSlot === CANVAS_TEST_SLOT)) {
5107
- nodeIndex = i;
5108
- break;
5107
+ return node.node._id;
5109
5108
  }
5110
5109
  }
5111
- if (nodeIndex !== -1) {
5112
- const node = ancestorsAndSelf[nodeIndex];
5113
- return node.node._id;
5114
- }
5115
5110
  return void 0;
5116
5111
  };
5117
5112
  var extractRunnables = (composition) => {
@@ -5325,32 +5320,6 @@ var calculateScoreChanges = ({
5325
5320
  return changes;
5326
5321
  };
5327
5322
 
5328
- // src/middleware/generateETag.ts
5329
- var generateETag = ({ pageState, modified }) => {
5330
- const pieces = [modified.valueOf().toString()];
5331
- const shortKeys = {};
5332
- const sortedComponentKeys = Object.keys(pageState.components).sort();
5333
- sortedComponentKeys.forEach((key) => {
5334
- const value = pageState.components[key];
5335
- for (let i = 0; i < key.length; i++) {
5336
- const shortKey = key.slice(0, i + 1);
5337
- if (!shortKeys[shortKey]) {
5338
- shortKeys[shortKey] = true;
5339
- pieces.push(shortKey);
5340
- break;
5341
- }
5342
- }
5343
- if (value.indexes) {
5344
- pieces.push(...value.indexes.map((index) => index.toString()));
5345
- }
5346
- if (typeof value.visibility === "boolean") {
5347
- pieces.push(value.visibility ? "0" : "1");
5348
- }
5349
- });
5350
- const eTag = pieces.join("-");
5351
- return eTag;
5352
- };
5353
-
5354
5323
  // src/middleware/resolveRoute.ts
5355
5324
  var resolveRoute = async ({
5356
5325
  path,
@@ -5358,7 +5327,8 @@ var resolveRoute = async ({
5358
5327
  searchParams,
5359
5328
  draftModeEnabled,
5360
5329
  dataClient,
5361
- releaseId
5330
+ releaseId,
5331
+ locale
5362
5332
  }) => {
5363
5333
  var _a;
5364
5334
  let result;
@@ -5371,7 +5341,8 @@ var resolveRoute = async ({
5371
5341
  searchParams,
5372
5342
  draftModeEnabled,
5373
5343
  dataClient,
5374
- releaseId
5344
+ releaseId,
5345
+ locale
5375
5346
  });
5376
5347
  } catch (e) {
5377
5348
  console.warn(`Failed to retrieve route by path: ${path} with state ${state}`, e);
@@ -5388,7 +5359,8 @@ var retrieveRouteByPath = async ({
5388
5359
  searchParams,
5389
5360
  draftModeEnabled,
5390
5361
  dataClient,
5391
- releaseId
5362
+ releaseId,
5363
+ locale
5392
5364
  }) => {
5393
5365
  var _a;
5394
5366
  return await dataClient.getRoute({
@@ -5401,7 +5373,8 @@ var retrieveRouteByPath = async ({
5401
5373
  dataSourceVariant: getDataSourceVariantFromRouteGetParams({}, state),
5402
5374
  withComponentIDs: true,
5403
5375
  withContentSourceMap: (_a = getServerConfig().experimental) == null ? void 0 : _a.vercelVisualEditing,
5404
- releaseId
5376
+ releaseId,
5377
+ locale
5405
5378
  }
5406
5379
  });
5407
5380
  };
@@ -5560,7 +5533,8 @@ var handlePlaygroundRequest = async ({
5560
5533
  isDraftModeEnabled: true
5561
5534
  // this is checked above
5562
5535
  }),
5563
- rules
5536
+ rules,
5537
+ locale: options.locale
5564
5538
  };
5565
5539
  const code = serializeEvaluationResult({
5566
5540
  payload: pageState
@@ -5596,7 +5570,8 @@ var handleRouteRequest = async ({
5596
5570
  searchParams: request.nextUrl.searchParams,
5597
5571
  draftModeEnabled,
5598
5572
  dataClient,
5599
- releaseId: (_c = options.release) == null ? void 0 : _c.id
5573
+ releaseId: (_c = options.release) == null ? void 0 : _c.id,
5574
+ locale: options.locale
5600
5575
  }),
5601
5576
  createOnDemandContext({
5602
5577
  cookies: request.cookies,
@@ -5683,24 +5658,9 @@ var handleRouteRequest = async ({
5683
5658
  defaultConsent: options.defaultConsent
5684
5659
  }),
5685
5660
  previewMode,
5686
- rules
5661
+ rules,
5662
+ locale: options.locale
5687
5663
  };
5688
- const eTagsConfig = serverConfig2.eTags;
5689
- const generateETags = typeof (eTagsConfig == null ? void 0 : eTagsConfig.generateETags) === "boolean" ? eTagsConfig.generateETags : false;
5690
- let eTag = void 0;
5691
- if (state === CANVAS_PUBLISHED_STATE && generateETags) {
5692
- eTag = generateETag({ pageState, modified: new Date(route.compositionApiResponse.modified) });
5693
- const ifNoneMatch = request.headers.get("If-None-Match");
5694
- const quotedETag = `"${eTag}"`;
5695
- if (ifNoneMatch === quotedETag) {
5696
- return new NextResponse(null, {
5697
- status: 304,
5698
- headers: {
5699
- ETag: quotedETag
5700
- }
5701
- });
5702
- }
5703
- }
5704
5664
  const code = serializeEvaluationResult({
5705
5665
  payload: pageState
5706
5666
  });
@@ -5709,13 +5669,6 @@ var handleRouteRequest = async ({
5709
5669
  pathToRewriteTo = `/uniform/${code}`;
5710
5670
  }
5711
5671
  const headers = new Headers();
5712
- if (eTag) {
5713
- const eTagCacheControl = typeof (eTagsConfig == null ? void 0 : eTagsConfig.cacheControl) !== "undefined" ? eTagsConfig.cacheControl : "no-cache, must-revalidate";
5714
- headers.append("ETag", `"${eTag}"`);
5715
- if (eTagCacheControl) {
5716
- headers.append("Cache-Control", eTagCacheControl);
5717
- }
5718
- }
5719
5672
  if (serializedScoreCookie) {
5720
5673
  headers.append(
5721
5674
  "Set-Cookie",
@@ -5764,7 +5717,8 @@ var extractAndEvaluateRunnables = async ({
5764
5717
  releaseId,
5765
5718
  defaultConsent,
5766
5719
  previewMode,
5767
- rules: void 0
5720
+ rules: void 0,
5721
+ locale: void 0
5768
5722
  }
5769
5723
  }
5770
5724
  });
@@ -2,15 +2,6 @@ import { RouteGetResponseEdgehancedComposition } from '@uniformdev/canvas';
2
2
  import { PageState } from '@uniformdev/next-app-router-shared';
3
3
  import { D as DataClient } from './client-BCGVjYM-.mjs';
4
4
 
5
- type UniformPageParameters = {
6
- params: Promise<{
7
- code: string;
8
- }>;
9
- };
10
- type AwaitedUniformPageParameters = {
11
- params: Awaited<UniformPageParameters['params']>;
12
- };
13
-
14
5
  type ResolvedRouteResult = {
15
6
  pageState: PageState;
16
7
  route: RouteGetResponseEdgehancedComposition | undefined;
@@ -18,9 +9,10 @@ type ResolvedRouteResult = {
18
9
  };
19
10
 
20
11
  type ResolveRouteFunction = (options: ResolveRouteFromCodeOptions) => Promise<ResolvedRouteResult>;
21
- type ResolveRouteFromCodeOptions = UniformPageParameters & {
12
+ type ResolveRouteFromCodeOptions = {
13
+ code: string;
22
14
  dataClient?: DataClient;
23
15
  };
24
16
  declare const resolveRouteFromCode: ResolveRouteFunction;
25
17
 
26
- export { type AwaitedUniformPageParameters as A, type ResolveRouteFunction as R, type UniformPageParameters as U, type ResolvedRouteResult as a, resolveRouteFromCode as r };
18
+ export { type ResolveRouteFunction as R, type ResolvedRouteResult as a, resolveRouteFromCode as r };
@@ -2,15 +2,6 @@ import { RouteGetResponseEdgehancedComposition } from '@uniformdev/canvas';
2
2
  import { PageState } from '@uniformdev/next-app-router-shared';
3
3
  import { D as DataClient } from './client-BCGVjYM-.js';
4
4
 
5
- type UniformPageParameters = {
6
- params: Promise<{
7
- code: string;
8
- }>;
9
- };
10
- type AwaitedUniformPageParameters = {
11
- params: Awaited<UniformPageParameters['params']>;
12
- };
13
-
14
5
  type ResolvedRouteResult = {
15
6
  pageState: PageState;
16
7
  route: RouteGetResponseEdgehancedComposition | undefined;
@@ -18,9 +9,10 @@ type ResolvedRouteResult = {
18
9
  };
19
10
 
20
11
  type ResolveRouteFunction = (options: ResolveRouteFromCodeOptions) => Promise<ResolvedRouteResult>;
21
- type ResolveRouteFromCodeOptions = UniformPageParameters & {
12
+ type ResolveRouteFromCodeOptions = {
13
+ code: string;
22
14
  dataClient?: DataClient;
23
15
  };
24
16
  declare const resolveRouteFromCode: ResolveRouteFunction;
25
17
 
26
- export { type AwaitedUniformPageParameters as A, type ResolveRouteFunction as R, type UniformPageParameters as U, type ResolvedRouteResult as a, resolveRouteFromCode as r };
18
+ export { type ResolveRouteFunction as R, type ResolvedRouteResult as a, resolveRouteFromCode as r };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/next-app-router",
3
- "version": "20.7.1-alpha.120+5160373551",
3
+ "version": "20.7.1-alpha.122+165bd517ae",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -86,12 +86,12 @@
86
86
  "typescript": "5.9.2"
87
87
  },
88
88
  "dependencies": {
89
- "@uniformdev/canvas-react": "20.7.1-alpha.120+5160373551",
90
- "@uniformdev/next-app-router-client": "20.7.1-alpha.120+5160373551",
91
- "@uniformdev/next-app-router-shared": "20.7.1-alpha.120+5160373551",
92
- "@uniformdev/redirect": "20.7.1-alpha.120+5160373551",
93
- "@uniformdev/richtext": "20.7.1-alpha.120+5160373551",
94
- "@uniformdev/webhooks": "20.7.1-alpha.120+5160373551",
89
+ "@uniformdev/canvas-react": "20.7.1-alpha.122+165bd517ae",
90
+ "@uniformdev/next-app-router-client": "20.7.1-alpha.122+165bd517ae",
91
+ "@uniformdev/next-app-router-shared": "20.7.1-alpha.122+165bd517ae",
92
+ "@uniformdev/redirect": "20.7.1-alpha.122+165bd517ae",
93
+ "@uniformdev/richtext": "20.7.1-alpha.122+165bd517ae",
94
+ "@uniformdev/webhooks": "20.7.1-alpha.122+165bd517ae",
95
95
  "@vercel/functions": "^2.2.2",
96
96
  "encoding": "^0.1.13",
97
97
  "server-only": "^0.0.1",
@@ -108,5 +108,5 @@
108
108
  "publishConfig": {
109
109
  "access": "public"
110
110
  },
111
- "gitHead": "5160373551e91f6ef481c9f3687cad238e379591"
111
+ "gitHead": "165bd517ae4be47e55ffc82dbbcfa5f116eed371"
112
112
  }