Compare commits

..
2 Commits
Author SHA1 Message Date
ClintchizandClaude Opus 5 2d9797856d Release the thirteen changed packages
Published to the private registry: auth 0.8.32, cli 0.8.70, compiler
0.8.29, core 0.8.15, csr 0.8.40, dev-server 0.8.65, payment 0.8.8, pwa
0.8.11, ssr 0.8.11, styles 0.8.22, test 0.8.15, ui 0.8.80 and viewer
0.8.12.

This records the version bumps and the lockfile. The package sources are
staged from the working tree, so the tarballs also carry source changes
that are still uncommitted here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 12:34:46 +05:30
ClintchizandClaude Opus 5 cc464afdfb Give the generated server module the workspace's own @wrnexus/core
The execution tests wrote the generated module to an OS tmpdir and
junctioned @wrnexus/core in beside it. On Windows that tmpdir sits on
another volume, and the junction resolved to a second copy of the
package: the request context lives in an AsyncLocalStorage inside core,
so the module read a store the test could never populate and all six
execution tests failed with "needs a request context".

The module is now written inside the repo, where resolution walks up to
this workspace's node_modules and finds the same instance the test
holds. That identity is the whole point, so the junction is gone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 12:27:32 +05:30
16 changed files with 49 additions and 48 deletions

No files matched your search

