Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions .changeset/db.md

This file was deleted.

18 changes: 0 additions & 18 deletions .changeset/i18n-overlay.md

This file was deleted.

11 changes: 0 additions & 11 deletions .changeset/observable.md

This file was deleted.

37 changes: 0 additions & 37 deletions .changeset/presence-as-a-value.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/screens-feed.md

This file was deleted.

50 changes: 0 additions & 50 deletions .changeset/server-runtime.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/sync-one-writer-per-namespace.md

This file was deleted.

16 changes: 0 additions & 16 deletions .changeset/sync.md

This file was deleted.

49 changes: 0 additions & 49 deletions .changeset/tagged-wire-and-batching.md

This file was deleted.

12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# @bedrock-core/server

## 0.2.0

### Patch Changes

- Curates:

- @bedrock-core/db@0.1.0
- @bedrock-core/i18n@0.2.0
- @bedrock-core/observable@0.1.0
- @bedrock-core/server-runtime@0.2.0
- @bedrock-core/sync@0.2.0

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bedrock-core/server",
"version": "0.1.0",
"version": "0.2.0",
"description": "A framework for cross-addon compatible Minecraft Bedrock development",
"keywords": [
"minecraft",
Expand Down
38 changes: 38 additions & 0 deletions packages/db/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# @bedrock-core/db

## 0.1.0

### Minor Changes

- [#2](https://github.com/bedrock-core/server/pull/2) [`d75b88e`](https://github.com/bedrock-core/server/commit/d75b88efe1e5f9b5594590aab85c2c557e6a37f1) Thanks [@drav0011](https://github.com/drav0011)! - Add `@bedrock-core/db`: typed documents persisted on whatever dynamic properties a target can
hold.

**The host resolver** probes a target for where its documents can live — its own dynamic
properties through the engine's six-method or component ABI, or a world property keyed by its
identity when it holds nothing — behind one adapter over both ABIs, with a capability record per
host, refusals by name for an `ItemStack` and a stackable slot, and a per-type cache that never
caches a throw.

**Collections** key documents by target on the host the resolver finds. One JSON envelope per
document carries its version; migrations run lazily per document; `defaults` fill deep on read and
a `normalize` runs on every write; `patch` merges plain objects recursively and replaces arrays and
scalars, with `undefined` deleting a key. A document that cannot be read is quarantined under
`<key>#bad` rather than deleted. A budget check runs before the engine, with chunking on the direct
ABI, `accept` and `require` are checked at compile time against what the target type can do, and a
validity gate re-resolves the target on every operation.

**The chunked index** has a resumable `all()` that heals a replaced block, a `blockCleanup` custom
component for `onBreak`, and `coalesce` write-behind that parks on `entityLoad` and flushes on
`playerLeave` — wired to the engine only when a coalescing collection exists.

A collection is **local**. Nothing here is reachable from another realm: what crosses is what the
owning addon puts on one of the runtime's channels.

Tuned for the engine throughout: hosts, resolutions, document stores and handles are classes with
prototype methods, a handle resolves its target once per tick, the resolver trusts a cached type
decision, index chunks are written behind, and a single value skips the batch write.

### Patch Changes

- Updated dependencies [[`d75b88e`](https://github.com/bedrock-core/server/commit/d75b88efe1e5f9b5594590aab85c2c557e6a37f1)]:
- @bedrock-core/observable@0.1.0
2 changes: 1 addition & 1 deletion packages/db/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bedrock-core/db",
"version": "0.0.0",
"version": "0.1.0",
"description": "Persisted documents for @bedrock-core: a resolver that finds where a target can hold dynamic properties, and typed collections over it",
"keywords": [
"minecraft",
Expand Down
19 changes: 19 additions & 0 deletions packages/i18n/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# @bedrock-core/i18n

## 0.2.0

### Minor Changes

- [#2](https://github.com/bedrock-core/server/pull/2) [`d75b88e`](https://github.com/bedrock-core/server/commit/d75b88efe1e5f9b5594590aab85c2c557e6a37f1) Thanks [@drav0011](https://github.com/drav0011)! - A library's strings can be overridden by the world it runs in.

A library that draws UI ships its own bundle, keyed under a namespace it shares with the rest of
its family. A running realm has more than that: every addon present has announced a bundle, and
one of them may carry the very same key — deliberately, to rename what the library calls something
("Addons" becomes "Mods"), or simply because it ships a locale the library does not.

`overlay(bound, published, bundle)` is that precedence, as verbs. `t()` prefers the published value
wherever it carries the key, so an override and an unshipped locale reach the strings a script
renders rather than only the keys a client paints. `resolve()` and `display()` become the world's,
so a key from any addon's bundle resolves — which is what a screen showing another addon's display
fields needs.

A realm with no published bundles gets the bound instance back untouched and allocates nothing.

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/i18n/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bedrock-core/i18n",
"version": "0.1.0",
"version": "0.2.0",
"description": "Localization for Minecraft Bedrock: typed keys, interpolation and plurals, resolved client-side per player",
"keywords": [
"i18n",
Expand Down
13 changes: 13 additions & 0 deletions packages/observable/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# @bedrock-core/observable

## 0.1.0

### Minor Changes

- [#2](https://github.com/bedrock-core/server/pull/2) [`d75b88e`](https://github.com/bedrock-core/server/commit/d75b88efe1e5f9b5594590aab85c2c557e6a37f1) Thanks [@drav0011](https://github.com/drav0011)! - Add `@bedrock-core/observable`, the reactive primitive the stack notifies through: `observable`
with `get` / `set` / `subscribe`, `computed`, `effect` and `batch`, delivering synchronously with
listeners isolated from each other. `last(signal)` turns anything with `subscribe` — a Minecraft event
signal included — into an observable of its most recent payload, `undefined` until the first one
arrives, released with `dispose()`. The `/minecraft` entry bridges one of ours to a data-driven UI
observable with `toNative`, keeping the native in step for a form's lifetime and writing back only
when the control is client-writable.
2 changes: 1 addition & 1 deletion packages/observable/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bedrock-core/observable",
"version": "0.0.0",
"version": "0.1.0",
"description": "The reactive primitive for @bedrock-core: observable values with get / set / subscribe, computed values, effects and batching, plus a bridge to Minecraft's data-driven UI observables",
"keywords": [
"minecraft",
Expand Down
Loading