native-update 1.4.8 → 2.0.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 +13 -1
- package/android/src/main/java/com/aoneahsan/nativeupdate/BackgroundUpdatePlugin.kt +15 -0
- package/android/src/main/java/com/aoneahsan/nativeupdate/BackgroundUpdateWorker.kt +23 -7
- package/android/src/main/java/com/aoneahsan/nativeupdate/LiveUpdatePlugin.kt +152 -4
- package/android/src/main/java/com/aoneahsan/nativeupdate/NativeUpdatePlugin.kt +14 -1
- package/android/src/main/java/com/aoneahsan/nativeupdate/NotificationActionReceiver.kt +10 -1
- package/android/src/main/java/com/aoneahsan/nativeupdate/SecurityManager.kt +18 -18
- package/cli/AGENTS.md +29 -0
- package/cli/CLAUDE.md +51 -0
- package/dist/esm/__tests__/security-enforcement.test.d.ts +1 -0
- package/dist/esm/__tests__/security-enforcement.test.js +95 -0
- package/dist/esm/__tests__/security-enforcement.test.js.map +1 -0
- package/dist/esm/core/config.d.ts +6 -15
- package/dist/esm/core/config.js +1 -4
- package/dist/esm/core/config.js.map +1 -1
- package/dist/esm/core/security.d.ts +11 -3
- package/dist/esm/core/security.js +19 -6
- package/dist/esm/core/security.js.map +1 -1
- package/dist/esm/definitions.d.ts +38 -24
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/firestore/firestore-client.js +4 -0
- package/dist/esm/firestore/firestore-client.js.map +1 -1
- package/dist/esm/firestore/schema.d.ts +2 -0
- package/dist/esm/firestore/schema.js.map +1 -1
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/live-update/download-manager.d.ts +36 -5
- package/dist/esm/live-update/download-manager.js +61 -22
- package/dist/esm/live-update/download-manager.js.map +1 -1
- package/dist/esm/live-update/update-manager.d.ts +12 -1
- package/dist/esm/live-update/update-manager.js +38 -10
- package/dist/esm/live-update/update-manager.js.map +1 -1
- package/dist/esm/live-update/version-manager.d.ts +9 -0
- package/dist/esm/live-update/version-manager.js +40 -0
- package/dist/esm/live-update/version-manager.js.map +1 -1
- package/dist/esm/plugin.js +95 -175
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/web.d.ts +18 -1
- package/dist/esm/web.js +69 -24
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +1 -1
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.esm.js +1 -1
- package/dist/plugin.esm.js.map +1 -1
- package/dist/plugin.js +2 -2
- package/dist/plugin.js.map +1 -1
- package/docs/AGENTS.md +38 -0
- package/docs/CHANGELOG.md +167 -0
- package/docs/CLAUDE.md +101 -0
- package/docs/MIGRATION.md +87 -0
- package/docs/README.md +13 -2
- package/docs/deployment/HOSTINGER_DEPLOY.md +329 -0
- package/docs/features/laravel-nova-backend/ASSESSMENT-SUMMARY.md +96 -0
- package/docs/features/laravel-nova-backend/IMPLEMENTATION-PLAN.md +504 -0
- package/docs/features/laravel-nova-backend/credentials.ignore.md +34 -0
- package/docs/features/laravel-nova-backend/progress-tracker.json +184 -0
- package/docs/guides/no-cost-backend-implementation-plan.md +77 -0
- package/docs/guides/no-cost-firestore-google-drive-backend.md +60 -0
- package/docs/project-knowledge-base/01-system-overview.md +218 -0
- package/docs/project-knowledge-base/02-routes-pages-forms-users.md +346 -0
- package/docs/project-knowledge-base/03-tech-stack-modules-services.md +347 -0
- package/docs/project-knowledge-base/04-data-models-integrations.md +307 -0
- package/docs/project-knowledge-base/05-docs-corpus-inventory.md +193 -0
- package/docs/project-knowledge-base/06-operations-testing-legal-content.md +170 -0
- package/docs/project-knowledge-base/README.md +90 -0
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-16.md +454 -0
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-24.md +66 -0
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-25.md +67 -0
- package/docs/seo-aeo-rules.json +3043 -0
- package/docs/tracking/seo-checklist-tracker.json +333 -0
- package/ios/Plugin/BackgroundUpdate/BackgroundUpdatePlugin.swift +50 -6
- package/ios/Plugin/LiveUpdate/LiveUpdatePlugin.swift +238 -8
- package/ios/Plugin/NativeUpdatePlugin.swift +8 -0
- package/ios/Plugin/Security/SecurityManager.swift +13 -14
- package/package.json +31 -32
- package/docs/play-console-rejection-rules.json +0 -428
package/dist/esm/plugin.js
CHANGED
|
@@ -2,7 +2,6 @@ import { registerPlugin } from '@capacitor/core';
|
|
|
2
2
|
import { SyncStatus, BundleStatus, UpdateErrorCode } from './definitions';
|
|
3
3
|
import { PluginManager } from './core/plugin-manager';
|
|
4
4
|
import { NativeUpdateError, ErrorCode } from './core/errors';
|
|
5
|
-
import { CryptoUtils } from './security/crypto';
|
|
6
5
|
/**
|
|
7
6
|
* Web implementation of the Native Update Plugin
|
|
8
7
|
*/
|
|
@@ -30,7 +29,6 @@ class NativeUpdatePluginWeb {
|
|
|
30
29
|
}
|
|
31
30
|
// NativeUpdatePlugin methods
|
|
32
31
|
async configure(config) {
|
|
33
|
-
var _a;
|
|
34
32
|
// Handle both UpdateConfig and wrapped PluginInitConfig formats
|
|
35
33
|
let initConfig;
|
|
36
34
|
if ('config' in config && typeof config.config === 'object') {
|
|
@@ -38,10 +36,28 @@ class NativeUpdatePluginWeb {
|
|
|
38
36
|
initConfig = config.config;
|
|
39
37
|
}
|
|
40
38
|
else {
|
|
39
|
+
const liveUpdate = config.liveUpdate;
|
|
40
|
+
const appUpdate = config.appUpdate;
|
|
41
|
+
const appReview = config.appReview;
|
|
41
42
|
// Format: UpdateConfig - convert to PluginInitConfig
|
|
42
43
|
initConfig = {
|
|
43
|
-
|
|
44
|
-
baseUrl:
|
|
44
|
+
appId: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.appId,
|
|
45
|
+
baseUrl: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.serverUrl,
|
|
46
|
+
serverUrl: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.serverUrl,
|
|
47
|
+
channel: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.channel,
|
|
48
|
+
autoCheck: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.autoUpdate,
|
|
49
|
+
autoUpdate: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.autoUpdate,
|
|
50
|
+
updateStrategy: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.updateStrategy,
|
|
51
|
+
publicKey: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.publicKey,
|
|
52
|
+
requireSignature: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.requireSignature,
|
|
53
|
+
checksumAlgorithm: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.checksumAlgorithm,
|
|
54
|
+
checkInterval: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.checkInterval,
|
|
55
|
+
backendType: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.backendType,
|
|
56
|
+
firestore: liveUpdate === null || liveUpdate === void 0 ? void 0 : liveUpdate.firestore,
|
|
57
|
+
security: config.security,
|
|
58
|
+
appStoreId: appUpdate === null || appUpdate === void 0 ? void 0 : appUpdate.appStoreId,
|
|
59
|
+
packageName: appUpdate === null || appUpdate === void 0 ? void 0 : appUpdate.packageName,
|
|
60
|
+
webReviewUrl: appReview === null || appReview === void 0 ? void 0 : appReview.webReviewUrl,
|
|
45
61
|
};
|
|
46
62
|
}
|
|
47
63
|
if (!this.initialized) {
|
|
@@ -67,116 +83,32 @@ class NativeUpdatePluginWeb {
|
|
|
67
83
|
}
|
|
68
84
|
// LiveUpdatePlugin methods
|
|
69
85
|
async sync(options) {
|
|
70
|
-
const bundleManager = this.pluginManager.getBundleManager();
|
|
71
|
-
const configManager = this.pluginManager.getConfigManager();
|
|
72
|
-
const downloadManager = this.pluginManager.getDownloadManager();
|
|
73
|
-
const eventEmitter = this.pluginManager.getEventEmitter();
|
|
74
86
|
try {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const currentVersion = (currentBundle === null || currentBundle === void 0 ? void 0 : currentBundle.version) || '1.0.0';
|
|
78
|
-
// Get base URL from config
|
|
79
|
-
const baseUrl = configManager.get('baseUrl');
|
|
80
|
-
if (!baseUrl) {
|
|
81
|
-
return {
|
|
82
|
-
status: SyncStatus.UP_TO_DATE,
|
|
83
|
-
version: currentVersion,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
// Check for updates from server
|
|
87
|
-
const channel = (options === null || options === void 0 ? void 0 : options.channel) || configManager.get('channel') || 'production';
|
|
88
|
-
let updateInfo = null;
|
|
89
|
-
try {
|
|
90
|
-
const response = await fetch(`${baseUrl}/updates/latest`, {
|
|
91
|
-
method: 'GET',
|
|
92
|
-
headers: {
|
|
93
|
-
'Content-Type': 'application/json',
|
|
94
|
-
'X-Current-Version': currentVersion,
|
|
95
|
-
'X-Channel': channel,
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
if (response.ok) {
|
|
99
|
-
const data = await response.json();
|
|
100
|
-
const latestVersion = data.version || data.latestVersion;
|
|
101
|
-
if (latestVersion && this.compareVersions(currentVersion, latestVersion) < 0) {
|
|
102
|
-
updateInfo = {
|
|
103
|
-
version: latestVersion,
|
|
104
|
-
url: data.url || data.downloadUrl,
|
|
105
|
-
mandatory: data.mandatory,
|
|
106
|
-
notes: data.notes || data.releaseNotes,
|
|
107
|
-
checksum: data.checksum,
|
|
108
|
-
signature: data.signature,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (_a) {
|
|
114
|
-
// Server check failed, continue with UP_TO_DATE
|
|
87
|
+
const updateInfo = await this.checkForUpdate();
|
|
88
|
+
if (!updateInfo.available || !updateInfo.latestVersion || !updateInfo.url) {
|
|
115
89
|
return {
|
|
116
90
|
status: SyncStatus.UP_TO_DATE,
|
|
117
|
-
version: currentVersion,
|
|
91
|
+
version: updateInfo.currentVersion,
|
|
118
92
|
};
|
|
119
93
|
}
|
|
120
|
-
// If no update available, return up-to-date
|
|
121
|
-
if (!updateInfo) {
|
|
122
|
-
return {
|
|
123
|
-
status: SyncStatus.UP_TO_DATE,
|
|
124
|
-
version: currentVersion,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
// If update mode is IMMEDIATE, download and apply automatically
|
|
128
94
|
if ((options === null || options === void 0 ? void 0 : options.updateMode) === 'immediate' || (options === null || options === void 0 ? void 0 : options.updateMode) === undefined) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
});
|
|
135
|
-
// Download the update
|
|
136
|
-
const onProgress = (event) => {
|
|
137
|
-
eventEmitter.emit('downloadProgress', event);
|
|
138
|
-
};
|
|
139
|
-
const blob = await downloadManager.downloadWithRetry(updateInfo.url, updateInfo.version, onProgress);
|
|
140
|
-
// Get ArrayBuffer for decryption and validation
|
|
141
|
-
let bundleData = await blob.arrayBuffer();
|
|
142
|
-
// Decrypt if encryption is enabled
|
|
143
|
-
bundleData = await this.decryptBundleIfNeeded(bundleData);
|
|
144
|
-
// Validate checksum and signature before saving
|
|
145
|
-
await this.validateBundleData(bundleData, updateInfo.checksum, updateInfo.signature);
|
|
146
|
-
// Convert back to Blob for storage
|
|
147
|
-
const validatedBlob = new Blob([bundleData], { type: blob.type });
|
|
148
|
-
const path = await downloadManager.saveBlob(updateInfo.version, validatedBlob);
|
|
149
|
-
// Create bundle info
|
|
150
|
-
const bundleInfo = {
|
|
151
|
-
bundleId: updateInfo.version,
|
|
152
|
-
version: updateInfo.version,
|
|
153
|
-
path,
|
|
154
|
-
downloadTime: Date.now(),
|
|
155
|
-
size: validatedBlob.size,
|
|
156
|
-
status: BundleStatus.READY,
|
|
157
|
-
checksum: updateInfo.checksum || '',
|
|
158
|
-
verified: true, // Validated before saving
|
|
159
|
-
};
|
|
160
|
-
// Save bundle
|
|
161
|
-
await bundleManager.saveBundleInfo(bundleInfo);
|
|
162
|
-
// Set as active and reload if immediate
|
|
163
|
-
await bundleManager.setActiveBundle(updateInfo.version);
|
|
164
|
-
eventEmitter.emit('updateStateChanged', {
|
|
165
|
-
status: BundleStatus.ACTIVE,
|
|
166
|
-
bundleId: updateInfo.version,
|
|
167
|
-
version: updateInfo.version,
|
|
95
|
+
const bundle = await this.downloadUpdate({
|
|
96
|
+
url: updateInfo.url,
|
|
97
|
+
version: updateInfo.latestVersion,
|
|
98
|
+
checksum: updateInfo.checksum,
|
|
99
|
+
signature: updateInfo.signature,
|
|
168
100
|
});
|
|
101
|
+
await this.applyUpdate(bundle.bundleId);
|
|
169
102
|
return {
|
|
170
103
|
status: SyncStatus.UPDATE_INSTALLED,
|
|
171
|
-
version: updateInfo.
|
|
104
|
+
version: updateInfo.latestVersion,
|
|
172
105
|
description: updateInfo.notes,
|
|
173
106
|
mandatory: updateInfo.mandatory,
|
|
174
107
|
};
|
|
175
108
|
}
|
|
176
|
-
// Return update available for manual handling
|
|
177
109
|
return {
|
|
178
110
|
status: SyncStatus.UPDATE_AVAILABLE,
|
|
179
|
-
version: updateInfo.
|
|
111
|
+
version: updateInfo.latestVersion,
|
|
180
112
|
description: updateInfo.notes,
|
|
181
113
|
mandatory: updateInfo.mandatory,
|
|
182
114
|
};
|
|
@@ -273,9 +205,18 @@ class NativeUpdatePluginWeb {
|
|
|
273
205
|
});
|
|
274
206
|
}
|
|
275
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* @deprecated since v2. The update server URL is fixed at `initialize()`
|
|
210
|
+
* time and cannot be mutated at runtime. Runtime mutation is an XSS
|
|
211
|
+
* attack vector — a compromised WebView could repoint updates to a
|
|
212
|
+
* malicious host. Call `initialize()` again with the new config if you
|
|
213
|
+
* legitimately need to switch servers.
|
|
214
|
+
*/
|
|
276
215
|
async setUpdateUrl(url) {
|
|
277
|
-
|
|
278
|
-
|
|
216
|
+
void url;
|
|
217
|
+
const logger = this.pluginManager.getLogger();
|
|
218
|
+
logger.warn('setUpdateUrl() is deprecated and ignored. Update URL is locked after initialize(). ' +
|
|
219
|
+
'Call initialize() again with an updated serverUrl to switch servers.');
|
|
279
220
|
}
|
|
280
221
|
async validateUpdate(options) {
|
|
281
222
|
const securityValidator = this.pluginManager.getSecurityValidator();
|
|
@@ -309,55 +250,65 @@ class NativeUpdatePluginWeb {
|
|
|
309
250
|
async checkForUpdate() {
|
|
310
251
|
const bundleManager = this.pluginManager.getBundleManager();
|
|
311
252
|
const configManager = this.pluginManager.getConfigManager();
|
|
253
|
+
const versionManager = this.pluginManager.getVersionManager();
|
|
312
254
|
try {
|
|
313
|
-
// Get current version
|
|
314
255
|
const currentBundle = await bundleManager.getActiveBundle();
|
|
315
256
|
const currentVersion = (currentBundle === null || currentBundle === void 0 ? void 0 : currentBundle.version) || '1.0.0';
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
available: false,
|
|
321
|
-
currentVersion,
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
// Fetch latest version info from server
|
|
325
|
-
try {
|
|
326
|
-
const response = await fetch(`${baseUrl}/updates/latest`, {
|
|
327
|
-
method: 'GET',
|
|
328
|
-
headers: {
|
|
329
|
-
'Content-Type': 'application/json',
|
|
330
|
-
'X-Current-Version': currentVersion,
|
|
331
|
-
},
|
|
332
|
-
});
|
|
333
|
-
if (!response.ok) {
|
|
257
|
+
const backendType = configManager.get('backendType');
|
|
258
|
+
if (backendType === 'firestore') {
|
|
259
|
+
const result = (await versionManager.checkForUpdatesAuto(currentVersion, this.getDeviceInfo(currentVersion)));
|
|
260
|
+
if (!(result === null || result === void 0 ? void 0 : result.updateAvailable)) {
|
|
334
261
|
return {
|
|
335
262
|
available: false,
|
|
336
263
|
currentVersion,
|
|
337
264
|
};
|
|
338
265
|
}
|
|
339
|
-
const data = await response.json();
|
|
340
|
-
const latestVersion = data.version || data.latestVersion;
|
|
341
|
-
const isNewer = this.compareVersions(currentVersion, latestVersion) < 0;
|
|
342
266
|
return {
|
|
343
|
-
available:
|
|
267
|
+
available: true,
|
|
344
268
|
currentVersion,
|
|
345
|
-
latestVersion:
|
|
346
|
-
url:
|
|
347
|
-
mandatory:
|
|
348
|
-
notes:
|
|
349
|
-
size:
|
|
350
|
-
checksum:
|
|
351
|
-
signature:
|
|
269
|
+
latestVersion: result.version,
|
|
270
|
+
url: result.bundleUrl,
|
|
271
|
+
mandatory: result.mandatory,
|
|
272
|
+
notes: result.releaseNotes,
|
|
273
|
+
size: result.size,
|
|
274
|
+
checksum: result.checksum,
|
|
275
|
+
signature: result.signature,
|
|
352
276
|
};
|
|
353
277
|
}
|
|
354
|
-
|
|
355
|
-
|
|
278
|
+
const baseUrl = configManager.get('baseUrl');
|
|
279
|
+
if (!baseUrl) {
|
|
356
280
|
return {
|
|
357
281
|
available: false,
|
|
358
282
|
currentVersion,
|
|
359
283
|
};
|
|
360
284
|
}
|
|
285
|
+
const response = await fetch(`${baseUrl}/updates/latest`, {
|
|
286
|
+
method: 'GET',
|
|
287
|
+
headers: {
|
|
288
|
+
'Content-Type': 'application/json',
|
|
289
|
+
'X-Current-Version': currentVersion,
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
if (!response.ok) {
|
|
293
|
+
return {
|
|
294
|
+
available: false,
|
|
295
|
+
currentVersion,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const data = await response.json();
|
|
299
|
+
const latestVersion = data.version || data.latestVersion;
|
|
300
|
+
const isNewer = this.compareVersions(currentVersion, latestVersion) < 0;
|
|
301
|
+
return {
|
|
302
|
+
available: isNewer,
|
|
303
|
+
currentVersion,
|
|
304
|
+
latestVersion: isNewer ? latestVersion : undefined,
|
|
305
|
+
url: isNewer ? data.url || data.downloadUrl : undefined,
|
|
306
|
+
mandatory: data.mandatory,
|
|
307
|
+
notes: data.notes || data.releaseNotes,
|
|
308
|
+
size: data.size,
|
|
309
|
+
checksum: data.checksum,
|
|
310
|
+
signature: data.signature,
|
|
311
|
+
};
|
|
361
312
|
}
|
|
362
313
|
catch (error) {
|
|
363
314
|
throw new NativeUpdateError(ErrorCode.NETWORK_ERROR, error instanceof Error ? error.message : 'Failed to check for updates');
|
|
@@ -394,10 +345,8 @@ class NativeUpdatePluginWeb {
|
|
|
394
345
|
};
|
|
395
346
|
// Download the bundle
|
|
396
347
|
const blob = await downloadManager.downloadWithRetry(url, version, onProgress);
|
|
397
|
-
// Get ArrayBuffer for
|
|
398
|
-
|
|
399
|
-
// Decrypt if encryption is enabled
|
|
400
|
-
bundleData = await this.decryptBundleIfNeeded(bundleData);
|
|
348
|
+
// Get ArrayBuffer for validation
|
|
349
|
+
const bundleData = await blob.arrayBuffer();
|
|
401
350
|
// Validate checksum and signature before saving
|
|
402
351
|
await this.validateBundleData(bundleData, checksum, signature || undefined);
|
|
403
352
|
// Convert back to Blob for storage
|
|
@@ -489,44 +438,15 @@ class NativeUpdatePluginWeb {
|
|
|
489
438
|
}
|
|
490
439
|
return 0;
|
|
491
440
|
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
if (!enableEncryption) {
|
|
502
|
-
return bundleData;
|
|
503
|
-
}
|
|
504
|
-
// Validate encryption configuration
|
|
505
|
-
if (!encryptionKey) {
|
|
506
|
-
throw new NativeUpdateError(ErrorCode.INVALID_CONFIG, 'Encryption is enabled but encryptionKey is not configured');
|
|
507
|
-
}
|
|
508
|
-
if (!encryptionSalt) {
|
|
509
|
-
throw new NativeUpdateError(ErrorCode.INVALID_CONFIG, 'Encryption is enabled but encryptionSalt is not configured');
|
|
510
|
-
}
|
|
511
|
-
try {
|
|
512
|
-
// Try to parse as encrypted bundle JSON
|
|
513
|
-
const decoder = new TextDecoder();
|
|
514
|
-
const jsonString = decoder.decode(bundleData);
|
|
515
|
-
const encryptedBundle = JSON.parse(jsonString);
|
|
516
|
-
// Verify it's an encrypted bundle
|
|
517
|
-
if (!CryptoUtils.isEncryptedBundle(encryptedBundle)) {
|
|
518
|
-
throw new NativeUpdateError(ErrorCode.VALIDATION_ERROR, 'Encryption is enabled but bundle is not encrypted');
|
|
519
|
-
}
|
|
520
|
-
// Decrypt the bundle
|
|
521
|
-
const decryptedData = await CryptoUtils.decryptBundle(encryptedBundle, encryptionKey, encryptionSalt);
|
|
522
|
-
return decryptedData;
|
|
523
|
-
}
|
|
524
|
-
catch (error) {
|
|
525
|
-
if (error instanceof NativeUpdateError) {
|
|
526
|
-
throw error;
|
|
527
|
-
}
|
|
528
|
-
throw new NativeUpdateError(ErrorCode.VALIDATION_ERROR, `Failed to decrypt bundle: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
529
|
-
}
|
|
441
|
+
getDeviceInfo(currentVersion) {
|
|
442
|
+
return {
|
|
443
|
+
deviceId: 'web-client',
|
|
444
|
+
platform: 'web',
|
|
445
|
+
appVersion: currentVersion,
|
|
446
|
+
bundleVersion: currentVersion,
|
|
447
|
+
osVersion: typeof navigator !== 'undefined' ? navigator.userAgent : 'unknown',
|
|
448
|
+
locale: typeof navigator !== 'undefined' ? navigator.language : 'en-US',
|
|
449
|
+
};
|
|
530
450
|
}
|
|
531
451
|
/**
|
|
532
452
|
* Validate bundle data using SecurityValidator
|
package/dist/esm/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/web.d.ts
CHANGED
|
@@ -33,6 +33,10 @@ export declare class NativeUpdateWeb extends WebPlugin implements NativeUpdateCo
|
|
|
33
33
|
notifyAppReady(): Promise<void>;
|
|
34
34
|
getLatest(): Promise<LatestVersion>;
|
|
35
35
|
setChannel(channel: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated since v2. See NativeUpdatePluginWeb.setUpdateUrl in plugin.ts.
|
|
38
|
+
* Update URL is locked after initialize(); this method is a no-op.
|
|
39
|
+
*/
|
|
36
40
|
setUpdateUrl(url: string): Promise<void>;
|
|
37
41
|
validateUpdate(options: ValidateOptions): Promise<ValidationResult>;
|
|
38
42
|
/**
|
|
@@ -82,7 +86,11 @@ export declare class NativeUpdateWeb extends WebPlugin implements NativeUpdateCo
|
|
|
82
86
|
*/
|
|
83
87
|
private validateChecksum;
|
|
84
88
|
/**
|
|
85
|
-
* Validate digital signature using RSA-PSS or ECDSA
|
|
89
|
+
* Validate digital signature using RSA-PSS or ECDSA.
|
|
90
|
+
*
|
|
91
|
+
* Fails closed: if the host app configured a public key or
|
|
92
|
+
* requireSignature, a missing signature throws. Silent-pass was a P0 gap.
|
|
93
|
+
*
|
|
86
94
|
* @param data - The data that was signed (as string path or ArrayBuffer)
|
|
87
95
|
* @param signature - The signature to verify (base64 encoded)
|
|
88
96
|
*/
|
|
@@ -101,6 +109,15 @@ export declare class NativeUpdateWeb extends WebPlugin implements NativeUpdateCo
|
|
|
101
109
|
private importPublicKeyECDSA;
|
|
102
110
|
private loadStoredData;
|
|
103
111
|
private saveStoredData;
|
|
112
|
+
/**
|
|
113
|
+
* Strip secrets before persisting config to localStorage. A browser's
|
|
114
|
+
* localStorage is accessible to any script running in the page (XSS,
|
|
115
|
+
* compromised deps) — an `apiKey` or `publicKey` sitting there is a
|
|
116
|
+
* ready-to-use credential. Host apps must pass these on every
|
|
117
|
+
* `initialize()` call; they are never cached cross-session.
|
|
118
|
+
*/
|
|
119
|
+
private static readonly SENSITIVE_CONFIG_PATHS;
|
|
120
|
+
private sanitizeConfigForPersistence;
|
|
104
121
|
private saveConfiguration;
|
|
105
122
|
private getInstallDate;
|
|
106
123
|
private incrementLaunchCount;
|
package/dist/esm/web.js
CHANGED
|
@@ -226,17 +226,14 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
226
226
|
this.config.liveUpdate.channel = channel;
|
|
227
227
|
this.saveConfiguration();
|
|
228
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* @deprecated since v2. See NativeUpdatePluginWeb.setUpdateUrl in plugin.ts.
|
|
231
|
+
* Update URL is locked after initialize(); this method is a no-op.
|
|
232
|
+
*/
|
|
229
233
|
async setUpdateUrl(url) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
throw this.createError(UpdateErrorCode.INSECURE_URL, 'Update URL must use HTTPS');
|
|
234
|
-
}
|
|
235
|
-
if (!this.config.liveUpdate) {
|
|
236
|
-
this.config.liveUpdate = {};
|
|
237
|
-
}
|
|
238
|
-
this.config.liveUpdate.serverUrl = url;
|
|
239
|
-
this.saveConfiguration();
|
|
234
|
+
void url;
|
|
235
|
+
console.warn('[native-update] setUpdateUrl() is deprecated and ignored. Update URL is locked after initialize().');
|
|
236
|
+
return;
|
|
240
237
|
}
|
|
241
238
|
async validateUpdate(options) {
|
|
242
239
|
// Simulate validation
|
|
@@ -657,8 +654,7 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
657
654
|
*/
|
|
658
655
|
async validateChecksum(data, expectedChecksum) {
|
|
659
656
|
if (!expectedChecksum) {
|
|
660
|
-
|
|
661
|
-
return true;
|
|
657
|
+
throw new Error('Checksum is required but was not provided');
|
|
662
658
|
}
|
|
663
659
|
try {
|
|
664
660
|
let dataBuffer;
|
|
@@ -690,23 +686,29 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
690
686
|
}
|
|
691
687
|
}
|
|
692
688
|
/**
|
|
693
|
-
* Validate digital signature using RSA-PSS or ECDSA
|
|
689
|
+
* Validate digital signature using RSA-PSS or ECDSA.
|
|
690
|
+
*
|
|
691
|
+
* Fails closed: if the host app configured a public key or
|
|
692
|
+
* requireSignature, a missing signature throws. Silent-pass was a P0 gap.
|
|
693
|
+
*
|
|
694
694
|
* @param data - The data that was signed (as string path or ArrayBuffer)
|
|
695
695
|
* @param signature - The signature to verify (base64 encoded)
|
|
696
696
|
*/
|
|
697
697
|
async validateSignature(data, signature) {
|
|
698
|
-
var _a;
|
|
698
|
+
var _a, _b;
|
|
699
|
+
const publicKeyPem = ((_a = this.config.liveUpdate) === null || _a === void 0 ? void 0 : _a.publicKey) ||
|
|
700
|
+
this.config.publicKey;
|
|
701
|
+
const requireSignature = ((_b = this.config.liveUpdate) === null || _b === void 0 ? void 0 : _b.requireSignature) ||
|
|
702
|
+
this.config.requireSignature === true;
|
|
703
|
+
const signatureRequired = !!publicKeyPem || requireSignature;
|
|
699
704
|
if (!signature) {
|
|
700
|
-
|
|
705
|
+
if (signatureRequired) {
|
|
706
|
+
throw new Error('Signature is required but was not provided');
|
|
707
|
+
}
|
|
701
708
|
return true;
|
|
702
709
|
}
|
|
703
|
-
// Get public key from config (can be in liveUpdate.publicKey or top-level config)
|
|
704
|
-
const publicKeyPem = ((_a = this.config.liveUpdate) === null || _a === void 0 ? void 0 : _a.publicKey) ||
|
|
705
|
-
this.config.publicKey;
|
|
706
710
|
if (!publicKeyPem) {
|
|
707
|
-
|
|
708
|
-
console.warn('No public key configured for signature validation');
|
|
709
|
-
return true;
|
|
711
|
+
throw new Error('Public key not configured for signature validation');
|
|
710
712
|
}
|
|
711
713
|
try {
|
|
712
714
|
let dataBuffer;
|
|
@@ -744,7 +746,10 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
744
746
|
const publicKeyPem = ((_a = this.config.liveUpdate) === null || _a === void 0 ? void 0 : _a.publicKey) ||
|
|
745
747
|
this.config.publicKey;
|
|
746
748
|
if (!publicKeyPem) {
|
|
747
|
-
|
|
749
|
+
// ECDSA is only reached as a fallback from validateSignature, which
|
|
750
|
+
// already confirmed a key is configured. Reaching here without one
|
|
751
|
+
// is a logic error — fail closed rather than silently passing.
|
|
752
|
+
return false;
|
|
748
753
|
}
|
|
749
754
|
try {
|
|
750
755
|
let dataBuffer;
|
|
@@ -797,7 +802,10 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
797
802
|
}, false, ['verify']);
|
|
798
803
|
}
|
|
799
804
|
loadStoredData() {
|
|
800
|
-
// Load configuration
|
|
805
|
+
// Load configuration — note that any previously-persisted copy was
|
|
806
|
+
// pre-v2 and may contain an apiKey/publicKey in plaintext. We still
|
|
807
|
+
// read it to preserve non-sensitive state (channel, etc.) but secrets
|
|
808
|
+
// are stripped on save; an old cache wipes itself on first save.
|
|
801
809
|
const storedConfig = localStorage.getItem('native-update-config');
|
|
802
810
|
if (storedConfig) {
|
|
803
811
|
this.config = JSON.parse(storedConfig);
|
|
@@ -830,8 +838,31 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
830
838
|
localStorage.setItem('native-update-current', JSON.stringify(this.currentBundle));
|
|
831
839
|
}
|
|
832
840
|
}
|
|
841
|
+
sanitizeConfigForPersistence(raw) {
|
|
842
|
+
if (!raw || typeof raw !== 'object')
|
|
843
|
+
return raw;
|
|
844
|
+
const clone = JSON.parse(JSON.stringify(raw));
|
|
845
|
+
for (const path of NativeUpdateWeb.SENSITIVE_CONFIG_PATHS) {
|
|
846
|
+
const segments = path.split('.');
|
|
847
|
+
let cursor = clone;
|
|
848
|
+
for (let i = 0; i < segments.length - 1; i++) {
|
|
849
|
+
const next = cursor === null || cursor === void 0 ? void 0 : cursor[segments[i]];
|
|
850
|
+
if (next && typeof next === 'object') {
|
|
851
|
+
cursor = next;
|
|
852
|
+
}
|
|
853
|
+
else {
|
|
854
|
+
cursor = undefined;
|
|
855
|
+
break;
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
if (cursor) {
|
|
859
|
+
delete cursor[segments[segments.length - 1]];
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
return clone;
|
|
863
|
+
}
|
|
833
864
|
saveConfiguration() {
|
|
834
|
-
localStorage.setItem('native-update-config', JSON.stringify(this.config));
|
|
865
|
+
localStorage.setItem('native-update-config', JSON.stringify(this.sanitizeConfigForPersistence(this.config)));
|
|
835
866
|
}
|
|
836
867
|
getInstallDate() {
|
|
837
868
|
const stored = localStorage.getItem('native-update-install-date');
|
|
@@ -884,6 +915,20 @@ export class NativeUpdateWeb extends WebPlugin {
|
|
|
884
915
|
return null;
|
|
885
916
|
}
|
|
886
917
|
}
|
|
918
|
+
/**
|
|
919
|
+
* Strip secrets before persisting config to localStorage. A browser's
|
|
920
|
+
* localStorage is accessible to any script running in the page (XSS,
|
|
921
|
+
* compromised deps) — an `apiKey` or `publicKey` sitting there is a
|
|
922
|
+
* ready-to-use credential. Host apps must pass these on every
|
|
923
|
+
* `initialize()` call; they are never cached cross-session.
|
|
924
|
+
*/
|
|
925
|
+
NativeUpdateWeb.SENSITIVE_CONFIG_PATHS = [
|
|
926
|
+
'apiKey',
|
|
927
|
+
'publicKey',
|
|
928
|
+
'liveUpdate.publicKey',
|
|
929
|
+
'liveUpdate.apiKey',
|
|
930
|
+
'security.publicKey',
|
|
931
|
+
];
|
|
887
932
|
// Alias for backward compatibility with tests
|
|
888
933
|
// Already exported above
|
|
889
934
|
//# sourceMappingURL=web.js.map
|