@bascik/adapter-cloudflare 1.0.0-rc.1 → 1.0.0-rc.10

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/dist/runtime.js CHANGED
@@ -4,10 +4,12 @@
4
4
  * The request handler that runs inside a Cloudflare Worker (prompt 134).
5
5
  * ─────────────────────────────────────────────────────────────────────────────
6
6
  *
7
- * Portable: no Node imports. It is bundled into the generated `_worker.js`
8
- * together with the site graph emitted by `serverless-artifacts.ts`, and it
9
- * drives the same execution core the Node server uses
10
- * (`lib/request-execution.ts`).
7
+ * Portable: no Node imports (the request-time component host,
8
+ * component-host.ts, uses `node:crypto` under `nodejs_compat` and is bundled
9
+ * only for sites with components, prompt 157). It is bundled into the
10
+ * generated `_worker.js` together with the site graph emitted by
11
+ * `serverless-artifacts.ts`, and it drives the same execution core the Node
12
+ * server uses (`lib/request-execution.ts`).
11
13
  *
12
14
  * Request flow inside the Worker:
13
15
  *
@@ -28,7 +30,20 @@
28
30
  * (`{ name: "cloudflare", env, waitUntil }`). Nothing is copied onto globals
29
31
  * and `process.env` is never touched.
30
32
  */
31
- import { composeBufferedResponse, dispatchApiHandler, invokeWithDeadline, streamComposedResponse, dynamicPageHeaders, errorResponse, internalErrorPage, mergeHandlerHeaders, stripRepresentationHeaders, GENERATED_CONTROL_PATHS, hasHiddenSegment, isUnsafePathname, matchApiRoute, pageLookupCandidates, } from "@bascik/bascik/runtime";
33
+ import { componentExecution } from "./component-host.js";
34
+ import { applyOutputScope, decodeOutputScope, composeBufferedResponse, dispatchApiHandler, invokeLoadedWithDeadline, scriptTimeoutError, streamComposedResponse, dynamicPageHeaders, errorResponse, internalErrorPage, mergeHandlerHeaders, stripRepresentationHeaders, GENERATED_CONTROL_PATHS, isPrivatePathname, isUnsafePathname, InvalidApiPathError, matchApiRoute, pageLookupCandidates, stripAnsiEscapeCodes, serverScriptOutput, serverScriptOutputErrorMessage, contentSecurityPolicyHeader, DEFAULT_RESPONSE_SECURITY, } from "@bascik/bascik/runtime";
35
+ /**
36
+ * A job's output with its component's element classes applied, when the job
37
+ * carries an output scope, as `runServerScriptJob` does on Node. It lives
38
+ * here, not in component-host.ts, because page jobs carry a scope too (that
39
+ * of a component placed statically on the page) whether or not the manifest
40
+ * has anything renderable: a Worker built with the component-host stub must
41
+ * still scope them. Both helpers are portable (no `node:crypto`).
42
+ */
43
+ const scopeJobOutput = (job, output) => {
44
+ const scope = decodeOutputScope(job.outputScope);
45
+ return scope ? applyOutputScope(output, scope) : output;
46
+ };
32
47
  // ─── Helpers ─────────────────────────────────────────────────────────────────
33
48
  const encoder = new TextEncoder();
34
49
  const CONTROL_PATHS = new Set(GENERATED_CONTROL_PATHS);
@@ -50,7 +65,10 @@ const toExecutionPlan = (page) => {
50
65
  const segments = page.segments.map((segment) => segment.kind === "static"
51
66
  ? { kind: "static", bytes: encoder.encode(segment.text ?? "") }
52
67
  : { kind: "script", mode: page.jobs[segment.id].mode, id: segment.id });
53
- return { segments, firstStreamIndex: segments.findIndex((s) => s.kind === "script" && s.mode === "stream") };
68
+ return {
69
+ segments,
70
+ firstStreamIndex: segments.findIndex((s) => s.kind === "script" && s.mode === "stream"),
71
+ };
54
72
  };
