- add the v1 AvatarDefinition schema, bounded parser, strict validation, semantic catalog, pure geometry, scene generation, and deterministic playback to @bible-strong/avatar-core - add the React 19 renderer with semantic controls, SSR-safe embedded/floating layouts, direct frame updates, pointer and keyboard movement, constraints, callbacks, and accessible controls - add real tarball packaging and a clean React/Vite consumer using the exported Strobi definition - add Studio semantic-key authoring, runtime readiness, JSON download/copy, bundled-key recovery, concise errors, targeted local-project clearing, npm guidance, syntax highlighting, and a runnable package preview - preserve the historical ZIP and Studio project exports, regenerate the standalone engine, and synchronize English, French, and Simplified Chinese copy - add focused contract, playback, renderer, interaction, persistence, export, and localization coverage - archive the completed runtime and semantic-curation specs, retain the Vite performance draft, and record the engineering session in TIMELOG.md Validation: - pnpm check: 19 test files, 162 tests, typecheck, engine freshness, package builds, and Studio production build passed - npm pack dry runs: 30 core files and 10 React files - package smoke: real tarballs installed, typechecked, and built outside the workspace - browser checks: semantic playback, embedded/floating render, drag, mobile overflow, runtime export recovery, formatted copy, syntax colors, and live package preview Publication remains disabled: both packages stay private and AGPL-3.0-only pending licensing and repository metadata approval. Vue and Angular adapters remain deferred.
31 lines
890 B
TypeScript
31 lines
890 B
TypeScript
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
import babel from '@rolldown/plugin-babel'
|
|
import react, { reactCompilerPreset } from '@vitejs/plugin-react'
|
|
import tailwindcss from '@tailwindcss/vite'
|
|
import { defineConfig } from 'vite'
|
|
|
|
const root = path.dirname(fileURLToPath(import.meta.url))
|
|
|
|
export default defineConfig({
|
|
root,
|
|
base: './',
|
|
plugins: [react(), babel({ presets: [reactCompilerPreset()] }), tailwindcss()],
|
|
resolve: {
|
|
alias: {
|
|
'@': path.join(root, 'src'),
|
|
'@bible-strong/avatar-core': path.join(root, 'packages/avatar-core/src/index.ts'),
|
|
'@bible-strong/avatar-react': path.join(root, 'packages/avatar-react/src/index.ts'),
|
|
},
|
|
},
|
|
build: {
|
|
outDir: path.join(root, 'dist'),
|
|
emptyOutDir: true,
|
|
chunkSizeWarningLimit: 1_100,
|
|
rolldownOptions: {
|
|
checks: { pluginTimings: false },
|
|
},
|
|
},
|
|
})
|