Skip to content

Version Packages (alpha) - #1435

Merged
yamcodes merged 1 commit into
v1from
changeset-release/v1
Jul 22, 2026
Merged

Version Packages (alpha)#1435
yamcodes merged 1 commit into
v1from
changeset-release/v1

Conversation

@arkenv-bot

@arkenv-bot arkenv-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to v1, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

v1 is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on v1.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@arkenv/nuxt@1.0.0-alpha.10

Major Changes

  • Throw when the Nuxt module cannot resolve an env schema #1473 0763a92 @yamcodes

    BREAKING CHANGE: The @arkenv/nuxt module now throws when no schema file is found (auto-discovery or schemaPath), instead of warning and skipping setup. Create an env.ts (or src/env.ts) schema, or set arkenv.schemaPath in nuxt.config.ts.

    // nuxt.config.ts
    export default defineNuxtConfig({
      modules: ["@arkenv/nuxt/module"],
      arkenv: {
        schemaPath: "./env.ts", // required if auto-discovery cannot find a schema
      },
    });

Minor Changes

  • Auto-extend shared schema in Nuxt strict-layout client entry #1422 b1d8bad @yamcodes

    @arkenv/nuxt: When the module runs in strict layout, omitting extends in env/client.ts auto-merges SharedSchema from env/internal/shared.ts via #arkenv/shared-schema. Applies to both @arkenv/nuxt/client and @arkenv/nuxt/standard/client. The server entry continues to auto-merge the composed client env.

    arkenv (CLI): The Nuxt strict scaffold now emits that simplified client template (no manual SharedSchema import or extends block). Next.js scaffolds remain unchanged.

    Usage:

    import arkenv from "@arkenv/nuxt/client";
    
    export const env = arkenv({
      NUXT_PUBLIC_API_URL: "string",
    });

    Auto-merge only runs when the extends key is omitted. Any explicit extends - including extends: [] or a custom list - is used as-is and opts out of auto-merge. Strict layout still requires env/internal/shared.ts with a SharedSchema export — that schema may be empty (type({})) when you have no shared variables. A missing file or unusable export fails with a clear diagnostic (rather than silently treating shared as empty).

Patch Changes

  • Coerce Nuxt public env overrides instead of leaving them as strings #1458 3667b7e @yamcodes

    Bug: With a numeric (or boolean) public schema key, setting a deploy-time override made Nitro put a string into runtimeConfig.public. That string won, so env lied about the type on server and client.

      // env.ts
      export const env = arkenv({
        NUXT_PUBLIC_PORT: "number",
      });
    
      // Deploy / Nitro boot: NUXT_PUBLIC_PORT=4000
    - env.NUXT_PUBLIC_PORT; // "4000" (string) — schema said number
    + env.NUXT_PUBLIC_PORT; // 4000 (number) — coerced after the override

    Same import surface. As a side effect, @arkenv/nuxt / @arkenv/nuxt/client no longer ship the validator into the browser bundle.

  • Skip all Nuxt module setup (including boot-gate hooks) when no schema file is found, matching the warn-and-bail contract. #1165 882c0ce @yamcodes

  • Drop embedded env.ts starters and warn when the Nuxt module finds no schema #1468 0150e73 @yamcodes

    Keep missing-schema guidance short and host-parity consistent: Bun no longer embeds ArkType/Zod starters in the hybrid discovery error (prefer arkenv init / docs). When the Nuxt module is registered but no schema file is found, log a build warning and skip setup instead of failing silently.

arkenv@1.0.0-alpha.10

