expo-iap 5.3.1 → 5.3.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/{CLAUDE.md → AGENTS.md} +1 -3
- package/CONTRIBUTING.md +5 -12
- package/README.md +2 -2
- package/android/src/main/java/expo/modules/iap/ExpoIapLog.kt +4 -0
- package/bun.lock +421 -1139
- package/ios/ExpoIapLog.swift +6 -6
- package/ios/onside/OnsideIapModule.swift +1 -1
- package/openiap-versions.json +1 -1
- package/osv-scanner.toml +9 -0
- package/package.json +8 -2
- package/plugin/build/withVega.js +10 -0
- package/plugin/src/withVega.ts +10 -0
- package/tests/ios/ExpoIapLogTests.swift +37 -0
package/{CLAUDE.md → AGENTS.md}
RENAMED
|
@@ -24,9 +24,7 @@
|
|
|
24
24
|
- See issue: [#168](https://github.com/hyochan/expo-iap/issues/168)
|
|
25
25
|
- This is kept at `13.4` for compatibility with affected Expo SDKs
|
|
26
26
|
- The actual iOS 15.0+ requirement is enforced at build time via @available annotations
|
|
27
|
-
- Users must follow the deployment target required by their Expo SDK. The
|
|
28
|
-
validated Expo SDK 57 example uses iOS 16.4; older supported SDKs must never
|
|
29
|
-
go below the module's iOS 15.0 runtime requirement.
|
|
27
|
+
- Users must follow the deployment target required by their Expo SDK. The validated Expo SDK 57 example uses iOS 16.4; older supported SDKs must never go below the module's iOS 15.0 runtime requirement.
|
|
30
28
|
|
|
31
29
|
**tvOS Exception**: tvOS platform version MUST be `16.0` (not `13.4`) because:
|
|
32
30
|
|
package/CONTRIBUTING.md
CHANGED
|
@@ -48,14 +48,12 @@ This project includes VSCode configurations for easier development:
|
|
|
48
48
|
1. **Install recommended extensions**: When you open the project in VSCode, you'll be prompted to install recommended extensions. Accept to install them.
|
|
49
49
|
|
|
50
50
|
1. **Use Debug Configurations**: Press `F5` or go to Run → Start Debugging and select:
|
|
51
|
-
|
|
52
51
|
- `Debug iOS (Expo)` - Runs the example app on iOS simulator
|
|
53
52
|
- `Debug Android (Expo)` - Runs the example app on Android emulator
|
|
54
53
|
- `iOS + Metro` - Starts Metro bundler and iOS app together
|
|
55
54
|
- `Android + Metro` - Starts Metro bundler and Android app together
|
|
56
55
|
|
|
57
56
|
1. **Use Tasks**: Press `Cmd+Shift+P` → `Tasks: Run Task` to access:
|
|
58
|
-
|
|
59
57
|
- `Start iOS Simulator` - Opens iOS Simulator
|
|
60
58
|
- `Start Android Emulator` - Starts Android emulator
|
|
61
59
|
- `Install Pods (iOS)` - Installs CocoaPods dependencies
|
|
@@ -207,7 +205,7 @@ bun run reset-project
|
|
|
207
205
|
|
|
208
206
|
### Code Conventions and Standards
|
|
209
207
|
|
|
210
|
-
For detailed code conventions, naming standards, and implementation guidelines, please refer to [
|
|
208
|
+
For detailed code conventions, naming standards, and implementation guidelines, please refer to [AGENTS.md](./AGENTS.md). This includes:
|
|
211
209
|
|
|
212
210
|
- Platform-specific naming conventions
|
|
213
211
|
- API method naming patterns
|
|
@@ -245,25 +243,21 @@ If the JSON file is missing or malformed, build scripts (Gradle, Podspec, the ty
|
|
|
245
243
|
### Development Workflow
|
|
246
244
|
|
|
247
245
|
1. **Before starting work**:
|
|
248
|
-
|
|
249
246
|
- Pull latest changes from main branch
|
|
250
247
|
- Create a feature branch: `git checkout -b feature/your-feature`
|
|
251
|
-
- Review [
|
|
248
|
+
- Review [AGENTS.md](./AGENTS.md) for coding standards
|
|
252
249
|
|
|
253
250
|
1. **During development**:
|
|
254
|
-
|
|
255
251
|
- Make changes to the library source code in `src/`
|
|
256
252
|
- Test changes in the example app
|
|
257
253
|
- Write/update tests as needed
|
|
258
254
|
- Keep commits atomic and well-described
|
|
259
255
|
|
|
260
256
|
1. **Before committing**:
|
|
261
|
-
|
|
262
|
-
- Follow the pre-commit checks outlined in [CLAUDE.md](./CLAUDE.md)
|
|
257
|
+
- Follow the pre-commit checks outlined in [AGENTS.md](./AGENTS.md)
|
|
263
258
|
- Ensure all checks pass
|
|
264
259
|
|
|
265
260
|
1. **Testing your changes**:
|
|
266
|
-
|
|
267
261
|
- The example app automatically uses the local library code
|
|
268
262
|
- Changes to `src/` will be reflected after reloading the app
|
|
269
263
|
- Test on both iOS and Android platforms when possible
|
|
@@ -277,13 +271,13 @@ For all code conventions including:
|
|
|
277
271
|
- API method naming patterns
|
|
278
272
|
- OpenIAP specification compliance
|
|
279
273
|
|
|
280
|
-
Please refer to [
|
|
274
|
+
Please refer to [AGENTS.md](./AGENTS.md).
|
|
281
275
|
|
|
282
276
|
### AI Development Tools
|
|
283
277
|
|
|
284
278
|
We provide configuration files for AI-powered development tools:
|
|
285
279
|
|
|
286
|
-
- `
|
|
280
|
+
- `AGENTS.md` - Shared guidelines for AI assistants
|
|
287
281
|
- `.cursorrules` - Rules for Cursor IDE
|
|
288
282
|
- `.copilot-instructions.md` - Instructions for GitHub Copilot
|
|
289
283
|
|
|
@@ -410,7 +404,6 @@ Closes #123
|
|
|
410
404
|
1. Commit your changes with a descriptive message
|
|
411
405
|
1. Push to your fork
|
|
412
406
|
1. Create a Pull Request with:
|
|
413
|
-
|
|
414
407
|
- Clear description of changes
|
|
415
408
|
- Any breaking changes noted
|
|
416
409
|
- Tests for new functionality
|
package/README.md
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
[](https://npmjs.org/package/expo-iap) [](https://npmjs.org/package/expo-iap) [](https://openiap.dev) [](https://github.com/hyodotdev/openiap/actions/workflows/ci-expo-iap.yml?query=branch%3Amain) [](https://app.codecov.io/gh/hyodotdev/openiap/tree/main/libraries/expo-iap) [](https://app.fossa.com/projects/git%2Bgithub.com%2Fhyochan%2Fexpo-iap?ref=badge_shield&issueType=license)
|
|
7
7
|
|
|
8
|
-
Expo IAP is a powerful in-app purchase solution for Expo and React Native applications that conforms to the
|
|
8
|
+
Expo IAP is a powerful in-app purchase solution for Expo and React Native applications that conforms to the OpenIAP specification. It provides a unified API for handling in-app purchases across iOS and Android platforms with comprehensive error handling and modern TypeScript support.
|
|
9
9
|
|
|
10
10
|
If you're shipping an app with expo-iap, we’d love to hear about it—please share your product and feedback in [expo-iap Q&A Discussions](https://github.com/hyodotdev/openiap/discussions/categories/expo-iap). Community stories help us keep improving the ecosystem.
|
|
11
11
|
|
|
12
|
-
<a href="https://openiap.dev"><img src="https://raw.githubusercontent.com/hyodotdev/openiap/main/logo.webp" alt="
|
|
12
|
+
<a href="https://openiap.dev"><img src="https://raw.githubusercontent.com/hyodotdev/openiap/main/logo.webp" alt="OpenIAP" height="40" /></a>
|
|
13
13
|
|
|
14
14
|
</div>
|
|
15
15
|
|
|
@@ -110,6 +110,10 @@ internal object ExpoIapLog {
|
|
|
110
110
|
val sanitized = linkedMapOf<String, Any?>()
|
|
111
111
|
for ((rawKey, rawValue) in source) {
|
|
112
112
|
val key = rawKey as? String ?: continue
|
|
113
|
+
if (rawValue == null || rawValue === JSONObject.NULL) {
|
|
114
|
+
sanitized[key] = JSONObject.NULL
|
|
115
|
+
continue
|
|
116
|
+
}
|
|
113
117
|
if (isSensitiveKey(key)) {
|
|
114
118
|
sanitized[key] = "hidden"
|
|
115
119
|
continue
|