@stackbit/dev-common 0.5.49-staging.1 → 0.5.49-staging.2

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.
@@ -41,7 +41,7 @@ function proxyModifyResponseHandler(proxyRes, req, res, options = {}) {
41
41
  const headers = proxyRes.headers;
42
42
  delete headers['x-frame-options'];
43
43
  delete headers['content-security-policy'];
44
- res.set(headers);
44
+ setHeaders(res, headers);
45
45
  if (proxyRes.statusCode) {
46
46
  res.status(proxyRes.statusCode);
47
47
  }
@@ -62,7 +62,7 @@ function proxyModifyResponseHandler(proxyRes, req, res, options = {}) {
62
62
  }
63
63
  catch (error) {
64
64
  options.logger?.error(`[${logTagName}] error while unzipping response`, { error: error, url: req.url, method: req.method });
65
- res.set(proxyRes.headers);
65
+ setHeaders(res, proxyRes.headers);
66
66
  if (proxyRes.statusCode) {
67
67
  res.status(proxyRes.statusCode);
68
68
  }
@@ -78,7 +78,7 @@ function proxyModifyResponseHandler(proxyRes, req, res, options = {}) {
78
78
  body = await gzip(body);
79
79
  }
80
80
  // don't copy content-length because we are changing it when updating html
81
- res.set(lodash_1.default.omit(proxyRes.headers, ['content-length']));
81
+ setHeaders(res, lodash_1.default.omit(proxyRes.headers, ['content-length']));
82
82
  if (proxyRes.statusCode) {
83
83
  res.status(proxyRes.statusCode);
84
84
  }
@@ -122,4 +122,14 @@ function injectScript(html, url, code) {
122
122
  return html;
123
123
  }
124
124
  exports.injectScript = injectScript;
125
+ function setHeaders(res, headers) {
126
+ res.set(headers);
127
+ const contentType = headers['content-type'];
128
+ if (contentType && !contentType.includes('charset')) {
129
+ // if original response header doesn't include charset - don't include it here as well
130
+ // for instance, it fixes proxy nextjs 14 which checks for content-type strictly and because express applies charset
131
+ // here, next does hard reload instead of soft
132
+ res.writeHead(200, { 'content-type': contentType });
133
+ }
134
+ }
125
135
  //# sourceMappingURL=proxy-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-utils.js","sourceRoot":"","sources":["../../src/utils/proxy-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-utils.js","sourceRoot":"","sources":["../../src/utils/proxy-utils.ts"],"names":[],"mappings":";;;;;;AACA,8CAAsB;AACtB,gDAAwB;AACxB,gDAAwB;AACxB,oDAAuB;AAEvB,MAAM,IAAI,GAAG,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,MAAM,CAAC,CAAC;AAE3C,SAAgB,MAAM,CAAC,GAAY;IAC/B,OAAO,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAFD,wBAEC;AAED,SAAgB,MAAM,CAAC,GAAY;IAC/B,OAAO,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7E,CAAC;AAFD,wBAEC;AAED,SAAgB,IAAI,CAAC,GAAY;IAC7B,OAAO,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC1F,CAAC;AAFD,oBAEC;AAED,SAAgB,mCAAmC,CAAC,OAAY;IAC5D,OAAO,CAAC,QAAiB,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACtD,0BAA0B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC;AACN,CAAC;AAJD,kFAIC;AAED,SAAgB,0BAA0B,CAAC,QAAiB,EAAE,GAAY,EAAE,GAAa,EAAE,UAAe,EAAE;IACxG,MAAM,UAAU,GAAG,gBAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxH,CAAC,CAAC,CAAC;KACN;IACD,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAEtC,MAAM,WAAW,GAAG,gBAAC,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5G,IAAI,WAAW,EAAE;QACb,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC1C,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACnC;QACD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACpC,OAAO;KACV;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QAC1B,IAAI,IAAI,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,OAAO,EAAE;YACT,IAAI;gBACA,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,UAAU,kCAAkC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5H,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,QAAQ,CAAC,UAAU,EAAE;oBACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;iBACnC;gBACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;aACV;SACJ;QAED,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,gBAAC,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACvD;QAED,IAAI,OAAO,EAAE;YACT,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;QAED,0EAA0E;QAC1E,UAAU,CAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACnC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC;AAjED,gEAiEC;AAED,gHAAgH;AAChH,mHAAmH;AACnH,4EAA4E;AAC5E,6FAA6F;AAC7F,sGAAsG;AACtG,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,SAAS,sBAAsB,CAAC,QAAiB,EAAE,GAAY;IAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAW,CAAC,QAAQ,EAAE,CAAC,EAAE;QAC/G,OAAO;KACV;IAED,MAAM,CAAC,GAAQ,aAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,wDAAwD;IACxD,IAAI,CAAC,CAAC,IAAI,EAAE;QACR,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAChC;IACD,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY,EAAE,GAAY,EAAE,IAAa;IAClE,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,uCAAuC,GAAG,aAAa,CAAC,CAAC,CAAC,kCAAkC,IAAI,WAAW,CAAC;IACvI,IAAI,IAAI,EAAE;QACN,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,YAAY,SAAS,CAAC,CAAC;SAC5D;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,YAAY,SAAS,CAAC,CAAC;SAC5D;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,YAAY,SAAS,CAAC,CAAC;SAC5D;aAAM;YACH,OAAO,IAAI,GAAG,YAAY,CAAC;SAC9B;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAdD,oCAcC;AAED,SAAS,UAAU,CAAC,GAAa,EAAE,OAA4B;IAC3D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjB,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACjD,sFAAsF;QACtF,oHAAoH;QACpH,8CAA8C;QAC9C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;KACvD;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/dev-common",
3
- "version": "0.5.49-staging.1",
3
+ "version": "0.5.49-staging.2",
4
4
  "description": "stackbit-dev",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -52,5 +52,5 @@
52
52
  "@types/lodash": "^4.14.178",
53
53
  "@types/uuid": "^8.3.4"
54
54
  },
55
- "gitHead": "912a86628ec8a97c99067e2dc7a602cd71427adb"
55
+ "gitHead": "6b31f07ea8f7e367321cc5f5f8c4e4efe6d5c1dc"
56
56
  }
