@flighthq/storage 0.4.0-next.1898.266773a → 0.4.0-next.1908.751021c

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/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
1
+ export { explainStorageBackend, clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
1
+ export { explainStorageBackend, clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
package/dist/storage.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- import type { StorageBackend, StorageMigration, StorageNamespace, StorageQuota, StorageSignals } from '@flighthq/types/contract';
1
+ import type { BackendExplanation, StorageBackend, StorageMigration, StorageNamespace, StorageQuota, StorageSignals } from '@flighthq/types/contract';
2
2
  export declare function clearStorage(): boolean;
3
3
  export declare function clearStorageNamespace(namespace: Readonly<StorageNamespace>): boolean;
4
4
  export declare function createStorageNamespace(prefix: string): StorageNamespace;
5
5
  export declare function createWebStorageBackend(): StorageBackend;
6
6
  export declare function disableStorageSignals(): void;
7
7
  export declare function enableStorageSignals(): StorageSignals;
8
+ export declare function explainStorageBackend(): BackendExplanation;
8
9
  export declare function getNamespacedStorageByteSize(namespace: Readonly<StorageNamespace>): number;
9
10
  export declare function getNamespacedStorageEntries(namespace: Readonly<StorageNamespace>): readonly (readonly [string, string])[];
10
11
  export declare function getNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string): string | null;
@@ -27,10 +28,13 @@ export declare function getStorageQuotaEstimate(): Promise<StorageQuota | null>;
27
28
  export declare function getStorageSignals(): StorageSignals | null;
28
29
  export declare function hasNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string): boolean;
29
30
  export declare function hasStorageItem(key: string): boolean;
31
+ export declare function installStorageHostBackend(backend: StorageBackend): void;
30
32
  export declare function migrateStorage(namespace: Readonly<StorageNamespace> | null, migrations: readonly Readonly<StorageMigration>[]): number;
33
+ export declare function observeStorageHostResult(operation: string, succeeded: boolean): void;
31
34
  export declare function removeNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string): boolean;
32
35
  export declare function removeStorageItem(key: string): boolean;
33
36
  export declare function removeStorageItems(keys: readonly string[]): boolean;
37
+ export declare function resetStorageBackendForTest(): void;
34
38
  export declare function setNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string, value: string): boolean;
35
39
  export declare function setStorageBackend(backend: StorageBackend | null): void;
36
40
  export declare function setStorageBoolean(key: string, value: boolean): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAEd,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,YAAY,IAAI,OAAO,CAMtC;AAGD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CASpF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEvE;AAKD,wBAAgB,uBAAuB,IAAI,cAAc,CAyExD;AAID,wBAAgB,qBAAqB,IAAI,IAAI,CAW5C;AAKD,wBAAgB,oBAAoB,IAAI,cAAc,CAWrD;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAa1D;AAGD,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAa1F;AAID,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACpC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAYxC;AAGD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1G;AAGD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,EAAE,CAOxF;AAGD,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAM7D;AAGD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAE3E;AAID,wBAAgB,kBAAkB,IAAI,MAAM,CAa3C;AAID,wBAAgB,iBAAiB,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAS1E;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzD;AAGD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAOnF;AAID,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAQvD;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAQ/D;AAGD,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK3D;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAKD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAe5E;AAGD,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAEzD;AAGD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpG;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAMvE;AAMD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAC5C,UAAU,EAAE,SAAS,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAChD,MAAM,CAuBR;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAKpF;AAGD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvG;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAOnE;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAKjD;AAGD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnH;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CActE;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtE;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOlE;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAOjF;AAID,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAQhE;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpE"}
