@pack/hydrogen 0.1.3-ab-beta.3.0 → 0.1.3-ab-beta.5.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.
@@ -22,9 +22,6 @@ interface CreatePackClientOptions extends EnvironmentOptions {
22
22
  token?: string;
23
23
  storeId?: string;
24
24
  session: PackSession;
25
- preview?: {
26
- session: PackSession;
27
- };
28
25
  contentEnvironment?: string;
29
26
  /** Default theme data to use when no token is provided */
30
27
  defaultThemeData?: DefaultThemeData;
@@ -48,11 +45,8 @@ interface QueryResponse<T> {
48
45
  export interface Pack {
49
46
  isPreviewModeEnabled: () => boolean;
50
47
  session: PackSession;
51
- preview?: {
52
- session: PackSession;
53
- };
54
48
  abTest: Test | null | undefined;
55
- setRequestAbTest: (request: Request) => void;
49
+ setTestFromQueryParams: (request: Request) => void;
56
50
  query: <T = any>(query: string, options?: QueryOptions) => Promise<QueryResponse<T>>;
57
51
  isValidEditToken: PackClient["isValidEditToken"];
58
52
  getPackSessionData(): {
@@ -1 +1 @@
1
- {"version":3,"file":"create-pack-client.d.ts","sourceRoot":"","sources":["../src/create-pack-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAKL,IAAI,EACJ,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,uGAAuG;AACvG,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,UAAU,kBAAkB;IAC1B;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED,UAAU,uBAAwB,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EACb,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,KACnB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACjD,kBAAkB,IAAI;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;QAChC,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,EAAE,GAAG,CAAC;KACrB,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AA2FD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAoKvE"}
1
+ {"version":3,"file":"create-pack-client.d.ts","sourceRoot":"","sources":["../src/create-pack-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAKL,IAAI,EACJ,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,uGAAuG;AACvG,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,UAAU,kBAAkB;IAC1B;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED,UAAU,uBAAwB,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EACb,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,KACnB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACjD,kBAAkB,IAAI;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;QAChC,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,EAAE,GAAG,CAAC;KACrB,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AA2FD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAmKvE"}
@@ -1,6 +1,6 @@
1
1
  import { PackClient } from "@pack/client";
2
2
  import { CacheCustom, createWithCache } from "@shopify/hydrogen";
3
- import { getTestInfo, getTestSession, setRequestAbTest, setTestHeaders, } from "./tests/test";
3
+ import { getTestInfo, getTestSession, getTestFromQueryParams, setTestHeaders, } from "./tests/test";
4
4
  /**
5
5
  * Create an SHA-256 hash as a hex string
6
6
  * @see https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest#converting_a_digest_to_a_hex_string
@@ -73,11 +73,11 @@ function extractTopLevelField(query) {
73
73
  return "";
74
74
  }
75
75
  export function createPackClient(options) {
76
- const { cache, waitUntil, session, preview, contentEnvironment, storeId, token, apiUrl, defaultThemeData, } = options;
77
- const previewEnabled = !!preview?.session.get("enabled");
78
- const previewEnvironment = preview?.session.get("environment");
76
+ const { cache, waitUntil, session, contentEnvironment, storeId, token, apiUrl, defaultThemeData, } = options;
77
+ const previewEnabled = !!session.get("enabled");
78
+ const previewEnvironment = session.get("environment");
79
79
  const clientContentEnvironment = previewEnvironment || contentEnvironment;
80
- let requestAbTest = null;
80
+ let testFromQueryParams = null;
81
81
  if (!token && !defaultThemeData) {
82
82
  throw new Error("The Pack client token is missing or empty. Please provide a valid token or default theme data.");
83
83
  }
@@ -87,10 +87,9 @@ export function createPackClient(options) {
87
87
  if (!token) {
88
88
  return {
89
89
  session,
90
- preview,
91
- abTest: getTestSession(session, requestAbTest, previewEnabled),
92
- setRequestAbTest: (request) => {
93
- requestAbTest = setRequestAbTest(request);
90
+ abTest: getTestSession(session, testFromQueryParams, previewEnabled),
91
+ setTestFromQueryParams: (request) => {
92
+ testFromQueryParams = getTestFromQueryParams(request);
94
93
  },
95
94
  isPreviewModeEnabled: () => previewEnabled,
96
95
  async query(query, { variables } = {}) {
@@ -106,9 +105,9 @@ export function createPackClient(options) {
106
105
  return {
107
106
  storeId: storeId,
108
107
  sessionId: session.id,
109
- abTest: getTestSession(session, requestAbTest, previewEnabled),
108
+ abTest: getTestSession(session, testFromQueryParams, previewEnabled),
110
109
  isPreviewModeEnabled: previewEnabled,
111
- customizerMeta: preview?.session.get("customizerMeta"),
110
+ customizerMeta: session.get("customizerMeta"),
112
111
  };
113
112
  },
114
113
  };
@@ -127,16 +126,15 @@ export function createPackClient(options) {
127
126
  contentEnvironment: clientContentEnvironment,
128
127
  sessionId: session.id,
129
128
  });
130
- const getTestVariantPromise = getTestInfo({
129
+ const getTestInfoPromise = getTestInfo({
131
130
  packClient,
132
131
  session,
133
132
  });
134
133
  return {
135
134
  session,
136
- preview,
137
- abTest: getTestSession(session, requestAbTest, previewEnabled),
138
- setRequestAbTest: (request) => {
139
- requestAbTest = setRequestAbTest(request);
135
+ abTest: getTestSession(session, testFromQueryParams, previewEnabled),
136
+ setTestFromQueryParams: (request) => {
137
+ testFromQueryParams = getTestFromQueryParams(request);
140
138
  },
141
139
  isPreviewModeEnabled: () => previewEnabled,
142
140
  async query(query, { variables, cache: strategy = cacheCustom, test } = {}) {
@@ -144,19 +142,20 @@ export function createPackClient(options) {
144
142
  cache,
145
143
  waitUntil,
146
144
  });
145
+ const testFromSession = await (async () => {
146
+ try {
147
+ return await getTestInfoPromise;
148
+ }
149
+ catch (e) {
150
+ console.error(e);
151
+ }
152
+ return undefined;
153
+ })();
147
154
  let headers = {};
148
- headers = await setTestHeaders(headers, {
149
- test: requestAbTest || test,
155
+ headers = setTestHeaders(headers, {
150
156
  previewEnabled,
151
- sessionTest: await (async () => {
152
- try {
153
- return await getTestVariantPromise;
154
- }
155
- catch (e) {
156
- console.error(e);
157
- }
158
- return undefined;
159
- })(),
157
+ testFromSession,
158
+ testFromQueryParams: testFromQueryParams || test,
160
159
  });
161
160
  const queryHash = await hashQuery(query, variables, headers);
162
161
  const queryVariables = variables ? { ...variables } : {};
@@ -195,9 +194,9 @@ export function createPackClient(options) {
195
194
  return {
196
195
  storeId: storeId,
197
196
  sessionId: session.id,
198
- abTest: getTestSession(session, requestAbTest, previewEnabled),
197
+ abTest: getTestSession(session, testFromQueryParams, previewEnabled),
199
198
  isPreviewModeEnabled: previewEnabled,
200
- customizerMeta: preview?.session.get("customizerMeta"),
199
+ customizerMeta: session.get("customizerMeta"),
201
200
  };
202
201
  },
203
202
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handle-request.d.ts","sourceRoot":"","sources":["../src/handle-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GACrD,OAAO,CAAC,QAAQ,CAAC,CAenB"}
1
+ {"version":3,"file":"handle-request.d.ts","sourceRoot":"","sources":["../src/handle-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GACrD,OAAO,CAAC,QAAQ,CAAC,CAenB"}
@@ -1,6 +1,6 @@
1
1
  import { packlytics } from "@pack/packlytics";
2
2
  export async function handleRequest(pack, request, handleRequest) {
3
- pack.setRequestAbTest(request);
3
+ pack.setTestFromQueryParams(request);
4
4
  const [response, _] = await Promise.all([
5
5
  handleRequest(request),
6
6
  packlytics(request, pack.session, {
@@ -1 +1 @@
1
- {"version":3,"file":"cookies-utils.d.ts","sourceRoot":"","sources":["../../src/session/cookies-utils.tsx"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,WAM9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,CA8BxC"}
1
+ {"version":3,"file":"cookies-utils.d.ts","sourceRoot":"","sources":["../../src/session/cookies-utils.tsx"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,WAM9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,CA0BxC"}
@@ -25,24 +25,20 @@ export function buildRandomUUID() {
25
25
  crypto.getRandomValues(randomValuesArray);
26
26
  // Generate a strong UUID
27
27
  let i = 0;
28
- hash = tokenHash
29
- .replace(/[x]/g, (c) => {
28
+ hash = tokenHash.replace(/[x]/g, (c) => {
30
29
  const r = randomValuesArray[i] % 16;
31
30
  const v = c === "x" ? r : (r & 0x3) | 0x8;
32
31
  i++;
33
32
  return v.toString(16);
34
- })
35
- .toUpperCase();
33
+ });
36
34
  }
37
35
  catch (err) {
38
36
  // crypto not available, generate weak UUID
39
- hash = tokenHash
40
- .replace(/[x]/g, (c) => {
37
+ hash = tokenHash.replace(/[x]/g, (c) => {
41
38
  const r = (Math.random() * 16) | 0;
42
39
  const v = c === "x" ? r : (r & 0x3) | 0x8;
43
40
  return v.toString(16);
44
- })
45
- .toUpperCase();
41
+ });
46
42
  }
47
43
  return `${hexTime()}-${hash}`;
48
44
  }
@@ -62,5 +58,5 @@ function hexTime() {
62
58
  .toString(16)
63
59
  .toLowerCase();
64
60
  // Ensure the output is exactly 8 characters
65
- return output.padStart(8, "0");
61
+ return output?.substring(0, 8).padStart(8, "0");
66
62
  }
@@ -9,7 +9,7 @@ export interface TestInput {
9
9
  export interface Test {
10
10
  id: string;
11
11
  handle: string;
12
- TestVariant: {
12
+ testVariant: {
13
13
  id: string;
14
14
  handle: string;
15
15
  };
@@ -18,16 +18,11 @@ export declare function getTestInfo({ packClient, session, }: {
18
18
  packClient: PackClient;
19
19
  session: PackSession | undefined;
20
20
  }): Promise<Test | undefined>;
21
- export declare function getTestSession(session: PackSession | undefined, requestAbTest: TestInput | null, previewEnabled: boolean): Test | null | undefined;
22
- export declare function setRequestAbTest(request: Request): {
23
- testId: string;
24
- testHandle: string;
25
- testVariantId: string;
26
- testVariantHandle: string;
27
- } | null;
21
+ export declare function getTestSession(session: PackSession | undefined, testFromQueryParams: TestInput | null, previewEnabled: boolean): Test | null | undefined;
22
+ export declare function getTestFromQueryParams(request: Request): TestInput | null;
28
23
  export declare function setTestHeaders(headers: any, options: {
29
- test: TestInput | null | undefined;
30
24
  previewEnabled: boolean;
31
- sessionTest: Test | undefined;
25
+ testFromSession?: Test;
26
+ testFromQueryParams?: TestInput;
32
27
  }): any;
33
28
  //# sourceMappingURL=test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/tests/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAeD,wBAAsB,WAAW,CAAC,EAChC,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CA2C5B;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,aAAa,EAAE,SAAS,GAAG,IAAI,EAC/B,cAAc,EAAE,OAAO,GACtB,IAAI,GAAG,IAAI,GAAG,SAAS,CA8BzB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;;;;SA2ChD;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE;IACP,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;CAC/B,OA8BF"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/tests/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAeD,wBAAsB,WAAW,CAAC,EAChC,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CA2C5B;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,mBAAmB,EAAE,SAAS,GAAG,IAAI,EACrC,cAAc,EAAE,OAAO,GACtB,IAAI,GAAG,IAAI,GAAG,SAAS,CA8BzB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CA2CzE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE;IACP,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC,OAmCF"}
@@ -3,7 +3,7 @@ query TestCurrent {
3
3
  testCurrent {
4
4
  id
5
5
  handle
6
- TestVariant {
6
+ testVariant: TestVariant {
7
7
  id
8
8
  handle
9
9
  }
@@ -21,7 +21,7 @@ export async function getTestInfo({ packClient, session, }) {
21
21
  // Request directly to API if it is using CDN to reduce latency
22
22
  let usingCdn = false;
23
23
  if (packClient.apiUrl === "https://apicdn.packdigital.com/graphql") {
24
- packClient.apiUrl = "https://api.packdigital.com/graphql";
24
+ packClient.apiUrl = "https://app.packdigital.com/graphql";
25
25
  usingCdn = true;
26
26
  }
27
27
  const packClientFetch = packClient.fetch(QUERY_TEST, {});
@@ -41,14 +41,14 @@ export async function getTestInfo({ packClient, session, }) {
41
41
  }
42
42
  return test;
43
43
  }
44
- export function getTestSession(session, requestAbTest, previewEnabled) {
45
- if (requestAbTest) {
44
+ export function getTestSession(session, testFromQueryParams, previewEnabled) {
45
+ if (testFromQueryParams) {
46
46
  return {
47
- id: requestAbTest.testId || "",
48
- handle: requestAbTest.testHandle || "",
49
- TestVariant: {
50
- id: requestAbTest.testVariantId || "",
51
- handle: requestAbTest.testVariantHandle || "",
47
+ id: testFromQueryParams.testId || "",
48
+ handle: testFromQueryParams.testHandle || "",
49
+ testVariant: {
50
+ id: testFromQueryParams.testVariantId || "",
51
+ handle: testFromQueryParams.testVariantHandle || "",
52
52
  },
53
53
  };
54
54
  }
@@ -56,7 +56,7 @@ export function getTestSession(session, requestAbTest, previewEnabled) {
56
56
  return {
57
57
  id: "",
58
58
  handle: "isPreview",
59
- TestVariant: {
59
+ testVariant: {
60
60
  id: "",
61
61
  handle: "isPreview",
62
62
  },
@@ -68,7 +68,7 @@ export function getTestSession(session, requestAbTest, previewEnabled) {
68
68
  const testSession = session.get("test");
69
69
  return testSession?.data || null;
70
70
  }
71
- export function setRequestAbTest(request) {
71
+ export function getTestFromQueryParams(request) {
72
72
  const requestUrl = new URL(request.url);
73
73
  const params = requestUrl.searchParams;
74
74
  if (params.has("testId") ||
@@ -105,28 +105,31 @@ export function setRequestAbTest(request) {
105
105
  return null;
106
106
  }
107
107
  export function setTestHeaders(headers, options) {
108
- const { test, previewEnabled, sessionTest } = options;
109
- if (test) {
110
- if (test.testId) {
111
- headers["X-Test-Id"] = test.testId;
108
+ const { previewEnabled, testFromQueryParams, testFromSession } = options;
109
+ if (previewEnabled) {
110
+ return headers;
111
+ }
112
+ if (testFromQueryParams) {
113
+ headers["X-Pack-Test-Ignore-Test-Status"] = true;
114
+ if (testFromQueryParams.testId) {
115
+ headers["X-Pack-Test-Id"] = testFromQueryParams.testId;
112
116
  }
113
- if (test.testHandle) {
114
- headers["X-Test-Handle"] = test.testHandle;
117
+ if (testFromQueryParams.testHandle) {
118
+ headers["X-Pack-Test-Handle"] = testFromQueryParams.testHandle;
115
119
  }
116
- if (test.testVariantId) {
117
- headers["X-Test-Variant-Id"] = test.testVariantId;
120
+ if (testFromQueryParams.testVariantId) {
121
+ headers["X-Pack-Test-Variant-Id"] = testFromQueryParams.testVariantId;
118
122
  }
119
- if (test.testVariantHandle) {
120
- headers["X-Test-Variant-Handle"] = test.testVariantHandle;
123
+ if (testFromQueryParams.testVariantHandle) {
124
+ headers["X-Pack-Test-Variant-Handle"] =
125
+ testFromQueryParams.testVariantHandle;
121
126
  }
122
127
  }
123
- else {
124
- if (!previewEnabled && sessionTest) {
125
- headers = {
126
- "X-Test-Id": sessionTest?.id,
127
- "X-Test-Variant-Id": sessionTest?.TestVariant?.id,
128
- };
129
- }
128
+ else if (testFromSession) {
129
+ headers = {
130
+ "X-Pack-Test-Id": testFromSession?.id,
131
+ "X-Pack-Test-Variant-Id": testFromSession?.testVariant?.id,
132
+ };
130
133
  }
131
134
  return headers;
132
135
  }
@@ -25,9 +25,9 @@ export function useAbTestHandle() {
25
25
  }
26
26
  export function useAbTestVariantId() {
27
27
  const test = useAbTest();
28
- return test?.TestVariant?.id;
28
+ return test?.testVariant?.id;
29
29
  }
30
30
  export function useAbTestVariantHandle() {
31
31
  const test = useAbTest();
32
- return test?.TestVariant?.handle;
32
+ return test?.testVariant?.handle;
33
33
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pack/hydrogen",
3
3
  "description": "Pack Hydrogen",
4
- "version": "0.1.3-ab-beta.3.0",
4
+ "version": "0.1.3-ab-beta.5.0",
5
5
  "exports": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "engines": {
@@ -22,8 +22,8 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@pack/client": "^0.0.8-ab-beta.3.0",
26
- "@pack/packlytics": "^0.0.1-ab-beta.3.0",
25
+ "@pack/client": "^0.0.7",
26
+ "@pack/packlytics": "^0.0.1-ab-beta.5.0",
27
27
  "@shopify/hydrogen": "^2023.10.2"
28
28
  },
29
29
  "devDependencies": {