mnfst 0.5.253 → 0.5.254

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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  (function () {
4
4
 
5
- const MANIFEST_BUILD_VERSION = '0.5.253';
5
+ const MANIFEST_BUILD_VERSION = '0.5.254';
6
6
 
7
7
  /* Manifest Data Sources - Appwrite Integration */
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  (function () {
4
4
 
5
- const MANIFEST_BUILD_VERSION = '0.5.253';
5
+ const MANIFEST_BUILD_VERSION = '0.5.254';
6
6
 
7
7
  /* Manifest Data Sources - Configuration */
8
8
 
@@ -228,10 +228,23 @@ function manifestSecureNativeBackend(plugin, name) {
228
228
  };
229
229
  }
230
230
 
231
+ // Registered in JS but absent from the native header list
232
+ function manifestSecureInstalled(name) {
233
+ const headers = window.Capacitor && window.Capacitor.PluginHeaders;
234
+ return !Array.isArray(headers) || headers.some(h => h && h.name === name);
235
+ }
236
+
237
+ // Rejects every call; never falls back to unencrypted web storage
238
+ function manifestSecureMissingBackend(name) {
239
+ const fail = (op) => async () => manifestSecureFail(op, new Error(name + ' plugin is not installed natively; run npx cap sync'));
240
+ return { get: fail('get'), set: fail('set'), remove: fail('remove'), keys: fail('keys'), clear: fail('clear') };
241
+ }
242
+
231
243
  let _manifestSecureBackend = null;
232
244
  function manifestSecureBackend() {
233
245
  if (_manifestSecureBackend) return _manifestSecureBackend;
234
246
  const plugin = manifestNativeIsNative() ? manifestNativePlugin('SecureStorage') : null;
247
+ if (plugin && !manifestSecureInstalled('SecureStorage')) return manifestSecureMissingBackend('SecureStorage');
235
248
  _manifestSecureBackend = plugin ? manifestSecureNativeBackend(plugin, 'SecureStorage') : manifestSecureWebBackend();
236
249
  return _manifestSecureBackend;
237
250
  }
@@ -456,6 +469,7 @@ function manifestBiometricPlugin() {
456
469
  const plugin = manifestNativePlugin(name);
457
470
  if (plugin && headers.some(h => h && h.name === name)) return { name, plugin };
458
471
  }
472
+ manifestBiometricWarnNotNative();
459
473
  return null;
460
474
  }
461
475
  for (const name of MANIFEST_BIOMETRIC_PLUGINS) {
@@ -469,6 +483,16 @@ function manifestBiometricWarn(msg, e) {
469
483
  try { console.warn('[Manifest] $biometric: ' + msg, e || ''); } catch (_) {}
470
484
  }
471
485
 
486
+ // Registered in JS but missing from the native build: warn once
487
+ let manifestBiometricNotNativeWarned = false;
488
+ function manifestBiometricWarnNotNative() {
489
+ if (manifestBiometricNotNativeWarned) return;
490
+ const missing = MANIFEST_BIOMETRIC_PLUGINS.filter(n => manifestNativePlugin(n));
491
+ if (!missing.length) return;
492
+ manifestBiometricNotNativeWarned = true;
493
+ manifestBiometricWarn(missing.join(', ') + ' registered but not installed natively; run npx cap sync');
494
+ }
495
+
472
496
  async function manifestBiometricAvailable() {
473
497
  const found = manifestBiometricPlugin();
474
498
  if (!found) return false;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest.appwrite.auth.js": "sha384-dsIWnH0qCAGSzAXMGrd8fvOrVl4tOIE6j5tC35JPTrQXZ56qLD36ARyvhR7vi3Id",
3
- "manifest.appwrite.data.js": "sha384-xxVLbIAAzMs+ksXTzRGtu0GxALohKKkFRXsvLyp6BvZesTk/JsS0lscvkIcOyGO1",
3
+ "manifest.appwrite.data.js": "sha384-2emZSbGBrkbdSTRNOsctnzbJ/wd8onhdPH5pKh99u6QwIQ3tl7C4Pc47kEFeTerJ",
4
4
  "manifest.appwrite.presences.js": "sha384-JyVDWFT69b7Svq8J8p9tNWe2v9PZNQBY5UyhtOl1vnuHFAX0CRQ3MA9SiKq5wzNh",
5
5
  "manifest.bindings.js": "sha384-lPtMf8Ykaic9gNVZKq8Scia1881ZeMAyxer3WCIkUNwwrgzGBWto1OXADUwjvORF",
6
6
  "manifest.charts.js": "sha384-G+huD7UvjF9zDovdVVlh4I5X1Mq4oNnJfoFg4NnGdP3R/4Skq9hy5cGuHNYLxDYm",
@@ -11,24 +11,24 @@
11
11
  "manifest.combobox.js": "sha384-MILTkrgsTzsYUjGo4ZuADqV85Xs4GmfB4xexfe9vbJMIoQTZ42W4zs+DTaVSPEsx",
12
12
  "manifest.components.js": "sha384-BUFA8h+G5Plr82sV7bKzO42pPoiRZwRQcKj1lt2ROFiKjjlkayU/vmkAFqEsdBA+",
13
13
  "manifest.computed.js": "sha384-GYML/e81gQfN+iDbqhPUgny8bINCyL+SrbTofoGk4hlCnLLjv51mCv42JMqq+ku5",
14
- "manifest.data.js": "sha384-apX4l/k05t8snFyKYLbMbN+kG6xjHHI8gbs32376S3WruzynLOaF+uq43cCGfifp",
14
+ "manifest.data.js": "sha384-mDAMnK8WbWh2J33JtpcKA5rqNUXmqvVp7KRqgbRc2TGcPB8La78OIhmWAn+/sEgv",
15
15
  "manifest.datepicker.js": "sha384-2XwFFnS4Bg5FDvG/v8x6KUvrjcBQEOYyTxynX2K/D/Qb3PI6+Y04lEwCnVDJLzwL",
16
16
  "manifest.defer.js": "sha384-GK9qJkYtchtyzSQ+3zmDQUJE3+au4qthT2M8JnFjXxgfwCH5IVKc2r3tackgMryU",
17
- "manifest.device.js": "sha384-jY+Xjt/v4I7SWTFzIGdPRJRTl634i6pj5T6jQaEn9keNTccPGD9lAIbYWq4J8oc7",
17
+ "manifest.device.js": "sha384-EYHIplzx+GmWqm3fgARB9BxtmJsNv9k+avS1RQo3PrIGku4shsMR7JtykWc3g2y1",
18
18
  "manifest.dropdowns.js": "sha384-acufUps7R9WjqB4XXW5JLACqniuHJGM4CNTb2rF4B2Q/jv7ZRmsAwfr2McanOz3s",
19
19
  "manifest.edit.js": "sha384-MOgQNdNLeHijhR0u2W6ntoOulKFglsATCFDqkinesOU15tHoILk/JNzHKkGi5dUG",
20
20
  "manifest.export.js": "sha384-Rx6XvqBZc4apzP/FwcDr6yIln4/zNa08Q4ZqBZcEqUz1aNZQfl4h0+Ae7mqCQyuG",
21
21
  "manifest.icons.js": "sha384-kKOINpX70YzNO3FvkV6umrmO3f0KIu0DNbwB+ej55a7y/lhU7v/myQtXL0bwCTbt",
22
22
  "manifest.localization.js": "sha384-EImsIw8Z3l13V5eH9ZJF/yfsOfIvR1oPRNSArANkPji7V8O3IRf6zMwsNiAGj3Hk",
23
23
  "manifest.markdown.js": "sha384-heyDR40LXHaAmAuA+fa381uFwShk1oAqpFFY6E2Qq4T3VN0TQfRqyc++MF40K5Hj",
24
- "manifest.native.js": "sha384-jY+Xjt/v4I7SWTFzIGdPRJRTl634i6pj5T6jQaEn9keNTccPGD9lAIbYWq4J8oc7",
24
+ "manifest.native.js": "sha384-EYHIplzx+GmWqm3fgARB9BxtmJsNv9k+avS1RQo3PrIGku4shsMR7JtykWc3g2y1",
25
25
  "manifest.payments.js": "sha384-8pofk2zhxtapPMpwnFyTelPMrYhShNhDCE722uQh/EYFvZFuPLmSdgunqsarVQjv",
26
26
  "manifest.rich.text.js": "sha384-ZBV9jXmu2nmprEHicddRE/m7nR4RPZtVc969Jte0+EJYBcVph7itkjcgN/61PyeC",
27
27
  "manifest.router.js": "sha384-9LMIkwrgnxmmFDv70TND2MRJF1z6Nl4yqG7fH5DbJ8oUIhdu/u4yUPSime1/EYhP",
28
28
  "manifest.slides.js": "sha384-3uRTkyK9XPLmnxI2+igZlpi4EyPlU/7IHj5j3BZJJ2KN455vXyk99fiXV3feO/XY",
29
29
  "manifest.status.js": "sha384-MBO345ab7H6Uq1X2dZLt4Ge1Gcra+Z2qYApvlAeIV8CJhDDJrz2FPXpp+Kcp8zcM",
30
30
  "manifest.svg.js": "sha384-qr/8H9+2cIhSXNbRWRtIdrDlTOxKlNJqwEefHvCYoiBNW/kKhPTFa109Orv/EBnb",
31
- "manifest.sw.js": "sha384-9Kcczuh7GSCImjjTu09aZ0C/EaVHItZ0McwTdNqv1ZCWZe0UfUn9+IYX3ISYE0kk",
31
+ "manifest.sw.js": "sha384-tUvpqn6eVfGDN0UN1JJP/lNhiE6O4tukafpJdrWXt7jqO1WSSbCbcVMLTAKeozCG",
32
32
  "manifest.tabs.js": "sha384-otU09H7jnawVKQdLAYpMCd3jx00tgyPVr42D2hLIBzN5dG4se505YesavdnMqEi1",
33
33
  "manifest.tailwind.js": "sha384-r/Jvqb+Piz21jUts10BbVAJoKkShOdJRVFpywyi4HPIi/OfOJq5CtPyWAPbdkMgt",
34
34
  "manifest.toasts.js": "sha384-3zkWxzw693pxg3QDFsoYCA3CqYaLKmBaMArULXODD66Utolpewl0OAeTB92aWUVv",
@@ -228,10 +228,23 @@ function manifestSecureNativeBackend(plugin, name) {
228
228
  };
229
229
  }
230
230
 
231
+ // Registered in JS but absent from the native header list
232
+ function manifestSecureInstalled(name) {
233
+ const headers = window.Capacitor && window.Capacitor.PluginHeaders;
234
+ return !Array.isArray(headers) || headers.some(h => h && h.name === name);
235
+ }
236
+
237
+ // Rejects every call; never falls back to unencrypted web storage
238
+ function manifestSecureMissingBackend(name) {
239
+ const fail = (op) => async () => manifestSecureFail(op, new Error(name + ' plugin is not installed natively; run npx cap sync'));
240
+ return { get: fail('get'), set: fail('set'), remove: fail('remove'), keys: fail('keys'), clear: fail('clear') };
241
+ }
242
+
231
243
  let _manifestSecureBackend = null;
232
244
  function manifestSecureBackend() {
233
245
  if (_manifestSecureBackend) return _manifestSecureBackend;
234
246
  const plugin = manifestNativeIsNative() ? manifestNativePlugin('SecureStorage') : null;
247
+ if (plugin && !manifestSecureInstalled('SecureStorage')) return manifestSecureMissingBackend('SecureStorage');
235
248
  _manifestSecureBackend = plugin ? manifestSecureNativeBackend(plugin, 'SecureStorage') : manifestSecureWebBackend();
236
249
  return _manifestSecureBackend;
237
250
  }
@@ -456,6 +469,7 @@ function manifestBiometricPlugin() {
456
469
  const plugin = manifestNativePlugin(name);
457
470
  if (plugin && headers.some(h => h && h.name === name)) return { name, plugin };
458
471
  }
472
+ manifestBiometricWarnNotNative();
459
473
  return null;
460
474
  }
461
475
  for (const name of MANIFEST_BIOMETRIC_PLUGINS) {
@@ -469,6 +483,16 @@ function manifestBiometricWarn(msg, e) {
469
483
  try { console.warn('[Manifest] $biometric: ' + msg, e || ''); } catch (_) {}
470
484
  }
471
485
 
486
+ // Registered in JS but missing from the native build: warn once
487
+ let manifestBiometricNotNativeWarned = false;
488
+ function manifestBiometricWarnNotNative() {
489
+ if (manifestBiometricNotNativeWarned) return;
490
+ const missing = MANIFEST_BIOMETRIC_PLUGINS.filter(n => manifestNativePlugin(n));
491
+ if (!missing.length) return;
492
+ manifestBiometricNotNativeWarned = true;
493
+ manifestBiometricWarn(missing.join(', ') + ' registered but not installed natively; run npx cap sync');
494
+ }
495
+
472
496
  async function manifestBiometricAvailable() {
473
497
  const found = manifestBiometricPlugin();
474
498
  if (!found) return false;
@@ -16,7 +16,7 @@
16
16
 
17
17
  // Build stamps the published version here; unstamped (dev) falls back to the
18
18
  // registration URL's `v`, then 'dev'.
19
- const BUILD_VERSION = '0.5.253';
19
+ const BUILD_VERSION = '0.5.254';
20
20
  const CACHE_PREFIX = 'mnfst-sw:';
21
21
  const META_CACHE = CACHE_PREFIX + 'meta';
22
22
  // Sized to hold a full precache.json warm-up (PRECACHE_MAX_ENTRIES server-side)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mnfst",
3
- "version": "0.5.253",
3
+ "version": "0.5.254",
4
4
  "private": false,
5
5
  "workspaces": [
6
6
  "templates/starter",