feat: add root build/test/typecheck scripts (E00-S01-T05)
CI / Frozen lockfile install (pull_request) Successful in 50s

Adds root scripts so build, test and typecheck run from the workspace root:
- root package.json gains scripts: build (pnpm -r run build), test
  (node --test on tests/**/*.test.mjs), typecheck (pnpm -r run typecheck)
- every workspace package (apps/server, packages/core,
  extensions/example) gains build (tsc -p tsconfig.json) and typecheck
  (tsc -p tsconfig.json --noEmit) scripts
- typescript 6.0.3 pinned as an exact root devDependency so the commands
  run from a clean checkout; lockfile regenerated with pnpm 11.23.0

Verified from a clean state: pnpm install --frozen-lockfile passes,
pnpm build emits dist for all 3 packages, pnpm typecheck passes for all 3,
pnpm test runs tests/architecture-import.test.mjs 10/10 green, and CI's
pnpm -r list --depth -1 still lists all 4 workspace projects.

Closes #158
This commit is contained in:
implementer
2026-08-28 08:39:13 +00:00
parent 2c0d081983
commit 0d1bd19093
5 changed files with 36 additions and 1 deletions
+4
View File
@@ -4,6 +4,10 @@
"private": true,
"type": "module",
"description": "EPPP public server application. Bootstrap placeholder — the Fastify 5 application shell lands in a later story.",
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
+4
View File
@@ -4,6 +4,10 @@
"private": true,
"type": "module",
"description": "Placeholder extension that exercises the extensions/ workspace group. Real extensions (e.g. theme-amber) replace it in later stories.",
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
+8
View File
@@ -4,5 +4,13 @@
"private": true,
"type": "module",
"description": "EPPP — a modular personal blogging platform. Workspace bootstrap (E00-S01).",
"scripts": {
"build": "pnpm -r run build",
"test": "node --test \"tests/**/*.test.mjs\"",
"typecheck": "pnpm -r run typecheck"
},
"devDependencies": {
"typescript": "6.0.3"
},
"packageManager": "pnpm@11.23.0"
}
+4
View File
@@ -4,6 +4,10 @@
"private": true,
"type": "module",
"description": "EPPP application core. Bootstrap placeholder — owns application lifecycle, site identity and content primitives in later stories.",
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
+16 -1
View File
@@ -6,10 +6,25 @@ settings:
importers:
.: {}
.:
devDependencies:
typescript:
specifier: 6.0.3
version: 6.0.3
apps/server: {}
extensions/example: {}
packages/core: {}
packages:
typescript@6.0.3:
resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
engines: {node: '>=14.17'}
hasBin: true
snapshots:
typescript@6.0.3: {}