+3
View File
@@ -28,3 +28,6 @@ tsconfig.focus.json
# Subagent-driven-development scratch (ledger, briefs, review packages)
.superpowers/
# Scratch modules written by tests that must resolve this workspace.
.tmp-tests/
+16 -13
View File
@@ -237,7 +237,7 @@
},
"packages/auth": {
"name": "@wrnexus/auth",
"version": "0.8.29",
"version": "0.8.32",
"dependencies": {
"@wrnexus/authz": "workspace:*",
"@wrnexus/captcha": "workspace:*",
@@ -322,7 +322,7 @@
},
"packages/cli": {
"name": "@wrnexus/cli",
"version": "0.8.66",
"version": "0.8.70",
"bin": {
"wrnexus": "src/index.ts",
},
@@ -350,7 +350,7 @@
},
"packages/compiler": {
"name": "@wrnexus/compiler",
"version": "0.8.27",
"version": "0.8.29",
"dependencies": {
"@wrnexus/csr": "workspace:*",
"@wrnexus/store": "workspace:*",
@@ -368,11 +368,11 @@
},
"packages/core": {
"name": "@wrnexus/core",
"version": "0.8.13",
"version": "0.8.15",
},
"packages/csr": {
"name": "@wrnexus/csr",
"version": "0.8.38",
"version": "0.8.40",
"dependencies": {
"@wrnexus/core": "workspace:*",
},
@@ -387,7 +387,7 @@
},
"packages/dev-server": {
"name": "@wrnexus/dev-server",
"version": "0.8.62",
"version": "0.8.65",
"dependencies": {
"@wrnexus/authz": "workspace:*",
"@wrnexus/cache": "workspace:*",
@@ -590,7 +590,7 @@
},
"packages/payment": {
"name": "@wrnexus/payment",
"version": "0.8.6",
"version": "0.8.8",
"dependencies": {
"@wrnexus/db": "workspace:*",
"@wrnexus/plugin": "workspace:*",
@@ -621,7 +621,7 @@
},
"packages/pwa": {
"name": "@wrnexus/pwa",
"version": "0.8.9",
"version": "0.8.11",
"devDependencies": {
"@types/bun": "^1.3.14",
"typescript": "^6.0.3",
@@ -704,7 +704,7 @@
},
"packages/ssr": {
"name": "@wrnexus/ssr",
"version": "0.8.9",
"version": "0.8.11",
"dependencies": {
"@wrnexus/core": "workspace:*",
"@wrnexus/security": "workspace:*",
@@ -717,7 +717,7 @@
},
"packages/styles": {
"name": "@wrnexus/styles",
"version": "0.8.20",
"version": "0.8.22",
"dependencies": {
"@wrnexus/core": "workspace:*",
"@wrnexus/plugin": "workspace:*",
@@ -730,7 +730,10 @@
},
"packages/test": {
"name": "@wrnexus/test",
"version": "0.8.12",
"version": "0.8.15",
"dependencies": {
"@wrnexus/core": "workspace:*",
},
},
"packages/tracking": {
"name": "@wrnexus/tracking",
@@ -746,7 +749,7 @@
},
"packages/ui": {
"name": "@wrnexus/ui",
"version": "0.8.76",
"version": "0.8.80",
"dependencies": {
"@wrnexus/core": "workspace:*",
},
@@ -781,7 +784,7 @@
},
"packages/viewer": {
"name": "@wrnexus/viewer",
"version": "0.8.9",
"version": "0.8.12",
"dependencies": {
"@wrnexus/block-editor": "workspace:*",
"@wrnexus/plugin": "workspace:*",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/auth",
"version": "0.8.29",
"version": "0.8.32",
"description": "Complete authentication, account security, MFA, passkeys, recovery, devices, risk, and audit system for WRNexusJS.",
"type": "module",
"sideEffects": false,
+2 -1
View File
@@ -1,11 +1,12 @@
{
"name": "@wrnexus/cli",
"version": "0.8.66",
"version": "0.8.70",
"type": "module",
"main": "src/index.ts",
"exports": {
".": "./src/index.ts",
"./workspace": "./src/workspace.ts",
"./runtime-connections": "./src/runtime-connections.ts",
"./test-setup": "./src/test-setup.ts"
},
"bin": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/compiler",
"version": "0.8.27",
"version": "0.8.29",
"type": "module",
"main": "src/index.ts",
"exports": {
+12 -22
View File
@@ -1,29 +1,20 @@
import { afterEach, expect, test } from "bun:test";
import { mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { parse } from "@wrnexus/syntax";
import { runWithRequestContext } from "@wrnexus/core";
import { generate } from "../src/codegen.ts";
// The generated module dynamically imported below is written to an OS
// tmpdir with no node_modules of its own, so Node's bare-specifier
// resolution for "@wrnexus/core" would otherwise walk up to whatever
// (possibly stale, globally-installed) copy happens to sit outside the
// workspace. Symlink the workspace package in so it resolves to the real,
// currently-built `@wrnexus/core` — the same one every other package in
// this repo gets via its own `node_modules/@wrnexus/core` symlink.
const WORKSPACE_CORE = join(import.meta.dir, "../../core");
function linkWorkspaceCore(root: string): void {
const scopeDir = join(root, "node_modules", "@wrnexus");
mkdirSync(scopeDir, { recursive: true });
symlinkSync(
WORKSPACE_CORE,
join(scopeDir, "core"),
process.platform === "win32" ? "junction" : "dir",
);
}
// The generated module dynamically imported below resolves "@wrnexus/core"
// by walking up from its own directory, so it is written inside the repo
// rather than an OS tmpdir: the walk then reaches this workspace's
// node_modules and loads the very same module instance the test itself
// holds. That identity is what these tests rest on -- the request context
// lives in an AsyncLocalStorage inside `@wrnexus/core`, and a second copy of
// the package (which is what a junction from another volume produced) has a
// store of its own that the test could never populate.
const WORKSPACE_TMP = join(import.meta.dir, "../../../.tmp-tests");
const ROOT_TSCONFIG = join(import.meta.dir, "../../../tsconfig.json").replace(/\\/g, "/");
// The repo's own tsc, not a `bunx`-fetched one — `bunx tsc` can resolve an
@@ -69,10 +60,9 @@ function typecheckGenerated(source: string): { ok: boolean; output: string } {
}
async function importServerModule(source: string): Promise<any> {
const root = mkdtempSync(join(tmpdir(), "wrnexus-apis-server-exec-"));
mkdirSync(WORKSPACE_TMP, { recursive: true });
const root = mkdtempSync(join(WORKSPACE_TMP, "apis-server-exec-"));
roots.push(root);
mkdirSync(root, { recursive: true });
linkWorkspaceCore(root);
const file = join(root, "page.ts");
writeFileSync(file, source);
return import(`${file.replace(/\\/g, "/")}?t=${Date.now()}`);
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/core",
"version": "0.8.13",
"version": "0.8.15",
"type": "module",
"main": "src/index.ts",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/csr",
"version": "0.8.38",
"version": "0.8.40",
"type": "module",
"main": "src/index.ts",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/dev-server",
"version": "0.8.62",
"version": "0.8.65",
"type": "module",
"main": "src/index.ts",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/payment",
"version": "0.8.6",
"version": "0.8.8",
"private": true,
"type": "module",
"main": "src/index.ts",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/pwa",
"version": "0.8.9",
"version": "0.8.11",
"type": "module",
"description": "Service workers, manifests, offline queues, background sync, push, and conflict resolution for WRNexusJS.",
"main": "./src/index.ts",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/ssr",
"version": "0.8.9",
"version": "0.8.11",
"type": "module",
"main": "src/index.ts",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/styles",
"version": "0.8.20",
"version": "0.8.22",
"type": "module",
"main": "src/index.ts",
"exports": {
+4 -1
View File
@@ -1,9 +1,12 @@
{
"name": "@wrnexus/test",
"version": "0.8.12",
"version": "0.8.15",
"private": true,
"type": "module",
"main": "src/index.ts",
"dependencies": {
"@wrnexus/core": "workspace:*"
},
"exports": {
".": "./src/index.ts"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/ui",
"version": "0.8.76",
"version": "0.8.80",
"private": true,
"type": "module",
"main": "src/index.ts",
+2 -1
View File
@@ -1,7 +1,8 @@
{
"name": "@wrnexus/viewer",
"version": "0.8.9",
"version": "0.8.12",
"type": "module",
"sideEffects": true,
"description": "Read-only file previews with bounded loading and graceful fallback.",
"main": "./src/index.ts",
"types": "./src/index.ts",