@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
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+ import { useState, useEffect } from 'react';
3
+ export function useLocalState(localStorageKey, initialState) {
4
+ const [internalState, setInternalState] = useState(initialState);
5
+ // Everytime the localstoragekey changes, we'll update the
6
+ // state from local storage. Also we'll register event handlers
7
+ // to ensure state consistency across windows
8
+ useEffect(() => {
9
+ function updateFromLocalStorage() {
10
+ const localStorageValue = window.localStorage.getItem(localStorageKey);
11
+ if (!localStorageValue)
12
+ return;
13
+ const parsedValue = tryParseJson(localStorageValue);
14
+ setInternalState(parsedValue);
15
+ }
16
+ function eventHandler(e) {
17
+ if (e.storageArea === window.localStorage && e.key === localStorageKey) {
18
+ updateFromLocalStorage();
19
+ }
20
+ }
21
+ updateFromLocalStorage();
22
+ window.addEventListener('storage', eventHandler);
23
+ return () => {
24
+ window.removeEventListener('storage', eventHandler);
25
+ };
26
+ }, [localStorageKey]);
27
+ // Every time the internal state, or storage key changes, we'll
28
+ // write to localstorage
29
+ useEffect(() => {
30
+ window.localStorage.setItem(localStorageKey, JSON.stringify(internalState));
31
+ }, [internalState, localStorageKey]);
32
+ return [internalState, setInternalState];
33
+ }
34
+ /**
35
+ * Parses a JSON string and returns the decoded value.
36
+ *
37
+ * If the input is already a non-string value, it is returned as-is.
38
+ *
39
+ * @typeParam R The expected return type.
40
+ * @param input The value to parse.
41
+ * @param reviver The reviver passed to `JSON.parse()`.
42
+ * @returns The parsed value, the original non-string input, or `undefined` when parsing fails.
43
+ */
44
+ export function tryParseJson(input, reviver) {
45
+ try {
46
+ if (input && typeof (input) === "string")
47
+ return JSON.parse(input, reviver);
48
+ return input;
49
+ }
50
+ catch {
51
+ // Ignored on purpose
52
+ }
53
+ return undefined;
54
+ }
55
+ //# sourceMappingURL=use-local-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-local-state.js","sourceRoot":"","sources":["../../src/components/use-local-state.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAsC,MAAM,OAAO,CAAA;AAc/E,MAAM,UAAU,aAAa,CAAI,eAAuB,EAAE,YAA4B;IAEpF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,YAAY,CAAC,CAAC;IAEhF,2DAA2D;IAC3D,+DAA+D;IAC/D,6CAA6C;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,sBAAsB;YAC7B,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACvE,IAAI,CAAC,iBAAiB;gBACpB,OAAO;YACT,MAAM,WAAW,GAAG,YAAY,CAAI,iBAAiB,CAAC,CAAC;YACvD,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAED,SAAS,YAAY,CAAC,CAAe;YACnC,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;gBACvE,sBAAsB,EAAE,CAAA;YAC1B,CAAC;QACH,CAAC;QAED,sBAAsB,EAAE,CAAC;QACzB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAE,eAAe,CAAE,CAAC,CAAC;IAExB,+DAA+D;IAC/D,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC7E,CAAC,EAAE,CAAE,aAAa,EAAE,eAAe,CAAE,CAAC,CAAA;IAEtC,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;AAC1C,CAAC;AAGD;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAc,KAAyB,EAAE,OAAiE;IACpI,IAAI,CAAC;QACH,IAAI,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ;YACrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAM,CAAA;QACxC,OAAO,KAAU,CAAA;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -47,11 +47,11 @@ function getCookieName(host) {
47
47
  return 'optly_test';
48
48
  const reservedDomains = ['vercel'];
