@remkoj/optimizely-one-nextjs 1.0.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 (139) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +82 -0
  3. package/dist/api/graph-info-service.d.ts +14 -0
  4. package/dist/api/graph-info-service.js +37 -0
  5. package/dist/api/graph-info-service.js.map +1 -0
  6. package/dist/api/index.d.ts +20 -0
  7. package/dist/api/index.js +42 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/api/profile-api-service.d.ts +21 -0
  10. package/dist/api/profile-api-service.js +80 -0
  11. package/dist/api/profile-api-service.js.map +1 -0
  12. package/dist/api/responses.d.ts +2 -0
  13. package/dist/api/responses.js +2 -0
  14. package/dist/api/responses.js.map +1 -0
  15. package/dist/api/types.d.ts +18 -0
  16. package/dist/api/types.js +2 -0
  17. package/dist/api/types.js.map +1 -0
  18. package/dist/api.d.ts +5 -0
  19. package/dist/api.js +4 -0
  20. package/dist/api.js.map +1 -0
  21. package/dist/client-types.d.ts +133 -0
  22. package/dist/client-types.js +2 -0
  23. package/dist/client-types.js.map +1 -0
  24. package/dist/client.d.ts +3 -0
  25. package/dist/client.js +3 -0
  26. package/dist/client.js.map +1 -0
  27. package/dist/components/context.d.ts +88 -0
  28. package/dist/components/context.js +71 -0
  29. package/dist/components/context.js.map +1 -0
  30. package/dist/components/index.d.ts +4 -0
  31. package/dist/components/index.js +5 -0
  32. package/dist/components/index.js.map +1 -0
  33. package/dist/components/optimizely-one-gadget/audiences-panel.d.ts +7 -0
  34. package/dist/components/optimizely-one-gadget/audiences-panel.js +53 -0
  35. package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -0
  36. package/dist/components/optimizely-one-gadget/exp-panel.d.ts +3 -0
  37. package/dist/components/optimizely-one-gadget/exp-panel.js +42 -0
  38. package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -0
  39. package/dist/components/optimizely-one-gadget/graph-panel.d.ts +7 -0
  40. package/dist/components/optimizely-one-gadget/graph-panel.js +27 -0
  41. package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -0
  42. package/dist/components/optimizely-one-gadget/ids-panel.d.ts +7 -0
  43. package/dist/components/optimizely-one-gadget/ids-panel.js +23 -0
  44. package/dist/components/optimizely-one-gadget/ids-panel.js.map +1 -0
  45. package/dist/components/optimizely-one-gadget/index.d.ts +33 -0
  46. package/dist/components/optimizely-one-gadget/index.js +39 -0
  47. package/dist/components/optimizely-one-gadget/index.js.map +1 -0
  48. package/dist/components/optimizely-one-gadget/interests-panel.d.ts +7 -0
  49. package/dist/components/optimizely-one-gadget/interests-panel.js +23 -0
  50. package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -0
  51. package/dist/components/optimizely-one-gadget/logo.d.ts +6 -0
  52. package/dist/components/optimizely-one-gadget/logo.js +19 -0
  53. package/dist/components/optimizely-one-gadget/logo.js.map +1 -0
  54. package/dist/components/page-activator.d.ts +4 -0
  55. package/dist/components/page-activator.js +32 -0
  56. package/dist/components/page-activator.js.map +1 -0
  57. package/dist/components/use-test-mode.d.ts +11 -0
  58. package/dist/components/use-test-mode.js +81 -0
  59. package/dist/components/use-test-mode.js.map +1 -0
  60. package/dist/env-vars.d.ts +13 -0
  61. package/dist/env-vars.js +15 -0
  62. package/dist/env-vars.js.map +1 -0
  63. package/dist/products/client-types.d.ts +3 -0
  64. package/dist/products/client-types.js +2 -0
  65. package/dist/products/client-types.js.map +1 -0
  66. package/dist/products/content-recs/api.d.ts +19 -0
  67. package/dist/products/content-recs/api.js +42 -0
  68. package/dist/products/content-recs/api.js.map +1 -0
  69. package/dist/products/content-recs/client.d.ts +10 -0
  70. package/dist/products/content-recs/client.js +29 -0
  71. package/dist/products/content-recs/client.js.map +1 -0
  72. package/dist/products/content-recs/helpers.d.ts +20 -0
  73. package/dist/products/content-recs/helpers.js +27 -0
  74. package/dist/products/content-recs/helpers.js.map +1 -0
  75. package/dist/products/content-recs/index.d.ts +2 -0
  76. package/dist/products/content-recs/index.js +3 -0
  77. package/dist/products/content-recs/index.js.map +1 -0
  78. package/dist/products/data-platform/api.d.ts +41 -0
  79. package/dist/products/data-platform/api.js +116 -0
  80. package/dist/products/data-platform/api.js.map +1 -0
  81. package/dist/products/data-platform/client.d.ts +14 -0
  82. package/dist/products/data-platform/client.js +59 -0
  83. package/dist/products/data-platform/client.js.map +1 -0
  84. package/dist/products/data-platform/helpers.d.ts +22 -0
  85. package/dist/products/data-platform/helpers.js +31 -0
  86. package/dist/products/data-platform/helpers.js.map +1 -0
  87. package/dist/products/data-platform/index.d.ts +10 -0
  88. package/dist/products/data-platform/index.js +10 -0
  89. package/dist/products/data-platform/index.js.map +1 -0
  90. package/dist/products/index.d.ts +3 -0
  91. package/dist/products/index.js +4 -0
  92. package/dist/products/index.js.map +1 -0
  93. package/dist/products/types.d.ts +2 -0
  94. package/dist/products/types.js +2 -0
  95. package/dist/products/types.js.map +1 -0
  96. package/dist/products/web-experimentation/client.d.ts +11 -0
  97. package/dist/products/web-experimentation/client.js +42 -0
  98. package/dist/products/web-experimentation/client.js.map +1 -0
  99. package/dist/products/web-experimentation/helpers.d.ts +13 -0
  100. package/dist/products/web-experimentation/helpers.js +14 -0
  101. package/dist/products/web-experimentation/helpers.js.map +1 -0
  102. package/dist/products/web-experimentation/index.d.ts +1 -0
  103. package/dist/products/web-experimentation/index.js +2 -0
  104. package/dist/products/web-experimentation/index.js.map +1 -0
  105. package/dist/server-components/index.d.ts +1 -0
  106. package/dist/server-components/index.js +2 -0
  107. package/dist/server-components/index.js.map +1 -0
  108. package/dist/server-components/scripts/footer.d.ts +6 -0
  109. package/dist/server-components/scripts/footer.js +11 -0
  110. package/dist/server-components/scripts/footer.js.map +1 -0
  111. package/dist/server-components/scripts/header.d.ts +6 -0
  112. package/dist/server-components/scripts/header.js +12 -0
  113. package/dist/server-components/scripts/header.js.map +1 -0
  114. package/dist/server-components/scripts/index.d.ts +18 -0
  115. package/dist/server-components/scripts/index.js +19 -0
  116. package/dist/server-components/scripts/index.js.map +1 -0
  117. package/dist/server-components/scripts/snippets/optimizely-content-recs.d.ts +6 -0
  118. package/dist/server-components/scripts/snippets/optimizely-content-recs.js +19 -0
  119. package/dist/server-components/scripts/snippets/optimizely-content-recs.js.map +1 -0
  120. package/dist/server-components/scripts/snippets/optimizely-data-patform.d.ts +5 -0
  121. package/dist/server-components/scripts/snippets/optimizely-data-patform.js +37 -0
  122. package/dist/server-components/scripts/snippets/optimizely-data-patform.js.map +1 -0
  123. package/dist/server-components/scripts/snippets/optimizely-web-experimentation.d.ts +5 -0
  124. package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js +9 -0
  125. package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js.map +1 -0
  126. package/dist/server.d.ts +6 -0
  127. package/dist/server.js +11 -0
  128. package/dist/server.js.map +1 -0
  129. package/dist/styles.css +1 -0
  130. package/dist/types.d.ts +2 -0
  131. package/dist/types.js +2 -0
  132. package/dist/types.js.map +1 -0
  133. package/dist/utils/env.d.ts +11 -0
  134. package/dist/utils/env.js +49 -0
  135. package/dist/utils/env.js.map +1 -0
  136. package/dist/utils/session.d.ts +11 -0
  137. package/dist/utils/session.js +28 -0
  138. package/dist/utils/session.js.map +1 -0
  139. package/package.json +78 -0