55
73
  const findPage = (graph, pathname) => {
56
74
  for (const candidate of pageLookupCandidates(pathname)) {
@@ -60,52 +78,194 @@ const findPage = (graph, pathname) => {
60
78
  }
61
79
  return undefined;
62
80
  };
81
+ const missingJob = (id) => new Error(`[bascik] server script job "${id}" is missing from the deployment graph.`);
82
+ /** Jobs whose refused return value was already logged in this isolate. */
83
+ const warnedRefused = new WeakSet();
63
84
  /**
64
- * Build a `ScriptJobRunner` for one request. Output handling mirrors
65
- * `runServerScriptJob`: a string or stringifiable value is the fragment;
66
- * failure under `onServerScriptError: "error"` throws (500 before commit,
67
- * empty after), `warn` logs and yields empty, `ignore` yields empty.
85
+ * Run one graph job under `timeoutMs`. Output handling mirrors
86
+ * `runServerScriptJob`: what `serverScriptOutput` prints is the fragment,
87
+ * stripped of ANSI escapes, and a job carrying an output scope (a
88
+ * component's script, prompt 157) gets the component's element classes
89
+ * applied; a failing job with an owner is located by it; failure under
90
+ * `onServerScriptError: "error"` throws (500 before commit, empty after),
91
+ * `warn` logs and yields empty, `ignore` yields empty.
68
92
  */
69
- export const createGraphJobRunner = (page, graph, request, context, log) => {
70
- return async (id, signal) => {
71
- const job = page.jobs[id];
72
- if (!job)
73
- throw new Error(`[bascik] server script job "${id}" is missing from the deployment graph.`);
74
- const result = await invokeWithDeadline(async ({ signal: jobSignal }) => {
75
- const mod = await job.load();
76
- const handler = mod.default;
77
- if (typeof handler !== "function") {
78
- throw new TypeError(`Server script "${id}" does not export a default function.`);
79
- }
80
- return handler(request, context, { signal: jobSignal });
81
- }, { timeoutMs: graph.scriptTimeoutMs, signal });
82
- if (result.ok) {
83
- const value = result.value;
84
- return typeof value === "string" ? value : value !== undefined && value !== null ? String(value) : "";
93
+ const runGraphJob = async (job, id, graph, request, context, log, signal, timeoutMs) => {
94
+ // The load and the handler run under one deadline, and the handler's own
95
+ // promise is settled by the shared rule: once the deadline fires or the
96
+ // client aborts, that is the outcome, exactly as on Node. Calling the
97
+ // handler directly (not from an async wrapper) keeps a value settled just
98
+ // before the deadline from being mistaken for a timeout.
99
+ const result = await invokeLoadedWithDeadline(() => job.load(), (mod, { signal: jobSignal }) => {
100
+ const handler = mod.default;
101
+ if (typeof handler !== "function") {
102
+ throw new TypeError(`Server script "${id}" does not export a default function.`);
103
+ }
104
+ return handler(request, context, { signal: jobSignal });
105
+ },
106
+ // Node's message, so a log reads the same on both hosts.
107
+ { timeoutMs, signal, timeoutError: scriptTimeoutError });
108
+ // The rule Node applies (F060): an array is joined with no separator; an
109
+ // object, a Response, an unawaited Promise in an array, a function or a
110
+ // symbol is refused. A Worker is production, so a refused return never
111
+ // fails the page: the slot is empty and, unless the policy is "ignore",
112
+ // the warning is logged once per script for the isolate's life. A throw
113
+ // from the author's own toString is the script failing, as on Node.
114
+ let printed;
115
+ let failure;
116
+ if (result.ok) {
117
+ try {
118
+ printed = serverScriptOutput(result.value);
119
+ }
120
+ catch (thrown) {
121
+ failure = thrown instanceof Error ? thrown : new Error(String(thrown));
85
122
  }
86
- if (result.aborted && !result.timedOut)
123
+ }
124
+ if (printed) {
125
+ if (printed.error) {
126
+ if (graph.onServerScriptError !== "ignore" && !warnedRefused.has(job)) {
127
+ warnedRefused.add(job);
128
+ log(serverScriptOutputErrorMessage(printed.error, request.url,
129
+ // A page job carries no owner in the graph (only component jobs
130
+ // do); the route in the message names its page.
131
+ job.owner ?? `${job.mode} script`, { production: true }));
132
+ }
87
133
  return "";
88
- const error = result.error ?? new Error("Server script failed");
89
- const message = `[bascik] server script error at "${new URL(request.url).pathname}":\n${error.stack ?? error.message}`;
90
- if (graph.onServerScriptError === "error")
91
- throw new Error(message);
92
- if (graph.onServerScriptError === "warn")
93
- log(message);
134
+ }
135
+ // scripts.stripAnsi off: the codes reach the page as printed.
136
+ return scopeJobOutput(job, graph.stripAnsi === false
137
+ ? printed.text
138
+ : stripAnsiEscapeCodes(printed.text));
139
+ }
140
+ if (!failure && !result.ok && result.aborted && !result.timedOut)
94
141
  return "";
142
+ const error = failure ??
143
+ (!result.ok ? result.error : undefined) ??
144
+ new Error("Server script failed");
145
+ // Node maps the stack to the authored file; here it names only the bundle,
146
+ // so a component job (a timeout, a throw or a missing default export deep
147
+ // inside a rendered tag) is placed by the owner the build recorded.
148
+ const where = job.owner ? `\n in the ${job.owner}` : "";
149
+ const message = `[bascik] server script error at "${new URL(request.url).pathname}":\n${error.stack ?? error.message}${where}`;
150
+ if (graph.onServerScriptError === "error")
151
+ throw new Error(message);
152
+ if (graph.onServerScriptError === "warn")
153
+ log(message);
154
+ return "";
155
+ };
156
+ /**
157
+ * Build a `ScriptJobRunner` for one request: the page's own jobs, then the
158
+ * component scripts of `graph.components` (prompt 157), under the graph's
159
+ * script deadline and error policy (see `runGraphJob`).
160
+ */
161
+ export const createGraphJobRunner = (page, graph, request, context, log) => {
162
+ return async (id, signal) => {
163
+ const job = page.jobs[id] ?? graph.components?.jobs[id];
164
+ if (!job)
165
+ throw missingJob(id);
166
+ return runGraphJob(job, id, graph, request, context, log, signal, graph.scriptTimeoutMs);
95
167
  };
96
168
  };
169
+ /**
170
+ * The page's plan and runner for one request. With a component manifest
171
+ * that has something to render (prompt 157), the runner is wrapped so
172
+ * component tags in job output are rendered (component-host.ts), and the
173
+ * component scripts run like page jobs with the parent's remaining budget.
174
+ * Without one, plan and runner are exactly what they always were.
175
+ */
176
+ export const createPageExecution = (page, graph, request, context, log) => {
177
+ const run = createGraphJobRunner(page, graph, request, context, log);
178
+ const components = graph.components;
179
+ const rendered = components
180
+ ? componentExecution(page, graph, request, run, (id, signal, budgetMs) => {
181
+ const job = components.jobs[id];
182
+ if (!job)
183
+ return Promise.reject(missingJob(id));
184
+ return runGraphJob(job, id, graph, request, context, log, signal, budgetMs);
185
+ }, log)
186
+ : null;
187
+ return rendered ?? { plan: toExecutionPlan(page), run };
188
+ };
97
189
  /**
98
190
  * Build the Module Worker `fetch` handler for a site graph. The returned
99
191
  * object is what `_worker.js` exports as `default`.
100
192
  */
101
193
  export const createCloudflareWorker = (graph, options = {}) => {
102
194
  const log = options.log ?? ((message) => console.error(message));
195
+ // The build's response security (absent: every default); passed to every
196
+ // response builder so pages, API responses and errors agree with Node.
197
+ const security = graph.responseSecurity;
198
+ const hideDotfiles = graph.hideDotfiles !== false;
199
+ const assetCspRoutes = new Set(graph.assetHeaders?.cspRoutes ?? []);
200
+ /** The opt-in CSP header, from the build's hashes for this page (never its body). */
201
+ const setPageCsp = (headers, path) => {
202
+ const csp = graph.contentSecurityPolicy;
203
+ if (!csp)
204
+ return;
205
+ const { name, value } = contentSecurityPolicyHeader(csp.policy, csp.hashes[path]);
206
+ headers.set(name, value);
207
+ };
103
208
  const forwardToAssets = async (request, env) => {
104
209
  if (!env.ASSETS) {
105
210
  log("[bascik] ASSETS binding is missing: static requests cannot be served.");
106
- return errorResponse(500, "Internal Server Error", { https: isHttps(request) });
211
+ return errorResponse(500, "Internal Server Error", {
212
+ https: isHttps(request),
213
+ security,
214
+ });
215
+ }
216
+ const response = await env.ASSETS.fetch(request);
217
+ return graph.assetHeaders ? withAssetHeaders(request, response) : response;
218
+ };
219
+ /** The listed static 404 page nearest to `path`, as the asset layer looks one up. */
220
+ const notFoundRouteFor = (path) => {
221
+ const segments = path.split("/").slice(1, -1);
222
+ for (let depth = segments.length; depth >= 0; depth--) {
223
+ const dir = segments.slice(0, depth).join("/");
224
+ const route = dir ? `/${dir}/404` : "/404";
225
+ if (assetCspRoutes.has(route))
226
+ return route;
107
227
  }
108
- return env.ASSETS.fetch(request);
228
+ return undefined;
229
+ };
230
+ /** The headers _headers would have given a static file, sent by the Worker instead. */
231
+ const withAssetHeaders = (request, response) => {
232
+ const headers = new Headers(response.headers);
233
+ const resolved = security ?? DEFAULT_RESPONSE_SECURITY;
234
+ for (const [name, value] of Object.entries(resolved.headers))
235
+ if (!headers.has(name))
236
+ headers.set(name, value);
237
+ if (isHttps(request) &&
238
+ resolved.hsts !== null &&
239
+ !headers.has("strict-transport-security"))
240
+ headers.set("strict-transport-security", resolved.hsts);
241
+ const csp = graph.contentSecurityPolicy;
242
+ let path = null;
243
+ try {
244
+ path = stripBase(decodeURIComponent(new URL(request.url).pathname), graph.base);
245
+ }
246
+ catch {
247
+ path = null;
248
+ }
249
+ // A miss answered with a 404.html carries that page's policy, as the
250
+ // Node server sends the 404 page's own: the asset layer serves the
251
+ // nearest 404.html up the path (`/docs/nope` gets `/docs/404.html`).
252
+ const route = path === null
253
+ ? undefined
254
+ : assetCspRoutes.has(path)
255
+ ? path
256
+ : response.status === 404
257
+ ? notFoundRouteFor(path)
258
+ : undefined;
259
+ if (csp && route !== undefined) {
260
+ const { name, value } = contentSecurityPolicyHeader(csp.policy, csp.hashes[route]);
261
+ if (!headers.has(name))
262
+ headers.set(name, value);
263
+ }
264
+ return new Response(response.body, {
265
+ status: response.status,
266
+ statusText: response.statusText,
267
+ headers,
268
+ });
109
269
  };
110
270
  const fetchHandler = async (request, env, ctx) => {
111
271
  const https = isHttps(request);
@@ -115,20 +275,23 @@ export const createCloudflareWorker = (graph, options = {}) => {
115
275
  pathname = decodeURIComponent(url.pathname);
116
276
  }
117
277
  catch {
118
- return errorResponse(400, "Bad Request", { https });
278
+ return errorResponse(400, "Bad Request", { https, security });
119
279
  }
120
280
  if (isUnsafePathname(pathname))
121
- return errorResponse(400, "Bad Request", { https });
122
- if (hasHiddenSegment(pathname))
123
- return errorResponse(404, "Not Found", { https });
281
+ return errorResponse(400, "Bad Request", { https, security });
282
+ // Same rule as the Node server: dot segments are private except a leading
283
+ // RFC 8615 /.well-known/ below the site root, which the asset layer serves
284
+ // (with security.hideDotfiles off, only a first `.bascik` segment is).
285
+ if (isPrivatePathname(pathname, graph.base, hideDotfiles))
286
+ return errorResponse(404, "Not Found", { https, security });
124
287
  const baseRelative = stripBase(pathname, graph.base);
125
288
  if (baseRelative === null)
126
- return errorResponse(404, "Not Found", { https });
289
+ return errorResponse(404, "Not Found", { https, security });
127
290
  // The bundle and its routing table are deployment control files, never
128
291
  // content. Refusing them here makes the guarantee independent of how a
129
292
  // host treats underscore-prefixed uploads.
130
293
  if (CONTROL_PATHS.has(baseRelative))
131
- return errorResponse(404, "Not Found", { https });
294
+ return errorResponse(404, "Not Found", { https, security });
132
295
  const platform = {
133
296
  name: "cloudflare",
134
297
  env,
@@ -136,7 +299,17 @@ export const createCloudflareWorker = (graph, options = {}) => {
136
299
  };
137
300
  const remoteIp = cloudflareRemoteIp(request);
138
301
  // ── API routes (before the method guard so every method reaches them) ──
139
- const apiMatch = matchApiRoute(graph.apiRoutes, pathname);
302
+ let apiMatch;
303
+ try {
304
+ // Catch-all routes split and decode the raw path themselves, so an
305
+ // encoded separator cannot forge a segment boundary.
306
+ apiMatch = matchApiRoute(graph.apiRoutes, pathname, url.pathname);
307
+ }
308
+ catch (err) {
309
+ if (!(err instanceof InvalidApiPathError))
310
+ throw err;
311
+ return errorResponse(400, "Bad Request", { https, security });
312
+ }
140
313
  if (apiMatch) {
141
314
  const route = apiMatch.route;
142
315
  let mod;
@@ -145,15 +318,33 @@ export const createCloudflareWorker = (graph, options = {}) => {
145
318
  }
146
319
  catch (err) {
147
320
  log(`[bascik] Failed to load API route module ${route.filePath}: ${err.stack ?? String(err)}`);
148
- return errorResponse(500, "Internal Server Error", { https });
321
+ return errorResponse(500, "Internal Server Error", { https, security });
149
322
  }
150
- const context = { params: apiMatch.params, remoteIp, platform };
323
+ const context = {
324
+ params: apiMatch.params,
325
+ remoteIp,
326
+ platform,
327
+ };
151
328
  const response = await dispatchApiHandler(mod, request, context, {
152
329
  timeoutMs: graph.apiTimeoutMs,
153
330
  signal: request.signal,
154
331
  onError: (message, error) => log(`[bascik] ${message}${error ? `\n${error.stack ?? String(error)}` : ""}`),
155
332
  });
156
- const headers = mergeHandlerHeaders(response.headers, { https });
333
+ // A WebSocket upgrade (`new Response(null, { status: 101, webSocket })`,
334
+ // the platform's pattern) goes back as the handler made it: a copy
335
+ // would lose the socket, and the constructor refuses status 101
336
+ // without one, so the request would end in an uncaught RangeError.
337
+ if (response.status === 101 ||
338
+ response.webSocket)
339
+ return response;
340
+ const headers = mergeHandlerHeaders(response.headers, {
341
+ https,
342
+ security,
343
+ });
344
+ // A HEAD answer sends no body: release the one an explicit HEAD
345
+ // handler returned (a derived HEAD's GET body is released by the core).
346
+ if (request.method === "HEAD" && response.body && !response.body.locked)
347
+ response.body.cancel().catch(() => { });
157
348
  return new Response(request.method === "HEAD" ? null : response.body, {
158
349
  status: response.status,
159
350
  statusText: response.statusText,
@@ -162,17 +353,55 @@ export const createCloudflareWorker = (graph, options = {}) => {
162
353
  }
163
354
  // ── Dynamic pages ─────────────────────────────────────────────────────
164
355
  const page = findPage(graph, baseRelative);
165
- if (!page)
356
+ if (!page) {
357
+ if (graph.staticNotFoundPage &&
358
+ pageLookupCandidates(baseRelative).includes("/404")) {
359
+ if (request.method !== "GET" && request.method !== "HEAD") {
360
+ const headers = new Headers(errorResponse(405, "", { https, security }).headers);
361
+ headers.set("allow", "GET, HEAD");
362
+ return new Response("Method Not Allowed", { status: 405, headers });
363
+ }
364
+ // The asset layer serves 404.html at its own URL with 200 (and
365
+ // redirects its aliases). Fetch the canonical asset and answer with
366
+ // the status the Node server uses for the custom 404 page. Through
367
+ // the binding, html_handling resolves `/404` without a redirect,
368
+ // except `"none"`, where only the file name finds the page.
369
+ const fetchNotFoundAsset = (pathname) => {
370
+ const assetUrl = new URL(request.url);
371
+ assetUrl.pathname = pathname;
372
+ assetUrl.search = "";
373
+ return forwardToAssets(new Request(assetUrl, {
374
+ method: request.method === "HEAD" ? "HEAD" : "GET",
375
+ headers: request.headers,
376
+ }), env);
377
+ };
378
+ let asset = await fetchNotFoundAsset(graph.base === "/" ? "/404" : `${graph.base}404`);
379
+ if (asset.status !== 200) {
380
+ const byFileName = await fetchNotFoundAsset(`${graph.base}404.html`);
381
+ if (byFileName.status === 200) {
382
+ asset.body?.cancel().catch(() => { });
383
+ asset = byFileName;
384
+ }
385
+ else
386
+ byFileName.body?.cancel().catch(() => { });
387
+ }
388
+ if (asset.status !== 200)
389
+ return asset;
390
+ return new Response(request.method === "HEAD" ? null : asset.body, {
391
+ status: 404,
392
+ headers: asset.headers,
393
+ });
394
+ }
166
395
  return forwardToAssets(request, env);
396
+ }
167
397
  const isHead = request.method === "HEAD";
168
398
  if (request.method !== "GET" && !isHead) {
169
- const headers = new Headers(errorResponse(405, "", { https }).headers);
399
+ const headers = new Headers(errorResponse(405, "", { https, security }).headers);
170
400
  headers.set("allow", "GET, HEAD");
171
401
  return new Response("Method Not Allowed", { status: 405, headers });
172
402
  }
173
403
  const status = page.is404 ? 404 : 200;
174
- const plan = toExecutionPlan(page);
175
- const run = createGraphJobRunner(page, graph, request, { remoteIp, platform }, log);
404
+ const { plan, run } = createPageExecution(page, graph, request, { remoteIp, platform }, log);
176
405
  if (plan.firstStreamIndex === -1 || isHead) {
177
406
  let body;
178
407
  try {
@@ -180,9 +409,14 @@ export const createCloudflareWorker = (graph, options = {}) => {
180
409
  }
181
410
  catch (err) {
182
411
  log(err instanceof Error ? err.message : String(err));
183
- return internalErrorPage(graph.custom500, { https });
412
+ return internalErrorPage(graph.custom500, { https, security });
184
413
  }
185
- const headers = dynamicPageHeaders({ https, contentLength: body.byteLength });
414
+ const headers = dynamicPageHeaders({
415
+ https,
416
+ security,
417
+ contentLength: body.byteLength,
418
+ });
419
+ setPageCsp(headers, page.path);
186
420
  return new Response(isHead ? null : body, { status, headers });
187
421
  }
188
422
  // Early flush: every `server` job settles before headers commit; the
@@ -197,9 +431,10 @@ export const createCloudflareWorker = (graph, options = {}) => {
197
431
  }
198
432
  catch (err) {
199
433
  log(err instanceof Error ? err.message : String(err));
200
- return internalErrorPage(graph.custom500, { https });
434
+ return internalErrorPage(graph.custom500, { https, security });
201
435
  }
202
- const headers = stripRepresentationHeaders(dynamicPageHeaders({ https }));
436
+ const headers = stripRepresentationHeaders(dynamicPageHeaders({ https, security }));
437
+ setPageCsp(headers, page.path);
203
438
  // The edge compresses Worker responses on the fly and, for a streamed
204
439
  // body, holds every byte until the stream closes (observed in workerd:
205
440
  // only the gzip header leaves early). An explicit identity encoding opts
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@bascik/adapter-cloudflare",
3
- "version": "1.0.0-rc.1",
3
+ "version": "1.0.0-rc.10",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/bascikdev/bascik.git",
7
7
  "directory": "adapters/cloudflare"
8
8
  },
9
9
  "description": "Cloudflare Pages and Workers adapter for Bascik",
10
- "license": "Elastic-2.0",
10
+ "license": "MIT",
11
11
  "type": "module",
12
12
  "exports": {
13
13
  ".": {
@@ -30,29 +30,35 @@
30
30
  "typecheck": "tsc --noEmit",
31
31
  "unit": "vitest run",
32
32
  "update-coverage": "yarn coverage",
33
- "e2e": "playwright test --config e2e/playwright.config.ts"
33
+ "e2e": "playwright test --config e2e/playwright.config.ts",
34
+ "demo:build": "cd e2e/fixture && bascik --build --target cloudflare",
35
+ "demo:deploy": "cd e2e/fixture/dist/.bascik/cloudflare && wrangler deploy",
36
+ "demo:preview": "cd e2e/fixture/dist/.bascik/cloudflare && wrangler preview",
37
+ "demo:dev": "cd e2e/fixture/dist/.bascik/cloudflare && wrangler dev"
34
38
  },
35
39
  "dependencies": {
36
40
  "esbuild": "^0.28.2",
37
41
  "jsonc-parser": "^3.3.1",
38
- "smol-toml": "^1.8.0"
42
+ "smol-toml": "^1.9.0"
39
43
  },
40
44
  "peerDependencies": {
41
- "@bascik/bascik": "^1.0.0-rc.1"
45
+ "@bascik/bascik": "^1.0.0-rc.10"
42
46
  },
43
47
  "devDependencies": {
44
- "@bascik/bascik": "workspace:*",
45
- "@playwright/test": "^1.58.2",
46
- "@types/node": "^24.0.0",
47
- "@vitest/coverage-v8": "^4.1.10",
48
+ "@bascik/bascik": "^1.0.0-rc.10",
49
+ "@playwright/test": "^1.63.0",
50
+ "@types/node": "^24.19.1",
51
+ "@vitest/coverage-v8": "^5.0.3",
48
52
  "miniflare": "4.20260730.0",
49
53
  "typescript": "^7.0.2",
50
- "vitest": "^4.1.10"
54
+ "vite": "^8.3.4",
55
+ "vitest": "^5.0.3",
56
+ "wrangler": "^4.152.0"
51
57
  },
52
58
  "publishConfig": {
53
59
  "access": "public"
54
60
  },
55
61
  "engines": {
56
- "node": ">=22.18.0"
62
+ "node": ">=22.22.0"
57
63
  }
58
64
  }