vike 0.4.171-commit-43aef47 → 0.4.171-commit-75e1588

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.
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.addSsrMiddleware = void 0;
4
7
  const renderPage_js_1 = require("../../runtime/renderPage.js");
8
+ const utils_js_1 = require("../utils.js");
9
+ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
5
10
  function addSsrMiddleware(middlewares) {
6
11
  middlewares.use(async (req, res, next) => {
7
12
  if (res.headersSent)
@@ -10,12 +15,21 @@ function addSsrMiddleware(middlewares) {
10
15
  if (!url)
11
16
  return next();
12
17
  const { headers } = req;
13
- const userAgent = headers['user-agent'];
14
18
  const pageContextInit = {
15
19
  urlOriginal: url,
16
- userAgent,
17
- headers
20
+ headersOriginal: headers
18
21
  };
22
+ Object.defineProperty(pageContextInit, 'userAgent', {
23
+ get() {
24
+ // TODO/next-major-release: assertUsage() instead of assertWarning()
25
+ (0, utils_js_1.assertWarning)(false, `${picocolors_1.default.cyan('pageContext.userAgent')} is deprecated: use ${picocolors_1.default.cyan("pageContext.headers['user-agent']")} instead.`, {
26
+ showStackTrace: true,
27
+ onlyOnce: true
28
+ });
29
+ return headers['user-agent'];
30
+ },
31
+ enumerable: false
32
+ });
19
33
  let pageContext;
20
34
  try {
21
35
  pageContext = await (0, renderPage_js_1.renderPage)(pageContextInit);
@@ -147,7 +147,25 @@ function getPageContextInitEnhanced(pageContextInit, renderContext, { urlCompute
147
147
  _urlHandler: urlHandler,
148
148
  isClientSideNavigation
149
149
  });
150
+ // pageContext.urlParsed
150
151
  (0, addUrlComputedProps_js_1.addUrlComputedProps)(pageContextInitEnhanced, !urlComputedPropsNonEnumerable);
152
+ // pageContext.headers
153
+ {
154
+ let headers;
155
+ if (pageContextInit.headersOriginal) {
156
+ headers = (0, utils_js_1.normalizeHeaders)(pageContextInit.headersOriginal);
157
+ (0, utils_js_1.assertUsage)(!('headers' in pageContextInit), "You're defining pageContextInit.headersOriginal as well as pageContextInit.headers but you should only define pageContextInit.headersOriginal instead, see https://vike.dev/headers");
158
+ }
159
+ else if (pageContextInit.headers) {
160
+ headers = pageContextInit.headers;
161
+ // TODO/next-major-release: assertUsage() instead of assertWarning()
162
+ (0, utils_js_1.assertWarning)(false, 'Setting pageContextInit.headers is deprecated: set pageContextInit.headersOriginal instead, see https://vike.dev/headers', { onlyOnce: true });
163
+ }
164
+ else {
165
+ headers = null;
166
+ }
167
+ (0, utils_js_1.objectAssign)(pageContextInitEnhanced, { headers });
168
+ }
151
169
  return pageContextInitEnhanced;
152
170
  }
153
171
  exports.getPageContextInitEnhanced = getPageContextInitEnhanced;
@@ -69,3 +69,4 @@ __exportStar(require("../../utils/formatHintLog.js"), exports);
69
69
  __exportStar(require("../../utils/joinEnglish.js"), exports);
70
70
  __exportStar(require("../../utils/isArrayOfStrings.js"), exports);
71
71
  __exportStar(require("../../utils/escapeHtml.js"), exports);
72
+ __exportStar(require("../../utils/normalizeHeaders.js"), exports);
@@ -92,7 +92,7 @@ function assertWarning(condition, msg, { onlyOnce, showStackTrace }) {
92
92
  }
93
93
  globalObject.onBeforeLog?.();
94
94
  if (showStackTrace) {
95
- const err = new Error(msg);
95
+ const err = (0, createErrorWithCleanStackTrace_js_1.createErrorWithCleanStackTrace)(msg, numberOfStackTraceLinesToRemove);
96
96
  globalObject.showStackTraceList.add(err);
97
97
  globalObject.logger(err, 'warn');
98
98
  }
@@ -8,6 +8,6 @@ function assertNodeVersion() {
8
8
  if (!(0, isNodeJS_js_1.isNodeJS)())
9
9
  return;
10
10
  const version = process.versions.node;
11
- (0, assertVersion_js_1.assertVersion)('Node.js', version, '16.0.0');
11
+ (0, assertVersion_js_1.assertVersion)('Node.js', version, '18.0.0');
12
12
  }
13
13
  exports.assertNodeVersion = assertNodeVersion;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeHeaders = void 0;
4
+ function normalizeHeaders(
5
+ /* This type is precise, too precise which can be annoying: e.g. cannot pass a string[][] argument because it doesn't match the more precise [string,string][] type.
6
+ headersOriginal ConstructorParameters<typeof Headers>[0]
7
+ */
8
+ headersOriginal) {
9
+ const headersStandard = new Headers(headersOriginal);
10
+ const headers = Object.fromEntries(headersStandard.entries());
11
+ return headers;
12
+ }
13
+ exports.normalizeHeaders = normalizeHeaders;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = exports.projectInfo = void 0;
4
- const PROJECT_VERSION = '0.4.171-commit-43aef47';
4
+ const PROJECT_VERSION = '0.4.171-commit-75e1588';
5
5
  exports.PROJECT_VERSION = PROJECT_VERSION;
6
6
  const projectInfo = {
7
7
  projectName: 'Vike',
@@ -1,5 +1,7 @@
1
1
  export { addSsrMiddleware };
2
2
  import { renderPage } from '../../runtime/renderPage.js';
3
+ import { assertWarning } from '../utils.js';
4
+ import pc from '@brillout/picocolors';
3
5
  function addSsrMiddleware(middlewares) {
4
6
  middlewares.use(async (req, res, next) => {
5
7
  if (res.headersSent)
@@ -8,12 +10,21 @@ function addSsrMiddleware(middlewares) {
8
10
  if (!url)
9
11
  return next();
10
12
  const { headers } = req;
11
- const userAgent = headers['user-agent'];
12
13
  const pageContextInit = {
13
14
  urlOriginal: url,
14
- userAgent,
15
- headers
15
+ headersOriginal: headers
16
16
  };
17
+ Object.defineProperty(pageContextInit, 'userAgent', {
18
+ get() {
19
+ // TODO/next-major-release: assertUsage() instead of assertWarning()
20
+ assertWarning(false, `${pc.cyan('pageContext.userAgent')} is deprecated: use ${pc.cyan("pageContext.headers['user-agent']")} instead.`, {
21
+ showStackTrace: true,
22
+ onlyOnce: true
23
+ });
24
+ return headers['user-agent'];
25
+ },
26
+ enumerable: false
27
+ });
17
28
  let pageContext;
18
29
  try {
19
30
  pageContext = await renderPage(pageContextInit);
@@ -38,6 +38,8 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
38
38
  pageContextSerialized: null;
39
39
  pageContext: {
40
40
  urlOriginal: string;
41
+ headersOriginal?: unknown;
42
+ headers?: unknown;
41
43
  } & {
42
44
  _objectCreatedByVike: boolean;
43
45
  _baseServer: string;
@@ -51,12 +53,16 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
51
53
  _onBeforeRouteHook: Hook | null;
52
54
  _pageContextInit: {
53
55
  urlOriginal: string;
56
+ headersOriginal?: unknown;
57
+ headers?: unknown;
54
58
  };
55
59
  _urlRewrite: string | null;
56
60
  _urlHandler: ((url: string) => string) | null;
57
61
  isClientSideNavigation: boolean;
58
62
  } & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
59
63
  _urlRewrite: string | null;
64
+ } & {
65
+ headers: Record<string, string> | null;
60
66
  } & {
61
67
  Page: unknown;
62
68
  _isHtmlOnly: boolean;
@@ -89,6 +95,8 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
89
95
  pageContextSerialized: string;
90
96
  pageContext: {
91
97
  urlOriginal: string;
98
+ headersOriginal?: unknown;
99
+ headers?: unknown;
92
100
  } & {
93
101
  _objectCreatedByVike: boolean;
94
102
  _baseServer: string;
@@ -102,12 +110,16 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
102
110
  _onBeforeRouteHook: Hook | null;
103
111
  _pageContextInit: {
104
112
  urlOriginal: string;
113
+ headersOriginal?: unknown;
114
+ headers?: unknown;
105
115
  };
106
116
  _urlRewrite: string | null;
107
117
  _urlHandler: ((url: string) => string) | null;
108
118
  isClientSideNavigation: boolean;
109
119
  } & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
110
120
  _urlRewrite: string | null;
121
+ } & {
122
+ headers: Record<string, string> | null;
111
123
  } & {
112
124
  Page: unknown;
113
125
  _isHtmlOnly: boolean;
@@ -141,6 +153,8 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
141
153
  pageContextSerialized: null;
142
154
  pageContext: {
143
155
  urlOriginal: string;
156
+ headersOriginal?: unknown;
157
+ headers?: unknown;
144
158
  } & {
145
159
  _objectCreatedByVike: boolean;
146
160
  _baseServer: string;
@@ -154,12 +168,16 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
154
168
  _onBeforeRouteHook: Hook | null;
155
169
  _pageContextInit: {
156
170
  urlOriginal: string;
171
+ headersOriginal?: unknown;
172
+ headers?: unknown;
157
173
  };
158
174
  _urlRewrite: string | null;
159
175
  _urlHandler: ((url: string) => string) | null;
160
176
  isClientSideNavigation: boolean;
161
177
  } & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
162
178
  _urlRewrite: string | null;
179
+ } & {
180
+ headers: Record<string, string> | null;
163
181
  } & {
164
182
  Page: unknown;
165
183
  _isHtmlOnly: boolean;
@@ -192,6 +210,8 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
192
210
  pageContextSerialized: string;
193
211
  pageContext: {
194
212
  urlOriginal: string;
213
+ headersOriginal?: unknown;
214
+ headers?: unknown;
195
215
  } & {
196
216
  _objectCreatedByVike: boolean;
197
217
  _baseServer: string;
@@ -205,12 +225,16 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
205
225
  _onBeforeRouteHook: Hook | null;
206
226
  _pageContextInit: {
207
227
  urlOriginal: string;
228
+ headersOriginal?: unknown;
229
+ headers?: unknown;
208
230
  };
209
231
  _urlRewrite: string | null;
210
232
  _urlHandler: ((url: string) => string) | null;
211
233
  isClientSideNavigation: boolean;
212
234
  } & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
213
235
  _urlRewrite: string | null;
236
+ } & {
237
+ headers: Record<string, string> | null;
214
238
  } & {
215
239
  Page: unknown;
216
240
  _isHtmlOnly: boolean;
@@ -242,6 +266,8 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
242
266
  type PageContextInitEnhanced = ReturnType<typeof getPageContextInitEnhanced>;
243
267
  declare function getPageContextInitEnhanced(pageContextInit: {
244
268
  urlOriginal: string;
269
+ headersOriginal?: unknown;
270
+ headers?: unknown;
245
271
  }, renderContext: RenderContext, { urlComputedPropsNonEnumerable, ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
246
272
  urlComputedPropsNonEnumerable?: boolean;
247
273
  ssr?: {
@@ -251,6 +277,8 @@ declare function getPageContextInitEnhanced(pageContextInit: {
251
277
  };
252
278
  }): {
253
279
  urlOriginal: string;
280
+ headersOriginal?: unknown;
281
+ headers?: unknown;
254
282
  } & {
255
283
  _objectCreatedByVike: boolean;
256
284
  _baseServer: string;
@@ -264,12 +292,16 @@ declare function getPageContextInitEnhanced(pageContextInit: {
264
292
  _onBeforeRouteHook: Hook | null;
265
293
  _pageContextInit: {
266
294
  urlOriginal: string;
295
+ headersOriginal?: unknown;
296
+ headers?: unknown;
267
297
  };
268
298
  _urlRewrite: string | null;
269
299
  _urlHandler: ((url: string) => string) | null;
270
300
  isClientSideNavigation: boolean;
271
301
  } & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
272
302
  _urlRewrite: string | null;
303
+ } & {
304
+ headers: Record<string, string> | null;
273
305
  };
274
306
  type RenderContext = {
275
307
  pageFilesAll: PageFile[];
@@ -6,7 +6,7 @@ export { getRenderContext };
6
6
  import { getErrorPageId } from '../../../shared/error-page.js';
7
7
  import { getHtmlString } from '../html/renderHtml.js';
8
8
  import { getPageFilesAll } from '../../../shared/getPageFiles.js';
9
- import { assert, assertUsage, hasProp, objectAssign } from '../utils.js';
9
+ import { assert, assertUsage, assertWarning, hasProp, normalizeHeaders, objectAssign } from '../utils.js';
10
10
  import { serializePageContextClientSide } from '../html/serializePageContextClientSide.js';
11
11
  import { addUrlComputedProps } from '../../../shared/addUrlComputedProps.js';
12
12
  import { getGlobalContext } from '../globalContext.js';
@@ -143,7 +143,25 @@ function getPageContextInitEnhanced(pageContextInit, renderContext, { urlCompute
143
143
  _urlHandler: urlHandler,
144
144
  isClientSideNavigation
145
145
  });
146
+ // pageContext.urlParsed
146
147
  addUrlComputedProps(pageContextInitEnhanced, !urlComputedPropsNonEnumerable);
148
+ // pageContext.headers
149
+ {
150
+ let headers;
151
+ if (pageContextInit.headersOriginal) {
152
+ headers = normalizeHeaders(pageContextInit.headersOriginal);
153
+ assertUsage(!('headers' in pageContextInit), "You're defining pageContextInit.headersOriginal as well as pageContextInit.headers but you should only define pageContextInit.headersOriginal instead, see https://vike.dev/headers");
154
+ }
155
+ else if (pageContextInit.headers) {
156
+ headers = pageContextInit.headers;
157
+ // TODO/next-major-release: assertUsage() instead of assertWarning()
158
+ assertWarning(false, 'Setting pageContextInit.headers is deprecated: set pageContextInit.headersOriginal instead, see https://vike.dev/headers', { onlyOnce: true });
159
+ }
160
+ else {
161
+ headers = null;
162
+ }
163
+ objectAssign(pageContextInitEnhanced, { headers });
164
+ }
147
165
  return pageContextInitEnhanced;
148
166
  }
149
167
  // TODO: remove getRenderContext() in favor of getGlobalObject() + reloadGlobalContext()
@@ -50,3 +50,4 @@ export * from '../../utils/formatHintLog.js';
50
50
  export * from '../../utils/joinEnglish.js';
51
51
  export * from '../../utils/isArrayOfStrings.js';
52
52
  export * from '../../utils/escapeHtml.js';
53
+ export * from '../../utils/normalizeHeaders.js';
@@ -53,3 +53,4 @@ export * from '../../utils/formatHintLog.js';
53
53
  export * from '../../utils/joinEnglish.js';
54
54
  export * from '../../utils/isArrayOfStrings.js';
55
55
  export * from '../../utils/escapeHtml.js';
56
+ export * from '../../utils/normalizeHeaders.js';
@@ -59,6 +59,26 @@ type PageContextBuiltInCommon<Data> = {
59
59
  * https://vike.dev/renderPage
60
60
  */
61
61
  urlOriginal: string;
62
+ /**
63
+ * The HTTP Headers of the incoming HTTP Request.
64
+ *
65
+ * As a string object normalized by Vike.
66
+ *
67
+ * See also:
68
+ * - https://vike.dev/headers
69
+ * - `pageContext.headersOriginal`
70
+ */
71
+ headers: Record<string, string> | null;
72
+ /**
73
+ * The HTTP Headers of the incoming HTTP Request.
74
+ *
75
+ * The original object provided by the server.
76
+ *
77
+ * See also:
78
+ * - https://vike.dev/headers
79
+ * - `pageContext.headers`
80
+ */
81
+ headersOriginal?: unknown;
62
82
  /** If an error occurs, whether the error is a `404 Page Not Found`.
63
83
  *
64
84
  * https://vike.dev/error-page
@@ -92,7 +92,7 @@ function assertWarning(condition, msg, { onlyOnce, showStackTrace }) {
92
92
  }
93
93
  globalObject.onBeforeLog?.();
94
94
  if (showStackTrace) {
95
- const err = new Error(msg);
95
+ const err = createErrorWithCleanStackTrace(msg, numberOfStackTraceLinesToRemove);
96
96
  globalObject.showStackTraceList.add(err);
97
97
  globalObject.logger(err, 'warn');
98
98
  }
@@ -6,5 +6,5 @@ function assertNodeVersion() {
6
6
  if (!isNodeJS())
7
7
  return;
8
8
  const version = process.versions.node;
9
- assertVersion('Node.js', version, '16.0.0');
9
+ assertVersion('Node.js', version, '18.0.0');
10
10
  }
@@ -0,0 +1 @@
1
+ export declare function normalizeHeaders(headersOriginal: unknown): Record<string, string>;
@@ -0,0 +1,9 @@
1
+ export function normalizeHeaders(
2
+ /* This type is precise, too precise which can be annoying: e.g. cannot pass a string[][] argument because it doesn't match the more precise [string,string][] type.
3
+ headersOriginal ConstructorParameters<typeof Headers>[0]
4
+ */
5
+ headersOriginal) {
6
+ const headersStandard = new Headers(headersOriginal);
7
+ const headers = Object.fromEntries(headersStandard.entries());
8
+ return headers;
9
+ }
@@ -1,7 +1,7 @@
1
1
  export { projectInfo };
2
2
  export { PROJECT_VERSION };
3
- declare const PROJECT_VERSION: "0.4.171-commit-43aef47";
3
+ declare const PROJECT_VERSION: "0.4.171-commit-75e1588";
4
4
  declare const projectInfo: {
5
5
  projectName: "Vike";
6
- projectVersion: "0.4.171-commit-43aef47";
6
+ projectVersion: "0.4.171-commit-75e1588";
7
7
  };
@@ -1,6 +1,6 @@
1
1
  export { projectInfo };
2
2
  export { PROJECT_VERSION };
3
- const PROJECT_VERSION = '0.4.171-commit-43aef47';
3
+ const PROJECT_VERSION = '0.4.171-commit-75e1588';
4
4
  const projectInfo = {
5
5
  projectName: 'Vike',
6
6
  projectVersion: PROJECT_VERSION
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.171-commit-43aef47",
3
+ "version": "0.4.171-commit-75e1588",
4
4
  "scripts": {
5
5
  "dev": "tsc --watch",
6
6
  "build": "rimraf dist/ && pnpm run build:esm && pnpm run build:cjs",
@@ -216,7 +216,7 @@
216
216
  "vite": "npm:@brillout/vite@5.1.0-commit-3dc7abd"
217
217
  },
218
218
  "engines": {
219
- "node": ">=16.0.0"
219
+ "node": ">=18.0.0"
220
220
  },
221
221
  "description": "Like Next.js/Nuxt but as do-one-thing-do-it-well Vite plugin.",
222
222
  "repository": "https://github.com/vikejs/vike",