eddev 2.0.0-beta.83 → 2.0.0-beta.84

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.
@@ -66,14 +66,12 @@ export class ServerContext {
66
66
  if (!response.ok) {
67
67
  return response;
68
68
  }
69
- // console.log("Response headers", response.headers)
70
69
  const headers = {};
71
70
  response.headers.forEach((value, key) => {
72
71
  if (filterHeader(key, PROXY_RESPONSE_HEADERS)) {
73
72
  headers[key] = value;
74
73
  }
75
74
  });
76
- // console.log("Returning headers", headers)
77
75
  let text = await response.text();
78
76
  if (opts?.replaceUrls) {
79
77
  text = this.replaceUrls(text, opts.newOrigin);
@@ -1 +1 @@
1
- export declare const VERSION = "2.0.0-beta.83";
1
+ export declare const VERSION = "2.0.0-beta.84";
@@ -1 +1 @@
1
- export const VERSION = "2.0.0-beta.83";
1
+ export const VERSION = "2.0.0-beta.84";
@@ -42,6 +42,12 @@ export function createVinxiApp(args) {
42
42
  varies: [],
43
43
  },
44
44
  },
45
+ "/sitemap.xml": {
46
+ cache: {
47
+ maxAge: 3600,
48
+ swr: true,
49
+ },
50
+ },
45
51
  "/sitemap*.xml": {
46
52
  cache: {
47
53
  maxAge: 3600,
@@ -181,22 +181,42 @@ export function createVinxiCodegen(opts) {
181
181
  name: "handler.bypass.ts",
182
182
  generate: code /* tsx */ `
183
183
  /// <reference types="vinxi/types/server" />
184
- import { createRouter, eventHandler, getRouterParam, getQuery, getWebRequest, getRequestHeaders, getRequestURL, setCookie } from "vinxi/http"
185
- import { serverContext } from "./context.js"
184
+ import { createRouter, eventHandler, getCookie, setCookie } from "vinxi/http"
185
+
186
+ const BYPASS_TOKEN = process.env.VERCEL_BYPASS_TOKEN
187
+ const COOKIE_NAME = "__prerender_bypass"
188
+
186
189
  const router = createRouter()
187
190
  .get(
188
- "/setBypassCookie/",
191
+ "/enable",
189
192
  eventHandler(async (event) => {
190
- const bypassToken = process.env.VERCEL_BYPASS_TOKEN
191
- const cookieName = "__prerender_bypass"
193
+ if (!BYPASS_TOKEN) return false
192
194
 
193
- setCookie(event, cookieName, bypassToken, {
195
+ setCookie(event, COOKIE_NAME, BYPASS_TOKEN, {
194
196
  expires: new Date(Date.now() + 1000 * 60 * 60 * 24),
195
197
  })
196
198
 
197
- return {
198
- body: bypassToken,
199
+ return true
200
+ }),
201
+ )
202
+ .get(
203
+ "/disable",
204
+ eventHandler(async (event) => {
205
+ setCookie(event, COOKIE_NAME, "")
206
+
207
+ return true
208
+ }),
209
+ )
210
+ .get(
211
+ "/check",
212
+ eventHandler(async (event) => {
213
+ const cookie = getCookie(event, COOKIE_NAME)
214
+
215
+ if (cookie === BYPASS_TOKEN) {
216
+ return true
199
217
  }
218
+
219
+ return false
200
220
  }),
201
221
  )
202
222
  export default router.handler
@@ -72,19 +72,77 @@ export declare const EDConfigSchema: z.ZodObject<{
72
72
  origins?: string[] | undefined;
73
73
  } | undefined;
74
74
  }>;
75
- cache: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
76
- props: z.ZodNumber;
77
- queries: z.ZodNumber;
75
+ cache: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
76
+ wordpress: z.ZodDefault<z.ZodOptional<z.ZodObject<{
77
+ strategy: z.ZodEnum<["always", "ssr-always-fresh"]>;
78
+ cacheHeaders: z.ZodDefault<z.ZodBoolean>;
79
+ transients: z.ZodDefault<z.ZodBoolean>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ strategy: "always" | "ssr-always-fresh";
82
+ cacheHeaders: boolean;
83
+ transients: boolean;
84
+ }, {
85
+ strategy: "always" | "ssr-always-fresh";
86
+ cacheHeaders?: boolean | undefined;
87
+ transients?: boolean | undefined;
88
+ }>>>;
89
+ serverless: z.ZodDefault<z.ZodOptional<z.ZodObject<{
90
+ isr: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
91
+ dataCache: z.ZodDefault<z.ZodEnum<["in-memory", "kv", "none"]>>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ isr: boolean;
94
+ dataCache: "none" | "in-memory" | "kv";
95
+ }, {
96
+ isr?: boolean | undefined;
97
+ dataCache?: "none" | "in-memory" | "kv" | undefined;
98
+ }>>>;
99
+ pageDataTTL: z.ZodDefault<z.ZodNumber>;
100
+ appDataTTL: z.ZodDefault<z.ZodNumber>;
101
+ queryHooksTTL: z.ZodDefault<z.ZodNumber>;
78
102
  }, "strip", z.ZodTypeAny, {
79
- props: number;
80
- queries: number;
103
+ wordpress: {
104
+ strategy: "always" | "ssr-always-fresh";
105
+ cacheHeaders: boolean;
106
+ transients: boolean;
107
+ };
108
+ serverless: {
109
+ isr: boolean;
110
+ dataCache: "none" | "in-memory" | "kv";
111
+ };
112
+ pageDataTTL: number;
113
+ appDataTTL: number;
114
+ queryHooksTTL: number;
81
115
  }, {
82
- props: number;
83
- queries: number;
116
+ wordpress?: {
117
+ strategy: "always" | "ssr-always-fresh";
118
+ cacheHeaders?: boolean | undefined;
119
+ transients?: boolean | undefined;
120
+ } | undefined;
121
+ serverless?: {
122
+ isr?: boolean | undefined;
123
+ dataCache?: "none" | "in-memory" | "kv" | undefined;
124
+ } | undefined;
125
+ pageDataTTL?: number | undefined;
126
+ appDataTTL?: number | undefined;
127
+ queryHooksTTL?: number | undefined;
84
128
  }>>>;
85
129
  devUI: z.ZodDefault<z.ZodEnum<["disabled", "enabled"]>>;
86
130
  }, "strip", z.ZodTypeAny, {
87
131
  version: "2";
132
+ cache: Record<string, {
133
+ wordpress: {
134
+ strategy: "always" | "ssr-always-fresh";
135
+ cacheHeaders: boolean;
136
+ transients: boolean;
137
+ };
138
+ serverless: {
139
+ isr: boolean;
140
+ dataCache: "none" | "in-memory" | "kv";
141
+ };
142
+ pageDataTTL: number;
143
+ appDataTTL: number;
144
+ queryHooksTTL: number;
145
+ }>;
88
146
  legacyMetadata: boolean;
89
147
  legacyStitches: boolean;
90
148
  serverless: {
@@ -102,10 +160,6 @@ export declare const EDConfigSchema: z.ZodObject<{
102
160
  } | undefined;
103
161
  };
104
162
  devUI: "disabled" | "enabled";
105
- cache?: Record<string, {
106
- props: number;
107
- queries: number;
108
- }> | undefined;
109
163
  $schema?: string | undefined;
110
164
  trackers?: ({
111
165
  id: string;
@@ -131,8 +185,18 @@ export declare const EDConfigSchema: z.ZodObject<{
131
185
  } | undefined;
132
186
  };
133
187
  cache?: Record<string, {
134
- props: number;
135
- queries: number;
188
+ wordpress?: {
189
+ strategy: "always" | "ssr-always-fresh";
190
+ cacheHeaders?: boolean | undefined;
191
+ transients?: boolean | undefined;
192
+ } | undefined;
193
+ serverless?: {
194
+ isr?: boolean | undefined;
195
+ dataCache?: "none" | "in-memory" | "kv" | undefined;
196
+ } | undefined;
197
+ pageDataTTL?: number | undefined;
198
+ appDataTTL?: number | undefined;
199
+ queryHooksTTL?: number | undefined;
136
200
  }> | undefined;
137
201
  $schema?: string | undefined;
138
202
  legacyMetadata?: boolean | undefined;
@@ -68,12 +68,41 @@ export const EDConfigSchema = z.object({
68
68
  .optional(),
69
69
  }),
70
70
  cache: z
71
- .record(z.string(), z.object({
72
- props: z.number(),
73
- queries: z.number(),
71
+ .record(z.object({
72
+ wordpress: z
73
+ .object({
74
+ strategy: z.enum(["always", "ssr-always-fresh"]),
75
+ cacheHeaders: z.boolean().default(true).describe("Whether to add caching headers to data requests."),
76
+ transients: z.boolean().default(true).describe("Whether to cache within transients."),
77
+ })
78
+ .optional()
79
+ .default({ strategy: "always", cacheHeaders: true, transients: true }),
80
+ serverless: z
81
+ .object({
82
+ isr: z
83
+ .boolean()
84
+ .optional()
85
+ .default(true)
86
+ .describe("Whether to use Incremental Static Regeneration for this origin."),
87
+ dataCache: z
88
+ .enum(["in-memory", "kv", "none"])
89
+ .default("in-memory")
90
+ .describe("The cache strategy to use for page data."),
91
+ })
92
+ .optional()
93
+ .default({ isr: true, dataCache: "in-memory" }),
94
+ pageDataTTL: z.number().default(300).describe("The number of seconds to cache page data."),
95
+ appDataTTL: z.number().default(300).describe("The number of seconds to cache global app data."),
96
+ queryHooksTTL: z.number().default(300).describe("The number of seconds to cache named GraphQL queries."),
74
97
  }))
75
- .optional()
76
- .describe("A map of origin domains -> cache settings. Wildcards can be used for each domain."),
98
+ .default({
99
+ "*": {
100
+ pageDataTTL: 300,
101
+ appDataTTL: 300,
102
+ queryHooksTTL: 300,
103
+ },
104
+ })
105
+ .describe("A map of WordPress origin hostnames -> cache settings. Wildcards can be used for each domain."),
77
106
  devUI: z.enum(["disabled", "enabled"]).default("enabled"),
78
107
  });
79
108
  export class Configurator {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "2.0.0-beta.83",
3
+ "version": "2.0.0-beta.84",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",