react-native-stallion 2.4.0-alpha.4 β†’ 2.4.0-alpha.6

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/README.md CHANGED
@@ -1,76 +1,222 @@
1
1
  [![stallionBanner](https://assets.stalliontech.io/stallion_logo.png)](https://stalliontech.io/)
2
2
 
3
- ### πŸ‘‰ [Sign up with Stallion](https://console.stalliontech.io/) to start shipping OTA updates today
4
-
5
- # Stallion – React Native OTA Updates Made Simple
3
+ # React Native Stallion – Best CodePush Alternative & Expo Updates Replacement
6
4
 
7
5
  [![npm Version](https://img.shields.io/npm/v/react-native-stallion.svg)](https://www.npmjs.com/package/react-native-stallion)
8
6
  [![License](https://img.shields.io/npm/l/react-native-stallion.svg)](https://www.npmjs.com/package/react-native-stallion)
9
7
 
10
- **Stallion** is a **fully managed OTA update and testing framework for React Native apps**, built to streamline how developers test and deploy JavaScript bundle updates. With Stallion, you can publish updates instantly without rebuilding your native app or going through app store approvals.
8
+ **React Native Stallion** is the modern **CodePush alternative** and **App Center replacement** for React Native apps. Ship app updates instantly with **98% smaller patches**β€”no App Store delays. The best **Expo Updates alternative** with advanced OTA controls, patch-based updates, and enterprise-grade security.
9
+
10
+ πŸ‘‰ **[Sign up with Stallion](https://console.stalliontech.io/)** to start shipping OTA updates today
11
11
 
12
12
  ---
13
13
 
14
- ## πŸš€ Why Use Stallion?
14
+ ## Why Choose React Native Stallion?
15
15
 
16
- - βœ… **Built-in Testing Framework** to validate updates before production
17
- - πŸ” **Switch Between App Versions** without rebuilding native code
18
- - πŸ“¦ **Publish Bundles Instantly** using Stallion CLI
19
- - πŸ“² **Apply Updates In-App** using the Stallion SDK
20
- - πŸ”„ **Manual + Automatic Rollbacks** with real-time rollback insights
21
- - πŸ“Š **Detailed Analytics** for update adoption and performance tracking
22
- - 🏷️ **Extensive Free Plan** for indie devs and small teams
23
- - βœ… **Production-Ready** and trusted by teams shipping millions of updates
16
+ React Native Stallion is the **best CodePush alternative** for teams that need modern OTA update capabilities:
17
+
18
+ - **98% Smaller Patch Updates** – Binary-safe differential updates, not full bundles
19
+ - **Automatic Rollback & Crash Recovery** – Instant rollback on crashes or failures
20
+ - **Enterprise-Grade Security** – Cryptographic bundle signing with customer keys
21
+ - **Zero App Store Delays** – Ship JavaScript updates instantly, no review needed
22
+ - **CodePush Compatible** – Easy migration from CodePush or App Center
23
+ - **Advanced Analytics** – Release-wise adoption and failure tracking
24
+ - **On-Premise Option** – Self-hosted deployment for enterprise security
25
+ - **Free Tier Available** – Perfect for indie devs and small teams
24
26
 
25
27
  ---
26
28
 
27
- ## πŸ“¦ SDK Installation
29
+ ## Quick Start
28
30
 
29
- ### Using npm
31
+ ### Installation
30
32
 
31
33
  ```bash
32
- npm install --save react-native-stallion
34
+ npm install react-native-stallion@latest
35
+ ```
36
+
37
+ ### Basic Usage
38
+
39
+ ```javascript
40
+ import { useStallionUpdate, restart } from 'react-native-stallion'
41
+
42
+ const UpdateModal = () => {
43
+ const { isRestartRequired, newReleaseBundle } = useStallionUpdate()
44
+
45
+ if (!isRestartRequired) return null
46
+
47
+ return (
48
+ <Modal visible>
49
+ <Text>{newReleaseBundle?.releaseNote || 'Update ready!'}</Text>
50
+ <Button onPress={restart} title="Restart App" />
51
+ </Modal>
52
+ )
53
+ }
33
54
  ```
34
55
 
35
- ### Using yarn
56
+ ---
57
+
58
+ ## Key Features
59
+
60
+ ### Patch Updates (98% Smaller)
61
+
62
+ React Native Stallion uses **binary-safe differential updates** instead of full bundles. Ship only what changedβ€”tiny patches that are cryptographically verified and applied atomically.
63
+
64
+ - **Differential/Patch Updates** – Binary-safe diffs, 98% smaller than full bundles
65
+ - **Bandwidth Efficiency** – Minimal data transfer for faster installs
66
+ - **Instant Updates** – Users never notice the update process
67
+
68
+ ### Automatic Rollback & Crash Recovery
69
+
70
+ Protect your users with automatic rollback capabilities:
71
+
72
+ - **Automatic Rollback** – Instant rollback on crashes or failures
73
+ - **Crash Loop Prevention** – Prevents bad updates from breaking your app
74
+ - **Manual Rollback** – Device-level revert for installed updates
75
+ - **Rollback Analytics** – Track rollback rates and reasons
76
+
77
+ ### Enterprise Security
78
+
79
+ Enterprise-grade security features for production apps:
80
+
81
+ - **Bundle Signing** – Cryptographic verification with customer-managed keys
82
+ - **Integrity Verification** – SHA-256 checksums for tamper-proof updates
83
+ - **On-Premise Hosting** – Deploy behind your firewall with full control
84
+ - **GDPR & Regional Compliance** – Data residency options
85
+
86
+ ### Advanced OTA Controls
87
+
88
+ Granular control over update deployment:
89
+
90
+ - **Mandatory & Optional Updates** – CodePush-style update flows
91
+ - **Phased Rollout** – Gradual deployment with percentage controls
92
+ - **Custom Update UI** – Build custom modals, banners, or prompts
93
+ - **Update Strategy Control** – Granular install strategies
94
+ - **Background Updates** – Automatic checks when app moves to foreground
95
+
96
+ ---
97
+
98
+ ## πŸ”§ Installation & Setup
99
+
100
+ ### Step 1: Install the Package
36
101
 
37
102
  ```bash
38
- yarn add react-native-stallion
103
+ npm install react-native-stallion@latest
104
+ # or
105
+ yarn add react-native-stallion@latest
106
+ ```
107
+
108
+ ### Step 2: Native Integration
109
+
110
+ For complete setup instructions, native integration steps, and environment configurations, visit:
111
+
112
+ **πŸ“š [Full Installation Guide](https://learn.stalliontech.io/docs/sdk/installation)**
113
+
114
+ ### Step 3: Configure Stallion
115
+
116
+ ```javascript
117
+ import { withStallion } from 'react-native-stallion'
118
+
119
+ export default withStallion(RootComponent);
39
120
  ```
40
121
 
41
122
  ---
42
123
 
43
- ## πŸ“š Full Installation Guide
124
+ ## Documentation & Resources
125
+
126
+ ### Complete Documentation
127
+
128
+ - **[Full Documentation](https://learn.stalliontech.io)** – Complete API reference and guides
129
+ - **[SDK Installation](https://learn.stalliontech.io/docs/sdk/installation)** – Step-by-step setup
130
+ - **[Bundle Signing](https://learn.stalliontech.io/docs/bundle-signing)** – Security best practices
131
+ - **[Custom Update UI](https://learn.stalliontech.io/blogs/react-native-over-the-air-updates-with-custom-ui)** – Build custom flows
132
+ - **[CI/CD Integration](https://learn.stalliontech.io/docs/release-automation)** – Automate deployments
133
+
134
+ ### Migration Guides
135
+
136
+ - **[CodePush Migration](https://learn.stalliontech.io/docs/migrating-from-codepush)** – Migrate from CodePush
137
+ - **[App Center Migration](https://stalliontech.io/app-center-alternative)** – Replace App Center
138
+ - **[Expo Updates Migration](https://stalliontech.io/expo-eas-update)** – Switch from Expo Updates
139
+
140
+ ---
141
+
142
+ ## Use Cases
143
+
144
+ ### CodePush Alternative
145
+
146
+ React Native Stallion is the **best CodePush alternative** for teams migrating from deprecated CodePush or App Center:
147
+
148
+ - βœ… CodePush-compatible API
149
+ - βœ… Patch updates (CodePush doesn't support)
150
+ - βœ… Active development and support
151
+ - βœ… Modern features and security
152
+
153
+ ### Expo Updates Replacement
154
+
155
+ The best **Expo Updates alternative** with more features:
156
+
157
+ - βœ… Patch updates (98% smaller)
158
+ - βœ… Advanced OTA controls
159
+ - βœ… More affordable pricing
160
+ - βœ… Works with Expo SDK 52+ and bare React Native
161
+
162
+ ### Enterprise OTA Updates
163
+
164
+ Enterprise-grade OTA update solution:
165
+
166
+ - βœ… On-premise hosting
167
+ - βœ… SOC 2 compliant
168
+ - βœ… Bundle signing with customer keys
169
+ - βœ… Regional compliance options
170
+
171
+ ---
172
+
173
+ ## Security Features
44
174
 
45
- For complete setup instructions, native integration steps, and environment configurations, visit:
46
- **https://learn.stalliontech.io/docs/sdk/installation**
175
+ - **Cryptographic Bundle Signing** – Customer-managed keys for tamper-proof updates
176
+ - **SHA-256 Integrity Verification** – Automatic checksum validation
177
+ - **Automatic Crash Detection** – Instant rollback on crashes
178
+ - **On-Premise Deployment** – Full infrastructure control
179
+ - **Audit Logging** – Complete audit trails for compliance
47
180
 
48
181
  ---
49
182
 
50
- ## πŸ“– Documentation
183
+ ## Enterprise & On-Premise
184
+
185
+ ### On-Premise Hosting
186
+
187
+ Take full control with self-hosted deployment:
188
+
189
+ - **Enterprise-Grade Security** – Behind your firewall
190
+ - **Complete Infrastructure Control** – Your data centers
191
+ - **Regional Compliance** – GDPR & data residency
192
+ - **Seamless CI/CD** – REST APIs and webhooks
193
+ - **Zero Vendor Lock-in** – Full access to logs and metrics
51
194
 
52
- For all usage instructions, advanced features, API references, and best practices:
53
- **https://learn.stalliontech.io**
195
+ **[Contact sales for on-premise hosting](https://stalliontech.io/)**
54
196
 
55
197
  ---
56
198
 
57
- ## πŸ™Œ Contributing
199
+ ## Contributing
58
200
 
59
- Please see the [CONTRIBUTING.md](./CONTRIBUTING.md) file to get started with contributing to the codebase.
201
+ We welcome contributions! Please see the [CONTRIBUTING.md](./CONTRIBUTING.md) file to get started.
60
202
 
61
203
  ---
62
204
 
63
- ## πŸ› Open Issues
205
+ ## Issues & Support
64
206
 
65
- Explore [open issues](https://github.com/stallion-tech/react-native-stallion/issues) to see ongoing discussions or report bugs.
207
+ - **[Open Issues](https://github.com/stallion-tech/react-native-stallion/issues)** – Report bugs or request features
208
+ - **[Documentation](https://learn.stalliontech.io)** – Complete guides and API reference
209
+ - **[Contact Support](https://stalliontech.io/)** – Get help from our team
66
210
 
67
211
  ---
68
212
 
69
- ## 🀝 Code of Conduct
213
+ ## πŸ”— Links
70
214
 
71
- We ask all contributors to follow our [Code of Conduct](./CODE_OF_CONDUCT.md).
215
+ - **Website:** [https://stalliontech.io](https://stalliontech.io)
216
+ - **Documentation:** [https://learn.stalliontech.io](https://learn.stalliontech.io)
217
+ - **Console:** [https://console.stalliontech.io](https://console.stalliontech.io)
218
+ - **NPM Package:** [https://www.npmjs.com/package/react-native-stallion](https://www.npmjs.com/package/react-native-stallion)
72
219
 
73
220
  ---
74
221
 
75
- > **Stallion is the fastest, safest way to manage React Native OTA updatesβ€”built for modern teams.**
76
- > Learn more at: **https://stalliontech.io**
222
+ > **React Native Stallion** – The fastest, safest way to manage React Native OTA updates. The best **CodePush alternative** and **Expo Updates replacement** with patch-based updates, enterprise security, and 98% smaller deployments.
@@ -64,3 +64,7 @@ target_include_directories(
64
64
  set_target_properties(stallion-crash PROPERTIES
65
65
  LINK_FLAGS "-Wl,-z,max-page-size=16384"
66
66
  )
67
+
68
+ set_target_properties(stallion-bspatch PROPERTIES
69
+ LINK_FLAGS "-Wl,-z,max-page-size=16384"
70
+ )
@@ -183,6 +183,15 @@ public class StallionModule extends ReactContextBaseJavaModule implements Lifecy
183
183
  ProcessPhoenix.triggerRebirth(getReactApplicationContext());
184
184
  }
185
185
 
186
+ @ReactMethod(isBlockingSynchronousMethod = true)
187
+ public String getActiveReleaseHash() {
188
+ try {
189
+ return stallionStateManager.stallionMeta.getActiveReleaseHash();
190
+ } catch (Exception e) {
191
+ return "";
192
+ }
193
+ }
194
+
186
195
  @ReactMethod
187
196
  public void addListener(String eventName) {
188
197
  // No-op: required for RN event emitter contract
@@ -1,5 +1,7 @@
1
1
  #import <React/RCTBridgeModule.h>
2
2
  #import <React/RCTEventEmitter.h>
3
+ #import "StallionStateManager.h"
4
+ #import "StallionMeta.h"
3
5
 
4
6
  @interface RCT_EXTERN_MODULE(Stallion, NSObject)
5
7
 
@@ -40,3 +42,23 @@ RCT_EXTERN_METHOD(restart)
40
42
  }
41
43
 
42
44
  @end
45
+
46
+ // Forward declare the class (implemented in Swift)
47
+ @class Stallion;
48
+
49
+ @interface Stallion (Sync)
50
+ @end
51
+
52
+ @implementation Stallion (Sync)
53
+
54
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getActiveReleaseHash)
55
+ {
56
+ StallionStateManager *stateManager = [StallionStateManager sharedInstance];
57
+ if (stateManager && stateManager.stallionMeta) {
58
+ NSString *hash = [stateManager.stallionMeta getActiveReleaseHash];
59
+ return hash ? hash : @"";
60
+ }
61
+ return @"";
62
+ }
63
+
64
+ @end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-stallion",
3
- "version": "2.4.0-alpha.4",
3
+ "version": "2.4.0-alpha.6",
4
4
  "description": "Offical React Native SDK for Stallion",
5
5
  "main": "index",
6
6
  "types": "types/index.d.ts",
package/src/index.js CHANGED
@@ -8,6 +8,7 @@ import useStallionModalNoop from './noop/useStallionModal';
8
8
  import withStallionMain from './main/utils/withStallion';
9
9
  import useStallionModalMain from './main/utils/useStallionModal';
10
10
  import { stallionEventEmitter } from './main/utils/StallionEventEmitter';
11
+ import { getActiveReleaseHashNative } from './main/utils/StallionNativeUtils';
11
12
  export let withStallion;
12
13
  export let useStallionModal;
13
14
  if (StallionNativeModule !== null && StallionNativeModule !== void 0 && StallionNativeModule.getStallionConfig) {
@@ -22,4 +23,5 @@ export { sync, restart } from './main/utils/StallionNativeUtils';
22
23
  export { useStallionUpdate } from './main/utils/useStallionUpdate';
23
24
  export const addEventListener = stallionEventEmitter.addEventListener.bind(stallionEventEmitter);
24
25
  export const removeEventListener = stallionEventEmitter.removeEventListener.bind(stallionEventEmitter);
26
+ export const ACTIVE_RELEASE_HASH = getActiveReleaseHashNative();
25
27
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["StallionNativeModule","STALLION_DISABLED_ERROR","withStallionNoop","useStallionModalNoop","withStallionMain","useStallionModalMain","stallionEventEmitter","withStallion","useStallionModal","getStallionConfig","console","warn","sync","restart","useStallionUpdate","addEventListener","bind","removeEventListener"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,oBAAoB,IACzBC,uBAAuB,QAClB,wBAAwB;;AAE/B;AACA,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,OAAOC,oBAAoB,MAAM,yBAAyB;;AAE1D;AACA,OAAOC,gBAAgB,MAAM,2BAA2B;AACxD,OAAOC,oBAAoB,MAAM,+BAA+B;AAGhE,SAASC,oBAAoB,QAAQ,mCAAmC;AAExE,OAAO,IAAIC,YAA2B;AACtC,OAAO,IAAIC,gBAAyC;AAEpD,IAAIR,oBAAoB,aAApBA,oBAAoB,eAApBA,oBAAoB,CAAES,iBAAiB,EAAE;EAC3CF,YAAY,GAAGH,gBAAgB;EAC/BI,gBAAgB,GAAGH,oBAAoB;AACzC,CAAC,MAAM;EACLK,OAAO,CAACC,IAAI,CAACV,uBAAuB,CAAC;EACrCM,YAAY,GAAGL,gBAAgB;EAC/BM,gBAAgB,GAAGL,oBAAoB;AACzC;AAEA,SAASS,IAAI,EAAEC,OAAO,QAAQ,kCAAkC;AAChE,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,OAAO,MAAMC,gBAAgB,GAC3BT,oBAAoB,CAACS,gBAAgB,CAACC,IAAI,CAACV,oBAAoB,CAAC;AAClE,OAAO,MAAMW,mBAAmB,GAC9BX,oBAAoB,CAACW,mBAAmB,CAACD,IAAI,CAACV,oBAAoB,CAAC"}
1
+ {"version":3,"names":["StallionNativeModule","STALLION_DISABLED_ERROR","withStallionNoop","useStallionModalNoop","withStallionMain","useStallionModalMain","stallionEventEmitter","getActiveReleaseHashNative","withStallion","useStallionModal","getStallionConfig","console","warn","sync","restart","useStallionUpdate","addEventListener","bind","removeEventListener","ACTIVE_RELEASE_HASH"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,oBAAoB,IACzBC,uBAAuB,QAClB,wBAAwB;;AAE/B;AACA,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,OAAOC,oBAAoB,MAAM,yBAAyB;;AAE1D;AACA,OAAOC,gBAAgB,MAAM,2BAA2B;AACxD,OAAOC,oBAAoB,MAAM,+BAA+B;AAGhE,SAASC,oBAAoB,QAAQ,mCAAmC;AACxE,SAASC,0BAA0B,QAAQ,kCAAkC;AAE7E,OAAO,IAAIC,YAA2B;AACtC,OAAO,IAAIC,gBAAyC;AAEpD,IAAIT,oBAAoB,aAApBA,oBAAoB,eAApBA,oBAAoB,CAAEU,iBAAiB,EAAE;EAC3CF,YAAY,GAAGJ,gBAAgB;EAC/BK,gBAAgB,GAAGJ,oBAAoB;AACzC,CAAC,MAAM;EACLM,OAAO,CAACC,IAAI,CAACX,uBAAuB,CAAC;EACrCO,YAAY,GAAGN,gBAAgB;EAC/BO,gBAAgB,GAAGN,oBAAoB;AACzC;AAEA,SAASU,IAAI,EAAEC,OAAO,QAAQ,kCAAkC;AAChE,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,OAAO,MAAMC,gBAAgB,GAC3BV,oBAAoB,CAACU,gBAAgB,CAACC,IAAI,CAACX,oBAAoB,CAAC;AAClE,OAAO,MAAMY,mBAAmB,GAC9BZ,oBAAoB,CAACY,mBAAmB,CAACD,IAAI,CAACX,oBAAoB,CAAC;AAErE,OAAO,MAAMa,mBAAmB,GAAGZ,0BAA0B,CAAC,CAAC"}
@@ -36,4 +36,7 @@ export const restart = () => {
36
36
  var _StallionNativeModule;
37
37
  StallionNativeModule === null || StallionNativeModule === void 0 ? void 0 : (_StallionNativeModule = StallionNativeModule.restart) === null || _StallionNativeModule === void 0 ? void 0 : _StallionNativeModule.call(StallionNativeModule);
38
38
  };
39
+ export const getActiveReleaseHashNative = () => {
40
+ return (StallionNativeModule === null || StallionNativeModule === void 0 ? void 0 : StallionNativeModule.getActiveReleaseHash()) || null;
41
+ };
39
42
  //# sourceMappingURL=StallionNativeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StallionNativeModule","setSdkTokenNative","updateSdkToken","getStallionMetaNative","Promise","resolve","reject","getStallionMeta","then","metaString","JSON","parse","_","catch","getStallionConfigNative","getStallionConfig","configString","toggleStallionSwitchNative","toggleStallionSwitch","downloadBundleNative","downloadStageBundle","onLaunchNative","onLaunch","sync","popEventsNative","popEvents","acknowledgeEventsNative","acknowledgeEvents","restart","_StallionNativeModule","call"],"sourceRoot":"../../../../src","sources":["main/utils/StallionNativeUtils.ts"],"mappings":"AAAA,OAAOA,oBAAoB,MAAM,4BAA4B;AAW7D,OAAO,MAAMC,iBAAqC,GAChDD,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEE,cAAc;AAEtC,OAAO,MAAMC,qBAA6C,GAAGA,CAAA,KAAM;EACjE,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEO,eAAe,CAAC,CAAC,CACpCC,IAAI,CAAEC,UAAkB,IAAK;MAC5B,IAAI;QACFJ,OAAO,CAACK,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAC;MACjC,CAAC,CAAC,OAAOG,CAAC,EAAE;QACVN,MAAM,CAAC,qBAAqB,CAAC;MAC/B;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACXP,MAAM,CAAC,6BAA6B,CAAC;IACvC,CAAC,CAAC;EACN,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMQ,uBAAiD,GAAGA,CAAA,KAAM;EACrE,OAAO,IAAIV,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEe,iBAAiB,CAAC,CAAC,CACtCP,IAAI,CAAEQ,YAAoB,IAAK;MAC9B,IAAI;QACFX,OAAO,CAACK,IAAI,CAACC,KAAK,CAACK,YAAY,CAAC,CAAC;MACnC,CAAC,CAAC,OAAOJ,CAAC,EAAE;QACVN,MAAM,CAAC,uBAAuB,CAAC;MACjC;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACXP,MAAM,CAAC,+BAA+B,CAAC;IACzC,CAAC,CAAC;EACN,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMW,0BAAuD,GAClEjB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEkB,oBAAoB;AAE5C,OAAO,MAAMC,oBAA2C,GACtDnB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEoB,mBAAmB;AAE3C,OAAO,MAAMC,cAAqC,GAChDrB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEsB,QAAQ;AAEhC,OAAO,MAAMC,IAAgB,GAAGvB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEuB,IAAI;AAE1D,OAAO,MAAMC,eAAsC,GACjDxB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEyB,SAAS;AAEjC,OAAO,MAAMC,uBAA8D,GACzE1B,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAE2B,iBAAiB;AAEzC,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EAAA,IAAAC,qBAAA;EAC3B7B,oBAAoB,aAApBA,oBAAoB,wBAAA6B,qBAAA,GAApB7B,oBAAoB,CAAE4B,OAAO,cAAAC,qBAAA,uBAA7BA,qBAAA,CAAAC,IAAA,CAAA9B,oBAAgC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"names":["StallionNativeModule","setSdkTokenNative","updateSdkToken","getStallionMetaNative","Promise","resolve","reject","getStallionMeta","then","metaString","JSON","parse","_","catch","getStallionConfigNative","getStallionConfig","configString","toggleStallionSwitchNative","toggleStallionSwitch","downloadBundleNative","downloadStageBundle","onLaunchNative","onLaunch","sync","popEventsNative","popEvents","acknowledgeEventsNative","acknowledgeEvents","restart","_StallionNativeModule","call","getActiveReleaseHashNative","getActiveReleaseHash"],"sourceRoot":"../../../../src","sources":["main/utils/StallionNativeUtils.ts"],"mappings":"AAAA,OAAOA,oBAAoB,MAAM,4BAA4B;AAY7D,OAAO,MAAMC,iBAAqC,GAChDD,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEE,cAAc;AAEtC,OAAO,MAAMC,qBAA6C,GAAGA,CAAA,KAAM;EACjE,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEO,eAAe,CAAC,CAAC,CACpCC,IAAI,CAAEC,UAAkB,IAAK;MAC5B,IAAI;QACFJ,OAAO,CAACK,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAC;MACjC,CAAC,CAAC,OAAOG,CAAC,EAAE;QACVN,MAAM,CAAC,qBAAqB,CAAC;MAC/B;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACXP,MAAM,CAAC,6BAA6B,CAAC;IACvC,CAAC,CAAC;EACN,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMQ,uBAAiD,GAAGA,CAAA,KAAM;EACrE,OAAO,IAAIV,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEe,iBAAiB,CAAC,CAAC,CACtCP,IAAI,CAAEQ,YAAoB,IAAK;MAC9B,IAAI;QACFX,OAAO,CAACK,IAAI,CAACC,KAAK,CAACK,YAAY,CAAC,CAAC;MACnC,CAAC,CAAC,OAAOJ,CAAC,EAAE;QACVN,MAAM,CAAC,uBAAuB,CAAC;MACjC;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACXP,MAAM,CAAC,+BAA+B,CAAC;IACzC,CAAC,CAAC;EACN,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMW,0BAAuD,GAClEjB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEkB,oBAAoB;AAE5C,OAAO,MAAMC,oBAA2C,GACtDnB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEoB,mBAAmB;AAE3C,OAAO,MAAMC,cAAqC,GAChDrB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEsB,QAAQ;AAEhC,OAAO,MAAMC,IAAgB,GAAGvB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEuB,IAAI;AAE1D,OAAO,MAAMC,eAAsC,GACjDxB,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEyB,SAAS;AAEjC,OAAO,MAAMC,uBAA8D,GACzE1B,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAE2B,iBAAiB;AAEzC,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EAAA,IAAAC,qBAAA;EAC3B7B,oBAAoB,aAApBA,oBAAoB,wBAAA6B,qBAAA,GAApB7B,oBAAoB,CAAE4B,OAAO,cAAAC,qBAAA,uBAA7BA,qBAAA,CAAAC,IAAA,CAAA9B,oBAAgC,CAAC;AACnC,CAAC;AAED,OAAO,MAAM+B,0BAAuD,GAAGA,CAAA,KAAM;EAC3E,OAAO,CAAA/B,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEgC,oBAAoB,CAAC,CAAC,KAAI,IAAI;AAC7D,CAAC"}
package/types/index.d.ts CHANGED
@@ -5,4 +5,5 @@ export { sync, restart } from './main/utils/StallionNativeUtils';
5
5
  export { useStallionUpdate } from './main/utils/useStallionUpdate';
6
6
  export declare const addEventListener: (listener: (data?: import("./main/state/useStallionEvents").IStallionNativeEventData | undefined) => void) => void;
7
7
  export declare const removeEventListener: (listenerToRemove: (data?: import("./main/state/useStallionEvents").IStallionNativeEventData | undefined) => void) => void;
8
+ export declare const ACTIVE_RELEASE_HASH: string | null;
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGvE,eAAO,IAAI,YAAY,EAAE,aAAa,CAAC;AACvC,eAAO,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,eAAO,MAAM,gBAAgB,oHACqC,CAAC;AACnE,eAAO,MAAM,mBAAmB,4HACqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIvE,eAAO,IAAI,YAAY,EAAE,aAAa,CAAC;AACvC,eAAO,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,eAAO,MAAM,gBAAgB,oHACqC,CAAC;AACnE,eAAO,MAAM,mBAAmB,4HACqC,CAAC;AAEtE,eAAO,MAAM,mBAAmB,eAA+B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { TDownloadBundleNative, TSetSdkTokenNative, TGetStallionMetaNative, TToggleStallionSwitchNative, TOnLaunchBundleNative, TGetStallionConfigNative } from 'src/types/utils.types';
1
+ import { TDownloadBundleNative, TSetSdkTokenNative, TGetStallionMetaNative, TToggleStallionSwitchNative, TOnLaunchBundleNative, TGetStallionConfigNative, TGetActiveReleaseHashNative } from 'src/types/utils.types';
2
2
  export declare const setSdkTokenNative: TSetSdkTokenNative;
3
3
  export declare const getStallionMetaNative: TGetStallionMetaNative;
4
4
  export declare const getStallionConfigNative: TGetStallionConfigNative;
@@ -9,4 +9,5 @@ export declare const sync: () => void;
9
9
  export declare const popEventsNative: () => Promise<string>;
10
10
  export declare const acknowledgeEventsNative: (eventIds: string) => Promise<string>;
11
11
  export declare const restart: () => void;
12
+ export declare const getActiveReleaseHashNative: TGetActiveReleaseHashNative;
12
13
  //# sourceMappingURL=StallionNativeUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StallionNativeUtils.d.ts","sourceRoot":"","sources":["../../../../src/main/utils/StallionNativeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,iBAAiB,EAAE,kBACM,CAAC;AAEvC,eAAO,MAAM,qBAAqB,EAAE,sBAcnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,wBAcrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,2BACG,CAAC;AAE7C,eAAO,MAAM,oBAAoB,EAAE,qBACQ,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,qBACG,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,MAAM,IAAiC,CAAC;AAE3D,eAAO,MAAM,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CACjB,CAAC;AAElC,eAAO,MAAM,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CACjC,CAAC;AAE1C,eAAO,MAAM,OAAO,YAEnB,CAAC"}
1
+ {"version":3,"file":"StallionNativeUtils.d.ts","sourceRoot":"","sources":["../../../../src/main/utils/StallionNativeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,iBAAiB,EAAE,kBACM,CAAC;AAEvC,eAAO,MAAM,qBAAqB,EAAE,sBAcnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,wBAcrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,2BACG,CAAC;AAE7C,eAAO,MAAM,oBAAoB,EAAE,qBACQ,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,qBACG,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,MAAM,IAAiC,CAAC;AAE3D,eAAO,MAAM,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CACjB,CAAC;AAElC,eAAO,MAAM,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CACjC,CAAC;AAE1C,eAAO,MAAM,OAAO,YAEnB,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,2BAExC,CAAC"}
@@ -24,6 +24,7 @@ export type TGetStallionConfigNative = () => Promise<IStallionConfigJson>;
24
24
  export type TToggleStallionSwitchNative = (switchState: SWITCH_STATES) => Promise<string>;
25
25
  export type TDownloadBundleNative = (bundleInfo: IBundleInfo) => Promise<string>;
26
26
  export type TOnLaunchBundleNative = (stallionInitParams: string) => void;
27
+ export type TGetActiveReleaseHashNative = () => string | null;
27
28
  export interface IUseStallionUpdate {
28
29
  isRestartRequired: boolean;
29
30
  currentlyRunningBundle: IUpdateMeta | null;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../src/types/utils.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;CAAG;AAEvC,MAAM,MAAM,aAAa,GAAG,CAC1B,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,SAAS,CAAC,EAAE,mBAAmB,KAC5B,KAAK,CAAC,aAAa,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAC7B,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAE1E,MAAM,MAAM,2BAA2B,GAAG,CACxC,WAAW,EAAE,aAAa,KACvB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG,CAClC,UAAU,EAAE,WAAW,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;CACtC"}
1
+ {"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../src/types/utils.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;CAAG;AAEvC,MAAM,MAAM,aAAa,GAAG,CAC1B,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,SAAS,CAAC,EAAE,mBAAmB,KAC5B,KAAK,CAAC,aAAa,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAC7B,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAE1E,MAAM,MAAM,2BAA2B,GAAG,CACxC,WAAW,EAAE,aAAa,KACvB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG,CAClC,UAAU,EAAE,WAAW,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzE,MAAM,MAAM,2BAA2B,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;CACtC"}