mnfst 0.5.256 → 0.5.257

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.256';
5
+ const MANIFEST_BUILD_VERSION = '0.5.257';
6
6
 
7
7
  /* Manifest Data Sources - Appwrite Integration */
8
8
 
package/lib/manifest.d.ts CHANGED
@@ -306,7 +306,7 @@ export interface ManifestPush {
306
306
  [extra: string]: unknown;
307
307
  }
308
308
 
309
- /** `$secure` from the device plugin — secure key-value storage (native keychain or fallback). */
309
+ /** `$secure` from the device plugin — Keychain/Keystore via a native plugin; unencrypted localStorage on the web only; rejects on native without a plugin. */
310
310
  export interface ManifestSecure {
311
311
  get(key: string): Promise<string | null>;
312
312
  set(key: string, value: string): Promise<void>;
@@ -2,7 +2,7 @@
2
2
 
3
3
  (function () {
4
4
 
5
- const MANIFEST_BUILD_VERSION = '0.5.256';
5
+ const MANIFEST_BUILD_VERSION = '0.5.257';
6
6
 
7
7
  /* Manifest Data Sources - Configuration */
8
8
 
@@ -251,11 +251,12 @@ function manifestSecureMissingBackend(msg) {
251
251
  return { get: fail('get'), set: fail('set'), remove: fail('remove'), keys: fail('keys'), clear: fail('clear') };
252
252
  }
253
253
 
254
- // Missing backends aren't cached, so a later-registered plugin is picked up
254
+ // Native and use() backends cached; web reused but never chosen on native
255
255
  let _manifestSecureBackend = null;
256
+ let _manifestSecureWeb = null;
256
257
  function manifestSecureBackend() {
257
258
  if (_manifestSecureBackend) return _manifestSecureBackend;
258
- if (!manifestNativeIsNative()) return (_manifestSecureBackend = manifestSecureWebBackend());
259
+ if (!manifestNativeIsNative()) return _manifestSecureWeb || (_manifestSecureWeb = manifestSecureWebBackend());
259
260
  const plugin = manifestNativePlugin('SecureStorage');
260
261
  if (!plugin) return manifestSecureMissingBackend(MANIFEST_SECURE_NONE);
261
262
  if (!manifestNativeInstalled('SecureStorage')) return manifestSecureMissingBackend(MANIFEST_SECURE_UNSYNCED);
@@ -480,7 +481,7 @@ function manifestBiometricPlugin() {
480
481
  if (Array.isArray(headers)) {
481
482
  for (const name of MANIFEST_BIOMETRIC_PLUGINS) {
482
483
  const plugin = manifestNativePlugin(name);
483
- if (plugin && headers.some(h => h && h.name === name)) return { name, plugin };
484
+ if (plugin && manifestNativeInstalled(name)) return { name, plugin };
484
485
  }
485
486
  manifestBiometricWarnNotNative();
486
487
  return null;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest.appwrite.auth.js": "sha384-9WNhIeSEzxxJm+yP7cV41kV2xyzyXgFCNpThqiREcNbb6tnIW6O7VRZPL2jwy9Nk",
3
- "manifest.appwrite.data.js": "sha384-ot7BHrPKWwiWjT10bvg7/hVKHADiMVTG0zoC0zlG389de40O/L7YFzd3ZzDnKXN5",
3
+ "manifest.appwrite.data.js": "sha384-SE2I2UOfch9mzTeH8mN4eahFheT+k/nVTRLjHxFYqxPctgdw6x0c1Mq3Vm29JqZK",
4
4
  "manifest.appwrite.presences.js": "sha384-qsRtzFCtW7pS+I95EQuZQoPAeZvBsNDSMFwDFBJriyCWcNv2Jo2KFvOweClJhowJ",
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-1BIeRvJ8LOJLtCX4uPCepikXSOaSisgTTwfdRYAbChowEGJX1WGC7cfSSBsld0sM",
14
+ "manifest.data.js": "sha384-qUo88WvgBU6QXgCD63d5/LGA5AtJx/qRvi88RUoW+CsOLELxOPNHOV1PimyRBsD6",
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-AWismZl/UjR/NqH7z4Sfg0DZLPpySDuS0tL34ZsbHdNYDD14JzBW9xp/ScmQKilQ",
17
+ "manifest.device.js": "sha384-YeQaS56L8IILqrQNBSeAOLwIh5DuAOrE60cYLK1+46qJtUrXlAvqGe2j5mbV4Vq7",
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-AWismZl/UjR/NqH7z4Sfg0DZLPpySDuS0tL34ZsbHdNYDD14JzBW9xp/ScmQKilQ",
24
+ "manifest.native.js": "sha384-YeQaS56L8IILqrQNBSeAOLwIh5DuAOrE60cYLK1+46qJtUrXlAvqGe2j5mbV4Vq7",
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-BQY7u/VfJ7DZ23QutEXo4OU+EO646rWLdHPTLRB3JzwIY5InbZEtxAPYKMlQGu35",
31
+ "manifest.sw.js": "sha384-KcWPCZS3JjopTS6bWZ+LarK4khKcWOL8q2ez+0OCj2XwjhcIN33IkLhdboAxoksP",
32
32
  "manifest.tabs.js": "sha384-otU09H7jnawVKQdLAYpMCd3jx00tgyPVr42D2hLIBzN5dG4se505YesavdnMqEi1",
33
33
  "manifest.tailwind.js": "sha384-r/Jvqb+Piz21jUts10BbVAJoKkShOdJRVFpywyi4HPIi/OfOJq5CtPyWAPbdkMgt",
34
34
  "manifest.toasts.js": "sha384-3zkWxzw693pxg3QDFsoYCA3CqYaLKmBaMArULXODD66Utolpewl0OAeTB92aWUVv",
@@ -251,11 +251,12 @@ function manifestSecureMissingBackend(msg) {
251
251
  return { get: fail('get'), set: fail('set'), remove: fail('remove'), keys: fail('keys'), clear: fail('clear') };
252
252
  }
253
253
 
254
- // Missing backends aren't cached, so a later-registered plugin is picked up
254
+ // Native and use() backends cached; web reused but never chosen on native
255
255
  let _manifestSecureBackend = null;
256
+ let _manifestSecureWeb = null;
256
257
  function manifestSecureBackend() {
257
258
  if (_manifestSecureBackend) return _manifestSecureBackend;
258
- if (!manifestNativeIsNative()) return (_manifestSecureBackend = manifestSecureWebBackend());
259
+ if (!manifestNativeIsNative()) return _manifestSecureWeb || (_manifestSecureWeb = manifestSecureWebBackend());
259
260
  const plugin = manifestNativePlugin('SecureStorage');
260
261
  if (!plugin) return manifestSecureMissingBackend(MANIFEST_SECURE_NONE);
261
262
  if (!manifestNativeInstalled('SecureStorage')) return manifestSecureMissingBackend(MANIFEST_SECURE_UNSYNCED);
@@ -480,7 +481,7 @@ function manifestBiometricPlugin() {
480
481
  if (Array.isArray(headers)) {
481
482
  for (const name of MANIFEST_BIOMETRIC_PLUGINS) {
482
483
  const plugin = manifestNativePlugin(name);
483
- if (plugin && headers.some(h => h && h.name === name)) return { name, plugin };
484
+ if (plugin && manifestNativeInstalled(name)) return { name, plugin };
484
485
  }
485
486
  manifestBiometricWarnNotNative();
486
487
  return null;
@@ -413,6 +413,23 @@
413
413
  }
414
414
  ]
415
415
  },
416
+ "presence": {
417
+ "description": "Alias of presences — enable the $presence plugin: true, or an options object.",
418
+ "oneOf": [
419
+ {
420
+ "type": "boolean"
421
+ },
422
+ {
423
+ "type": "object",
424
+ "properties": {
425
+ "scope": {
426
+ "type": "string",
427
+ "description": "Roster scope: 'auto'/'team' (current team when one is active, default), 'global', or an explicit team id. May reference an env var via ${VAR_NAME}."
428
+ }
429
+ }
430
+ }
431
+ ]
432
+ },
416
433
  "auth": {
417
434
  "type": "object",
418
435
  "properties": {
@@ -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.256';
19
+ const BUILD_VERSION = '0.5.257';
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.256",
3
+ "version": "0.5.257",
4
4
  "private": false,
5
5
  "workspaces": [
6
6
  "templates/starter",