Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
a100f0c
chore: setup v8.0.0-rc.1 with New Architecture support
plrthink Apr 13, 2026
a400825
feat: migrate to TurboModules for New Architecture
plrthink Apr 13, 2026
e4ed405
feat: add Expo playground and test suite
plrthink Apr 13, 2026
270fb49
docs: rewrite README, add MIGRATION and CHANGELOG for v8.0
plrthink Apr 13, 2026
088f412
docs: expand Expo users section with Development Build guide
plrthink Apr 13, 2026
7591faa
fix: address review feedback for New Architecture migration
plrthink Apr 13, 2026
837a19f
feat: adopt React Native New Architecture (Bridgeless) and add Expo p…
plrthink May 4, 2026
7a14395
fix: address Devin review comments
plrthink May 5, 2026
ea42a71
fix: address Devin review round 2
plrthink May 5, 2026
283bb74
fix: add hasConstants arg to ReactModuleInfo for RN 0.70.x compat
plrthink May 5, 2026
933cb87
fix(ios): address Devin review comments
plrthink May 6, 2026
38f81b0
test(e2e): add assets flow for Android
plrthink May 9, 2026
4a5731b
fix(android): handle compressed assets in unzipAssets and fix E2E test
plrthink May 9, 2026
d08ce66
fix(android): add null check for f.listFiles() in processZip to preve…
plrthink May 9, 2026
a31d23e
chore(release): bump version to 8.0.0-rc.2
plrthink May 10, 2026
ef43fc5
fix(ios): cache methodQueue dispatch queue and fix E2E dev-client con…
plrthink May 10, 2026
71d099d
fix(android): catch Exception in getUncompressedSize to handle ZipExc…
plrthink May 11, 2026
df9bd4a
chore(release): bump version to 8.0.0-rc.3
plrthink May 11, 2026
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
25 changes: 25 additions & 0 deletions .cgcignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Auto-generated by CodeGraphContext
# Default ignore patterns for binary/media files
# Add your own patterns below

node_modules/
venv/
.venv/
env/
.env/
dist/
build/
target/
out/
.git/
__pycache__/
*.png
*.jpg
*.jpeg
*.gif
*.svg
*.mp4
*.mp3
*.zip
*.tar
*.gz
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,9 @@ captures/