@@ -40,7 +40,7 @@ export function proxyModifyResponseHandler(proxyRes: Request, req: Request, res:
40
40
  const headers = proxyRes.headers;
41
41
  delete headers['x-frame-options'];
42
42
  delete headers['content-security-policy'];
43
- res.set(headers);
43
+ setHeaders(res, headers);
44
44
  if (proxyRes.statusCode) {
45
45
  res.status(proxyRes.statusCode);
46
46
  }
@@ -64,7 +64,7 @@ export function proxyModifyResponseHandler(proxyRes: Request, req: Request, res:
64
64
  body = await gunzip(body);
65
65
  } catch (error) {
66
66
  options.logger?.error(`[${logTagName}] error while unzipping response`, { error: error, url: req.url, method: req.method });
67
- res.set(proxyRes.headers);
67
+ setHeaders(res, proxyRes.headers);
68
68
  if (proxyRes.statusCode) {
69
69
  res.status(proxyRes.statusCode);
70
70
  }
@@ -84,7 +84,7 @@ export function proxyModifyResponseHandler(proxyRes: Request, req: Request, res:
84
84
  }
85
85
 
86
86
  // don't copy content-length because we are changing it when updating html
87
- res.set(_.omit(proxyRes.headers, ['content-length']));
87
+ setHeaders(res, _.omit(proxyRes.headers, ['content-length']));
88
88
  if (proxyRes.statusCode) {
89
89
  res.status(proxyRes.statusCode);
90
90
  }
@@ -126,3 +126,14 @@ export function injectScript(html: string, url?: string, code?: string) {
126
126
  }
127
127
  return html;
128
128
  }
129
+
130
+ function setHeaders(res: Response, headers: Record<string, any>) {
131
+ res.set(headers);
132
+ const contentType = headers['content-type'];
133
+ if (contentType && !contentType.includes('charset')) {
134
+ // if original response header doesn't include charset - don't include it here as well
135
+ // for instance, it fixes proxy nextjs 14 which checks for content-type strictly and because express applies charset
136
+ // here, next does hard reload instead of soft
137
+ res.writeHead(200, { 'content-type': contentType });
138
+ }
139
+ }