@scalebun/react-native 1.4.0 → 1.6.0
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 +33 -0
- package/android/src/main/java/com/scalebun/rn/ota/BsPatch.kt +182 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaModule.kt +88 -13
- package/android/src/oldarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +16 -0
- package/bin/lib/androidCodemod.js +370 -0
- package/bin/scalebun.js +305 -13
- package/dist/scalebun.full.js +129 -97
- package/dist/scalebun.full.js.map +1 -1
- package/dist/scalebun.slim.js +129 -97
- package/dist/scalebun.slim.js.map +1 -1
- package/ios/Ota/BsPatch.swift +180 -0
- package/ios/Ota/OtaSlotManager.swift +59 -2
- package/ios/Ota/ScaleBunOtaModule.swift +89 -10
- package/lib/commonjs/analytics/EventTracker.js +21 -1
- package/lib/commonjs/analytics/EventTracker.js.map +1 -1
- package/lib/commonjs/core/constants/version.js +1 -1
- package/lib/commonjs/core/id/installationId.js +55 -0
- package/lib/commonjs/core/id/installationId.js.map +1 -0
- package/lib/commonjs/debug/bootstrap.js +12 -0
- package/lib/commonjs/debug/bootstrap.js.map +1 -1
- package/lib/commonjs/features/ota/OtaOrchestrator.js +2 -30
- package/lib/commonjs/features/ota/OtaOrchestrator.js.map +1 -1
- package/lib/commonjs/features/session/BackendSessionAdapter.js +8 -0
- package/lib/commonjs/features/session/BackendSessionAdapter.js.map +1 -1
- package/lib/module/analytics/EventTracker.js +21 -1
- package/lib/module/analytics/EventTracker.js.map +1 -1
- package/lib/module/core/constants/version.js +1 -1
- package/lib/module/core/id/installationId.js +50 -0
- package/lib/module/core/id/installationId.js.map +1 -0
- package/lib/module/debug/bootstrap.js +12 -0
- package/lib/module/debug/bootstrap.js.map +1 -1
- package/lib/module/features/ota/OtaOrchestrator.js +1 -29
- package/lib/module/features/ota/OtaOrchestrator.js.map +1 -1
- package/lib/module/features/session/BackendSessionAdapter.js +8 -0
- package/lib/module/features/session/BackendSessionAdapter.js.map +1 -1
- package/lib/typescript/analytics/EventTracker.d.ts.map +1 -1
- package/lib/typescript/core/constants/version.d.ts +1 -1
- package/lib/typescript/core/id/installationId.d.ts +20 -0
- package/lib/typescript/core/id/installationId.d.ts.map +1 -0
- package/lib/typescript/debug/bootstrap.d.ts +18 -0
- package/lib/typescript/debug/bootstrap.d.ts.map +1 -1
- package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +1 -1
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/analytics/EventTracker.ts +21 -1
- package/src/core/constants/version.ts +1 -1
- package/src/core/id/installationId.ts +52 -0
- package/src/debug/bootstrap.ts +36 -0
- package/src/features/ota/OtaOrchestrator.ts +1 -30
- package/src/features/session/BackendSessionAdapter.ts +8 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import Compression
|
|
3
|
+
|
|
4
|
+
/// bspatch — reconstructs a bundle from a previous bundle plus a delta.
|
|
5
|
+
///
|
|
6
|
+
/// WHAT WAS WRONG. `stagePatch` resolved `false` unconditionally on both
|
|
7
|
+
/// platforms, so the whole delta pipeline was decorative: the server generated
|
|
8
|
+
/// patches, the check response advertised them, the orchestrator asked for
|
|
9
|
+
/// them, and the device always fell back to a full download.
|
|
10
|
+
///
|
|
11
|
+
/// FORMAT (produced by the backend's `bsdiff.ts`; all integers little-endian):
|
|
12
|
+
///
|
|
13
|
+
/// 0 8 magic "SBDIFF01"
|
|
14
|
+
/// 8 4 target size — the exact number of bytes this must produce
|
|
15
|
+
/// 12 4 deflated control-block length
|
|
16
|
+
/// 16 4 inflated control-block length
|
|
17
|
+
/// 20 4 deflated diff-block length
|
|
18
|
+
/// 24 4 inflated diff-block length
|
|
19
|
+
/// 28 4 deflated extra-block length
|
|
20
|
+
/// 32 4 inflated extra-block length
|
|
21
|
+
/// 36 . deflate(control) ++ deflate(diff) ++ deflate(extra)
|
|
22
|
+
///
|
|
23
|
+
/// Control is a run of (addLen, extraLen, seek) Int32 triples. `addLen` bytes
|
|
24
|
+
/// are read from the diff block and added, bytewise mod 256, to the source at
|
|
25
|
+
/// the current read cursor; `extraLen` bytes are copied verbatim from the extra
|
|
26
|
+
/// block; then the source cursor moves by the signed `seek`.
|
|
27
|
+
///
|
|
28
|
+
/// WHY COMPRESSION_ZLIB. Apple's `COMPRESSION_ZLIB` is raw DEFLATE (RFC 1951)
|
|
29
|
+
/// with no zlib wrapper, which is exactly what Node's `deflateRawSync` writes
|
|
30
|
+
/// and what Android's `Inflater(nowrap: true)` reads. No third-party dependency
|
|
31
|
+
/// on any platform. `compression_decode_buffer` needs the output size up front,
|
|
32
|
+
/// which is why the inflated lengths ride in the header.
|
|
33
|
+
///
|
|
34
|
+
/// EVERY FIELD HERE IS UNTRUSTED. The patch arrives over the network, so a
|
|
35
|
+
/// malformed or hostile one must fail cleanly rather than read out of bounds.
|
|
36
|
+
/// Each run is bounds-checked against all four buffers before use, and the
|
|
37
|
+
/// caller still verifies the SHA-256 of the result before anything is promoted.
|
|
38
|
+
enum BsPatch {
|
|
39
|
+
|
|
40
|
+
enum PatchError: Error, CustomStringConvertible {
|
|
41
|
+
case malformed(String)
|
|
42
|
+
|
|
43
|
+
var description: String {
|
|
44
|
+
switch self {
|
|
45
|
+
case .malformed(let why): return why
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private static let magic = "SBDIFF01"
|
|
51
|
+
private static let headerBytes = 36
|
|
52
|
+
|
|
53
|
+
/// Refuse absurd allocations from a corrupt header (bundles are single-digit MB).
|
|
54
|
+
private static let maxTargetBytes = 256 * 1024 * 1024
|
|
55
|
+
|
|
56
|
+
private static func u32(_ b: [UInt8], _ off: Int) -> UInt32 {
|
|
57
|
+
UInt32(b[off]) | (UInt32(b[off + 1]) << 8) | (UInt32(b[off + 2]) << 16) | (UInt32(b[off + 3]) << 24)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private static func i32(_ b: [UInt8], _ off: Int) -> Int32 {
|
|
61
|
+
Int32(bitPattern: u32(b, off))
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// Raw DEFLATE decode into an exactly-sized buffer.
|
|
65
|
+
private static func inflateRaw(_ src: [UInt8], _ offset: Int, _ length: Int, _ rawSize: Int) throws -> [UInt8] {
|
|
66
|
+
if rawSize == 0 { return [] }
|
|
67
|
+
var out = [UInt8](repeating: 0, count: rawSize)
|
|
68
|
+
let produced: Int = out.withUnsafeMutableBufferPointer { dst in
|
|
69
|
+
src.withUnsafeBufferPointer { s in
|
|
70
|
+
compression_decode_buffer(
|
|
71
|
+
dst.baseAddress!, rawSize,
|
|
72
|
+
s.baseAddress!.advanced(by: offset), length,
|
|
73
|
+
nil, COMPRESSION_ZLIB
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Zero means failure; anything other than the declared size means the
|
|
78
|
+
// stream disagrees with the header, which is corruption either way.
|
|
79
|
+
guard produced == rawSize else {
|
|
80
|
+
throw PatchError.malformed("compressed block decoded to \(produced) bytes, declared \(rawSize)")
|
|
81
|
+
}
|
|
82
|
+
return out
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/// Apply `patch` to `source`, returning the reconstructed bundle.
|
|
86
|
+
///
|
|
87
|
+
/// Throws `PatchError.malformed` if the patch is malformed, truncated, or
|
|
88
|
+
/// inconsistent with `source`. Callers treat this as "fall back to a full
|
|
89
|
+
/// download", never as a fatal error.
|
|
90
|
+
static func apply(source: [UInt8], patch: [UInt8]) throws -> [UInt8] {
|
|
91
|
+
guard patch.count >= headerBytes else {
|
|
92
|
+
throw PatchError.malformed("patch too short")
|
|
93
|
+
}
|
|
94
|
+
let gotMagic = String(bytes: patch[0..<8], encoding: .isoLatin1) ?? ""
|
|
95
|
+
guard gotMagic == magic else {
|
|
96
|
+
throw PatchError.malformed("bad patch magic '\(gotMagic)'")
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
let targetSize64 = Int(u32(patch, 8))
|
|
100
|
+
let cLen = Int(u32(patch, 12))
|
|
101
|
+
let cRaw = Int(u32(patch, 16))
|
|
102
|
+
let dLen = Int(u32(patch, 20))
|
|
103
|
+
let dRaw = Int(u32(patch, 24))
|
|
104
|
+
let eLen = Int(u32(patch, 28))
|
|
105
|
+
let eRaw = Int(u32(patch, 32))
|
|
106
|
+
|
|
107
|
+
guard targetSize64 <= maxTargetBytes,
|
|
108
|
+
cRaw <= maxTargetBytes, dRaw <= maxTargetBytes, eRaw <= maxTargetBytes else {
|
|
109
|
+
throw PatchError.malformed("declared size is implausible")
|
|
110
|
+
}
|
|
111
|
+
guard headerBytes + cLen + dLen + eLen == patch.count else {
|
|
112
|
+
throw PatchError.malformed("block lengths do not match patch size")
|
|
113
|
+
}
|
|
114
|
+
let targetSize = targetSize64
|
|
115
|
+
|
|
116
|
+
var off = headerBytes
|
|
117
|
+
let control = try inflateRaw(patch, off, cLen, cRaw); off += cLen
|
|
118
|
+
let diff = try inflateRaw(patch, off, dLen, dRaw); off += dLen
|
|
119
|
+
let extra = try inflateRaw(patch, off, eLen, eRaw)
|
|
120
|
+
|
|
121
|
+
guard control.count % 12 == 0 else {
|
|
122
|
+
throw PatchError.malformed("control block is not a whole number of triples")
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var out = [UInt8](repeating: 0, count: targetSize)
|
|
126
|
+
var newpos = 0
|
|
127
|
+
var oldpos = 0
|
|
128
|
+
var dpos = 0
|
|
129
|
+
var epos = 0
|
|
130
|
+
|
|
131
|
+
var c = 0
|
|
132
|
+
while c < control.count {
|
|
133
|
+
let addLen = Int(i32(control, c))
|
|
134
|
+
let extraLen = Int(i32(control, c + 4))
|
|
135
|
+
let seek = Int(i32(control, c + 8))
|
|
136
|
+
c += 12
|
|
137
|
+
|
|
138
|
+
guard addLen >= 0, extraLen >= 0 else {
|
|
139
|
+
throw PatchError.malformed("negative run length")
|
|
140
|
+
}
|
|
141
|
+
guard newpos + addLen <= targetSize else {
|
|
142
|
+
throw PatchError.malformed("add run overruns target")
|
|
143
|
+
}
|
|
144
|
+
guard dpos + addLen <= diff.count else {
|
|
145
|
+
throw PatchError.malformed("add run overruns diff block")
|
|
146
|
+
}
|
|
147
|
+
guard oldpos >= 0, oldpos + addLen <= source.count else {
|
|
148
|
+
throw PatchError.malformed("add run overruns source")
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if addLen > 0 {
|
|
152
|
+
for i in 0..<addLen {
|
|
153
|
+
out[newpos + i] = diff[dpos + i] &+ source[oldpos + i]
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
newpos += addLen
|
|
157
|
+
oldpos += addLen
|
|
158
|
+
dpos += addLen
|
|
159
|
+
|
|
160
|
+
guard newpos + extraLen <= targetSize else {
|
|
161
|
+
throw PatchError.malformed("extra run overruns target")
|
|
162
|
+
}
|
|
163
|
+
guard epos + extraLen <= extra.count else {
|
|
164
|
+
throw PatchError.malformed("extra run overruns extra block")
|
|
165
|
+
}
|
|
166
|
+
if extraLen > 0 {
|
|
167
|
+
out.replaceSubrange(newpos..<(newpos + extraLen), with: extra[epos..<(epos + extraLen)])
|
|
168
|
+
}
|
|
169
|
+
newpos += extraLen
|
|
170
|
+
epos += extraLen
|
|
171
|
+
|
|
172
|
+
oldpos += seek
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
guard newpos == targetSize else {
|
|
176
|
+
throw PatchError.malformed("patch produced \(newpos) bytes, declared \(targetSize)")
|
|
177
|
+
}
|
|
178
|
+
return out
|
|
179
|
+
}
|
|
180
|
+
}
|
|
@@ -19,6 +19,12 @@ class OtaSlotManager {
|
|
|
19
19
|
private static let bundleFilename = "bundle.jsbundle"
|
|
20
20
|
private static let metaFilename = "meta.json"
|
|
21
21
|
private static let bootMarkerFilename = "boot_marker"
|
|
22
|
+
private static let revertRecordFilename = "revert_record"
|
|
23
|
+
|
|
24
|
+
/// Launches a new bundle gets to call markHealthy() before it is reverted.
|
|
25
|
+
/// Matches the Android limit — the two platforms must agree or the same bad
|
|
26
|
+
/// release behaves differently depending on the phone.
|
|
27
|
+
private static let maxBootAttempts = 2
|
|
22
28
|
|
|
23
29
|
private let otaRoot: URL
|
|
24
30
|
|
|
@@ -34,6 +40,7 @@ class OtaSlotManager {
|
|
|
34
40
|
private var nextSlot: URL { otaRoot.appendingPathComponent("next") }
|
|
35
41
|
private var previousSlot: URL { otaRoot.appendingPathComponent("previous") }
|
|
36
42
|
private var bootMarkerFile: URL { otaRoot.appendingPathComponent(OtaSlotManager.bootMarkerFilename) }
|
|
43
|
+
private var revertRecordFile: URL { otaRoot.appendingPathComponent(OtaSlotManager.revertRecordFilename) }
|
|
37
44
|
|
|
38
45
|
// MARK: - Public API
|
|
39
46
|
|
|
@@ -137,9 +144,21 @@ class OtaSlotManager {
|
|
|
137
144
|
}
|
|
138
145
|
|
|
139
146
|
/// Revert to previous slot.
|
|
140
|
-
func revert() -> Bool {
|
|
147
|
+
func revert(reason: String = "boot_guard") -> Bool {
|
|
141
148
|
let fm = FileManager.default
|
|
142
149
|
|
|
150
|
+
// Leave a record so slotStateJSON can tell JS a revert happened. Without
|
|
151
|
+
// it `bootGuardReverted` was read by the orchestrator and written by
|
|
152
|
+
// nobody on iOS, so an auto-rollback that DID occur reported nothing —
|
|
153
|
+
// the dashboard counted zero rollbacks while devices were reverting.
|
|
154
|
+
let record: [String: Any] = [
|
|
155
|
+
"reason": reason,
|
|
156
|
+
"at": Int(Date().timeIntervalSince1970 * 1000),
|
|
157
|
+
]
|
|
158
|
+
if let data = try? JSONSerialization.data(withJSONObject: record) {
|
|
159
|
+
try? data.write(to: revertRecordFile, options: .atomic)
|
|
160
|
+
}
|
|
161
|
+
|
|
143
162
|
do {
|
|
144
163
|
if !fm.fileExists(atPath: previousSlot.path) {
|
|
145
164
|
NSLog("[ScaleBunOta] No previous/ to revert to — clearing current/")
|
|
@@ -203,7 +222,31 @@ class OtaSlotManager {
|
|
|
203
222
|
NSLog("[ScaleBunOta] Boot guard cannot verify this bundle — marker or meta has no sha256. Leaving it in place.")
|
|
204
223
|
} else if currentId != markerId {
|
|
205
224
|
NSLog("[ScaleBunOta] Boot marker sha256 mismatch — reverting")
|
|
206
|
-
_ = revert()
|
|
225
|
+
_ = revert(reason: "hash_mismatch")
|
|
226
|
+
} else {
|
|
227
|
+
// ── Crash-loop revert ────────────────────────────────────────
|
|
228
|
+
// Matching hashes mean the bundle is INTACT, which says nothing
|
|
229
|
+
// about whether it RUNS. A bundle that throws at JS init installs
|
|
230
|
+
// cleanly, matches on every boot, and never reaches markHealthy()
|
|
231
|
+
// — so a hash-only guard let it crash-loop forever, bricking the
|
|
232
|
+
// app until reinstall. iOS had no counter at all, so this was the
|
|
233
|
+
// outcome on every iPhone.
|
|
234
|
+
//
|
|
235
|
+
// The marker doubles as a boot-attempt counter: each launch that
|
|
236
|
+
// still finds it increments it, and reaching the limit means the
|
|
237
|
+
// bundle has had its chances and never became healthy.
|
|
238
|
+
var marker = markerJson
|
|
239
|
+
let attempts = (marker["bootAttempts"] as? Int ?? 0) + 1
|
|
240
|
+
if attempts >= OtaSlotManager.maxBootAttempts {
|
|
241
|
+
NSLog("[ScaleBunOta] Bundle failed to become healthy in \(attempts) launch(es) — reverting")
|
|
242
|
+
_ = revert(reason: "boot_crash_guard")
|
|
243
|
+
return
|
|
244
|
+
}
|
|
245
|
+
marker["bootAttempts"] = attempts
|
|
246
|
+
if let data = try? JSONSerialization.data(withJSONObject: marker) {
|
|
247
|
+
try? data.write(to: bootMarkerFile, options: .atomic)
|
|
248
|
+
}
|
|
249
|
+
NSLog("[ScaleBunOta] Boot guard: attempt \(attempts)/\(OtaSlotManager.maxBootAttempts) for this bundle")
|
|
207
250
|
}
|
|
208
251
|
} catch {
|
|
209
252
|
NSLog("[ScaleBunOta] checkBootGuard() failed — reverting: \(error)")
|
|
@@ -220,6 +263,20 @@ class OtaSlotManager {
|
|
|
220
263
|
state["next"] = readMeta(slot: nextSlot) as Any
|
|
221
264
|
state["previous"] = readMeta(slot: previousSlot) as Any
|
|
222
265
|
|
|
266
|
+
// Consume-on-read: the orchestrator turns this into exactly one
|
|
267
|
+
// AUTO_ROLLBACK event. Leaving it would re-report the same rollback on
|
|
268
|
+
// every launch.
|
|
269
|
+
let fm = FileManager.default
|
|
270
|
+
if fm.fileExists(atPath: revertRecordFile.path) {
|
|
271
|
+
if let data = try? Data(contentsOf: revertRecordFile),
|
|
272
|
+
let rec = try? JSONSerialization.jsonObject(with: data) as? [String: Any] {
|
|
273
|
+
state["bootGuardReverted"] = true
|
|
274
|
+
state["bootGuardRevertReason"] = rec["reason"] as? String ?? "boot_guard"
|
|
275
|
+
state["bootGuardRevertedAt"] = rec["at"] as? Int ?? 0
|
|
276
|
+
}
|
|
277
|
+
try? fm.removeItem(at: revertRecordFile)
|
|
278
|
+
}
|
|
279
|
+
|
|
223
280
|
guard let data = try? JSONSerialization.data(withJSONObject: state),
|
|
224
281
|
let json = String(data: data, encoding: .utf8) else {
|
|
225
282
|
return "{\"current\":null,\"next\":null,\"previous\":null,\"bootMarkerPresent\":false}"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import React
|
|
3
|
+
import CommonCrypto
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* React Native bridge for OTA bundle management (`ScaleBunOta`) on iOS.
|
|
@@ -121,22 +122,100 @@ class ScaleBunOtaModule: NSObject, RCTBridgeModule {
|
|
|
121
122
|
}
|
|
122
123
|
|
|
123
124
|
@objc(stagePatch:patchSha256:expectedSha256:resolve:reject:)
|
|
124
|
-
///
|
|
125
|
+
/// Binary-patch staging (S7-NAT-1).
|
|
125
126
|
///
|
|
126
|
-
///
|
|
127
|
-
///
|
|
128
|
-
///
|
|
129
|
-
///
|
|
130
|
-
///
|
|
131
|
-
///
|
|
132
|
-
///
|
|
133
|
-
///
|
|
127
|
+
/// Downloads a delta, reconstructs the full bundle from the currently
|
|
128
|
+
/// installed one, and hands the result to the ordinary staging path — so a
|
|
129
|
+
/// patched bundle passes exactly the same SHA-256 and slot-promotion checks
|
|
130
|
+
/// as a fully downloaded one. `expectedSha256` is the hash of the COMPLETE
|
|
131
|
+
/// bundle, which is what makes a bad patch unable to install: reconstruct
|
|
132
|
+
/// the wrong bytes and staging rejects them.
|
|
133
|
+
///
|
|
134
|
+
/// Resolves `false` — never rejects — for every "cannot patch" case, because
|
|
135
|
+
/// `src/specs/NativeScaleBunOta.ts` defines false as "patching unavailable,
|
|
136
|
+
/// fall back to a full download". The update still lands, just larger.
|
|
134
137
|
func stagePatch(_ patchUrl: NSString,
|
|
135
138
|
patchSha256: NSString,
|
|
136
139
|
expectedSha256: NSString,
|
|
137
140
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
138
141
|
reject: @escaping RCTPromiseRejectBlock) {
|
|
139
|
-
|
|
142
|
+
// Patching is relative to the bundle already on disk. With no OTA bundle
|
|
143
|
+
// installed the source would be the app's built-in bundle, which the
|
|
144
|
+
// server did not diff against — so a full download is the correct path.
|
|
145
|
+
guard let currentURL = ScaleBunOtaModule.slotManager.currentBundleURL(),
|
|
146
|
+
let sourceData = try? Data(contentsOf: currentURL) else {
|
|
147
|
+
NSLog("[ScaleBunOta] stagePatch: no current OTA bundle to patch — full download")
|
|
148
|
+
resolve(false)
|
|
149
|
+
return
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
let temp = FileManager.default.temporaryDirectory
|
|
153
|
+
.appendingPathComponent("scalebun_ota_patch_\(UUID().uuidString)")
|
|
154
|
+
defer { try? FileManager.default.removeItem(at: temp) }
|
|
155
|
+
|
|
156
|
+
guard BundleDownloader.download(urlString: patchUrl as String, destination: temp),
|
|
157
|
+
let patchData = try? Data(contentsOf: temp) else {
|
|
158
|
+
resolve(false)
|
|
159
|
+
return
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Verify the patch against its own hash before parsing it. Cheap, and it
|
|
163
|
+
// keeps obviously-corrupt input away from the parser.
|
|
164
|
+
guard let actualPatchSha = ScaleBunOtaModule.sha256Hex(patchData),
|
|
165
|
+
actualPatchSha.caseInsensitiveCompare(patchSha256 as String) == .orderedSame else {
|
|
166
|
+
NSLog("[ScaleBunOta] stagePatch: patch hash mismatch — full download")
|
|
167
|
+
resolve(false)
|
|
168
|
+
return
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
let rebuilt: [UInt8]
|
|
172
|
+
do {
|
|
173
|
+
rebuilt = try BsPatch.apply(source: [UInt8](sourceData), patch: [UInt8](patchData))
|
|
174
|
+
} catch {
|
|
175
|
+
NSLog("[ScaleBunOta] stagePatch: \(error) — full download")
|
|
176
|
+
resolve(false)
|
|
177
|
+
return
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
let rebuiltURL = FileManager.default.temporaryDirectory
|
|
181
|
+
.appendingPathComponent("scalebun_ota_rebuilt_\(UUID().uuidString)")
|
|
182
|
+
defer { try? FileManager.default.removeItem(at: rebuiltURL) }
|
|
183
|
+
|
|
184
|
+
do {
|
|
185
|
+
try Data(rebuilt).write(to: rebuiltURL)
|
|
186
|
+
} catch {
|
|
187
|
+
NSLog("[ScaleBunOta] stagePatch: could not write rebuilt bundle — full download")
|
|
188
|
+
resolve(false)
|
|
189
|
+
return
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
let meta: [String: Any] = [
|
|
193
|
+
"sha256": expectedSha256 as String,
|
|
194
|
+
"installedAt": Int(Date().timeIntervalSince1970 * 1000),
|
|
195
|
+
"patched": true
|
|
196
|
+
]
|
|
197
|
+
|
|
198
|
+
// The slot manager re-hashes and compares against the full-bundle hash;
|
|
199
|
+
// a mis-applied patch cannot get past this.
|
|
200
|
+
let success = ScaleBunOtaModule.slotManager.stage(
|
|
201
|
+
sourcePath: rebuiltURL.path,
|
|
202
|
+
expectedSha256: expectedSha256 as String,
|
|
203
|
+
meta: meta
|
|
204
|
+
)
|
|
205
|
+
if !success {
|
|
206
|
+
NSLog("[ScaleBunOta] stagePatch: rebuilt bundle failed verification — full download")
|
|
207
|
+
}
|
|
208
|
+
resolve(success)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/// Hex SHA-256 of in-memory bytes. The slot manager has a file-based twin;
|
|
212
|
+
/// this one avoids a round-trip through disk for the downloaded patch.
|
|
213
|
+
private static func sha256Hex(_ data: Data) -> String? {
|
|
214
|
+
var digest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
|
|
215
|
+
data.withUnsafeBytes { buf in
|
|
216
|
+
_ = CC_SHA256(buf.baseAddress, CC_LONG(data.count), &digest)
|
|
217
|
+
}
|
|
218
|
+
return digest.map { String(format: "%02x", $0) }.joined()
|
|
140
219
|
}
|
|
141
220
|
|
|
142
221
|
@objc(applyUpdate:reject:)
|
|
@@ -270,7 +270,27 @@ class EventTracker {
|
|
|
270
270
|
const effectiveBatch = (0, _batching.clampBatchSize)(this.cfg.batchSize, DEFAULT_BATCH);
|
|
271
271
|
const batch = this.queue.slice(0, effectiveBatch);
|
|
272
272
|
try {
|
|
273
|
-
//
|
|
273
|
+
// WHAT THIS SIGNATURE IS, AND WHAT IT IS NOT.
|
|
274
|
+
//
|
|
275
|
+
// This used to be described as letting "the backend tamper-detect
|
|
276
|
+
// the payload", which overstates it to the point of being wrong.
|
|
277
|
+
// The HMAC key is `clientKey` — the same value sent beside it in
|
|
278
|
+
// `x-scalebun-client-key`, and a value that ships inside every
|
|
279
|
+
// installed app, extractable by anyone who unzips an APK. A MAC
|
|
280
|
+
// whose key travels with the message and is public by construction
|
|
281
|
+
// proves nothing about who sent it: anyone can compute a valid one.
|
|
282
|
+
//
|
|
283
|
+
// What it DOES buy is integrity in transit against non-adversarial
|
|
284
|
+
// corruption, and a cheap filter for junk traffic. Treat `clientKey`
|
|
285
|
+
// as a publishable identifier (like a Stripe publishable key), never
|
|
286
|
+
// as a trust boundary. Authenticity that actually holds has to come
|
|
287
|
+
// from something the client cannot forge — server-side rate limits
|
|
288
|
+
// and anomaly detection per key, short-lived device tokens, or
|
|
289
|
+
// platform attestation (Play Integrity / App Attest).
|
|
290
|
+
//
|
|
291
|
+
// Contrast with OTA bundle signing (features/ota/signature.ts),
|
|
292
|
+
// which is asymmetric: the private half never leaves the publisher,
|
|
293
|
+
// so a valid signature there IS proof of origin.
|
|
274
294
|
const payload = JSON.stringify({
|
|
275
295
|
events: batch
|
|
276
296
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_StorageBackend","require","_device","_deviceId","_version","_internalLogger","_nativeCrashBridge","_hmacSha","_batching","_automaticEvents","SDK_SIGNING_VERSION","K_INSTALLATION_ID","exports","K_ANONYMOUS_ID","K_FIRST_OPEN","K_APP_VERSION","K_QUEUE","K_CLICK_ID","DEFAULT_FLUSH_MS","DEFAULT_BATCH","MAX_QUEUE","MAX_BACKOFF_MS","uuid","replace","c","r","Math","random","v","toString","EventTracker","identifiers","stamps","queue","timer","flushing","failureCount","started","automaticEventsUnsubscribe","constructor","config","storage","createStorageBackend","cfg","platform","resolveEventPlatform","flushIntervalMs","batchSize","autoLifecycleEvents","automaticEventTracking","installationId","loadOrCreate","anonymousId","sessionId","publishSessionToNative","loadQueue","loadClickId","getInstallationId","start","subscribeAutomaticEvents","event","track","name","properties","isFirstOpen","get","set","maybeAppUpdate","scheduleFlush","current","appVersion","previous","previous_version","current_version","newSession","setNativeActiveSession","identify","userId","traits","clearIdentity","undefined","setIdentifiers","ids","stamp","key","value","setAttributionClickId","clickId","click_id","eventName","enqueue","buildEnvelope","onEvent","err","logger","warn","message","trackPurchase","input","revenue","currency","transactionId","rest","env","transaction_id","flush","length","effectiveBatch","clampBatchSize","batch","slice","payload","JSON","stringify","events","idempotencyKey","batchIdempotencyKey","map","e","event_id","res","fetch","apiBaseUrl","method","headers","clientKey","hmacSha256Hex","body","ok","splice","persistQueue","status","stop","clearTimeout","ctx","context","canonicalSessionId","sessionIdProvider","event_name","event_time","Date","now","app_id","appId","installation_id","anonymous_id","session_id","device_id","getDeviceId","sdk_version","SDK_VERSION","user_id","app_version","osVersion","os_version","country","Object","keys","push","catch","base","backlogRemaining","MAX_BATCH_EVENTS","delay","min","pow","setTimeout","existing","id","raw","parsed","parse","Array","isArray","cid"],"sourceRoot":"../../../src","sources":["analytics/EventTracker.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_StorageBackend","require","_device","_deviceId","_version","_internalLogger","_nativeCrashBridge","_hmacSha","_batching","_automaticEvents","SDK_SIGNING_VERSION","K_INSTALLATION_ID","exports","K_ANONYMOUS_ID","K_FIRST_OPEN","K_APP_VERSION","K_QUEUE","K_CLICK_ID","DEFAULT_FLUSH_MS","DEFAULT_BATCH","MAX_QUEUE","MAX_BACKOFF_MS","uuid","replace","c","r","Math","random","v","toString","EventTracker","identifiers","stamps","queue","timer","flushing","failureCount","started","automaticEventsUnsubscribe","constructor","config","storage","createStorageBackend","cfg","platform","resolveEventPlatform","flushIntervalMs","batchSize","autoLifecycleEvents","automaticEventTracking","installationId","loadOrCreate","anonymousId","sessionId","publishSessionToNative","loadQueue","loadClickId","getInstallationId","start","subscribeAutomaticEvents","event","track","name","properties","isFirstOpen","get","set","maybeAppUpdate","scheduleFlush","current","appVersion","previous","previous_version","current_version","newSession","setNativeActiveSession","identify","userId","traits","clearIdentity","undefined","setIdentifiers","ids","stamp","key","value","setAttributionClickId","clickId","click_id","eventName","enqueue","buildEnvelope","onEvent","err","logger","warn","message","trackPurchase","input","revenue","currency","transactionId","rest","env","transaction_id","flush","length","effectiveBatch","clampBatchSize","batch","slice","payload","JSON","stringify","events","idempotencyKey","batchIdempotencyKey","map","e","event_id","res","fetch","apiBaseUrl","method","headers","clientKey","hmacSha256Hex","body","ok","splice","persistQueue","status","stop","clearTimeout","ctx","context","canonicalSessionId","sessionIdProvider","event_name","event_time","Date","now","app_id","appId","installation_id","anonymous_id","session_id","device_id","getDeviceId","sdk_version","SDK_VERSION","user_id","app_version","osVersion","os_version","country","Object","keys","push","catch","base","backlogRemaining","MAX_BATCH_EVENTS","delay","min","pow","setTimeout","existing","id","raw","parsed","parse","Array","isArray","cid"],"sourceRoot":"../../../src","sources":["analytics/EventTracker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,5 +9,5 @@ exports.SDK_VERSION = void 0;
|
|
|
9
9
|
* can attribute telemetry to the SDK build that produced it.
|
|
10
10
|
* Keep in sync with package.json "version".
|
|
11
11
|
*/
|
|
12
|
-
const SDK_VERSION = exports.SDK_VERSION = '1.
|
|
12
|
+
const SDK_VERSION = exports.SDK_VERSION = '1.6.0';
|
|
13
13
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveInstallationId = resolveInstallationId;
|
|
7
|
+
var _StorageBackend = require("../../storage/StorageBackend");
|
|
8
|
+
var _EventTracker = require("../../analytics/EventTracker");
|
|
9
|
+
/**
|
|
10
|
+
* The SDK's canonical per-install id.
|
|
11
|
+
*
|
|
12
|
+
* ONE install, ONE id, every lane. This is deliberately NOT `getDeviceId()` —
|
|
13
|
+
* that is a separate value under a separate storage key, and the backend schema
|
|
14
|
+
* annotates the two as different ("stable per-install id from the SDK (≠
|
|
15
|
+
* deviceId)").
|
|
16
|
+
*
|
|
17
|
+
* It matters because the backend joins a bundle's OTA installs to that device's
|
|
18
|
+
* sessions through this value. OTA events have always been keyed by it; the
|
|
19
|
+
* session lane did not send it at all, so on the server the two could only be
|
|
20
|
+
* connected for devices that happened to have registered for push. Release
|
|
21
|
+
* health then reported "no data" for bundles that were running perfectly well —
|
|
22
|
+
* or crashing badly.
|
|
23
|
+
*
|
|
24
|
+
* Lives here rather than inside one feature so the OTA orchestrator and the
|
|
25
|
+
* session adapter cannot drift to two different ids.
|
|
26
|
+
*/
|
|
27
|
+
function resolveInstallationId() {
|
|
28
|
+
try {
|
|
29
|
+
const storage = (0, _StorageBackend.createStorageBackend)();
|
|
30
|
+
const existing = storage.get(_EventTracker.K_INSTALLATION_ID);
|
|
31
|
+
if (existing) return existing;
|
|
32
|
+
const id = `inst-${randomSegment()}${randomSegment()}`;
|
|
33
|
+
storage.set(_EventTracker.K_INSTALLATION_ID, id);
|
|
34
|
+
return id;
|
|
35
|
+
} catch {
|
|
36
|
+
// Storage unavailable (tests, exotic hosts): a per-process id keeps the
|
|
37
|
+
// lanes functional; it stabilizes on the first run where storage works.
|
|
38
|
+
return `inst-ephemeral-${randomSegment()}`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** 8 chars of base36 entropy, crypto-backed when the runtime offers it. */
|
|
43
|
+
function randomSegment() {
|
|
44
|
+
try {
|
|
45
|
+
const g = globalThis;
|
|
46
|
+
if (g.crypto?.getRandomValues) {
|
|
47
|
+
const bytes = g.crypto.getRandomValues(new Uint8Array(6));
|
|
48
|
+
return Array.from(bytes).map(b => b.toString(36).padStart(2, '0')).join('').slice(0, 8);
|
|
49
|
+
}
|
|
50
|
+
} catch {
|
|
51
|
+
// fall through to Math.random
|
|
52
|
+
}
|
|
53
|
+
return Math.random().toString(36).slice(2, 10).padEnd(8, '0');
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=installationId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_StorageBackend","require","_EventTracker","resolveInstallationId","storage","createStorageBackend","existing","get","K_INSTALLATION_ID","id","randomSegment","set","g","globalThis","crypto","getRandomValues","bytes","Uint8Array","Array","from","map","b","toString","padStart","join","slice","Math","random","padEnd"],"sourceRoot":"../../../../src","sources":["core/id/installationId.ts"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,qBAAqBA,CAAA,EAAW;EAC5C,IAAI;IACA,MAAMC,OAAO,GAAG,IAAAC,oCAAoB,EAAC,CAAC;IACtC,MAAMC,QAAQ,GAAGF,OAAO,CAACG,GAAG,CAACC,+BAAiB,CAAC;IAC/C,IAAIF,QAAQ,EAAE,OAAOA,QAAQ;IAC7B,MAAMG,EAAE,GAAG,QAAQC,aAAa,CAAC,CAAC,GAAGA,aAAa,CAAC,CAAC,EAAE;IACtDN,OAAO,CAACO,GAAG,CAACH,+BAAiB,EAAEC,EAAE,CAAC;IAClC,OAAOA,EAAE;EACb,CAAC,CAAC,MAAM;IACJ;IACA;IACA,OAAO,kBAAkBC,aAAa,CAAC,CAAC,EAAE;EAC9C;AACJ;;AAEA;AACA,SAASA,aAAaA,CAAA,EAAW;EAC7B,IAAI;IACA,MAAME,CAAC,GAAGC,UAA8E;IACxF,IAAID,CAAC,CAACE,MAAM,EAAEC,eAAe,EAAE;MAC3B,MAAMC,KAAK,GAAGJ,CAAC,CAACE,MAAM,CAACC,eAAe,CAAC,IAAIE,UAAU,CAAC,CAAC,CAAC,CAAC;MACzD,OAAOC,KAAK,CAACC,IAAI,CAACH,KAAK,CAAC,CACnBI,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAC3CC,IAAI,CAAC,EAAE,CAAC,CACRC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB;EACJ,CAAC,CAAC,MAAM;IACJ;EAAA;EAEJ,OAAOC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACL,QAAQ,CAAC,EAAE,CAAC,CAACG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAACG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AACjE","ignoreList":[]}
|
|
@@ -111,6 +111,18 @@ function enableDebug(config) {
|
|
|
111
111
|
return;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
// Refuse in release builds. See `allowInRelease` on DebugConfig: this
|
|
115
|
+
// channel is plaintext ws:// carrying console output, network traffic
|
|
116
|
+
// and the shared secret, and the only previous guard was that the
|
|
117
|
+
// tooling is excluded from bundles by default — which a developer
|
|
118
|
+
// disables to debug locally and then forgets. Warn rather than fail
|
|
119
|
+
// silently, because a debug connection that does nothing with no
|
|
120
|
+
// explanation is its own long afternoon.
|
|
121
|
+
if (!__DEV__ && !config.allowInRelease) {
|
|
122
|
+
_internalLogger.logger.warn('[ScaleBun] Debug connection refused in a release build. The debug ' + 'transport is unencrypted (ws://) and carries captured traffic and the ' + 'shared secret in cleartext, so it is development-only by default. If ' + 'you genuinely need it in a release build, set ' + '`allowInRelease: true` — and do not ship that to users.');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
114
126
|
// The desktop-debugger tooling can be excluded from a build via
|
|
115
127
|
// `withScaleBun(config, { features: { devTools: false } })`, which resolves these modules
|
|
116
128
|
// to an empty stub. Detect that explicitly: without this check the first `new
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_transport2","require","_timings","_version","_stream2","_commands2","_internalLogger","_deviceId","_journeyTypes","_hostResolver","_replayWiring","_sessionWiring","_perfWiring","_screenTracking","_exportBridge","_transport","_stream","_commands","_perf","_performanceFeature","_profilerFeature","_sessionManager","_enabled","_journeyConfig","DEFAULT_JOURNEY_CONFIG","_debugReady","_globalTransportWarnEmitted","_autoScreenDetector","isDevToolsBundled","DebugTransport","DebugEventStream","CommandRegistry","resolveDebugHost","enableDebug","config","__DEV__","logger","debug","warn","host","port","DEFAULT_WS_PORT","enabled","journey","autoStart","screenshots","gestures","nav","platform","osVersion","Platform","OS","undefined","transportConfig","appName","bundleId","buildType","capabilities","secret","globalThis","__scalebun_transport","deviceId","getDeviceId","sessionId","Date","now","Math","random","toString","substring","setIdentity","captureConsole","captureSDKLogs","redactNetwork","setScreenProvider","getTrackedScreen","setStream","initReplaySdk","replay","onCommand","cmd","handleCommand","createSessionManager","session","_sessionDisabled","setRecordingSessionProvider","recordingSessionId","perfResult","initPerformance","performanceDisabled","_performanceDisabled","enablePerf","stallThresholdMs","performanceFeature","perfMonitor","initProfiler","enableProfiler","onStateChange","state","connect","install","isActive","start","info","wireNativeCaptureDeferred","startAutoScreenDetection","setTimeout","_emitJourneyEvent","journeyEnabled","canScreenshot","navMode","sdkVersion","SDK_VERSION","DEBUG_READY_EMIT_DELAY_MS","e","error","disableDebug","endSession","teardownReplay","teardown","teardownExports","stop","disconnect","resetReplayState","isDebugEnabled","addBreadcrumb","message","data","tapBreadcrumb","ping","timestamp","_getStream","_getCommands","_setFlushFn","fn","setFlushFn","_getReplaySdk","getReplaySdk","_isReplaySdkInitialized","isReplaySdkInitialized","_getTransport","_getJourneyConfig","_isJourneyEnabled","_setDebugReady","ready","_getSessionManager","_getAutoScreenDetector","getPerformanceFeature","getProfilerFeature","name","PROTOCOL_VERSION","msg","type","protocolVersion","sequence","nextSequence","payload","id","category","send","requestExport","presetOrOptions","_requestExport","_handleExportResult","args","handleExportResult"],"sourceRoot":"../../../src","sources":["debug/bootstrap.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_transport2","require","_timings","_version","_stream2","_commands2","_internalLogger","_deviceId","_journeyTypes","_hostResolver","_replayWiring","_sessionWiring","_perfWiring","_screenTracking","_exportBridge","_transport","_stream","_commands","_perf","_performanceFeature","_profilerFeature","_sessionManager","_enabled","_journeyConfig","DEFAULT_JOURNEY_CONFIG","_debugReady","_globalTransportWarnEmitted","_autoScreenDetector","isDevToolsBundled","DebugTransport","DebugEventStream","CommandRegistry","resolveDebugHost","enableDebug","config","__DEV__","logger","debug","allowInRelease","warn","host","port","DEFAULT_WS_PORT","enabled","journey","autoStart","screenshots","gestures","nav","platform","osVersion","Platform","OS","undefined","transportConfig","appName","bundleId","buildType","capabilities","secret","globalThis","__scalebun_transport","deviceId","getDeviceId","sessionId","Date","now","Math","random","toString","substring","setIdentity","captureConsole","captureSDKLogs","redactNetwork","setScreenProvider","getTrackedScreen","setStream","initReplaySdk","replay","onCommand","cmd","handleCommand","createSessionManager","session","_sessionDisabled","setRecordingSessionProvider","recordingSessionId","perfResult","initPerformance","performanceDisabled","_performanceDisabled","enablePerf","stallThresholdMs","performanceFeature","perfMonitor","initProfiler","enableProfiler","onStateChange","state","connect","install","isActive","start","info","wireNativeCaptureDeferred","startAutoScreenDetection","setTimeout","_emitJourneyEvent","journeyEnabled","canScreenshot","navMode","sdkVersion","SDK_VERSION","DEBUG_READY_EMIT_DELAY_MS","e","error","disableDebug","endSession","teardownReplay","teardown","teardownExports","stop","disconnect","resetReplayState","isDebugEnabled","addBreadcrumb","message","data","tapBreadcrumb","ping","timestamp","_getStream","_getCommands","_setFlushFn","fn","setFlushFn","_getReplaySdk","getReplaySdk","_isReplaySdkInitialized","isReplaySdkInitialized","_getTransport","_getJourneyConfig","_isJourneyEnabled","_setDebugReady","ready","_getSessionManager","_getAutoScreenDetector","getPerformanceFeature","getProfilerFeature","name","PROTOCOL_VERSION","msg","type","protocolVersion","sequence","nextSequence","payload","id","category","send","requestExport","presetOrOptions","_requestExport","_handleExportResult","args","handleExportResult"],"sourceRoot":"../../../src","sources":["debug/bootstrap.ts"],"mappings":"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","ignoreList":[]}
|