package/dist/storage.js CHANGED
@@ -31,54 +31,63 @@ export function createStorageNamespace(prefix) {
31
31
  export function createWebStorageBackend() {
32
32
  return {
33
33
  getItem(key) {
34
- const ls = getWebStorage();
34
+ const ls = _getWebStorage();
35
35
  if (ls === null)
36
36
  return null;
37
37
  try {
38
- return ls.getItem(key);
38
+ const result = ls.getItem(key);
39
+ observeStorageHostResult('getItem', true);
40
+ return result;
39
41
  }
40
42
  catch {
43
+ observeStorageHostResult('getItem', false);
41
44
  return null;
42
45
  }
43
46
  },
44
47
  setItem(key, value) {
45
- const ls = getWebStorage();
48
+ const ls = _getWebStorage();
46
49
  if (ls === null)
47
50
  return false;
48
51
  try {
49
52
  ls.setItem(key, value);
53
+ observeStorageHostResult('setItem', true);
50
54
  return true;
51
55
  }
52
56
  catch {
57
+ observeStorageHostResult('setItem', false);
53
58
  return false;
54
59
  }
55
60
  },
56
61
  removeItem(key) {
57
- const ls = getWebStorage();
62
+ const ls = _getWebStorage();
58
63
  if (ls === null)
59
64
  return false;
60
65
  try {
61
66
  ls.removeItem(key);
67
+ observeStorageHostResult('removeItem', true);
62
68
  return true;
63
69
  }
64
70
  catch {
71
+ observeStorageHostResult('removeItem', false);
65
72
  return false;
66
73
  }
67
74
  },
68
75
  clear() {
69
- const ls = getWebStorage();
76
+ const ls = _getWebStorage();
70
77
  if (ls === null)
71
78
  return false;
72
79
  try {
73
80
  ls.clear();
81
+ observeStorageHostResult('clear', true);
74
82
  return true;
75
83
  }
76
84
  catch {
85
+ observeStorageHostResult('clear', false);
77
86
  return false;
78
87
  }
79
88
  },
80
89
  keys() {
81
- const ls = getWebStorage();
90
+ const ls = _getWebStorage();
82
91
  if (ls === null)
83
92
  return [];
84
93
  try {
@@ -136,6 +145,20 @@ export function enableStorageSignals() {
136
145
  }
137
146
  return _signals;
138
147
  }
148
+ export function explainStorageBackend() {
149
+ if (_custom !== null) {
150
+ return { conflict: _hostConflict, layer: 'custom', operation: null, viability: 'unobserved' };
151
+ }
152
+ if (_host !== null) {
153
+ return {
154
+ conflict: _hostConflict,
155
+ layer: 'host',
156
+ operation: _hostObservation !== null ? _hostObservation.operation : null,
157
+ viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
158
+ };
159
+ }
160
+ return { conflict: false, layer: 'host-not-enabled', operation: null, viability: 'unobserved' };
161
+ }
139
162
  // Returns the estimated UTF-16 byte cost of all keys under the namespace. Returns -1 on denial.
140
163
  export function getNamespacedStorageByteSize(namespace) {
141
164
  const prefix = namespace.prefix + '.';
@@ -185,11 +208,9 @@ export function getNamespacedStorageKeys(namespace) {
185
208
  }
186
209
  return out;
187
210
  }
188
- // The active storage backend, or a lazily-created web default. There is always a backend.
211
+ // The active storage backend. Precedence: custom > host > sentinel.
189
212
  export function getStorageBackend() {
190
- if (_backend === null)
191
- _backend = createWebStorageBackend();
192
- return _backend;
213
+ return _custom ?? _host ?? _sentinel;
193
214
  }
194
215
  // Reads the stored value as a stored boolean ('true'/'false'). Returns null on absent key,
195
216
  // access denial, or unrecognized value.
@@ -334,6 +355,14 @@ export function hasNamespacedStorageItem(namespace, key) {
334
355
  export function hasStorageItem(key) {
335
356
  return getStorageBackend().getItem(key) !== null;
336
357
  }
358
+ export function installStorageHostBackend(backend) {
359
+ if (_host !== null) {
360
+ if (_host !== backend)
361
+ _hostConflict = true;
362
+ return;
363
+ }
364
+ _host = backend;
365
+ }
337
366
  // Applies a sequence of versioned migrations to the given namespace (or global keyspace when null).
338
367
  // Migrations are run in ascending version order, starting from the stored version + 1. Stores the
339
368
  // resulting version under the reserved key `__flight_storage_version` (namespaced or global).
@@ -364,6 +393,12 @@ export function migrateStorage(namespace, migrations) {
364
393
  }
365
394
  return newVersion;
366
395
  }
396
+ export function observeStorageHostResult(operation, succeeded) {
397
+ _hostObservation = {
398
+ operation,
399
+ viability: succeeded ? 'available' : 'runtime-api-unavailable',
400
+ };
401
+ }
367
402
  // Removes a key from the namespace. Returns false on denial.
368
403
  export function removeNamespacedStorageItem(namespace, key) {
369
404
  return getStorageBackend().removeItem(_namespacedKey(namespace, key));
@@ -387,17 +422,23 @@ export function removeStorageItems(keys) {
387
422
  }
388
423
  return success;
389
424
  }
425
+ export function resetStorageBackendForTest() {
426
+ _custom = null;
427
+ _host = null;
428
+ _hostConflict = false;
429
+ _hostObservation = null;
430
+ }
390
431
  // Writes a namespaced value. Returns false on denial/quota.
391
432
  export function setNamespacedStorageItem(namespace, key, value) {
392
433
  return getStorageBackend().setItem(_namespacedKey(namespace, key), value);
393
434
  }
394
- // Installs a native host storage backend; pass null to fall back to the web default.
435
+ // Installs a custom storage backend; pass null to clear the custom override.
395
436
  export function setStorageBackend(backend) {
396
437
  if (_signalsActive && _crossTabUnsubscribe !== null) {
397
438
  _crossTabUnsubscribe();
398
439
  _crossTabUnsubscribe = null;
399
440
  }
400
- _backend = backend;
441
+ _custom = backend;
401
442
  if (_signalsActive) {
402
443
  const b = getStorageBackend();
403
444
  if (b.subscribeChanges !== undefined) {
@@ -446,7 +487,27 @@ export function setStorageJSON(key, value) {
446
487
  export function setStorageNumber(key, value) {
447
488
  return setStorageItem(key, String(value));
448
489
  }
449
- let _backend = null;
490
+ const _sentinel = {
491
+ getItem() {
492
+ return null;
493
+ },
494
+ setItem() {
495
+ return false;
496
+ },
497
+ removeItem() {
498
+ return false;
499
+ },
500
+ clear() {
501
+ return false;
502
+ },
503
+ keys() {
504
+ return [];
505
+ },
506
+ };
507
+ let _custom = null;
508
+ let _host = null;
509
+ let _hostConflict = false;
510
+ let _hostObservation = null;
450
511
  let _signals = null;
451
512
  let _signalsActive = false;
452
513
  let _crossTabUnsubscribe = null;
@@ -457,7 +518,7 @@ function _emitStorageChange(change) {
457
518
  function _namespacedKey(namespace, key) {
458
519
  return namespace.prefix + '.' + key;
459
520
  }
460
- function getWebStorage() {
521
+ function _getWebStorage() {
461
522
  if (typeof window === 'undefined')
462
523
  return null;
463
524
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/storage",
3
- "version": "0.4.0-next.1898.266773a",
3
+ "version": "0.4.0-next.1908.751021c",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,8 +38,8 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/signals": "0.4.0-next.1898.266773a",
42
- "@flighthq/types": "0.4.0-next.1898.266773a"
41
+ "@flighthq/signals": "0.4.0-next.1908.751021c",
42
+ "@flighthq/types": "0.4.0-next.1908.751021c"
43
43
  },
44
44
  "devDependencies": {
45
45
  "typescript": "^5.3.0"
@@ -40,6 +40,10 @@ import {
40
40
  setStorageItems,
41
41
  setStorageJSON,
42
42
  setStorageNumber,
43
+ explainStorageBackend,
44
+ installStorageHostBackend,
45
+ observeStorageHostResult,
46
+ resetStorageBackendForTest,
43
47
  } from './storage';
44
48
 
45
49
  function fakeBackend(): StorageBackend {
@@ -207,6 +211,34 @@ describe('enableStorageSignals', () => {
207
211
  });
208
212
  });
209
213
 
214
+ describe('explainStorageBackend', () => {
215
+ afterEach(() => resetStorageBackendForTest());
216
+
217
+ it('reports host-not-enabled when no backend is installed', () => {
218
+ resetStorageBackendForTest();
219
+ const explanation = explainStorageBackend();
220
+ expect(explanation.layer).toBe('host-not-enabled');
221
+ expect(explanation.conflict).toBe(false);
222
+ expect(explanation.viability).toBe('unobserved');
223
+ });
224
+
225
+ it('reports custom layer when a custom backend is set', () => {
226
+ setStorageBackend(fakeBackend());
227
+ expect(explainStorageBackend().layer).toBe('custom');
228
+ });
229
+
230
+ it('reports host layer when a host backend is installed', () => {
231
+ installStorageHostBackend(fakeBackend());
232
+ expect(explainStorageBackend().layer).toBe('host');
233
+ });
234
+
235
+ it('reports conflict when two different host backends are installed', () => {
236
+ installStorageHostBackend(fakeBackend());
237
+ installStorageHostBackend(fakeBackend());
238
+ expect(explainStorageBackend().conflict).toBe(true);
239
+ });
240
+ });
241
+
210
242
  describe('getNamespacedStorageByteSize', () => {
211
243
  it('counts only namespaced keys', () => {
212
244
  setStorageBackend(fakeBackend());
@@ -565,6 +597,25 @@ describe('hasStorageItem', () => {
565
597
  });
566
598
  });
567
599
 
600
+ describe('installStorageHostBackend', () => {
601
+ afterEach(() => resetStorageBackendForTest());
602
+
603
+ it('installs a host backend that getStorageBackend returns', () => {
604
+ const backend = fakeBackend();
605
+ installStorageHostBackend(backend);
606
+ expect(getStorageBackend()).toBe(backend);
607
+ });
608
+
609
+ it('is first-host-wins: a second different backend sets conflict', () => {
610
+ const first = fakeBackend();
611
+ const second = fakeBackend();
612
+ installStorageHostBackend(first);
613
+ installStorageHostBackend(second);
614
+ expect(getStorageBackend()).toBe(first);
615
+ expect(explainStorageBackend().conflict).toBe(true);
616
+ });
617
+ });
618
+
568
619
  describe('migrateStorage', () => {
569
620
  it('runs migrations in version order', () => {
570
621
  setStorageBackend(fakeBackend());
@@ -649,6 +700,24 @@ describe('migrateStorage', () => {
649
700
  });
650
701
  });
651
702
 
703
+ describe('observeStorageHostResult', () => {
704
+ afterEach(() => resetStorageBackendForTest());
705
+
706
+ it('records a successful observation', () => {
707
+ installStorageHostBackend(fakeBackend());
708
+ observeStorageHostResult('getItem', true);
709
+ const explanation = explainStorageBackend();
710
+ expect(explanation.operation).toBe('getItem');
711
+ expect(explanation.viability).toBe('available');
712
+ });
713
+
714
+ it('records a failed observation', () => {
715
+ installStorageHostBackend(fakeBackend());
716
+ observeStorageHostResult('getItem', false);
717
+ expect(explainStorageBackend().viability).toBe('runtime-api-unavailable');
718
+ });
719
+ });
720
+
652
721
  describe('removeNamespacedStorageItem', () => {
653
722
  it('removes a namespaced key', () => {
654
723
  setStorageBackend(fakeBackend());
@@ -684,6 +753,18 @@ describe('removeStorageItems', () => {
684
753
  });
685
754
  });
686
755
 
756
+ describe('resetStorageBackendForTest', () => {
757
+ it('clears all backend slots', () => {
758
+ setStorageBackend(fakeBackend());
759
+ installStorageHostBackend(fakeBackend());
760
+ observeStorageHostResult('getItem', true);
761
+ resetStorageBackendForTest();
762
+ expect(explainStorageBackend().layer).toBe('host-not-enabled');
763
+ expect(explainStorageBackend().conflict).toBe(false);
764
+ expect(explainStorageBackend().viability).toBe('unobserved');
765
+ });
766
+ });
767
+
687
768
  describe('setNamespacedStorageItem', () => {
688
769
  it('stores under the prefixed key', () => {
689
770
  setStorageBackend(fakeBackend());