feat: add module database ABI v1 adapters
CI / verify (pull_request) Successful in 58s
CI / infrastructure-smoke (pull_request) Successful in 35s
CI / migration-smoke (pull_request) Successful in 1m53s
CI / image-build (pull_request) Successful in 29s
CI / deploy-smoke (same-origin) (pull_request) Successful in 49s
CI / deploy-smoke (split) (pull_request) Successful in 1m31s

This commit is contained in:
ekklesia
2026-10-07 16:44:28 -05:00
parent 4a3958c616
commit 859675c3c7
18 changed files with 957 additions and 7 deletions
+13 -1
View File
@@ -147,6 +147,16 @@ const DEPENDENCY_FIELDS = [
"optionalDependencies",
"peerDependencies",
] as const;
/**
* Runtime peers whose identity is deliberately supplied by the final consumer. The sole entry is
* the module-side Drizzle adapter: a module chooses and bundles its own compatible Drizzle runtime,
* while Core must never select one for it. Keep this exception package-and-dependency specific;
* ordinary workspace packages still need production dependencies for runtime imports.
*/
const CONSUMER_SELECTED_RUNTIME_PEERS = new Map<string, ReadonlySet<string>>([
["@ekklesia/module-database", new Set(["drizzle-orm"])],
]);
const SHARED_PACKAGE_ROLES = new Set([
"api-client",
"auth-client",
@@ -1006,7 +1016,9 @@ export async function checkBoundaries(rootDirectory: string): Promise<BoundaryRe
dependencyName === runtimePackage.name ||
NODE_BUILTIN_MODULES.has(dependencyName) ||
manifest.dependencies?.[dependencyName] !== undefined ||
manifest.optionalDependencies?.[dependencyName] !== undefined
manifest.optionalDependencies?.[dependencyName] !== undefined ||
(manifest.peerDependencies?.[dependencyName] !== undefined &&
CONSUMER_SELECTED_RUNTIME_PEERS.get(runtimePackage.name)?.has(dependencyName) === true)
) {
continue;
}