Repository navigation
feat(archive): read Adobe extension packages (.zxp) like JAR - #1398
Merged
Merged
Conversation
A .zxp, the package of an After Effects, Premiere Pro or Photoshop extension, is a signed ZIP: the bundled 7-Zip extracts it and it converts to every archive target, its META-INF/signatures.xml kept as a file. It is never a target, since Adobe's apps install only packages signed with the developer's certificate. Settings schema 82 adds .zxp to existing archives donuts without taking custom claims (80 and 81 are claimed by #1390 and #1376). Closes #1382 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # src/Filee.Core/Settings/AppSettings.cs # src/Filee.Core/Settings/UserDataStore.cs
# Conflicts: # src/Filee.Core/Settings/AppSettings.cs # src/Filee.Core/Settings/UserDataStore.cs # tests/Filee.Core.Tests/FormatFieldsTests.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What users notice
Adobe extension packages (
.zxp), the panels and plug-ins installed into After Effects, Premiere Pro, Photoshop and other Creative Cloud apps, open on the archives donut. They can be extracted to a folder or converted to ZIP, 7Z, TAR and the other archive targets, the same way JAR works. A ZXP is a signed ZIP (mimetype, the extension's files,META-INF/signatures.xml), so the bundled 7-Zip reads it and no new engine is needed.It is read only: Filee never writes
.zxp, because Adobe's apps only install packages signed with the developer's certificate (ZXPSignCmd).What changed
src/Filee.Core/Formats/FormatRegistry.cs:zxpas a read-only archive next tojar.src/Filee.Core/Formats/FormatFields.cs: graded specialist, Developer field, like JAR.src/Filee.Engines/Archives/ArchiveExtractor.cs:zxpamong the formats 7-Zip reads.src/Filee.Core/Settings/UserDataStore.cs,AppSettings.cs: settings schema 82 adds.zxpto existing archives donuts; custom claims stay put. 80 is claimed by feat(image): read Windows animated cursors (.ani) #1390 and 81 by [Format]: .xm #1376 (tracker modules), so this may need renumbering depending on merge order.docs/ENGINES.md: ZXP in the archive table and a short paragraph.Tests
tests/Filee.Core.Tests/ZxpFormatTests.cs(new): detection, archives donut, schema 82 migration (learns once, leaves a user's own claim, survives a restart).tests/Filee.Core.Tests/FormatFieldsTests.cs: the pinned lists and the specialist count.tests/Filee.Engines.Tests/ArchiveTests.cs: ZXP in the one-step route theory, no route into ZXP, and a.zxpbuilt by the test (Adobe's layout, with a storedmimetypefirst) that extracts byte for byte and converts topanel.zipwith every entry.tests/Filee.Engines.Tests/ArchiveIsoTests.cs: ZXP → ISO.ArchiveTestsandArchiveIsoTestswith the bundled 7-Zip.dotnet format --verify-no-changesis clean on the touched projects.Not covered
Closes #1382
🤖 Generated with Claude Code