diff --git a/analytics/components/DecoAnalytics.tsx b/analytics/components/DecoAnalytics.tsx index d42cb810a..26b3574d6 100644 --- a/analytics/components/DecoAnalytics.tsx +++ b/analytics/components/DecoAnalytics.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { useScriptAsDataURI } from "@deco/deco/hooks"; export interface Props { /** diff --git a/deno.json b/deno.json index a577503fc..cb79b0420 100644 --- a/deno.json +++ b/deno.json @@ -1,10 +1,11 @@ { "imports": { - "$fresh/": "https://cdn.jsdelivr.net/gh/denoland/fresh@1.6.8/", - "preact": "npm:preact@10.23.1", - "preact-render-to-string": "npm:preact-render-to-string@6.4.2", - "@preact/signals": "https://esm.sh/*@preact/signals@1.1.3", - "@preact/signals-core": "https://esm.sh/@preact/signals-core@1.3.0", + "fresh": "jsr:@fresh/core@^2.2.0", + "fresh/": "jsr:@fresh/core@^2.2.0/", + "$fresh/": "jsr:@fresh/core@^2.2.0/", + "preact": "npm:preact@^10.27.0", + "preact-render-to-string": "npm:preact-render-to-string@^6.5.11", + "@preact/signals": "npm:@preact/signals@^2.2.1", "std/": "https://deno.land/std@0.204.0/", "partytown/": "https://deno.land/x/partytown@0.4.8/", "deco-sites/std/": "https://cdn.jsdelivr.net/gh/deco-sites/std@1.26.8/", @@ -33,8 +34,8 @@ "@zaubrik/djwt": "jsr:@zaubrik/djwt@^3.0.2", "fast-json-patch": "npm:fast-json-patch@^3.1.1", "simple-git": "npm:simple-git@^3.25.0", - "https://esm.sh/*preact-render-to-string@6.3.1": "npm:preact-render-to-string@6.4.2", - "@deco/deco": "jsr:@deco/deco@^1.127.0" + "https://esm.sh/*preact-render-to-string@6.3.1": "npm:preact-render-to-string@^6.5.11", + "@deco/deco": "https://denopkg.com/deco-cx/deco@fresh2/mod.ts" }, "lock": false, "tasks": { @@ -69,5 +70,5 @@ ] } }, - "version": "0.133.27" + "version": "1.0.0" } diff --git a/htmx/sections/htmx.tsx b/htmx/sections/htmx.tsx index 5a8d4f7b0..239856098 100644 --- a/htmx/sections/htmx.tsx +++ b/htmx/sections/htmx.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { AppContext, Extension } from "../mod.ts"; import { type SectionProps } from "@deco/deco"; import { useScript } from "@deco/deco/hooks"; diff --git a/linx-impulse/sections/Script/LinxImpulseScript.tsx b/linx-impulse/sections/Script/LinxImpulseScript.tsx index 012b73ed5..a8c97e858 100644 --- a/linx-impulse/sections/Script/LinxImpulseScript.tsx +++ b/linx-impulse/sections/Script/LinxImpulseScript.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { AppContext } from "../../mod.ts"; import { type SectionProps } from "@deco/deco"; export const loader = (_props: unknown, _req: Request, ctx: AppContext) => ({ diff --git a/linx/hooks/context.ts b/linx/hooks/context.ts index e5ac2480d..958ded5b2 100644 --- a/linx/hooks/context.ts +++ b/linx/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { invoke } from "../runtime.ts"; import type { CartResponse } from "../utils/types/basketJSON.ts"; diff --git a/nuvemshop/hooks/context.ts b/nuvemshop/hooks/context.ts index 5b698df13..0064a8f16 100644 --- a/nuvemshop/hooks/context.ts +++ b/nuvemshop/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { invoke } from "../runtime.ts"; import { Cart } from "../utils/types.ts"; diff --git a/posthog/components/PostHog.tsx b/posthog/components/PostHog.tsx index b19b9fab7..3113724ee 100644 --- a/posthog/components/PostHog.tsx +++ b/posthog/components/PostHog.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { AppContext } from "../mod.ts"; import { useScriptAsDataURI } from "@deco/deco/hooks"; export interface Props { diff --git a/shopify/hooks/context.ts b/shopify/hooks/context.ts index b0bf3b486..e801185c7 100644 --- a/shopify/hooks/context.ts +++ b/shopify/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { Person } from "../../commerce/types.ts"; import { invoke } from "../runtime.ts"; diff --git a/sourei/sections/Analytics/Sourei.tsx b/sourei/sections/Analytics/Sourei.tsx index c109922e0..2f36b88c3 100644 --- a/sourei/sections/Analytics/Sourei.tsx +++ b/sourei/sections/Analytics/Sourei.tsx @@ -1,5 +1,5 @@ // deno-lint-ignore-file no-explicit-any -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { useScriptAsDataURI } from "@deco/deco/hooks"; interface Props { /** diff --git a/utils/defaultErrorPage.tsx b/utils/defaultErrorPage.tsx index 64c7498ad..bdf8c0385 100644 --- a/utils/defaultErrorPage.tsx +++ b/utils/defaultErrorPage.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; type Props = { error?: string; diff --git a/vnda/hooks/context.ts b/vnda/hooks/context.ts index 6e0ac94d0..c9d97dfde 100644 --- a/vnda/hooks/context.ts +++ b/vnda/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { invoke } from "../runtime.ts"; import type { Cart } from "../loaders/cart.ts"; diff --git a/vtex/hooks/context.ts b/vtex/hooks/context.ts index 16defe607..168fb3114 100644 --- a/vtex/hooks/context.ts +++ b/vtex/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { Person } from "../../commerce/types.ts"; import { invoke } from "../runtime.ts"; diff --git a/wake/hooks/context.ts b/wake/hooks/context.ts index 0afc46a4a..e0eeab835 100644 --- a/wake/hooks/context.ts +++ b/wake/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { invoke } from "../runtime.ts"; import type { diff --git a/wap/hooks/context.ts b/wap/hooks/context.ts index 238e90f92..b103fa4b4 100644 --- a/wap/hooks/context.ts +++ b/wap/hooks/context.ts @@ -1,4 +1,4 @@ -import { IS_BROWSER } from "$fresh/runtime.ts"; +import { IS_BROWSER } from "fresh/runtime"; import { signal } from "@preact/signals"; import { Person } from "../../commerce/types.ts"; import { invoke } from "../runtime.ts"; diff --git a/website/components/Analytics.tsx b/website/components/Analytics.tsx index e61d79b41..2cf3fecb1 100644 --- a/website/components/Analytics.tsx +++ b/website/components/Analytics.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { useScriptAsDataURI } from "@deco/deco/hooks"; import { context } from "@deco/deco"; declare global { diff --git a/website/components/Clickhouse.tsx b/website/components/Clickhouse.tsx index 3e4e1d350..c6307906d 100644 --- a/website/components/Clickhouse.tsx +++ b/website/components/Clickhouse.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { encryptToHex } from "../utils/crypto.ts"; import { useScriptAsDataURI } from "@deco/deco/hooks"; declare global { diff --git a/website/components/Events.tsx b/website/components/Events.tsx index 837b980ed..3f1610794 100644 --- a/website/components/Events.tsx +++ b/website/components/Events.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { type AnalyticsEvent, type Deco } from "../../commerce/types.ts"; import { useScriptAsDataURI } from "@deco/deco/hooks"; import { DECO_SEGMENT, type Flag } from "@deco/deco"; diff --git a/website/components/Image.tsx b/website/components/Image.tsx index bfa4a58d0..2a10adb90 100644 --- a/website/components/Image.tsx +++ b/website/components/Image.tsx @@ -1,4 +1,4 @@ -import { Head, IS_BROWSER } from "$fresh/runtime.ts"; +import { Head, IS_BROWSER } from "fresh/runtime"; import type { JSX } from "preact"; import { forwardRef } from "preact/compat"; import { Manifest } from "../manifest.gen.ts"; diff --git a/website/components/OneDollarStats.tsx b/website/components/OneDollarStats.tsx index f7ee51f93..7fbecad53 100644 --- a/website/components/OneDollarStats.tsx +++ b/website/components/OneDollarStats.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { useScriptAsDataURI } from "@deco/deco/hooks"; import { DEFAULT_ANALYTICS_SCRIPT_URL } from "../loaders/analyticsScript.ts"; diff --git a/website/components/Picture.tsx b/website/components/Picture.tsx index 8ce411852..2af437b0c 100644 --- a/website/components/Picture.tsx +++ b/website/components/Picture.tsx @@ -1,7 +1,7 @@ import { useContext, useMemo } from "preact/hooks"; import { forwardRef } from "preact/compat"; import { ComponentChildren, createContext, JSX } from "preact"; -import { Head, IS_BROWSER } from "$fresh/runtime.ts"; +import { Head, IS_BROWSER } from "fresh/runtime"; import { FACTORS, diff --git a/website/components/Seo.tsx b/website/components/Seo.tsx index 08c17a04e..ed1cab363 100644 --- a/website/components/Seo.tsx +++ b/website/components/Seo.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import type { ImageWidget } from "../../admin/widgets.ts"; import { stripHTML } from "../utils/html.ts"; import { JSX } from "preact"; diff --git a/website/components/Theme.tsx b/website/components/Theme.tsx index e8b34adbe..6e7ecd14c 100644 --- a/website/components/Theme.tsx +++ b/website/components/Theme.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { useId } from "preact/hooks"; export interface Variable { diff --git a/website/components/_Controls.tsx b/website/components/_Controls.tsx index 12c5dc2c5..143f35bdf 100644 --- a/website/components/_Controls.tsx +++ b/website/components/_Controls.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { Page } from "../../commerce/types.ts"; import { useScriptAsDataURI } from "@deco/deco/hooks"; import { type Flag, type Site } from "@deco/deco"; diff --git a/website/components/_seo/Preview.tsx b/website/components/_seo/Preview.tsx index ea5851f5d..d7e3c3e57 100644 --- a/website/components/_seo/Preview.tsx +++ b/website/components/_seo/Preview.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import type { ComponentChildren, ComponentProps } from "preact"; import { useMemo } from "preact/hooks"; import { ImageWidget } from "../../../admin/widgets.ts"; diff --git a/website/handlers/fresh.ts b/website/handlers/fresh.ts index 7e61896a8..dafae5d27 100644 --- a/website/handlers/fresh.ts +++ b/website/handlers/fresh.ts @@ -1,4 +1,3 @@ -import { HandlerContext } from "$fresh/server.ts"; import { getSetCookies } from "std/http/cookie.ts"; import { __DECO_FBT } from "../../utils/deferred.ts"; import { errorIfFrameworkMismatch } from "../../utils/framework.tsx"; @@ -15,6 +14,13 @@ import { import type { Exception } from "npm:@opentelemetry/api@1.9.0"; type ConnInfo = Deno.ServeHandlerInfo; + +/** Fresh context with render function */ +interface FreshContext { + render: (data?: Data) => Response | Promise; + state: State; +} + /** * @title Fresh Config */ @@ -22,9 +28,9 @@ export interface FreshConfig { page: Page; } export const isFreshCtx = ( - ctx: ConnInfo | HandlerContext, -): ctx is HandlerContext => { - return typeof (ctx as HandlerContext).render === "function"; + ctx: ConnInfo | FreshContext, +): ctx is FreshContext => { + return typeof (ctx as FreshContext).render === "function"; }; function abortHandler( ctrl: AbortController, diff --git a/website/pages/Page.tsx b/website/pages/Page.tsx index 9d7ef46a0..dd996e944 100644 --- a/website/pages/Page.tsx +++ b/website/pages/Page.tsx @@ -1,4 +1,4 @@ -import { Head } from "$fresh/runtime.ts"; +import { Head } from "fresh/runtime"; import { Context, HttpError, diff --git a/workflows/handlers/workflowRunner.ts b/workflows/handlers/workflowRunner.ts index 004dd1831..279d216d2 100644 --- a/workflows/handlers/workflowRunner.ts +++ b/workflows/handlers/workflowRunner.ts @@ -1,4 +1,3 @@ -import { HandlerContext } from "$fresh/server.ts"; import { type Handler, Workflow, WorkflowContext } from "@deco/deco/blocks"; import { workflowHTTPHandler } from "@deco/durable"; import { @@ -6,13 +5,18 @@ import { type DecoSiteState, type DecoState, } from "@deco/deco"; + +/** Context with state for workflow handlers */ +interface ContextWithState { + state: State; +} + export interface Config { workflow: Workflow; } export default function WorkflowHandler({ workflow }: Config): Handler { return (req: Request, conn: Deno.ServeHandlerInfo) => { - const ctx = conn as unknown as HandlerContext< - unknown, + const ctx = conn as unknown as ContextWithState< DecoState >; if (ctx?.state) {