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

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 (94) hide show
  1. package/README.md +5 -1
  2. package/dist/api/index.js +5 -3
  3. package/dist/api/index.js.map +1 -1
  4. package/dist/client-types.d.ts +74 -3
  5. package/dist/client-types.js +5 -1
  6. package/dist/client-types.js.map +1 -1
  7. package/dist/components/context.d.ts +218 -64
  8. package/dist/components/context.js +159 -67
  9. package/dist/components/context.js.map +1 -1
  10. package/dist/components/index.d.ts +1 -0
  11. package/dist/components/optimizely-one-gadget/_notice.js +1 -0
  12. package/dist/components/optimizely-one-gadget/_notice.js.map +1 -1
  13. package/dist/components/optimizely-one-gadget/audiences-panel.js +1 -0
  14. package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -1
  15. package/dist/components/optimizely-one-gadget/exp-panel.js +1 -0
  16. package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -1
  17. package/dist/components/optimizely-one-gadget/gadget.js +24 -16
  18. package/dist/components/optimizely-one-gadget/gadget.js.map +1 -1
  19. package/dist/components/optimizely-one-gadget/goals-panel.js +1 -0
  20. package/dist/components/optimizely-one-gadget/goals-panel.js.map +1 -1
  21. package/dist/components/optimizely-one-gadget/graph-panel.js +1 -0
  22. package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -1
  23. package/dist/components/optimizely-one-gadget/interests-panel.js +1 -0
  24. package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -1
  25. package/dist/components/optimizely-one-gadget/logo.js +1 -0
  26. package/dist/components/optimizely-one-gadget/logo.js.map +1 -1
  27. package/dist/components/optimizely-one-gadget/profile-panel.js +1 -0
  28. package/dist/components/optimizely-one-gadget/profile-panel.js.map +1 -1
  29. package/dist/components/page-activator.js +12 -31
  30. package/dist/components/page-activator.js.map +1 -1
  31. package/dist/components/service-filters.d.ts +46 -0
  32. package/dist/components/service-filters.js +56 -0
  33. package/dist/components/service-filters.js.map +1 -0
  34. package/dist/components/types.d.ts +2 -0
  35. package/dist/components/types.js +2 -0
  36. package/dist/components/types.js.map +1 -0
  37. package/dist/components/use-local-state.d.ts +24 -0
  38. package/dist/components/use-local-state.js +55 -0
  39. package/dist/components/use-local-state.js.map +1 -0
  40. package/dist/config.d.ts +119 -0
  41. package/dist/config.js +101 -2
  42. package/dist/config.js.map +1 -1
  43. package/dist/env-vars.d.ts +3 -0
  44. package/dist/env-vars.js +3 -0
  45. package/dist/env-vars.js.map +1 -1
  46. package/dist/products/content-recs/client.d.ts +10 -3
  47. package/dist/products/content-recs/client.js +38 -2
  48. package/dist/products/content-recs/client.js.map +1 -1
  49. package/dist/{api/content-goals.d.ts → products/content-recs/webservice-goals.d.ts} +1 -1
  50. package/dist/{api/content-goals.js → products/content-recs/webservice-goals.js} +4 -4
  51. package/dist/products/content-recs/webservice-goals.js.map +1 -0
  52. package/dist/{api/content-recs.d.ts → products/content-recs/webservice.d.ts} +1 -1
  53. package/dist/{api/content-recs.js → products/content-recs/webservice.js} +13 -12
  54. package/dist/products/content-recs/webservice.js.map +1 -0
  55. package/dist/products/data-platform/client.d.ts +11 -2
  56. package/dist/products/data-platform/client.js +52 -9
  57. package/dist/products/data-platform/client.js.map +1 -1
  58. package/dist/products/data-platform/snippet.js +3 -3
  59. package/dist/products/data-platform/snippet.js.map +1 -1
  60. package/dist/products/feature-experimentation/provider.d.ts +7 -0
  61. package/dist/products/feature-experimentation/provider.js +32 -0
  62. package/dist/products/feature-experimentation/provider.js.map +1 -0
  63. package/dist/products/web-experimentation/client.d.ts +5 -2
  64. package/dist/products/web-experimentation/client.js +21 -7
  65. package/dist/products/web-experimentation/client.js.map +1 -1
  66. package/dist/products/web-experimentation/snippet.js +2 -2
  67. package/dist/products/web-experimentation/snippet.js.map +1 -1
  68. package/dist/{api/experimentation-api.d.ts → products/web-experimentation/webservice.d.ts} +1 -1
  69. package/dist/{api/experimentation-api.js → products/web-experimentation/webservice.js} +2 -2
  70. package/dist/products/web-experimentation/webservice.js.map +1 -0
  71. package/dist/server-components/index.d.ts +3 -0
  72. package/dist/server-components/index.js +3 -0
  73. package/dist/server-components/index.js.map +1 -1
  74. package/dist/{components/optimizely-one-gadget/index.d.ts → server-components/optimizely-one-gadget.d.ts} +1 -1
  75. package/dist/{components/optimizely-one-gadget/index.js → server-components/optimizely-one-gadget.js} +4 -5
  76. package/dist/server-components/optimizely-one-gadget.js.map +1 -0
  77. package/dist/server-components/optimizely-one.d.ts +219 -0
  78. package/dist/server-components/optimizely-one.js +112 -0
  79. package/dist/server-components/optimizely-one.js.map +1 -0
  80. package/dist/server.d.ts +1 -2
  81. package/dist/server.js +1 -6
  82. package/dist/server.js.map +1 -1
  83. package/dist/styles.css +2 -2
  84. package/dist/utils/products.d.ts +92 -0
  85. package/dist/utils/products.js +84 -0
  86. package/dist/utils/products.js.map +1 -0
  87. package/package.json +20 -25
  88. package/dist/api/content-goals.js.map +0 -1
  89. package/dist/api/content-recs.js.map +0 -1
  90. package/dist/api/experimentation-api.js.map +0 -1
  91. package/dist/components/optimizely-one-gadget/index.js.map +0 -1
  92. package/dist/components/rsc.d.ts +0 -2
  93. package/dist/components/rsc.js +0 -3
  94. package/dist/components/rsc.js.map +0 -1