@@ -0,0 +1,10 @@
1
+ export { DataPlatformClient as Client } from './api';
2
+ export * as Tools from './helpers';
3
+ import { DataPlatformClient as Client, DataPlatformError } from './api';
4
+ import * as Tools from './helpers';
5
+ export default {
6
+ Client,
7
+ Tools,
8
+ DataPlatformError
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/products/data-platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,MAAM,EAA0B,MAAM,OAAO,CAAA;AAC5E,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"}
@@ -0,0 +1,3 @@
1
+ export * as DataPlatform from './data-platform';
2
+ export * as ContentRecs from './content-recs';
3
+ export * as WebExperimentation from './web-experimentation';
@@ -0,0 +1,4 @@
1
+ export * as DataPlatform from './data-platform';
2
+ export * as ContentRecs from './content-recs';
3
+ export * as WebExperimentation from './web-experimentation';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/products/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,kBAAkB,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { cookies } from "next/headers";
2
+ export type ReadonlyRequestCookies = ReturnType<typeof cookies>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/products/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import * as ClientApi from '../../client-types';
2
+ export declare class WebExperimenationService implements ClientApi.OptimizelyOneService<ClientApi.OptimizelyWebExperimentationApi> {
3
+ order: Readonly<number>;
4
+ code: Readonly<string>;
5
+ debug: boolean;
6
+ get isActive(): boolean;
7
+ activatePage(): void;
8
+ trackEvent(event: ClientApi.OptimizelyOneEvent): void;
9
+ getBrowserApi(): ClientApi.OptimizelyWebExperimentationApi | undefined;
10
+ }
11
+ export default WebExperimenationService;
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ export class WebExperimenationService {
3
+ order = 100;
4
+ code = "webex";
5
+ debug = false;
6
+ get isActive() {
7
+ return this.getBrowserApi() != undefined;
8
+ }
9
+ activatePage() {
10
+ const webex = this.getBrowserApi();
11
+ if (!webex)
12
+ return;
13
+ webex.push({ type: 'activate' });
14
+ if (this.debug)
15
+ console.log("Web Experimentation - Activating pages");
16
+ }
17
+ trackEvent(event) {
18
+ const webex = this.getBrowserApi();
19
+ if (!webex)
20
+ return;
21
+ 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
+ }
27
+ console.log("Web Experimentation - Tracking event:", { type: 'event', eventName, tags: eventTags });
28
+ webex.push({ type: 'event', eventName, tags: eventTags });
29
+ }
30
+ getBrowserApi() {
31
+ try {
32
+ if (!window.optimizely)
33
+ window.optimizely = [];
34
+ return window.optimizely;
35
+ }
36
+ catch {
37
+ return undefined;
38
+ }
39
+ }
40
+ }
41
+ export default WebExperimenationService;
42
+ //# sourceMappingURL=client.js.map
@@ -0,0 +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,wCAAwC,CAAC,CAAA;IACzE,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,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACnG,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;CACJ;AAED,eAAe,wBAAwB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { ReadonlyRequestCookies } from '../types';
2
+ /**
3
+ * Parse the request cookies to understand the visitor identifier
4
+ * from the Optimizely Data Platform.
5
+ *
6
+ * @param cookies The request cookies
7
+ * @returns The identifier, or undefined if not known
8
+ */
9
+ export declare function getVisitorID(cookies: ReadonlyRequestCookies): string | undefined;
10
+ declare const _default: {
11
+ getVisitorID: typeof getVisitorID;
12
+ };
13
+ export default _default;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Parse the request cookies to understand the visitor identifier
3
+ * from the Optimizely Data Platform.
4
+ *
5
+ * @param cookies The request cookies
6
+ * @returns The identifier, or undefined if not known
7
+ */
8
+ export function getVisitorID(cookies) {
9
+ return cookies.get('optimizelyEndUserId')?.value;
10
+ }
11
+ export default {
12
+ getVisitorID,
13
+ };
14
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/helpers.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAA+B;IAExD,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAA;AACpD,CAAC;AAED,eAAe;IACX,YAAY;CACf,CAAA"}
@@ -0,0 +1 @@
1
+ export * as Tools from './helpers';
@@ -0,0 +1,2 @@
1
+ export * as Tools from './helpers';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA"}
@@ -0,0 +1 @@
1
+ export { Scripts } from './scripts';
@@ -0,0 +1,2 @@
1
+ export { Scripts } from './scripts';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server-components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,6 @@
1
+ import 'server-only';
2
+ export type FooterScriptsProps = {
3
+ contentRecsClient?: string;
4
+ contentRecsDelivery?: number;
5
+ };
6
+ export default function (props: FooterScriptsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import 'server-only';
3
+ import EnvTools from '../../utils/env';
4
+ import EnvVars from '../../env-vars';
5
+ import CRecsScript from './snippets/optimizely-content-recs';
6
+ export default function (props) {
7
+ const crecs_client = props.contentRecsClient || EnvTools.readValue(EnvVars.ContentRecsClient);
8
+ const crecs_delivery = props.contentRecsDelivery || EnvTools.readValueAsInt(EnvVars.ContentRecsDelivery);
9
+ return _jsx(_Fragment, { children: crecs_client && crecs_delivery && _jsx(CRecsScript, { client: crecs_client, delivery: crecs_delivery }) });
10
+ }
11
+ //# sourceMappingURL=footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/server-components/scripts/footer.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,WAAW,MAAM,oCAAoC,CAAA;AAO5D,MAAM,CAAC,OAAO,WAAW,KAAyB;IAE9C,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,IAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC5F,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACxG,OAAO,4BACD,YAAY,IAAI,cAAc,IAAI,KAAC,WAAW,IAAC,MAAM,EAAG,YAAY,EAAG,QAAQ,EAAG,cAAc,GAAK,GACxG,CAAA;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import 'server-only';
2
+ export type HeaderScriptsProps = {
3
+ dataPlatformTrackerId?: string;
4
+ experimentationProjectId?: string;
5
+ };
6
+ export default function (props: HeaderScriptsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import 'server-only';
3
+ import EnvTools from '../../utils/env';
4
+ import EnvVars from '../../env-vars';
5
+ import OdpScript from './snippets/optimizely-data-patform';
6
+ import ExpScript from './snippets/optimizely-web-experimentation';
7
+ export default function (props) {
8
+ const odp_id = props.dataPlatformTrackerId || EnvTools.readValue(EnvVars.OdpApiKey);
9
+ const exp_id = props.experimentationProjectId || EnvTools.readValue(EnvVars.WebExperimentationProject);
10
+ return _jsxs(_Fragment, { children: [odp_id && _jsx(OdpScript, { trackerId: odp_id }), exp_id && _jsx(ExpScript, { projectId: exp_id })] });
11
+ }
12
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/server-components/scripts/header.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,SAAS,MAAM,oCAAoC,CAAA;AAC1D,OAAO,SAAS,MAAM,2CAA2C,CAAA;AAOjE,MAAM,CAAC,OAAO,WAAW,KAAyB;IAE9C,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnF,MAAM,MAAM,GAAG,KAAK,CAAC,wBAAwB,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;IACtG,OAAO,8BACD,MAAM,IAAI,KAAC,SAAS,IAAC,SAAS,EAAG,MAAM,GAAK,EAC5C,MAAM,IAAI,KAAC,SAAS,IAAC,SAAS,EAAG,MAAM,GAAK,IAC/C,CAAA;AACP,CAAC"}
@@ -0,0 +1,18 @@
1
+ import Header from './header';
2
+ import Footer from './footer';
3
+ /**
4
+ * Container for the main layout components, being the header & footer scripts
5
+ * that must be injected into the page to enable full Optimizely One Support.
6
+ */
7
+ export declare const Scripts: {
8
+ /**
9
+ * Header scripts, this component should be placed as high in the head as
10
+ * your layout allows.
11
+ */
12
+ Header: typeof Header;
13
+ /**
14
+ * Footer scripts, these should be placed as close to the closing </body> tag
15
+ * as possible.
16
+ */
17
+ Footer: typeof Footer;
18
+ };
@@ -0,0 +1,19 @@
1
+ import Header from './header';
2
+ import Footer from './footer';
3
+ /**
4
+ * Container for the main layout components, being the header & footer scripts
5
+ * that must be injected into the page to enable full Optimizely One Support.
6
+ */
7
+ export const Scripts = {
8
+ /**
9
+ * Header scripts, this component should be placed as high in the head as
10
+ * your layout allows.
11
+ */
12
+ Header,
13
+ /**
14
+ * Footer scripts, these should be placed as close to the closing </body> tag
15
+ * as possible.
16
+ */
17
+ Footer
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server-components/scripts/index.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACnB;;;OAGG;IACH,MAAM;IAEN;;;OAGG;IACH,MAAM;CACT,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type OptimizelyContentRecsProps = {
2
+ client: string;
3
+ delivery: number;
4
+ };
5
+ export declare const OptimizelyContentRecsTrackingScript: (props: OptimizelyContentRecsProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default OptimizelyContentRecsTrackingScript;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint @next/next/no-before-interactive-script-outside-document: 0 */
3
+ import Script from 'next/script';
4
+ export const OptimizelyContentRecsTrackingScript = (props) => {
5
+ const client_id = props.client;
6
+ const delivery_id = props.delivery;
7
+ return _jsx(Script, { id: 'content-recs-script', strategy: 'beforeInteractive', children: `
8
+ // Set client and delivery
9
+ _iaq = [
10
+ ['client', ${JSON.stringify(client_id)}],
11
+ ['delivery', ${JSON.stringify(delivery_id)}]
12
+ ];
13
+
14
+ // Include the Content Analytics & Recommendations JavaScript
15
+ !function(d,s){var ia=d.createElement(s);ia.async=1,s=d.getElementsByTagName(s)[0],ia.src='//s.idio.co/ia.js',s.parentNode.insertBefore(ia,s)}(document,'script');
16
+ ` });
17
+ };
18
+ export default OptimizelyContentRecsTrackingScript;
19
+ //# sourceMappingURL=optimizely-content-recs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizely-content-recs.js","sourceRoot":"","sources":["../../../../src/server-components/scripts/snippets/optimizely-content-recs.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAOhC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,KAAiC,EAAE,EAAE;IACrF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;IAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAA;IAElC,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;;;;;CAKnD,GACQ,CAAA;AACT,CAAC,CAAA;AAED,eAAe,mCAAmC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export type OptimizelyDataPlatformProps = {
2
+ trackerId: string;
3
+ };
4
+ export declare const OptimizelyDataPlatformScript: (props: OptimizelyDataPlatformProps) => import("react/jsx-runtime").JSX.Element;
5
+ export default OptimizelyDataPlatformScript;
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint @next/next/no-before-interactive-script-outside-document: 0 */
3
+ import Script from 'next/script';
4
+ export const OptimizelyDataPlatformScript = (props) => {
5
+ const odp_id = props.trackerId.split('.').shift() ?? '';
6
+ return _jsx(Script, { id: 'data-platform-script', strategy: 'beforeInteractive', children: `
7
+ var zaius = window['zaius'] || (window['zaius'] = []);
8
+ zaius.methods = ['initialize', 'onload', 'customer', 'entity', 'event', 'subscribe', 'unsubscribe', 'consent', 'identify', 'anonymize', 'dispatch'];
9
+
10
+ // build queueing methods
11
+ zaius.factory = function (method) {
12
+ return function() {
13
+ var args = Array.prototype.slice.call(arguments);
14
+ args.unshift(method);
15
+ zaius.push(args);
16
+ return zaius;
17
+ };
18
+ };
19
+
20
+ (function()
21
+ {
22
+ for (var i = 0; i < zaius.methods.length; i++) {
23
+ var method = zaius.methods[i];
24
+ zaius[method] = zaius.factory(method);
25
+ }
26
+
27
+ var script = document.createElement('script');
28
+ script.type = 'text/javascript';
29
+ script.async = true;
30
+ script.src = ('https:' === document.location.protocol ? 'https://' : 'http://') + 'd1igp3oop3iho5.cloudfront.net/v2/${odp_id}/zaius.js';
31
+ var firstScript = document.getElementsByTagName('script')[0];
32
+ firstScript.parentNode.insertBefore(script, firstScript);
33
+ })();
34
+ ` });
35
+ };
36
+ export default OptimizelyDataPlatformScript;
37
+ //# sourceMappingURL=optimizely-data-patform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizely-data-patform.js","sourceRoot":"","sources":["../../../../src/server-components/scripts/snippets/optimizely-data-patform.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,OAAO,KAAC,MAAM,IAAC,EAAE,EAAC,sBAAsB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;;;;;;;;;;;;;;;;;;;;;gIAwBsD,MAAO;;;;CAIvI,GACQ,CAAA;AACT,CAAC,CAAA;AAED,eAAe,4BAA4B,CAAA"}
@@ -0,0 +1,5 @@
1
+ export type OptimizelyWebExperimentationProps = {
2
+ projectId: string | number;
3
+ };
4
+ export declare const OptimizelyWebExperimentationScript: (props: OptimizelyWebExperimentationProps) => import("react/jsx-runtime").JSX.Element;
5
+ export default OptimizelyWebExperimentationScript;
@@ -0,0 +1,9 @@
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
+ import Script from 'next/script';
4
+ export const OptimizelyWebExperimentationScript = (props) => {
5
+ const project_id = props.projectId;
6
+ return _jsxs(_Fragment, { children: [_jsx(Script, { id: 'web-experimentation-startup', strategy: 'beforeInteractive', children: `window["optimizely"] = window["optimizely"] || [];` }), _jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', src: `https://cdn.optimizely.com/js/${project_id}.js` })] });
7
+ };
8
+ export default OptimizelyWebExperimentationScript;
9
+ //# sourceMappingURL=optimizely-web-experimentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizely-web-experimentation.js","sourceRoot":"","sources":["../../../../src/server-components/scripts/snippets/optimizely-web-experimentation.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAMhC,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,KAAwC,EAAE,EAAE;IAC3F,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;IAElC,OAAO,8BACH,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAG,oDAAoD,GAAU,EACtI,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,EAAC,GAAG,EAAG,iCAAkC,UAAW,KAAK,GAAI,IACnI,CAAA;AACP,CAAC,CAAA;AAED,eAAe,kCAAkC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import 'server-only';
2
+ export * from './products';
3
+ export * as Session from './utils/session';
4
+ export * as EnvTools from './utils/env';
5
+ export declare function isOptimizelyOneEnabled(): boolean;
6
+ export * from './server-components';
package/dist/server.js ADDED
@@ -0,0 +1,11 @@
1
+ import 'server-only';
2
+ import EnvVars from './env-vars';
3
+ import EnvTools from './utils/env';
4
+ export * from './products';
5
+ export * as Session from './utils/session';
6
+ export * as EnvTools from './utils/env';
7
+ export function isOptimizelyOneEnabled() {
8
+ return EnvTools.readValueAsBoolean(EnvVars.HelperEnabled, false);
9
+ }
10
+ export * from './server-components';
11
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,OAAO,MAAM,YAAY,CAAA;AAChC,OAAO,QAAQ,MAAM,aAAa,CAAA;AAElC,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAA;AAEvC,MAAM,UAAU,sBAAsB;IAElC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AACpE,CAAC;AAED,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1 @@
1
+ .oo-fixed{position:fixed!important}.oo-bottom-0{bottom:0!important}.oo-bottom-\[50px\]{bottom:50px!important}.oo-right-0{right:0!important}.oo-top-0{top:0!important}.oo-z-\[500\]{z-index:500!important}.oo-z-\[501\]{z-index:501!important}.oo-m-2{margin:.5rem!important}.oo-my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.oo-ml-2{margin-left:.5rem!important}.oo-mr-2{margin-right:.5rem!important}.oo-mt-3{margin-top:.75rem!important}.oo-inline-block{display:inline-block!important}.oo-flex{display:flex!important}.oo-grid{display:grid!important}.oo-h-4{height:1rem!important}.oo-h-\[16px\]{height:16px!important}.oo-h-\[18px\]{height:18px!important}.oo-h-\[24px\]{height:24px!important}.oo-h-\[50px\]{height:50px!important}.oo-h-full{height:100%!important}.oo-w-4{width:1rem!important}.oo-w-\[16px\]{width:16px!important}.oo-w-\[18px\]{width:18px!important}.oo-w-\[24px\]{width:24px!important}.oo-w-auto{width:auto!important}.oo-w-full{width:100%!important}.oo-max-w-full{max-width:100%!important}.oo-flex-1{flex:1 1 0%!important}.oo-flex-none{flex:none!important}@keyframes oo-spin{to{transform:rotate(1turn)}}.oo-animate-spin{animation:oo-spin 1s linear infinite!important}.oo-cursor-pointer{cursor:pointer!important}.oo-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))!important}.oo-flex-row{flex-direction:row!important}.oo-flex-col{flex-direction:column!important}.oo-justify-between{justify-content:space-between!important}.oo-justify-stretch{justify-content:stretch!important}.oo-gap-2{gap:.5rem!important}.oo-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0!important;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))!important;border-bottom-width:calc(1px*var(--tw-divide-y-reverse))!important}.oo-divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1!important;border-color:rgb(226 232 240/var(--tw-divide-opacity))!important}.oo-overflow-y-auto{overflow-y:auto!important}.oo-overscroll-contain{overscroll-behavior:contain!important}.oo-rounded-md{border-radius:.375rem!important}.oo-rounded-t-md{border-top-left-radius:.375rem!important;border-top-right-radius:.375rem!important}.oo-border{border-width:1px!important}.oo-border-b{border-bottom-width:1px!important}.oo-border-b-0{border-bottom-width:0!important}.oo-border-t{border-top-width:1px!important}.oo-border-amber-800{--tw-border-opacity:1!important;border-color:rgb(146 64 14/var(--tw-border-opacity))!important}.oo-border-slate-300{--tw-border-opacity:1!important;border-color:rgb(203 213 225/var(--tw-border-opacity))!important}.oo-border-slate-500{--tw-border-opacity:1!important;border-color:rgb(100 116 139/var(--tw-border-opacity))!important}.oo-bg-amber-200{background-color:rgb(253 230 138/var(--tw-bg-opacity))!important}.oo-bg-amber-200,.oo-bg-blue-500{--tw-bg-opacity:1!important}.oo-bg-blue-500{background-color:rgb(59 130 246/var(--tw-bg-opacity))!important}.oo-bg-slate-100{background-color:rgb(241 245 249/var(--tw-bg-opacity))!important}.oo-bg-slate-100,.oo-bg-white{--tw-bg-opacity:1!important}.oo-bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.oo-p-1{padding:.25rem!important}.oo-p-2{padding:.5rem!important}.oo-p-\[10px\]{padding:10px!important}.oo-px-2{padding-left:.5rem!important;padding-right:.5rem!important}.oo-py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.oo-pb-0{padding-bottom:0!important}.oo-pl-2{padding-left:.5rem!important}.oo-pt-1{padding-top:.25rem!important}.oo-pt-4{padding-top:1rem!important}.oo-text-center{text-align:center!important}.oo-text-\[12px\]{font-size:12px!important}.oo-text-\[14px\]{font-size:14px!important}.oo-text-\[18px\]{font-size:18px!important}.oo-font-bold{font-weight:700!important}.oo-text-amber-800{color:rgb(146 64 14/var(--tw-text-opacity))!important}.oo-text-amber-800,.oo-text-blue-500{--tw-text-opacity:1!important}.oo-text-blue-500{color:rgb(59 130 246/var(--tw-text-opacity))!important}.oo-text-blue-800{color:rgb(30 64 175/var(--tw-text-opacity))!important}.oo-text-blue-800,.oo-text-slate-800{--tw-text-opacity:1!important}.oo-text-slate-800{color:rgb(30 41 59/var(--tw-text-opacity))!important}.oo-text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.oo-underline{text-decoration-line:underline!important}.oo-ui-open\:oo-rotate-180[data-headlessui-state~=open]{--tw-rotate:180deg!important}.oo-ui-open\:oo-rotate-180[data-headlessui-state~=open],.oo-ui-open\:oo-transform[data-headlessui-state~=open]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}:where([data-headlessui-state~=open]) .oo-ui-open\:oo-rotate-180{--tw-rotate:180deg!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}:where([data-headlessui-state~=open]) .oo-ui-open\:oo-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.oo-ui-selected\:oo-bg-blue-500[data-headlessui-state~=selected]{--tw-bg-opacity:1!important;background-color:rgb(59 130 246/var(--tw-bg-opacity))!important}.oo-ui-selected\:oo-text-white[data-headlessui-state~=selected]{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}:where([data-headlessui-state~=selected]) .oo-ui-selected\:oo-bg-blue-500{--tw-bg-opacity:1!important;background-color:rgb(59 130 246/var(--tw-bg-opacity))!important}:where([data-headlessui-state~=selected]) .oo-ui-selected\:oo-text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}@media (min-width:768px){.md\:oo-fixed{position:fixed!important}.md\:oo-bottom-0{bottom:0!important}.md\:oo-bottom-\[55px\]{bottom:55px!important}.md\:oo-right-4{right:1rem!important}.md\:oo-top-auto{top:auto!important}.md\:oo-m-4{margin:1rem!important}.md\:oo-h-24{height:6rem!important}.md\:oo-h-\[350px\]{height:350px!important}.md\:oo-w-\[350px\]{width:350px!important}.md\:oo-w-\[600px\]{width:600px!important}.md\:oo-justify-start{justify-content:flex-start!important}.md\:oo-overflow-hidden{overflow:hidden!important}.md\:oo-rounded-md{border-radius:.375rem!important}.md\:oo-rounded-t-md{border-top-left-radius:.375rem!important;border-top-right-radius:.375rem!important}.md\:oo-border{border-width:1px!important}.md\:oo-border-x{border-left-width:1px!important;border-right-width:1px!important}.md\:oo-border-slate-300{--tw-border-opacity:1!important;border-color:rgb(203 213 225/var(--tw-border-opacity))!important}.md\:oo-p-2{padding:.5rem!important}.md\:oo-pb-0{padding-bottom:0!important}.md\:oo-shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}}
@@ -0,0 +1,2 @@
1
+ export type * from "./api/types";
2
+ export type * from "./products/types";
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare function readValueAsInt<T extends number | undefined>(variableName: string, defaultValue?: T): T extends number ? number : number | undefined;
2
+ export declare function readValueAsFloat<T extends number | undefined>(variableName: string, defaultValue?: T): T extends number ? number : number | undefined;
3
+ export declare function readValueAsBoolean<T extends boolean | undefined>(variableName: string, defaultValue?: T): T extends boolean ? boolean : boolean | undefined;
4
+ export declare function readValue<T extends string | undefined>(variableName: string, defaultValue?: T): T extends string ? string : string | undefined;
5
+ declare const _default: {
6
+ readValue: typeof readValue;
7
+ readValueAsBoolean: typeof readValueAsBoolean;
8
+ readValueAsFloat: typeof readValueAsFloat;
9
+ readValueAsInt: typeof readValueAsInt;
10
+ };
11
+ export default _default;
@@ -0,0 +1,49 @@
1
+ export function readValueAsInt(variableName, defaultValue) {
2
+ const stringValue = readValue(variableName);
3
+ if (!stringValue)
4
+ return defaultValue;
5
+ try {
6
+ return parseInt(stringValue);
7
+ }
8
+ catch {
9
+ return defaultValue;
10
+ }
11
+ }
12
+ export function readValueAsFloat(variableName, defaultValue) {
13
+ const stringValue = readValue(variableName);
14
+ if (!stringValue)
15
+ return defaultValue;
16
+ try {
17
+ return parseFloat(stringValue);
18
+ }
19
+ catch {
20
+ return defaultValue;
21
+ }
22
+ }
23
+ export function readValueAsBoolean(variableName, defaultValue) {
24
+ const stringValue = readValue(variableName);
25
+ if (typeof (stringValue) != 'string')
26
+ return defaultValue;
27
+ try {
28
+ return stringValue == '1' || stringValue.toLowerCase() == 'true';
29
+ }
30
+ catch {
31
+ return defaultValue;
32
+ }
33
+ }
34
+ export function readValue(variableName, defaultValue) {
35
+ try {
36
+ const stringValue = process?.env ? process.env[variableName] : undefined;
37
+ return stringValue || defaultValue;
38
+ }
39
+ catch {
40
+ return defaultValue;
41
+ }
42
+ }
43
+ export default {
44
+ readValue,
45
+ readValueAsBoolean,
46
+ readValueAsFloat,
47
+ readValueAsInt
48
+ };
49
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,cAAc,CAA+B,YAAoB,EAAE,YAAgB;IAE/F,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IAC3C,IAAI,CAAC,WAAW;QACZ,OAAO,YAAqD,CAAA;IAChE,IAAI,CAAC;QACD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,YAAqD,CAAA;IAChE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAA+B,YAAoB,EAAE,YAAgB;IAEjG,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IAC3C,IAAI,CAAC,WAAW;QACZ,OAAO,YAAqD,CAAA;IAChE,IAAI,CAAC;QACD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,YAAqD,CAAA;IAChE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAgC,YAAoB,EAAE,YAAgB;IAEpG,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IAC3C,IAAI,OAAM,CAAC,WAAW,CAAC,IAAI,QAAQ;QAC/B,OAAO,YAAuD,CAAA;IAClE,IAAI,CAAC;QACD,OAAO,WAAW,IAAI,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,MAAM,CAAA;IACpE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,YAAuD,CAAA;IAClE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAA+B,YAAoB,EAAE,YAAgB;IAE1F,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxE,OAAO,WAAW,IAAI,YAAqD,CAAA;IAC/E,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,YAAqD,CAAA;IAChE,CAAC;AACL,CAAC;AAED,eAAe;IACX,SAAS;IACT,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;CACjB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { NextRequest, NextResponse } from 'next/server';
2
+ import type { ReadonlyRequestCookies } from '../products/types';
3
+ export declare function getOrCreateVisitorId(request: NextRequest): string;
4
+ export declare function getVisitorId(c: ReadonlyRequestCookies): string | undefined;
5
+ export declare function addVisitorId<T = unknown>(response: NextResponse<T>, visitorId: string): NextResponse<T>;
6
+ declare const _default: {
7
+ getVisitorId: typeof getVisitorId;
8
+ getOrCreateVisitorId: typeof getOrCreateVisitorId;
9
+ addVisitorId: typeof addVisitorId;
10
+ };
11
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import { v4 as createGuid } from 'uuid';
2
+ import * as EnvTools from './env';
3
+ import EnvVars from '../env-vars';
4
+ export function getOrCreateVisitorId(request) {
5
+ const cookieName = EnvTools.readValue(EnvVars.FrontendCookie, 'visitorId');
6
+ return request.cookies.get(cookieName)?.value ?? createGuid();
7
+ }
8
+ export function getVisitorId(c) {
9
+ const cookieName = EnvTools.readValue(EnvVars.FrontendCookie, 'visitorId');
10
+ return c.get(cookieName)?.value;
11
+ }
12
+ export function addVisitorId(response, visitorId) {
13
+ const DEBUG = process.env.NODE_ENV == 'development';
14
+ response.cookies.set({
15
+ name: 'visitorId',
16
+ value: visitorId,
17
+ sameSite: "strict",
18
+ path: "/",
19
+ secure: !DEBUG
20
+ });
21
+ return response;
22
+ }
23
+ export default {
24
+ getVisitorId,
25
+ getOrCreateVisitorId,
26
+ addVisitorId
27
+ };
28
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,UAAU,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,OAAO,CAAA;AACjC,OAAO,OAAO,MAAM,aAAa,CAAA;AAKjC,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IAErD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;IAC1E,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,UAAU,EAAE,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAyB;IAElD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;IAC1E,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAc,QAAyB,EAAE,SAAiB;IAElF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAA;IACnD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;QACjB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,CAAC,KAAK;KACjB,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,eAAe;IACX,YAAY;IACZ,oBAAoB;IACpB,YAAY;CACf,CAAA"}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@remkoj/optimizely-one-nextjs",
3
+ "license": "Apache-2.0",
4
+ "version": "1.0.3",
5
+ "packageManager": "yarn@4.1.1",
6
+ "repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
7
+ "author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
8
+ "homepage": "https://github.com/remkoj/optimizely-dxp-clients",
9
+ "type": "module",
10
+ "main": "./dist/client.js",
11
+ "types": "./dist/client.d.ts",
12
+ "files": [
13
+ "./dist"
14
+ ],
15
+ "exports": {
16
+ ".": "./dist/client.js",
17
+ "./api": "./dist/api.js",
18
+ "./client": "./dist/client.js",
19
+ "./server": "./dist/server.js",
20
+ "./types": "./dist/types.js",
21
+ "./optimizely-one-gadget": "./dist/components/optimizely-one-gadget/index.js"
22
+ },
23
+ "typesVersions": {
24
+ "*": {
25
+ "api": [
26
+ "dist/api.d.ts"
27
+ ],
28
+ "client": [
29
+ "dist/client.d.ts"
30
+ ],
31
+ "server": [
32
+ "dist/server.d.ts"
33
+ ],
34
+ "types": [
35
+ "dist/types.d.ts"
36
+ ],
37
+ "optimizely-one-gadget": [
38
+ "dist/components/optimizely-one-gadget/index.d.ts"
39
+ ]
40
+ }
41
+ },
42
+ "devDependencies": {
43
+ "@headlessui/react": "^1.7.18",
44
+ "@headlessui/tailwindcss": "^0.2.0",
45
+ "@heroicons/react": "^2.1.3",
46
+ "@remkoj/optimizely-graph-client": "^1.0.3",
47
+ "@types/node": "^20.12.4",
48
+ "@types/react": "^18.2.74",
49
+ "@types/react-dom": "18.2.24",
50
+ "@types/uuid": "^9.0.8",
51
+ "next": "^14.1.4",
52
+ "prop-types": "^15.8.1",
53
+ "react": "^18.2.0",
54
+ "react-dom": "^18.2.0",
55
+ "scheduler": "^0.23.0",
56
+ "swr": "^2.2.5",
57
+ "tailwindcss": "^3.4.3",
58
+ "typescript": "^5.4.3",
59
+ "uuid": "^9.0.1"
60
+ },
61
+ "peerDependencies": {
62
+ "@headlessui/react": "*",
63
+ "@heroicons/react": "*",
64
+ "@remkoj/optimizely-graph-client": "^1.0.3",
65
+ "next": "*",
66
+ "react": "*",
67
+ "react-dom": "*",
68
+ "swr": "*",
69
+ "uuid": "*"
70
+ },
71
+ "scripts": {
72
+ "clean": "tsc --build --clean",
73
+ "prepare": "tsc --build --force && tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify",
74
+ "watch": "tsc --watch",
75
+ "watch-styles": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify --watch",
76
+ "recompile": "tsc --build --clean && tsc --build --force"
77
+ }
78
+ }