Minor Changes

  • Add hosting presets for Cloudflare, Railway, Render, and Fly.io #1469 a64bd57 @yamcodes

    Add hosting presets for Cloudflare, Railway, Render, and Fly.io to the interactive prompt selections in both arkenv init and arkenv add host.

    Usage:

    npx arkenv@latest add host cloudflare

    or

    npx arkenv@latest init --host-preset cloudflare
  • Support arkenv add host for strict multi-file layouts #1434 a3d93be @yamcodes

    Support arkenv add host [provider] in projects with strict multi-file layouts (client.ts and server.ts). Automatically partition preset variables into client-prefixed keys for client.ts and server-only keys for server.ts. Align help text and docs so add host is not described as flat-env.ts-only.

    Usage:

    npx arkenv@latest add host [provider]
  • Auto-extend shared schema in Nuxt strict-layout client entry #1422 b1d8bad @yamcodes

    @arkenv/nuxt: When the module runs in strict layout, omitting extends in env/client.ts auto-merges SharedSchema from env/internal/shared.ts via #arkenv/shared-schema. Applies to both @arkenv/nuxt/client and @arkenv/nuxt/standard/client. The server entry continues to auto-merge the composed client env.

    arkenv (CLI): The Nuxt strict scaffold now emits that simplified client template (no manual SharedSchema import or extends block). Next.js scaffolds remain unchanged.

    Usage:

    import arkenv from "@arkenv/nuxt/client";
    
    export const env = arkenv({
      NUXT_PUBLIC_API_URL: "string",
    });

    Auto-merge only runs when the extends key is omitted. Any explicit extends - including extends: [] or a custom list - is used as-is and opts out of auto-merge. Strict layout still requires env/internal/shared.ts with a SharedSchema export — that schema may be empty (type({})) when you have no shared variables. A missing file or unusable export fails with a clear diagnostic (rather than silently treating shared as empty).

@arkenv/bun-plugin@1.0.0-alpha.7

Minor Changes

  • Add env.ts transform for Bun fullstack apps #1459 5fc1c6a @yamcodes

    Let the Bun plugin discover your env.ts and expose a shared env object that works in both client and server code. On the client (Bun.build / [serve.static]), public (BUN_PUBLIC_*) values are inlined at build time and server-only keys throw if read; on the server (bun run / Bun.serve), env.ts still runs normally and validates against the real environment at boot. The plugin does not rewrite your env.ts file on disk.

    Works with @arkenv/bun-plugin and @arkenv/bun-plugin/standard.

    Usage:

    // bunfig.toml — zero-config browser transform
    // [serve.static]
    // plugins = ["@arkenv/bun-plugin"]
    
    // or explicitly in Bun.build:
    import arkenv from "@arkenv/bun-plugin";
    
    await Bun.build({
      entrypoints: ["./src/index.html"],
      target: "browser",
      plugins: [arkenv], // finds src/env.ts or env.ts
      // or: arkenv({ schemaPath: "src/env.ts", clientPrefix: "BUN_PUBLIC_" })
    });
    // src/env.ts
    import arkenv from "@arkenv/core";
    
    export const env = arkenv({
      DATABASE_URL: "string",
      BUN_PUBLIC_API_URL: "string",
    });
    import { env } from "./env";
    
    env.BUN_PUBLIC_API_URL; // available on client and server
    env.DATABASE_URL; // server only — throws if read in the browser

    Passing a schema to arkenv(schema) (the previous process.env rewrite API) continues to work unchanged as SPA mode.

Patch Changes

  • Clarify Standard Mode missing-schema guidance with a Zod example #1457 6cca0cf @yamcodes

    When @arkenv/bun-plugin/standard cannot find env.ts, show an illustrative Zod starter (any Standard Schema validator works — Zod is just the most common):

    import arkenv from "@arkenv/standard";
    import { z } from "zod";
    
    export default arkenv({
      BUN_PUBLIC_API_URL: z.string(),
      BUN_PUBLIC_DEBUG: z.enum(["true", "false"]),
    });
  • Drop embedded env.ts starters and warn when the Nuxt module finds no schema #1468 0150e73 @yamcodes

    Keep missing-schema guidance short and host-parity consistent: Bun no longer embeds ArkType/Zod starters in the hybrid discovery error (prefer arkenv init / docs). When the Nuxt module is registered but no schema file is found, log a build warning and skip setup instead of failing silently.

@arkenv/vite-plugin@1.0.0-alpha.7

