Follow CultLib's package rename and select workspaces by path

Moving the CultLib pin forward to pick up the presence contract also brought
ten unrelated commits, one of which republished the TypeScript packages under
the @gamecult scope. Two things broke on that rename.

The recipe selected build workspaces by package name, so `--workspace=
cultcache-ts` no longer matched anything. Selecting by path instead says what
is actually meant and survives the next rename.

cultnet-ts depends on cultcache-ts by registry range, not by workspace
protocol, so the vendored copy is only used because Heimdall overrides that
name to the vendored path. The override still named the old one, and pnpm went
looking for @gamecult/cultcache-ts on a registry that does not have it.
Heimdall now uses the package's real name in its dependency, its override and
its imports.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-07 22:26:24 +02:00
commit 6a923d525e
8 changed files with 25 additions and 25 deletions

View file

@ -41,21 +41,21 @@ id = "build-cultcache-ts"
phase = "build"
runner = "node-build"
required_environment = ["NPM_CONFIG_CACHE", "HOME", "COREPACK_HOME"]
argv = ["npm", "run", "build", "--prefix", "vendor/CultLib", "--workspace=cultcache-ts"]
argv = ["npm", "run", "build", "--prefix", "vendor/CultLib", "--workspace=packages/cultcache-ts"]
[[steps]]
id = "build-cultnet-ts"
phase = "build"
runner = "node-build"
required_environment = ["NPM_CONFIG_CACHE", "HOME", "COREPACK_HOME"]
argv = ["npm", "run", "build", "--prefix", "vendor/CultLib", "--workspace=cultnet-ts"]
argv = ["npm", "run", "build", "--prefix", "vendor/CultLib", "--workspace=packages/cultnet-ts"]
[[steps]]
id = "build-cultmesh-ts"
phase = "build"
runner = "node-build"
required_environment = ["NPM_CONFIG_CACHE", "HOME", "COREPACK_HOME"]
argv = ["npm", "run", "build", "--prefix", "vendor/CultLib", "--workspace=cultmesh-ts"]
argv = ["npm", "run", "build", "--prefix", "vendor/CultLib", "--workspace=packages/cultmesh-ts"]
[[steps]]
id = "install-heimdall"

View file

@ -19,7 +19,7 @@
"dependencies": {
"@fastify/cors": "^11.2.0",
"@msgpack/msgpack": "^3.1.3",
"cultcache-ts": "file:vendor/CultLib/packages/cultcache-ts",
"@gamecult/cultcache-ts": "file:vendor/CultLib/packages/cultcache-ts",
"cultmesh-ts": "file:vendor/CultLib/packages/cultmesh-ts",
"cultnet-ts": "file:vendor/CultLib/packages/cultnet-ts",
"fastify": "^5.8.5",
@ -37,7 +37,7 @@
},
"pnpm": {
"overrides": {
"cultcache-ts": "file:vendor/CultLib/packages/cultcache-ts",
"@gamecult/cultcache-ts": "file:vendor/CultLib/packages/cultcache-ts",
"cultnet-ts": "file:vendor/CultLib/packages/cultnet-ts"
}
}

30
pnpm-lock.yaml generated
View file

