@remkoj/optimizely-one-nextjs 6.0.0-pre9 → 6.0.0-rc.3

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.
Files changed (128) hide show
  1. package/AGENTS.md +130 -0
  2. package/README.md +5 -1
  3. package/dist/api/graph-info-service.js +1 -1
  4. package/dist/api/graph-info-service.js.map +1 -1
  5. package/dist/api/index.js +5 -3
  6. package/dist/api/index.js.map +1 -1
  7. package/dist/api/profile-api-service.js +4 -2
  8. package/dist/api/profile-api-service.js.map +1 -1
  9. package/dist/api/types.d.ts +2 -2
  10. package/dist/client-types.d.ts +94 -23
  11. package/dist/client-types.js +5 -1
  12. package/dist/client-types.js.map +1 -1
  13. package/dist/components/context.d.ts +223 -60
  14. package/dist/components/context.js +159 -67
  15. package/dist/components/context.js.map +1 -1
  16. package/dist/components/index.d.ts +1 -0
  17. package/dist/components/optimizely-one-gadget/_notice.js +1 -0
  18. package/dist/components/optimizely-one-gadget/_notice.js.map +1 -1
  19. package/dist/components/optimizely-one-gadget/_types.d.ts +13 -13
  20. package/dist/components/optimizely-one-gadget/audiences-panel.js +2 -1
  21. package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -1
  22. package/dist/components/optimizely-one-gadget/exp-panel.d.ts +1 -1
  23. package/dist/components/optimizely-one-gadget/exp-panel.js +1 -0
  24. package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -1
  25. package/dist/components/optimizely-one-gadget/gadget.js +25 -17
  26. package/dist/components/optimizely-one-gadget/gadget.js.map +1 -1
  27. package/dist/components/optimizely-one-gadget/goals-panel.js +1 -0
  28. package/dist/components/optimizely-one-gadget/goals-panel.js.map +1 -1
  29. package/dist/components/optimizely-one-gadget/graph-panel.js +1 -0
  30. package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -1
  31. package/dist/components/optimizely-one-gadget/interests-panel.js +1 -0
  32. package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -1
  33. package/dist/components/optimizely-one-gadget/logo.js +1 -0
  34. package/dist/components/optimizely-one-gadget/logo.js.map +1 -1
  35. package/dist/components/optimizely-one-gadget/profile-panel.js +3 -2
  36. package/dist/components/optimizely-one-gadget/profile-panel.js.map +1 -1
  37. package/dist/components/page-activator.d.ts +1 -1
  38. package/dist/components/page-activator.js +12 -31
  39. package/dist/components/page-activator.js.map +1 -1
  40. package/dist/components/service-filters.d.ts +46 -0
  41. package/dist/components/service-filters.js +56 -0
  42. package/dist/components/service-filters.js.map +1 -0
  43. package/dist/components/types.d.ts +2 -0
  44. package/dist/components/types.js +2 -0
  45. package/dist/components/types.js.map +1 -0
  46. package/dist/components/use-cookie.js.map +1 -1
  47. package/dist/components/use-local-state.d.ts +24 -0
  48. package/dist/components/use-local-state.js +55 -0
  49. package/dist/components/use-local-state.js.map +1 -0
  50. package/dist/components/use-test-mode.js +2 -2
  51. package/dist/components/use-test-mode.js.map +1 -1
  52. package/dist/config.d.ts +119 -0
  53. package/dist/config.js +101 -2
  54. package/dist/config.js.map +1 -1
  55. package/dist/env-vars.d.ts +3 -0
  56. package/dist/env-vars.js +3 -0
  57. package/dist/env-vars.js.map +1 -1
  58. package/dist/products/content-recs/api.js.map +1 -1
  59. package/dist/products/content-recs/client.d.ts +10 -3
  60. package/dist/products/content-recs/client.js +38 -2
  61. package/dist/products/content-recs/client.js.map +1 -1
  62. package/dist/products/content-recs/delivery.d.ts +18 -18
  63. package/dist/products/content-recs/delivery.js.map +1 -1
  64. package/dist/products/content-recs/snippet.d.ts +1 -1
  65. package/dist/products/content-recs/snippet.js +0 -1
  66. package/dist/products/content-recs/snippet.js.map +1 -1
  67. package/dist/{api/content-goals.d.ts → products/content-recs/webservice-goals.d.ts} +1 -1
  68. package/dist/{api/content-goals.js → products/content-recs/webservice-goals.js} +4 -4
  69. package/dist/products/content-recs/webservice-goals.js.map +1 -0
  70. package/dist/products/content-recs/webservice.d.ts +3 -0
  71. package/dist/{api/content-recs.js → products/content-recs/webservice.js} +13 -12
  72. package/dist/products/content-recs/webservice.js.map +1 -0
  73. package/dist/products/data-platform/api.d.ts +9 -9
  74. package/dist/products/data-platform/api.js +9 -9
  75. package/dist/products/data-platform/api.js.map +1 -1
  76. package/dist/products/data-platform/client.d.ts +11 -2
  77. package/dist/products/data-platform/client.js +52 -9
  78. package/dist/products/data-platform/client.js.map +1 -1
  79. package/dist/products/data-platform/index.js.map +1 -1
  80. package/dist/products/data-platform/snippet.d.ts +1 -1
  81. package/dist/products/data-platform/snippet.js +3 -4
  82. package/dist/products/data-platform/snippet.js.map +1 -1
  83. package/dist/products/feature-experimentation/provider.d.ts +7 -0
  84. package/dist/products/feature-experimentation/provider.js +38 -0
  85. package/dist/products/feature-experimentation/provider.js.map +1 -0
  86. package/dist/products/web-experimentation/client.d.ts +5 -2
  87. package/dist/products/web-experimentation/client.js +21 -7
  88. package/dist/products/web-experimentation/client.js.map +1 -1
  89. package/dist/products/web-experimentation/snippet.d.ts +1 -1
  90. package/dist/products/web-experimentation/snippet.js +2 -3
  91. package/dist/products/web-experimentation/snippet.js.map +1 -1
  92. package/dist/products/web-experimentation/webservice.d.ts +3 -0
  93. package/dist/{api/experimentation-api.js → products/web-experimentation/webservice.js} +2 -2
  94. package/dist/products/web-experimentation/webservice.js.map +1 -0
  95. package/dist/server-components/index.d.ts +3 -0
  96. package/dist/server-components/index.js +3 -0
  97. package/dist/server-components/index.js.map +1 -1
  98. package/dist/{components/optimizely-one-gadget/index.d.ts → server-components/optimizely-one-gadget.d.ts} +2 -2
  99. package/dist/{components/optimizely-one-gadget/index.js → server-components/optimizely-one-gadget.js} +4 -5
  100. package/dist/server-components/optimizely-one-gadget.js.map +1 -0
  101. package/dist/server-components/optimizely-one.d.ts +219 -0
  102. package/dist/server-components/optimizely-one.js +112 -0
  103. package/dist/server-components/optimizely-one.js.map +1 -0
  104. package/dist/server-components/scripts/footer.d.ts +1 -1
  105. package/dist/server-components/scripts/footer.js.map +1 -1
  106. package/dist/server-components/scripts/header.d.ts +29 -29
  107. package/dist/server-components/scripts/header.js.map +1 -1
  108. package/dist/server-components/scripts/index.d.ts +6 -6
  109. package/dist/server-components/scripts/index.js +6 -6
  110. package/dist/server-components/scripts/index.js.map +1 -1
  111. package/dist/server.d.ts +1 -2
  112. package/dist/server.js +1 -6
  113. package/dist/server.js.map +1 -1
  114. package/dist/styles.css +2 -2
  115. package/dist/utils/env.js.map +1 -1
  116. package/dist/utils/products.d.ts +92 -0
  117. package/dist/utils/products.js +84 -0
  118. package/dist/utils/products.js.map +1 -0
  119. package/package.json +35 -30
  120. package/dist/api/content-goals.js.map +0 -1
  121. package/dist/api/content-recs.d.ts +0 -3
  122. package/dist/api/content-recs.js.map +0 -1
  123. package/dist/api/experimentation-api.d.ts +0 -3
  124. package/dist/api/experimentation-api.js.map +0 -1
  125. package/dist/components/optimizely-one-gadget/index.js.map +0 -1
  126. package/dist/components/rsc.d.ts +0 -2
  127. package/dist/components/rsc.js +0 -3
  128. package/dist/components/rsc.js.map +0 -1