Minor Changes

  • Add env.ts transform for Vite fullstack apps #1423 e1cf6db @yamcodes

    Let the Vite plugin discover your env.ts and expose a shared env object that works in both client and server code. On the client, public (VITE_*) values are inlined at build time and server-only keys throw if read; on the server/SSR, env.ts still runs normally and validates against the real environment at boot. The plugin does not rewrite your env.ts file on disk.

    Works with @arkenv/vite-plugin and @arkenv/vite-plugin/standard.

    Usage:

    // vite.config.ts
    import arkenv from "@arkenv/vite-plugin";
    
    export default {
      plugins: [arkenv()], // finds src/env.ts or env.ts
      // or: arkenv({ schemaPath: "src/env.ts", clientPrefix: "VITE_" })
    };
    // src/env.ts
    import arkenv from "@arkenv/core";
    
    export const env = arkenv({
      DATABASE_URL: "string",
      VITE_API_URL: "string",
    });
    import { env } from "./env";
    
    env.VITE_API_URL; // available on client and server
    env.DATABASE_URL; // server only — throws if read in the browser

    Passing a schema to arkenv(schema) (the previous import.meta.env define API) continues to work unchanged.

@github-actions github-actions Bot added docs Adds or changes documentation, or acts as documentation in and of itself arkenv Changes to the `arkenv` npm package. labels Jul 21, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jul 21, 2026

Copy link
Copy Markdown

Open in StackBlitz

arkenv

npm i https://pkg.pr.new/arkenv@1435

@arkenv/build

npm i https://pkg.pr.new/@arkenv/build@1435

@arkenv/bun-plugin

npm i https://pkg.pr.new/@arkenv/bun-plugin@1435

@arkenv/core

npm i https://pkg.pr.new/@arkenv/core@1435

@arkenv/fumadocs-ui

npm i https://pkg.pr.new/@arkenv/fumadocs-ui@1435

@arkenv/nextjs

npm i https://pkg.pr.new/@arkenv/nextjs@1435

@arkenv/nuxt

npm i https://pkg.pr.new/@arkenv/nuxt@1435

@arkenv/standard

npm i https://pkg.pr.new/@arkenv/standard@1435

@arkenv/vite-plugin

npm i https://pkg.pr.new/@arkenv/vite-plugin@1435

commit: cfd4ab3

@arkenv-bot
arkenv-bot Bot force-pushed the changeset-release/v1 branch from 01c81a8 to 233c7bd Compare July 21, 2026 19:31
@github-actions github-actions Bot added the @arkenv/vite-plugin Issues or Pull Requests involving the Vite plugin for ArkEnv label Jul 21, 2026
@arkenv-bot
arkenv-bot Bot force-pushed the changeset-release/v1 branch 3 times, most recently from bf656cf to 7006a33 Compare July 21, 2026 20:00
@yamcodes

Copy link
Copy Markdown
Owner

keeping this open for a bit until we merge more of that epic, so we can sharpen the changeset.

also wanna play with it a bit

@arkenv-bot
arkenv-bot Bot force-pushed the changeset-release/v1 branch 2 times, most recently from d5e5277 to 830e3e2 Compare July 21, 2026 20:26
@github-actions github-actions Bot added the @arkenv/nuxt Issues or Pull Requests involving the Nuxt integration for ArkEnv label Jul 21, 2026
@arkenv-bot
arkenv-bot Bot force-pushed the changeset-release/v1 branch from 277dd18 to c9ea2d9 Compare July 22, 2026 19:00
@github-actions github-actions Bot added the @arkenv/bun-plugin Issues or Pull Requests involving the Bun plugin for ArkEnv label Jul 22, 2026
@arkenv-bot
arkenv-bot Bot force-pushed the changeset-release/v1 branch 6 times, most recently from 52be5a9 to 56fd8b8 Compare July 22, 2026 19:52
@arkenv-bot
arkenv-bot Bot force-pushed the changeset-release/v1 branch from cfd4ab3 to cf61941 Compare July 22, 2026 20:04
@yamcodes
yamcodes merged commit b77a6ab into v1 Jul 22, 2026
17 of 18 checks passed
@yamcodes
yamcodes deleted the changeset-release/v1 branch July 22, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

@arkenv/bun-plugin Issues or Pull Requests involving the Bun plugin for ArkEnv @arkenv/nuxt Issues or Pull Requests involving the Nuxt integration for ArkEnv @arkenv/vite-plugin Issues or Pull Requests involving the Vite plugin for ArkEnv arkenv Changes to the `arkenv` npm package. docs Adds or changes documentation, or acts as documentation in and of itself

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant