@pack/hydrogen 2.0.6 → 2.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.
package/dist/index.d.ts CHANGED
@@ -68,6 +68,10 @@ interface EnvironmentOptions {
68
68
  */
69
69
  waitUntil: ExecutionContext["waitUntil"];
70
70
  }
71
+ interface I18nOptions {
72
+ language: string;
73
+ country: string;
74
+ }
71
75
  interface CreatePackClientOptions extends EnvironmentOptions {
72
76
  apiUrl?: string;
73
77
  token?: string;
@@ -75,6 +79,7 @@ interface CreatePackClientOptions extends EnvironmentOptions {
75
79
  session: PackSession;
76
80
  testSession: PackTestSession;
77
81
  contentEnvironment?: string;
82
+ i18n?: I18nOptions;
78
83
  /** Default theme data to use when no token is provided */
79
84
  defaultThemeData?: DefaultThemeData;
80
85
  /**
@@ -107,6 +112,13 @@ interface PackCustomizerMeta {
107
112
  src?: string;
108
113
  version?: string;
109
114
  };
115
+ previewContext?: {
116
+ locale?: string;
117
+ pageDraft?: string;
118
+ siteSettingsDraft?: string;
119
+ testHandle?: string;
120
+ testVariantHandle?: string;
121
+ };
110
122
  [key: string]: any;
111
123
  }
112
124
  interface Pack {
package/dist/index.js CHANGED
@@ -4655,7 +4655,7 @@ async function handleRequest(pack, request, handleRequest2) {
4655
4655
  packHandleResponse(response);
4656
4656
  response.headers.append("powered-by", "Shopify, Hydrogen + Pack Digital");
4657
4657
  response.headers.append("Set-Cookie", await pack.session.commit());
4658
- if (pack.testSession.hasChanges()) {
4658
+ if (pack.testSession && pack.testSession.hasChanges()) {
4659
4659
  response.headers.append("Set-Cookie", await pack.testSession.commit());
4660
4660
  }
4661
4661
  return response;
@@ -6072,10 +6072,16 @@ function createPackClient(options) {
6072
6072
  token,
6073
6073
  apiUrl,
6074
6074
  defaultThemeData,
6075
+ i18n,
6075
6076
  request
6076
6077
  } = options;
6077
6078
  const previewEnabled = !!session.get("previewEnabled");
6078
6079
  const previewEnvironment = session.get("environment");
6080
+ const locale = session.get("locale");
6081
+ const pageDraft = session.get("pageDraft");
6082
+ const siteSettingsDraft = session.get("siteSettingsDraft");
6083
+ const testHandle = session.get("testHandle");
6084
+ const testVariantHandle = session.get("testVariantHandle");
6079
6085
  const clientContentEnvironment = previewEnvironment || contentEnvironment;
6080
6086
  let packClient;
6081
6087
  let testInfoForRequest = void 0;
@@ -6168,7 +6174,14 @@ function createPackClient(options) {
6168
6174
  token,
6169
6175
  contentEnvironment: clientContentEnvironment,
6170
6176
  sessionId: session.id,
6171
- clientName: "HydrogenClient"
6177
+ clientName: "HydrogenClient",
6178
+ locale,
6179
+ pageDraft,
6180
+ siteSettingsDraft,
6181
+ testHandle,
6182
+ testVariantHandle,
6183
+ // When in preview mode, ignore test status to allow previewing draft tests
6184
+ ignoreTestStatus: previewEnabled
6172
6185
  });
6173
6186
  return {
6174
6187
  get abTest() {
@@ -6218,6 +6231,10 @@ function createPackClient(options) {
6218
6231
  } else {
6219
6232
  queryVariables.version = "PUBLISHED";
6220
6233
  }
6234
+ if (i18n) {
6235
+ queryVariables.language = i18n.language;
6236
+ queryVariables.country = i18n.country;
6237
+ }
6221
6238
  if (packClient && token && !testInfoForRequest && currentRequest) {
6222
6239
  try {
6223
6240
  if (!testInfoPromise) {
@@ -6387,14 +6404,33 @@ var loader = async function({ request, context }) {
6387
6404
  throw new InvalidTokenError();
6388
6405
  }
6389
6406
  let customizerMetaJson;
6407
+ let previewContext = null;
6390
6408
  try {
6391
6409
  customizerMetaJson = customizerMeta ? JSON.parse(customizerMeta) : null;
6410
+ previewContext = customizerMetaJson?.previewContext || null;
6392
6411
  } catch (_error) {
6393
6412
  customizerMetaJson = null;
6394
6413
  }
6395
6414
  pack.session.set("previewEnabled", true);
6396
6415
  pack.session.set("environment", environment);
6397
6416
  pack.session.set("customizerMeta", customizerMetaJson);
6417
+ if (previewContext) {
6418
+ if (previewContext.locale) {
6419
+ pack.session.set("locale", previewContext.locale);
6420
+ }
6421
+ if (previewContext.pageDraft) {
6422
+ pack.session.set("pageDraft", previewContext.pageDraft);
6423
+ }
6424
+ if (previewContext.siteSettingsDraft) {
6425
+ pack.session.set("siteSettingsDraft", previewContext.siteSettingsDraft);
6426
+ }
6427
+ if (previewContext.testHandle) {
6428
+ pack.session.set("testHandle", previewContext.testHandle);
6429
+ }
6430
+ if (previewContext.testVariantHandle) {
6431
+ pack.session.set("testVariantHandle", previewContext.testVariantHandle);
6432
+ }
6433
+ }
6398
6434
  return redirect(redirectTo, {
6399
6435
  status: 307
6400
6436
  });