Releases: variableland/dx
@vlandoss/vland@0.2.0
Minor Changes
-
#210
7d7e673Thanks @rqbazan! -vland initnow prompts (default-yes) for installing dependencies and initialising a git repository when those flags aren't passed on the CLI. Use--install/--no-installand--git/--no-gitto skip the prompts; in non-interactive contexts both default totrue.Also fixes the git initialisation step: the commit message was being split on whitespace by the underlying shell layer, producing errors like
pathspec 'initial' did not match any file(s)and leaving the repo half-initialised. The migration totinyexec(via@vlandoss/clibuddy) makes each argv entry survive as a separate token, so the canonical first commitchore: initial commit from vlandnow lands cleanly.
Patch Changes
- Updated dependencies [
7d7e673]:- @vlandoss/clibuddy@0.6.0
@vlandoss/vland@0.1.1
@vlandoss/starter@0.4.2
Patch Changes
-
#206
6c2ec90Thanks @rqbazan! - Deprecate package — final published version with notice.@vlandoss/biome-configis superseded by@vlandoss/config(use@vlandoss/config/biome).@vlandoss/localproxyis superseded by Portless.@vlandoss/starteris superseded by@vlandoss/vland.
Each package's
homepageis repinned to a tag URL so the deprecation README stays reachable after the source is removed from the monorepo.
@vlandoss/run-run@0.5.3
Patch Changes
-
#210
7d7e673Thanks @rqbazan! - Internal migration to the new tinyexec-backedShellService(see@vlandoss/clibuddy).ToolService.execnow accepts onlystring[](thestringoverload that silently word-split on spaces is gone). All tool services (biome,oxlint,oxfmt,tsdown,tsc) build their flags as arrays so each flag survives as its own argv entry.- Bin resolution moves into the base
ToolService: subclasses declare{ pkg, bin?, ui }in the constructor and the base resolves the absolute path viaresolvePackageBin(memoised). The verbose$ <bin> <args>line is preserved via thedisplayoption so users still see$ biome check ...instead of an absolute resolved path. Resolving to the absolute path bypasses thenode_modules/.bin/<bin>shims that run-run itself publishes (tools/biomeetc.), which would otherwise loop back throughrr tools <bin>indefinitely. tscheckrunspretsc/pretypecheckpackage scripts throughshell: trueso they can use&&, pipes, and env-var substitution.- Bump
tsdownfrom0.21.10to0.22.0.tsdown@0.21.xdepends onunrun@^0.2.37, which pnpm resolved to0.2.38— whose published tarball is missingdist/, producingWARN Failed to create bin … unrunon every install.tsdown@0.22.0droppedunrunfromdependencies(now an optional peer), erradicating the warning.
Tests reorganised into one e2e file per command (
cli,jsc,lint,format,tsc,build-lib). Each spawns the realrrbinary against a temp fixture (makeFixturehelper) and asserts on observable output, so we no longer rely on aclibuddy/test-helpersmock.End-user CLI behaviour is unchanged.
-
Updated dependencies [
7d7e673]:- @vlandoss/clibuddy@0.6.0
@vlandoss/localproxy@0.2.3
Patch Changes
-
#206
6c2ec90Thanks @rqbazan! - Deprecate package — final published version with notice.@vlandoss/biome-configis superseded by@vlandoss/config(use@vlandoss/config/biome).@vlandoss/localproxyis superseded by Portless.@vlandoss/starteris superseded by@vlandoss/vland.
Each package's
homepageis repinned to a tag URL so the deprecation README stays reachable after the source is removed from the monorepo.
@vlandoss/clibuddy@0.6.0
Minor Changes
-
#210
7d7e673Thanks @rqbazan! - Breaking: Replacezxwithtinyexecand redesignShellServicearound array-based exec.The previous tagged-template API (
shell.$\...`) and its surrounding helpers (quote,isRaw,defaultQuote,getPreferLocal,localBaseBinPath,mute(),quiet(),isProcessOutput,./test-helpersexport) are gone. They duplicated zx internals, introduced a quoting bug for whitespace strings, and surfaced inconsistentnode_modules/.bin` resolution.New surface:
shell.run(cmd, args, opts?)— streams stdio to the terminal and prints$ <cmd> <args>in verbose mode. ThrowsNonZeroExitErroron non-zero exit by default.shell.runCaptured(cmd, args, opts?)— silent, returns the capturedOutput { stdout, stderr, exitCode }. Same throw-by-default semantics.shell.at(cwd)/shell.child(opts)— child shells with merged options.RunOptions:cwd,env,verbose,throwOnError,shell(pass-throughshell: truefor&&/pipes),stdin,display(override the verbose-printed name without affecting what's spawned).resolvePackageBin(pkg, { from, binName? })— async resolver that returns the absolute path to an installed package's binary, tolerating restrictiveexportsmaps (oxlint) and packages withoutmain/exportsat all (@biomejs/biome). Memoised per(pkg, from, binName).isNonZeroExitError(value)— replacesisProcessOutput.
tinyexecautomatically prepends every parentnode_modules/.bintoPATH, solocalBaseBinPath/getPreferLocalare no longer needed.New dependencies:
tinyexec(replaceszx),memoize(forresolvePackageBin).Migration
await shell.$\git init`→await shell.run("git", ["init"])`await shell.$\git config`.nothrow()→await shell.runCaptured("git", ["config", ...], { throwOnError: false })`shell.mute()→ callrunCapturedinstead (silent by default).createShellService({ localBaseBinPath: [dir] })→ drop the option; tinyexec walks up automatically.isProcessOutput(err)→isNonZeroExitError(err).- Tools wrapping a npm package (e.g. biome, tsdown) should resolve the bin path via
resolvePackageBinand pass it as thecmdwithdisplay: "<friendly-name>"to avoidnode_modules/.bin/<name>shim loops.
@vlandoss/biome-config@0.0.9
Patch Changes
-
#206
6c2ec90Thanks @rqbazan! - Deprecate package — final published version with notice.@vlandoss/biome-configis superseded by@vlandoss/config(use@vlandoss/config/biome).@vlandoss/localproxyis superseded by Portless.@vlandoss/starteris superseded by@vlandoss/vland.
Each package's
homepageis repinned to a tag URL so the deprecation README stays reachable after the source is removed from the monorepo.
@vlandoss/vland@0.1.0
Minor Changes
-
#198
d467f7fThanks @rqbazan! - Initial release of@vlandoss/vland— the modern project bootstrapper that replaces@vlandoss/starter.- Same
vlandbinary and UX (ASCII banner,--usage→ KDL, ghostcompletioncommand via the bash bin dispatcher). - New
vland init [name] [-t <template>]flow built on giget + @clack/prompts + commander, with placeholder replacement ({{projectName}}/{{author}}/{{year}}), automatic dependency install vianypm, andgit initthrough clibuddy'sShellService. - Three official templates fetched from
github:variableland/dx/templates/<name>(with aVLAND_TEMPLATES_DIRescape hatch for E2E):library— standalone publishable TypeScript library with Changesets release workflow.backend— Elysia (@elysiajs/node) service with evlog, zod, Dockerfile, vitest integration test.monorepo— pnpm + Turbo workspace withapps/api(Elysia + evlog),apps/web(Vite + React),packages/types(shared zod schemas).
- All templates target Node.js 20+ (24 recommended), use pnpm 10.6.4, extend
@vlandoss/configfor biome and tsconfig, and include@total-typescript/tsconfigas a direct devDep so rolldown/vite can resolve the shared tsconfig under pnpm strict isolation.
- Same
Patch Changes
- Updated dependencies [
d467f7f]:- @vlandoss/clibuddy@0.5.0