From 2b302ac4106ace66b24ae12229c2952789a2aee2 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Wed, 30 Apr 2025 11:34:27 +1000 Subject: [PATCH 1/8] refactor(core): use `getSnapshotPath()` --- src/build_cache.ts | 4 ++-- src/dev/dev_build_cache.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/build_cache.ts b/src/build_cache.ts index 6263eba4381..ccc06758c59 100644 --- a/src/build_cache.ts +++ b/src/build_cache.ts @@ -1,5 +1,5 @@ import * as path from "@std/path"; -import type { ResolvedFreshConfig } from "./config.ts"; +import { getSnapshotPath, type ResolvedFreshConfig } from "./config.ts"; import { DENO_DEPLOYMENT_ID, setBuildId } from "./runtime/build_id.ts"; import * as colors from "@std/fmt/colors"; @@ -30,7 +30,7 @@ export interface BuildCache { export class ProdBuildCache implements BuildCache { static async fromSnapshot(config: ResolvedFreshConfig, islandCount: number) { - const snapshotPath = path.join(config.build.outDir, "snapshot.json"); + const snapshotPath = getSnapshotPath(config); const staticFiles = new Map(); const islandToChunk = new Map(); diff --git a/src/dev/dev_build_cache.ts b/src/dev/dev_build_cache.ts index 2a08c6cb14f..dfe3ebc7f6c 100644 --- a/src/dev/dev_build_cache.ts +++ b/src/dev/dev_build_cache.ts @@ -1,7 +1,7 @@ import type { BuildCache, StaticFile } from "../build_cache.ts"; import * as path from "@std/path"; import { SEPARATOR as WINDOWS_SEPARATOR } from "@std/path/windows/constants"; -import type { ResolvedFreshConfig } from "../config.ts"; +import { getSnapshotPath, type ResolvedFreshConfig } from "../config.ts"; import type { BuildSnapshot } from "../build_cache.ts"; import { encodeHex } from "@std/encoding/hex"; import { crypto } from "@std/crypto"; @@ -284,7 +284,7 @@ export class DiskBuildCache implements DevBuildCache { } await Deno.writeTextFile( - path.join(this.config.build.outDir, "snapshot.json"), + getSnapshotPath(this.config), JSON.stringify(snapshot, null, 2), ); } From be21dd0a918c97263118ff154d3173676715e596 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Wed, 30 Apr 2025 11:42:29 +1000 Subject: [PATCH 2/8] BREAKING(core): move `FreshConfig.build.outDir` to `FreshConfig.buildOutDir` --- src/config.ts | 14 ++++++-------- src/dev/builder_test.ts | 16 ++++------------ 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/config.ts b/src/config.ts index 8e6208c57ad..6c9347e31cf 100644 --- a/src/config.ts +++ b/src/config.ts @@ -3,13 +3,11 @@ import type { Mode } from "./runtime/server/mod.ts"; export interface FreshConfig { root?: string; - build?: { - /** - * The directory to write generated files to when `dev.ts build` is run. - * This can be an absolute path, a file URL or a relative path. - */ - outDir?: string; - }; + /** + * The directory to write generated files to when `dev.ts build` is run. + * This can be an absolute path, a file URL or a relative path. + */ + buildOutDir?: string; /** * Serve fresh from a base path instead of from the root. * "/foo/bar" -> http://localhost:8000/foo/bar @@ -61,7 +59,7 @@ export function normalizeConfig(options: FreshConfig): ResolvedFreshConfig { return { root, build: { - outDir: options.build?.outDir ?? path.join(root, "_fresh"), + outDir: options.buildOutDir ?? path.join(root, "_fresh"), }, basePath: options.basePath ?? "", staticDir: options.staticDir ?? path.join(root, "static"), diff --git a/src/dev/builder_test.ts b/src/dev/builder_test.ts index 07c48c57533..3e53bd69f8f 100644 --- a/src/dev/builder_test.ts +++ b/src/dev/builder_test.ts @@ -33,9 +33,7 @@ Deno.test({ await Deno.writeTextFile(path.join(tmp, "foo.css"), "body { color: red; }"); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); await builder.build(app); @@ -57,9 +55,7 @@ Deno.test({ ); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); await builder.build(app); @@ -83,9 +79,7 @@ Deno.test({ ); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); await builder.build(app); @@ -105,9 +99,7 @@ Deno.test({ const tmp = await Deno.makeTempDir(); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); app.island("jsr:@marvinh-test/fresh-island", "RemoteIsland", RemoteIsland); From ca8c3594a1b681c453331c780ca826c2c0652bf0 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Thu, 1 May 2025 09:26:48 +1000 Subject: [PATCH 3/8] fix --- init/src/init.ts | 1 + src/dev/middlewares/error_overlay/overlay.tsx | 164 +++++++++--------- 2 files changed, 83 insertions(+), 82 deletions(-) diff --git a/init/src/init.ts b/init/src/init.ts index e6e59151e47..04640b73960 100644 --- a/init/src/init.ts +++ b/init/src/init.ts @@ -215,6 +215,7 @@ export default { await writeFile("tailwind.config.ts", TAILWIND_CONFIG_TS); } + // deno-fmt-ignore const GRADIENT_CSS = css`.fresh-gradient { background-color: rgb(134, 239, 172); background-image: linear-gradient( diff --git a/src/dev/middlewares/error_overlay/overlay.tsx b/src/dev/middlewares/error_overlay/overlay.tsx index f0bbd7257db..515cafadc72 100644 --- a/src/dev/middlewares/error_overlay/overlay.tsx +++ b/src/dev/middlewares/error_overlay/overlay.tsx @@ -8,88 +8,88 @@ const css = (arr: TemplateStringsArray, ...exts: never[]) => { export const errorCss = css` :root { - --bg: #fff; - --bg-code-frame: rgb(255, 0, 32, 0.1); - --bg-active-line: #fbcecc; - --text: #222; - --text2: #444; - --title: #e84644; - --code: #333; - font-family: sans-serif; - line-height: 1.4; - color: var(--text); - background: var(--bg); - } - - * { - box-sizing: border-box; - padding: 0; - margin: 0; - } - - @media (prefers-color-scheme: dark) { - :root { - --bg-code-frame: rgba(251, 93, 113, 0.2); - --bg-active-line: #4f1919; - --bg: #353535; - --text: #f7f7f7; - --text2: #ddd; - --code: #fdd1d1; - } - } - - .inner { - max-width: 48rem; - padding: 4rem 1rem; - margin: 0 auto; - } - - .title { - color: var(--title); - font-weight: normal; - font-size: 1.5rem; - margin-bottom: 1rem; - } - - .code-frame { - overflow: auto; - padding: 0.5rem; - margin-bottom: 0.5rem; - background: var(--bg-code-frame); - color: var(--code); - } - .line { - padding: 0.25rem 0.5rem; - } - .active-line { - display: inline-block; - width: 100%; - background: var(--bg-active-line); - } - - .stack { - overflow-x: auto; - } - - .close-btn { - position: absolute; - top: 1rem; - right: 1rem; - color: var(--title); - display: block; - width: 3rem; - height: 3rem; - background: none; - border: none; - transform: translate3d(0, 0, 0); - } - .close-btn:active { - transform: translate3d(0, 2px, 0); - } - .close-btn:hover { - cursor: pointer; - filter: drop-shadow(0 0 0.75rem crimson); - } + --bg: #fff; + --bg-code-frame: rgb(255, 0, 32, 0.1); + --bg-active-line: #fbcecc; + --text: #222; + --text2: #444; + --title: #e84644; + --code: #333; + font-family: sans-serif; + line-height: 1.4; + color: var(--text); + background: var(--bg); + } + + * { + box-sizing: border-box; + padding: 0; + margin: 0; + } + + @media (prefers-color-scheme: dark) { + :root { + --bg-code-frame: rgba(251, 93, 113, 0.2); + --bg-active-line: #4f1919; + --bg: #353535; + --text: #f7f7f7; + --text2: #ddd; + --code: #fdd1d1; + } + } + + .inner { + max-width: 48rem; + padding: 4rem 1rem; + margin: 0 auto; + } + + .title { + color: var(--title); + font-weight: normal; + font-size: 1.5rem; + margin-bottom: 1rem; + } + + .code-frame { + overflow: auto; + padding: 0.5rem; + margin-bottom: 0.5rem; + background: var(--bg-code-frame); + color: var(--code); + } + .line { + padding: 0.25rem 0.5rem; + } + .active-line { + display: inline-block; + width: 100%; + background: var(--bg-active-line); + } + + .stack { + overflow-x: auto; + } + + .close-btn { + position: absolute; + top: 1rem; + right: 1rem; + color: var(--title); + display: block; + width: 3rem; + height: 3rem; + background: none; + border: none; + transform: translate3d(0, 0, 0); + } + .close-btn:active { + transform: translate3d(0, 2px, 0); + } + .close-btn:hover { + cursor: pointer; + filter: drop-shadow(0 0 0.75rem crimson); + } `; function CodeFrame(props: { codeFrame: string }) { From 56a82ee2bf8b6dbaae427e1974b9d0f43fc4398d Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Fri, 2 May 2025 10:04:43 +1000 Subject: [PATCH 4/8] update --- src/app_test.tsx | 4 +--- src/build_cache.ts | 2 +- src/config.ts | 14 +++----------- src/dev/builder.ts | 6 +++--- src/dev/dev_build_cache.ts | 8 ++++---- src/middlewares/static_files_test.ts | 8 ++------ src/test_utils.ts | 4 +--- tests/test_utils.tsx | 2 +- 8 files changed, 16 insertions(+), 32 deletions(-) diff --git a/src/app_test.tsx b/src/app_test.tsx index d193006d77d..42b4b8803ee 100644 --- a/src/app_test.tsx +++ b/src/app_test.tsx @@ -426,9 +426,7 @@ Deno.test.ignore("FreshApp - finish setup", async () => { app, await ProdBuildCache.fromSnapshot({ ...app.config, - build: { - outDir: "foo", - }, + buildOutDir: "foo", }, getIslandRegistry(app).size), ); diff --git a/src/build_cache.ts b/src/build_cache.ts index ccc06758c59..af8c9e8c3a0 100644 --- a/src/build_cache.ts +++ b/src/build_cache.ts @@ -104,7 +104,7 @@ export class ProdBuildCache implements BuildCache { if (info === undefined) return null; const base = info.generated - ? this.#config.build.outDir + ? this.#config.buildOutDir : this.#config.staticDir; const filePath = info.generated ? path.join(base, "static", pathname) diff --git a/src/config.ts b/src/config.ts index 6c9347e31cf..f918311a2c4 100644 --- a/src/config.ts +++ b/src/config.ts @@ -20,13 +20,7 @@ export interface FreshConfig { /** * The final resolved Fresh configuration where fields the user didn't specify are set to the default values. */ -export interface ResolvedFreshConfig { - root: string; - build: { - outDir: string; - }; - basePath: string; - staticDir: string; +export interface ResolvedFreshConfig extends Required { /** * Tells you in which mode Fresh is currently running in. */ @@ -58,9 +52,7 @@ export function normalizeConfig(options: FreshConfig): ResolvedFreshConfig { return { root, - build: { - outDir: options.buildOutDir ?? path.join(root, "_fresh"), - }, + buildOutDir: options.buildOutDir ?? path.join(root, "_fresh"), basePath: options.basePath ?? "", staticDir: options.staticDir ?? path.join(root, "static"), mode: "production", @@ -68,5 +60,5 @@ export function normalizeConfig(options: FreshConfig): ResolvedFreshConfig { } export function getSnapshotPath(config: ResolvedFreshConfig): string { - return path.join(config.build.outDir, "snapshot.json"); + return path.join(config.buildOutDir, "snapshot.json"); } diff --git a/src/dev/builder.ts b/src/dev/builder.ts index bfa6c91f293..beb25f1a966 100644 --- a/src/dev/builder.ts +++ b/src/dev/builder.ts @@ -104,8 +104,8 @@ export class Builder implements FreshBuilder { } async #build(app: App, dev: boolean): Promise { - const { build } = app.config; - const staticOutDir = path.join(build.outDir, "static"); + const { buildOutDir } = app.config; + const staticOutDir = path.join(buildOutDir, "static"); if (!this.#addedInternalTransforms) { this.#addedInternalTransforms = true; @@ -206,7 +206,7 @@ export class Builder implements FreshBuilder { if (!dev) { // deno-lint-ignore no-console console.log( - `Assets written to: ${colors.cyan(build.outDir)}`, + `Assets written to: ${colors.cyan(buildOutDir)}`, ); } } diff --git a/src/dev/dev_build_cache.ts b/src/dev/dev_build_cache.ts index dfe3ebc7f6c..460e49a65f0 100644 --- a/src/dev/dev_build_cache.ts +++ b/src/dev/dev_build_cache.ts @@ -188,8 +188,8 @@ export class DiskBuildCache implements DevBuildCache { this.#processedFiles.set(pathname, hash); const outDir = pathname === "/metafile.json" - ? this.config.build.outDir - : path.join(this.config.build.outDir, "static"); + ? this.config.buildOutDir + : path.join(this.config.buildOutDir, "static"); const filePath = path.join(outDir, pathname); assertInDir(filePath, outDir); @@ -204,7 +204,7 @@ export class DiskBuildCache implements DevBuildCache { async flush(): Promise { const staticDir = this.config.staticDir; - const outDir = this.config.build.outDir; + const outDir = this.config.buildOutDir; if (await fsAdapter.isDirectory(staticDir)) { const entries = fsAdapter.walk(staticDir, { @@ -272,7 +272,7 @@ export class DiskBuildCache implements DevBuildCache { } if (maybeHash === null) { - const filePath = path.join(this.config.build.outDir, "static", name); + const filePath = path.join(this.config.buildOutDir, "static", name); const file = await Deno.open(filePath); hash = await hashContent(file.readable); } diff --git a/src/middlewares/static_files_test.ts b/src/middlewares/static_files_test.ts index d5219e01d7d..5a2f7d6f605 100644 --- a/src/middlewares/static_files_test.ts +++ b/src/middlewares/static_files_test.ts @@ -136,9 +136,7 @@ Deno.test("static files - disables caching in development", async () => { buildCache, config: { basePath: "", - build: { - outDir: "", - }, + buildOutDir: "", mode: "development", root: ".", staticDir: "", @@ -164,9 +162,7 @@ Deno.test("static files - enables caching in production", async () => { buildCache, config: { basePath: "", - build: { - outDir: "", - }, + buildOutDir: "", mode: "production", root: ".", staticDir: "", diff --git a/src/test_utils.ts b/src/test_utils.ts index 68e678cc0f8..9383c1683d0 100644 --- a/src/test_utils.ts +++ b/src/test_utils.ts @@ -52,9 +52,7 @@ export class FakeServer { } const DEFAULT_CONFIG: ResolvedFreshConfig = { - build: { - outDir: "", - }, + buildOutDir: "", mode: "production", basePath: "", root: "", diff --git a/tests/test_utils.tsx b/tests/test_utils.tsx index 82e725b7098..42ae0268e53 100644 --- a/tests/test_utils.tsx +++ b/tests/test_utils.tsx @@ -64,7 +64,7 @@ export function Doc(props: { children?: ComponentChildren; title?: string }) { export async function buildProd(app: App) { const outDir = await Deno.makeTempDir(); // FIXME: Sharing build output path is weird - app.config.build.outDir = outDir; + app.config.buildOutDir = outDir; const builder = new Builder({}); await builder.build(app); const cache = await ProdBuildCache.fromSnapshot( From 4fb18e756219466247280e62934c27bc58d9db17 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Tue, 13 May 2025 09:41:18 +1000 Subject: [PATCH 5/8] fix --- src/config.ts | 2 +- src/config_test.ts | 13 ++++++------- src/dev/builder_test.ts | 4 +--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/config.ts b/src/config.ts index 660107cae5e..d6819835a0f 100644 --- a/src/config.ts +++ b/src/config.ts @@ -80,7 +80,7 @@ export function normalizeConfig(options: FreshConfig): ResolvedFreshConfig { return { root, - buildOutDir: parseDirPath(options.build?.outDir ?? "_fresh", root), + buildOutDir: parseDirPath(options.buildOutDir ?? "_fresh", root), basePath: options.basePath ?? "", staticDir: parseDirPath(options.staticDir ?? "static", root), mode: "production", diff --git a/src/config_test.ts b/src/config_test.ts index adae62b5807..ed83f49a91a 100644 --- a/src/config_test.ts +++ b/src/config_test.ts @@ -49,8 +49,7 @@ Deno.test("normalizeConfig - root", () => { Deno.test("normalizeConfig - build.outDir", () => { const cwd = Deno.cwd().replaceAll("\\", "/"); - const outDir = (options: FreshConfig) => - normalizeConfig(options).build.outDir; + const outDir = (options: FreshConfig) => normalizeConfig(options).buildOutDir; // Default outDir expect(outDir({ root: "./src" })).toEqual(`${cwd}/src/_fresh`); @@ -58,21 +57,21 @@ Deno.test("normalizeConfig - build.outDir", () => { expect(outDir({ root: "file:///src" })).toEqual("/src/_fresh"); // Relative outDir - expect(outDir({ root: "/src", build: { outDir: "dist" } })).toEqual( + expect(outDir({ root: "/src", buildOutDir: "dist" })).toEqual( "/src/dist", ); - expect(outDir({ root: "/src", build: { outDir: "./dist" } })).toEqual( + expect(outDir({ root: "/src", buildOutDir: "./dist" })).toEqual( "/src/dist", ); // Absolute outDir - expect(outDir({ root: "/src", build: { outDir: "/dist" } })).toEqual( + expect(outDir({ root: "/src", buildOutDir: "/dist" })).toEqual( "/dist", ); - expect(outDir({ root: "/src", build: { outDir: "/dist/fresh" } })).toEqual( + expect(outDir({ root: "/src", buildOutDir: "/dist/fresh" })).toEqual( "/dist/fresh", ); - expect(outDir({ root: "/src", build: { outDir: "file:///dist" } })).toEqual( + expect(outDir({ root: "/src", buildOutDir: "file:///dist" })).toEqual( "/dist", ); }); diff --git a/src/dev/builder_test.ts b/src/dev/builder_test.ts index 1f710353c2c..4fa7212a29f 100644 --- a/src/dev/builder_test.ts +++ b/src/dev/builder_test.ts @@ -104,9 +104,7 @@ Deno.test({ ); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); await builder.build(app); From a4310223e3968917e63fc264e7b8f14c069ecbf5 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Wed, 14 May 2025 17:55:48 +1000 Subject: [PATCH 6/8] fixes --- deno.lock | 73 +++++++++++++++++++++++++++++++-- src/build_cache_test.ts | 4 +- src/dev/dev_build_cache_test.ts | 4 +- 3 files changed, 71 insertions(+), 10 deletions(-) diff --git a/deno.lock b/deno.lock index 076e36b5568..45925c18107 100644 --- a/deno.lock +++ b/deno.lock @@ -1,8 +1,13 @@ { "version": "5", "specifiers": { + "jsr:@astral/astral@*": "0.5.3", "jsr:@astral/astral@~0.5.2": "0.5.3", "jsr:@deno-library/progress@^1.5.1": "1.5.1", + "jsr:@deno/cache-dir@0.14": "0.14.0", + "jsr:@deno/doc@0.172": "0.172.0", + "jsr:@deno/graph@0.86": "0.86.9", + "jsr:@deno/graph@~0.82.3": "0.82.3", "jsr:@deno/otel@*": "0.0.2", "jsr:@luca/esbuild-deno-loader@0.11": "0.11.1", "jsr:@marvinh-test/fresh-island@*": "0.0.1", @@ -19,12 +24,15 @@ "jsr:@std/expect@1": "1.0.15", "jsr:@std/fmt@1": "1.0.7", "jsr:@std/fmt@1.0.3": "1.0.3", + "jsr:@std/fmt@^1.0.3": "1.0.7", "jsr:@std/front-matter@^1.0.5": "1.0.9", "jsr:@std/fs@1": "1.0.17", "jsr:@std/fs@^1.0.16": "1.0.17", + "jsr:@std/fs@^1.0.6": "1.0.17", "jsr:@std/html@1": "1.0.3", "jsr:@std/http@^1.0.15": "1.0.15", "jsr:@std/internal@^1.0.6": "1.0.6", + "jsr:@std/io@0.225": "0.225.0", "jsr:@std/io@0.225.0": "0.225.0", "jsr:@std/json@^1.0.2": "1.0.2", "jsr:@std/jsonc@1": "1.0.2", @@ -77,9 +85,32 @@ "integrity": "966611826b8bb27baae73ab1c4fa4317cd4edd2abb99750cd6f8488d22d5b121", "dependencies": [ "jsr:@std/fmt@1.0.3", - "jsr:@std/io" + "jsr:@std/io@0.225.0" ] }, + "@deno/cache-dir@0.14.0": { + "integrity": "729f0b68e7fc96443c09c2c544b830ca70897bdd5168598446d752f7a4c731ad", + "dependencies": [ + "jsr:@deno/graph@0.86", + "jsr:@std/fmt@^1.0.3", + "jsr:@std/fs@^1.0.6", + "jsr:@std/io@0.225", + "jsr:@std/path@^1.0.8" + ] + }, + "@deno/doc@0.172.0": { + "integrity": "72a68ed533576a06feb930a84784ad9ba6d83ca9d581fc734d498c58e32b7cf5", + "dependencies": [ + "jsr:@deno/cache-dir", + "jsr:@deno/graph@~0.82.3" + ] + }, + "@deno/graph@0.82.3": { + "integrity": "5c1fe944368172a9c87588ac81b82eb027ca78002a57521567e6264be322637e" + }, + "@deno/graph@0.86.9": { + "integrity": "c4f353a695bcc5246c099602977dabc6534eacea9999a35a8cb24e807192e6a1" + }, "@deno/otel@0.0.2": { "integrity": "4ef61b7eb1c4063f8224d66fc43f25e428a566d2e18785d0dc67bb70a318f0ff", "dependencies": [ @@ -166,7 +197,10 @@ "integrity": "9533b128f230f73bd209408bb07a4b12f8d4255ab2a4d22a1fd6d87304aca9a4" }, "@std/io@0.225.0": { - "integrity": "c1db7c5e5a231629b32d64b9a53139445b2ca640d828c26bf23e1c55f8c079b3" + "integrity": "c1db7c5e5a231629b32d64b9a53139445b2ca640d828c26bf23e1c55f8c079b3", + "dependencies": [ + "jsr:@std/bytes" + ] }, "@std/json@1.0.2": { "integrity": "d9e5497801c15fb679f55a2c01c7794ad7a5dfda4dd1bebab5e409cb5e0d34d4" @@ -1504,7 +1538,8 @@ } }, "redirects": { - "https://esm.sh/@types/react@~19.0.7/index.d.ts": "https://esm.sh/@types/react@19.0.14/index.d.ts" + "https://esm.sh/@types/react@~19.0.7/index.d.ts": "https://esm.sh/@types/react@19.0.14/index.d.ts", + "https://github.com/denoland/std/raw/refs/heads/main/_tools/check_docs.ts": "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/check_docs.ts" }, "remote": { "https://deno.land/std@0.120.0/async/deadline.ts": "1d6ac7aeaee22f75eb86e4e105d6161118aad7b41ae2dd14f4cfd3bf97472b93", @@ -1541,9 +1576,39 @@ "https://deno.land/x/case@2.1.1/vendor/camelCaseRegexp.ts": "7d9ff02aad4ab6429eeab7c7353f7bcdd6cc5909a8bd3dda97918c8bbb7621ae", "https://deno.land/x/case@2.1.1/vendor/camelCaseUpperRegexp.ts": "292de54a698370f90adcdf95727993d09888b7f33d17f72f8e54ba75f7791787", "https://deno.land/x/case@2.1.1/vendor/nonWordRegexp.ts": "c1a052629a694144b48c66b0175a22a83f4d61cb40f4e45293fc5d6b123f927e", + "https://deno.land/x/imagescript@1.3.0/ImageScript.js": "cf90773c966031edd781ed176c598f7ed495e7694cd9b86c986d2d97f783cca0", + "https://deno.land/x/imagescript@1.3.0/mod.ts": "18a6cb83c55e690c873505f6fe867364c678afb64934fe7aef593a6b92f79995", + "https://deno.land/x/imagescript@1.3.0/png/src/crc.mjs": "5cf50de181d61dd00e66a240d811018ba5070afa8bba302f393604404604de84", + "https://deno.land/x/imagescript@1.3.0/png/src/mem.mjs": "4968d400dae069b4bf0ef4767c1802fd2cc7d15d90eda4cfadf5b4cd19b96c6d", + "https://deno.land/x/imagescript@1.3.0/png/src/png.mjs": "96ef0ceff1b5a6cd9304749e5f187b4ab238509fb5f9a8be8ee934240271ed8d", + "https://deno.land/x/imagescript@1.3.0/png/src/zlib.mjs": "9867dc3fab1d31b664f9344b0d7e977f493d9c912a76c760d012ed2b89f7061c", + "https://deno.land/x/imagescript@1.3.0/utils/buffer.js": "952cb1beb8827e50a493a5d1f29a4845e8c648789406d389dd51f51205ba02d8", + "https://deno.land/x/imagescript@1.3.0/utils/crc32.js": "573d6222b3605890714ebc374e687ec2aa3e9a949223ea199483e47ca4864f7d", + "https://deno.land/x/imagescript@1.3.0/utils/png.js": "fbed9117e0a70602645d70df9c103ff6e79c03e987bd5c1685dcb4200729b6de", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/font.js": "9e75d842608c057045698d6a7cdf5ffd27241b5cdea0391c89a1917b31294524", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/gif.js": "8b86f7b96486bb8ff50fbc7c7487f86cb5cef85e6acd71e1def78a1aa2f12e4f", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/jpeg.js": "75295e2fcf96b4f7bb894b3844fdaa8140d63169d28b466b5d5be89d59a7b6e6", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/png.js": "0659536a8dd8f892c8346e268b2754b4414fad0ec1e9794dfcde1ba1c804ee02", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/svg.js": "f5c8a9d1977b51a7c07549ceb6bbbaca9497321a193f28b3dc229a42d91bcf14", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/tiff.js": "c2d7bdaef094df25aae1752e75167f485e89275d76a1379e39d8949580b7af4f", + "https://deno.land/x/imagescript@1.3.0/utils/wasm/zlib.js": "749875f83abffe24d3b977475a0cbd5f9b52bee1fbdbef61ec183cbfc17805f6", + "https://deno.land/x/imagescript@1.3.0/v2/framebuffer.mjs": "add44ff184636659714b3c6d4b896f628545451abffbc30b5bcc2e8d9a73d012", + "https://deno.land/x/imagescript@1.3.0/v2/ops/blur.mjs": "80716f1ffab8a2aeb54a036f583bf51a2b9dd37e005adc000add803df8e8a12f", + "https://deno.land/x/imagescript@1.3.0/v2/ops/color.mjs": "5e72cdcbf97dc939a2795223f01e3cb0544c0c56b03ea2aa026050df58348814", + "https://deno.land/x/imagescript@1.3.0/v2/ops/crop.mjs": "69431fa6f687fd9f0c31eff0ec27d7ac925275005e53a37f0c3fab4cc4d9a9ea", + "https://deno.land/x/imagescript@1.3.0/v2/ops/fill.mjs": "cf1b9488314753fbc9ebf03410ac74c2a34ea5a69fb6892cd6e8366cd1930d93", + "https://deno.land/x/imagescript@1.3.0/v2/ops/flip.mjs": "825a34a66567dcf15e76a719f1bf2f66fb106503cd69942292b1b0ae05c5718e", + "https://deno.land/x/imagescript@1.3.0/v2/ops/index.mjs": "423ba687119be2bba8cec72890577d3afa3621b6b8108912242fe937a183f2aa", + "https://deno.land/x/imagescript@1.3.0/v2/ops/iterator.mjs": "c2adf3d90ce00719a02c48c97634574176a3501ff026676259bd71aa8f5d69b9", + "https://deno.land/x/imagescript@1.3.0/v2/ops/overlay.mjs": "7e6e2c2ffd25006d52597ab8babc5f8f503d388a3fdf2fbc0eaea02799a020c9", + "https://deno.land/x/imagescript@1.3.0/v2/ops/resize.mjs": "814e78ebce8eaf8f1f918688db7b52a141405e06a36ed4b25d04413d69e7d17b", + "https://deno.land/x/imagescript@1.3.0/v2/ops/rotate.mjs": "a1b65616717bd2eed8db406affea3263b4674dada46b56441ef38167a187455d", + "https://deno.land/x/imagescript@1.3.0/v2/util/mem.mjs": "4968d400dae069b4bf0ef4767c1802fd2cc7d15d90eda4cfadf5b4cd19b96c6d", "https://esm.sh/@docsearch/js@3.5.2/es2020/js.mjs": "9b278cf3c0b26feded7d8efeac8e2b50f76bbafcf173a95002944bcc3482830a", "https://esm.sh/@docsearch/js@3.5.2?target=es2020": "4bad084f771a1923fe042ece62a9078f482f8642cb0b1acb890905e58586fee7", - "https://raw.githubusercontent.com/denoland/ga4/main/mod.ts": "36f72ba1c90b5ebdb811427f367cd95fa6772d2de2fb45d6e57550501ee6d476" + "https://raw.githubusercontent.com/denoland/ga4/main/mod.ts": "36f72ba1c90b5ebdb811427f367cd95fa6772d2de2fb45d6e57550501ee6d476", + "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/check_docs.ts": "59c29d6a5de45d04c5cab1078c4aacbed9edd0a6b83a6469f55318665e5be6b2", + "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/utils.ts": "c2e38ed7e7a9a8c0fbaf8d70aa808fb02f2cbb5e71ef18d634feb4b479c6a001" }, "workspace": { "dependencies": [ diff --git a/src/build_cache_test.ts b/src/build_cache_test.ts index 39cc47469fb..8977f47ed82 100644 --- a/src/build_cache_test.ts +++ b/src/build_cache_test.ts @@ -19,9 +19,7 @@ Deno.test({ mode: "production", basePath: "/", staticDir: path.join(tmp, "static"), - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }; await Deno.mkdir(path.join(tmp, "static", ".well-known"), { recursive: true, diff --git a/src/dev/dev_build_cache_test.ts b/src/dev/dev_build_cache_test.ts index 8f740fd05c0..0c15e67b24d 100644 --- a/src/dev/dev_build_cache_test.ts +++ b/src/dev/dev_build_cache_test.ts @@ -14,9 +14,7 @@ Deno.test({ mode: "development", basePath: "/", staticDir: path.join(tmp, "static"), - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }; const fileTransformer = new FreshFileTransformer(createFakeFs({})); const buildCache = new MemoryBuildCache( From 3e4a895721aba28bf84c093df0bc2cb8288a58b8 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Sat, 28 Jun 2025 17:41:19 +1000 Subject: [PATCH 7/8] fix --- src/dev/builder_test.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/dev/builder_test.ts b/src/dev/builder_test.ts index e94c0c30157..f8f95366043 100644 --- a/src/dev/builder_test.ts +++ b/src/dev/builder_test.ts @@ -195,9 +195,7 @@ Deno.test({ ); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); await builder.build(app); @@ -214,9 +212,7 @@ Deno.test({ const tmp = await Deno.makeTempDir(); const app = new App({ staticDir: tmp, - build: { - outDir: path.join(tmp, "dist"), - }, + buildOutDir: path.join(tmp, "dist"), }); const abort = new AbortController(); const port = 8011; From 22b80ba5d13139d2a7247c45ce325d2e461076c1 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Mon, 21 Jul 2025 11:03:52 +1000 Subject: [PATCH 8/8] fix --- deno.lock | 63 +------------------------------------------------------ 1 file changed, 1 insertion(+), 62 deletions(-) diff --git a/deno.lock b/deno.lock index 79ea8af9815..00c3db3cba8 100644 --- a/deno.lock +++ b/deno.lock @@ -5,22 +5,17 @@ "jsr:@deno-library/progress@^1.5.1": "1.5.1", "jsr:@deno/cache-dir@0.14": "0.14.0", "jsr:@deno/doc@0.172": "0.172.0", - "jsr:@deno/esbuild-plugin@^1.0.1": "1.1.1", "jsr:@deno/esbuild-plugin@^1.1.1": "1.1.1", "jsr:@deno/graph@0.86": "0.86.9", "jsr:@deno/graph@~0.82.3": "0.82.3", "jsr:@deno/loader@~0.2.1": "0.2.1", - "jsr:@fresh/core@^2.0.0-alpha.37": "2.0.0-alpha.37", - "jsr:@fresh/plugin-tailwind@^0.0.1-alpha.7": "0.0.1-alpha.7", "jsr:@marvinh-test/fresh-island@^0.0.1": "0.0.1", - "jsr:@std/assert@0.221": "0.221.0", "jsr:@std/assert@^1.0.13": "1.0.13", "jsr:@std/async@1": "1.0.13", "jsr:@std/async@^1.0.13": "1.0.13", "jsr:@std/bytes@^1.0.5": "1.0.6", "jsr:@std/bytes@^1.0.6": "1.0.6", "jsr:@std/cli@^1.0.19": "1.0.20", - "jsr:@std/cli@^1.0.20": "1.0.20", "jsr:@std/collections@^1.0.11": "1.1.2", "jsr:@std/collections@^1.1.1": "1.1.2", "jsr:@std/crypto@1": "1.0.5", @@ -34,10 +29,8 @@ "jsr:@std/front-matter@^1.0.5": "1.0.9", "jsr:@std/fs@1": "1.0.19", "jsr:@std/fs@^1.0.18": "1.0.19", - "jsr:@std/fs@^1.0.19": "1.0.19", "jsr:@std/fs@^1.0.6": "1.0.19", "jsr:@std/html@1": "1.0.4", - "jsr:@std/html@^1.0.4": "1.0.4", "jsr:@std/http@^1.0.15": "1.0.19", "jsr:@std/internal@^1.0.6": "1.0.9", "jsr:@std/internal@^1.0.7": "1.0.9", @@ -48,9 +41,6 @@ "jsr:@std/json@^1.0.2": "1.0.2", "jsr:@std/jsonc@1": "1.0.2", "jsr:@std/media-types@1": "1.1.0", - "jsr:@std/media-types@^1.1.0": "1.1.0", - "jsr:@std/net@^1.0.4": "1.0.4", - "jsr:@std/path@0.221": "0.221.0", "jsr:@std/path@1": "1.1.1", "jsr:@std/path@^1.0.8": "1.1.1", "jsr:@std/path@^1.1.0": "1.1.1", @@ -134,39 +124,6 @@ "@deno/loader@0.2.1": { "integrity": "c9fcc7309ce6a77306d37a7dc4b886e547aafc5204a4a28b0eafa523ffa5c9fc" }, - "@fresh/core@2.0.0-alpha.37": { - "integrity": "26f2eeb1891c1e05d5e45f67fcd3da9f2b0810b2b8e9c52b05bb168a2e56a7c0", - "dependencies": [ - "jsr:@deno/esbuild-plugin@^1.0.1", - "jsr:@std/crypto@1", - "jsr:@std/datetime", - "jsr:@std/encoding@1", - "jsr:@std/fmt@^1.0.7", - "jsr:@std/fs@1", - "jsr:@std/html@1", - "jsr:@std/http", - "jsr:@std/jsonc", - "jsr:@std/media-types@1", - "jsr:@std/path@1", - "jsr:@std/semver", - "jsr:@std/uuid", - "npm:@opentelemetry/api", - "npm:@preact/signals@^2.2.1", - "npm:esbuild-wasm", - "npm:preact-render-to-string", - "npm:preact@^10.26.9" - ] - }, - "@fresh/plugin-tailwind@0.0.1-alpha.7": { - "integrity": "b940991bdb76f0995dc58b25183f1001d72c4020e049d384ad3fb751556aa2a9", - "dependencies": [ - "jsr:@std/path@0.221", - "npm:autoprefixer", - "npm:cssnano", - "npm:postcss", - "npm:tailwindcss" - ] - }, "@marvinh-test/fresh-island@0.0.1": { "integrity": "890f2595e60b1aaeaa8d73c6ad2c1247d4c5b895387df230f7f3b2a4da29b585", "dependencies": [ @@ -225,7 +182,6 @@ "@std/fs@1.0.19": { "integrity": "051968c2b1eae4d2ea9f79a08a3845740ef6af10356aff43d3e2ef11ed09fb06", "dependencies": [ - "jsr:@std/internal@^1.0.9", "jsr:@std/path@^1.1.1" ] }, @@ -235,15 +191,7 @@ "@std/http@1.0.19": { "integrity": "52128c8d00a1f0b20019f8b72376e7ef5f3133375b6f805b5bc89b9de2ad4686", "dependencies": [ - "jsr:@std/cli@^1.0.20", - "jsr:@std/encoding@^1.0.10", - "jsr:@std/fmt@^1.0.8", - "jsr:@std/fs@^1.0.19", - "jsr:@std/html@^1.0.4", - "jsr:@std/media-types@^1.1.0", - "jsr:@std/net", - "jsr:@std/path@^1.1.1", - "jsr:@std/streams@^1.0.10" + "jsr:@std/encoding@^1.0.10" ] }, "@std/internal@1.0.9": { @@ -270,15 +218,6 @@ "@std/media-types@1.1.0": { "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" }, - "@std/net@1.0.4": { - "integrity": "2f403b455ebbccf83d8a027d29c5a9e3a2452fea39bb2da7f2c04af09c8bc852" - }, - "@std/path@0.221.0": { - "integrity": "0a36f6b17314ef653a3a1649740cc8db51b25a133ecfe838f20b79a56ebe0095", - "dependencies": [ - "jsr:@std/assert@0.221" - ] - }, "@std/path@1.1.1": { "integrity": "fe00026bd3a7e6a27f73709b83c607798be40e20c81dde655ce34052fd82ec76", "dependencies": [