@vived/host 4.7.0 → 4.8.0
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/Assets/UCs/GetAssetBlobURLUC.js +104 -27
- package/dist/cjs/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/GetAssetFileUC.js +111 -34
- package/dist/cjs/Assets/UCs/GetAssetFileUC.js.map +1 -1
- package/dist/cjs/Cache/Controllers/clearCache.js +13 -0
- package/dist/cjs/Cache/Controllers/clearCache.js.map +1 -0
- package/dist/cjs/Cache/Controllers/index.js +18 -0
- package/dist/cjs/Cache/Controllers/index.js.map +1 -0
- package/dist/cjs/Cache/Entities/AssetCacheEntity.js +95 -0
- package/dist/cjs/Cache/Entities/AssetCacheEntity.js.map +1 -0
- package/dist/cjs/Cache/Entities/CacheEntity.js +54 -0
- package/dist/cjs/Cache/Entities/CacheEntity.js.map +1 -0
- package/dist/cjs/Cache/Entities/ScriptCacheEntity.js +137 -0
- package/dist/cjs/Cache/Entities/ScriptCacheEntity.js.map +1 -0
- package/dist/cjs/Cache/Entities/index.js +25 -0
- package/dist/cjs/Cache/Entities/index.js.map +1 -0
- package/dist/cjs/Cache/Factories/index.js +18 -0
- package/dist/cjs/Cache/Factories/index.js.map +1 -0
- package/dist/cjs/Cache/Factories/setupCache.js +27 -0
- package/dist/cjs/Cache/Factories/setupCache.js.map +1 -0
- package/dist/cjs/Cache/Mocks/MockCacheEntity.js +22 -0
- package/dist/cjs/Cache/Mocks/MockCacheEntity.js.map +1 -0
- package/dist/cjs/Cache/Mocks/MockGetAssetFromCacheUC.js +19 -0
- package/dist/cjs/Cache/Mocks/MockGetAssetFromCacheUC.js.map +1 -0
- package/dist/cjs/Cache/Mocks/MockGetScriptFromCacheUC.js +22 -0
- package/dist/cjs/Cache/Mocks/MockGetScriptFromCacheUC.js.map +1 -0
- package/dist/cjs/Cache/Mocks/MockStoreAssetInCacheUC.js +17 -0
- package/dist/cjs/Cache/Mocks/MockStoreAssetInCacheUC.js.map +1 -0
- package/dist/cjs/Cache/Mocks/MockStoreScriptInCacheUC.js +22 -0
- package/dist/cjs/Cache/Mocks/MockStoreScriptInCacheUC.js.map +1 -0
- package/dist/cjs/Cache/Mocks/index.js +22 -0
- package/dist/cjs/Cache/Mocks/index.js.map +1 -0
- package/dist/cjs/Cache/UCs/GetAssetFromCacheUC.js +40 -0
- package/dist/cjs/Cache/UCs/GetAssetFromCacheUC.js.map +1 -0
- package/dist/cjs/Cache/UCs/GetScriptFromCacheUC.js +49 -0
- package/dist/cjs/Cache/UCs/GetScriptFromCacheUC.js.map +1 -0
- package/dist/cjs/Cache/UCs/StoreAssetInCacheUC.js +39 -0
- package/dist/cjs/Cache/UCs/StoreAssetInCacheUC.js.map +1 -0
- package/dist/cjs/Cache/UCs/StoreScriptInCacheUC.js +48 -0
- package/dist/cjs/Cache/UCs/StoreScriptInCacheUC.js.map +1 -0
- package/dist/cjs/Cache/UCs/index.js +26 -0
- package/dist/cjs/Cache/UCs/index.js.map +1 -0
- package/dist/cjs/Cache/index.js +21 -0
- package/dist/cjs/Cache/index.js.map +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/Assets/UCs/GetAssetBlobURLUC.js +104 -27
- package/dist/esm/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
- package/dist/esm/Assets/UCs/GetAssetFileUC.js +111 -34
- package/dist/esm/Assets/UCs/GetAssetFileUC.js.map +1 -1
- package/dist/esm/Cache/Controllers/clearCache.js +10 -0
- package/dist/esm/Cache/Controllers/clearCache.js.map +1 -0
- package/dist/esm/Cache/Controllers/index.js +2 -0
- package/dist/esm/Cache/Controllers/index.js.map +1 -0
- package/dist/esm/Cache/Entities/AssetCacheEntity.js +90 -0
- package/dist/esm/Cache/Entities/AssetCacheEntity.js.map +1 -0
- package/dist/esm/Cache/Entities/CacheEntity.js +49 -0
- package/dist/esm/Cache/Entities/CacheEntity.js.map +1 -0
- package/dist/esm/Cache/Entities/ScriptCacheEntity.js +132 -0
- package/dist/esm/Cache/Entities/ScriptCacheEntity.js.map +1 -0
- package/dist/esm/Cache/Entities/index.js +9 -0
- package/dist/esm/Cache/Entities/index.js.map +1 -0
- package/dist/esm/Cache/Factories/index.js +2 -0
- package/dist/esm/Cache/Factories/index.js.map +1 -0
- package/dist/esm/Cache/Factories/setupCache.js +24 -0
- package/dist/esm/Cache/Factories/setupCache.js.map +1 -0
- package/dist/esm/Cache/Mocks/MockCacheEntity.js +17 -0
- package/dist/esm/Cache/Mocks/MockCacheEntity.js.map +1 -0
- package/dist/esm/Cache/Mocks/MockGetAssetFromCacheUC.js +14 -0
- package/dist/esm/Cache/Mocks/MockGetAssetFromCacheUC.js.map +1 -0
- package/dist/esm/Cache/Mocks/MockGetScriptFromCacheUC.js +17 -0
- package/dist/esm/Cache/Mocks/MockGetScriptFromCacheUC.js.map +1 -0
- package/dist/esm/Cache/Mocks/MockStoreAssetInCacheUC.js +12 -0
- package/dist/esm/Cache/Mocks/MockStoreAssetInCacheUC.js.map +1 -0
- package/dist/esm/Cache/Mocks/MockStoreScriptInCacheUC.js +17 -0
- package/dist/esm/Cache/Mocks/MockStoreScriptInCacheUC.js.map +1 -0
- package/dist/esm/Cache/Mocks/index.js +6 -0
- package/dist/esm/Cache/Mocks/index.js.map +1 -0
- package/dist/esm/Cache/UCs/GetAssetFromCacheUC.js +35 -0
- package/dist/esm/Cache/UCs/GetAssetFromCacheUC.js.map +1 -0
- package/dist/esm/Cache/UCs/GetScriptFromCacheUC.js +44 -0
- package/dist/esm/Cache/UCs/GetScriptFromCacheUC.js.map +1 -0
- package/dist/esm/Cache/UCs/StoreAssetInCacheUC.js +34 -0
- package/dist/esm/Cache/UCs/StoreAssetInCacheUC.js.map +1 -0
- package/dist/esm/Cache/UCs/StoreScriptInCacheUC.js +43 -0
- package/dist/esm/Cache/UCs/StoreScriptInCacheUC.js.map +1 -0
- package/dist/esm/Cache/UCs/index.js +10 -0
- package/dist/esm/Cache/UCs/index.js.map +1 -0
- package/dist/esm/Cache/index.js +5 -0
- package/dist/esm/Cache/index.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/Assets/UCs/GetAssetBlobURLUC.d.ts.map +1 -1
- package/dist/types/Cache/Controllers/clearCache.d.ts +3 -0
- package/dist/types/Cache/Controllers/clearCache.d.ts.map +1 -0
- package/dist/types/Cache/Controllers/index.d.ts +2 -0
- package/dist/types/Cache/Controllers/index.d.ts.map +1 -0
- package/dist/types/Cache/Entities/AssetCacheEntity.d.ts +43 -0
- package/dist/types/Cache/Entities/AssetCacheEntity.d.ts.map +1 -0
- package/dist/types/Cache/Entities/CacheEntity.d.ts +57 -0
- package/dist/types/Cache/Entities/CacheEntity.d.ts.map +1 -0
- package/dist/types/Cache/Entities/ScriptCacheEntity.d.ts +64 -0
- package/dist/types/Cache/Entities/ScriptCacheEntity.d.ts.map +1 -0
- package/dist/types/Cache/Entities/index.d.ts +9 -0
- package/dist/types/Cache/Entities/index.d.ts.map +1 -0
- package/dist/types/Cache/Factories/index.d.ts +2 -0
- package/dist/types/Cache/Factories/index.d.ts.map +1 -0
- package/dist/types/Cache/Factories/setupCache.d.ts +6 -0
- package/dist/types/Cache/Factories/setupCache.d.ts.map +1 -0
- package/dist/types/Cache/Mocks/MockCacheEntity.d.ts +13 -0
- package/dist/types/Cache/Mocks/MockCacheEntity.d.ts.map +1 -0
- package/dist/types/Cache/Mocks/MockGetAssetFromCacheUC.d.ts +8 -0
- package/dist/types/Cache/Mocks/MockGetAssetFromCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/Mocks/MockGetScriptFromCacheUC.d.ts +9 -0
- package/dist/types/Cache/Mocks/MockGetScriptFromCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/Mocks/MockStoreAssetInCacheUC.d.ts +8 -0
- package/dist/types/Cache/Mocks/MockStoreAssetInCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/Mocks/MockStoreScriptInCacheUC.d.ts +9 -0
- package/dist/types/Cache/Mocks/MockStoreScriptInCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/Mocks/index.d.ts +6 -0
- package/dist/types/Cache/Mocks/index.d.ts.map +1 -0
- package/dist/types/Cache/UCs/GetAssetFromCacheUC.d.ts +8 -0
- package/dist/types/Cache/UCs/GetAssetFromCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/UCs/GetScriptFromCacheUC.d.ts +13 -0
- package/dist/types/Cache/UCs/GetScriptFromCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/UCs/StoreAssetInCacheUC.d.ts +8 -0
- package/dist/types/Cache/UCs/StoreAssetInCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/UCs/StoreScriptInCacheUC.d.ts +13 -0
- package/dist/types/Cache/UCs/StoreScriptInCacheUC.d.ts.map +1 -0
- package/dist/types/Cache/UCs/index.d.ts +10 -0
- package/dist/types/Cache/UCs/index.d.ts.map +1 -0
- package/dist/types/Cache/index.d.ts +5 -0
- package/dist/types/Cache/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScriptCacheEntity = void 0;
|
|
4
|
+
exports.makeScriptCacheEntity = makeScriptCacheEntity;
|
|
5
|
+
const core_1 = require("@vived/core");
|
|
6
|
+
const CacheEntity_1 = require("./CacheEntity");
|
|
7
|
+
/**
|
|
8
|
+
* Entity responsible for managing script caching operations.
|
|
9
|
+
* Provides functionality to store, retrieve, check existence, and invalidate scripts
|
|
10
|
+
* in the cache based on app ID, version, and script path.
|
|
11
|
+
*/
|
|
12
|
+
class ScriptCacheEntity extends core_1.AppObjectEntity {
|
|
13
|
+
/**
|
|
14
|
+
* Gets the singleton ScriptCacheEntity instance from the AppObjectRepo.
|
|
15
|
+
* @param appObjects - Repository of application objects
|
|
16
|
+
* @returns ScriptCacheEntity instance if registered, undefined otherwise
|
|
17
|
+
*/
|
|
18
|
+
static get(appObjects) {
|
|
19
|
+
return (0, core_1.getSingletonComponent)(ScriptCacheEntity.type, appObjects);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ScriptCacheEntity = ScriptCacheEntity;
|
|
23
|
+
ScriptCacheEntity.type = "ScriptCacheEntity";
|
|
24
|
+
/**
|
|
25
|
+
* Factory function to create a new ScriptCacheEntity instance.
|
|
26
|
+
* @param appObject - The parent AppObject
|
|
27
|
+
* @returns A new ScriptCacheEntity instance
|
|
28
|
+
*/
|
|
29
|
+
function makeScriptCacheEntity(appObject) {
|
|
30
|
+
return new ScriptCacheEntityImp(appObject);
|
|
31
|
+
}
|
|
32
|
+
class ScriptCacheEntityImp extends ScriptCacheEntity {
|
|
33
|
+
get cacheEntity() {
|
|
34
|
+
return this.getCachedSingleton(CacheEntity_1.CacheEntity.type);
|
|
35
|
+
}
|
|
36
|
+
constructor(appObject) {
|
|
37
|
+
super(appObject, ScriptCacheEntity.type);
|
|
38
|
+
this.appObjects.registerSingleton(this);
|
|
39
|
+
}
|
|
40
|
+
async getScript(appId, version, scriptPath) {
|
|
41
|
+
const cacheKey = this.generateCacheKey(appId, version, scriptPath);
|
|
42
|
+
const cacheEntity = this.cacheEntity;
|
|
43
|
+
if (!cacheEntity) {
|
|
44
|
+
this.warn("CacheEntity not found");
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const { value } = await cacheEntity.get(cacheKey);
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async storeScript(appId, version, scriptPath, content) {
|
|
56
|
+
const cacheKey = this.generateCacheKey(appId, version, scriptPath);
|
|
57
|
+
const cacheEntity = this.cacheEntity;
|
|
58
|
+
if (!cacheEntity) {
|
|
59
|
+
this.warn("CacheEntity not found");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const metadata = {
|
|
63
|
+
appId,
|
|
64
|
+
version,
|
|
65
|
+
scriptPath,
|
|
66
|
+
timestamp: Date.now()
|
|
67
|
+
};
|
|
68
|
+
await cacheEntity.store(cacheKey, content, metadata);
|
|
69
|
+
}
|
|
70
|
+
async hasScript(appId, version, scriptPath) {
|
|
71
|
+
const cacheKey = this.generateCacheKey(appId, version, scriptPath);
|
|
72
|
+
const cacheEntity = this.cacheEntity;
|
|
73
|
+
if (!cacheEntity) {
|
|
74
|
+
this.warn("CacheEntity not found");
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return await cacheEntity.has(cacheKey);
|
|
78
|
+
}
|
|
79
|
+
async invalidateScript(appId, version, scriptPath) {
|
|
80
|
+
const cacheEntity = this.cacheEntity;
|
|
81
|
+
if (!cacheEntity) {
|
|
82
|
+
this.warn("CacheEntity not found");
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// If all parameters are provided, invalidate a specific script
|
|
86
|
+
if (appId && version && scriptPath) {
|
|
87
|
+
const cacheKey = this.generateCacheKey(appId, version, scriptPath);
|
|
88
|
+
await cacheEntity.invalidate(cacheKey);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// For now, in our implementation we're just using a simple approach
|
|
92
|
+
// where we only invalidate the specific script or app+version combination
|
|
93
|
+
// A more sophisticated approach would be to iterate through all cache entries
|
|
94
|
+
// and check metadata, but that would require extra cache entity functionality
|
|
95
|
+
// For this simplified implementation, we only support full invalidation
|
|
96
|
+
// and specific script invalidation (all 3 parameters)
|
|
97
|
+
if (!version && !scriptPath) {
|
|
98
|
+
this.warn("Partial invalidation not fully implemented");
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
extractScriptInfo(url) {
|
|
103
|
+
try {
|
|
104
|
+
// Parse URL to extract components
|
|
105
|
+
const urlObj = new URL(url);
|
|
106
|
+
const pathSegments = urlObj.pathname.split("/");
|
|
107
|
+
// Find 'apps' segment index
|
|
108
|
+
const appsIndex = pathSegments.findIndex((segment) => segment === "apps");
|
|
109
|
+
if (appsIndex === -1 || appsIndex + 2 >= pathSegments.length) {
|
|
110
|
+
throw new Error(`Invalid app URL format: ${url}`);
|
|
111
|
+
}
|
|
112
|
+
// Extract app ID, version, and path
|
|
113
|
+
const appId = pathSegments[appsIndex + 1];
|
|
114
|
+
const version = pathSegments[appsIndex + 2];
|
|
115
|
+
// Extract script path (everything after the version segment)
|
|
116
|
+
const scriptPathSegments = pathSegments.slice(appsIndex + 3);
|
|
117
|
+
const scriptPath = scriptPathSegments.join("/");
|
|
118
|
+
return {
|
|
119
|
+
appId,
|
|
120
|
+
version,
|
|
121
|
+
scriptPath
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
this.error(`Failed to extract script info from URL: ${url}`);
|
|
126
|
+
return {
|
|
127
|
+
appId: "unknown",
|
|
128
|
+
version: "unknown",
|
|
129
|
+
scriptPath: "unknown"
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
generateCacheKey(appId, version, scriptPath) {
|
|
134
|
+
return `script:${appId}:${version}:${scriptPath}`;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=ScriptCacheEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptCacheEntity.js","sourceRoot":"","sources":["../../../../src/Cache/Entities/ScriptCacheEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { CacheEntity } from \"./CacheEntity\";\r\n\r\n/**\r\n * Entity responsible for managing script caching operations.\r\n * Provides functionality to store, retrieve, check existence, and invalidate scripts\r\n * in the cache based on app ID, version, and script path.\r\n */\r\nexport abstract class ScriptCacheEntity extends AppObjectEntity {\r\n static readonly type = \"ScriptCacheEntity\";\r\n\r\n /**\r\n * Retrieves a script from the cache.\r\n * @param appId - Unique identifier of the app\r\n * @param version - Version of the app\r\n * @param scriptPath - Path of the script within the app\r\n * @returns Promise with the script content if found, undefined otherwise\r\n */\r\n abstract getScript(\r\n appId: string,\r\n version: string,\r\n scriptPath: string\r\n ): Promise<string | undefined>;\r\n\r\n /**\r\n * Stores a script in the cache.\r\n * @param appId - Unique identifier of the app\r\n * @param version - Version of the app\r\n * @param scriptPath - Path of the script within the app\r\n * @param content - Content of the script to store\r\n */\r\n abstract storeScript(\r\n appId: string,\r\n version: string,\r\n scriptPath: string,\r\n content: string\r\n ): Promise<void>;\r\n\r\n /**\r\n * Checks if a script exists in the cache.\r\n * @param appId - Unique identifier of the app\r\n * @param version - Version of the app\r\n * @param scriptPath - Path of the script within the app\r\n * @returns Promise resolving to true if script exists, false otherwise\r\n */\r\n abstract hasScript(\r\n appId: string,\r\n version: string,\r\n scriptPath: string\r\n ): Promise<boolean>;\r\n\r\n /**\r\n * Invalidates scripts in the cache.\r\n * Can invalidate a specific script, all scripts for a version, or all scripts for an app.\r\n * @param appId - Unique identifier of the app\r\n * @param version - Optional version of the app\r\n * @param scriptPath - Optional path of the script within the app\r\n */\r\n abstract invalidateScript(\r\n appId: string,\r\n version?: string,\r\n scriptPath?: string\r\n ): Promise<void>;\r\n\r\n /**\r\n * Extracts app ID, version, and script path from a script URL.\r\n * @param url - The URL to parse\r\n * @returns Object containing extracted appId, version, and scriptPath\r\n */\r\n abstract extractScriptInfo(url: string): {\r\n appId: string;\r\n version: string;\r\n scriptPath: string;\r\n };\r\n\r\n /**\r\n * Gets the singleton ScriptCacheEntity instance from the AppObjectRepo.\r\n * @param appObjects - Repository of application objects\r\n * @returns ScriptCacheEntity instance if registered, undefined otherwise\r\n */\r\n static get(appObjects: AppObjectRepo): ScriptCacheEntity | undefined {\r\n return getSingletonComponent<ScriptCacheEntity>(\r\n ScriptCacheEntity.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new ScriptCacheEntity instance.\r\n * @param appObject - The parent AppObject\r\n * @returns A new ScriptCacheEntity instance\r\n */\r\nexport function makeScriptCacheEntity(appObject: AppObject): ScriptCacheEntity {\r\n return new ScriptCacheEntityImp(appObject);\r\n}\r\n\r\ntype CacheMetadata = {\r\n appId: string;\r\n version: string;\r\n scriptPath: string;\r\n timestamp: number;\r\n};\r\n\r\nclass ScriptCacheEntityImp extends ScriptCacheEntity {\r\n private get cacheEntity(): CacheEntity | undefined {\r\n return this.getCachedSingleton<CacheEntity>(CacheEntity.type);\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ScriptCacheEntity.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n\r\n async getScript(\r\n appId: string,\r\n version: string,\r\n scriptPath: string\r\n ): Promise<string | undefined> {\r\n const cacheKey = this.generateCacheKey(appId, version, scriptPath);\r\n\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return undefined;\r\n }\r\n\r\n try {\r\n const { value } = await cacheEntity.get(cacheKey);\r\n return value as string;\r\n } catch (e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n async storeScript(\r\n appId: string,\r\n version: string,\r\n scriptPath: string,\r\n content: string\r\n ): Promise<void> {\r\n const cacheKey = this.generateCacheKey(appId, version, scriptPath);\r\n\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return;\r\n }\r\n\r\n const metadata: CacheMetadata = {\r\n appId,\r\n version,\r\n scriptPath,\r\n timestamp: Date.now()\r\n };\r\n\r\n await cacheEntity.store(cacheKey, content, metadata);\r\n }\r\n\r\n async hasScript(\r\n appId: string,\r\n version: string,\r\n scriptPath: string\r\n ): Promise<boolean> {\r\n const cacheKey = this.generateCacheKey(appId, version, scriptPath);\r\n\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return false;\r\n }\r\n\r\n return await cacheEntity.has(cacheKey);\r\n }\r\n\r\n async invalidateScript(\r\n appId: string,\r\n version?: string,\r\n scriptPath?: string\r\n ): Promise<void> {\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return;\r\n }\r\n\r\n // If all parameters are provided, invalidate a specific script\r\n if (appId && version && scriptPath) {\r\n const cacheKey = this.generateCacheKey(appId, version, scriptPath);\r\n await cacheEntity.invalidate(cacheKey);\r\n return;\r\n }\r\n\r\n // For now, in our implementation we're just using a simple approach\r\n // where we only invalidate the specific script or app+version combination\r\n // A more sophisticated approach would be to iterate through all cache entries\r\n // and check metadata, but that would require extra cache entity functionality\r\n\r\n // For this simplified implementation, we only support full invalidation\r\n // and specific script invalidation (all 3 parameters)\r\n if (!version && !scriptPath) {\r\n this.warn(\"Partial invalidation not fully implemented\");\r\n return;\r\n }\r\n }\r\n\r\n extractScriptInfo(url: string): {\r\n appId: string;\r\n version: string;\r\n scriptPath: string;\r\n } {\r\n try {\r\n // Parse URL to extract components\r\n const urlObj = new URL(url);\r\n const pathSegments = urlObj.pathname.split(\"/\");\r\n\r\n // Find 'apps' segment index\r\n const appsIndex = pathSegments.findIndex((segment) => segment === \"apps\");\r\n\r\n if (appsIndex === -1 || appsIndex + 2 >= pathSegments.length) {\r\n throw new Error(`Invalid app URL format: ${url}`);\r\n }\r\n\r\n // Extract app ID, version, and path\r\n const appId = pathSegments[appsIndex + 1];\r\n const version = pathSegments[appsIndex + 2];\r\n\r\n // Extract script path (everything after the version segment)\r\n const scriptPathSegments = pathSegments.slice(appsIndex + 3);\r\n const scriptPath = scriptPathSegments.join(\"/\");\r\n\r\n return {\r\n appId,\r\n version,\r\n scriptPath\r\n };\r\n } catch (e) {\r\n this.error(`Failed to extract script info from URL: ${url}`);\r\n return {\r\n appId: \"unknown\",\r\n version: \"unknown\",\r\n scriptPath: \"unknown\"\r\n };\r\n }\r\n }\r\n\r\n private generateCacheKey(\r\n appId: string,\r\n version: string,\r\n scriptPath: string\r\n ): string {\r\n return `script:${appId}:${version}:${scriptPath}`;\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cache Entities
|
|
4
|
+
*
|
|
5
|
+
* Core domain models for the Cache feature
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./CacheEntity"), exports);
|
|
23
|
+
__exportStar(require("./ScriptCacheEntity"), exports);
|
|
24
|
+
__exportStar(require("./AssetCacheEntity"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Cache/Entities/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,sDAAoC;AACpC,qDAAmC","sourcesContent":["/**\r\n * Cache Entities\r\n *\r\n * Core domain models for the Cache feature\r\n */\r\n\r\nexport * from \"./CacheEntity\";\r\nexport * from \"./ScriptCacheEntity\";\r\nexport * from \"./AssetCacheEntity\";\r\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./setupCache"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Cache/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,+CAA4B","sourcesContent":["\r\nexport * from \"./setupCache\""]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupCache = setupCache;
|
|
4
|
+
const ScriptCacheEntity_1 = require("../Entities/ScriptCacheEntity");
|
|
5
|
+
const CacheEntity_1 = require("../Entities/CacheEntity");
|
|
6
|
+
const AssetCacheEntity_1 = require("../Entities/AssetCacheEntity");
|
|
7
|
+
const GetScriptFromCacheUC_1 = require("../UCs/GetScriptFromCacheUC");
|
|
8
|
+
const StoreScriptInCacheUC_1 = require("../UCs/StoreScriptInCacheUC");
|
|
9
|
+
const GetAssetFromCacheUC_1 = require("../UCs/GetAssetFromCacheUC");
|
|
10
|
+
const StoreAssetInCacheUC_1 = require("../UCs/StoreAssetInCacheUC");
|
|
11
|
+
/**
|
|
12
|
+
* Sets up the Cache feature components
|
|
13
|
+
*/
|
|
14
|
+
function setupCache(appObjects) {
|
|
15
|
+
// Create Cache Entity app object
|
|
16
|
+
const cacheEntityAO = appObjects.getOrCreate("Cache");
|
|
17
|
+
// Create entities
|
|
18
|
+
(0, CacheEntity_1.makeCacheEntity)(cacheEntityAO);
|
|
19
|
+
(0, ScriptCacheEntity_1.makeScriptCacheEntity)(cacheEntityAO);
|
|
20
|
+
(0, AssetCacheEntity_1.makeAssetCacheEntity)(cacheEntityAO);
|
|
21
|
+
// Create use cases
|
|
22
|
+
(0, GetScriptFromCacheUC_1.makeGetScriptFromCacheUC)(cacheEntityAO);
|
|
23
|
+
(0, StoreScriptInCacheUC_1.makeStoreScriptInCacheUC)(cacheEntityAO);
|
|
24
|
+
(0, GetAssetFromCacheUC_1.makeGetAssetFromCacheUC)(cacheEntityAO);
|
|
25
|
+
(0, StoreAssetInCacheUC_1.makeStoreAssetInCacheUC)(cacheEntityAO);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=setupCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupCache.js","sourceRoot":"","sources":["../../../../src/Cache/Factories/setupCache.ts"],"names":[],"mappings":";;AAYA,gCAcC;AAzBD,qEAAsE;AACtE,yDAA0D;AAC1D,mEAAoE;AACpE,sEAAuE;AACvE,sEAAuE;AACvE,oEAAqE;AACrE,oEAAqE;AAErE;;GAEG;AACH,SAAgB,UAAU,CAAC,UAAyB;IAClD,iCAAiC;IACjC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtD,kBAAkB;IAClB,IAAA,6BAAe,EAAC,aAAa,CAAC,CAAC;IAC/B,IAAA,yCAAqB,EAAC,aAAa,CAAC,CAAC;IACrC,IAAA,uCAAoB,EAAC,aAAa,CAAC,CAAC;IAEpC,mBAAmB;IACnB,IAAA,+CAAwB,EAAC,aAAa,CAAC,CAAC;IACxC,IAAA,+CAAwB,EAAC,aAAa,CAAC,CAAC;IACxC,IAAA,6CAAuB,EAAC,aAAa,CAAC,CAAC;IACvC,IAAA,6CAAuB,EAAC,aAAa,CAAC,CAAC;AACzC,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeScriptCacheEntity } from \"../Entities/ScriptCacheEntity\";\r\nimport { makeCacheEntity } from \"../Entities/CacheEntity\";\r\nimport { makeAssetCacheEntity } from \"../Entities/AssetCacheEntity\";\r\nimport { makeGetScriptFromCacheUC } from \"../UCs/GetScriptFromCacheUC\";\r\nimport { makeStoreScriptInCacheUC } from \"../UCs/StoreScriptInCacheUC\";\r\nimport { makeGetAssetFromCacheUC } from \"../UCs/GetAssetFromCacheUC\";\r\nimport { makeStoreAssetInCacheUC } from \"../UCs/StoreAssetInCacheUC\";\r\n\r\n/**\r\n * Sets up the Cache feature components\r\n */\r\nexport function setupCache(appObjects: AppObjectRepo): void {\r\n // Create Cache Entity app object\r\n const cacheEntityAO = appObjects.getOrCreate(\"Cache\");\r\n\r\n // Create entities\r\n makeCacheEntity(cacheEntityAO);\r\n makeScriptCacheEntity(cacheEntityAO);\r\n makeAssetCacheEntity(cacheEntityAO);\r\n\r\n // Create use cases\r\n makeGetScriptFromCacheUC(cacheEntityAO);\r\n makeStoreScriptInCacheUC(cacheEntityAO);\r\n makeGetAssetFromCacheUC(cacheEntityAO);\r\n makeStoreAssetInCacheUC(cacheEntityAO);\r\n}\r\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockCacheEntity = void 0;
|
|
4
|
+
exports.makeMockCacheEntity = makeMockCacheEntity;
|
|
5
|
+
const CacheEntity_1 = require("../Entities/CacheEntity");
|
|
6
|
+
class MockCacheEntity extends CacheEntity_1.CacheEntity {
|
|
7
|
+
constructor(appObject) {
|
|
8
|
+
super(appObject, CacheEntity_1.CacheEntity.type);
|
|
9
|
+
this.get = jest.fn().mockResolvedValue({ value: "mockValue" });
|
|
10
|
+
this.store = jest.fn().mockResolvedValue(undefined);
|
|
11
|
+
this.has = jest.fn().mockResolvedValue(true);
|
|
12
|
+
this.invalidate = jest.fn().mockResolvedValue(undefined);
|
|
13
|
+
this.clear = jest.fn().mockResolvedValue(undefined);
|
|
14
|
+
this.size = jest.fn().mockResolvedValue(0);
|
|
15
|
+
this.appObjects.registerSingleton(this);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.MockCacheEntity = MockCacheEntity;
|
|
19
|
+
function makeMockCacheEntity(appObjects) {
|
|
20
|
+
return new MockCacheEntity(appObjects.getOrCreate("MockCacheEntity"));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MockCacheEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockCacheEntity.js","sourceRoot":"","sources":["../../../../src/Cache/Mocks/MockCacheEntity.ts"],"names":[],"mappings":";;;AAiBA,kDAEC;AAlBD,yDAAsD;AAEtD,MAAa,eAAgB,SAAQ,yBAAW;IAQ9C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC;QARrC,QAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1D,UAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,QAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACpD,UAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,SAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAIpC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAZD,0CAYC;AAED,SAAgB,mBAAmB,CAAC,UAAyB;IAC3D,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACxE,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { CacheEntity } from \"../Entities/CacheEntity\";\r\n\r\nexport class MockCacheEntity extends CacheEntity {\r\n get = jest.fn().mockResolvedValue({ value: \"mockValue\" });\r\n store = jest.fn().mockResolvedValue(undefined);\r\n has = jest.fn().mockResolvedValue(true);\r\n invalidate = jest.fn().mockResolvedValue(undefined);\r\n clear = jest.fn().mockResolvedValue(undefined);\r\n size = jest.fn().mockResolvedValue(0);\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, CacheEntity.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n\r\nexport function makeMockCacheEntity(appObjects: AppObjectRepo) {\r\n return new MockCacheEntity(appObjects.getOrCreate(\"MockCacheEntity\"));\r\n}\r\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockGetAssetFromCacheUC = void 0;
|
|
4
|
+
exports.makeMockGetAssetFromCacheUC = makeMockGetAssetFromCacheUC;
|
|
5
|
+
const GetAssetFromCacheUC_1 = require("../UCs/GetAssetFromCacheUC");
|
|
6
|
+
class MockGetAssetFromCacheUC extends GetAssetFromCacheUC_1.GetAssetFromCacheUC {
|
|
7
|
+
constructor(appObject) {
|
|
8
|
+
super(appObject, GetAssetFromCacheUC_1.GetAssetFromCacheUC.type);
|
|
9
|
+
this.getAsset = jest
|
|
10
|
+
.fn()
|
|
11
|
+
.mockResolvedValue(new Blob(["mock content"], { type: "text/plain" }));
|
|
12
|
+
this.appObjects.registerSingleton(this);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.MockGetAssetFromCacheUC = MockGetAssetFromCacheUC;
|
|
16
|
+
function makeMockGetAssetFromCacheUC(appObjects) {
|
|
17
|
+
return new MockGetAssetFromCacheUC(appObjects.getOrCreate("MockGetAssetFromCacheUC"));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=MockGetAssetFromCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockGetAssetFromCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/Mocks/MockGetAssetFromCacheUC.ts"],"names":[],"mappings":";;;AAcA,kEAIC;AAjBD,oEAAiE;AAEjE,MAAa,uBAAwB,SAAQ,yCAAmB;IAK9D,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,yCAAmB,CAAC,IAAI,CAAC,CAAC;QAL7C,aAAQ,GAAG,IAAI;aACZ,EAAE,EAAE;aACJ,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAIvE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AATD,0DASC;AAED,SAAgB,2BAA2B,CAAC,UAAyB;IACnE,OAAO,IAAI,uBAAuB,CAChC,UAAU,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAClD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { GetAssetFromCacheUC } from \"../UCs/GetAssetFromCacheUC\";\r\n\r\nexport class MockGetAssetFromCacheUC extends GetAssetFromCacheUC {\r\n getAsset = jest\r\n .fn()\r\n .mockResolvedValue(new Blob([\"mock content\"], { type: \"text/plain\" }));\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetAssetFromCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n\r\nexport function makeMockGetAssetFromCacheUC(appObjects: AppObjectRepo) {\r\n return new MockGetAssetFromCacheUC(\r\n appObjects.getOrCreate(\"MockGetAssetFromCacheUC\")\r\n );\r\n}\r\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockGetScriptFromCacheUC = void 0;
|
|
4
|
+
exports.makeMockGetScriptFromCacheUC = makeMockGetScriptFromCacheUC;
|
|
5
|
+
const GetScriptFromCacheUC_1 = require("../UCs/GetScriptFromCacheUC");
|
|
6
|
+
class MockGetScriptFromCacheUC extends GetScriptFromCacheUC_1.GetScriptFromCacheUC {
|
|
7
|
+
constructor(appObject) {
|
|
8
|
+
super(appObject, GetScriptFromCacheUC_1.GetScriptFromCacheUC.type);
|
|
9
|
+
this.getScript = jest.fn().mockResolvedValue("const mockScript = 'test';");
|
|
10
|
+
this.extractScriptInfo = jest.fn().mockReturnValue({
|
|
11
|
+
appId: "mockAppId",
|
|
12
|
+
version: "mockVersion",
|
|
13
|
+
scriptPath: "mockScriptPath"
|
|
14
|
+
});
|
|
15
|
+
this.appObjects.registerSingleton(this);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.MockGetScriptFromCacheUC = MockGetScriptFromCacheUC;
|
|
19
|
+
function makeMockGetScriptFromCacheUC(appObjects) {
|
|
20
|
+
return new MockGetScriptFromCacheUC(appObjects.getOrCreate("MockGetScriptFromCacheUC"));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MockGetScriptFromCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockGetScriptFromCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/Mocks/MockGetScriptFromCacheUC.ts"],"names":[],"mappings":";;;AAiBA,oEAIC;AApBD,sEAAmE;AAEnE,MAAa,wBAAyB,SAAQ,2CAAoB;IAQhE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,2CAAoB,CAAC,IAAI,CAAC,CAAC;QAR9C,cAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;QACtE,sBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC5C,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAID,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAZD,4DAYC;AAED,SAAgB,4BAA4B,CAAC,UAAyB;IACpE,OAAO,IAAI,wBAAwB,CACjC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { GetScriptFromCacheUC } from \"../UCs/GetScriptFromCacheUC\";\r\n\r\nexport class MockGetScriptFromCacheUC extends GetScriptFromCacheUC {\r\n getScript = jest.fn().mockResolvedValue(\"const mockScript = 'test';\");\r\n extractScriptInfo = jest.fn().mockReturnValue({\r\n appId: \"mockAppId\",\r\n version: \"mockVersion\",\r\n scriptPath: \"mockScriptPath\"\r\n });\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetScriptFromCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n\r\nexport function makeMockGetScriptFromCacheUC(appObjects: AppObjectRepo) {\r\n return new MockGetScriptFromCacheUC(\r\n appObjects.getOrCreate(\"MockGetScriptFromCacheUC\")\r\n );\r\n}\r\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockStoreAssetInCacheUC = void 0;
|
|
4
|
+
exports.makeMockStoreAssetInCacheUC = makeMockStoreAssetInCacheUC;
|
|
5
|
+
const StoreAssetInCacheUC_1 = require("../UCs/StoreAssetInCacheUC");
|
|
6
|
+
class MockStoreAssetInCacheUC extends StoreAssetInCacheUC_1.StoreAssetInCacheUC {
|
|
7
|
+
constructor(appObject) {
|
|
8
|
+
super(appObject, StoreAssetInCacheUC_1.StoreAssetInCacheUC.type);
|
|
9
|
+
this.storeAsset = jest.fn().mockResolvedValue(undefined);
|
|
10
|
+
this.appObjects.registerSingleton(this);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.MockStoreAssetInCacheUC = MockStoreAssetInCacheUC;
|
|
14
|
+
function makeMockStoreAssetInCacheUC(appObjects) {
|
|
15
|
+
return new MockStoreAssetInCacheUC(appObjects.getOrCreate("MockStoreAssetInCacheUC"));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=MockStoreAssetInCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockStoreAssetInCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/Mocks/MockStoreAssetInCacheUC.ts"],"names":[],"mappings":";;;AAYA,kEAIC;AAfD,oEAAiE;AAEjE,MAAa,uBAAwB,SAAQ,yCAAmB;IAG9D,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,yCAAmB,CAAC,IAAI,CAAC,CAAC;QAH7C,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAIlD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAPD,0DAOC;AAED,SAAgB,2BAA2B,CAAC,UAAyB;IACnE,OAAO,IAAI,uBAAuB,CAChC,UAAU,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAClD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { StoreAssetInCacheUC } from \"../UCs/StoreAssetInCacheUC\";\r\n\r\nexport class MockStoreAssetInCacheUC extends StoreAssetInCacheUC {\r\n storeAsset = jest.fn().mockResolvedValue(undefined);\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, StoreAssetInCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n\r\nexport function makeMockStoreAssetInCacheUC(appObjects: AppObjectRepo) {\r\n return new MockStoreAssetInCacheUC(\r\n appObjects.getOrCreate(\"MockStoreAssetInCacheUC\")\r\n );\r\n}\r\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockStoreScriptInCacheUC = void 0;
|
|
4
|
+
exports.makeMockStoreScriptInCacheUC = makeMockStoreScriptInCacheUC;
|
|
5
|
+
const StoreScriptInCacheUC_1 = require("../UCs/StoreScriptInCacheUC");
|
|
6
|
+
class MockStoreScriptInCacheUC extends StoreScriptInCacheUC_1.StoreScriptInCacheUC {
|
|
7
|
+
constructor(appObject) {
|
|
8
|
+
super(appObject, StoreScriptInCacheUC_1.StoreScriptInCacheUC.type);
|
|
9
|
+
this.storeScript = jest.fn().mockResolvedValue(undefined);
|
|
10
|
+
this.extractScriptInfo = jest.fn().mockReturnValue({
|
|
11
|
+
appId: "mockAppId",
|
|
12
|
+
version: "mockVersion",
|
|
13
|
+
scriptPath: "mockScriptPath"
|
|
14
|
+
});
|
|
15
|
+
this.appObjects.registerSingleton(this);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.MockStoreScriptInCacheUC = MockStoreScriptInCacheUC;
|
|
19
|
+
function makeMockStoreScriptInCacheUC(appObjects) {
|
|
20
|
+
return new MockStoreScriptInCacheUC(appObjects.getOrCreate("MockStoreScriptInCacheUC"));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MockStoreScriptInCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockStoreScriptInCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/Mocks/MockStoreScriptInCacheUC.ts"],"names":[],"mappings":";;;AAiBA,oEAIC;AApBD,sEAAmE;AAEnE,MAAa,wBAAyB,SAAQ,2CAAoB;IAQhE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,2CAAoB,CAAC,IAAI,CAAC,CAAC;QAR9C,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACrD,sBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC5C,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAID,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAZD,4DAYC;AAED,SAAgB,4BAA4B,CAAC,UAAyB;IACpE,OAAO,IAAI,wBAAwB,CACjC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { StoreScriptInCacheUC } from \"../UCs/StoreScriptInCacheUC\";\r\n\r\nexport class MockStoreScriptInCacheUC extends StoreScriptInCacheUC {\r\n storeScript = jest.fn().mockResolvedValue(undefined);\r\n extractScriptInfo = jest.fn().mockReturnValue({\r\n appId: \"mockAppId\",\r\n version: \"mockVersion\",\r\n scriptPath: \"mockScriptPath\"\r\n });\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, StoreScriptInCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n\r\nexport function makeMockStoreScriptInCacheUC(appObjects: AppObjectRepo) {\r\n return new MockStoreScriptInCacheUC(\r\n appObjects.getOrCreate(\"MockStoreScriptInCacheUC\")\r\n );\r\n}\r\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./MockCacheEntity"), exports);
|
|
18
|
+
__exportStar(require("./MockGetAssetFromCacheUC"), exports);
|
|
19
|
+
__exportStar(require("./MockGetScriptFromCacheUC"), exports);
|
|
20
|
+
__exportStar(require("./MockStoreAssetInCacheUC"), exports);
|
|
21
|
+
__exportStar(require("./MockStoreScriptInCacheUC"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Cache/Mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,4DAA0C;AAC1C,6DAA2C;AAC3C,4DAA0C;AAC1C,6DAA2C","sourcesContent":["export * from \"./MockCacheEntity\";\r\nexport * from \"./MockGetAssetFromCacheUC\";\r\nexport * from \"./MockGetScriptFromCacheUC\";\r\nexport * from \"./MockStoreAssetInCacheUC\";\r\nexport * from \"./MockStoreScriptInCacheUC\";\r\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetAssetFromCacheUC = void 0;
|
|
4
|
+
exports.makeGetAssetFromCacheUC = makeGetAssetFromCacheUC;
|
|
5
|
+
const core_1 = require("@vived/core");
|
|
6
|
+
const AssetCacheEntity_1 = require("../Entities/AssetCacheEntity");
|
|
7
|
+
class GetAssetFromCacheUC extends core_1.AppObjectUC {
|
|
8
|
+
static get(appObjects) {
|
|
9
|
+
return (0, core_1.getSingletonComponent)(GetAssetFromCacheUC.type, appObjects);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.GetAssetFromCacheUC = GetAssetFromCacheUC;
|
|
13
|
+
GetAssetFromCacheUC.type = "GetAssetFromCacheUC";
|
|
14
|
+
function makeGetAssetFromCacheUC(appObject) {
|
|
15
|
+
return new GetAssetFromCacheUCImp(appObject);
|
|
16
|
+
}
|
|
17
|
+
class GetAssetFromCacheUCImp extends GetAssetFromCacheUC {
|
|
18
|
+
get assetCacheEntity() {
|
|
19
|
+
return this.getCachedSingleton(AssetCacheEntity_1.AssetCacheEntity.type);
|
|
20
|
+
}
|
|
21
|
+
async getAsset(assetId) {
|
|
22
|
+
const assetCache = this.assetCacheEntity;
|
|
23
|
+
if (!assetCache) {
|
|
24
|
+
this.warn("AssetCacheEntity not found");
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
return await assetCache.getAsset(assetId);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
this.warn(`Error retrieving asset from cache for ID: ${assetId}`);
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
constructor(appObject) {
|
|
36
|
+
super(appObject, GetAssetFromCacheUC.type);
|
|
37
|
+
this.appObjects.registerSingleton(this);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=GetAssetFromCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetAssetFromCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/UCs/GetAssetFromCacheUC.ts"],"names":[],"mappings":";;;AAkBA,0DAIC;AAtBD,sCAKqB;AACrB,mEAAgE;AAEhE,MAAsB,mBAAoB,SAAQ,kBAAW;IAK3D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;;AAPH,kDAQC;AAPiB,wBAAI,GAAG,qBAAqB,CAAC;AAS/C,SAAgB,uBAAuB,CACrC,SAAoB;IAEpB,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,sBAAuB,SAAQ,mBAAmB;IACtD,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { AssetCacheEntity } from \"../Entities/AssetCacheEntity\";\r\n\r\nexport abstract class GetAssetFromCacheUC extends AppObjectUC {\r\n static readonly type = \"GetAssetFromCacheUC\";\r\n\r\n abstract getAsset(assetId: string): Promise<Blob | undefined>;\r\n\r\n static get(appObjects: AppObjectRepo): GetAssetFromCacheUC | undefined {\r\n return getSingletonComponent(GetAssetFromCacheUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeGetAssetFromCacheUC(\r\n appObject: AppObject\r\n): GetAssetFromCacheUC {\r\n return new GetAssetFromCacheUCImp(appObject);\r\n}\r\n\r\nclass GetAssetFromCacheUCImp extends GetAssetFromCacheUC {\r\n private get assetCacheEntity(): AssetCacheEntity | undefined {\r\n return this.getCachedSingleton<AssetCacheEntity>(AssetCacheEntity.type);\r\n }\r\n\r\n async getAsset(assetId: string): Promise<Blob | undefined> {\r\n const assetCache = this.assetCacheEntity;\r\n if (!assetCache) {\r\n this.warn(\"AssetCacheEntity not found\");\r\n return undefined;\r\n }\r\n\r\n try {\r\n return await assetCache.getAsset(assetId);\r\n } catch (e) {\r\n this.warn(`Error retrieving asset from cache for ID: ${assetId}`);\r\n return undefined;\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetAssetFromCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetScriptFromCacheUC = void 0;
|
|
4
|
+
exports.makeGetScriptFromCacheUC = makeGetScriptFromCacheUC;
|
|
5
|
+
const core_1 = require("@vived/core");
|
|
6
|
+
const ScriptCacheEntity_1 = require("../Entities/ScriptCacheEntity");
|
|
7
|
+
class GetScriptFromCacheUC extends core_1.AppObjectUC {
|
|
8
|
+
static get(appObjects) {
|
|
9
|
+
return (0, core_1.getSingletonComponent)(GetScriptFromCacheUC.type, appObjects);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.GetScriptFromCacheUC = GetScriptFromCacheUC;
|
|
13
|
+
GetScriptFromCacheUC.type = "GetScriptFromCacheUC";
|
|
14
|
+
function makeGetScriptFromCacheUC(appObject) {
|
|
15
|
+
return new GetScriptFromCacheUCImp(appObject);
|
|
16
|
+
}
|
|
17
|
+
class GetScriptFromCacheUCImp extends GetScriptFromCacheUC {
|
|
18
|
+
get scriptCacheEntity() {
|
|
19
|
+
return this.getCachedSingleton(ScriptCacheEntity_1.ScriptCacheEntity.type);
|
|
20
|
+
}
|
|
21
|
+
async getScript(url) {
|
|
22
|
+
const scriptCache = this.scriptCacheEntity;
|
|
23
|
+
if (!scriptCache) {
|
|
24
|
+
this.warn("ScriptCacheEntity not found");
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const { appId, version, scriptPath } = this.extractScriptInfo(url);
|
|
29
|
+
return await scriptCache.getScript(appId, version, scriptPath);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
this.warn(`Error retrieving script from cache for URL: ${url}`);
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
extractScriptInfo(url) {
|
|
37
|
+
const scriptCache = this.scriptCacheEntity;
|
|
38
|
+
if (!scriptCache) {
|
|
39
|
+
this.warn("ScriptCacheEntity not found");
|
|
40
|
+
return { appId: "unknown", version: "unknown", scriptPath: "unknown" };
|
|
41
|
+
}
|
|
42
|
+
return scriptCache.extractScriptInfo(url);
|
|
43
|
+
}
|
|
44
|
+
constructor(appObject) {
|
|
45
|
+
super(appObject, GetScriptFromCacheUC.type);
|
|
46
|
+
this.appObjects.registerSingleton(this);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=GetScriptFromCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetScriptFromCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/UCs/GetScriptFromCacheUC.ts"],"names":[],"mappings":";;;AAuBA,4DAIC;AA3BD,sCAKqB;AACrB,qEAAkE;AAElE,MAAsB,oBAAqB,SAAQ,kBAAW;IAU5D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;;AAZH,oDAaC;AAZiB,yBAAI,GAAG,sBAAsB,CAAC;AAchD,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAoB,qCAAiB,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACnE,OAAO,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,GAAW;QAK3B,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QACzE,CAAC;QAED,OAAO,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { ScriptCacheEntity } from \"../Entities/ScriptCacheEntity\";\r\n\r\nexport abstract class GetScriptFromCacheUC extends AppObjectUC {\r\n static readonly type = \"GetScriptFromCacheUC\";\r\n\r\n abstract getScript(url: string): Promise<string | undefined>;\r\n abstract extractScriptInfo(url: string): {\r\n appId: string;\r\n version: string;\r\n scriptPath: string;\r\n };\r\n\r\n static get(appObjects: AppObjectRepo): GetScriptFromCacheUC | undefined {\r\n return getSingletonComponent(GetScriptFromCacheUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeGetScriptFromCacheUC(\r\n appObject: AppObject\r\n): GetScriptFromCacheUC {\r\n return new GetScriptFromCacheUCImp(appObject);\r\n}\r\n\r\nclass GetScriptFromCacheUCImp extends GetScriptFromCacheUC {\r\n private get scriptCacheEntity(): ScriptCacheEntity | undefined {\r\n return this.getCachedSingleton<ScriptCacheEntity>(ScriptCacheEntity.type);\r\n }\r\n\r\n async getScript(url: string): Promise<string | undefined> {\r\n const scriptCache = this.scriptCacheEntity;\r\n if (!scriptCache) {\r\n this.warn(\"ScriptCacheEntity not found\");\r\n return undefined;\r\n }\r\n\r\n try {\r\n const { appId, version, scriptPath } = this.extractScriptInfo(url);\r\n return await scriptCache.getScript(appId, version, scriptPath);\r\n } catch (e) {\r\n this.warn(`Error retrieving script from cache for URL: ${url}`);\r\n return undefined;\r\n }\r\n }\r\n\r\n extractScriptInfo(url: string): {\r\n appId: string;\r\n version: string;\r\n scriptPath: string;\r\n } {\r\n const scriptCache = this.scriptCacheEntity;\r\n if (!scriptCache) {\r\n this.warn(\"ScriptCacheEntity not found\");\r\n return { appId: \"unknown\", version: \"unknown\", scriptPath: \"unknown\" };\r\n }\r\n\r\n return scriptCache.extractScriptInfo(url);\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetScriptFromCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoreAssetInCacheUC = void 0;
|
|
4
|
+
exports.makeStoreAssetInCacheUC = makeStoreAssetInCacheUC;
|
|
5
|
+
const core_1 = require("@vived/core");
|
|
6
|
+
const AssetCacheEntity_1 = require("../Entities/AssetCacheEntity");
|
|
7
|
+
class StoreAssetInCacheUC extends core_1.AppObjectUC {
|
|
8
|
+
static get(appObjects) {
|
|
9
|
+
return (0, core_1.getSingletonComponent)(StoreAssetInCacheUC.type, appObjects);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.StoreAssetInCacheUC = StoreAssetInCacheUC;
|
|
13
|
+
StoreAssetInCacheUC.type = "StoreAssetInCacheUC";
|
|
14
|
+
function makeStoreAssetInCacheUC(appObject) {
|
|
15
|
+
return new StoreAssetInCacheUCImp(appObject);
|
|
16
|
+
}
|
|
17
|
+
class StoreAssetInCacheUCImp extends StoreAssetInCacheUC {
|
|
18
|
+
get assetCacheEntity() {
|
|
19
|
+
return this.getCachedSingleton(AssetCacheEntity_1.AssetCacheEntity.type);
|
|
20
|
+
}
|
|
21
|
+
async storeAsset(assetId, content, contentType) {
|
|
22
|
+
const assetCache = this.assetCacheEntity;
|
|
23
|
+
if (!assetCache) {
|
|
24
|
+
this.warn("AssetCacheEntity not found");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
await assetCache.storeAsset(assetId, content, contentType);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
this.warn(`Error storing asset in cache for ID: ${assetId}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
constructor(appObject) {
|
|
35
|
+
super(appObject, StoreAssetInCacheUC.type);
|
|
36
|
+
this.appObjects.registerSingleton(this);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=StoreAssetInCacheUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreAssetInCacheUC.js","sourceRoot":"","sources":["../../../../src/Cache/UCs/StoreAssetInCacheUC.ts"],"names":[],"mappings":";;;AAsBA,0DAIC;AA1BD,sCAKqB;AACrB,mEAAgE;AAEhE,MAAsB,mBAAoB,SAAQ,kBAAW;IAS3D,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;;AAXH,kDAYC;AAXiB,wBAAI,GAAG,qBAAqB,CAAC;AAa/C,SAAgB,uBAAuB,CACrC,SAAoB;IAEpB,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,sBAAuB,SAAQ,mBAAmB;IACtD,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAe,EACf,OAAa,EACb,WAAoB;QAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { AssetCacheEntity } from \"../Entities/AssetCacheEntity\";\r\n\r\nexport abstract class StoreAssetInCacheUC extends AppObjectUC {\r\n static readonly type = \"StoreAssetInCacheUC\";\r\n\r\n abstract storeAsset(\r\n assetId: string,\r\n content: Blob,\r\n contentType?: string\r\n ): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): StoreAssetInCacheUC | undefined {\r\n return getSingletonComponent(StoreAssetInCacheUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeStoreAssetInCacheUC(\r\n appObject: AppObject\r\n): StoreAssetInCacheUC {\r\n return new StoreAssetInCacheUCImp(appObject);\r\n}\r\n\r\nclass StoreAssetInCacheUCImp extends StoreAssetInCacheUC {\r\n private get assetCacheEntity(): AssetCacheEntity | undefined {\r\n return this.getCachedSingleton<AssetCacheEntity>(AssetCacheEntity.type);\r\n }\r\n\r\n async storeAsset(\r\n assetId: string,\r\n content: Blob,\r\n contentType?: string\r\n ): Promise<void> {\r\n const assetCache = this.assetCacheEntity;\r\n if (!assetCache) {\r\n this.warn(\"AssetCacheEntity not found\");\r\n return;\r\n }\r\n\r\n try {\r\n await assetCache.storeAsset(assetId, content, contentType);\r\n } catch (e) {\r\n this.warn(`Error storing asset in cache for ID: ${assetId}`);\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, StoreAssetInCacheUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoreScriptInCacheUC = void 0;
|
|
4
|
+
exports.makeStoreScriptInCacheUC = makeStoreScriptInCacheUC;
|
|
5
|
+
const core_1 = require("@vived/core");
|
|
6
|
+
const ScriptCacheEntity_1 = require("../Entities/ScriptCacheEntity");
|
|
7
|
+
class StoreScriptInCacheUC extends core_1.AppObjectUC {
|
|
8
|
+
static get(appObjects) {
|
|
9
|
+
return (0, core_1.getSingletonComponent)(StoreScriptInCacheUC.type, appObjects);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.StoreScriptInCacheUC = StoreScriptInCacheUC;
|
|
13
|
+
StoreScriptInCacheUC.type = "StoreScriptInCacheUC";
|
|
14
|
+
function makeStoreScriptInCacheUC(appObject) {
|
|
15
|
+
return new StoreScriptInCacheUCImp(appObject);
|
|
16
|
+
}
|
|
17
|
+
class StoreScriptInCacheUCImp extends StoreScriptInCacheUC {
|
|
18
|
+
get scriptCacheEntity() {
|
|
19
|
+
return this.getCachedSingleton(ScriptCacheEntity_1.ScriptCacheEntity.type);
|
|
20
|
+
}
|
|
21
|
+
async storeScript(url, content) {
|
|
22
|
+
const scriptCache = this.scriptCacheEntity;
|
|
23
|
+
if (!scriptCache) {
|
|
24
|
+
this.warn("ScriptCacheEntity not found");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const { appId, version, scriptPath } = this.extractScriptInfo(url);
|
|
29
|
+
await scriptCache.storeScript(appId, version, scriptPath, content);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
this.warn(`Error storing script in cache for URL: ${url}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
extractScriptInfo(url) {
|
|
36
|
+
const scriptCache = this.scriptCacheEntity;
|
|
37
|
+
if (!scriptCache) {
|
|
38
|
+
this.warn("ScriptCacheEntity not found");
|
|
39
|
+
return { appId: "unknown", version: "unknown", scriptPath: "unknown" };
|
|
40
|
+
}
|
|
41
|
+
return scriptCache.extractScriptInfo(url);
|
|
42
|
+
}
|
|
43
|
+
constructor(appObject) {
|
|
44
|
+
super(appObject, StoreScriptInCacheUC.type);
|
|
45
|
+
this.appObjects.registerSingleton(this);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=StoreScriptInCacheUC.js.map
|