@reidelsaltres/pureper 0.2.33 → 0.2.34
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/out/foundation/CacheManager.d.ts +20 -0
- package/out/foundation/CacheManager.d.ts.map +1 -0
- package/out/foundation/CacheManager.js +129 -0
- package/out/foundation/CacheManager.js.map +1 -0
- package/out/foundation/Injection.d.ts +6 -0
- package/out/foundation/Injection.d.ts.map +1 -1
- package/out/foundation/Injection.js +23 -0
- package/out/foundation/Injection.js.map +1 -1
- package/out/foundation/Module.d.ts +41 -24
- package/out/foundation/Module.d.ts.map +1 -1
- package/out/foundation/Module.js +253 -152
- package/out/foundation/Module.js.map +1 -1
- package/out/foundation/Theme.d.ts +2 -0
- package/out/foundation/Theme.d.ts.map +1 -1
- package/out/foundation/Theme.js +9 -1
- package/out/foundation/Theme.js.map +1 -1
- package/out/foundation/Triplet.d.ts +10 -0
- package/out/foundation/Triplet.d.ts.map +1 -1
- package/out/foundation/Triplet.js +17 -0
- package/out/foundation/Triplet.js.map +1 -1
- package/out/foundation/TripletDecorator.d.ts.map +1 -1
- package/out/foundation/TripletDecorator.js +28 -1
- package/out/foundation/TripletDecorator.js.map +1 -1
- package/out/foundation/engine/Expression.d.ts.map +1 -1
- package/out/foundation/engine/Expression.js +11 -11
- package/out/foundation/engine/Expression.js.map +1 -1
- package/out/foundation/engine/TemplateEngine.d.ts.map +1 -1
- package/out/foundation/engine/TemplateEngine.js +6 -2
- package/out/foundation/engine/TemplateEngine.js.map +1 -1
- package/out/foundation/worker/ServiceWorker.d.ts +2 -25
- package/out/foundation/worker/ServiceWorker.d.ts.map +1 -1
- package/out/foundation/worker/ServiceWorker.js +2 -94
- package/out/foundation/worker/ServiceWorker.js.map +1 -1
- package/out/index.d.ts +4 -3
- package/out/index.d.ts.map +1 -1
- package/out/index.js +3 -2
- package/out/index.js.map +1 -1
- package/package.json +1 -1
- package/src/foundation/CacheManager.ts +151 -0
- package/src/foundation/Injection.ts +24 -0
- package/src/foundation/Module.ts +282 -174
- package/src/foundation/Theme.ts +10 -1
- package/src/foundation/Triplet.ts +21 -0
- package/src/foundation/TripletDecorator.ts +19 -1
- package/src/foundation/engine/Expression.ts +11 -12
- package/src/foundation/engine/TemplateEngine.ts +6 -3
- package/src/foundation/worker/ServiceWorker.ts +2 -101
- package/src/index.ts +4 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Observable from "./api/Observer.js";
|
|
2
|
+
export type DownloadProgress = {
|
|
3
|
+
totalFiles: number;
|
|
4
|
+
completedFiles: number;
|
|
5
|
+
currentFile: string;
|
|
6
|
+
totalBytes: number;
|
|
7
|
+
downloadedBytes: number;
|
|
8
|
+
speed: number;
|
|
9
|
+
active: boolean;
|
|
10
|
+
};
|
|
11
|
+
export default class CacheManager {
|
|
12
|
+
private static readonly CACHE_NAME;
|
|
13
|
+
static resolveUrl(url: string): string;
|
|
14
|
+
static download(urls: string[], progress?: Observable<DownloadProgress>): Promise<number>;
|
|
15
|
+
static delete(urls: string[]): Promise<void>;
|
|
16
|
+
static isCached(url: string): Promise<boolean>;
|
|
17
|
+
static getCachedSize(urls: string[]): Promise<number>;
|
|
18
|
+
static formatBytes(bytes: number): string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=CacheManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/foundation/CacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAEtD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;WAIzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;WA8FlF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;WAQrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAOvC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAc3D,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAO5C"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import Fetcher from "./Fetcher.js";
|
|
2
|
+
export default class CacheManager {
|
|
3
|
+
static CACHE_NAME = 'purper-modules';
|
|
4
|
+
static resolveUrl(url) {
|
|
5
|
+
return Fetcher.resolveUrl(url);
|
|
6
|
+
}
|
|
7
|
+
static async download(urls, progress) {
|
|
8
|
+
if (urls.length === 0)
|
|
9
|
+
return 0;
|
|
10
|
+
const totalFiles = urls.length;
|
|
11
|
+
let completedFiles = 0;
|
|
12
|
+
let downloadedBytes = 0;
|
|
13
|
+
let totalBytes = 0;
|
|
14
|
+
let lastTime = performance.now();
|
|
15
|
+
let lastBytes = 0;
|
|
16
|
+
let speed = 0;
|
|
17
|
+
const update = (currentFile, active) => {
|
|
18
|
+
progress?.setObject({ totalFiles, completedFiles, currentFile, totalBytes, downloadedBytes, speed, active });
|
|
19
|
+
};
|
|
20
|
+
// Estimate total size via HEAD
|
|
21
|
+
const sizes = await Promise.all(urls.map(async (url) => {
|
|
22
|
+
try {
|
|
23
|
+
const resp = await fetch(this.resolveUrl(url), { method: 'HEAD' });
|
|
24
|
+
const cl = resp.headers.get('content-length');
|
|
25
|
+
return cl ? parseInt(cl, 10) : 0;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
totalBytes = sizes.reduce((a, b) => a + b, 0);
|
|
32
|
+
update('', true);
|
|
33
|
+
const failedFiles = [];
|
|
34
|
+
for (const url of urls) {
|
|
35
|
+
const resolved = this.resolveUrl(url);
|
|
36
|
+
const fileName = url.split('/').pop() || url;
|
|
37
|
+
update(fileName, true);
|
|
38
|
+
try {
|
|
39
|
+
const response = await fetch(resolved);
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
console.warn(`[CacheManager]: Failed to download ${url}: ${response.status}`);
|
|
42
|
+
failedFiles.push(url);
|
|
43
|
+
completedFiles++;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const reader = response.body?.getReader();
|
|
47
|
+
const chunks = [];
|
|
48
|
+
if (reader) {
|
|
49
|
+
while (true) {
|
|
50
|
+
const { done, value } = await reader.read();
|
|
51
|
+
if (done)
|
|
52
|
+
break;
|
|
53
|
+
chunks.push(value);
|
|
54
|
+
downloadedBytes += value.byteLength;
|
|
55
|
+
const now = performance.now();
|
|
56
|
+
const elapsed = (now - lastTime) / 1000;
|
|
57
|
+
if (elapsed >= 0.5) {
|
|
58
|
+
speed = (downloadedBytes - lastBytes) / elapsed;
|
|
59
|
+
lastTime = now;
|
|
60
|
+
lastBytes = downloadedBytes;
|
|
61
|
+
}
|
|
62
|
+
update(fileName, true);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if ('caches' in window) {
|
|
66
|
+
try {
|
|
67
|
+
const cache = await caches.open(this.CACHE_NAME);
|
|
68
|
+
const blob = new Blob(chunks);
|
|
69
|
+
const cacheResponse = new Response(blob, { headers: response.headers });
|
|
70
|
+
await cache.put(resolved, cacheResponse);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
console.warn(`[CacheManager]: Failed to cache ${url}`, e);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
completedFiles++;
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
console.warn(`[CacheManager]: Error downloading ${url}`, e);
|
|
80
|
+
failedFiles.push(url);
|
|
81
|
+
completedFiles++;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
speed = 0;
|
|
85
|
+
update('', false);
|
|
86
|
+
if (failedFiles.length > 0) {
|
|
87
|
+
throw new Error(`[CacheManager]: ${failedFiles.length} file(s) failed to download: ${failedFiles.join(', ')}`);
|
|
88
|
+
}
|
|
89
|
+
return downloadedBytes;
|
|
90
|
+
}
|
|
91
|
+
static async delete(urls) {
|
|
92
|
+
if (!('caches' in window) || urls.length === 0)
|
|
93
|
+
return;
|
|
94
|
+
const cache = await caches.open(this.CACHE_NAME);
|
|
95
|
+
for (const url of urls) {
|
|
96
|
+
await cache.delete(this.resolveUrl(url));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
static async isCached(url) {
|
|
100
|
+
if (!('caches' in window))
|
|
101
|
+
return false;
|
|
102
|
+
const cache = await caches.open(this.CACHE_NAME);
|
|
103
|
+
const match = await cache.match(this.resolveUrl(url));
|
|
104
|
+
return match !== undefined;
|
|
105
|
+
}
|
|
106
|
+
static async getCachedSize(urls) {
|
|
107
|
+
if (!('caches' in window) || urls.length === 0)
|
|
108
|
+
return 0;
|
|
109
|
+
const cache = await caches.open(this.CACHE_NAME);
|
|
110
|
+
let total = 0;
|
|
111
|
+
for (const url of urls) {
|
|
112
|
+
const match = await cache.match(this.resolveUrl(url));
|
|
113
|
+
if (match) {
|
|
114
|
+
const blob = await match.blob();
|
|
115
|
+
total += blob.size;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return total;
|
|
119
|
+
}
|
|
120
|
+
static formatBytes(bytes) {
|
|
121
|
+
if (bytes === 0)
|
|
122
|
+
return '0 B';
|
|
123
|
+
const k = 1024;
|
|
124
|
+
const sizes = ['B', 'KB', 'MB', 'GB'];
|
|
125
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
126
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=CacheManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/foundation/CacheManager.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AAYnC,MAAM,CAAC,OAAO,OAAO,YAAY;IACrB,MAAM,CAAU,UAAU,GAAG,gBAAgB,CAAC;IAEtD,MAAM,CAAC,UAAU,CAAC,GAAW;QACzB,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAuC;QACzE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,MAAe,EAAE,EAAE;YACpD,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjH,CAAC,CAAC;QAEF,+BAA+B;QAC/B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACnD,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;QACJ,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9C,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEjB,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;YAC7C,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEvB,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9E,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtB,cAAc,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAe,EAAE,CAAC;gBAE9B,IAAI,MAAM,EAAE,CAAC;oBACT,OAAO,IAAI,EAAE,CAAC;wBACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBAC5C,IAAI,IAAI;4BAAE,MAAM;wBAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnB,eAAe,IAAI,KAAK,CAAC,UAAU,CAAC;wBAEpC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBAC9B,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;wBACxC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;4BACjB,KAAK,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;4BAChD,QAAQ,GAAG,GAAG,CAAC;4BACf,SAAS,GAAG,eAAe,CAAC;wBAChC,CAAC;wBAED,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC3B,CAAC;gBACL,CAAC;gBAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC9B,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxE,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAC7C,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC9D,CAAC;gBACL,CAAC;gBAED,cAAc,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5D,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,cAAc,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QAED,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAElB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,CAAC,MAAM,gCAAgC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnH,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAc;QAC9B,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACvD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC7B,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,KAAK,KAAK,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAc;QACrC,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC5B,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC"}
|
|
@@ -78,6 +78,12 @@ export declare class Placeholder {
|
|
|
78
78
|
* All live instances of this placeholder will reload.
|
|
79
79
|
*/
|
|
80
80
|
static switchTo(placeholderName: string, implName: string): Promise<void>;
|
|
81
|
+
/** Return all registered placeholder names. */
|
|
82
|
+
static getAllNames(): string[];
|
|
83
|
+
/** Deactivate a placeholder — hides all instances. */
|
|
84
|
+
static deactivate(name: string): void;
|
|
85
|
+
/** Activate a placeholder — restores the default implementation. */
|
|
86
|
+
static activate(name: string): void;
|
|
81
87
|
/**
|
|
82
88
|
* Switch a single instance to a different implementation and reload it.
|
|
83
89
|
* Does NOT change the global active implementation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Injection.d.ts","sourceRoot":"","sources":["../../src/foundation/Injection.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACnC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAc;IACvB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAgB,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAgB,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;gBAEhC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAiBhE;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;IACpB,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAEnE,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IACzE,SAAgB,UAAU,EAAE,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAwB;IAErF,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IAEtD,OAAO;IAIP,2CAA2C;WAC7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAS5C,qCAAqC;WACvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC,4EAA4E;IACrE,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAcpD,+CAA+C;IACxC,SAAS,IAAI,cAAc,GAAG,IAAI;IAIzC,wCAAwC;IACjC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7C,mCAAmC;IAC5B,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI/C,sCAAsC;IAC/B,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC;IAInC;;;OAGG;WACiB,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtF;;;OAGG;WACiB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlH"}
|
|
1
|
+
{"version":3,"file":"Injection.d.ts","sourceRoot":"","sources":["../../src/foundation/Injection.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACnC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAc;IACvB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAgB,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAgB,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;gBAEhC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAiBhE;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;IACpB,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAEnE,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IACzE,SAAgB,UAAU,EAAE,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAwB;IAErF,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IAEtD,OAAO;IAIP,2CAA2C;WAC7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAS5C,qCAAqC;WACvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC,4EAA4E;IACrE,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAcpD,+CAA+C;IACxC,SAAS,IAAI,cAAc,GAAG,IAAI;IAIzC,wCAAwC;IACjC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7C,mCAAmC;IAC5B,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI/C,sCAAsC;IAC/B,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC;IAInC;;;OAGG;WACiB,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtF,+CAA+C;WACjC,WAAW,IAAI,MAAM,EAAE;IAIrC,sDAAsD;WACxC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5C,oEAAoE;WACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU1C;;;OAGG;WACiB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlH"}
|
|
@@ -130,6 +130,29 @@ export class Placeholder {
|
|
|
130
130
|
await Promise.all(reloads);
|
|
131
131
|
console.info(`[Placeholder:${placeholderName}]: Reloaded ${reloads.length} instance(s)`);
|
|
132
132
|
}
|
|
133
|
+
/** Return all registered placeholder names. */
|
|
134
|
+
static getAllNames() {
|
|
135
|
+
return Array.from(this._all.keys());
|
|
136
|
+
}
|
|
137
|
+
/** Deactivate a placeholder — hides all instances. */
|
|
138
|
+
static deactivate(name) {
|
|
139
|
+
const p = this._all.get(name);
|
|
140
|
+
if (!p)
|
|
141
|
+
return;
|
|
142
|
+
p.activeImpl.setObject(null);
|
|
143
|
+
console.info(`[Placeholder:${name}]: Deactivated`);
|
|
144
|
+
}
|
|
145
|
+
/** Activate a placeholder — restores the default implementation. */
|
|
146
|
+
static activate(name) {
|
|
147
|
+
const p = this._all.get(name);
|
|
148
|
+
if (!p)
|
|
149
|
+
return;
|
|
150
|
+
const first = p.implementations.values().next().value;
|
|
151
|
+
if (first && !p.activeImpl.getObject()) {
|
|
152
|
+
p.activeImpl.setObject(first);
|
|
153
|
+
console.info(`[Placeholder:${name}]: Activated with "${first.name}"`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
133
156
|
/**
|
|
134
157
|
* Switch a single instance to a different implementation and reload it.
|
|
135
158
|
* Does NOT change the global active implementation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Injection.js","sourceRoot":"","sources":["../../src/foundation/Injection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Injection.js","sourceRoot":"","sources":["../../src/foundation/Injection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import Observable from "./api/Observer.js";
|
|
2
|
+
import { DownloadProgress } from "./CacheManager.js";
|
|
3
|
+
export type SubModuleStruct = {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
inbuilt?: boolean;
|
|
7
|
+
resources?: string[];
|
|
8
|
+
};
|
|
2
9
|
export type ModuleStruct = {
|
|
3
10
|
name: string;
|
|
4
11
|
description?: string;
|
|
@@ -6,34 +13,24 @@ export type ModuleStruct = {
|
|
|
6
13
|
core?: boolean;
|
|
7
14
|
enabled?: boolean;
|
|
8
15
|
resources?: string[];
|
|
16
|
+
subModules?: SubModuleStruct[];
|
|
9
17
|
};
|
|
10
|
-
export
|
|
11
|
-
/** Total number of resources */
|
|
12
|
-
totalFiles: number;
|
|
13
|
-
/** Number of resources downloaded so far */
|
|
14
|
-
downloadedFiles: number;
|
|
15
|
-
/** Current file being downloaded */
|
|
16
|
-
currentFile: string;
|
|
17
|
-
/** Total bytes across all resources (estimated) */
|
|
18
|
-
totalBytes: number;
|
|
19
|
-
/** Bytes downloaded so far */
|
|
20
|
-
downloadedBytes: number;
|
|
21
|
-
/** Download speed in bytes/sec */
|
|
22
|
-
speed: number;
|
|
23
|
-
/** Whether download is in progress */
|
|
24
|
-
active: boolean;
|
|
25
|
-
};
|
|
26
|
-
export default class Module {
|
|
18
|
+
export default class Module extends Observable<boolean> {
|
|
27
19
|
readonly name: string;
|
|
28
20
|
readonly description?: string;
|
|
29
21
|
readonly icon?: string;
|
|
30
22
|
readonly core: boolean;
|
|
31
|
-
readonly enabled: Observable<boolean>;
|
|
32
23
|
readonly downloaded: Observable<boolean>;
|
|
33
24
|
readonly resources: string[];
|
|
34
25
|
readonly totalSize: Observable<number>;
|
|
35
|
-
readonly downloadProgress: Observable<
|
|
26
|
+
readonly downloadProgress: Observable<DownloadProgress>;
|
|
27
|
+
readonly downloadError: Observable<string>;
|
|
36
28
|
private _registrations;
|
|
29
|
+
private _placeholderNames;
|
|
30
|
+
private _initialized;
|
|
31
|
+
private _subModules;
|
|
32
|
+
private static _claimedPlaceholders;
|
|
33
|
+
get enabled(): Observable<boolean>;
|
|
37
34
|
constructor(struct: ModuleStruct);
|
|
38
35
|
addRegistration(fn: () => Promise<void>): void;
|
|
39
36
|
getRegistrations(): ReadonlyArray<() => Promise<void>>;
|
|
@@ -45,21 +42,39 @@ export default class Module {
|
|
|
45
42
|
* that all their REGISTRY entries have been pushed.
|
|
46
43
|
*/
|
|
47
44
|
captureRegistrations(registry: (() => Promise<void>)[]): void;
|
|
48
|
-
|
|
45
|
+
addPlaceholder(name: string): void;
|
|
46
|
+
getPlaceholderNames(): ReadonlyArray<string>;
|
|
47
|
+
markInitialized(): void;
|
|
48
|
+
enable(): Promise<void>;
|
|
49
49
|
disable(): void;
|
|
50
50
|
isActive(): boolean;
|
|
51
51
|
/** True if enabled but not downloaded — works only in the current session. */
|
|
52
52
|
get ephemeral(): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Download all module resources with progress tracking.
|
|
55
|
-
* Uses fetch to download each resource and tracks progress.
|
|
56
|
-
*/
|
|
57
53
|
download(): Promise<void>;
|
|
58
54
|
formatBytes(bytes: number): string;
|
|
59
55
|
undownload(): Promise<void>;
|
|
56
|
+
addSubModule(struct: SubModuleStruct): SubModule;
|
|
57
|
+
getSubModules(): ReadonlyArray<SubModule>;
|
|
58
|
+
}
|
|
59
|
+
export declare class SubModule {
|
|
60
|
+
readonly name: string;
|
|
61
|
+
readonly description?: string;
|
|
62
|
+
readonly inbuilt: boolean;
|
|
63
|
+
readonly resources: string[];
|
|
64
|
+
readonly downloaded: Observable<boolean>;
|
|
65
|
+
readonly parent: Module;
|
|
66
|
+
readonly totalSize: Observable<number>;
|
|
67
|
+
readonly downloadProgress: Observable<DownloadProgress>;
|
|
68
|
+
readonly downloadError: Observable<string>;
|
|
69
|
+
constructor(struct: SubModuleStruct, parent: Module);
|
|
70
|
+
private assertParentActive;
|
|
71
|
+
private assertParentDownloaded;
|
|
72
|
+
download(): Promise<void>;
|
|
73
|
+
undownload(): Promise<void>;
|
|
60
74
|
}
|
|
61
75
|
export declare class ModuleManager {
|
|
62
76
|
private static _modules;
|
|
77
|
+
private static _userEphemeralCores;
|
|
63
78
|
private static readonly STORAGE_KEY;
|
|
64
79
|
private static readonly SESSION_KEY;
|
|
65
80
|
static register(struct: ModuleStruct): Module;
|
|
@@ -74,7 +89,9 @@ export declare class ModuleManager {
|
|
|
74
89
|
* 4. Returns all promises
|
|
75
90
|
*/
|
|
76
91
|
static initialize(): Promise<void>[];
|
|
92
|
+
private static autoDownload;
|
|
77
93
|
static persistState(): void;
|
|
94
|
+
static clearEphemeralCore(name: string): void;
|
|
78
95
|
static restoreState(): void;
|
|
79
96
|
}
|
|
80
97
|
//# sourceMappingURL=Module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/foundation/Module.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAG3C,
|
|
1
|
+
{"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/foundation/Module.ts"],"names":[],"mappings":"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"}
|