@@ -1,15 +1,18 @@
1
- import { ContentRecs } from '../products';
2
- import { readConfigFromEnv } from '../config';
3
- import * as Responses from './responses';
1
+ import { ContentRecs } from '../index.js';
2
+ import { readConfigFromEnv } from '../../config.js';
3
+ import * as Responses from '../../api/responses.js';
4
4
  export const ContentRecsApiService = {
5
5
  for: { path: '/crecs', verb: 'get' },
6
6
  handler: async (query, cookies) => {
7
+ // Read configuration
7
8
  const optiOneConfig = readConfigFromEnv();
8
9
  if (!optiOneConfig.ContentRecsHost)
9
10
  return Responses.NotFound;
11
+ // Identify visitor
10
12
  const crId = ContentRecs.Tools.getVisitorID(await cookies);
11
13
  if (!crId)
12
14
  return [{ total_hits: 0, content: [] }, 200];
15
+ // Send request to Content Recommendations, and strip JSONP function call
13
16
  const recsService = new URL(`https://api.${optiOneConfig.ContentRecsHost}/1.0/users/idio_visitor_id:${crId}/content?callback=fn`);
14
17
  query.forEach((value, name) => {
15
18
  if (name.toLowerCase() != 'callback')
@@ -20,20 +23,18 @@ export const ContentRecsApiService = {
20
23
  return [{ error: { status: snippetResponse.status, message: snippetResponse.statusText } }, snippetResponse.status];
21
24
  const body = await snippetResponse.text();
22
25
  const jsonData = body.substring(body.indexOf('{'), body.lastIndexOf('}') + 1);
26
+ // Convert and return data
23
27
  try {
24
28
  const recsData = JSON.parse(jsonData);
25
- return [
26
- {
27
- ...recsData,
28
- next_page: (new URL(recsData.next_page)).search
29
- },
30
- 200
31
- ];
29
+ if (recsData.next_page)
30
+ recsData.next_page = (new URL(recsData.next_page)).search;
31
+ return [recsData, 200];
32
32
  }
33
- catch {
33
+ catch (e) {
34
+ console.error("Error in processing Content Recommendations", e);
34
35
  return [{ error: { status: 500, message: "Unable to parse Content Recommendations data" } }, 500];
35
36
  }
36
37
  }
37
38
  };
38
39
  export default ContentRecsApiService;
39
- //# sourceMappingURL=content-recs.js.map
40
+ //# sourceMappingURL=webservice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webservice.js","sourceRoot":"","sources":["../../../src/products/content-recs/webservice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,qBAAqB;QACrB,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,eAAe;YAChC,OAAO,SAAS,CAAC,QAAQ,CAAA;QAE3B,mBAAmB;QACnB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,IAAI;YACP,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAE9C,yEAAyE;QACzE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,aAAa,CAAC,eAAe,8BAA8B,IAAI,sBAAsB,CAAC,CAAA;QACjI,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,UAAU;gBAClC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QACF,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;QACvE,IAAI,CAAC,eAAe,CAAC,EAAE;YACrB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;QACrH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAE7E,0BAA0B;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,QAAQ,CAAC,SAAS;gBACpB,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;YAC3D,OAAO,CAAE,QAAQ,EAAE,GAAG,CAAE,CAAA;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAA;YAC/D,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,8CAA8C,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACnG,CAAC;IACH,CAAC;CACF,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -20,19 +20,19 @@ export declare class DataPlatformClient {
20
20
  get trackerId(): string;
21
21
  constructor(options?: Partial<DataPlatformClientOptions>);
22
22
  /**
23
- * Retrieve a list of all audiences available within the ODP Instance
24
- *
25
- * @param throwOnError Set to true when an error needs to be
26
- * thrown on an network error (instead of
27
- * returning an empty list)
28
- * @returns The list of all audiences
29
- */
23
+ * Retrieve a list of all audiences available within the ODP Instance
24
+ *
25
+ * @param throwOnError Set to true when an error needs to be
26
+ * thrown on an network error (instead of
27
+ * returning an empty list)
28
+ * @returns The list of all audiences
29
+ */
30
30
  getAllAudiences(throwOnError?: boolean): Promise<DataPlatformAudienceList>;
31
31
  filterAudiences(vuid: string, audiences: string[]): Promise<string[]>;
32
32
  getLastSearchTerms(vuid: string): Promise<string[]>;
33
33
  getProfileInfo(vuid: string): Promise<DataPlatformProfile | undefined>;
34
- protected privateQuery(graphQuery: string, variables?: Record<string, any>): Promise<Response>;
35
- query(graphQuery: string, variables?: Record<string, any>): Promise<Response>;
34
+ protected privateQuery(graphQuery: string, variables?: Record<string, unknown>): Promise<Response>;
35
+ query(graphQuery: string, variables?: Record<string, unknown>): Promise<Response>;
36
36
  }
37
37
  export declare class DataPlatformError extends Error {
38
38
  private _trackerId?;
@@ -26,13 +26,13 @@ export class DataPlatformClient {
26
26
  console.warn('[Optimizely Data Platform]: No Private Key provided, authorized queries are not available');
27
27
  }
28
28
  /**
29
- * Retrieve a list of all audiences available within the ODP Instance
30
- *
31
- * @param throwOnError Set to true when an error needs to be
32
- * thrown on an network error (instead of
33
- * returning an empty list)
34
- * @returns The list of all audiences
35
- */
29
+ * Retrieve a list of all audiences available within the ODP Instance
30
+ *
31
+ * @param throwOnError Set to true when an error needs to be
32
+ * thrown on an network error (instead of
33
+ * returning an empty list)
34
+ * @returns The list of all audiences
35
+ */
36
36
  async getAllAudiences(throwOnError = false) {
37
37
  const listAudiencesQuery = 'query GetAllAudiences { audiences { edges { node { name, description } } } }';
38
38
  const listResponse = await this.privateQuery(listAudiencesQuery).catch(() => undefined);
@@ -71,10 +71,10 @@ export class DataPlatformClient {
71
71
  const responseData = await this.privateQuery(query, variables).then(response => response.json()).catch(() => { return { errors: [{ message: "Uncaught error" }] }; });
72
72
  if (responseData.errors) {
73
73
  console.error("Error while fetching latest search terms, please check your keys");
74
- console.error(responseData.errors.map((e) => e.message).join('; '));
74
+ console.error(responseData.errors.map(e => e.message).join('; '));
75
75
  return [];
76
76
  }
77
- const terms = (responseData.data?.events?.edges?.map((e) => e.node.search_term) ?? []);
77
+ const terms = (responseData.data?.events?.edges?.map(e => e.node.search_term) ?? []);
78
78
  return terms;
79
79
  }
80
80
  async getProfileInfo(vuid) {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/products/data-platform/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/products/data-platform/api.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,21 @@
1
1
  import * as ClientApi from '../../client-types';
2
- export declare class DataPlatformService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyDataPlatformApi> {
2
+ import * as GlobalClientTypes from '../../components/types';
3
+ export declare class DataPlatformService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyDataPlatformApi, 'odp'> {
4
+ private _odpEnabled;
5
+ constructor(enabledServices?: Array<GlobalClientTypes.SupportedProductNames>);
3
6
  order: Readonly<number>;
4
- code: Readonly<string>;
7
+ code: Readonly<'odp'>;
5
8
  debug: boolean;
6
9
  get isActive(): boolean;
7
10
  trackPage(): void;
8
11
  trackEvent(event: ClientApi.OptimizelyOneEvent): void;
9
12
  getBrowserApi(): ClientApi.OptimizelyDataPlatformApi | undefined;
13
+ /**
14
+ * Discover the visitorId cookie and make it available to the systems as identifier
15
+ *
16
+ * @returns The partial profile data
17
+ */
18
+ discoverProfileData(): Promise<Partial<ClientApi.OptimizelyOneProfileData>>;
10
19
  updateProfile(profileData: ClientApi.OptimizelyOneProfileData): void;
11
20
  private lastTrackedContentIntelligenceId;
12
21
  private get contentIntelligenceId();
@@ -1,12 +1,19 @@
1
1
  'use client';
2
2
  export class DataPlatformService {
3
+ _odpEnabled = true;
4
+ constructor(enabledServices) {
5
+ if (enabledServices)
6
+ this._odpEnabled = enabledServices.includes("dataPlatform");
7
+ }
3
8
  order = 200;
4
- code = "odp";
9
+ code = 'odp';
5
10
  debug = false;
6
11
  get isActive() {
7
- return this.getBrowserApi() != undefined;
12
+ return this._odpEnabled;
8
13
  }
9
14
  trackPage() {
15
+ if (!this._odpEnabled)
16
+ return;
10
17
  const zaius = this.getBrowserApi();
11
18
  if (!zaius)
12
19
  return;
@@ -21,37 +28,73 @@ export class DataPlatformService {
21
28
  }
22
29
  }
23
30
  trackEvent(event) {
31
+ if (!this._odpEnabled)
32
+ return;
24
33
  const zaius = this.getBrowserApi();
25
34
  if (!zaius)
26
35
  return;
27
36
  const event_name = event.event;
28
- const event_data = {};
29
- for (const prop_name of Object.getOwnPropertyNames(event)) {
37
+ const event_data = Object.entries(event).reduce((data, [prop_name, prop_value]) => {
30
38
  if (prop_name != 'event')
31
- event_data[prop_name] = event[prop_name];
32
- }
39
+ data[prop_name] = prop_value;
40
+ return data;
41
+ }, {});
33
42
  if (this.debug)
34
43
  console.log("🏬 Data platform - Tracking event:", event_name, event_data);
35
44
  zaius.event(event_name, event_data);
36
45
  }
37
46
  getBrowserApi() {
38
47
  try {
48
+ if (!this._odpEnabled)
49
+ return undefined;
39
50
  return window.zaius;
40
51
  }
41
52
  catch {
42
53
  return undefined;
43
54
  }
44
55
  }
56
+ /**
57
+ * Discover the visitorId cookie and make it available to the systems as identifier
58
+ *
59
+ * @returns The partial profile data
60
+ */
61
+ discoverProfileData() {
62
+ return new Promise((resolve) => {
63
+ try {
64
+ const cookies = document.cookie.split(';').map(x => x.trim().split('=', 2)).reduce((obj, cData) => { obj[cData[0]] = cData[1]; return obj; }, {});
65
+ const visitorId = cookies['visitorId'];
66
+ if (visitorId)
67
+ return resolve({ feature_experimentation_id: visitorId });
68
+ }
69
+ catch {
70
+ //Ignore errors on purpose
71
+ }
72
+ return resolve({});
73
+ });
74
+ }
45
75
  updateProfile(profileData) {
46
76
  const zaius = this.getBrowserApi();
47
77
  if (!zaius)
48
78
  return;
49
- const ids = {};
79
+ // Build IDs
80
+ const ids = { ...profileData.ids };
50
81
  if (profileData.content_intelligence_id)
51
82
  ids.content_intelligence_id = profileData.content_intelligence_id;
83
+ if (profileData.feature_experimentation_id)
84
+ ids.fs_user_id = profileData.feature_experimentation_id;
85
+ // Build fields
86
+ const fields = Object.entries({
87
+ ...ids,
88
+ ...profileData.custom,
89
+ ...profileData.customPII
90
+ }).reduce((acc, [key, value]) => {
91
+ if (value)
92
+ acc[key] = value;
93
+ return acc;
94
+ }, {});
52
95
  if (this.debug)
53
- console.log("🏬 Data platform - Updating profile (ids, attributes):", ids, profileData.custom);
54
- zaius.customer(ids, profileData.custom);
96
+ console.log("🏬 Data platform - Updating profile (ids, attributes):", ids, fields);
97
+ zaius.customer(ids, fields);
55
98
  }
56
99
  lastTrackedContentIntelligenceId = undefined;
57
100
  get contentIntelligenceId() {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/data-platform/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/data-platform/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/products/data-platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,MAAM,EAA+D,MAAM,OAAO,CAAA;AACjH,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,kBAAkB,IAAI,MAAM,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACvE,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA;AAElC,eAAe;IACX,MAAM;IACN,KAAK;IACL,iBAAiB;CACpB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/products/data-platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,MAAM,EAA+D,MAAM,OAAO,CAAA;AACjH,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,kBAAkB,IAAI,MAAM,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACvE,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA;AAElC,eAAe;IACb,MAAM;IACN,KAAK;IACL,iBAAiB;CAClB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  export type OptimizelyDataPlatformProps = {
2
2
  trackerId: string;
3
3
  };
4
- export declare const OptimizelyDataPlatformScript: (props: OptimizelyDataPlatformProps) => import("react/jsx-runtime").JSX.Element | null;
4
+ export declare const OptimizelyDataPlatformScript: (props: OptimizelyDataPlatformProps) => import("react").JSX.Element | null;
5
5
  export default OptimizelyDataPlatformScript;
@@ -1,11 +1,10 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /* eslint @next/next/no-before-interactive-script-outside-document: 0 */
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
2
  import Script from 'next/script';
4
3
  export const OptimizelyDataPlatformScript = (props) => {
5
4
  const odp_id = props.trackerId.split('.').shift() ?? '';
6
5
  if (odp_id == '')
7
6
  return null;
8
- return _jsx(Script, { id: 'data-platform-script', strategy: 'beforeInteractive', children: `
7
+ return _jsxs(_Fragment, { children: [_jsx(Script, { id: 'data-platform-script', strategy: 'beforeInteractive', children: `
9
8
  var zaius = window['zaius'] || (window['zaius'] = []);
10
9
  zaius.methods = ['initialize', 'onload', 'customer', 'entity', 'event', 'subscribe', 'unsubscribe', 'consent', 'identify', 'anonymize', 'dispatch'];
11
10
 
@@ -33,7 +32,7 @@ export const OptimizelyDataPlatformScript = (props) => {
33
32
  var firstScript = document.getElementsByTagName('script')[0];
34
33
  firstScript.parentNode.insertBefore(script, firstScript);
35
34
  })();
36
- ` });
35
+ ` }), _jsx("link", { rel: "preconnect", href: "https://api.zaius.com" })] });
37
36
  };
38
37
  export default OptimizelyDataPlatformScript;
39
38
  //# sourceMappingURL=snippet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/data-platform/snippet.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAMhC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAkC,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;IACvD,IAAI,MAAM,IAAI,EAAE;QACZ,OAAO,IAAI,CAAA;IACf,OAAO,KAAC,MAAM,IAAC,EAAE,EAAC,sBAAsB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;;;;;;;;;;;;;;;;;;;;;gIAwBsD,MAAO;;;;CAIvI,GACQ,CAAA;AACT,CAAC,CAAA;AAED,eAAe,4BAA4B,CAAA"}
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/data-platform/snippet.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAMhC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAkC,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;IACvD,IAAI,MAAM,IAAI,EAAE;QACd,OAAO,IAAI,CAAA;IACb,OAAO,8BACL,KAAC,MAAM,IAAC,EAAE,EAAC,sBAAsB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;;;;;;;;;;;;;;;;;;;;;gIAwB6D,MAAO;;;;CAIvI,GACY,EACT,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,uBAAuB,GAAG,IACrD,CAAA;AACL,CAAC,CAAA;AAED,eAAe,4BAA4B,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type PropsWithChildren } from 'react';
2
+ export type FeatureExperimentationProviderProps = PropsWithChildren<{
3
+ sdkKey: string;
4
+ frontendCookie: string;
5
+ debug?: boolean;
6
+ }>;
7
+ export default function FeatureExperimentationProvider({ sdkKey, frontendCookie, debug, children }: FeatureExperimentationProviderProps): import("react").JSX.Element;
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as FX from '@optimizely/react-sdk';
4
+ import { useMemo, useEffect } from 'react';
5
+ import { useCookie } from '../../components/use-cookie.js';
6
+ export default function FeatureExperimentationProvider({ sdkKey, frontendCookie, debug = false, children }) {
7
+ const optimizelyClient = useMemo(() => FX.createInstance({
8
+ projectConfigManager: FX.createPollingProjectConfigManager({
9
+ sdkKey,
10
+ autoUpdate: true,
11
+ updateInterval: 1000 * 60, // Update every minute
12
+ }),
13
+ eventProcessor: FX.createBatchEventProcessor({
14
+ batchSize: 10, // Send events in batches of 10 (or when flush interval is reached)
15
+ flushInterval: 1000 * 30, // Flush every 30 seconds
16
+ }),
17
+ odpManager: FX.createOdpManager({
18
+ eventBatchSize: 10,
19
+ eventFlushInterval: 1000 * 30,
20
+ }),
21
+ vuidManager: FX.createVuidManager({
22
+ enableVuid: true,
23
+ // vuidCache:
24
+ })
25
+ }), [sdkKey, debug]);
26
+ const [userId] = useCookie(frontendCookie, `optimizely-one-user-${Math.random().toString(36).substring(2, 15)}`);
27
+ useEffect(() => {
28
+ if (debug || process.env.NODE_ENV === 'development') {
29
+ console.groupCollapsed('🔧 [FeatureExperimentationProvider] Debug mode enabled');
30
+ console.log('🔑 SDK Key:', sdkKey);
31
+ console.log('🍪 Frontend Cookie:', frontendCookie);
32
+ console.log('👤 User ID:', userId);
33
+ console.groupEnd();
34
+ }
35
+ }, [sdkKey, frontendCookie, userId, debug]);
36
+ return (_jsx(FX.OptimizelyProvider, { client: optimizelyClient, user: { id: userId }, children: children }));
37
+ }
38
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/products/feature-experimentation/provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,SAAS,EAA0B,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAQ3D,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAuC;IAC7I,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC;QACvD,oBAAoB,EAAE,EAAE,CAAC,iCAAiC,CAAC;YACzD,MAAM;YACN,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI,GAAG,EAAE,EAAE,sBAAsB;SAClD,CAAC;QACF,cAAc,EAAE,EAAE,CAAC,yBAAyB,CAAC;YAC3C,SAAS,EAAE,EAAE,EAAE,mEAAmE;YAClF,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,yBAAyB;SACpD,CAAC;QACF,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC;YAC9B,cAAc,EAAE,EAAE;YAClB,kBAAkB,EAAE,IAAI,GAAG,EAAE;SAC9B,CAAC;QACF,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAChC,UAAU,EAAE,IAAI;YAChB,cAAc;SACf,CAAC;KACH,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAErB,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,EAAE,uBAAuB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAEjH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACpD,OAAO,CAAC,cAAc,CAAC,wDAAwD,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,OAAO,CACL,KAAC,EAAE,CAAC,kBAAkB,IAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,YAClE,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC"}
@@ -1,7 +1,10 @@
1
1
  import * as ClientApi from '../../client-types';
2
- export declare class WebExperimenationService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyWebExperimentationApi> {
2
+ import * as GlobalClientTypes from '../../components/types';
3
+ export declare class WebExperimenationService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyWebExperimentationApi, 'webex'> {
4
+ private _wxEnabled;
5
+ constructor(enabledServices?: Array<GlobalClientTypes.SupportedProductNames>);
3
6
  order: Readonly<number>;
4
- code: Readonly<string>;
7
+ code: Readonly<'webex'>;
5
8
  debug: boolean;
6
9
  get isActive(): boolean;
7
10
  activatePage(): void;
@@ -1,12 +1,19 @@
1
1
  'use client';
2
2
  export class WebExperimenationService {
3
+ _wxEnabled = true;
4
+ constructor(enabledServices) {
5
+ if (enabledServices)
6
+ this._wxEnabled = enabledServices.includes("dataPlatform");
7
+ }
3
8
  order = 100;
4
- code = "webex";
9
+ code = 'webex';
5
10
  debug = false;
6
11
  get isActive() {
7
- return this.getBrowserApi() != undefined;
12
+ return this._wxEnabled;
8
13
  }
9
14
  activatePage() {
15
+ if (!this._wxEnabled)
16
+ return;
10
17
  const webex = this.getBrowserApi();
11
18
  if (!webex)
12
19
  return;
@@ -15,21 +22,26 @@ export class WebExperimenationService {
15
22
  console.log("🚀 Web Experimentation - Activating pages");
16
23
  }
17
24
  trackEvent(event) {
25
+ if (!this._wxEnabled)
26
+ return;
18
27
  const webex = this.getBrowserApi();
19
28
  if (!webex)
20
29
  return;
21
30
  const eventName = `${event.event}_${event.action}`;
22
- const eventTags = {};
23
- for (const prop_name of Object.getOwnPropertyNames(event)) {
24
- if (prop_name != 'event' && prop_name != 'action')
25
- eventTags[prop_name] = event[prop_name];
26
- }
31
+ const eventTags = Object.entries(event).reduce((tags, [prop_name, prop_value]) => {
32
+ if (prop_name.startsWith('tag_')) {
33
+ tags[prop_name.substring(4)] = prop_value;
34
+ }
35
+ return tags;
36
+ }, {});
27
37
  if (this.debug)
28
38
  console.log("🚀 Web Experimentation - Tracking event:", { type: 'event', eventName, tags: eventTags });
29
39
  webex.push({ type: 'event', eventName, tags: eventTags });
30
40
  }
31
41
  getBrowserApi() {
32
42
  try {
43
+ if (!this._wxEnabled)
44
+ return undefined;
33
45
  if (!window.optimizely)
34
46
  window.optimizely = [];
35
47
  return window.optimizely;
@@ -39,6 +51,8 @@ export class WebExperimenationService {
39
51
  }
40
52
  }
41
53
  updateProfile(profileData) {
54
+ if (!this._wxEnabled)
55
+ return;
42
56
  const webex = this.getBrowserApi();
43
57
  if (!webex)
44
58
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,wBAAwB;IAE1B,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,OAAO,CAAA;IACjC,KAAK,GAAY,KAAK,CAAA;IAC7B,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,SAAS,CAAA;IAC5C,CAAC;IAEM,YAAY;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IAC5E,CAAC;IAEM,UAAU,CAAC,KAAmC;QAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QAClD,MAAM,SAAS,GAAyB,EAAE,CAAA;QAC1C,KAAK,MAAM,SAAS,IAAK,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAA4C,EAAE,CAAC;YACpG,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,QAAQ;gBAAE,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;QAC9F,CAAC;QACD,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACtH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7D,CAAC;IAEM,aAAa;QAEhB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClB,MAAM,CAAC,UAAU,GAAG,EAA0D,CAAA;YAClF,OAAO,MAAM,CAAC,UAAU,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAA;QACpB,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,WAA+C;QAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9H,KAAK,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,WAAW,CAAC,MAAM;SACjC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAKZ,MAAM,OAAO,wBAAwB;IAE3B,UAAU,GAAa,IAAI,CAAA;IACnC,YAAY,eAAgE;QAC1E,IAAI,eAAe;YACjB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC9D,CAAC;IAEM,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAuB,OAAO,CAAA;IAClC,KAAK,GAAY,KAAK,CAAA;IAC7B,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAEM,YAAY;QAEjB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IAC1E,CAAC;IAEM,UAAU,CAAC,KAAmC;QAEnD,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;YAC3C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAA6B,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACtH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAC3D,CAAC;IAEM,aAAa;QAElB,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,SAAS,CAAA;YACtC,IAAI,CAAC,MAAM,CAAC,UAAU;gBACpB,MAAM,CAAC,UAAU,GAAG,EAA0D,CAAA;YAChF,OAAO,MAAM,CAAC,UAAU,CAAA;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,WAA+C;QAElE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9H,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,WAAW,CAAC,MAAM;SAC/B,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,wBAAwB,CAAA"}
@@ -4,5 +4,5 @@ export type OptimizelyWebExperimentationProps = {
4
4
  useProxy?: boolean;
5
5
  apiPrefix?: string;
6
6
  };
7
- export declare const OptimizelyWebExperimentationScript: ({ projectId, allowProjectOverride, useProxy, apiPrefix }: OptimizelyWebExperimentationProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const OptimizelyWebExperimentationScript: ({ projectId, allowProjectOverride, useProxy, apiPrefix }: OptimizelyWebExperimentationProps) => import("react").JSX.Element;
8
8
  export default OptimizelyWebExperimentationScript;
@@ -1,10 +1,9 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /* eslint @next/next/no-before-interactive-script-outside-document: 0 */
3
2
  import Script from 'next/script';
4
3
  export const OptimizelyWebExperimentationScript = ({ projectId, allowProjectOverride = false, useProxy = false, apiPrefix = '/api/me' }) => {
5
4
  function buildUrl(pid) {
6
5
  return useProxy ?
7
- `${apiPrefix}/exp?pid=${pid}` :
6
+ `${apiPrefix}/exp${allowProjectOverride ? '?pid=' + pid : ''}` :
8
7
  `https://cdn.optimizely.com/js/${pid}.js`;
9
8
  }
10
9
  return _jsxs(_Fragment, { children: [_jsx(Script, { id: 'web-experimentation-startup', strategy: 'beforeInteractive', children: `window["optimizely"] = window["optimizely"] || [];` }), allowProjectOverride ?
@@ -24,7 +23,7 @@ export const OptimizelyWebExperimentationScript = ({ projectId, allowProjectOver
24
23
  s.parentNode.insertBefore(wx,s);
25
24
  })(window,document,localStorage)
26
25
  ` }) :
27
- _jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', src: buildUrl(projectId) })] });
26
+ _jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', src: buildUrl(projectId) }), _jsx("link", { rel: "preconnect", href: "https://logx.optimizely.com/v1/events" })] });
28
27
  };
29
28
  export default OptimizelyWebExperimentationScript;
30
29
  //# sourceMappingURL=snippet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/snippet.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAShC,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,SAAS,EAAqC,EAAE,EAAE;IAE1K,SAAS,QAAQ,CAAC,GAAkB;QAEhC,OAAO,QAAQ,CAAC,CAAC;YACb,GAAI,SAAU,YAAa,GAAI,EAAE,CAAC,CAAC;YACnC,iCAAkC,GAAI,KAAK,CAAA;IACnD,CAAC;IAED,OAAO,8BACH,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAG,oDAAoD,GAAU,EACpI,oBAAoB,CAAC,CAAC;gBACpB,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;8DAIpB,SAAU;;;;;;cAM1D,QAAQ,CAAC,wBAAwB,CAAE;;;;;aAKrC,GAAU,CAAC,CAAC;gBACb,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,EAAC,GAAG,EAAG,QAAQ,CAAC,SAAS,CAAC,GAAK,IAEzG,CAAA;AACP,CAAC,CAAA;AAED,eAAe,kCAAkC,CAAA"}
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/snippet.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAShC,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,SAAS,EAAqC,EAAE,EAAE;IAE5K,SAAS,QAAQ,CAAC,GAAkB;QAElC,OAAO,QAAQ,CAAC,CAAC;YACf,GAAI,SAAU,OAAQ,oBAAoB,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC;YACpE,iCAAkC,GAAI,KAAK,CAAA;IAC/C,CAAC;IAED,OAAO,8BACL,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAG,oDAAoD,GAAU,EACpI,oBAAoB,CAAC,CAAC;gBACtB,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;8DAId,SAAU;;;;;;cAM1D,QAAQ,CAAC,wBAAwB,CAAE;;;;;aAKrC,GAAU,CAAC,CAAC;gBACnB,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,EAAC,GAAG,EAAG,QAAQ,CAAC,SAAS,CAAC,GAAK,EAEtG,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,uCAAuC,GAAG,IACrE,CAAA;AACL,CAAC,CAAA;AAED,eAAe,kCAAkC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ApiService } from '../../api/types.js';
2
+ export declare const ExperimentationApiService: ApiService<object>;
3
+ export default ExperimentationApiService;
@@ -1,4 +1,4 @@
1
- import getConfig from '../config';
1
+ import getConfig from '../../config.js';
2
2
  export const ExperimentationApiService = {
3
3
  for: { path: '/exp', verb: 'get' },
4
4
  handler: async (query) => {
@@ -27,4 +27,4 @@ export const ExperimentationApiService = {
27
27
  },
28
28
  };
29
29
  export default ExperimentationApiService;
30
- //# sourceMappingURL=experimentation-api.js.map
30
+ //# sourceMappingURL=webservice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webservice.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/webservice.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,iBAAiB,CAAA;AAEvC,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;IAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAA;QAC5H,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAA;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,IAAI,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAA;QAE7F,iCAAiC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;YAC3E,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,EAAE,GAAG,CAAC,CAAA;QACvE,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,iCAAkC,SAAU,KAAK,EAAE;YACrF,0CAA0C;YAC1C,IAAI,EAAE;gBACJ,UAAU,EAAE,GAAG,CAAC,kCAAkC;aACnD;SACF,CAAC,CAAA;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YAC/E,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAC,EAAC,EAAE,eAAe,CAAC,MAAM,CAAE,CAAA;QACnH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;QAEzC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;IACzE,CAAC;CACF,CAAA;AAED,eAAe,yBAAyB,CAAA"}
@@ -1 +1,4 @@
1
+ import 'server-only';
1
2
  export { Scripts } from './scripts';
3
+ export { OptimizelyOne } from './optimizely-one';
4
+ export { OptimizelyOneGadget } from './optimizely-one-gadget';
@@ -1,2 +1,5 @@
1
+ import 'server-only';
1
2
  export { Scripts } from './scripts';
3
+ export { OptimizelyOne } from './optimizely-one';
4
+ export { OptimizelyOneGadget } from './optimizely-one-gadget';
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server-components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server-components/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { OptimizelyOneGadgetProps } from './_types';
1
+ import type { OptimizelyOneGadgetProps } from '../components/optimizely-one-gadget/_types.js';
2
2
  import 'server-only';
3
- export declare const OptimizelyOneGadget: ({ refreshInterval, servicePrefix, show, }: OptimizelyOneGadgetProps) => import("react/jsx-runtime").JSX.Element | null;
3
+ export declare const OptimizelyOneGadget: ({ refreshInterval, servicePrefix, show, }: OptimizelyOneGadgetProps) => import("react").JSX.Element | null;
4
4
  export default OptimizelyOneGadget;
@@ -1,19 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import getConfig, { checkProductStatus } from '../../config';
2
+ import getConfig, { checkProductStatus } from '../config.js';
3
3
  import dynamic from 'next/dynamic';
4
- import { Suspense } from 'react';
5
4
  import 'server-only';
6
- const OptimizelyOneClientGadget = dynamic(() => import('./gadget'));
5
+ const OptimizelyOneClientGadget = dynamic(() => import('../components/optimizely-one-gadget/gadget.js'), { ssr: false, loading: () => null });
7
6
  export const OptimizelyOneGadget = ({ refreshInterval = 0, servicePrefix = '/api/me', show, }) => {
8
7
  const optiOneConfig = getConfig();
9
8
  const { HelperEnabled, OptimizelyDebug } = optiOneConfig;
10
9
  const productStatus = checkProductStatus(optiOneConfig);
11
10
  if (show || (show === undefined && HelperEnabled)) {
12
- return (_jsx(Suspense, { fallback: null, children: _jsx(OptimizelyOneClientGadget, { refreshInterval: refreshInterval, servicePrefix: servicePrefix, show: show, showContentRecs: productStatus.contentRecsApi, showDataPlatform: productStatus.dataPlatform, showWebEx: productStatus.webExperimentation }) }));
11
+ return (_jsx(OptimizelyOneClientGadget, { refreshInterval: refreshInterval, servicePrefix: servicePrefix, show: show, showContentRecs: productStatus.contentRecsApi, showDataPlatform: productStatus.dataPlatform, showWebEx: productStatus.webExperimentation }));
13
12
  }
14
13
  if (OptimizelyDebug)
15
14
  console.log(`🚀 [OptimizelyOne Gadget] Gadget disabled by ${show === undefined ? 'configuration' : 'parameter'}`);
16
15
  return null;
17
16
  };
18
17
  export default OptimizelyOneGadget;
19
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=optimizely-one-gadget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizely-one-gadget.js","sourceRoot":"","sources":["../../src/server-components/optimizely-one-gadget.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,aAAa,CAAA;AAEpB,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,+CAA+C,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAE7I,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,eAAe,GAAG,CAAC,EACnB,aAAa,GAAG,SAAS,EACzB,IAAI,GACqB,EAAE,EAAE;IAC7B,MAAM,aAAa,GAAG,SAAS,EAAE,CAAA;IACjC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,aAAa,CAAA;IACxD,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAEvD,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,EAAE,CAAC;QAClD,OAAO,CACL,KAAC,yBAAyB,IACxB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,aAAa,CAAC,cAAc,EAC7C,gBAAgB,EAAE,aAAa,CAAC,YAAY,EAC5C,SAAS,EAAE,aAAa,CAAC,kBAAkB,GAC3C,CACH,CAAA;IACH,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,GAAG,CACT,gDAAgD,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CACrG,CAAA;IACH,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,eAAe,mBAAmB,CAAA"}