@@ -1,13 +1,33 @@
1
1
  'use client';
2
2
  export class ContentRecsService {
3
+ _apiEnabled = true;
4
+ _clientEnabled = true;
5
+ constructor(enabledServices) {
6
+ if (enabledServices) {
7
+ this._apiEnabled = enabledServices.includes("contentRecsApi");
8
+ this._clientEnabled = enabledServices.includes("contentRecsClient");
9
+ }
10
+ else {
11
+ this._apiEnabled = false;
12
+ this._clientEnabled = false;
13
+ }
14
+ }
15
+ get isApiEnabled() {
16
+ return this._apiEnabled;
17
+ }
18
+ get isClientEnabled() {
19
+ return this._clientEnabled;
20
+ }
3
21
  order = 300;
4
- code = "crecs";
22
+ code = 'crecs';
5
23
  debug = false;
6
24
  endpoint = "/api/me/cgoals";
7
25
  get isActive() {
8
- return this.getBrowserApi() != undefined;
26
+ return this._apiEnabled || this._clientEnabled;
9
27
  }
10
28
  trackPage() {
29
+ if (!this._clientEnabled)
30
+ return;
11
31
  const idio = this.getBrowserApi();
12
32
  if (!idio)
13
33
  return;
@@ -15,8 +35,22 @@ export class ContentRecsService {
15
35
  console.log("Content Recommendations / Analytics - Tracking page view");
16
36
  idio.push(['track', 'consume']);
17
37
  }
38
+ trackEvent(event) {
39
+ const idio = this.getBrowserApi();
40
+ if (!idio)
41
+ return; // We're disabled so, stop here
42
+ const goalName = [event.event, event.action].filter(x => x).join('-');
43
+ if (!goalName || goalName.length == 0)
44
+ return; // Only track if we've a goal
45
+ if (this.debug)
46
+ console.log("Content Recommendations / Analytics - Tracking goal: " + goalName);
47
+ idio.push(['goal', goalName]);
48
+ idio.push(['track', 'convert']);
49
+ }
18
50
  getBrowserApi() {
19
51
  try {
52
+ if (!this._clientEnabled)
53
+ return undefined;
20
54
  if (!window._iaq)
21
55
  window._iaq = [];
22
56
  return window._iaq;
@@ -26,6 +60,8 @@ export class ContentRecsService {
26
60
  }
27
61
  }
28
62
  async discoverProfileData(signal) {
63
+ if (!this._apiEnabled)
64
+ return {};
29
65
  const nbg = await fetch(this.endpoint, { cache: 'no-store', signal }).then(r => r.ok ? r.json() : undefined);
30
66
  return {
31
67
  custom: {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/content-recs/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,kBAAkB;IAEpB,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,OAAO,CAAA;IACjC,KAAK,GAAa,KAAK,CAAA;IACvB,QAAQ,GAAY,gBAAgB,CAAA;IAC3C,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,SAAS,CAAA;IAC5C,CAAC;IAEM,SAAS;QAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAA;QACvF,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IACnC,CAAC;IAEM,aAAa;QAEhB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI;gBACZ,MAAM,CAAC,IAAI,GAAG,EAAqB,CAAA;YACvC,OAAO,MAAM,CAAC,IAAI,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAA;QACpB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,MAA2B;QAExD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAA+D,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACzK,OAAO;YACH,MAAM,EAAE;gBACJ,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;gBACtD,iBAAiB,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACpE;SACJ,CAAA;IACL,CAAC;CACJ;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/content-recs/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ApiService } from './types';
1
+ import type { ApiService } from '../../api/types';
2
2
  export type GoalsReponse = {
3
3
  goals: Array<{
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { ContentRecs } from '../products';
2
- import getConfig, { checkProductStatus } from '../config';
3
- import * as Responses from './responses';
1
+ import * as ContentRecs from './';
2
+ import getConfig, { checkProductStatus } from '../../config';
3
+ import * as Responses from '../../api/responses';
4
4
  export const ContentRecsGoalsService = {
5
5
  for: { path: '/cgoals', verb: 'get' },
6
6
  handler: async (query, cookies) => {
@@ -19,4 +19,4 @@ export const ContentRecsGoalsService = {
19
19
  }
20
20
  };
21
21
  export default ContentRecsGoalsService;
22
- //# sourceMappingURL=content-goals.js.map
22
+ //# sourceMappingURL=webservice-goals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webservice-goals.js","sourceRoot":"","sources":["../../../src/products/content-recs/webservice-goals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,IAAI,CAAA;AACjC,OAAO,SAAS,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAgBhD,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC/D,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAA;QAEpD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAA;QAEvD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,IAAI;YACP,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9E,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;CACF,CAAA;AAED,eAAe,uBAAuB,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { ApiService } from './types';
1
+ import type { ApiService } from '../../api/types.js';
2
2
  export declare const ContentRecsApiService: ApiService<any>;
3
3
  export default ContentRecsApiService;
@@ -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,GAAoB;IACpD,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"}
@@ -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,11 +1,11 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* eslint @next/next/no-before-interactive-script-outside-document: 0 */
3
3
  import Script from 'next/script';
4
4
  export const OptimizelyDataPlatformScript = (props) => {
5
5
  const odp_id = props.trackerId.split('.').shift() ?? '';
6
6
  if (odp_id == '')
7
7
  return null;
8
- return _jsx(Script, { id: 'data-platform-script', strategy: 'beforeInteractive', children: `
8
+ return _jsxs(_Fragment, { children: [_jsx(Script, { id: 'data-platform-script', strategy: 'beforeInteractive', children: `
9
9
  var zaius = window['zaius'] || (window['zaius'] = []);
10
10
  zaius.methods = ['initialize', 'onload', 'customer', 'entity', 'event', 'subscribe', 'unsubscribe', 'consent', 'identify', 'anonymize', 'dispatch'];
11
11
 
@@ -33,7 +33,7 @@ export const OptimizelyDataPlatformScript = (props) => {
33
33
  var firstScript = document.getElementsByTagName('script')[0];
34
34
  firstScript.parentNode.insertBefore(script, firstScript);
35
35
  })();
36
- ` });
36
+ ` }), _jsx("link", { rel: "preconnect", href: "https://api.zaius.com" })] });
37
37
  };
38
38
  export default OptimizelyDataPlatformScript;
39
39
  //# 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,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,8BACP,KAAC,MAAM,IAAC,EAAE,EAAC,sBAAsB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;;;;;;;;;;;;;;;;;;;;;gIAwB6D,MAAO;;;;CAIvI,GACQ,EACL,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-runtime").JSX.Element;
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createInstance, OptimizelyProvider } 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(() => createInstance({
8
+ sdkKey,
9
+ datafileOptions: {
10
+ autoUpdate: true,
11
+ updateInterval: 1000 * 60, // Update every minute
12
+ },
13
+ eventBatchSize: 10,
14
+ eventFlushInterval: 1000 * 30, // Flush every 30 seconds
15
+ logLevel: debug ? 'debug' : 'error',
16
+ odpOptions: {
17
+ disabled: false
18
+ }
19
+ }), [sdkKey, debug]);
20
+ const [userId] = useCookie(frontendCookie, `optimizely-one-user-${Math.random().toString(36).substring(2, 15)}`);
21
+ useEffect(() => {
22
+ if (debug || process.env.NODE_ENV === 'development') {
23
+ console.groupCollapsed('🔧 [FeatureExperimentationProvider] Debug mode enabled');
24
+ console.log('🔑 SDK Key:', sdkKey);
25
+ console.log('🍪 Frontend Cookie:', frontendCookie);
26
+ console.log('👤 User ID:', userId);
27
+ console.groupEnd();
28
+ }
29
+ }, [sdkKey, frontendCookie, userId, debug]);
30
+ return (_jsx(OptimizelyProvider, { optimizely: optimizelyClient, user: { id: userId }, children: children }));
31
+ }
32
+ //# 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;;AAEZ,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,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,cAAc,CAAC;QACpD,MAAM;QACN,eAAe,EAAE;YACf,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI,GAAG,EAAE,EAAE,sBAAsB;SAClD;QACD,cAAc,EAAE,EAAE;QAClB,kBAAkB,EAAE,IAAI,GAAG,EAAE,EAAE,yBAAyB;QACxD,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QACnC,UAAU,EAAE;YACV,QAAQ,EAAE,KAAK;SAChB;KACF,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,kBAAkB,IAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,YACnE,QAAQ,GACU,CACtB,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;IAEzB,UAAU,GAAa,IAAI,CAAA;IACnC,YAAY,eAAgE;QACxE,IAAI,eAAe;YACf,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAClE,CAAC;IAEM,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAuB,OAAO,CAAA;IAClC,KAAK,GAAY,KAAK,CAAA;IAC7B,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAEM,YAAY;QAEf,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;IAC5E,CAAC;IAEM,UAAU,CAAC,KAAmC;QAEjD,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;IAC7D,CAAC;IAEM,aAAa;QAEhB,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,SAAS,CAAA;YACtC,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,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;YACP,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,WAAW,CAAC,MAAM;SACjC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,eAAe,wBAAwB,CAAA"}
@@ -4,7 +4,7 @@ import Script from 'next/script';
4
4
  export const OptimizelyWebExperimentationScript = ({ projectId, allowProjectOverride = false, useProxy = false, apiPrefix = '/api/me' }) => {
5
5
  function buildUrl(pid) {
6
6
  return useProxy ?
7
- `${apiPrefix}/exp?pid=${pid}` :
7
+ `${apiPrefix}/exp${allowProjectOverride ? '?pid=' + pid : ''}` :
8
8
  `https://cdn.optimizely.com/js/${pid}.js`;
9
9
  }
10
10
  return _jsxs(_Fragment, { children: [_jsx(Script, { id: 'web-experimentation-startup', strategy: 'beforeInteractive', children: `window["optimizely"] = window["optimizely"] || [];` }), allowProjectOverride ?
@@ -24,7 +24,7 @@ export const OptimizelyWebExperimentationScript = ({ projectId, allowProjectOver
24
24
  s.parentNode.insertBefore(wx,s);
25
25
  })(window,document,localStorage)
26
26
  ` }) :
27
- _jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', src: buildUrl(projectId) })] });
27
+ _jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', src: buildUrl(projectId) }), _jsx("link", { rel: "preconnect", href: "https://logx.optimizely.com/v1/events" })] });
28
28
  };
29
29
  export default OptimizelyWebExperimentationScript;
30
30
  //# 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,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,OAAQ,oBAAoB,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC;YACpE,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,EAExG,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,uCAAuC,GAAG,IACvE,CAAA;AACP,CAAC,CAAA;AAED,eAAe,kCAAkC,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { ApiService } from './types';
1
+ import type { ApiService } from '../../api/types.js';
2
2
  export declare const ExperimentationApiService: ApiService<any>;
3
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,GAAqB;IACvD,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;IAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,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;YACb,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;YAC7E,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,EAAE,GAAG,CAAC,CAAA;QACzE,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,iCAAkC,SAAU,KAAK,EAAE;YACnF,0CAA0C;YAC1C,IAAI,EAAE;gBACF,UAAU,EAAE,GAAG,CAAC,kCAAkC;aACrD;SACJ,CAAC,CAAA;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACtB,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YACjF,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;QACrH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;QAEzC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;IAC3E,CAAC;CACJ,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
3
  export declare const OptimizelyOneGadget: ({ refreshInterval, servicePrefix, show, }: OptimizelyOneGadgetProps) => import("react/jsx-runtime").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"}