@growthbook/edge-utils 0.2.4 → 0.2.5
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/README.md +5 -3
- package/dist/app.js +26 -13
- package/dist/app.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +21 -17
- package/dist/config.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/package.json +1 -1
- package/src/app.ts +20 -10
- package/src/config.ts +10 -0
- package/src/types.ts +2 -0
package/README.md
CHANGED
|
@@ -59,11 +59,13 @@ Set up an edge key-val store and optionally use a GrowthBook SDK Webhook to keep
|
|
|
59
59
|
The GrowthBook Edge App supports a number of configuration options available via environment variables:
|
|
60
60
|
|
|
61
61
|
#### Proxy behavior
|
|
62
|
-
- `PROXY_TARGET` -
|
|
63
|
-
- `FORWARD_PROXY_HEADERS` - "true" or "1" to preserve response headers from your server (default
|
|
64
|
-
- `FOLLOW_REDIRECTS` - "true" or "1" to follow redirects when processing an origin response (default
|
|
62
|
+
- `PROXY_TARGET` - Origin (non-edge) base URL to your website
|
|
63
|
+
- `FORWARD_PROXY_HEADERS` - "true" or "1" to preserve response headers from your server (default `true`)
|
|
64
|
+
- `FOLLOW_REDIRECTS` - "true" or "1" to follow redirects when processing an origin response (default `true`)
|
|
65
65
|
- `USE_DEFAULT_CONTENT_TYPE` - "true" or "1" to assume a content-type of "text-html" if no "Content-Type" header was set (default `false`).
|
|
66
66
|
- `PROCESS_TEXT_HTML_ONLY` - "true" or "1" to only process server responses with the `Content-Type: text/html` header set – others will be proxied through (default `true`).
|
|
67
|
+
- `AUTO_INFLATE` - "true" or "1" to automatically unzip gzipped content. Not needed for most vendors (default: `false`).
|
|
68
|
+
- `NOCACHE_ORIGIN` - "true" or "1" to send "nocache" headers on origin requests. Not needed for most vendors (default: `false`).
|
|
67
69
|
- `NODE_ENV` - default: `production`
|
|
68
70
|
- `ROUTES` - JSON encoded array of Routes, rules for intercepting, proxy passing, or erroring based on request URL pattern matching
|
|
69
71
|
|
package/dist/app.js
CHANGED
|
@@ -27,7 +27,7 @@ function edgeApp(context, req, res,
|
|
|
27
27
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
28
|
next) {
|
|
29
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v
|
|
30
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
31
31
|
/**
|
|
32
32
|
* 1. Init app variables
|
|
33
33
|
*/
|
|
@@ -157,7 +157,6 @@ next) {
|
|
|
157
157
|
return hookResp;
|
|
158
158
|
// Standard error response handling
|
|
159
159
|
if (originStatus >= 500 || !originResponse) {
|
|
160
|
-
console.error("Fetch: 5xx status returned");
|
|
161
160
|
return context.helpers.sendResponse(context, res, {}, "Error fetching page", {}, 500);
|
|
162
161
|
}
|
|
163
162
|
if (originStatus >= 400) {
|
|
@@ -180,19 +179,33 @@ next) {
|
|
|
180
179
|
if (csp) {
|
|
181
180
|
resHeaders["content-security-policy"] = csp;
|
|
182
181
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
182
|
+
const autoInflate = context.config.autoInflate; // fastly only!!!
|
|
183
|
+
let body = "";
|
|
184
|
+
const isGzipped = originHeaders["content-encoding"] === "gzip";
|
|
185
|
+
try {
|
|
186
|
+
const buffer = yield originResponse.arrayBuffer();
|
|
187
|
+
try {
|
|
188
|
+
if (isGzipped && autoInflate) {
|
|
189
|
+
body = pako_1.default.inflate(new Uint8Array(buffer), { to: "string" });
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
body = new TextDecoder().decode(buffer);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (_w) {
|
|
196
|
+
if (isGzipped) {
|
|
190
197
|
body = pako_1.default.inflate(new Uint8Array(buffer), { to: "string" });
|
|
191
198
|
}
|
|
192
|
-
|
|
193
|
-
|
|
199
|
+
else {
|
|
200
|
+
throw new Error("Failed to decode response as text.");
|
|
194
201
|
}
|
|
195
202
|
}
|
|
203
|
+
if (isGzipped) {
|
|
204
|
+
delete resHeaders["content-encoding"]; // Remove to prevent double decompression
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch (e) {
|
|
208
|
+
console.error("Response decoding error", e);
|
|
196
209
|
}
|
|
197
210
|
let setBody = (s) => {
|
|
198
211
|
body = s;
|
|
@@ -202,7 +215,7 @@ next) {
|
|
|
202
215
|
root = (0, node_html_parser_1.parse)(body);
|
|
203
216
|
}
|
|
204
217
|
// Body ready hook (pre-DOM-mutations):
|
|
205
|
-
hookResp = yield ((
|
|
218
|
+
hookResp = yield ((_t = (_s = context === null || context === void 0 ? void 0 : context.hooks) === null || _s === void 0 ? void 0 : _s.onBodyReady) === null || _t === void 0 ? void 0 : _t.call(_s, { context, req, res, next, requestUrl, redirectRequestUrl, originUrl, route, attributes, growthbook, originResponse, originStatus, originHeaders, resHeaders, body, setBody, root }));
|
|
206
219
|
if (hookResp)
|
|
207
220
|
return hookResp;
|
|
208
221
|
/**
|
|
@@ -230,7 +243,7 @@ next) {
|
|
|
230
243
|
oldUrl: requestUrl,
|
|
231
244
|
});
|
|
232
245
|
// Final hook (post-mutations) before sending back
|
|
233
|
-
hookResp = yield ((
|
|
246
|
+
hookResp = yield ((_v = (_u = context === null || context === void 0 ? void 0 : context.hooks) === null || _u === void 0 ? void 0 : _u.onBeforeResponse) === null || _v === void 0 ? void 0 : _v.call(_u, { context, req, res, next, requestUrl, redirectRequestUrl, originUrl, route, attributes, growthbook, originResponse, originStatus, originHeaders, resHeaders, body, setBody }));
|
|
234
247
|
if (hookResp)
|
|
235
248
|
return hookResp;
|
|
236
249
|
/**
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAwBA,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAwBA,0BA4PC;AAGD,oCAgCC;AAvTD,uDAMgC;AAEhC,6CAAiD;AACjD,qCAAoD;AACpD,iDAAmD;AACnD,0DAAkC;AAClC,uCAAqC;AACrC,+DAAgE;AAChE,uDAAsD;AACtD,gDAAwB;AASxB,SAAsB,OAAO,CAC3B,OAA0B,EAC1B,GAAQ,EACR,GAAS;AACT,8DAA8D;AAC9D,IAAU;;;QAEV;;WAEG;QACD,gBAAgB;QAClB,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAClD,iBAAiB;QACjB,IAAI,cAAc,GAAuC,SAAS,CAAC;QACnE,IAAI,UAAU,GAAuC,EAAE,CAAC;QACxD,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;YACnD,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC;QACF,gBAAgB;QAChB,IAAI,QAAgC,CAAC;QACrC,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,SAAS,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA,CAAC;QACjG,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,gBAAgB;QAChB,IAAI,UAAU,GAA8B,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QAEhD,qDAAqD;QACrD,IAAI,oBAAoB,GAAa,EAAE,CAAC;QACxC,MAAM,uBAAuB,GAAG,CAAC,SAAmB,EAAE,EAAE,CACtD,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;QAErC;;WAEG;QACH,+BAA+B;QAC/B,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YACpD,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,kCAAkC;QAClC,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,OAAO,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA,CAAC;QACtG,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B;;WAEG;QACH,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9E,+CAA+C;QAC/C,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,gBAAgB,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA,CAAC;QAC3H,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B;;WAEG;QACH,IAAA,yBAAY,EAAC;YACX,YAAY,EAAE,MAAA,OAAO,CAAC,MAAM,0CAAE,YAAY;YAC1C,YAAY,EAAE,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM;SACrC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YACvC,IAAA,2BAAc,EAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB;YAClC,oBAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAE/D,IAAI,mBAAwF,CAAC;QAC7F,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzC,mBAAmB;gBACjB,MAAA,OAAO,CAAC,MAAM,CAAC,uBAAuB,mCACtC,IAAI,6CAAuB,CAAC;oBAC1B,OAAO;oBACP,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB;oBACzC,GAAG;iBACJ,CAAC,CAAC;QACP,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAC/B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;YACnC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa;YAC3C,UAAU;YACV,uBAAuB,EAAE,CAAC,OAAgC,EAAE,EAAE;gBAC5D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO,GAAG,EAAE;gBACZ,CAAC,CAAC;YACJ,CAAC;YACD,GAAG,EAAE,UAAU;YACf,wBAAwB,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CACpD,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAC1C;YACD,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB;YACrD,6BAA6B,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CACzD,OAAO,CAAC,MAAM,CAAC,yBAAyB,CACzC;YACD,wCAAwC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CACpE,OAAO,CAAC,MAAM,CAAC,oCAAoC,CACpD;YACD,mBAAmB;YACnB,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB;SACtD,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;SAChC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,gBAAgB,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA,CAAC;QACvI,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B;;WAEG;QACH,MAAM,kBAAkB,GAAG,MAAM,IAAA,kBAAQ,EAAC;YACxC,OAAO;YACP,GAAG;YACH,aAAa;YACb,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,eAAe;YACf,uBAAuB,EAAE,uBAAuB;SACjD,CAAC,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,KAAK,UAAU,CAAC,CAAC;QAEzF,gDAAgD;QAChD,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,mBAAmB,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA,CAAC;QAC9J,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B;;WAEG;QACH,IAAI,CAAC;YACH,cAAc,IAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAC1C,OAAO,EACP,SAAS,EACT,GAAG,CACoB,CAAA,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEjH,sDAAsD;QACtD,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,aAAa,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA,CAAC;QACtL,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,mCAAmC;QACnC,IAAI,YAAY,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;YACxB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,yCAAyC;QACzC,MAAM,aAAa,GAAG,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACvC,UAAU,mCAAQ,aAAa,GAAK,UAAU,CAAE,CAAC;QACnD,CAAC;QACD,4CAA4C;QAC5C,UAAU,CAAC,cAAc,CAAC,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,cAAc,CAAC,CAAC;QAE7D,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACxE,UAAU,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC,MAAA,UAAU,CAAC,cAAc,CAAC,mCAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACpG,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE,CAAC;YACR,UAAU,CAAC,yBAAyB,CAAC,GAAG,GAAG,CAAC;QAC9C,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,iBAAiB;QACjE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,MAAM,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAAC,WAAM,CAAC;gBACP,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,yCAAyC;YAClF,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE;YAC1B,IAAI,GAAG,CAAC,CAAC;QACX,CAAC,CAAA;QAED,IAAI,IAA6B,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAClC,IAAI,GAAG,IAAA,wBAAK,EAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,uCAAuC;QACvC,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,WAAW,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC;QACpO,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B;;WAEG;QACH,MAAM,IAAA,gCAAiB,EAAC;YACtB,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,KAAK;YACL,UAAU;SACX,CAAC,CAAC;QAEH;;WAEG;QACH,IAAA,qBAAY,EAAC;YACX,OAAO;YACP,IAAI;YACJ,OAAO;YACP,KAAK;YACL,UAAU;YACV,UAAU;YACV,oBAAoB;YACpB,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,kDAAkD;QAClD,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,gBAAgB,mDAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA,CAAC;QACnO,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B;;WAEG;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;CAAA;AAGD,SAAgB,YAAY,CAAW,OAA0B,EAAE,UAAkB,EAAE,aAAuB;IAC5G,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;IAC/C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,aAAa,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,oCAAoC,CAAC;QAC1H,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC;QACrB,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ;QACtC,CAAC,CAAC,cAAc,CAAC,QAAQ;QACzB,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ;QACtC,CAAC,CAAC,cAAc,CAAC,QAAQ;QACzB,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI;QAC9B,CAAC,CAAC,cAAc,CAAC,IAAI;QACrB,CAAC,CAAC,QAAQ,KAAK,OAAO;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC;IAEV,IAAI,MAAM,GAAG,GAAG,QAAQ,KAAK,QAAQ,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAC7D,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACzC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC;IACpC,CAAC;IACD,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,OAAY;IACnC,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,IAAI,EAAE,CAAC;AACvB,CAAC"}
|
package/dist/config.d.ts
CHANGED
package/dist/config.js
CHANGED
|
@@ -9,6 +9,8 @@ exports.defaultContext = {
|
|
|
9
9
|
followRedirects: true,
|
|
10
10
|
useDefaultContentType: false,
|
|
11
11
|
processTextHtmlOnly: true,
|
|
12
|
+
autoInflate: false,
|
|
13
|
+
nocacheOrigin: false,
|
|
12
14
|
environment: "production",
|
|
13
15
|
maxPayloadSize: "2mb",
|
|
14
16
|
runVisualEditorExperiments: "everywhere",
|
|
@@ -51,16 +53,18 @@ exports.defaultContext = {
|
|
|
51
53
|
};
|
|
52
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
55
|
function getConfig(env) {
|
|
54
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
56
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
55
57
|
const config = exports.defaultContext.config;
|
|
56
58
|
config.proxyTarget = (_a = env.PROXY_TARGET) !== null && _a !== void 0 ? _a : exports.defaultContext.config.proxyTarget;
|
|
57
59
|
config.forwardProxyHeaders = ["true", "1"].includes((_b = env.FORWARD_PROXY_HEADERS) !== null && _b !== void 0 ? _b : "" + exports.defaultContext.config.forwardProxyHeaders);
|
|
58
60
|
config.followRedirects = ["true", "1"].includes((_c = env.FOLLOW_REDIRECTS) !== null && _c !== void 0 ? _c : "" + exports.defaultContext.config.followRedirects);
|
|
59
61
|
config.useDefaultContentType = ["true", "1"].includes((_d = env.USE_DEFAULT_CONTENT_TYPE) !== null && _d !== void 0 ? _d : "" + exports.defaultContext.config.useDefaultContentType);
|
|
60
62
|
config.processTextHtmlOnly = ["true", "1"].includes((_e = env.PROCESS_TEXT_HTML_ONLY) !== null && _e !== void 0 ? _e : "" + exports.defaultContext.config.processTextHtmlOnly);
|
|
61
|
-
config.
|
|
63
|
+
config.autoInflate = ["true", "1"].includes((_f = env.AUTO_INFLATE) !== null && _f !== void 0 ? _f : "" + exports.defaultContext.config.autoInflate);
|
|
64
|
+
config.nocacheOrigin = ["true", "1"].includes((_g = env.NOCACHE_ORIGIN) !== null && _g !== void 0 ? _g : "" + exports.defaultContext.config.nocacheOrigin);
|
|
65
|
+
config.environment = (_h = env.NODE_ENV) !== null && _h !== void 0 ? _h : exports.defaultContext.config.environment;
|
|
62
66
|
config.maxPayloadSize =
|
|
63
|
-
(
|
|
67
|
+
(_j = env.MAX_PAYLOAD_SIZE) !== null && _j !== void 0 ? _j : exports.defaultContext.config.maxPayloadSize;
|
|
64
68
|
try {
|
|
65
69
|
config.routes = JSON.parse(env.ROUTES || "[]");
|
|
66
70
|
}
|
|
@@ -68,23 +72,23 @@ function getConfig(env) {
|
|
|
68
72
|
console.error("Error parsing ROUTES", e);
|
|
69
73
|
config.routes = [];
|
|
70
74
|
}
|
|
71
|
-
config.runVisualEditorExperiments = ((
|
|
75
|
+
config.runVisualEditorExperiments = ((_k = env.RUN_VISUAL_EDITOR_EXPERIMENTS) !== null && _k !== void 0 ? _k : exports.defaultContext.config
|
|
72
76
|
.runVisualEditorExperiments);
|
|
73
|
-
config.disableJsInjection = ["true", "1"].includes((
|
|
74
|
-
config.alwaysParseDOM = ["true", "1"].includes((
|
|
75
|
-
config.runUrlRedirectExperiments = ((
|
|
77
|
+
config.disableJsInjection = ["true", "1"].includes((_l = env.DISABLE_JS_INJECTION) !== null && _l !== void 0 ? _l : "" + exports.defaultContext.config.disableJsInjection);
|
|
78
|
+
config.alwaysParseDOM = ["true", "1"].includes((_m = env.ALWAYS_PARSE_DOM) !== null && _m !== void 0 ? _m : "" + exports.defaultContext.config.alwaysParseDOM);
|
|
79
|
+
config.runUrlRedirectExperiments = ((_o = env.RUN_URL_REDIRECT_EXPERIMENTS) !== null && _o !== void 0 ? _o : exports.defaultContext.config
|
|
76
80
|
.runUrlRedirectExperiments);
|
|
77
81
|
config.runCrossOriginUrlRedirectExperiments =
|
|
78
|
-
((
|
|
82
|
+
((_p = env.RUN_CROSS_ORIGIN_URL_REDIRECT_EXPERIMENTS) !== null && _p !== void 0 ? _p : exports.defaultContext.config
|
|
79
83
|
.runCrossOriginUrlRedirectExperiments);
|
|
80
|
-
config.injectRedirectUrlScript = ["true", "1"].includes((
|
|
84
|
+
config.injectRedirectUrlScript = ["true", "1"].includes((_q = env.INJECT_REDIRECT_URL_SCRIPT) !== null && _q !== void 0 ? _q : "" + exports.defaultContext.config.injectRedirectUrlScript);
|
|
81
85
|
config.maxRedirects = parseInt(env.MAX_REDIRECTS || "" + exports.defaultContext.config.maxRedirects);
|
|
82
86
|
config.scriptInjectionPattern =
|
|
83
87
|
env.SCRIPT_INJECTION_PATTERN ||
|
|
84
88
|
exports.defaultContext.config.scriptInjectionPattern;
|
|
85
|
-
config.disableInjections = ["true", "1"].includes((
|
|
86
|
-
config.enableStreaming = ["true", "1"].includes((
|
|
87
|
-
config.enableStickyBucketing = ["true", "1"].includes((
|
|
89
|
+
config.disableInjections = ["true", "1"].includes((_r = env.DISABLE_INJECTIONS) !== null && _r !== void 0 ? _r : "" + exports.defaultContext.config.disableInjections);
|
|
90
|
+
config.enableStreaming = ["true", "1"].includes((_s = env.ENABLE_STREAMING) !== null && _s !== void 0 ? _s : "" + exports.defaultContext.config.enableStreaming);
|
|
91
|
+
config.enableStickyBucketing = ["true", "1"].includes((_t = env.ENABLE_STICKY_BUCKETING) !== null && _t !== void 0 ? _t : "" + exports.defaultContext.config.enableStickyBucketing);
|
|
88
92
|
"STICKY_BUCKET_PREFIX" in env &&
|
|
89
93
|
(config.stickyBucketPrefix = env.STICKY_BUCKET_PREFIX);
|
|
90
94
|
config.contentSecurityPolicy = env.CONTENT_SECURITY_POLICY || "";
|
|
@@ -92,8 +96,8 @@ function getConfig(env) {
|
|
|
92
96
|
config.nonce = env.NONCE || undefined;
|
|
93
97
|
config.crypto = crypto;
|
|
94
98
|
// growthbook
|
|
95
|
-
config.apiHost = ((
|
|
96
|
-
config.clientKey = (
|
|
99
|
+
config.apiHost = ((_u = env.GROWTHBOOK_API_HOST) !== null && _u !== void 0 ? _u : "").replace(/\/*$/, "");
|
|
100
|
+
config.clientKey = (_v = env.GROWTHBOOK_CLIENT_KEY) !== null && _v !== void 0 ? _v : "";
|
|
97
101
|
"GROWTHBOOK_DECRYPTION_KEY" in env &&
|
|
98
102
|
(config.decryptionKey = env.GROWTHBOOK_DECRYPTION_KEY);
|
|
99
103
|
"GROWTHBOOK_TRACKING_CALLBACK" in env &&
|
|
@@ -106,12 +110,12 @@ function getConfig(env) {
|
|
|
106
110
|
console.error("Error parsing GROWTHBOOK_PAYLOAD", e);
|
|
107
111
|
}
|
|
108
112
|
"STALE_TTL" in env && (config.staleTTL = parseInt(env.STALE_TTL || (1000 * 60) + ""));
|
|
109
|
-
config.persistUuid = ["true", "1"].includes((
|
|
110
|
-
config.noAutoCookies = ["true", "1"].includes((
|
|
113
|
+
config.persistUuid = ["true", "1"].includes((_w = env.PERSIST_UUID) !== null && _w !== void 0 ? _w : "" + exports.defaultContext.config.persistUuid);
|
|
114
|
+
config.noAutoCookies = ["true", "1"].includes((_x = env.NO_AUTO_COOKIES) !== null && _x !== void 0 ? _x : "" + exports.defaultContext.config.noAutoCookies);
|
|
111
115
|
config.uuidCookieName =
|
|
112
116
|
env.UUID_COOKIE_NAME || exports.defaultContext.config.uuidCookieName;
|
|
113
117
|
config.uuidKey = env.UUID_KEY || exports.defaultContext.config.uuidKey;
|
|
114
|
-
config.skipAutoAttributes = ["true", "1"].includes((
|
|
118
|
+
config.skipAutoAttributes = ["true", "1"].includes((_y = env.SKIP_AUTO_ATTRIBUTES) !== null && _y !== void 0 ? _y : "" + exports.defaultContext.config.skipAutoAttributes);
|
|
115
119
|
return config;
|
|
116
120
|
}
|
|
117
121
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
package/src/app.ts
CHANGED
|
@@ -177,7 +177,6 @@ export async function edgeApp<Req, Res>(
|
|
|
177
177
|
|
|
178
178
|
// Standard error response handling
|
|
179
179
|
if (originStatus >= 500 || !originResponse) {
|
|
180
|
-
console.error("Fetch: 5xx status returned");
|
|
181
180
|
return context.helpers.sendResponse(context, res, {}, "Error fetching page", {}, 500);
|
|
182
181
|
}
|
|
183
182
|
if (originStatus >= 400) {
|
|
@@ -204,18 +203,29 @@ export async function edgeApp<Req, Res>(
|
|
|
204
203
|
resHeaders["content-security-policy"] = csp;
|
|
205
204
|
}
|
|
206
205
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
206
|
+
const autoInflate = context.config.autoInflate; // fastly only!!!
|
|
207
|
+
let body = "";
|
|
208
|
+
const isGzipped = originHeaders["content-encoding"] === "gzip";
|
|
209
|
+
try {
|
|
210
|
+
const buffer = await originResponse.arrayBuffer();
|
|
211
|
+
try {
|
|
212
|
+
if (isGzipped && autoInflate) {
|
|
213
|
+
body = pako.inflate(new Uint8Array(buffer), { to: "string" });
|
|
214
|
+
} else {
|
|
215
|
+
body = new TextDecoder().decode(buffer);
|
|
216
|
+
}
|
|
217
|
+
} catch {
|
|
218
|
+
if (isGzipped) {
|
|
214
219
|
body = pako.inflate(new Uint8Array(buffer), { to: "string" });
|
|
215
|
-
}
|
|
216
|
-
|
|
220
|
+
} else {
|
|
221
|
+
throw new Error("Failed to decode response as text.");
|
|
217
222
|
}
|
|
218
223
|
}
|
|
224
|
+
if (isGzipped) {
|
|
225
|
+
delete resHeaders["content-encoding"]; // Remove to prevent double decompression
|
|
226
|
+
}
|
|
227
|
+
} catch (e) {
|
|
228
|
+
console.error("Response decoding error", e);
|
|
219
229
|
}
|
|
220
230
|
let setBody = (s: string) => {
|
|
221
231
|
body = s;
|
package/src/config.ts
CHANGED
|
@@ -10,6 +10,8 @@ export const defaultContext: Context<Req, Res> = {
|
|
|
10
10
|
followRedirects: true,
|
|
11
11
|
useDefaultContentType: false,
|
|
12
12
|
processTextHtmlOnly: true,
|
|
13
|
+
autoInflate: false,
|
|
14
|
+
nocacheOrigin: false,
|
|
13
15
|
environment: "production",
|
|
14
16
|
maxPayloadSize: "2mb",
|
|
15
17
|
runVisualEditorExperiments: "everywhere",
|
|
@@ -57,6 +59,8 @@ export interface ConfigEnv {
|
|
|
57
59
|
FOLLOW_REDIRECTS?: string;
|
|
58
60
|
USE_DEFAULT_CONTENT_TYPE?: string;
|
|
59
61
|
PROCESS_TEXT_HTML_ONLY?: string;
|
|
62
|
+
AUTO_INFLATE?: string;
|
|
63
|
+
NOCACHE_ORIGIN?: string;
|
|
60
64
|
NODE_ENV?: string;
|
|
61
65
|
MAX_PAYLOAD_SIZE?: string;
|
|
62
66
|
|
|
@@ -116,6 +120,12 @@ export function getConfig(env: ConfigEnv): Config {
|
|
|
116
120
|
config.processTextHtmlOnly = ["true", "1"].includes(
|
|
117
121
|
env.PROCESS_TEXT_HTML_ONLY ?? "" + defaultContext.config.processTextHtmlOnly,
|
|
118
122
|
);
|
|
123
|
+
config.autoInflate = ["true", "1"].includes(
|
|
124
|
+
env.AUTO_INFLATE ?? "" + defaultContext.config.autoInflate,
|
|
125
|
+
);
|
|
126
|
+
config.nocacheOrigin = ["true", "1"].includes(
|
|
127
|
+
env.NOCACHE_ORIGIN ?? "" + defaultContext.config.nocacheOrigin,
|
|
128
|
+
);
|
|
119
129
|
config.environment = env.NODE_ENV ?? defaultContext.config.environment;
|
|
120
130
|
config.maxPayloadSize =
|
|
121
131
|
env.MAX_PAYLOAD_SIZE ?? defaultContext.config.maxPayloadSize;
|
package/src/types.ts
CHANGED