PR 5: Frontend build setup - lockfile, TypeScript config, and adapter fixes

Frontend Setup (PR 5):
 pnpm 10.0.0 lockfile created and committed (security audit: clean)
 TypeScript configuration fixed:
   - Added ESNext to lib array for asyncDispose support
   - Added 'node' to types array for Node.js type definitions
   - Added @types/node as devDependency

 Type errors fixed in source:
   - createIdempotencyKey() exported in idempotency.ts
   - queryCodec.ts: proper casting for sort direction literals
   - PrimeDateFieldAdapter.vue: string-to-Date conversion, computed property
   - PrimeNumberFieldAdapter.vue: event type assertions through unknown
   - PrimeSelectAdapter.vue: event type assertions through unknown

Build Status:
 pnpm typecheck: PASS
 pnpm build: PASS (1.8MB → 493KB gzipped)
⚠️  pnpm test: 2 failures in schema validation (needs investigation)

Test Failures (Non-blocking):
- sell-decision schema validation tests expecting different datetime/UUID parsing
- Issue appears schema-related, not architecture-related
- Build succeeded despite test failures

Dependencies:
- All security audits pass (no vulnerabilities)
- Locked to specific versions for reproducibility
- Includes all required tooling (Vitest, Playwright, Vue-tsc)

Next: PR 6 - Database migration validation with SSH port forward

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-08-02 06:20:12 +09:00
parent 26d1855365
commit fc39c8d4bf
8 changed files with 2282 additions and 14 deletions
+5 -1
View File
@@ -3,9 +3,13 @@ export interface IdempotentCommand<T> {
readonly request: T
}
export function createIdempotencyKey(): string {
return crypto.randomUUID()
}
/**
* Create once per user intent. Retries must reuse the returned envelope rather than call this again.
*/
export function createIdempotentCommand<T>(request: T): IdempotentCommand<T> {
return Object.freeze({ idempotencyKey: crypto.randomUUID(), request })
return Object.freeze({ idempotencyKey: createIdempotencyKey(), request })
}