@ -5,7 +5,7 @@ settings:
excludeLinksFromLockfile: false
overrides:
cultcache-ts: file:vendor/CultLib/packages/cultcache-ts
'@gamecult/cultcache-ts': file:vendor/CultLib/packages/cultcache-ts
cultnet-ts: file:vendor/CultLib/packages/cultnet-ts
importers:
@ -15,12 +15,12 @@ importers:
'@fastify/cors':
specifier: ^11.2.0
version: 11.2.0
'@gamecult/cultcache-ts':
specifier: file:vendor/CultLib/packages/cultcache-ts
version: file:vendor/CultLib/packages/cultcache-ts
'@msgpack/msgpack':
specifier: ^3.1.3
version: 3.1.3
cultcache-ts:
specifier: file:vendor/CultLib/packages/cultcache-ts
version: file:vendor/CultLib/packages/cultcache-ts
cultmesh-ts:
specifier: file:vendor/CultLib/packages/cultmesh-ts
version: file:vendor/CultLib/packages/cultmesh-ts
@ -247,6 +247,10 @@ packages:
'@fastify/proxy-addr@5.1.0':
resolution: {integrity: sha512-INS+6gh91cLUjB+PVHfu1UqcB76Sqtpyp7bnL+FYojhjygvOPA9ctiD/JDKsyD9Xgu4hUhCSJBPig/w7duNajw==}
'@gamecult/cultcache-ts@file:vendor/CultLib/packages/cultcache-ts':
resolution: {directory: vendor/CultLib/packages/cultcache-ts, type: directory}
engines: {node: '>=18'}
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
@ -465,10 +469,6 @@ packages:
resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
engines: {node: '>=18'}
cultcache-ts@file:vendor/CultLib/packages/cultcache-ts:
resolution: {directory: vendor/CultLib/packages/cultcache-ts, type: directory}
engines: {node: '>=18'}
cultmesh-ts@file:vendor/CultLib/packages/cultmesh-ts:
resolution: {directory: vendor/CultLib/packages/cultmesh-ts, type: directory}
engines: {node: '>=18'}
@ -1202,6 +1202,11 @@ snapshots:
'@fastify/forwarded': 3.0.1
ipaddr.js: 2.3.0
'@gamecult/cultcache-ts@file:vendor/CultLib/packages/cultcache-ts':
dependencies:
'@msgpack/msgpack': 3.1.3
zod: 3.25.76
'@jridgewell/sourcemap-codec@1.5.5': {}
'@msgpack/msgpack@3.1.3': {}
@ -1382,22 +1387,17 @@ snapshots:
cookie@1.1.1: {}
cultcache-ts@file:vendor/CultLib/packages/cultcache-ts:
dependencies:
'@msgpack/msgpack': 3.1.3
zod: 3.25.76
cultmesh-ts@file:vendor/CultLib/packages/cultmesh-ts:
dependencies:
'@gamecult/cultcache-ts': file:vendor/CultLib/packages/cultcache-ts
'@msgpack/msgpack': 3.1.3
cultcache-ts: file:vendor/CultLib/packages/cultcache-ts
cultnet-ts: file:vendor/CultLib/packages/cultnet-ts
cultnet-ts@file:vendor/CultLib/packages/cultnet-ts:
dependencies:
'@gamecult/cultcache-ts': file:vendor/CultLib/packages/cultcache-ts
'@msgpack/msgpack': 3.1.3
ajv: 8.20.0
cultcache-ts: file:vendor/CultLib/packages/cultcache-ts
define-data-property@1.1.4:
dependencies:

View file

@ -17,7 +17,7 @@
* cannot parse it. `readPrivateStoreRecord` exists for that one shape.
*/
import { decode } from "@msgpack/msgpack";
import { SingleFileMessagePackBackingStore } from "cultcache-ts";
import { SingleFileMessagePackBackingStore } from "@gamecult/cultcache-ts";
const ENVELOPE_FIELD_COUNT = 5;
const ENVELOPE_PAYLOAD = 2;

View file

@ -1,4 +1,4 @@
import { defineDocumentType } from "cultcache-ts";
import { defineDocumentType } from "@gamecult/cultcache-ts";
import { defineCultNetDocumentBinding } from "cultnet-ts";
import { CultMesh, type CultMeshRudpEndpoint } from "cultmesh-ts";
import { z } from "zod";

View file

@ -9,7 +9,7 @@ import {
} from "node:crypto";
import { readFileSync } from "node:fs";
import { chmod, readFile } from "node:fs/promises";
import { SingleFileMessagePackBackingStore, type CultCacheEnvelope } from "cultcache-ts";
import { SingleFileMessagePackBackingStore, type CultCacheEnvelope } from "@gamecult/cultcache-ts";
import { readPrivateStoreRecord } from "./idunn-store.js";
const PRIVATE_SCHEMA = "gamecult.provider_health_identity.private.v1";

View file

@ -4,7 +4,7 @@ import os from "node:os";
import path from "node:path";
import { encode } from "@msgpack/msgpack";
import { SingleFileMessagePackBackingStore } from "cultcache-ts";
import { SingleFileMessagePackBackingStore } from "@gamecult/cultcache-ts";
import { describe, expect, it } from "vitest";
import {

View file

@ -3,7 +3,7 @@ import os from "node:os";
import path from "node:path";
import { encode } from "@msgpack/msgpack";
import { SingleFileMessagePackBackingStore } from "cultcache-ts";
import { SingleFileMessagePackBackingStore } from "@gamecult/cultcache-ts";
import { describe, expect, it } from "vitest";
import { resolveWriteLease } from "../src/process-write-lease.js";