# npm pack output
/*.tgz

# Playground generated artifacts
playground/.expo/
playground/android/
playground/ios/
playground/package-lock.json
5 changes: 5 additions & 0 deletions .maestro/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
flows:
- "flows/**"

executionOrder:
continueOnFailure: false
55 changes: 55 additions & 0 deletions .maestro/flows/assets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- runFlow:
when:
visible: "http://localhost:8081"
commands:
- tapOn: "http://localhost:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- runFlow:
when:
visible: "http://10.0.2.2:8081"
commands:
- tapOn: "http://10.0.2.2:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- extendedWaitUntil:
visible: "RNZipArchive Playground"
timeout: 45000
- runFlow:
when:
visible: "Toggle performance monitor"
commands:
- pressKey: BACK
- scrollUntilVisible:
element:
text: "Assets (Android)"
direction: DOWN
- tapOn: "Assets (Android)"
- assertVisible: "Android Assets Demo"
- tapOn: "Unzip Assets"
- waitForAnimationToEnd:
timeout: 10000
- assertVisible: "Extracted To"
- extendedWaitUntil:
visible: "Files:"
timeout: 10000
- assertVisible: "Files:"
22 changes: 22 additions & 0 deletions .maestro/flows/connect-metro-ios.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- runFlow:
when:
visible: "http://localhost:8081"
commands:
- tapOn: "http://localhost:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn:
id: "closeButton"
- extendedWaitUntil:
visible: "Zip Operations"
timeout: 45000
7 changes: 7 additions & 0 deletions .maestro/flows/connect-metro.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- tapOn: "http://10.0.2.2:8081"
- extendedWaitUntil:
visible: "Zip Operations"
timeout: 45000
13 changes: 13 additions & 0 deletions .maestro/flows/debug-zip.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- extendedWaitUntil:
visible: "Zip Operations"
timeout: 15000
- tapOn: "Zip Operations"
- assertVisible: "Zip Sample Folder"
- tapOn: "Zip Sample Folder"
- extendedWaitUntil:
visible: "Success"
timeout: 15000
- takeScreenshot: debug-zip-result
46 changes: 46 additions & 0 deletions .maestro/flows/home.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- runFlow:
when:
visible: "http://localhost:8081"
commands:
- tapOn: "http://localhost:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- runFlow:
when:
visible: "http://10.0.2.2:8081"
commands:
- tapOn: "http://10.0.2.2:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- extendedWaitUntil:
visible: "RNZipArchive Playground"
timeout: 45000
- runFlow:
when:
visible: "Toggle performance monitor"
commands:
- pressKey: BACK
- assertVisible: "Zip Operations"
- assertVisible: "Unzip Operations"
- assertVisible: "Password Protection"
- assertVisible: "Progress Events"
- assertVisible: "Benchmarks"
52 changes: 52 additions & 0 deletions .maestro/flows/password.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- runFlow:
when:
visible: "http://localhost:8081"
commands:
- tapOn: "http://localhost:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- runFlow:
when:
visible: "http://10.0.2.2:8081"
commands:
- tapOn: "http://10.0.2.2:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- extendedWaitUntil:
visible: "RNZipArchive Playground"
timeout: 45000
- runFlow:
when:
visible: "Toggle performance monitor"
commands:
- pressKey: BACK
- tapOn: "Password Protection"
- assertVisible: "Create Password Zip"
- tapOn: "Create Password Zip"
- waitForAnimationToEnd:
timeout: 10000
- assertVisible: "Zip Created"
- assertVisible: "Password Protected: Yes"
- tapOn: "Unzip with Password"
- waitForAnimationToEnd:
timeout: 10000
- assertVisible: "Extracted"
51 changes: 51 additions & 0 deletions .maestro/flows/progress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- runFlow:
when:
visible: "http://localhost:8081"
commands:
- tapOn: "http://localhost:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- runFlow:
when:
visible: "http://10.0.2.2:8081"
commands:
- tapOn: "http://10.0.2.2:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- extendedWaitUntil:
visible: "RNZipArchive Playground"
timeout: 45000
- runFlow:
when:
visible: "Toggle performance monitor"
commands:
- pressKey: BACK
- tapOn: "Progress Events"
- assertVisible: "Subscribe"
- tapOn: "Subscribe"
- assertVisible: "Status: Subscribed"
- tapOn: "Run Large Zip"
- extendedWaitUntil:
visible: "Completed"
timeout: 30000
- tapOn: "Unsubscribe"
- assertVisible: "Status: Not subscribed"
60 changes: 60 additions & 0 deletions .maestro/flows/zip-and-unzip.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
appId: com.example.rnziparchive.playground
---
- launchApp
- runFlow:
when:
visible: "http://localhost:8081"
commands:
- tapOn: "http://localhost:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- runFlow:
when:
visible: "http://10.0.2.2:8081"
commands:
- tapOn: "http://10.0.2.2:8081"
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
- runFlow:
when:
visible: "Reload"
commands:
- tapOn: "Reload"
- extendedWaitUntil:
visible: "RNZipArchive Playground"
timeout: 45000
- runFlow:
when:
visible: "Toggle performance monitor"
commands:
- pressKey: BACK
- tapOn: "Zip Operations"
- assertVisible: "Zip Sample Folder"
- tapOn: "Zip Sample Folder"
- waitForAnimationToEnd:
timeout: 10000
- assertVisible: "Success"
- back
- runFlow:
when:
notVisible: "Unzip Operations"
commands:
- tapOn: "Playground"
- tapOn: "Unzip Operations"
- assertVisible: "Create & Unzip Sample"
- tapOn: "Create & Unzip Sample"
- waitForAnimationToEnd:
timeout: 10000
- assertVisible: "Extracted To"
- assertVisible: "hello.txt"
9 changes: 9 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,12 @@ npm-debug.log
/*.tgz
example/
yarn.lock

# Playground - Expo development build project (not for npm)
playground/

# Development files (not for npm)
__tests__/
__mocks__/
babel.config.js
NEW_ARCHITECTURE_MIGRATION_PLAN.md
Loading