Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
d16e2b6
added new behaviors, code format fix
thomasttvo Jun 3, 2022
1d2e5bb
unused imports
thomasttvo Jun 3, 2022
325686c
proper typescript setup
thomasttvo Jun 3, 2022
b33c637
added `chunkFile`
thomasttvo Jun 3, 2022
b8c5770
fixed built types
thomasttvo Jun 4, 2022
10c196f
minor fix
thomasttvo Jun 6, 2022
2512ead
added server side
thomasttvo Jun 7, 2022
7a4dda1
removed incorrect build files
thomasttvo Jun 7, 2022
4a7d630
getUploadStatus
thomasttvo Jun 7, 2022
6c12c02
fix linter
thomasttvo Jun 7, 2022
260ca2c
fix/upgrade linter
thomasttvo Jun 7, 2022
888cbcf
simplified
thomasttvo Jun 8, 2022
2d57bf4
fixed a bug with getUploadStatus
thomasttvo Jun 9, 2022
a2ade4c
better error handling
thomasttvo Jun 9, 2022
a14e507
better error handling
thomasttvo Jun 15, 2022
4dfd48e
md5 the file
thomasttvo Jun 21, 2022
ae821a8
Fixed isDiscretionary being always YES. Made non-discretionary sessio…
thomasttvo Jun 22, 2022
d60c7a9
fix android upload not working
thomasttvo Jul 11, 2022
9fd0da6
Android chunkFile
thomasttvo Jul 12, 2022
7f72b20
minor fix
thomasttvo Jul 12, 2022
2fc6167
cancelled event not working
thomasttvo Jul 12, 2022
755ab9d
fixed cannot sync gradle on M1
thomasttvo Jul 13, 2022
0131c4f
directly link to local android module
thomasttvo Jul 13, 2022
6e137c4
fixed listeners not attached when JS reloads
thomasttvo Jul 13, 2022
0fbc93a
isDiscretionary works on android
thomasttvo Jul 15, 2022
9d3c3ae
upload 1 chunk at a time
thomasttvo Jul 15, 2022
612e332
fix maxRetries not available
thomasttvo Jul 15, 2022
a31b61f
organize
thomasttvo Aug 16, 2022
af7c89c
organize
thomasttvo Aug 17, 2022
2c52ab3
organize
thomasttvo Aug 17, 2022
aa8d111
ability to cancel uploads if network conditions no longer apply
thomasttvo Aug 17, 2022
9dece90
doc
thomasttvo Aug 17, 2022
c17d193
naming changes
thomasttvo Aug 17, 2022
89e8f31
semantics
thomasttvo Aug 17, 2022
b5fedc2
no more getFileInfo
thomasttvo Aug 17, 2022
6a95ba6
added missing initialization
thomasttvo Aug 18, 2022
6f3d33b
smart network handling
thomasttvo Aug 19, 2022
c90a29f
small changes
thomasttvo Aug 19, 2022
a1241d4
update gradle
thomasttvo Aug 19, 2022
0d1c260
small fix
thomasttvo Aug 19, 2022
a1aeac4
minor changes
thomasttvo Aug 19, 2022
0acad2a
simplify NetworkResolution.kt
thomasttvo Aug 19, 2022
274c0f4
fix connection not made
thomasttvo Aug 20, 2022
f00d64d
add a method to make it smart network resolution optional
thomasttvo Aug 22, 2022
a2262a2
removed unused
thomasttvo Nov 11, 2022
a20056d
removed smart network resolution as it confuses react-native's fetch
thomasttvo Nov 11, 2022
2401b8e
Restore used function in ios/VydiaRNFileUploader.m
elliottkember Nov 16, 2022
4bd9f8a
Merge pull request #1 from openspacelabs/next-gen
thomasttvo Nov 16, 2022
c9230d3
v6.6.0
elliottkember Nov 16, 2022
872cacd
fix coroutine usage and offload chunk calculation to client
thomasttvo Nov 16, 2022
6f026de
Restore used function in ios/VydiaRNFileUploader.m
elliottkember Nov 16, 2022
7cb2a65
Merge remote-tracking branch 'origin/master' into thomas/offload-chun…
thomasttvo Nov 17, 2022
e24bd1a
fix chunkPath, improved error logging
thomasttvo Nov 17, 2022
7984757
bump version
thomasttvo Nov 21, 2022
7846f53
Merge pull request #2 from openspacelabs/thomas/offload-chunk-calcula…
elliottkember Nov 23, 2022
e7d0d0d
iOS only
Mar 28, 2023
419a054
java
Mar 28, 2023
4d5c54a
isWififOnly -> wifiOnly
Mar 28, 2023
a684a91
Remove autocreated file
Mar 29, 2023
f802306
wifiUrlSession
Mar 29, 2023
65f35a1
Version bump
Mar 29, 2023
bf89b5e
Fix for discretionary
Mar 30, 2023
df24bfd
Merge pull request #3 from openspacelabs/elliott/discretionary-change…
elliottkember Apr 4, 2023
99b5d5a
ENG-14121 Android Worker (#4)
thomasttvo May 8, 2023
e2bc3c8
ENG-15361 Android Fixes (#5)
thomasttvo May 18, 2023
54ab7ac
Removed kotlin-android-extensions
AceNorth Jun 8, 2023
1e71b04
added comment
AceNorth Jun 8, 2023
05aeb72
Merge pull request #6 from openspacelabs/andy/removeDeprecatedKotlinLib
AceNorth Jun 8, 2023
29ef5a4
Fix "cancelled" emitted when an upload with the same ID is started (#7)
thomasttvo Oct 26, 2023
4ce3d88
bump
thomasttvo Oct 26, 2023
4ae0ba3
Fix generated type missing `undefined` in the union (#8)
thomasttvo Nov 13, 2023
4c3f4ef
sync kotlin and java version to 17
louis-openspace Feb 21, 2024
a4315d4
bump semver
louis-openspace Feb 27, 2024
df00071
Merge pull request #9 from openspacelabs/fix-kotlin-ver
louis-openspace Feb 27, 2024
f047dc9
fix
thomasttvo Mar 7, 2024
9594ecb
fix
thomasttvo Mar 7, 2024
572a929
fix
thomasttvo Mar 7, 2024
f296ecf
bump
thomasttvo Mar 7, 2024
e36adae
no longer require client to modify manifest
thomasttvo Mar 7, 2024
8f41527
Merge pull request #10 from openspacelabs/thomas/fix-upload-io-error
thomasttvo Mar 7, 2024
9c01e25
Update README.md
thomasttvo Aug 7, 2024
fd3cfd1
fix buildˆ
Sep 19, 2024
f8d5ac3
test server
Sep 19, 2024
2b7fc8e
Rename .java to .kt
Sep 19, 2024
e6b92d9
RN 0.75
Sep 20, 2024
e6123cd
functioning example
Sep 20, 2024
c965c5d
lock file
Sep 20, 2024
81f73d7
node
Sep 20, 2024
85e1aa7
Merge pull request #11 from openspacelabs/thomas/form-data
thomasttvo Sep 21, 2024
6a48204
fix
Sep 24, 2024
61d95f7
Merge pull request #13 from openspacelabs/thomas/fix-js-reload-crash
thomasttvo Sep 24, 2024
e6b3711
v7.5.2
Sep 24, 2024
53cf79d
Form data test case in example app (#12)
thomasttvo Feb 3, 2025
eebaf0e
Upgrade androidx.work:work-runtime-ktx:2.7.1 -> 2.8.1 (#15)
thomasttvo Oct 3, 2025
fe18031
removed (#16)
thomasttvo Oct 13, 2025
4317330
Some small improvements for the example app (#14)
thomasttvo Oct 13, 2025
c97c345
Ligher android uploader (#20)
thomasttvo Dec 12, 2025
09ce175
v8.0.0: reliable upload outcomes on a New Architecture TurboModule (#22)
dmurphy5 Aug 3, 2026
e3641cc
Add android.noNotification for silent uploads (#28)
elliottkember Aug 13, 2026
f3ea1e8
Cut unused API surface, make iOS startUpload idempotent (#30)
dmurphy5 Sep 1, 2026
5c5f0f5
One-time configure() for notification text (#31)
dmurphy5 Sep 1, 2026
c3f2f0c
v9.0.0: promote the merged chunked-upload stack to master (#40)
dmurphy5 Sep 3, 2026
fa02688
iOS: reject instead of crashing when an upload's file is missing (#48)
dmurphy5 Sep 29, 2026
2aae118
Stop the dataSync foreground service on Android 15 timeout (#50)
dhruv-dangi-openspace Sep 29, 2026
3f63c02
v10 slice 1: define()/mutate() JS layer, codegen spec, native stubs
dmurphy5 Sep 8, 2026
301f6f3
Address slice 1 review: per-id delivery order, cancelled ack, validation
dmurphy5 Sep 9, 2026
abd1929
Allow a descriptor with no body
dmurphy5 Sep 23, 2026
53a7596
Accept generated API types as vars and data
dmurphy5 Sep 23, 2026
57c51fe
Add an enqueue watchdog to mutate()
dmurphy5 Sep 23, 2026
605c5f3
Lock the interface: 1 MB vars cap, deliveries, response(raw, vars), n…
dmurphy5 Sep 24, 2026
9787b03
Pin the native contract after the slice review
dmurphy5 Sep 24, 2026
6328c83
Contract: cancel rejects E_STORAGE when the journal or store cannot b…
dmurphy5 Sep 24, 2026
c25b68a
Contract: a live entry's cancel succeeds once its outcome is journaled
dmurphy5 Oct 6, 2026
3ce0939
v10 slice 2: Android queue store, executor, and events
dmurphy5 Sep 24, 2026
1b58a52
Android: apply the native slices review
dmurphy5 Sep 24, 2026
e0fc5c4
Android test: clear the stale listener in the settle-vs-drain race test
dmurphy5 Sep 28, 2026
96bd7d6
Android: cancel resolves once its outcome is journaled
dmurphy5 Oct 6, 2026
760105f
v10 slice 3: iOS queue store, executor, and events
dmurphy5 Sep 24, 2026
747440f
iOS: apply the native slices review
dmurphy5 Sep 24, 2026
28290a3
iOS: cancel fails closed when the journal or store cannot be written
dmurphy5 Sep 24, 2026
4d6cd78
iOS: never crash when the session cannot open an upload's file
dmurphy5 Oct 6, 2026
bad621a
v10 slice 5: example app on v10, test seam, CI, docs, version 10.0.0
dmurphy5 Sep 24, 2026
6386ce3
Example app: refresh Podfile.lock for the podspec's public header
dmurphy5 Oct 6, 2026
a65de60
Per-request wifiOnly and key-scoped pause
dmurphy5 Sep 24, 2026
fd87855
Device script: add the dispatch latency step
dmurphy5 Sep 25, 2026
b3f8bb4
Docs: cancel resolves once its outcome is journaled
dmurphy5 Oct 6, 2026
1bd6893
Add ios.queueAllParts to create every part task at mutate() (#53)
elliottkember Oct 22, 2026
e364399
Release 10.1.0
elliottkember Oct 22, 2026
d3f38f3
Never leave an iOS upload at the system's discretion (#54)
elliottkember Oct 23, 2026
7a4b186
Release 11.0.0
elliottkember Oct 23, 2026
3741d9d
Batch part-task writes and land the #54 review fixes (#55)
elliottkember Oct 23, 2026
45495c8
Release 11.0.1
elliottkember Oct 23, 2026
9bb90a6
Sweep staged bodies no entry claims at iOS relaunch
thevwick Oct 25, 2026
fb1c9df
Merge the legacy Vydia line into the openspacelabs v11 line
thevwick Oct 26, 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
3 changes: 1 addition & 2 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
example/RNBackgroundExample/node_modules
example/RNBackgroundExample/e2e
example/
6 changes: 5 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
module.exports = {
root: true,
extends: '@react-native-community',
extends: '@react-native',
plugins: ['unused-imports'],
rules: {
'unused-imports/no-unused-imports': 'error',
},
};
50 changes: 25 additions & 25 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
## Objective \*
<!-- Thanks for submitting a pull request! We appreciate you spending the time to work on these changes. Please follow the template so that the reviewers can easily understand what the code changes affect -->

> _Briefly describe the purpose of this PR._
# Summary

## Details and Context \*
<!--
Explain the **motivation** for making this change: here are some points to help you:

> _List the major changes made in this PR, and add any other context or screenshots about the changes._
* What issues does the pull request solve? Please tag them so that they will get automatically closed once the PR is merged
* What is the feature? (if applicable)
* How did you implement the solution?
* What areas of the library does it impact?
-->

> _Insert ticket link here._
## Test Plan

> _Insert Loom video link here if available._
<!-- Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI. -->

## Pre-Submission Checklist \*
### What's required for testing (prerequisites)?

- [ ] I have reviewed all the changes one final time before opening this PR.
### What are the steps to reproduce (after prerequisites)?

## Tests
## Compatibility

- [ ] I have added automated tests for all new code introduced in this PR.
- [ ] I have not added automated tests, because... (explain below)
| OS | Implemented |
| ------- | :---------: |
| iOS | ✅❌ |
| Android | ✅❌ |

### Risks and uncertainty (optional)
## Checklist

- [ ] This PR doesn't introduce any new risks or uncertainties.
- [ ] This PR introduces new risks or uncertainties, because... (explain below)
<!-- Check completed item, when applicable, via: [X] -->

## Additional Information

- Feedback Ladder Reminder

- Mountain: Blocker & immediate action needed.
- Boulder: Blocker & requires action
- Pebble: Non-blocking, but requires future action (in either this or a future PR)
- Sand: Non-blocking, but is generally best practice
- Dust: Non-blocking comment

- [**Pull Request Standards**](https://sitemate.atlassian.net/wiki/spaces/ENG/pages/143458410/Branching+Pull+Requests+Code+Reviews#%E2%9C%A8--Pull-Requests)
- [ ] I have tested this on a device and a simulator
- [ ] I added the documentation in `README.md`
- [ ] I updated the typed files (TS and Flow)
- [ ] I've added Detox End-to-End Test(s)
- [ ] I've created a snack to demonstrate the changes: LINK HERE
75 changes: 0 additions & 75 deletions .github/workflows/android.yml

This file was deleted.

29 changes: 0 additions & 29 deletions .github/workflows/deploy-release.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .github/workflows/iOS.yml

This file was deleted.

85 changes: 71 additions & 14 deletions .github/workflows/node.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,81 @@
name: Node Environment
name: CI

on: [push, pull_request]

jobs:
node-lint-tests:
runs-on: ubuntu-22.04
checks:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')"

steps:
- name: checkout
uses: actions/checkout@v3
- name: checkout
uses: actions/checkout@v4

- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- name: setup node
uses: actions/setup-node@v4
with:
node-version: 20

- name: install node_modules
run: yarn install --frozen-lockfile
- name: install node_modules
run: |
yarn install --frozen-lockfile
yarn --cwd example/RNBGUExample install --frozen-lockfile

- name: node lint
run:
yarn lint:ci
- name: lint
run: yarn lint:ci

- name: typecheck
run: yarn typecheck

- name: js tests
run: yarn test

- name: setup java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17

- name: android unit tests
run: |
cd example/RNBGUExample/android
./gradlew :react-native-background-upload:testDebugUnitTest

# Host-side unit tests for the pure Swift half of the iOS module.
# They run on macOS with Xcode's Swift toolchain. ios/Package.swift needs
# swift-tools-version 5.9. The macos-15 image ships Xcode 16 or later
# (Swift 6 or later), which meets that.
#
# This job does not build the example app. Do that by hand before a
# release, because a simulator build is too slow for every push:
# cd example/RNBGUExample/ios && pod install
# xcodebuild -workspace RNBGUExample.xcworkspace -scheme RNBGUExample \
# -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' \
# -configuration Debug build
ios-host-tests:
runs-on: macos-15
timeout-minutes: 30
if: "!contains(github.event.head_commit.message, '[skip ci]')"

steps:
- name: checkout
uses: actions/checkout@v4

- name: swift version
id: swift
run: |
swift --version
echo "version=$(swift --version 2>&1 | head -n 1 | shasum | cut -c1-12)" >> "$GITHUB_OUTPUT"

- name: cache swift build
uses: actions/cache@v4
with:
path: ios/.build
key: swiftpm-${{ runner.os }}-${{ steps.swift.outputs.version }}-${{ hashFiles('ios/*.swift', 'ios/Tests/**/*.swift') }}
restore-keys: |
swiftpm-${{ runner.os }}-${{ steps.swift.outputs.version }}-

- name: ios host tests
run: |
cd ios
swift test
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# lib build
src/index.js

# VIM temporary files
*.swp

Expand Down
Loading
Loading