Consumer compilation evidence (SPEC-001)
Generated by pnpm test:consumer at 2026-09-23T10:03:38.182Z. This report is regenerated on every run;
it reflects the most recent execution against baseline 65401f3cb50164186588f91f0a8966b951d25f0a.
Scope. This is a single Node.js consumer recipe (tsc → Vite SSR bundle → Node execution, plus a
stock-Vite characterization arm) for @strata-sc/core/@strata-sc/h3 tarballs installed outside the
workspace. It makes no Angular, Analog, Nitro, browser, or Cloudflare compatibility claim.
Versions
| Tool | Version |
|---|---|
| Node | v22.23.0 |
| pnpm | 10.30.1 |
| TypeScript (consumer-local) | 6.0.3 |
| Vite (consumer-local) | 8.3.0 |
| h3 (consumer-local, resolved) | 2.0.1-rc.32 |
| Rolldown (workspace lockfile) | 1.2.8 |
Commands
pnpm --filter @strata-sc/core --filter @strata-sc/h3 run build→ exit 0pnpm --filter @strata-sc/core --filter @strata-sc/h3 pack --pack-destination /var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/tarballs→ exit 0npm install --no-audit --no-fund --loglevel=error→ exit 0/var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/node_modules/.bin/tsc -p tsconfig.json→ exit 2/Users/andriipap/.hermes/node/bin/node /var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/dist/consumer.controller.js→ exit 0/var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/node_modules/.bin/vite build --config vite.reference.config.ts→ exit 0/Users/andriipap/.hermes/node/bin/node /var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/vite-reference-dist/main.js→ exit 0/var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/node_modules/.bin/vite build --config vite.direct.config.ts→ exit 0/Users/andriipap/.hermes/node/bin/node /var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/vite-direct-dist/main.js→ exit 1/Users/andriipap/.hermes/node/bin/node --experimental-strip-types /var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/symbol-preservation-check.ts→ exit 0npm install --no-audit --no-fund --loglevel=error→ exit 254
Tarball identity
| Package | Tarball | SHA-256 |
|---|---|---|
| @strata-sc/core | strata-core-0.0.0.tgz | 49366604fa925e8af17a4b3578b526b02f80bb0b1d83e11b2497ac4834c6d2af |
| @strata-sc/h3 | strata-h3-0.0.0.tgz | c8a8f9287cd5f9998f58df432fa3f9d525b7b03eb376389169b6c68f52abaaf5 |
package/dist/index.js
package/package.json
package/dist/metadata/controller-metadata.d.ts.map
package/dist/controller/controller.decorator.d.ts.map
package/dist/controller/controller.types.d.ts.map
package/dist/metadata/decorator-metadata-polyfill.d.ts.map
package/dist/controller/get-controller-definition.d.ts.map
package/dist/route/get.decorator.d.ts.map
package/dist/index.d.ts.map
package/dist/index.js.map
package/dist/utils/normalize-path.d.ts.map
package/dist/route/route.types.d.ts.map
package/dist/metadata/controller-metadata.d.ts
package/dist/controller/controller.decorator.d.ts
package/dist/controller/controller.types.d.ts
package/dist/metadata/decorator-metadata-polyfill.d.ts
package/dist/controller/get-controller-definition.d.ts
package/dist/route/get.decorator.d.ts
package/dist/index.d.ts
package/dist/utils/normalize-path.d.ts
package/dist/route/route.types.d.ts
package/LICENSE
</details>
<details><summary>@strata-sc/h3 tarball contents</summary>
package/dist/index.js
package/package.json
package/dist/utils/build-route-path.d.ts.map
package/dist/errors.d.ts.map
package/dist/index.d.ts.map
package/dist/index.js.map
package/dist/register-controllers.d.ts.map
package/dist/utils/build-route-path.d.ts
package/dist/errors.d.ts
package/dist/index.d.ts
package/dist/register-controllers.d.ts
package/LICENSE
</details>
Dependency graph
- Packed
@strata-sc/h3dependencies["@strata-sc/core"]=0.0.0(containsworkspace:: false). - Isolated consumer install resolved 1 copy/copies of
@strata-sc/core:/var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/node_modules/@strata-sc/core. - Isolated consumer resolved
h3@2.0.1-rc.32(expected2.0.1-rc.32).
Reference recipe (tsc → Vite → Node)
Stage 1 — consumer-local tsc
- Exit code: 2 (0 = clean typecheck).
- JS emitted despite diagnostics: true.
node_modules/h3/dist/h3.d.mts(638,19): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Error'.
node_modules/h3/dist/index.d.mts(3,106): error TS2307: Cannot find module 'crossws' or its corresponding type declarations.
</details>
- Execution of tsc-emitted JS in a fresh Node process: pass
DEFINITION_JSON_START
{"path":"/consumer","routes":[{"method":"GET","path":"/","handler":"root"},{"method":"GET","path":"/async","handler":"asyncRoute"}]}
DEFINITION_JSON_END
ROOT_STATUS 200
ROOT_BODY {"greeting":"hello"}
ASYNC_STATUS 200
ASYNC_BODY {"greeting":"hello","async":true}
NATIVE_STATUS 200
NATIVE_BODY {"native":true}
</details>
Stage 2 — consumer-local Vite (SSR bundle of the tsc output)
- Vite build exit code: 0.
vite v8.3.0 building ssr environment for production...
transforming...
✓ 2 modules transformed.
rendering chunks...
computing gzip size...
vite-reference-dist/main.js 4.91 kB │ gzip: 1.60 kB
✓ built in 18ms
</details>
- Execution of the Vite-bundled reference output in a fresh Node process: pass
Direct-Vite characterization (no decorator lowering)
- Vite build exit code: 0.
- Recorded outcome: runtime_failed (one of
works,build_failed,runtime_failed).
vite v8.3.0 building ssr environment for production...
transforming...
✓ 2 modules transformed.
rendering chunks...
computing gzip size...
vite-direct-dist/main.js 1.44 kB │ gzip: 0.58 kB
✓ built in 20ms
</details>
<details><summary>direct-Vite execution output</summary>
file:///private/var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC/consumer/vite-direct-dist/main.js:5
var ConsumerController = @Controller("/consumer") class {
^
SyntaxError: Invalid or unexpected token
at compileSourceTextModule (node:internal/modules/esm/utils:346:16)
at ModuleLoader.moduleStrategy (node:internal/modules/esm/translators:110:18)
at #translate (node:internal/modules/esm/loader:559:20)
at afterLoad (node:internal/modules/esm/loader:612:29)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:617:12)
at #createModuleJob (node:internal/modules/esm/loader:640:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:353:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:321:41)
at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:680:25)
Node.js v22.23.0
</details>
Guarded metadata symbol
- A
Symbol.metadataset before importing@strata-sc/corein an isolated process remained unchanged after import: true.
Negative controls
- Missing tarball → install failure propagated: true (npm exit 254).
- Deliberately corrupted expected response → assertion helper detected it: true.
Acceptance criteria evidence
| ID | Status | Evidence |
|---|---|---|
| AC1 | Pass | Built and packed from checkout; tarballs strata-core-0.0.0.tgz, strata-h3-0.0.0.tgz with recorded digests. |
| AC2 | Blocked | Single resolved core copy: true. No workspace: protocol: true. Clean tsc typecheck: false — see R01/R14 blocker below (root cause isolated to h3's own declaration files, not to @strata-sc/core or @strata-sc/h3). |
| AC3 | Pass | tsc-emitted JS reports the expected definition/routes and preserves a preexisting Symbol.metadata. |
| AC4 | Pass | Both tsc-emitted JS and the Vite-bundled reference output return the expected sync/async/native responses. |
| AC5 | Pass | Direct-Vite outcome recorded as "runtime_failed" with build/execution diagnostics captured. |
| AC6 | Pass | Missing-tarball install and corrupted-response assertion both failed as required. |
| AC7 | Pass | .github/workflows/ci.yml runs pnpm test:consumer on the repository's Node 22/pnpm 10.30.1 runner after building; this report documents the two-stage recipe and excludes Angular/Analog claims. |
| AC8 | Pass | No production source, package manifest, or private transform was modified by this slice; this report maps every acceptance ID to evidence and lists blockers below. |
Blockers
R01/R14: Consumer-local strict tsc does not cleanly typecheck against the pinned tuple (TypeScript 6.0.3, H3 2.0.1-rc.32, mandated lib set).
All diagnostics originate from h3's own shipped declaration files (node_modules/h3/dist/*.d.mts), not from @strata-sc/core or @strata-sc/h3 declarations. Two independent causes were isolated:
HTTPError.isErroris declaredstatic override, assuming an ambientError.isErrorstatic member that only exists via TypeScript'sesnext.errorlib — not part of theES2023/DOM/DOM.Iterable/esnext.decoratorsset SPEC-001 mandates. This raisesTS4113.h3's root type entry unconditionally imports types fromcrossws, an optional peer dependency SPEC-001's fixed install list does not include. This raisesTS2307. Installingcrosswswas tried as a diagnostic-only deviation and made things worse: it transitively requiresbun,cloudflare:workersand@cloudflare/workers-typestype packages, none of which are installed either.
skipLibCheck would silence both, but SPEC-001 explicitly forbids using it to suppress declaration errors, so this is reported as a blocker rather than routed around.
Raw diagnostics:
node_modules/h3/dist/h3.d.mts(638,19): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Error'. node_modules/h3/dist/index.d.mts(3,106): error TS2307: Cannot find module 'crossws' or its corresponding type declarations.
Owner: not @strata-sc/core/@strata-sc/h3 — see evidence above. Requires a separate fix spec from Astra.
Temporary directory
Left on disk for inspection: /var/folders/wq/4bgf9dy51d5776cl3qgg362h0000gn/T/strata-consumer-HEYHFC