@omss/framework 1.1.2 → 1.1.3
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.
|
@@ -17,7 +17,7 @@ export declare class ProviderRegistry {
|
|
|
17
17
|
*/
|
|
18
18
|
unregister(providerId: string): boolean;
|
|
19
19
|
/**
|
|
20
|
-
* Auto-discover and register providers from a directory
|
|
20
|
+
* Auto-discover and register providers from a directory (recursive)
|
|
21
21
|
*/
|
|
22
22
|
discoverProviders(directory: string): Promise<void>;
|
|
23
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAK9C,MAAM,WAAW,sBAAsB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC9B;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,SAAS,CAAuC;gBAE5C,MAAM,CAAC,EAAE,sBAAsB;IAY3C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAQtC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAK9C,MAAM,WAAW,sBAAsB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC9B;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,SAAS,CAAuC;gBAE5C,MAAM,CAAC,EAAE,sBAAsB;IAY3C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAQtC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAGvC;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DzD;;OAEG;IACH,YAAY,IAAI,YAAY,EAAE;IAI9B;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,mBAAmB,IAAI,YAAY,EAAE;IAIrC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAerD;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;CAIhB"}
|
|
@@ -68,7 +68,7 @@ class ProviderRegistry {
|
|
|
68
68
|
return this.providers.delete(providerId);
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
|
-
* Auto-discover and register providers from a directory
|
|
71
|
+
* Auto-discover and register providers from a directory (recursive)
|
|
72
72
|
*/
|
|
73
73
|
async discoverProviders(directory) {
|
|
74
74
|
try {
|
|
@@ -81,38 +81,47 @@ class ProviderRegistry {
|
|
|
81
81
|
console.warn(`[ProviderRegistry] Directory does not exist: ${absoluteDir}`);
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
|
-
const
|
|
85
|
-
console.log(`[ProviderRegistry] Scanning ${
|
|
86
|
-
for (const
|
|
84
|
+
const entries = await fs.readdir(absoluteDir, { withFileTypes: true });
|
|
85
|
+
console.log(`[ProviderRegistry] Scanning ${entries.length} item(s) in ${absoluteDir}`);
|
|
86
|
+
for (const entry of entries) {
|
|
87
|
+
const fullPath = path.resolve(absoluteDir, entry.name);
|
|
88
|
+
if (entry.isDirectory()) {
|
|
89
|
+
// Recurse into subdirectory
|
|
90
|
+
await this.discoverProviders(fullPath);
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
// Only handle files from here on
|
|
94
|
+
const file = entry.name;
|
|
87
95
|
if (!file.endsWith('.js') && !file.endsWith('.ts'))
|
|
88
96
|
continue;
|
|
89
97
|
if (file.includes('.test.') || file.includes('.spec.'))
|
|
90
98
|
continue;
|
|
91
99
|
if (file.endsWith('.d.ts'))
|
|
92
100
|
continue;
|
|
93
|
-
const filePath = path.resolve(absoluteDir, file);
|
|
94
101
|
try {
|
|
95
|
-
const fileUrl = (0, url_1.pathToFileURL)(
|
|
96
|
-
console.log(`[ProviderRegistry] Loading provider from: ${file}`);
|
|
102
|
+
const fileUrl = (0, url_1.pathToFileURL)(fullPath).href;
|
|
97
103
|
const module = await Promise.resolve(`${fileUrl}`).then(s => __importStar(require(s)));
|
|
98
104
|
let foundProvider = false;
|
|
99
|
-
for (const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
for (const [name, ExportedClass] of Object.entries(module)) {
|
|
106
|
+
if (typeof ExportedClass === 'function' && ExportedClass.prototype) {
|
|
107
|
+
if (base_provider_1.BaseProvider.prototype.isPrototypeOf(ExportedClass.prototype)) {
|
|
108
|
+
try {
|
|
109
|
+
// Check if ExportedClass is a constructable class
|
|
110
|
+
const instance = new ExportedClass();
|
|
111
|
+
this.register(instance);
|
|
112
|
+
foundProvider = true;
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
console.warn(`[ProviderRegistry] Failed to instantiate ${name} from ${fullPath}:`, err);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
|
-
if (!foundProvider) {
|
|
108
|
-
console.warn(`[ProviderRegistry] No provider classes found in ${file}`);
|
|
109
|
-
}
|
|
110
120
|
}
|
|
111
121
|
catch (error) {
|
|
112
|
-
console.error(`[ProviderRegistry] Failed to load provider from ${
|
|
122
|
+
console.error(`[ProviderRegistry] Failed to load provider from ${fullPath}:`, error);
|
|
113
123
|
}
|
|
114
124
|
}
|
|
115
|
-
console.log(`[ProviderRegistry] Discovery complete. Total providers: ${this.providers.size}`);
|
|
116
125
|
}
|
|
117
126
|
catch (error) {
|
|
118
127
|
console.error(`[ProviderRegistry] Failed to discover providers in ${directory}:`, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA8C;AAC9C,gDAAiC;AACjC,2CAA4B;AAC5B,6BAAmC;AASnC,MAAa,gBAAgB;IACjB,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAA;IAExD,YAAY,MAA+B;QACvC,4CAA4C;QAC5C,IAAI,MAAM,EAAE,CAAC;YACT,4BAAY,CAAC,cAAc,CAAC;gBACxB,OAAO,EAAE,MAAM,CAAC,YAAY;gBAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC5B,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAsB;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,EAAE,yBAAyB,CAAC,CAAA;QAC9E,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,2CAA2C,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5F,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,UAAkB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5C,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omss/framework",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Official OMSS backend framework - Multi-provider streaming media aggregation framework with auto-discovery",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -55,18 +55,19 @@
|
|
|
55
55
|
"license": "MIT",
|
|
56
56
|
"repository": {
|
|
57
57
|
"type": "git",
|
|
58
|
-
"url": "git+https://github.com/omss-spec/
|
|
58
|
+
"url": "git+https://github.com/omss-spec/framework.git"
|
|
59
59
|
},
|
|
60
60
|
"bugs": {
|
|
61
|
-
"url": "https://github.com/omss-spec/
|
|
61
|
+
"url": "https://github.com/omss-spec/framework/issues"
|
|
62
62
|
},
|
|
63
|
-
"homepage": "https://github.com/omss-spec/
|
|
63
|
+
"homepage": "https://github.com/omss-spec/framework#readme",
|
|
64
64
|
"engines": {
|
|
65
65
|
"node": ">=18.0.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@fastify/cors": "^11.2.0",
|
|
69
69
|
"axios": "^1.13.2",
|
|
70
|
+
"dotenv": "^17.2.3",
|
|
70
71
|
"fastify": "^5.7.1",
|
|
71
72
|
"ioredis": "^5.9.2",
|
|
72
73
|
"uuid": "^13.0.0"
|