@onlyworlds/sdk 4.53.0 → 4.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +12 -0
- package/SCHEMA.md +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# For AI agents using @onlyworlds/sdk
|
|
2
2
|
|
|
3
|
-
**Current as of**: SDK **4.x** · schema-dist **v0.32.2-dist.
|
|
3
|
+
**Current as of**: SDK **4.x** · schema-dist **v0.32.2-dist.41** (canonical 00.32.02).
|
|
4
4
|
This line is asserted by `codegen:check` in CI — if the pin moves and this file is not
|
|
5
5
|
re-read against it, the check fails rather than letting this document rot quietly.
|
|
6
6
|
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ earlier history lives in git log only.
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [4.53.2] - 2026-10-22
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **A `mimetype` marker with a byte order mark is refused** (`marker`, spec §4.7 OW-6). The reader compared the entry as decoded text, and `TextDecoder`'s default strips a leading BOM, so a marker of BOM plus the media type passed; the spec says bytes exactly. Found by the Python package's port of the reader (`onlyworlds` 0.17.0), which refused it. No fixture carries the case yet (proposed for the conformance set).
|
|
13
|
+
|
|
14
|
+
## [4.53.1] - 2026-10-22
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- **Schema repinned to schema-dist v0.32.2-dist.41** (same canonical 00.32.02; the dist now carries the `.owworld` conformance set at `fixtures/owworld/`, 80 cases, with `verdicts.json` and `CaseFolding-15.1.0.txt`, and its folder lint names a `world.json` with an `api` block that git tracks; no schema file moved). The set's two newest cases are `fail-OW-14-crc`, an entry whose bytes fail the CRC its headers declare, and `fail-OW-14-stored-short`, a stored entry holding fewer bytes than it declares. The reader already refused both as `not_openable`, naming the entry, and needed no change. The world-file conformance test reads the set from the vendored dist, so it runs in CI too, where it used to skip; it also checks that every zip on disk has a verdict. The fold table's test and generator read the dist's `CaseFolding-15.1.0.txt`, the same file the SDK held, and the table is unchanged. Folder spec §4.7 is RULED (v0.3.13). Nothing in the published package changes but its version and these documents: `codegen/` does not ship.
|
|
19
|
+
|
|
8
20
|
## [4.53.0] - 2026-10-22
|
|
9
21
|
|
|
10
22
|
### Changed
|
package/SCHEMA.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OnlyWorlds Schema Reference
|
|
2
2
|
|
|
3
|
-
**Source**: https://github.com/OnlyWorlds/schema-dist @ **v0.32.2-dist.
|
|
3
|
+
**Source**: https://github.com/OnlyWorlds/schema-dist @ **v0.32.2-dist.41** — canonical schema **00.32.02**, published 2026-10-22.
|
|
4
4
|
|
|
5
5
|
GENERATED from the canonical schema YAML — do not hand-edit (regenerate: `python codegen/generate_types.py`).
|
|
6
6
|
Written for both humans and AI agents reading this package locally.
|
package/dist/index.js
CHANGED
|
@@ -2906,7 +2906,7 @@ function readWorldFile(bytes, opts = {}) {
|
|
|
2906
2906
|
const names = new Set(files.map((e) => e.name));
|
|
2907
2907
|
checkFileAndFolder(names);
|
|
2908
2908
|
const marker = files.find((e) => e.name === MARKER_NAME);
|
|
2909
|
-
if (marker && new TextDecoder().decode(inflateEntry(bytes, marker)) !== WORLD_FILE_MEDIA_TYPE) {
|
|
2909
|
+
if (marker && new TextDecoder("utf-8", { ignoreBOM: true }).decode(inflateEntry(bytes, marker)) !== WORLD_FILE_MEDIA_TYPE) {
|
|
2910
2910
|
refuse("marker", "The mimetype entry holds other bytes than the OnlyWorlds media type.");
|
|
2911
2911
|
}
|
|
2912
2912
|
const candidates = [...names].filter((n) => n !== MARKER_NAME && !isJunk(n));
|