ITADN
lvcabral/brs-engine

版本发布 8

v2.0.4 - CLI Unicode Renderingv2.0.4
? · 2026-01-01

## Release Changes * (cli) Added new `unicode` display rendering mode by @lvcabral in https://github.com/lvcabral/brs-engine/pull/799 * (brs) Prevented division by zero on `roAudioMetadata` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/798 * (brs) Fixed `roFontRegistry` to properly check parsed font metrics by @lvcabral in https://github.com/lvcabral/brs-engine/pull/800 * Changes on `brs-scenegraph` package (release v0.0.4): * (rsg) Fixed `Poster` rendering to match Roku's automatic scaling by @lvcabral in https://github.com/lvcabral/brs-engine/pull/801 * (rsg) Fixed `Overhang` default logo scaling by @lvcabral in https://github.com/lvcabral/brs-engine/pull/802 * (rsg) Fixed item component's events on `ArrayGrid` based nodes by @lvcabral in https://github.com/lvcabral/brs-engine/pull/803 * (rsg) Changed `Field` to allow assign `roPath` to a `String` field by @lvcabral in https://github.com/lvcabral/brs-engine/pull/804 * (rsg) Fixed `Task` to prevent crash on updated fields with `null` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/805 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v2.0.3...v2.0.4

v2.0.2 - Various Fixes and Improvementsv2.0.2
? · 2025-12-12

This release brings enhancements to the SceneGraph extension, CLI and API improvements, and various bug fixes. ## Release Changes * (api) Improved `SceneGraph` app detection by @lvcabral in https://github.com/lvcabral/brs-engine/pull/778 * (chore) Fixed multiple static analysis issues reported by SonarCloud by @lvcabral in https://github.com/lvcabral/brs-engine/pull/779 * (chore) Closes #33 replaced `opentype.js` by a fork with font parsing only by @lvcabral in https://github.com/lvcabral/brs-engine/pull/780 * (brs) Fixed `String` coercion to handle `isStringComp` objects by @lvcabral in https://github.com/lvcabral/brs-engine/pull/782 * (brs) Changed `BrsExtension` signature to include `version` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/787 * Changes on `brs-scenegraph` package (release v0.0.2): * (rsg) Fixes #769 Video UI header removed too soon by @lvcabral in https://github.com/lvcabral/brs-engine/pull/781 * (rsg) Prevent crash when custom fonts are missing by @lvcabral in https://github.com/lvcabral/brs-engine/pull/783 * (rsg) Made `ArrayGrid` based nodes to be aware of `content` changes by @lvcabral in https://github.com/lvcabral/brs-engine/pull/784 * (rsg) Fixed `roSGNode` methods `setField` and `addFields` to properly handle `ContentNode` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/785 * (rsg) Removed usage of reflection to build `subtypeHierarchy` in `Node` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/786 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v2.0.1...v2.0.2

v2.0.0 - Extensions and SceneGraph Supportv2.0.0
? · 2025-12-05

The `brs-engine` has been refactored to support an extension model, with **Roku SceneGraph** functionality moved to a separate NPM package `brs-scenegraph`. This architectural change keeps the core interpreter lean, while enabling optional extensions for **RSG** and, in the future, **SDK1** (legacy Roku apps) and **BrightSign** (digital signage platform). ## Release Changes * Refactored `brs-engine` to support extensions and moved **SceneGraph** code to a separate package by [@lvcabral](https://github.com/lvcabral) in [#760](https://github.com/lvcabral/brs-engine/pull/760) * Introduced an extension system with the `BrsExtension` interface and lifecycle hooks * Moved SceneGraph code to the `src/extensions/scenegraph/` directory * Several documentation updates to reflect the new extension model, including a new [Extensions](docs/extensions.md) document * Refactored test file imports to use top-level `brs` exports * Created the new `brs-scenegraph` package with independent build configuration Note: The **SceneGraph** functionality is on par with the last alpha release: [v2.0.0-alpha.26](https://github.com/lvcabral/brs-engine/releases/tag/v2.0.0-alpha.26). All future SceneGraph-related implementations will be made in the `brs-scenegraph` package and documented in its [CHANGELOG.md](https://github.com/lvcabral/brs-engine/blob/master/packages/scenegraph/CHANGELOG.md). **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v1.10.0...v2.0.0

v2.0.0-alpha.26
? · 2025-12-03

This is the final release of the `SceneGraph` support integrated tot he engine libraries, starting from v2.0.0 the SceneGraph support was moved to an extension and will have its own separate NPM package. ## What's Changed * Added support to field array types: `intarray`, `floatarray`, `boolarray`, `stringarray`, `colorarray` and `timearray` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/753 * Bump js-yaml from 3.14.1 to 3.14.2 by @dependabot[bot] in https://github.com/lvcabral/brs-engine/pull/752 * Fixed `Field.canAcceptValue` to properly validate array values by @lvcabral in https://github.com/lvcabral/brs-engine/pull/754 * Refactored `roSGNode` to remove `BrsIterable` and use `SetValue` instead of `Set` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/755 * Raise type mismatch error when passing `Uninitialized` value to non-dynamic function parameters by @lvcabral in https://github.com/lvcabral/brs-engine/pull/756 * Prevented removing system fields and `setFields` to add fields by @lvcabral in https://github.com/lvcabral/brs-engine/pull/757 * Added `BrsEvent` abstract class and `BrsCollection` interface by @lvcabral in https://github.com/lvcabral/brs-engine/pull/759 * Bump node-forge from 1.3.1 to 1.3.2 by @dependabot[bot] in https://github.com/lvcabral/brs-engine/pull/758 * Prevent media nodes to send messages in task threads by @lvcabral in https://github.com/lvcabral/brs-engine/pull/762 * Fixed optional chaining with `roInvalid`when using methods by @lvcabral in https://github.com/lvcabral/brs-engine/pull/763 * Changed `Node.ts` to handle all default fields as system fields by @lvcabral in https://github.com/lvcabral/brs-engine/pull/764 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v2.0.0-alpha.25...v2.0.0-alpha.26

