@mapvx/web-js 2.0.1 → 2.0.2
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/cjs/domain/models/place.js +26 -0
- package/dist/cjs/domain/models/place.js.map +1 -1
- package/dist/cjs/infrastructure/cache/CacheManager.js +26 -4
- package/dist/cjs/infrastructure/cache/CacheManager.js.map +1 -1
- package/dist/cjs/infrastructure/cache/PersistentCache.js +11 -3
- package/dist/cjs/infrastructure/cache/PersistentCache.js.map +1 -1
- package/dist/cjs/logger/sentry.js +1 -1
- package/dist/es/domain/models/place.d.ts +20 -0
- package/dist/es/domain/models/place.d.ts.map +1 -1
- package/dist/es/domain/models/place.js +26 -0
- package/dist/es/domain/models/place.js.map +1 -1
- package/dist/es/infrastructure/cache/CacheManager.d.ts +5 -1
- package/dist/es/infrastructure/cache/CacheManager.d.ts.map +1 -1
- package/dist/es/infrastructure/cache/CacheManager.js +26 -4
- package/dist/es/infrastructure/cache/CacheManager.js.map +1 -1
- package/dist/es/infrastructure/cache/PersistentCache.d.ts +9 -1
- package/dist/es/infrastructure/cache/PersistentCache.d.ts.map +1 -1
- package/dist/es/infrastructure/cache/PersistentCache.js +11 -3
- package/dist/es/infrastructure/cache/PersistentCache.js.map +1 -1
- package/dist/es/logger/sentry.js +1 -1
- package/dist/umd/index.js +869 -804
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -65,6 +65,32 @@ class MVXPlace {
|
|
|
65
65
|
this.metadata = rawPlace.metadata;
|
|
66
66
|
this.visibility = (_k = rawPlace.visibility) !== null && _k !== void 0 ? _k : "public";
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Rebuilds an {@link MVXPlace} from a value that has lost its prototype — e.g. a
|
|
70
|
+
* place rehydrated from the persistent (localStorage) cache, where `JSON.parse`
|
|
71
|
+
* produces a plain object stripped of the class methods.
|
|
72
|
+
*
|
|
73
|
+
* The place's methods only read its own data fields, so restoring the prototype is
|
|
74
|
+
* sufficient; the raw API {@link PlaceResponse} shape is not needed (and would not
|
|
75
|
+
* fit, since a serialized place already carries the mapped `MVXPlace` fields). Live
|
|
76
|
+
* instances and non-object values are returned unchanged.
|
|
77
|
+
*
|
|
78
|
+
* @param value - A cached place value (plain object) or an existing instance.
|
|
79
|
+
* @returns An MVXPlace whose methods (e.g. {@link inFloor}) work again.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const place = MVXPlace.fromCache(cachedValue);
|
|
84
|
+
* place.inFloor(parentFloors); // no longer throws
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
static fromCache(value) {
|
|
88
|
+
if (value instanceof MVXPlace)
|
|
89
|
+
return value;
|
|
90
|
+
if (value === null || typeof value !== "object")
|
|
91
|
+
return value;
|
|
92
|
+
return Object.assign(Object.create(MVXPlace.prototype), value);
|
|
93
|
+
}
|
|
68
94
|
/**
|
|
69
95
|
* Returns the floor in which the place exists as an InnerFloor object.
|
|
70
96
|
* If no matching available floor is found or if the place is not indoor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place.js","sourceRoot":"","sources":["../../../../src/domain/models/place.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"place.js","sourceRoot":"","sources":["../../../../src/domain/models/place.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,24 @@ exports.CacheManager = void 0;
|
|
|
4
4
|
const cacheConfig_1 = require("./cacheConfig");
|
|
5
5
|
const LRUCache_1 = require("./LRUCache");
|
|
6
6
|
const PersistentCache_1 = require("./PersistentCache");
|
|
7
|
+
const place_1 = require("../../domain/models/place");
|
|
8
|
+
/**
|
|
9
|
+
* Per-type revivers restoring class prototypes lost when the persistent cache
|
|
10
|
+
* rehydrates values from localStorage (`JSON.parse` yields plain objects without
|
|
11
|
+
* methods). Only caches that hold class instances need an entry; plain-data caches
|
|
12
|
+
* (routes, configurations, etc.) are left untouched.
|
|
13
|
+
*/
|
|
14
|
+
const CACHE_DESERIALIZERS = {
|
|
15
|
+
// `places` stores MVXPlace instances.
|
|
16
|
+
places: (value) => place_1.MVXPlace.fromCache(value),
|
|
17
|
+
// `subPlaces` stores a DataSnapshot wrapping an MVXPlace[].
|
|
18
|
+
subPlaces: (value) => {
|
|
19
|
+
const snapshot = value;
|
|
20
|
+
if (!snapshot || !Array.isArray(snapshot.data))
|
|
21
|
+
return value;
|
|
22
|
+
return Object.assign(Object.assign({}, snapshot), { data: snapshot.data.map((place) => place_1.MVXPlace.fromCache(place)) });
|
|
23
|
+
},
|
|
24
|
+
};
|
|
7
25
|
/**
|
|
8
26
|
* CacheManager - Facade for managing multiple typed caches
|
|
9
27
|
*
|
|
@@ -49,15 +67,19 @@ class CacheManager {
|
|
|
49
67
|
];
|
|
50
68
|
for (const cacheType of cacheTypes) {
|
|
51
69
|
const cacheConfig = (0, cacheConfig_1.getCacheConfig)(cacheType, (_c = config === null || config === void 0 ? void 0 : config.configs) === null || _c === void 0 ? void 0 : _c[cacheType]);
|
|
52
|
-
this.caches.set(cacheType, this.createCache(cacheConfig));
|
|
70
|
+
this.caches.set(cacheType, this.createCache(cacheConfig, CACHE_DESERIALIZERS[cacheType]));
|
|
53
71
|
}
|
|
54
72
|
}
|
|
55
73
|
/**
|
|
56
|
-
* Creates a cache instance based on persistence configuration
|
|
74
|
+
* Creates a cache instance based on persistence configuration.
|
|
75
|
+
*
|
|
76
|
+
* @param config - Per-type cache configuration.
|
|
77
|
+
* @param deserialize - Optional reviver forwarded to the persistent cache to
|
|
78
|
+
* rebuild class prototypes when values are rehydrated from localStorage.
|
|
57
79
|
*/
|
|
58
|
-
createCache(config) {
|
|
80
|
+
createCache(config, deserialize) {
|
|
59
81
|
if (this.persistent && config.persistenceKey) {
|
|
60
|
-
return new PersistentCache_1.PersistentCache(config, this.maxStorageBytes);
|
|
82
|
+
return new PersistentCache_1.PersistentCache(config, this.maxStorageBytes, deserialize);
|
|
61
83
|
}
|
|
62
84
|
return new LRUCache_1.LRUCache(config);
|
|
63
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":";;;AACA,+CAOsB;AACtB,yCAAqC;AACrC,uDAAmD;
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,12 +28,20 @@ const LRUCache_1 = require("./LRUCache");
|
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
30
|
class PersistentCache {
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @param config - Cache configuration (limits, TTL, persistence key).
|
|
33
|
+
* @param maxStorageBytes - Optional per-cache localStorage budget.
|
|
34
|
+
* @param deserialize - Optional reviver applied to each value read back from
|
|
35
|
+
* localStorage. `JSON.parse` strips class prototypes, so values that carry
|
|
36
|
+
* methods (e.g. `MVXPlace`) must be rebuilt here; plain-data caches omit it.
|
|
37
|
+
*/
|
|
38
|
+
constructor(config, maxStorageBytes, deserialize) {
|
|
32
39
|
this.storageAvailable = true;
|
|
33
40
|
this.lruCache = new LRUCache_1.LRUCache(config);
|
|
34
41
|
this.persistenceKey = config.persistenceKey || "mvx_cache";
|
|
35
42
|
this.maxStorageBytes = maxStorageBytes !== null && maxStorageBytes !== void 0 ? maxStorageBytes : cacheConfig_1.DEFAULT_MAX_STORAGE_BYTES;
|
|
36
43
|
this.ttlMs = config.ttlMs;
|
|
44
|
+
this.deserialize = deserialize;
|
|
37
45
|
this.hydrate();
|
|
38
46
|
}
|
|
39
47
|
get(key) {
|
|
@@ -85,8 +93,8 @@ class PersistentCache {
|
|
|
85
93
|
if (this.ttlMs > 0 && now - entry.timestamp > this.ttlMs) {
|
|
86
94
|
continue;
|
|
87
95
|
}
|
|
88
|
-
// Restore to LRU cache
|
|
89
|
-
this.lruCache.set(entry.key, entry.value);
|
|
96
|
+
// Restore to LRU cache, reviving class prototypes stripped by JSON when needed.
|
|
97
|
+
this.lruCache.set(entry.key, this.deserialize ? this.deserialize(entry.value) : entry.value);
|
|
90
98
|
}
|
|
91
99
|
}
|
|
92
100
|
catch (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistentCache.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":";;;AAEA,+CAAyD;AACzD,yCAAqC;AAmBrC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"PersistentCache.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const browser_1 = require("@sentry/browser");
|
|
|
9
9
|
// replaced with the package version by scripts/inject-build-defines.js. The DSN
|
|
10
10
|
// falls back to the public MapVX Sentry project DSN when none is injected at
|
|
11
11
|
// build time — a DSN's public key is safe to ship in the client bundle.
|
|
12
|
-
const SDK_VERSION = typeof VERSION !== "undefined" ? VERSION : "2.0.
|
|
12
|
+
const SDK_VERSION = typeof VERSION !== "undefined" ? VERSION : "2.0.2";
|
|
13
13
|
const DSN = typeof SENTRY_DSN !== "undefined" && SENTRY_DSN
|
|
14
14
|
? SENTRY_DSN
|
|
15
15
|
: "https://872f598f020e3cd73a0933b562d24c81@sentry.mapvx.app/5";
|
|
@@ -191,6 +191,26 @@ export declare class MVXPlace {
|
|
|
191
191
|
* ```
|
|
192
192
|
*/
|
|
193
193
|
constructor(rawPlace: PlaceResponse);
|
|
194
|
+
/**
|
|
195
|
+
* Rebuilds an {@link MVXPlace} from a value that has lost its prototype — e.g. a
|
|
196
|
+
* place rehydrated from the persistent (localStorage) cache, where `JSON.parse`
|
|
197
|
+
* produces a plain object stripped of the class methods.
|
|
198
|
+
*
|
|
199
|
+
* The place's methods only read its own data fields, so restoring the prototype is
|
|
200
|
+
* sufficient; the raw API {@link PlaceResponse} shape is not needed (and would not
|
|
201
|
+
* fit, since a serialized place already carries the mapped `MVXPlace` fields). Live
|
|
202
|
+
* instances and non-object values are returned unchanged.
|
|
203
|
+
*
|
|
204
|
+
* @param value - A cached place value (plain object) or an existing instance.
|
|
205
|
+
* @returns An MVXPlace whose methods (e.g. {@link inFloor}) work again.
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ```typescript
|
|
209
|
+
* const place = MVXPlace.fromCache(cachedValue);
|
|
210
|
+
* place.inFloor(parentFloors); // no longer throws
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
static fromCache(value: unknown): MVXPlace;
|
|
194
214
|
/**
|
|
195
215
|
* Returns the floor in which the place exists as an InnerFloor object.
|
|
196
216
|
* If no matching available floor is found or if the place is not indoor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../../src/domain/models/place.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,QAAQ;IACnB;;OAEG;IACI,OAAO,EAAE,MAAM,CAAA;IAEtB;;;OAGG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM,CAAA;IAE3B;;OAEG;IACI,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEhC;;;OAGG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACI,SAAS,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACI,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAEjC;;OAEG;IACI,eAAe,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;IACI,WAAW,EAAE,UAAU,EAAE,CAAA;IAEhC;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B;;OAEG;IACI,mBAAmB,EAAE,MAAM,CAAA;IAElC;;;OAGG;IACI,YAAY,CAAC,EAAE,YAAY,CAAA;IAElC;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACI,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;IAEtC;;OAEG;IACI,IAAI,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACI,MAAM,EAAE,MAAM,EAAE,CAAA;IAEvB;;;OAGG;IACI,OAAO,EAAE,MAAM,EAAE,CAAA;IAExB;;;OAGG;IACI,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IAE9B;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACI,UAAU,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAEnB;;OAEG;IACI,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;IAEpD;;;;;;;;;;;OAWG;gBACS,QAAQ,EAAE,aAAa;IA0CnC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB,EAAE,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS;IAQhE;;;OAGG;IACH,QAAQ,IAAI,MAAM;CAGnB"}
|
|
1
|
+
{"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../../src/domain/models/place.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,QAAQ;IACnB;;OAEG;IACI,OAAO,EAAE,MAAM,CAAA;IAEtB;;;OAGG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM,CAAA;IAE3B;;OAEG;IACI,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEhC;;;OAGG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACI,SAAS,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACI,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAEjC;;OAEG;IACI,eAAe,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;IACI,WAAW,EAAE,UAAU,EAAE,CAAA;IAEhC;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B;;OAEG;IACI,mBAAmB,EAAE,MAAM,CAAA;IAElC;;;OAGG;IACI,YAAY,CAAC,EAAE,YAAY,CAAA;IAElC;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACI,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;IAEtC;;OAEG;IACI,IAAI,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACI,MAAM,EAAE,MAAM,EAAE,CAAA;IAEvB;;;OAGG;IACI,OAAO,EAAE,MAAM,EAAE,CAAA;IAExB;;;OAGG;IACI,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IAE9B;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACI,UAAU,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAEnB;;OAEG;IACI,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;IAEpD;;;;;;;;;;;OAWG;gBACS,QAAQ,EAAE,aAAa;IA0CnC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAM1C;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB,EAAE,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS;IAQhE;;;OAGG;IACH,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -62,6 +62,32 @@ export class MVXPlace {
|
|
|
62
62
|
this.metadata = rawPlace.metadata;
|
|
63
63
|
this.visibility = (_k = rawPlace.visibility) !== null && _k !== void 0 ? _k : "public";
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Rebuilds an {@link MVXPlace} from a value that has lost its prototype — e.g. a
|
|
67
|
+
* place rehydrated from the persistent (localStorage) cache, where `JSON.parse`
|
|
68
|
+
* produces a plain object stripped of the class methods.
|
|
69
|
+
*
|
|
70
|
+
* The place's methods only read its own data fields, so restoring the prototype is
|
|
71
|
+
* sufficient; the raw API {@link PlaceResponse} shape is not needed (and would not
|
|
72
|
+
* fit, since a serialized place already carries the mapped `MVXPlace` fields). Live
|
|
73
|
+
* instances and non-object values are returned unchanged.
|
|
74
|
+
*
|
|
75
|
+
* @param value - A cached place value (plain object) or an existing instance.
|
|
76
|
+
* @returns An MVXPlace whose methods (e.g. {@link inFloor}) work again.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const place = MVXPlace.fromCache(cachedValue);
|
|
81
|
+
* place.inFloor(parentFloors); // no longer throws
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
static fromCache(value) {
|
|
85
|
+
if (value instanceof MVXPlace)
|
|
86
|
+
return value;
|
|
87
|
+
if (value === null || typeof value !== "object")
|
|
88
|
+
return value;
|
|
89
|
+
return Object.assign(Object.create(MVXPlace.prototype), value);
|
|
90
|
+
}
|
|
65
91
|
/**
|
|
66
92
|
* Returns the floor in which the place exists as an InnerFloor object.
|
|
67
93
|
* If no matching available floor is found or if the place is not indoor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place.js","sourceRoot":"","sources":["../../../../src/domain/models/place.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"place.js","sourceRoot":"","sources":["../../../../src/domain/models/place.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,11 @@ export declare class CacheManager {
|
|
|
32
32
|
private readonly maxStorageBytes;
|
|
33
33
|
constructor(config?: CacheManagerConfig);
|
|
34
34
|
/**
|
|
35
|
-
* Creates a cache instance based on persistence configuration
|
|
35
|
+
* Creates a cache instance based on persistence configuration.
|
|
36
|
+
*
|
|
37
|
+
* @param config - Per-type cache configuration.
|
|
38
|
+
* @param deserialize - Optional reviver forwarded to the persistent cache to
|
|
39
|
+
* rebuild class prototypes when values are rehydrated from localStorage.
|
|
36
40
|
*/
|
|
37
41
|
private createCache;
|
|
38
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAIf,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { DEFAULT_MAX_STORAGE_BYTES, getCacheConfig, } from "./cacheConfig";
|
|
2
2
|
import { LRUCache } from "./LRUCache";
|
|
3
3
|
import { PersistentCache } from "./PersistentCache";
|
|
4
|
+
import { MVXPlace } from "../../domain/models/place";
|
|
5
|
+
/**
|
|
6
|
+
* Per-type revivers restoring class prototypes lost when the persistent cache
|
|
7
|
+
* rehydrates values from localStorage (`JSON.parse` yields plain objects without
|
|
8
|
+
* methods). Only caches that hold class instances need an entry; plain-data caches
|
|
9
|
+
* (routes, configurations, etc.) are left untouched.
|
|
10
|
+
*/
|
|
11
|
+
const CACHE_DESERIALIZERS = {
|
|
12
|
+
// `places` stores MVXPlace instances.
|
|
13
|
+
places: (value) => MVXPlace.fromCache(value),
|
|
14
|
+
// `subPlaces` stores a DataSnapshot wrapping an MVXPlace[].
|
|
15
|
+
subPlaces: (value) => {
|
|
16
|
+
const snapshot = value;
|
|
17
|
+
if (!snapshot || !Array.isArray(snapshot.data))
|
|
18
|
+
return value;
|
|
19
|
+
return Object.assign(Object.assign({}, snapshot), { data: snapshot.data.map((place) => MVXPlace.fromCache(place)) });
|
|
20
|
+
},
|
|
21
|
+
};
|
|
4
22
|
/**
|
|
5
23
|
* CacheManager - Facade for managing multiple typed caches
|
|
6
24
|
*
|
|
@@ -46,15 +64,19 @@ export class CacheManager {
|
|
|
46
64
|
];
|
|
47
65
|
for (const cacheType of cacheTypes) {
|
|
48
66
|
const cacheConfig = getCacheConfig(cacheType, (_c = config === null || config === void 0 ? void 0 : config.configs) === null || _c === void 0 ? void 0 : _c[cacheType]);
|
|
49
|
-
this.caches.set(cacheType, this.createCache(cacheConfig));
|
|
67
|
+
this.caches.set(cacheType, this.createCache(cacheConfig, CACHE_DESERIALIZERS[cacheType]));
|
|
50
68
|
}
|
|
51
69
|
}
|
|
52
70
|
/**
|
|
53
|
-
* Creates a cache instance based on persistence configuration
|
|
71
|
+
* Creates a cache instance based on persistence configuration.
|
|
72
|
+
*
|
|
73
|
+
* @param config - Per-type cache configuration.
|
|
74
|
+
* @param deserialize - Optional reviver forwarded to the persistent cache to
|
|
75
|
+
* rebuild class prototypes when values are rehydrated from localStorage.
|
|
54
76
|
*/
|
|
55
|
-
createCache(config) {
|
|
77
|
+
createCache(config, deserialize) {
|
|
56
78
|
if (this.persistent && config.persistenceKey) {
|
|
57
|
-
return new PersistentCache(config, this.maxStorageBytes);
|
|
79
|
+
return new PersistentCache(config, this.maxStorageBytes, deserialize);
|
|
58
80
|
}
|
|
59
81
|
return new LRUCache(config);
|
|
60
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,yBAAyB,EACzB,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,16 @@ export declare class PersistentCache<T> implements ICache<T> {
|
|
|
29
29
|
private readonly persistenceKey;
|
|
30
30
|
private readonly maxStorageBytes;
|
|
31
31
|
private readonly ttlMs;
|
|
32
|
+
private readonly deserialize?;
|
|
32
33
|
private storageAvailable;
|
|
33
|
-
|
|
34
|
+
/**
|
|
35
|
+
* @param config - Cache configuration (limits, TTL, persistence key).
|
|
36
|
+
* @param maxStorageBytes - Optional per-cache localStorage budget.
|
|
37
|
+
* @param deserialize - Optional reviver applied to each value read back from
|
|
38
|
+
* localStorage. `JSON.parse` strips class prototypes, so values that carry
|
|
39
|
+
* methods (e.g. `MVXPlace`) must be rebuilt here; plain-data caches omit it.
|
|
40
|
+
*/
|
|
41
|
+
constructor(config: CacheConfig, maxStorageBytes?: number, deserialize?: (value: T) => T);
|
|
34
42
|
get(key: string): T | undefined;
|
|
35
43
|
set(key: string, value: T): void;
|
|
36
44
|
has(key: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistentCache.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAqBhD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,gBAAgB,CAAgB;
|
|
1
|
+
{"version":3,"file":"PersistentCache.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAqBhD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAiB;IAC9C,OAAO,CAAC,gBAAgB,CAAgB;IAExC;;;;;;OAMG;gBACS,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;IAUxF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,MAAM,EAAE;IAIhB,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,OAAO,CAAC,OAAO;IAiCf;;OAEG;IACH,OAAO,CAAC,OAAO;IAmCf;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAU3B"}
|
|
@@ -25,12 +25,20 @@ import { LRUCache } from "./LRUCache";
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
export class PersistentCache {
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* @param config - Cache configuration (limits, TTL, persistence key).
|
|
30
|
+
* @param maxStorageBytes - Optional per-cache localStorage budget.
|
|
31
|
+
* @param deserialize - Optional reviver applied to each value read back from
|
|
32
|
+
* localStorage. `JSON.parse` strips class prototypes, so values that carry
|
|
33
|
+
* methods (e.g. `MVXPlace`) must be rebuilt here; plain-data caches omit it.
|
|
34
|
+
*/
|
|
35
|
+
constructor(config, maxStorageBytes, deserialize) {
|
|
29
36
|
this.storageAvailable = true;
|
|
30
37
|
this.lruCache = new LRUCache(config);
|
|
31
38
|
this.persistenceKey = config.persistenceKey || "mvx_cache";
|
|
32
39
|
this.maxStorageBytes = maxStorageBytes !== null && maxStorageBytes !== void 0 ? maxStorageBytes : DEFAULT_MAX_STORAGE_BYTES;
|
|
33
40
|
this.ttlMs = config.ttlMs;
|
|
41
|
+
this.deserialize = deserialize;
|
|
34
42
|
this.hydrate();
|
|
35
43
|
}
|
|
36
44
|
get(key) {
|
|
@@ -82,8 +90,8 @@ export class PersistentCache {
|
|
|
82
90
|
if (this.ttlMs > 0 && now - entry.timestamp > this.ttlMs) {
|
|
83
91
|
continue;
|
|
84
92
|
}
|
|
85
|
-
// Restore to LRU cache
|
|
86
|
-
this.lruCache.set(entry.key, entry.value);
|
|
93
|
+
// Restore to LRU cache, reviving class prototypes stripped by JSON when needed.
|
|
94
|
+
this.lruCache.set(entry.key, this.deserialize ? this.deserialize(entry.value) : entry.value);
|
|
87
95
|
}
|
|
88
96
|
}
|
|
89
97
|
catch (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistentCache.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAmBrC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"PersistentCache.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":"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"}
|
package/dist/es/logger/sentry.js
CHANGED
|
@@ -5,7 +5,7 @@ import { BrowserClient, defaultStackParser, getDefaultIntegrations, makeFetchTra
|
|
|
5
5
|
// replaced with the package version by scripts/inject-build-defines.js. The DSN
|
|
6
6
|
// falls back to the public MapVX Sentry project DSN when none is injected at
|
|
7
7
|
// build time — a DSN's public key is safe to ship in the client bundle.
|
|
8
|
-
const SDK_VERSION = typeof VERSION !== "undefined" ? VERSION : "2.0.
|
|
8
|
+
const SDK_VERSION = typeof VERSION !== "undefined" ? VERSION : "2.0.2";
|
|
9
9
|
const DSN = typeof SENTRY_DSN !== "undefined" && SENTRY_DSN
|
|
10
10
|
? SENTRY_DSN
|
|
11
11
|
: "https://872f598f020e3cd73a0933b562d24c81@sentry.mapvx.app/5";
|