feat: Razorpay support#2037
Conversation
Greptile SummaryThis PR wires up Razorpay as a second payment path for paid plugins. On the native side it adds Confidence Score: 5/5Safe to merge; all remaining findings are P2 style/cleanup suggestions that do not affect correctness. The major issues flagged in previous review rounds (connection leak, filterState pagination not returned to JS, IAP failure swallowing Razorpay path, remotePlugin.owned not checked without an IAP product) are all addressed in this revision. The only new findings are a hardcoded temp filename (concurrent-install edge case) and inconsistent indentation — both P2 and non-blocking. src/lib/installPlugin.js (temp file race condition), src/pages/plugins/plugins.js (indentation inconsistency) Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[getOwned called] --> B[IAP path: iap.getPurchases]
B -->|success| C[Fetch each SKU from API]
B -->|failure| D[Log warning, continue]
C --> E[Add to owned list]
D --> F[Razorpay path: fetchPlugins owned=true]
E --> F
F -->|success| G[Merge with addedIds dedup]
F -->|failure| H[Log error]
G --> I[Render owned tab]
H --> I
J[installPlugin called] --> K{URL type?}
K -->|Acode registry or local| L[fsOperation.readFile directly]
K -->|Third-party URL| M[cordova.exec downloadPlugin]
M --> N[PluginRetriever writes ZIP to cache]
N --> O[fsOperation.readFile from cache file]
L --> P[JSZip.loadAsync]
O --> P
Reviews (7): Last reviewed commit: "fix: bug" | Re-trigger Greptile |
No description provided.