v2.0.0-alpha.23预发布
? · 2025-11-14

## What's Changed * Clear the display before showing icon as splash by @lvcabral in https://github.com/lvcabral/brs-engine/pull/741 * Added support for the `not` operator in the preprocessor's `#if` clause evaluation by @lvcabral in https://github.com/lvcabral/brs-engine/pull/742 * Fixed exception handling for Parser and Preprocessor by @lvcabral in https://github.com/lvcabral/brs-engine/pull/743 * Added UTF-16 support for `StringI` and prevented crash with negative `string.repeat()` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/744 * Added validation to `#if` to not allow extra text after the condition token by @lvcabral in https://github.com/lvcabral/brs-engine/pull/745 * Fixed loading of SG localized terms and added missing `es_ES` and `it_IT` files by @lvcabral in https://github.com/lvcabral/brs-engine/pull/746 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v2.0.0-alpha.22...v2.0.0-alpha.23

v2.0.0-alpha.22预发布
? · 2025-11-12

## What's Changed * Prevent Node child serialization in AA and Array by @lvcabral in https://github.com/lvcabral/brs-engine/pull/734 * Refactored `RoSGNode` to be an abstract class and created the new SceneGraph `Node` class by @lvcabral in https://github.com/lvcabral/brs-engine/pull/735 * Fixed `ContentNode` field setting by @lvcabral in https://github.com/lvcabral/brs-engine/pull/736 * Fixed setting fields with default values in the XML by @lvcabral in https://github.com/lvcabral/brs-engine/pull/737 * Fixed `MicroDebugger` to properly handle a line with multiple statements separated by colon `:` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/738 * Generate a `registry` event when loading the registry during startup of the engine by @lvcabral in https://github.com/lvcabral/brs-engine/pull/739 * Improvements on node thread ownership by @lvcabral in https://github.com/lvcabral/brs-engine/pull/740 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v2.0.0-alpha.21...v2.0.0-alpha.22

v1.9.8 - New API method getScreenshot()v1.9.8
? · 2025-10-30

This release adds a new API method `getScreenshot()` that returns the latest rendered screenshot as an `ImageData` object, allowing host applications to get a full resolution image, instead of relying on the resizable display `canvas`. ## Release Changes * Added new API method `getScreenshot()` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/711 * Updated API documentation to add new `getScreenshot()` method by @lvcabral in https://github.com/lvcabral/brs-engine/pull/712 * Prevent crash on Micro Debugger with `bpk` files by @lvcabral in https://github.com/lvcabral/brs-engine/pull/713 * Bump validator from 13.12.0 to 13.15.20 by @dependabot[bot] in https://github.com/lvcabral/brs-engine/pull/706 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v1.9.7...v1.9.8

v2.0.0-alpha.17预发布
? · 2025-10-29

## What's Changed * Implemented support for `roSGNode.update()` recursive child tree creation by @lvcabral in https://github.com/lvcabral/brs-engine/pull/681 * Added support for `Invalid` children in `roSGNode` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/691 * Implemented support for `RowList` field `rowItemSelected` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/692 * Fixed deserialization of `Nodes` from `Tasks` and `roSGNode.update()` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/694 * Fixed when `Video` node field `contentIsPlaylist` is set after `content` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/695 * Refactored `RootObjects` into a separate module `SGRoot` to fix `Audio` and `Video` reset by @lvcabral in https://github.com/lvcabral/brs-engine/pull/696 * Fixed `Audio` and `Video` to resend and reset the `content` when `contentIsPlaylist` changes by @lvcabral in https://github.com/lvcabral/brs-engine/pull/697 * Several fixes on `RowList` rendering and behavior by @lvcabral in https://github.com/lvcabral/brs-engine/pull/698 * Implement `LayoutGroup` node by @lvcabral in https://github.com/lvcabral/brs-engine/pull/699 * Implemented `ZoomRowList` node by @lvcabral in https://github.com/lvcabral/brs-engine/pull/700 * Fixed `Video` and `Audio` handling of changes in `content` field by @lvcabral in https://github.com/lvcabral/brs-engine/pull/701 * Added mapping of `MaskGroup` and `TargetGroup` to `Group` before implementation by @lvcabral in https://github.com/lvcabral/brs-engine/pull/702 * Improved `Task` handling of `Node` field changes by @lvcabral in https://github.com/lvcabral/brs-engine/pull/703 * Fixed more `LayoutGroup` rendering issues by @lvcabral in https://github.com/lvcabral/brs-engine/pull/704 * Improved focus feedback rendering in `RowList` and `ZoomRowList` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/705 * Fixed `Overhang` logo rendering to match Roku behavior by @lvcabral in https://github.com/lvcabral/brs-engine/pull/707 * Bump validator from 13.12.0 to 13.15.20 by @dependabot[bot] in https://github.com/lvcabral/brs-engine/pull/706 * Fixes in `RowList` and refactoring of `ZoomRowList` by @lvcabral in https://github.com/lvcabral/brs-engine/pull/708 * Implement missing `roSGNode` methods by @lvcabral in https://github.com/lvcabral/brs-engine/pull/709 * Fixed `LabelList` and `MarkupList` vertical navigation in `floatingFocus` mode by @lvcabral in https://github.com/lvcabral/brs-engine/pull/710 **Full Changelog**: https://github.com/lvcabral/brs-engine/compare/v2.0.0-alpha.16...v2.0.0-alpha.17