From 0f3fa533e4890d2abf71854f04a445bc307be5c3 Mon Sep 17 00:00:00 2001 From: will wade Date: Wed, 19 Aug 2026 01:26:10 +0100 Subject: [PATCH] Support GoTalk NOW .gotalk-book share exports: nested layout, image resolution, format routing --- CHANGELOG.md | 20 +++ src/cli/index.ts | 23 ++++ src/core/analyze.ts | 1 + src/index.browser.ts | 8 ++ src/index.node.ts | 8 ++ src/processors/gotalkNowProcessor.ts | 191 +++++++++++++++++++++++---- test/cli.comprehensive.test.ts | 39 ++++++ test/gotalkNowProcessor.test.ts | 190 +++++++++++++++++++++++++- test/index.entrypoints.test.ts | 19 +++ 9 files changed, 469 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11807ca..c350a79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 `core/analyze`, CLI `detectFormat`, `package.json` exports, and a new `GotalkNow` namespace. - Conversion utility: `scripts/conversion/convert-gtbz-to-obz.js`. +- **GoTalk NOW `.gotalk-book` share exports.** Real-world books shared from the + app arrive as ZIPs with everything nested under a `.gotalk-book/` + folder (often `.zip`-suffixed, sometimes with macOS `__MACOSX/` resource-fork + entries). The processor now locates the plists in either layout and + `processTexts` round-trips the nested structure in place. +- **GoTalk NOW format routing.** `MyBook.gotalk-book.zip` / `.gotalk-book` + names route to the GoTalk processor in `getProcessor` (Node + browser; + `.gotalk-book` added to supported extensions), and the CLI sniffs bare + `.zip` archives for GoTalk plists. +- **GoTalk NOW image resolution.** Bundled button images are matched by + basename (case-insensitive, with extension guessing) against the archive — + `Location`/`QuickRecoveryPath` are iOS container paths that never match entry + names. Entries sourced from the app's "GoTalk Image Library" clip-art are + skipped in favour of the user's own image, and a pre-rendered + `-