create-praxisjs
0.3.15
Patch Changes
- 7e90df6: Refactor
@Injectableand@Scopeto useClassBehavior/createClassDecoratorfrom@praxisjs/decorators. SimplifyContainer.instantiateto plainnew target(), removing the internal TC39 metadata maps (constructorDepsMap,propDepsMap) and the associatedsetConstructorDeps/setPropDephelpers.
0.3.14
Patch Changes
- b8e0c8d: Update eslint from 10.0.2 to 10.1.0
0.3.13
Patch Changes
92880d1: Remove reflect-metadata dependency and implement TC39-compatible metadata storage
The DI container now uses WeakMaps for storing constructor and property dependency metadata instead of relying on the reflect-metadata polyfill. This reduces external dependencies while maintaining full API compatibility. New helpers
setConstructorDepsandsetPropDepare exported for manual metadata management when needed.
0.3.12
Patch Changes
2c61a25: Refresh dependencies across workspace to improve stability and security.
Bumped versions of several packages, including @types/node, eslint, and unocss, to enhance compatibility and security.
0.3.11
Patch Changes
- 46c0593: Update template dependencies to pick up
untrackand component mounting isolation from@praxisjs/coreand@praxisjs/runtime
0.3.10
Patch Changes
- 49e4690: Update template dependencies to pick up redesigned
@praxisjs/decoratorsand@praxisjs/concurrentAPIs
0.3.9
Patch Changes
- 72cd9a8: Update template dependencies to pick up latest bug fixes in
@praxisjs/decoratorsand@praxisjs/concurrent
0.3.8
Patch Changes
- 029ef04: Scoped package names (
@org/pkg) are now preserved correctly during scaffolding. Template and_package.jsonerrors report actionable messages instead of raw exceptions.
0.3.7
Patch Changes
790ed21: Fix lazy-loaded page templates missing
export default.Pages in the
routerandfulltemplates that are loaded viaLazy()now useexport default classinstead of a named export, which is required for the lazy loader to resolvemodule.defaultat runtime.
0.3.6
Patch Changes
- 87a5bbe: Update project templates to reflect the decorator-first API: use
@Store,@Route, and@RouterConfigdecorators, and initialize DevTools via dynamic import afterrender().
0.3.5
Patch Changes
d11a10a: Update template dependency versions to pick up latest bug fixes
Bumps
@praxisjs/decorators,@praxisjs/core, and@praxisjs/devtoolsacross theminimal,router, andfulltemplates so that projects scaffolded withcreate-praxisjsstart with the latest releases. Notable fixes included:effect()stop now correctly prevents re-runs (@praxisjs/core)@Watchno longer leaks reactive effects after unmount — the effect is now stopped inonUnmount(@praxisjs/decorators)@Lazyno longer recurses infinitely whenrender()is called after the component becomes visible (@praxisjs/decorators)@Lazy/@Virtualtype constraint widened to accept anyStatefulComponentsubclass (@praxisjs/decorators)- Devtools panel CSS bundle regenerated with new UnoCSS utility aliases (
@praxisjs/devtools)
0.3.4
Patch Changes
- fe39901: chore(create-praxisjs): bump dependencies to pick up bug fixes in core, decorators, router and store
0.3.3
Patch Changes
966efdc: Fix JSX prop typing for
StatelessComponentto automatically accept reactive values (() => T) without requiring manual declaration.LibraryManagedAttributesnow usesInstancePropsOfdirectly instead of intersecting with the raw constructor props, preventing the erroneousT | (T & (() => T))type expansion.InstancePropsOfnow uses_rawPropsto infer props for class components decorated with@Prop(), providing accurate JSX prop types without manual interface declarations.The
@Emitdecorator type signature was relaxed fromunknowntoanyto allow broader method compatibility. DevtoolsPanelandDevToolsAppcomponents were refactored to use@Prop()and@Emit()decorators instead of manual props casting.
0.3.2
Patch Changes
- 339a97d: Bump
@praxisjs/jsxto^0.2.1in scaffolded project templates to pick up reactive component prop typing support.
0.3.1
Patch Changes
f52354d: Add
@Computed()decorator to@praxisjs/decoratorsfor declaring read-only reactive getters backed by a cachedcomputed()signal. The getter recomputes automatically when any@Stateor@Propdependency changes, and the result is cached until a dependency is invalidated — unlike a plain getter which recalculates on every read.@Debug()in@praxisjs/devtoolsnow supports@Computed()getters (ClassGetterDecoratorContext) in addition to fields and methods, allowing computed values to be tracked and historized in the devtools panel.Also fixes a bug in the
computed()primitive where an erroneoustrack(recompute)call caused premature dependency tracking on signal creation.
0.3.0
Minor Changes
bb0d4f8: Refactor decorator system and component architecture across PraxisJS packages
- Replaced legacy decorator signatures (
constructor,target,propertyKey, method descriptor) with the standard TC39 decorator context API (ClassDecoratorContext,ClassFieldDecoratorContext,ClassMethodDecoratorContext) across@praxisjs/decorators,@praxisjs/store,@praxisjs/concurrent,@praxisjs/router,@praxisjs/motion,@praxisjs/di, and@praxisjs/fsm. - Introduced
StatefulComponentandStatelessComponentas the new base classes, replacing the deprecatedBaseComponent/Function Componentpattern, across@praxisjs/core,@praxisjs/runtime,@praxisjs/devtools, and templates. - Implemented core rendering functionality in
@praxisjs/runtime(mountChildren,mountComponent, reactive scope management) and removed the deprecatedrenderer.ts. - Refactored
@praxisjs/jsxto delegate rendering to@praxisjs/runtimeand improved type safety withflattenChildrenandisComponentutilities. - Updated internal module structure with new
internalexports inpackage.jsonfiles for shared utilities and types. - Removed
experimentalDecorators/emitDecoratorMetadatafromtsconfig.jsonin favor of native decorator support.
- Replaced legacy decorator signatures (
0.2.0
Minor Changes
f48dbc4: Introduce WithHistory<T, K> utility type for better TypeScript inference when using the @History decorator, and fix performance issues in the history() primitive.
Changes:
@praxisjs/decorators: Added WithHistory<T, K> type that maps a property key to its corresponding *History accessor type, enabling proper type-checking on decorated classes. @praxisjs/decorators: Simplified @History decorator internals — replaced verbose getOwnPropertyDescriptor lookups with direct property access (this[propertyKey]), reducing complexity. @praxisjs/core: Fixed history() to use peek() when reading _past and _current inside the tracking effect, preventing unnecessary re-runs caused by reactive reads during history recording. @praxisjs/core: Added an _initialized guard so the first value is captured without pushing an empty entry into the past stack.
0.1.2
Patch Changes
- 564f711: Fix signals not working due to missing useDefineForClassFields: false in template tsconfigs
0.1.1
Patch Changes
- df60c6d: Fix missing shebang in CLI binary
0.1.0
Minor Changes
- aaf7dab: Initial beta release