@growthbook/edge-utils 0.0.1 → 0.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/dist/app.js +6 -10
- package/dist/app.js.map +1 -1
- package/dist/attributes.js +1 -1
- package/dist/attributes.js.map +1 -1
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/inject.js +7 -5
- package/dist/inject.js.map +1 -1
- package/dist/types.d.ts +8 -10
- package/package.json +1 -2
- package/src/app.ts +6 -11
- package/src/attributes.ts +1 -1
- package/src/config.ts +8 -10
- package/src/inject.ts +9 -7
- package/src/types.ts +9 -10
package/dist/app.js
CHANGED
|
@@ -25,7 +25,6 @@ function edgeApp(context, req, res,
|
|
|
25
25
|
next) {
|
|
26
26
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
27
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
// todo: import default helpers, overwrite with context helpers
|
|
29
28
|
let url = ((_b = (_a = context.helpers).getRequestURL) === null || _b === void 0 ? void 0 : _b.call(_a, req)) || "";
|
|
30
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
30
|
let headers = {
|
|
@@ -64,16 +63,16 @@ next) {
|
|
|
64
63
|
let stickyBucketService = undefined;
|
|
65
64
|
if (context.config.enableStickyBucketing) {
|
|
66
65
|
stickyBucketService =
|
|
67
|
-
(_l = context.config.
|
|
66
|
+
(_l = context.config.edgeStickyBucketService) !== null && _l !== void 0 ? _l : new stickyBucketService_1.EdgeStickyBucketService({
|
|
68
67
|
context,
|
|
69
68
|
prefix: context.config.stickyBucketPrefix,
|
|
70
69
|
req,
|
|
71
70
|
});
|
|
72
71
|
}
|
|
73
72
|
const growthbook = new growthbook_1.GrowthBook({
|
|
74
|
-
apiHost: context.config.
|
|
75
|
-
clientKey: context.config.
|
|
76
|
-
decryptionKey: context.config.
|
|
73
|
+
apiHost: context.config.apiHost,
|
|
74
|
+
clientKey: context.config.clientKey,
|
|
75
|
+
decryptionKey: context.config.decryptionKey,
|
|
77
76
|
attributes,
|
|
78
77
|
applyDomChangesCallback: (changes) => {
|
|
79
78
|
domChanges.push(changes);
|
|
@@ -85,13 +84,10 @@ next) {
|
|
|
85
84
|
disableUrlRedirectExperiments: ["skip", "browser"].includes(context.config.runUrlRedirectExperiments),
|
|
86
85
|
disableCrossOriginUrlRedirectExperiments: ["skip", "browser"].includes(context.config.runCrossOriginUrlRedirectExperiments),
|
|
87
86
|
stickyBucketService,
|
|
88
|
-
trackingCallback: context.config.
|
|
89
|
-
? context.config.growthbook.edgeTrackingCallback
|
|
90
|
-
: undefined,
|
|
91
|
-
debug: true, // todo: remove
|
|
87
|
+
trackingCallback: context.config.edgeTrackingCallback,
|
|
92
88
|
});
|
|
93
89
|
yield growthbook.init({
|
|
94
|
-
payload: context.config.
|
|
90
|
+
payload: context.config.payload,
|
|
95
91
|
});
|
|
96
92
|
const oldUrl = url;
|
|
97
93
|
url = yield (0, redirect_1.default)({
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uDAKgC;AAEhC,6CAAiD;AACjD,qCAAoD;AACpD,iDAAmD;AACnD,0DAAkC;AAClC,uCAAqC;AACrC,+DAAgE;AAEhE,SAAsB,OAAO,CAC3B,OAA0B,EAC1B,GAAQ,EACR,GAAS;AACT,8DAA8D;AAC9D,IAAU;;;QAEV
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/attributes.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.getAutoAttributes = exports.getUUID = exports.getUserAttributes = void 0
|
|
|
4
4
|
// Get the user's attributes by merging the UUID cookie with any auto-attributes
|
|
5
5
|
function getUserAttributes(ctx, req, url, setCookie) {
|
|
6
6
|
const { config, helpers } = ctx;
|
|
7
|
-
const providedAttributes = config.
|
|
7
|
+
const providedAttributes = config.attributes || {};
|
|
8
8
|
if (config.skipAutoAttributes) {
|
|
9
9
|
return providedAttributes;
|
|
10
10
|
}
|
package/dist/attributes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":";;;AAGA,gFAAgF;AAChF,SAAgB,iBAAiB,CAC/B,GAAsB,EACtB,GAAQ,EACR,GAAW,EACX,SAA+C;IAE/C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAEhC,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -17,10 +17,8 @@ exports.defaultContext = {
|
|
|
17
17
|
disableInjections: false,
|
|
18
18
|
enableStreaming: false,
|
|
19
19
|
enableStickyBucketing: false,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
clientKey: "",
|
|
23
|
-
},
|
|
20
|
+
apiHost: "",
|
|
21
|
+
clientKey: "",
|
|
24
22
|
persistUuid: false,
|
|
25
23
|
uuidCookieName: "gbuuid",
|
|
26
24
|
uuidKey: "id",
|
|
@@ -66,16 +64,16 @@ function getConfig(env) {
|
|
|
66
64
|
// warning: for testing only; nonce should be unique per request
|
|
67
65
|
config.nonce = env.NONCE || undefined;
|
|
68
66
|
config.crypto = crypto;
|
|
69
|
-
//
|
|
70
|
-
config.
|
|
71
|
-
config.
|
|
67
|
+
// growthbook
|
|
68
|
+
config.apiHost = ((_o = env.GROWTHBOOK_API_HOST) !== null && _o !== void 0 ? _o : "").replace(/\/*$/, "");
|
|
69
|
+
config.clientKey = (_p = env.GROWTHBOOK_CLIENT_KEY) !== null && _p !== void 0 ? _p : "";
|
|
72
70
|
"GROWTHBOOK_DECRYPTION_KEY" in env &&
|
|
73
|
-
(config.
|
|
71
|
+
(config.decryptionKey = env.GROWTHBOOK_DECRYPTION_KEY);
|
|
74
72
|
"GROWTHBOOK_TRACKING_CALLBACK" in env &&
|
|
75
|
-
(config.
|
|
73
|
+
(config.trackingCallback = env.GROWTHBOOK_TRACKING_CALLBACK);
|
|
76
74
|
try {
|
|
77
75
|
"GROWTHBOOK_PAYLOAD" in env &&
|
|
78
|
-
(config.
|
|
76
|
+
(config.payload = JSON.parse(env.GROWTHBOOK_PAYLOAD || ""));
|
|
79
77
|
}
|
|
80
78
|
catch (e) {
|
|
81
79
|
console.error("Error parsing GROWTHBOOK_PAYLOAD", e);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAY;IACrC,MAAM,EAAE;QACN,WAAW,EAAE,GAAG;QAChB,mBAAmB,EAAE,IAAI;QACzB,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,KAAK;QACrB,0BAA0B,EAAE,YAAY;QACxC,kBAAkB,EAAE,KAAK;QACzB,yBAAyB,EAAE,SAAS;QACpC,oCAAoC,EAAE,SAAS;QAC/C,uBAAuB,EAAE,IAAI;QAC7B,YAAY,EAAE,CAAC;QACf,sBAAsB,EAAE,SAAS;QACjC,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,KAAK;QACtB,qBAAqB,EAAE,KAAK;QAC5B,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/inject.js
CHANGED
|
@@ -13,7 +13,7 @@ function injectScript({ context, body, nonce, growthbook, attributes, preRedirec
|
|
|
13
13
|
const uuidCookieName = context.config.uuidCookieName;
|
|
14
14
|
const uuidKey = context.config.uuidKey;
|
|
15
15
|
const uuid = attributes[uuidKey];
|
|
16
|
-
const trackingCallback = context.config.
|
|
16
|
+
const trackingCallback = context.config.trackingCallback;
|
|
17
17
|
const blockedChangeIds = getBlockedExperiments({
|
|
18
18
|
context,
|
|
19
19
|
experiments,
|
|
@@ -30,7 +30,6 @@ function injectScript({ context, body, nonce, growthbook, attributes, preRedirec
|
|
|
30
30
|
uuid,
|
|
31
31
|
persistUuidOnLoad: true,
|
|
32
32
|
attributes,
|
|
33
|
-
trackingCallback: "__TRACKING_CALLBACK__",
|
|
34
33
|
payload: sdkPayload,
|
|
35
34
|
disableVisualExperiments: ["skip", "edge"].includes(context.config.runVisualEditorExperiments),
|
|
36
35
|
disableJsInjection: context.config.disableJsInjection,
|
|
@@ -43,11 +42,14 @@ function injectScript({ context, body, nonce, growthbook, attributes, preRedirec
|
|
|
43
42
|
stickyBucketPrefix: context.config.stickyBucketPrefix,
|
|
44
43
|
stickyBucketAssignmentDocs: stickyAssignments,
|
|
45
44
|
};
|
|
45
|
+
if (trackingCallback) {
|
|
46
|
+
gbContext.trackingCallback = "__TRACKING_CALLBACK__";
|
|
47
|
+
}
|
|
46
48
|
let scriptTag = `
|
|
47
49
|
<script
|
|
48
|
-
data-api-host="${context.config.
|
|
49
|
-
data-client-key="${context.config.
|
|
50
|
-
? `\n data-decryption-key="${context.config.
|
|
50
|
+
data-api-host="${context.config.apiHost}"
|
|
51
|
+
data-client-key="${context.config.clientKey}"${context.config.decryptionKey
|
|
52
|
+
? `\n data-decryption-key="${context.config.decryptionKey}"`
|
|
51
53
|
: ""}${nonce ? `\n nonce="${nonce}"` : ""}
|
|
52
54
|
>
|
|
53
55
|
window.growthbook_config = ${JSON.stringify(gbContext)};
|
package/dist/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";;;AAAA,uDAQgC;AAChC,uDAAoD;AAGpD,SAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,GAAG,EACH,MAAM,GAUP;IACC,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;IAChD,MAAM,qBAAqB,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC;IACpE,MAAM,kBAAkB,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAE9D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -24,16 +24,14 @@ export interface Config {
|
|
|
24
24
|
nonce?: string;
|
|
25
25
|
crypto?: any;
|
|
26
26
|
localStorage?: LocalStorageCompat;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
payload?: FeatureApiResponse;
|
|
36
|
-
};
|
|
27
|
+
apiHost: string;
|
|
28
|
+
clientKey: string;
|
|
29
|
+
decryptionKey?: string;
|
|
30
|
+
trackingCallback?: string;
|
|
31
|
+
edgeTrackingCallback?: TrackingCallback;
|
|
32
|
+
attributes?: Attributes;
|
|
33
|
+
edgeStickyBucketService?: StickyBucketService;
|
|
34
|
+
payload?: FeatureApiResponse;
|
|
37
35
|
persistUuid: boolean;
|
|
38
36
|
uuidCookieName: string;
|
|
39
37
|
uuidKey: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@growthbook/edge-utils",
|
|
3
3
|
"description": "Edge worker base app",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.3",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"node-html-parser": "^6.1.13"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@types/jsdom": "^21.1.6",
|
|
27
26
|
"@types/node": "^20.8.2",
|
|
28
27
|
"rimraf": "^5.0.5",
|
|
29
28
|
"typescript": "5.2.2"
|
package/src/app.ts
CHANGED
|
@@ -19,8 +19,6 @@ export async function edgeApp<Req, Res>(
|
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
20
|
next?: any,
|
|
21
21
|
) {
|
|
22
|
-
// todo: import default helpers, overwrite with context helpers
|
|
23
|
-
|
|
24
22
|
let url = context.helpers.getRequestURL?.(req) || "";
|
|
25
23
|
|
|
26
24
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -77,7 +75,7 @@ export async function edgeApp<Req, Res>(
|
|
|
77
75
|
| undefined = undefined;
|
|
78
76
|
if (context.config.enableStickyBucketing) {
|
|
79
77
|
stickyBucketService =
|
|
80
|
-
context.config.
|
|
78
|
+
context.config.edgeStickyBucketService ??
|
|
81
79
|
new EdgeStickyBucketService<Req, Res>({
|
|
82
80
|
context,
|
|
83
81
|
prefix: context.config.stickyBucketPrefix,
|
|
@@ -85,9 +83,9 @@ export async function edgeApp<Req, Res>(
|
|
|
85
83
|
});
|
|
86
84
|
}
|
|
87
85
|
const growthbook = new GrowthBook({
|
|
88
|
-
apiHost: context.config.
|
|
89
|
-
clientKey: context.config.
|
|
90
|
-
decryptionKey: context.config.
|
|
86
|
+
apiHost: context.config.apiHost,
|
|
87
|
+
clientKey: context.config.clientKey,
|
|
88
|
+
decryptionKey: context.config.decryptionKey,
|
|
91
89
|
attributes,
|
|
92
90
|
applyDomChangesCallback: (changes: AutoExperimentVariation) => {
|
|
93
91
|
domChanges.push(changes);
|
|
@@ -105,14 +103,11 @@ export async function edgeApp<Req, Res>(
|
|
|
105
103
|
context.config.runCrossOriginUrlRedirectExperiments,
|
|
106
104
|
),
|
|
107
105
|
stickyBucketService,
|
|
108
|
-
trackingCallback: context.config.
|
|
109
|
-
? context.config.growthbook.edgeTrackingCallback
|
|
110
|
-
: undefined,
|
|
111
|
-
debug: true, // todo: remove
|
|
106
|
+
trackingCallback: context.config.edgeTrackingCallback,
|
|
112
107
|
});
|
|
113
108
|
|
|
114
109
|
await growthbook.init({
|
|
115
|
-
payload: context.config.
|
|
110
|
+
payload: context.config.payload,
|
|
116
111
|
});
|
|
117
112
|
|
|
118
113
|
const oldUrl = url;
|
package/src/attributes.ts
CHANGED
|
@@ -10,7 +10,7 @@ export function getUserAttributes<Req, Res>(
|
|
|
10
10
|
): Attributes {
|
|
11
11
|
const { config, helpers } = ctx;
|
|
12
12
|
|
|
13
|
-
const providedAttributes = config.
|
|
13
|
+
const providedAttributes = config.attributes || {};
|
|
14
14
|
if (config.skipAutoAttributes) {
|
|
15
15
|
return providedAttributes;
|
|
16
16
|
}
|
package/src/config.ts
CHANGED
|
@@ -16,10 +16,8 @@ export const defaultContext: Context = {
|
|
|
16
16
|
disableInjections: false,
|
|
17
17
|
enableStreaming: false,
|
|
18
18
|
enableStickyBucketing: false,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
clientKey: "",
|
|
22
|
-
},
|
|
19
|
+
apiHost: "",
|
|
20
|
+
clientKey: "",
|
|
23
21
|
persistUuid: false,
|
|
24
22
|
uuidCookieName: "gbuuid",
|
|
25
23
|
uuidKey: "id",
|
|
@@ -134,19 +132,19 @@ export function getConfig(env: ConfigEnv): Config {
|
|
|
134
132
|
|
|
135
133
|
config.crypto = crypto;
|
|
136
134
|
|
|
137
|
-
//
|
|
138
|
-
config.
|
|
135
|
+
// growthbook
|
|
136
|
+
config.apiHost = (env.GROWTHBOOK_API_HOST ?? "").replace(
|
|
139
137
|
/\/*$/,
|
|
140
138
|
"",
|
|
141
139
|
);
|
|
142
|
-
config.
|
|
140
|
+
config.clientKey = env.GROWTHBOOK_CLIENT_KEY ?? "";
|
|
143
141
|
"GROWTHBOOK_DECRYPTION_KEY" in env &&
|
|
144
|
-
(config.
|
|
142
|
+
(config.decryptionKey = env.GROWTHBOOK_DECRYPTION_KEY);
|
|
145
143
|
"GROWTHBOOK_TRACKING_CALLBACK" in env &&
|
|
146
|
-
(config.
|
|
144
|
+
(config.trackingCallback = env.GROWTHBOOK_TRACKING_CALLBACK);
|
|
147
145
|
try {
|
|
148
146
|
"GROWTHBOOK_PAYLOAD" in env &&
|
|
149
|
-
(config.
|
|
147
|
+
(config.payload = JSON.parse(env.GROWTHBOOK_PAYLOAD || ""));
|
|
150
148
|
} catch (e) {
|
|
151
149
|
console.error("Error parsing GROWTHBOOK_PAYLOAD", e);
|
|
152
150
|
}
|
package/src/inject.ts
CHANGED
|
@@ -39,7 +39,7 @@ export function injectScript({
|
|
|
39
39
|
const uuidCookieName = context.config.uuidCookieName;
|
|
40
40
|
const uuidKey = context.config.uuidKey;
|
|
41
41
|
const uuid = attributes[uuidKey];
|
|
42
|
-
const trackingCallback = context.config.
|
|
42
|
+
const trackingCallback = context.config.trackingCallback;
|
|
43
43
|
const blockedChangeIds = getBlockedExperiments({
|
|
44
44
|
context,
|
|
45
45
|
experiments,
|
|
@@ -59,7 +59,7 @@ export function injectScript({
|
|
|
59
59
|
persistUuidOnLoad?: boolean;
|
|
60
60
|
useStickyBucketService?: "cookie" | "localStorage";
|
|
61
61
|
stickyBucketPrefix?: string;
|
|
62
|
-
trackingCallback
|
|
62
|
+
trackingCallback?: string; // replaced by macro
|
|
63
63
|
payload?: FeatureApiResponse;
|
|
64
64
|
noStreaming?: boolean;
|
|
65
65
|
} = {
|
|
@@ -68,7 +68,6 @@ export function injectScript({
|
|
|
68
68
|
uuid,
|
|
69
69
|
persistUuidOnLoad: true,
|
|
70
70
|
attributes,
|
|
71
|
-
trackingCallback: "__TRACKING_CALLBACK__",
|
|
72
71
|
payload: sdkPayload,
|
|
73
72
|
disableVisualExperiments: ["skip", "edge"].includes(
|
|
74
73
|
context.config.runVisualEditorExperiments,
|
|
@@ -87,13 +86,16 @@ export function injectScript({
|
|
|
87
86
|
stickyBucketPrefix: context.config.stickyBucketPrefix,
|
|
88
87
|
stickyBucketAssignmentDocs: stickyAssignments,
|
|
89
88
|
};
|
|
89
|
+
if (trackingCallback) {
|
|
90
|
+
gbContext.trackingCallback = "__TRACKING_CALLBACK__";
|
|
91
|
+
}
|
|
90
92
|
|
|
91
93
|
let scriptTag = `
|
|
92
94
|
<script
|
|
93
|
-
data-api-host="${context.config.
|
|
94
|
-
data-client-key="${context.config.
|
|
95
|
-
context.config.
|
|
96
|
-
? `\n data-decryption-key="${context.config.
|
|
95
|
+
data-api-host="${context.config.apiHost}"
|
|
96
|
+
data-client-key="${context.config.clientKey}"${
|
|
97
|
+
context.config.decryptionKey
|
|
98
|
+
? `\n data-decryption-key="${context.config.decryptionKey}"`
|
|
97
99
|
: ""
|
|
98
100
|
}${nonce ? `\n nonce="${nonce}"` : ""}
|
|
99
101
|
>
|
package/src/types.ts
CHANGED
|
@@ -41,16 +41,15 @@ export interface Config {
|
|
|
41
41
|
crypto?: any;
|
|
42
42
|
localStorage?: LocalStorageCompat;
|
|
43
43
|
|
|
44
|
-
growthbook
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
44
|
+
// growthbook
|
|
45
|
+
apiHost: string;
|
|
46
|
+
clientKey: string;
|
|
47
|
+
decryptionKey?: string;
|
|
48
|
+
trackingCallback?: string; // (experiment, result) => void;
|
|
49
|
+
edgeTrackingCallback?: TrackingCallback;
|
|
50
|
+
attributes?: Attributes;
|
|
51
|
+
edgeStickyBucketService?: StickyBucketService;
|
|
52
|
+
payload?: FeatureApiResponse;
|
|
54
53
|
|
|
55
54
|
persistUuid: boolean;
|
|
56
55
|
uuidCookieName: string;
|