eddev 2.0.0-beta.217 → 2.0.0-beta.219

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 +1 @@
1
- {"version":3,"file":"render-ssr-page.d.ts","sourceRoot":"","sources":["../../../src/app/server/render-ssr-page.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAKrF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,qBAAqB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,wDAyH/C;AAED,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B,CAAA;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2FpE;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,GAAG,CAAA;CAChB,GAAG,eAAe,CAAA;AAEnB,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiBlF;AAED,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,UA6B1D"}
1
+ {"version":3,"file":"render-ssr-page.d.ts","sourceRoot":"","sources":["../../../src/app/server/render-ssr-page.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAKrF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,qBAAqB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,wDAyH/C;AAED,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B,CAAA;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAwGpE;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,GAAG,CAAA;CAChB,GAAG,eAAe,CAAA;AAEnB,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiBlF;AAED,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,UA6B1D"}
@@ -102,7 +102,10 @@ export async function getSsrStream(args) {
102
102
  export async function renderPage(args) {
103
103
  const serverContext = ServerContext.main;
104
104
  const cspHeaders = new SecureHeaderBuilder(serverContext.config);
105
- let responseInit = {};
105
+ const responseHeaders = new Headers();
106
+ let responseInit = {
107
+ headers: responseHeaders,
108
+ };
106
109
  try {
107
110
  const [{ appData, trackers }, response] = await Promise.all([
108
111
  serverContext.fetchAppData(),
@@ -130,6 +133,11 @@ export async function renderPage(args) {
130
133
  if (data.meta?.footer)
131
134
  data.meta.footer = cspHeaders.addMetaTags(data.meta.footer);
132
135
  responseInit.status = response.status;
136
+ response.headers.forEach((value, key) => {
137
+ if (key.toLowerCase().startsWith("x-ed-")) {
138
+ responseHeaders.set(key, value);
139
+ }
140
+ });
133
141
  }
134
142
  catch (err) {
135
143
  console.log("Error rendering", err);
@@ -153,9 +161,14 @@ export async function renderPage(args) {
153
161
  },
154
162
  });
155
163
  }
156
- const headers = cspHeaders.getHeaders();
157
- headers.set("Content-Type", "text/html; charset=utf-8");
158
- responseInit.headers = headers;
164
+ cspHeaders.getHeaders().forEach((value, key) => {
165
+ responseHeaders.set(key, value);
166
+ });
167
+ responseHeaders.set("Content-Type", "text/html; charset=utf-8");
168
+ responseHeaders.set("X-Ed-Rendered-At", new Date().toUTCString());
169
+ responseHeaders.set("X-Ed-Cache-Control", responseHeaders.get("Cache-Control") || "none");
170
+ responseHeaders.set("X-Ed-Deployment-Id", process.env.VERCEL_DEPLOYMENT_ID || "");
171
+ // `__vdpl=${process.env.VERCEL_DEPLOYMENT_ID}; HttpOnly`,
159
172
  const stream = await getSsrStream({
160
173
  ...args,
161
174
  hostname: args.hostname,
@@ -1 +1 @@
1
- {"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../../src/app/server/server-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAiC,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEpF,OAAO,EAAqB,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKxD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAA;CACxC,CAAA;AAkBD;;GAEG;AACH,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,qBAAa,aAAa;IACxB,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,QAAQ,EAAE,MAAM,EAAE,CAAK;IACvB,MAAM,EAAE,QAAQ,CAAA;IAEhB,MAAM,CAAC,IAAI,EAAE,aAAa,CAAA;gBAEd,IAAI,EAAE,iBAAiB;IAWnC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAOzC,IAAI,OAAO,yBAEV;IAED,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,oBAAoB;IAI1C,YAAY,CAAC,GAAG,EAAE,MAAM;IAQlB,WAAW,CACf,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACjE,OAAO,CAAC,QAAQ,CAAC;IAgCpB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE;IAmFvG,cAAc,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAwGtF,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC5C,qBAAqB,CAAC,GAAG,CAAC,EAAE,cAAc;IAYpC,eAAe,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE;IA4D9E,aAAa,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE;IAehF,IAAI,kBAAkB,aAcrB;IAED,aAAa,CAAC,YAAY,EAAE,MAAM;IAUlC,cAAc,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;CAiD9B"}
1
+ {"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../../src/app/server/server-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAiC,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEpF,OAAO,EAAqB,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKxD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAA;CACxC,CAAA;AAkBD;;GAEG;AACH,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,qBAAa,aAAa;IACxB,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,QAAQ,EAAE,MAAM,EAAE,CAAK;IACvB,MAAM,EAAE,QAAQ,CAAA;IAEhB,MAAM,CAAC,IAAI,EAAE,aAAa,CAAA;gBAEd,IAAI,EAAE,iBAAiB;IAWnC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAOzC,IAAI,OAAO,yBAEV;IAED,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,oBAAoB;IAI1C,YAAY,CAAC,GAAG,EAAE,MAAM;IAQlB,WAAW,CACf,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACjE,OAAO,CAAC,QAAQ,CAAC;IAgCpB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE;IAmFvG,cAAc,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IA8GtF,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC5C,qBAAqB,CAAC,GAAG,CAAC,EAAE,cAAc;IAYpC,eAAe,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE;IA4D9E,aAAa,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE;IAehF,IAAI,kBAAkB,aAcrB;IAED,aAAa,CAAC,YAAY,EAAE,MAAM;IAUlC,cAAc,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;CAiD9B"}
@@ -178,7 +178,6 @@ export class ServerContext {
178
178
  cache: pageCache,
179
179
  forceFresh: this.dev,
180
180
  getFreshValue: async (ctx) => {
181
- ctx.metadata.createdTime;
182
181
  const fetchUrl = withQuery(withTrailingSlash(req.pathname), {
183
182
  _props: "1",
184
183
  _ssr: "1",
@@ -247,6 +246,11 @@ export class ServerContext {
247
246
  if (resultData.queryMonitor) {
248
247
  this.debugLogQueryMonitor("props", req.pathname, resultData.queryMonitor);
249
248
  }
249
+ // if (isFinite(preferredCacheDuration)) {
250
+ // const maxAge = isFinite(preferredCacheDuration) ? preferredCacheDuration * 1000 : undefined
251
+ // resultHeaders.set("Cache-Control", `max-age=0, s-maxage=${maxAge}, stale-while-revalidate`)
252
+ // }
253
+ resultHeaders.set("X-Ed-Fetched-At", new Date().toUTCString());
250
254
  return {
251
255
  status: resultStatus,
252
256
  headers: resultHeaders,
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.0.0-beta.217";
1
+ export declare const VERSION = "2.0.0-beta.219";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- export const VERSION = "2.0.0-beta.217";
1
+ export const VERSION = "2.0.0-beta.219";
@@ -10,7 +10,6 @@ export type Args = {
10
10
  console: StatefulLog<any>;
11
11
  client: boolean;
12
12
  };
13
- export declare function skewProtectionPlugin(): PluginOption;
14
13
  export declare function envPlugin(args: Args): PluginOption;
15
14
  type ReactPluginArgs = {
16
15
  retainBlockMeta?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"get-vite-config.d.ts","sourceRoot":"","sources":["../../../src/node/compiler/get-vite-config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,UAAU,GAAG,KAAK,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAkDnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAkDlD;AAED,KAAK,eAAe,GAAG;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,eAAoB,kBA4FrD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CA4CxC;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,EAAE,CAStD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,EAAE,CAE/D;AAED,wBAAgB,wBAAwB,IAAI,YAAY,CA8BvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,YAAY,CA4B9E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CA+DtD"}
1
+ {"version":3,"file":"get-vite-config.d.ts","sourceRoot":"","sources":["../../../src/node/compiler/get-vite-config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,UAAU,GAAG,KAAK,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAoDlD;AAED,KAAK,eAAe,GAAG;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,eAAoB,kBA4FrD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CA4CxC;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,EAAE,CAStD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,EAAE,CAE/D;AAED,wBAAgB,wBAAwB,IAAI,YAAY,CA8BvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,YAAY,CA4B9E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CA+DtD"}
@@ -6,53 +6,6 @@ import { withoutTrailingSlash } from "ufo";
6
6
  import { createLogger } from "vite";
7
7
  import tsconfigPaths from "vite-tsconfig-paths";
8
8
  import { cliMode } from "../cli/cli-mode.js";
9
- export function skewProtectionPlugin() {
10
- const deploymentId = process.env.VERCEL_DEPLOYMENT_ID;
11
- const queryKey = "dpl";
12
- const addQueryParam = (name) => `${name}?${queryKey}=${deploymentId}`;
13
- const hasQueryParam = (name) => name.includes(`?${queryKey}=${deploymentId}`);
14
- const removeQueryParam = (name) => name.replace(new RegExp(`\\?${queryKey}=${deploymentId}$`), "");
15
- if (process.env.VERCEL_SKEW_PROTECTION_ENABLED !== "1" || !deploymentId)
16
- return null;
17
- return {
18
- name: "vite:vite-plugin-vercel-skew-protection",
19
- configResolved(config) {
20
- const rollupOptions = config.build.rollupOptions || {};
21
- const output = rollupOptions.output || {};
22
- // rollupOptions.output = {
23
- // ...output,
24
- // entryFileNames: addQueryParam(
25
- // output.entryFileNames || "assets/[name].[hash].js"
26
- // ),
27
- // chunkFileNames: addQueryParam(
28
- // output.chunkFileNames || "assets/[name].[hash].js"
29
- // ),
30
- // assetFileNames: addQueryParam(
31
- // output.assetFileNames || "assets/[name].[hash].[ext]"
32
- // ),
33
- // };
34
- config.build.rollupOptions = rollupOptions;
35
- },
36
- generateBundle(_options, bundle) {
37
- for (const [fileName, fileInfo] of Object.entries(bundle)) {
38
- if (!hasQueryParam(fileName)) {
39
- continue;
40
- }
41
- const newFileName = removeQueryParam(fileName);
42
- bundle[newFileName] = { ...fileInfo, fileName: newFileName };
43
- delete bundle[fileName];
44
- }
45
- },
46
- transformIndexHtml(html) {
47
- return html.replace(/(<script|<link).+?(src|href)="(.+?)"/g, (match, _tag, _attr, value) => {
48
- if (value.startsWith("/assets/") && !hasQueryParam(value)) {
49
- return match.replace(value, addQueryParam(value));
50
- }
51
- return match;
52
- });
53
- },
54
- };
55
- }
56
9
  export function envPlugin(args) {
57
10
  const envDefines = {
58
11
  client: args.client ? "true" : "false",
@@ -64,6 +17,8 @@ export function envPlugin(args) {
64
17
  serverlessOrigin: JSON.stringify("http://serverleress-endpoint"),
65
18
  rpcEnabled: "true",
66
19
  origin: JSON.stringify(process.env.SITE_URL ?? "/"),
20
+ VERCEL_DEPLOYMENT_ID: JSON.stringify(process.env.VERCEL_DEPLOYMENT_ID ?? ""),
21
+ VERCEL_SKEW_PROTECTION_ENABLED: JSON.stringify(process.env.VERCEL_SKEW_PROTECTION_ENABLED ?? "0"),
67
22
  };
68
23
  const expandDefines = (obj, prefixes = []) => {
69
24
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"vinxi-app.d.ts","sourceRoot":"","sources":["../../../src/node/compiler/vinxi-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;AAC7D,KAAK,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAA;AACrD,KAAK,iBAAiB,GAAG,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;AAEhE,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC1C,CAAA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,uBAmO3C"}
1
+ {"version":3,"file":"vinxi-app.d.ts","sourceRoot":"","sources":["../../../src/node/compiler/vinxi-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;AAC7D,KAAK,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAA;AACrD,KAAK,iBAAiB,GAAG,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;AAEhE,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC1C,CAAA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,uBA2P3C"}
@@ -2,7 +2,7 @@ import { joinURL } from "ufo";
2
2
  import { createApp } from "vinxi";
3
3
  import tsconfigPaths from "vite-tsconfig-paths";
4
4
  import { StatefulLog } from "../utils/stateful-log.js";
5
- import { corePlugins, envPlugin, skewProtectionPlugin } from "./get-vite-config.js";
5
+ import { corePlugins, envPlugin } from "./get-vite-config.js";
6
6
  import { getVinxiFolder } from "./vinxi-codegen.js";
7
7
  export function createVinxiApp(args) {
8
8
  const log = args.log ?? new StatefulLog({ label: "Build" });
@@ -11,6 +11,22 @@ export function createVinxiApp(args) {
11
11
  mode: args.mode,
12
12
  serverless: true,
13
13
  });
14
+ const originDomain = new URL(args.origin).host;
15
+ let cacheConfig = args.config.cache[originDomain] ??
16
+ args.config.cache["*"] ?? {
17
+ appDataTTL: 0,
18
+ pageDataTTL: 0,
19
+ queryHooksTTL: 0,
20
+ serverless: {
21
+ isr: true,
22
+ dataCache: "in-memory",
23
+ },
24
+ };
25
+ // for (let key in args.config.cache) {
26
+ // if (key === "*") continue
27
+ // const domain = key.replace(/(^\*|\/$)/g, "")
28
+ // args.origin
29
+ // if (domain.includes("*")) {
14
30
  return createApp({
15
31
  server: {
16
32
  // experimental: {
@@ -31,7 +47,7 @@ export function createVinxiApp(args) {
31
47
  proxy: joinURL(args.origin, "favicon.ico"),
32
48
  static: true,
33
49
  cache: {
34
- maxAge: 3600,
50
+ maxAge: 86400,
35
51
  varies: [],
36
52
  },
37
53
  },
@@ -64,10 +80,13 @@ export function createVinxiApp(args) {
64
80
  "/wp-content/**": { proxy: joinURL(args.origin, "wp-content/**") },
65
81
  "/wp-includes/**": { proxy: joinURL(args.origin, "wp-includes/**") },
66
82
  "/_data/route/**": {
67
- isr: 1800,
68
- swr: true,
83
+ isr: {
84
+ expiration: cacheConfig.pageDataTTL ?? 0,
85
+ allowQuery: [],
86
+ passQuery: false,
87
+ },
69
88
  cache: {
70
- maxAge: 1800,
89
+ maxAge: cacheConfig.pageDataTTL ?? 0,
71
90
  swr: true,
72
91
  varies: ["Authorization", "woocommerce-session"],
73
92
  },
@@ -91,10 +110,14 @@ export function createVinxiApp(args) {
91
110
  };
92
111
  }, {}),
93
112
  "/**/*": {
94
- isr: 1800,
113
+ isr: {
114
+ expiration: cacheConfig.pageDataTTL ?? 0,
115
+ allowQuery: [],
116
+ passQuery: false,
117
+ },
95
118
  swr: true,
96
119
  cache: {
97
- maxAge: 1800,
120
+ maxAge: cacheConfig.pageDataTTL ?? 0,
98
121
  swr: true,
99
122
  staleMaxAge: 3600,
100
123
  },
@@ -161,7 +184,6 @@ export function createVinxiApp(args) {
161
184
  handler: `${folder}/entry.client.tsx`,
162
185
  target: "browser",
163
186
  plugins: () => [
164
- skewProtectionPlugin(),
165
187
  ...corePlugins({
166
188
  rootDir: args.rootDir,
167
189
  console: log,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "2.0.0-beta.217",
3
+ "version": "2.0.0-beta.219",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",
package/types.env.d.ts CHANGED
@@ -10,6 +10,9 @@ declare global {
10
10
  themePath: string
11
11
  /** This is only used in serverless mode */
12
12
  origin?: string
13
+ /** Vercel */
14
+ VERCEL_DEPLOYMENT_ID: string
15
+ VERCEL_SKEW_PROTECTION_ENABLED: string
13
16
  }
14
17
  }
15
18