49
49
  try {
50
- var hostParts = host.split('.');
50
+ let hostParts = host.split('.');
51
51
  if (hostParts.length > 1) {
52
52
  hostParts = hostParts.slice(0, -1);
53
53
  if (hostParts.length > 1) {
54
- var domain = hostParts.pop();
54
+ const domain = hostParts.pop();
55
55
  if (!reservedDomains.includes(domain)) {
56
56
  hostParts = [domain];
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-test-mode.js","sourceRoot":"","sources":["../../src/components/use-test-mode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-test-mode.js","sourceRoot":"","sources":["../../src/components/use-test-mode.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEpD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,kBAA0B,GAAG;IAE3D,sBAAsB;IACtB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAElE,wEAAwE;IACxE,8CAA8C;IAC9C,MAAM,IAAI,GAAwB,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACvI,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAE,IAAI,CAAE,CAAC,CAAA;IAE/D,mDAAmD;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,kBAAkB;YAEzB,IAAI,SAAS,EAAE,CAAC;gBAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAClD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,cAAe,UAAW,yBAAyB,CAAC,EAAE,GAAG,EAAE,CAAA;gBAC5F,MAAM,cAAc,GAAG,WAAW,IAAI,MAAM,CAAA;gBAC5C,gBAAgB,CAAC,cAAc,CAAC,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QAED,kBAAkB,EAAE,CAAA;QACpB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,EAAE,eAAe,CAAC,CAAA;QAE3E,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC,CAAA;IAEH,CAAC,EAAE,CAAE,UAAU,EAAE,eAAe,EAAE,SAAS,CAAE,CAAC,CAAA;IAC9C,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAElC,IAAI,CAAC,IAAI;QACP,OAAO,YAAY,CAAA;IACrB,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,CAAC;QACH,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAY,CAAA;gBACxC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtC,SAAS,GAAG,CAAE,MAAM,CAAE,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAU,SAAS,CAAC,IAAI,CAAC,GAAG,CAAE,OAAO,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAA2B,EAAK;IAEhD,IAAI,CAAC;QACH,OAAO,EAAE,EAA+B,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,eAAe,eAAe,CAAA"}
package/dist/config.d.ts CHANGED
@@ -1,3 +1,50 @@
1
+ /**
2
+ * Load Optimizely One configuration from environment variables.
3
+ *
4
+ * Reads environment variables using the `EnvVars` map and returns a typed
5
+ * configuration object containing all Optimizely One service parameters.
6
+ *
7
+ * This function is called automatically by `getEnabledProducts()` if a custom
8
+ * config is not provided.
9
+ *
10
+ * **Configuration properties:**
11
+ *
12
+ * - `RuntimeEnv`: Node runtime environment (defaults to `'production'`)
13
+ * - `OdpApiKey`: API key for Optimizely Data Platform
14
+ * - `OdpService`: ODP service endpoint URL (defaults to `https://api.zaius.com/`)
15
+ * - `OdpAudienceBatchSize`: Batch size for ODP audience queries (defaults to `25`)
16
+ * - `HelperEnabled`: Enable/disable Optimizely One integration (defaults to `false`)
17
+ * - `ContentRecsClient`: Content Recommendations client identifier
18
+ * - `ContentRecsDelivery`: Content Recommendations delivery method (defaults to `0`)
19
+ * - `ContentRecsDeliveryKey`: API key for Content Recommendations
20
+ * - `ContentRecsHost`: Content Recommendations host (defaults to `"idio.co"`)
21
+ * - `FrontendCookie`: Cookie name for visitor ID (defaults to `"visitorId"`)
22
+ * - `WebExperimentationProject`: Project ID for Web Experimentation
23
+ * - `OptimizelyDebug`: Enable debug logging for Optimizely (defaults to `false`)
24
+ *
25
+ * @returns Configuration object with type `OptiOneConfig`.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * import { readConfigFromEnv } from '@remkoj/optimizely-one-nextjs'
30
+ *
31
+ * const config = readConfigFromEnv()
32
+ * console.log('ODP API Key:', config.OdpApiKey)
33
+ * console.log('Runtime Environment:', config.RuntimeEnv)
34
+ * ```
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * // Use for conditional initialization
39
+ * import { readConfigFromEnv, checkProductStatus } from '@remkoj/optimizely-one-nextjs'
40
+ *
41
+ * const config = readConfigFromEnv()
42
+ * const productStatus = checkProductStatus(config)
43
+ * if (productStatus.dataPlatform) {
44
+ * initializeODP(config.OdpApiKey, config.OdpService)
45
+ * }
46
+ * ```
47
+ */
1
48
  export declare function readConfigFromEnv(): {
2
49
  RuntimeEnv: string;
3
50
  OdpApiKey: string | undefined;
@@ -11,12 +58,84 @@ export declare function readConfigFromEnv(): {
11
58
  FrontendCookie: string;
12
59
  WebExperimentationProject: string | undefined;
13
60
  OptimizelyDebug: boolean;
61
+ FeatureExperimentationProject: string | undefined;
62
+ FeatureExperimentationSdkKey: string | undefined;
63
+ FeatureExperimentationToken: string | undefined;
14
64
  };
65
+ /**
66
+ * Evaluate product enablement status based on configuration.
67
+ *
68
+ * Checks the provided configuration object to determine which Optimizely One
69
+ * products are properly configured and available for use. Each product has
70
+ * specific configuration requirements:
71
+ *
72
+ * **Activation criteria:**
73
+ *
74
+ * - `dataPlatform`: `OdpApiKey` must be a string with >8 characters
75
+ * - `contentRecsClient`: Both `ContentRecsClient` AND `ContentRecsDelivery` must be set
76
+ * - `contentRecsApi`: Both `ContentRecsClient` AND `ContentRecsDeliveryKey` must be set
77
+ * - `webExperimentation`: `WebExperimentationProject` must be a string with >5 characters
78
+ *
79
+ * @param config - Optional partial configuration object.
80
+ * If not provided, configuration is read from environment variables.
81
+ * @returns An object with boolean status for each product:
82
+ * - `dataPlatform: boolean`
83
+ * - `contentRecsClient: boolean`
84
+ * - `contentRecsApi: boolean`
85
+ * - `webExperimentation: boolean`
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * import { checkProductStatus, readConfigFromEnv } from '@remkoj/optimizely-one-nextjs'
90
+ *
91
+ * const config = readConfigFromEnv()
92
+ * const status = checkProductStatus(config)
93
+ *
94
+ * Object.entries(status).forEach(([product, isEnabled]) => {
95
+ * console.log(`${product}: ${isEnabled ? 'enabled' : 'disabled'}`)
96
+ * })
97
+ * ```
98
+ *
99
+ * @example
100
+ * ```tsx
101
+ * import { checkProductStatus } from '@remkoj/optimizely-one-nextjs'
102
+ *
103
+ * // Check with custom configuration
104
+ * const customConfig = {
105
+ * OdpApiKey: 'my-api-key-12345678',
106
+ * WebExperimentationProject: 'campaign-123456',
107
+ * ContentRecsClient: 'my-client',
108
+ * ContentRecsDeliveryKey: 'content-key'
109
+ * }
110
+ * const productStatus = checkProductStatus(customConfig)
111
+ * ```
112
+ */
15
113
  export declare function checkProductStatus(config?: Partial<OptiOneConfig>): {
16
114
  dataPlatform: boolean;
17
115
  contentRecsClient: boolean;
18
116
  contentRecsApi: boolean;
19
117
  webExperimentation: boolean;
118
+ featureExperimentation: boolean;
20
119
  };
120
+ /**
121
+ * Complete Optimizely One configuration object.
122
+ *
123
+ * This is the return type of `readConfigFromEnv()` and represents all
124
+ * configuration parameters available for Optimizely One services.
125
+ *
126
+ * Contains settings for:
127
+ * - ODP (Data Platform)
128
+ * - Content Recommendations
129
+ * - Web Experimentation
130
+ * - General platform options
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * import type { OptiOneConfig } from '@remkoj/optimizely-one-nextjs'
135
+ * import { readConfigFromEnv } from '@remkoj/optimizely-one-nextjs'
136
+ *
137
+ * const config: OptiOneConfig = readConfigFromEnv()
138
+ * ```
139
+ */
21
140
  export type OptiOneConfig = ReturnType<typeof readConfigFromEnv>;
22
141
  export default readConfigFromEnv;
package/dist/config.js CHANGED
@@ -1,5 +1,52 @@
1
1
  import { readValue, readValueAsBoolean, readValueAsInt } from "./utils/env";
2
2
  import EnvVars from "./env-vars";
3
+ /**
4
+ * Load Optimizely One configuration from environment variables.
5
+ *
6
+ * Reads environment variables using the `EnvVars` map and returns a typed
7
+ * configuration object containing all Optimizely One service parameters.
8
+ *
9
+ * This function is called automatically by `getEnabledProducts()` if a custom
10
+ * config is not provided.
11
+ *
12
+ * **Configuration properties:**
13
+ *
14
+ * - `RuntimeEnv`: Node runtime environment (defaults to `'production'`)
15
+ * - `OdpApiKey`: API key for Optimizely Data Platform
16
+ * - `OdpService`: ODP service endpoint URL (defaults to `https://api.zaius.com/`)
17
+ * - `OdpAudienceBatchSize`: Batch size for ODP audience queries (defaults to `25`)
18
+ * - `HelperEnabled`: Enable/disable Optimizely One integration (defaults to `false`)
19
+ * - `ContentRecsClient`: Content Recommendations client identifier
20
+ * - `ContentRecsDelivery`: Content Recommendations delivery method (defaults to `0`)
21
+ * - `ContentRecsDeliveryKey`: API key for Content Recommendations
22
+ * - `ContentRecsHost`: Content Recommendations host (defaults to `"idio.co"`)
23
+ * - `FrontendCookie`: Cookie name for visitor ID (defaults to `"visitorId"`)
24
+ * - `WebExperimentationProject`: Project ID for Web Experimentation
25
+ * - `OptimizelyDebug`: Enable debug logging for Optimizely (defaults to `false`)
26
+ *
27
+ * @returns Configuration object with type `OptiOneConfig`.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * import { readConfigFromEnv } from '@remkoj/optimizely-one-nextjs'
32
+ *
33
+ * const config = readConfigFromEnv()
34
+ * console.log('ODP API Key:', config.OdpApiKey)
35
+ * console.log('Runtime Environment:', config.RuntimeEnv)
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * // Use for conditional initialization
41
+ * import { readConfigFromEnv, checkProductStatus } from '@remkoj/optimizely-one-nextjs'
42
+ *
43
+ * const config = readConfigFromEnv()
44
+ * const productStatus = checkProductStatus(config)
45
+ * if (productStatus.dataPlatform) {
46
+ * initializeODP(config.OdpApiKey, config.OdpService)
47
+ * }
48
+ * ```
49
+ */
3
50
  export function readConfigFromEnv() {
4
51
  return {
5
52
  RuntimeEnv: readValue('NODE_ENV', 'production'),
@@ -13,16 +60,68 @@ export function readConfigFromEnv() {
13
60
  ContentRecsHost: readValue(EnvVars.ContentRecsHost, "idio.co"),
14
61
  FrontendCookie: readValue(EnvVars.FrontendCookie, "visitorId"),
15
62
  WebExperimentationProject: readValue(EnvVars.WebExperimentationProject),
16
- OptimizelyDebug: readValueAsBoolean(EnvVars.OptimizelyDebug, false)
63
+ OptimizelyDebug: readValueAsBoolean(EnvVars.OptimizelyDebug, false),
64
+ FeatureExperimentationProject: readValue(EnvVars.FeatureExperimentationProject),
65
+ FeatureExperimentationSdkKey: readValue(EnvVars.FeatureExperimentationSdkKey),
66
+ FeatureExperimentationToken: readValue(EnvVars.FeatureExperimentationPat)
17
67
  };
18
68
  }
69
+ /**
70
+ * Evaluate product enablement status based on configuration.
71
+ *
72
+ * Checks the provided configuration object to determine which Optimizely One
73
+ * products are properly configured and available for use. Each product has
74
+ * specific configuration requirements:
75
+ *
76
+ * **Activation criteria:**
77
+ *
78
+ * - `dataPlatform`: `OdpApiKey` must be a string with >8 characters
79
+ * - `contentRecsClient`: Both `ContentRecsClient` AND `ContentRecsDelivery` must be set
80
+ * - `contentRecsApi`: Both `ContentRecsClient` AND `ContentRecsDeliveryKey` must be set
81
+ * - `webExperimentation`: `WebExperimentationProject` must be a string with >5 characters
82
+ *
83
+ * @param config - Optional partial configuration object.
84
+ * If not provided, configuration is read from environment variables.
85
+ * @returns An object with boolean status for each product:
86
+ * - `dataPlatform: boolean`
87
+ * - `contentRecsClient: boolean`
88
+ * - `contentRecsApi: boolean`
89
+ * - `webExperimentation: boolean`
90
+ *
91
+ * @example
92
+ * ```tsx
93
+ * import { checkProductStatus, readConfigFromEnv } from '@remkoj/optimizely-one-nextjs'
94
+ *
95
+ * const config = readConfigFromEnv()
96
+ * const status = checkProductStatus(config)
97
+ *
98
+ * Object.entries(status).forEach(([product, isEnabled]) => {
99
+ * console.log(`${product}: ${isEnabled ? 'enabled' : 'disabled'}`)
100
+ * })
101
+ * ```
102
+ *
103
+ * @example
104
+ * ```tsx
105
+ * import { checkProductStatus } from '@remkoj/optimizely-one-nextjs'
106
+ *
107
+ * // Check with custom configuration
108
+ * const customConfig = {
109
+ * OdpApiKey: 'my-api-key-12345678',
110
+ * WebExperimentationProject: 'campaign-123456',
111
+ * ContentRecsClient: 'my-client',
112
+ * ContentRecsDeliveryKey: 'content-key'
113
+ * }
114
+ * const productStatus = checkProductStatus(customConfig)
115
+ * ```
116
+ */
19
117
  export function checkProductStatus(config) {
20
118
  const appConfig = config ?? readConfigFromEnv();
21
119
  return {
22
120
  dataPlatform: typeof (appConfig.OdpApiKey) == 'string' && appConfig.OdpApiKey.length > 8,
23
121
  contentRecsClient: appConfig.ContentRecsClient && appConfig.ContentRecsDelivery ? true : false,
24
122
  contentRecsApi: appConfig.ContentRecsClient && appConfig.ContentRecsDeliveryKey ? true : false,
25
- webExperimentation: typeof (appConfig.WebExperimentationProject) == 'string' && appConfig.WebExperimentationProject.length > 5
123
+ webExperimentation: typeof (appConfig.WebExperimentationProject) == 'string' && appConfig.WebExperimentationProject.length > 5,
124
+ featureExperimentation: typeof (appConfig.FeatureExperimentationSdkKey) == 'string' && appConfig.FeatureExperimentationSdkKey.length > 5
26
125
  };
27
126
  }
28
127
  export default readConfigFromEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,OAAO,MAAM,YAAY,CAAA;AAEhC,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;QAC/C,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC;QACnE,oBAAoB,EAAE,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACtE,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;QAC/D,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACnE,sBAAsB,EAAE,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACjE,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC;QAC9D,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;QAC9D,yBAAyB,EAAE,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC;QACvE,eAAe,EAAE,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;KACpE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA+B;IAMhE,MAAM,SAAS,GAA2B,MAAM,IAAI,iBAAiB,EAAE,CAAA;IACvE,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACxF,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC9F,cAAc,EAAE,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC9F,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC;KAC/H,CAAA;AACH,CAAC;AAID,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,OAAO,MAAM,YAAY,CAAA;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;QAC/C,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC;QACnE,oBAAoB,EAAE,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACtE,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;QAC/D,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACnE,sBAAsB,EAAE,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACjE,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC;QAC9D,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;QAC9D,yBAAyB,EAAE,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC;QACvE,eAAe,EAAE,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;QACnE,6BAA6B,EAAE,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAC/E,4BAA4B,EAAE,SAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC;QAC7E,2BAA2B,EAAE,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC;KAC1E,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA+B;IAOhE,MAAM,SAAS,GAA2B,MAAM,IAAI,iBAAiB,EAAE,CAAA;IACvE,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACxF,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC9F,cAAc,EAAE,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC9F,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC;QAC9H,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,4BAA4B,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC;KACzI,CAAA;AACH,CAAC;AAwBD,eAAe,iBAAiB,CAAA"}
@@ -9,6 +9,9 @@ export declare const enum EnvVars {
9
9
  ContentRecsHost = "OPTIMIZELY_CONTENTRECS_DOMAIN",
10
10
  FrontendCookie = "OPTIMIZELY_FRONTEND_COOKIE",
11
11
  WebExperimentationProject = "OPTIMIZELY_WEB_EXPERIMENTATION_PROJECT",
12
+ FeatureExperimentationSdkKey = "OPTIMIZELY_FX_SDKKEY",
13
+ FeatureExperimentationProject = "OPTIMIZELY_FX_PROJECT",
14
+ FeatureExperimentationPat = "OPTIMIZELY_FX_PAT",
12
15
  OptimizelyDebug = "OPTIMIZELY_DEBUG"
13
16
  }
14
17
  export default EnvVars;
package/dist/env-vars.js CHANGED
@@ -10,6 +10,9 @@ export var EnvVars;
10
10
  EnvVars["ContentRecsHost"] = "OPTIMIZELY_CONTENTRECS_DOMAIN";
11
11
  EnvVars["FrontendCookie"] = "OPTIMIZELY_FRONTEND_COOKIE";
12
12
  EnvVars["WebExperimentationProject"] = "OPTIMIZELY_WEB_EXPERIMENTATION_PROJECT";
13
+ EnvVars["FeatureExperimentationSdkKey"] = "OPTIMIZELY_FX_SDKKEY";
14
+ EnvVars["FeatureExperimentationProject"] = "OPTIMIZELY_FX_PROJECT";
15
+ EnvVars["FeatureExperimentationPat"] = "OPTIMIZELY_FX_PAT";
13
16
  EnvVars["OptimizelyDebug"] = "OPTIMIZELY_DEBUG";
14
17
  })(EnvVars || (EnvVars = {}));
15
18
  export default EnvVars;
@@ -1 +1 @@
1
- {"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../src/env-vars.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAkB,OAYjB;AAZD,WAAkB,OAAO;IACvB,mDAAwC,CAAA;IACxC,0DAA+C,CAAA;IAC/C,sEAA2D,CAAA;IAC3D,kDAAuC,CAAA;IACvC,8DAAmD,CAAA;IACnD,kEAAuD,CAAA;IACvD,yEAA8D,CAAA;IAC9D,4DAAiD,CAAA;IACjD,wDAA6C,CAAA;IAC7C,+EAAoE,CAAA;IACpE,+CAAoC,CAAA;AACtC,CAAC,EAZiB,OAAO,KAAP,OAAO,QAYxB;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../src/env-vars.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAkB,OAejB;AAfD,WAAkB,OAAO;IACvB,mDAAwC,CAAA;IACxC,0DAA+C,CAAA;IAC/C,sEAA2D,CAAA;IAC3D,kDAAuC,CAAA;IACvC,8DAAmD,CAAA;IACnD,kEAAuD,CAAA;IACvD,yEAA8D,CAAA;IAC9D,4DAAiD,CAAA;IACjD,wDAA6C,CAAA;IAC7C,+EAAoE,CAAA;IACpE,gEAAqD,CAAA;IACrD,kEAAuD,CAAA;IACvD,0DAA+C,CAAA;IAC/C,+CAAoC,CAAA;AACtC,CAAC,EAfiB,OAAO,KAAP,OAAO,QAexB;AAED,eAAe,OAAO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/products/content-recs/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/products/content-recs/api.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,19 @@
1
1
  import * as ClientApi from '../../client-types';
2
- export declare class ContentRecsService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyContentRecsApi> {
2
+ import * as GlobalClientTypes from '../../components/types';
3
+ export declare class ContentRecsService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyContentRecsApi, 'crecs'> {
4
+ private _apiEnabled;
5
+ private _clientEnabled;
6
+ constructor(enabledServices?: Array<GlobalClientTypes.SupportedProductNames>);
7
+ get isApiEnabled(): boolean;
8
+ get isClientEnabled(): boolean;
3
9
  order: Readonly<number>;
4
- code: Readonly<string>;
10
+ code: Readonly<'crecs'>;
5
11
  debug: boolean;
6
12
  endpoint: string;
7
13
  get isActive(): boolean;
8
14
  trackPage(): void;
15
+ trackEvent(event: ClientApi.OptimizelyOneEvent): void;
9
16
  getBrowserApi(): ClientApi.OptimizelyContentRecsApi | undefined;
10
- discoverProfileData(signal?: AbortSignal | null): Promise<ClientApi.OptimizelyOneProfileData>;
17
+ discoverProfileData(signal?: AbortSignal | null): Promise<Partial<ClientApi.OptimizelyOneProfileData>>;
11
18
  }
12
19
  export default ContentRecsService;
@@ -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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"}
@@ -50,34 +50,34 @@ export type ContentRecsItemPlaceholder = FunctionComponent;
50
50
  export declare const ContentRecsDelivery: FunctionComponent<ContentRecsDeliveryProps>;
51
51
  export type ContentRecsDeliveryProps = {
52
52
  /**
53
- * The API Key of the web delivery used for these recommendations. This is
54
- * shown as the value for "data-api-key" within the Content Recs delivery
55
- * instructions
56
- */
53
+ * The API Key of the web delivery used for these recommendations. This is
54
+ * shown as the value for "data-api-key" within the Content Recs delivery
55
+ * instructions
56
+ */
57
57
  apiKey: string;
58
58
  /**
59
- * The CSS Classes tot apply to the container, in addition to the
60
- * "idio-recommendations" CSS Class
61
- */
59
+ * The CSS Classes tot apply to the container, in addition to the
60
+ * "idio-recommendations" CSS Class
61
+ */
62
62
  className?: string;
63
63
  /**
64
- * The item template to be used to render an individual item
65
- */
64
+ * The item template to be used to render an individual item
65
+ */
66
66
  template: ContentRecsItem;
67
67
  /**
68
- * The component to show for each recommendation slot whilest the actual
69
- * recommendations are still loading
70
- */
68
+ * The component to show for each recommendation slot whilest the actual
69
+ * recommendations are still loading
70
+ */
71
71
  placeholder?: ContentRecsItemPlaceholder;
72
72
  /**
73
- * The number of recommendations to fetch and render, defaults to 10
74
- */
73
+ * The number of recommendations to fetch and render, defaults to 10
74
+ */
75
75
  count?: number;
76
76
  /**
77
- * Set the endpoint to be used for the Content Recommendations API, this
78
- * defaults to the proxy included in the Optimizely One Package. It assumes
79
- * the default prefix of /api/me to be used.
80
- */
77
+ * Set the endpoint to be used for the Content Recommendations API, this
78
+ * defaults to the proxy included in the Optimizely One Package. It assumes
79
+ * the default prefix of /api/me to be used.
80
+ */
81
81
  endpoint?: string;
82
82
  };
83
83
  export default ContentRecsDelivery;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/products/content-recs/delivery.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/products/content-recs/delivery.tsx"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ export type OptimizelyContentRecsProps = {
3
3
  delivery: number;
4
4
  domain?: string;
5
5
  };
6
- export declare const OptimizelyContentRecsTrackingScript: ({ client: client_id, delivery: delivery_id, domain }: OptimizelyContentRecsProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const OptimizelyContentRecsTrackingScript: ({ client: client_id, delivery: delivery_id, domain }: OptimizelyContentRecsProps) => import("react").JSX.Element;
7
7
  export default OptimizelyContentRecsTrackingScript;
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx } 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 OptimizelyContentRecsTrackingScript = ({ client: client_id, delivery: delivery_id, domain = 'idio.co' }) => {
5
4
  return _jsx(Script, { id: 'content-recs-script', strategy: 'beforeInteractive', children: `
@@ -1 +1 @@
1
- {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/content-recs/snippet.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAQhC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,EAChD,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAG,SAAS,EACO,EAAE,EAAE;IAE7B,OAAO,KAAC,MAAM,IAAC,EAAE,EAAC,qBAAqB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;qBAGpD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAE;uBACxB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAE;;;;;;;;sBAQ7B,MAAO;;;;CAI7B,GACQ,CAAA;AACT,CAAC,CAAA;AAED,eAAe,mCAAmC,CAAA"}
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/content-recs/snippet.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAQhC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,EAClD,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAG,SAAS,EACS,EAAE,EAAE;IAE/B,OAAO,KAAC,MAAM,IAAC,EAAE,EAAC,qBAAqB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;qBAGlD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAE;uBACxB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAE;;;;;;;;sBAQ7B,MAAO;;;;CAI7B,GACU,CAAA;AACX,CAAC,CAAA;AAED,eAAe,mCAAmC,CAAA"}
@@ -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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiService } from '../../api/types.js';
2
+ export declare const ContentRecsApiService: ApiService<object>;
3
+ export default ContentRecsApiService;