@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.
- package/LICENSE +13 -0
- package/README.md +82 -0
- package/dist/api/graph-info-service.d.ts +14 -0
- package/dist/api/graph-info-service.js +37 -0
- package/dist/api/graph-info-service.js.map +1 -0
- package/dist/api/index.d.ts +20 -0
- package/dist/api/index.js +42 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/profile-api-service.d.ts +21 -0
- package/dist/api/profile-api-service.js +80 -0
- package/dist/api/profile-api-service.js.map +1 -0
- package/dist/api/responses.d.ts +2 -0
- package/dist/api/responses.js +2 -0
- package/dist/api/responses.js.map +1 -0
- package/dist/api/types.d.ts +18 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api.d.ts +5 -0
- package/dist/api.js +4 -0
- package/dist/api.js.map +1 -0
- package/dist/client-types.d.ts +133 -0
- package/dist/client-types.js +2 -0
- package/dist/client-types.js.map +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -0
- package/dist/components/context.d.ts +88 -0
- package/dist/components/context.js +71 -0
- package/dist/components/context.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/optimizely-one-gadget/audiences-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/audiences-panel.js +53 -0
- package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/exp-panel.d.ts +3 -0
- package/dist/components/optimizely-one-gadget/exp-panel.js +42 -0
- package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/graph-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/graph-panel.js +27 -0
- package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/ids-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/ids-panel.js +23 -0
- package/dist/components/optimizely-one-gadget/ids-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/index.d.ts +33 -0
- package/dist/components/optimizely-one-gadget/index.js +39 -0
- package/dist/components/optimizely-one-gadget/index.js.map +1 -0
- package/dist/components/optimizely-one-gadget/interests-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/interests-panel.js +23 -0
- package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/logo.d.ts +6 -0
- package/dist/components/optimizely-one-gadget/logo.js +19 -0
- package/dist/components/optimizely-one-gadget/logo.js.map +1 -0
- package/dist/components/page-activator.d.ts +4 -0
- package/dist/components/page-activator.js +32 -0
- package/dist/components/page-activator.js.map +1 -0
- package/dist/components/use-test-mode.d.ts +11 -0
- package/dist/components/use-test-mode.js +81 -0
- package/dist/components/use-test-mode.js.map +1 -0
- package/dist/env-vars.d.ts +13 -0
- package/dist/env-vars.js +15 -0
- package/dist/env-vars.js.map +1 -0
- package/dist/products/client-types.d.ts +3 -0
- package/dist/products/client-types.js +2 -0
- package/dist/products/client-types.js.map +1 -0
- package/dist/products/content-recs/api.d.ts +19 -0
- package/dist/products/content-recs/api.js +42 -0
- package/dist/products/content-recs/api.js.map +1 -0
- package/dist/products/content-recs/client.d.ts +10 -0
- package/dist/products/content-recs/client.js +29 -0
- package/dist/products/content-recs/client.js.map +1 -0
- package/dist/products/content-recs/helpers.d.ts +20 -0
- package/dist/products/content-recs/helpers.js +27 -0
- package/dist/products/content-recs/helpers.js.map +1 -0
- package/dist/products/content-recs/index.d.ts +2 -0
- package/dist/products/content-recs/index.js +3 -0
- package/dist/products/content-recs/index.js.map +1 -0
- package/dist/products/data-platform/api.d.ts +41 -0
- package/dist/products/data-platform/api.js +116 -0
- package/dist/products/data-platform/api.js.map +1 -0
- package/dist/products/data-platform/client.d.ts +14 -0
- package/dist/products/data-platform/client.js +59 -0
- package/dist/products/data-platform/client.js.map +1 -0
- package/dist/products/data-platform/helpers.d.ts +22 -0
- package/dist/products/data-platform/helpers.js +31 -0
- package/dist/products/data-platform/helpers.js.map +1 -0
- package/dist/products/data-platform/index.d.ts +10 -0
- package/dist/products/data-platform/index.js +10 -0
- package/dist/products/data-platform/index.js.map +1 -0
- package/dist/products/index.d.ts +3 -0
- package/dist/products/index.js +4 -0
- package/dist/products/index.js.map +1 -0
- package/dist/products/types.d.ts +2 -0
- package/dist/products/types.js +2 -0
- package/dist/products/types.js.map +1 -0
- package/dist/products/web-experimentation/client.d.ts +11 -0
- package/dist/products/web-experimentation/client.js +42 -0
- package/dist/products/web-experimentation/client.js.map +1 -0
- package/dist/products/web-experimentation/helpers.d.ts +13 -0
- package/dist/products/web-experimentation/helpers.js +14 -0
- package/dist/products/web-experimentation/helpers.js.map +1 -0
- package/dist/products/web-experimentation/index.d.ts +1 -0
- package/dist/products/web-experimentation/index.js +2 -0
- package/dist/products/web-experimentation/index.js.map +1 -0
- package/dist/server-components/index.d.ts +1 -0
- package/dist/server-components/index.js +2 -0
- package/dist/server-components/index.js.map +1 -0
- package/dist/server-components/scripts/footer.d.ts +6 -0
- package/dist/server-components/scripts/footer.js +11 -0
- package/dist/server-components/scripts/footer.js.map +1 -0
- package/dist/server-components/scripts/header.d.ts +6 -0
- package/dist/server-components/scripts/header.js +12 -0
- package/dist/server-components/scripts/header.js.map +1 -0
- package/dist/server-components/scripts/index.d.ts +18 -0
- package/dist/server-components/scripts/index.js +19 -0
- package/dist/server-components/scripts/index.js.map +1 -0
- package/dist/server-components/scripts/snippets/optimizely-content-recs.d.ts +6 -0
- package/dist/server-components/scripts/snippets/optimizely-content-recs.js +19 -0
- package/dist/server-components/scripts/snippets/optimizely-content-recs.js.map +1 -0
- package/dist/server-components/scripts/snippets/optimizely-data-patform.d.ts +5 -0
- package/dist/server-components/scripts/snippets/optimizely-data-patform.js +37 -0
- package/dist/server-components/scripts/snippets/optimizely-data-patform.js.map +1 -0
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.d.ts +5 -0
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js +9 -0
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/env.d.ts +11 -0
- package/dist/utils/env.js +49 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/session.d.ts +11 -0
- package/dist/utils/session.js +28 -0
- package/dist/utils/session.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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,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,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,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"}
|
package/dist/server.d.ts
ADDED
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"}
|
package/dist/styles.css
ADDED
|
@@ -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}}
|
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -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
|
+
}
|