@urga-panel/ur-panels-core 1.0.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/.eslintrc.js +13 -0
- package/dist/ServiceManager.d.ts +26 -0
- package/dist/ServiceManager.js +351 -0
- package/dist/TestRun.d.ts +1 -0
- package/dist/TestRun.js +14 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +22 -0
- package/dist/services/abstract/apiService/ApiService.d.ts +17 -0
- package/dist/services/abstract/apiService/ApiService.js +33 -0
- package/dist/services/abstract/authServices/AuthService.d.ts +75 -0
- package/dist/services/abstract/authServices/AuthService.js +275 -0
- package/dist/services/abstract/authServices/Authorization.d.ts +0 -0
- package/dist/services/abstract/authServices/Authorization.js +0 -0
- package/dist/services/abstract/extensionServices/ExtensionService.d.ts +25 -0
- package/dist/services/abstract/extensionServices/ExtensionService.js +21 -0
- package/dist/services/abstract/pageServices/LayoutPageService.d.ts +17 -0
- package/dist/services/abstract/pageServices/LayoutPageService.js +32 -0
- package/dist/services/abstract/pageServices/PageServices.d.ts +20 -0
- package/dist/services/abstract/pageServices/PageServices.js +23 -0
- package/dist/services/abstract/pageServices/controllers/NSPageControllerService.d.ts +10 -0
- package/dist/services/abstract/pageServices/controllers/NSPageControllerService.js +18 -0
- package/dist/services/abstract/pageServices/controllers/PageControllerService.d.ts +27 -0
- package/dist/services/abstract/pageServices/controllers/PageControllerService.js +24 -0
- package/dist/services/abstract/pageServices/controllers/SVPageControllerService.d.ts +34 -0
- package/dist/services/abstract/pageServices/controllers/SVPageControllerService.js +73 -0
- package/dist/services/abstract/pageServices/pages/NsPageService.d.ts +26 -0
- package/dist/services/abstract/pageServices/pages/NsPageService.js +66 -0
- package/dist/services/abstract/project/ProjectInfoService.d.ts +42 -0
- package/dist/services/abstract/project/ProjectInfoService.js +72 -0
- package/dist/services/abstract/webviewServices/WVBackService.d.ts +18 -0
- package/dist/services/abstract/webviewServices/WVBackService.js +22 -0
- package/dist/services/abstract/webviewServices/WVFrontService.d.ts +21 -0
- package/dist/services/abstract/webviewServices/WVFrontService.js +54 -0
- package/dist/services/abstract/webviewServices/nv.d.ts +26 -0
- package/dist/services/abstract/webviewServices/nv.js +99 -0
- package/dist/services/main/fetchServices/FetchBrowserService.d.ts +19 -0
- package/dist/services/main/fetchServices/FetchBrowserService.js +26 -0
- package/dist/services/main/httpServices/RequestHandlerService.d.ts +46 -0
- package/dist/services/main/httpServices/RequestHandlerService.js +165 -0
- package/dist/services/main/remoteApiControllerService/RemoteApiControllerService.d.ts +36 -0
- package/dist/services/main/remoteApiControllerService/RemoteApiControllerService.js +42 -0
- package/dist/services/main/testServices/TestService.d.ts +19 -0
- package/dist/services/main/testServices/TestService.js +22 -0
- package/dist/services/main/testServices/TestService2.d.ts +18 -0
- package/dist/services/main/testServices/TestService2.js +20 -0
- package/dist/types/RegisterServiceInfo.d.ts +13 -0
- package/dist/types/RegisterServiceInfo.js +1 -0
- package/dist/types/Service.d.ts +32 -0
- package/dist/types/Service.js +43 -0
- package/dist/types/ServiceConstructor.d.ts +5 -0
- package/dist/types/ServiceConstructor.js +1 -0
- package/dist/types/ServiceEntry.d.ts +6 -0
- package/dist/types/ServiceEntry.js +1 -0
- package/dist/types/ServiceOts.d.ts +12 -0
- package/dist/types/ServiceOts.js +1 -0
- package/dist/types/ServiceRegisterInfo.d.ts +29 -0
- package/dist/types/ServiceRegisterInfo.js +25 -0
- package/dist/types/ServiceResponse.d.ts +13 -0
- package/dist/types/ServiceResponse.js +1 -0
- package/dist/types/ServiceSetupOptions.d.ts +3 -0
- package/dist/types/ServiceSetupOptions.js +1 -0
- package/dist/types/ServiceStatus.d.ts +1 -0
- package/dist/types/ServiceStatus.js +1 -0
- package/dist/types/_ServiceError.d.ts +5 -0
- package/dist/types/_ServiceError.js +1 -0
- package/jest.config.js +5 -0
- package/package.json +35 -0
- package/src/ServiceManager.ts +403 -0
- package/src/TestRun.ts +17 -0
- package/src/index.ts +26 -0
- package/src/services/abstract/apiService/ApiService.ts +51 -0
- package/src/services/abstract/authServices/AuthService.ts +364 -0
- package/src/services/abstract/authServices/Authorization.ts +0 -0
- package/src/services/abstract/extensionServices/ExtensionService.ts +50 -0
- package/src/services/abstract/pageServices/LayoutPageService.ts +49 -0
- package/src/services/abstract/pageServices/PageServices.ts +37 -0
- package/src/services/abstract/pageServices/controllers/NSPageControllerService.ts +23 -0
- package/src/services/abstract/pageServices/controllers/PageControllerService.ts +56 -0
- package/src/services/abstract/pageServices/controllers/SVPageControllerService.ts +104 -0
- package/src/services/abstract/pageServices/pages/NSPageService.ts +82 -0
- package/src/services/abstract/project/ProjectInfoService.ts +108 -0
- package/src/services/abstract/webviewServices/WVBackService.ts +34 -0
- package/src/services/abstract/webviewServices/WVFrontService.ts +71 -0
- package/src/services/abstract/webviewServices/nv.js +112 -0
- package/src/services/abstract/webviewServices/nv.ts +125 -0
- package/src/services/main/fetchServices/FetchBrowserService.ts +40 -0
- package/src/services/main/httpServices/RequestHandlerService.ts +207 -0
- package/src/services/main/remoteApiControllerService/RemoteApiControllerService.ts +70 -0
- package/src/services/main/testServices/TestService.ts +36 -0
- package/src/services/main/testServices/TestService2.ts +34 -0
- package/src/types/RegisterServiceInfo.ts +19 -0
- package/src/types/Service.ts +61 -0
- package/src/types/ServiceConstructor.ts +6 -0
- package/src/types/ServiceEntry.ts +10 -0
- package/src/types/ServiceOts.ts +17 -0
- package/src/types/ServiceRegisterInfo.ts +48 -0
- package/src/types/ServiceResponse.ts +13 -0
- package/src/types/ServiceSetupOptions.ts +5 -0
- package/src/types/ServiceStatus.ts +2 -0
- package/src/types/_ServiceError.ts +5 -0
- package/tsconfig.json +20 -0
package/.eslintrc.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ExtensionService } from "./services/abstract/extensionServices/ExtensionService.js";
|
|
2
|
+
import { RegisterServiceInfo } from "./types/RegisterServiceInfo.js";
|
|
3
|
+
import { Service } from "./types/Service.js";
|
|
4
|
+
import { ServiceEntry } from "./types/ServiceEntry.js";
|
|
5
|
+
export interface ServiceConstructor<T extends Service> {
|
|
6
|
+
new (ots: any): T;
|
|
7
|
+
servcieInfo?: {};
|
|
8
|
+
}
|
|
9
|
+
export declare class _ServiceManager {
|
|
10
|
+
services: {
|
|
11
|
+
[key: string]: ServiceEntry<Service>;
|
|
12
|
+
};
|
|
13
|
+
constructor();
|
|
14
|
+
initServices(type: "ns" | "svelte" | "node" | "svelteBackend", services: Array<RegisterServiceInfo>): Promise<void>;
|
|
15
|
+
getService<T extends Service>(serviceName: string): T;
|
|
16
|
+
private setKey;
|
|
17
|
+
private quickService;
|
|
18
|
+
/**
|
|
19
|
+
* Returns all services that are ExtensionService instances (serviceSelf)
|
|
20
|
+
*/
|
|
21
|
+
getExtensionServices(): {
|
|
22
|
+
[key: string]: ExtensionService;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
declare const ServiceManager: _ServiceManager;
|
|
26
|
+
export { ServiceManager };
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { ExtensionService } from "./services/abstract/extensionServices/ExtensionService.js";
|
|
2
|
+
import { NSPageControllerService } from "./services/abstract/pageServices/controllers/NSPageControllerService.js";
|
|
3
|
+
import { SVPageControllerService } from "./services/abstract/pageServices/controllers/SVPageControllerService.js";
|
|
4
|
+
import { NSPageService } from "./services/abstract/pageServices/pages/NsPageService.js";
|
|
5
|
+
import { PageService } from "./services/abstract/pageServices/PageServices.js";
|
|
6
|
+
export class _ServiceManager {
|
|
7
|
+
services = {
|
|
8
|
+
TestService: {
|
|
9
|
+
serviceSelf: undefined,
|
|
10
|
+
status: "waitSetup"
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
constructor() {
|
|
14
|
+
}
|
|
15
|
+
async initServices(type,
|
|
16
|
+
// services: {
|
|
17
|
+
// [key: string]: {
|
|
18
|
+
// service:ServiceConstructor<Service>
|
|
19
|
+
// ots: any;
|
|
20
|
+
// };
|
|
21
|
+
// // LayoutService?: ServiceConstructor<LayoutPageService>;
|
|
22
|
+
// }
|
|
23
|
+
services) {
|
|
24
|
+
//debugger;
|
|
25
|
+
console.log("ServiceManager: Initializing services...");
|
|
26
|
+
// // TestService'i oluştur ve başlat
|
|
27
|
+
// const _TestService = this.setKey("TestService", {
|
|
28
|
+
// serviceSelf: new TestService({
|
|
29
|
+
// usedService: {},
|
|
30
|
+
// tag: "TestService",
|
|
31
|
+
// }),
|
|
32
|
+
// status: "waitSetup",
|
|
33
|
+
// });
|
|
34
|
+
// await _TestService.setup();
|
|
35
|
+
// await _TestService.start();
|
|
36
|
+
// PageControllerService'i oluştur ve başlat
|
|
37
|
+
if (type == "ns") {
|
|
38
|
+
const _PageControllerService = this.setKey("NSPageControllerService", {
|
|
39
|
+
serviceSelf: new NSPageControllerService({
|
|
40
|
+
usedService: {},
|
|
41
|
+
abilities: {
|
|
42
|
+
createChildService: (tag) => {
|
|
43
|
+
console.log("createChildService called for ---", tag);
|
|
44
|
+
const _pageService = this.setKey(tag, {
|
|
45
|
+
serviceSelf: new NSPageService({
|
|
46
|
+
usedService: {},
|
|
47
|
+
tag: tag,
|
|
48
|
+
type: type,
|
|
49
|
+
}),
|
|
50
|
+
status: "waitSetup",
|
|
51
|
+
});
|
|
52
|
+
return _pageService;
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
tag: "NSPageControllerService",
|
|
56
|
+
type: type,
|
|
57
|
+
}),
|
|
58
|
+
status: "waitSetup",
|
|
59
|
+
});
|
|
60
|
+
await _PageControllerService.setup();
|
|
61
|
+
await _PageControllerService.start();
|
|
62
|
+
}
|
|
63
|
+
else if (type == "svelte") {
|
|
64
|
+
const _PageControllerService = this.setKey("SVPageControllerService", {
|
|
65
|
+
serviceSelf: new SVPageControllerService({
|
|
66
|
+
usedService: {},
|
|
67
|
+
abilities: {
|
|
68
|
+
// Artık class referansını parametre olarak alıyor
|
|
69
|
+
createChildService: (tag, PageCtor) => {
|
|
70
|
+
console.log("createChildService called for ---", tag);
|
|
71
|
+
const ServiceClass = PageCtor ?? PageService;
|
|
72
|
+
const _pageService = this.setKey(tag, {
|
|
73
|
+
serviceSelf: new ServiceClass({
|
|
74
|
+
usedService: {},
|
|
75
|
+
tag: tag,
|
|
76
|
+
type: type,
|
|
77
|
+
}),
|
|
78
|
+
status: "waitSetup",
|
|
79
|
+
});
|
|
80
|
+
return _pageService;
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
tag: "PageControllerService",
|
|
84
|
+
type: type,
|
|
85
|
+
}),
|
|
86
|
+
status: "waitSetup",
|
|
87
|
+
});
|
|
88
|
+
await _PageControllerService.setup();
|
|
89
|
+
await _PageControllerService.start();
|
|
90
|
+
}
|
|
91
|
+
else if (type == "svelteBackend") {
|
|
92
|
+
// debugger;
|
|
93
|
+
// const _PageControllerService = this.setKey("RequestHandlerService", {
|
|
94
|
+
// serviceSelf: new RequestHandlerService({
|
|
95
|
+
// usedService: {
|
|
96
|
+
// "AuthService": () => {
|
|
97
|
+
// debugger;
|
|
98
|
+
// return this.getService("AuthService")
|
|
99
|
+
// },
|
|
100
|
+
// },
|
|
101
|
+
// abilities: {
|
|
102
|
+
// // Artık class referansını parametre olarak alıyor
|
|
103
|
+
// createChildService: (tag: string, PageCtor?: ServiceConstructor<Service>) => {
|
|
104
|
+
// console.log("createChildService called for ---", tag);
|
|
105
|
+
// const ServiceClass = PageCtor ?? PageService;
|
|
106
|
+
// const _pageService = this.setKey(tag, {
|
|
107
|
+
// serviceSelf: new ServiceClass({
|
|
108
|
+
// usedService: {},
|
|
109
|
+
// tag: tag,
|
|
110
|
+
// type: type,
|
|
111
|
+
// }),
|
|
112
|
+
// status: "waitSetup",
|
|
113
|
+
// });
|
|
114
|
+
// return _pageService as Service;
|
|
115
|
+
// },
|
|
116
|
+
// },
|
|
117
|
+
// tag: "RequestHandlerService",
|
|
118
|
+
// type: type,
|
|
119
|
+
// }),
|
|
120
|
+
// status: "waitSetup",
|
|
121
|
+
// });
|
|
122
|
+
// await _PageControllerService.setup();
|
|
123
|
+
// await _PageControllerService.start();
|
|
124
|
+
}
|
|
125
|
+
const createdServices = [];
|
|
126
|
+
for (const serviceInfo of services) {
|
|
127
|
+
const { serviceName, service, tag, dynamicTag, isAbstract, requiredServices } = serviceInfo;
|
|
128
|
+
// Fill usedService according to requiredServices
|
|
129
|
+
//@ts-ignore
|
|
130
|
+
if (service.serviceInfo == null || service.serviceInfo == undefined) {
|
|
131
|
+
console.warn(`Service ${serviceName} does not have serviceInfo defined.`);
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
console.log(`Service ${serviceName} has serviceInfo defined:`, service.serviceInfo);
|
|
136
|
+
}
|
|
137
|
+
const usedService = {};
|
|
138
|
+
if (Array.isArray(service.serviceInfo.requiredServices)) {
|
|
139
|
+
for (const reqName of service.serviceInfo.requiredServices) {
|
|
140
|
+
usedService[reqName] = () => { return this.getService(reqName); };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const serviceInstance = this.setKey(tag, {
|
|
144
|
+
serviceSelf: new service({
|
|
145
|
+
usedService,
|
|
146
|
+
tag: tag,
|
|
147
|
+
type: type,
|
|
148
|
+
abilities: {
|
|
149
|
+
createChildService: (tag, PageCtor) => {
|
|
150
|
+
console.log("createChildService called for ---", tag);
|
|
151
|
+
const ServiceClass = PageCtor ?? PageService;
|
|
152
|
+
const _pageService = this.setKey(tag, {
|
|
153
|
+
serviceSelf: new ServiceClass({
|
|
154
|
+
usedService: {},
|
|
155
|
+
tag: tag,
|
|
156
|
+
type: type,
|
|
157
|
+
}),
|
|
158
|
+
status: "waitSetup",
|
|
159
|
+
});
|
|
160
|
+
return _pageService;
|
|
161
|
+
},
|
|
162
|
+
}
|
|
163
|
+
}),
|
|
164
|
+
status: "waitSetup",
|
|
165
|
+
});
|
|
166
|
+
await serviceInstance.setup();
|
|
167
|
+
createdServices.push(serviceInstance);
|
|
168
|
+
}
|
|
169
|
+
for (const serviceInstance of createdServices) {
|
|
170
|
+
if (typeof serviceInstance.start === "function") {
|
|
171
|
+
await serviceInstance.start();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// // Diğer servisleri oluştur ve başlat (TestService ve PageControllerService hariç)
|
|
175
|
+
// const excluded = ["TestService", "PageControllerService"];
|
|
176
|
+
// const createdServices: Service[] = [];
|
|
177
|
+
// for (const key of Object.keys(services)) {
|
|
178
|
+
// if (excluded.includes(key)) continue;
|
|
179
|
+
// const ServiceCtor = services[key].service;
|
|
180
|
+
// const serviceInstance = this.setKey(key, {
|
|
181
|
+
// serviceSelf: new ServiceCtor({
|
|
182
|
+
// usedService: {},
|
|
183
|
+
// abilities: {
|
|
184
|
+
// // createChildService: (tag: string) => {
|
|
185
|
+
// // console.log("createChildService called for ---", tag);
|
|
186
|
+
// // const _pageService = this.setKey(tag, {
|
|
187
|
+
// // serviceSelf: new PageService({
|
|
188
|
+
// // usedService: {},
|
|
189
|
+
// // tag: tag,
|
|
190
|
+
// // type: type,
|
|
191
|
+
// // }),
|
|
192
|
+
// // status: "waitSetup",
|
|
193
|
+
// // });
|
|
194
|
+
// // return _pageService as PageService;
|
|
195
|
+
// // },
|
|
196
|
+
// createChildService: (tag: string, PageCtor?: ServiceConstructor<Service>) => {
|
|
197
|
+
// console.log("createChildService called for ---", tag);
|
|
198
|
+
// const ServiceClass = PageCtor ?? PageService;
|
|
199
|
+
// const _pageService = this.setKey(tag, {
|
|
200
|
+
// serviceSelf: new ServiceClass({
|
|
201
|
+
// usedService: {},
|
|
202
|
+
// tag: tag,
|
|
203
|
+
// type: type,
|
|
204
|
+
// }),
|
|
205
|
+
// status: "waitSetup",
|
|
206
|
+
// });
|
|
207
|
+
// return _pageService as Service;
|
|
208
|
+
// },
|
|
209
|
+
// },
|
|
210
|
+
// type: type,
|
|
211
|
+
// tag: key,
|
|
212
|
+
// }),
|
|
213
|
+
// status: "waitSetup",
|
|
214
|
+
// });
|
|
215
|
+
// await serviceInstance.setup();
|
|
216
|
+
// createdServices.push(serviceInstance);
|
|
217
|
+
// }
|
|
218
|
+
// for (const serviceInstance of createdServices) {
|
|
219
|
+
// if (typeof serviceInstance.start === "function") {
|
|
220
|
+
// await serviceInstance.start();
|
|
221
|
+
// }
|
|
222
|
+
// }
|
|
223
|
+
}
|
|
224
|
+
// public createPage(callback: () => Promise<void>) {
|
|
225
|
+
// return async ({ params, url }) => {
|
|
226
|
+
// console.log("Available services:", Object.keys(this.services));
|
|
227
|
+
// callback();
|
|
228
|
+
// }
|
|
229
|
+
// }
|
|
230
|
+
getService(serviceName) {
|
|
231
|
+
if (this.services[serviceName]) {
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
console.log(`ServiceManager: Service ${serviceName} not found.`);
|
|
235
|
+
console.log("Available services:", Object.keys(this.services));
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
return this.services[serviceName].serviceSelf;
|
|
239
|
+
}
|
|
240
|
+
setKey(key, value) {
|
|
241
|
+
this.services[key] = value;
|
|
242
|
+
return this.services[key].serviceSelf;
|
|
243
|
+
}
|
|
244
|
+
async quickService(serviceName, serviceConstructor, usedService, ots = {}) {
|
|
245
|
+
this.setKey(serviceName, {
|
|
246
|
+
serviceSelf: new serviceConstructor({
|
|
247
|
+
usedService: {},
|
|
248
|
+
tag: serviceName,
|
|
249
|
+
}),
|
|
250
|
+
status: "waitSetup",
|
|
251
|
+
});
|
|
252
|
+
await this.services[serviceName].serviceSelf.setup();
|
|
253
|
+
this.services[serviceName].status = "waitStart";
|
|
254
|
+
return this.services[serviceName].serviceSelf;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Returns all services that are ExtensionService instances (serviceSelf)
|
|
258
|
+
*/
|
|
259
|
+
getExtensionServices() {
|
|
260
|
+
const result = {};
|
|
261
|
+
for (const [key, entry] of Object.entries(this.services)) {
|
|
262
|
+
if (entry.serviceSelf &&
|
|
263
|
+
entry.serviceSelf instanceof ExtensionService) {
|
|
264
|
+
result[key] = entry.serviceSelf;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return result;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
const ServiceManager = new _ServiceManager();
|
|
271
|
+
export { ServiceManager };
|
|
272
|
+
// export function getPackageJsonFromHost(
|
|
273
|
+
// packageName: string,
|
|
274
|
+
// hostDir: string = process.cwd()
|
|
275
|
+
// ): Record<string, any> | null {
|
|
276
|
+
// try {
|
|
277
|
+
// const dummyEntry = path.join(hostDir, 'index.js');
|
|
278
|
+
// const customRequire = createRequire(dummyEntry);
|
|
279
|
+
// // resolve the entry point of the package (e.g., index.js or main file)
|
|
280
|
+
// const resolvedPath = customRequire.resolve(packageName);
|
|
281
|
+
// // traverse up to find the package root (usually up to the nearest package.json)
|
|
282
|
+
// const packageRoot = findPackageRoot(resolvedPath);
|
|
283
|
+
// if (!packageRoot) return null;
|
|
284
|
+
// // console.log('resolvedPath', resolvedPath)
|
|
285
|
+
// // const parts = resolvedPath.split(path.sep);
|
|
286
|
+
// // const pkgIndex = parts.lastIndexOf('node_modules');
|
|
287
|
+
// // const packageRoot =
|
|
288
|
+
// // pkgIndex !== -1 ? path.join(...parts.slice(0, pkgIndex + 2)) : null;
|
|
289
|
+
// // console.log('package root', packageRoot)
|
|
290
|
+
// // if (!packageRoot) return null;
|
|
291
|
+
// const pkgJsonPath = path.join(packageRoot, 'urga.config.yaml');
|
|
292
|
+
// if (!fs.existsSync(pkgJsonPath)) return null;
|
|
293
|
+
// const jsonData = fs.readFileSync(pkgJsonPath, 'utf-8');
|
|
294
|
+
// const config = yaml.load(jsonData);
|
|
295
|
+
// return (config);
|
|
296
|
+
// } catch (err) {
|
|
297
|
+
// console.log(err)
|
|
298
|
+
// return null;
|
|
299
|
+
// }
|
|
300
|
+
// }
|
|
301
|
+
// export function isPackageInstalledInHost(
|
|
302
|
+
// packageName: string,
|
|
303
|
+
// hostDir: string = process.cwd()
|
|
304
|
+
// ): boolean {
|
|
305
|
+
// try {
|
|
306
|
+
// console.log(path.join(hostDir, 'index.js'))
|
|
307
|
+
// const customRequire = createRequire(path.join(hostDir, 'index.js'));
|
|
308
|
+
// customRequire.resolve(packageName);
|
|
309
|
+
// return true;
|
|
310
|
+
// } catch(error) {
|
|
311
|
+
// console.error(`Package ${packageName} not found in host directory ${hostDir}`,error);
|
|
312
|
+
// return false;
|
|
313
|
+
// }
|
|
314
|
+
// }
|
|
315
|
+
// function findPackageRoot(startDir: string): string | null {
|
|
316
|
+
// let currentDir = startDir;
|
|
317
|
+
// while (true) {
|
|
318
|
+
// const pkgPath = path.join(currentDir, 'package.json');
|
|
319
|
+
// if (fs.existsSync(pkgPath)) {
|
|
320
|
+
// return currentDir;
|
|
321
|
+
// }
|
|
322
|
+
// const parentDir = path.dirname(currentDir);
|
|
323
|
+
// if (parentDir === currentDir) {
|
|
324
|
+
// // Root dizine ulaşıldı
|
|
325
|
+
// return null;
|
|
326
|
+
// }
|
|
327
|
+
// currentDir = parentDir;
|
|
328
|
+
// }
|
|
329
|
+
// }
|
|
330
|
+
// return true;
|
|
331
|
+
// } catch(error) {
|
|
332
|
+
// console.error(`Package ${packageName} not found in host directory ${hostDir}`,error);
|
|
333
|
+
// return false;
|
|
334
|
+
// }
|
|
335
|
+
// }
|
|
336
|
+
// function findPackageRoot(startDir: string): string | null {
|
|
337
|
+
// let currentDir = startDir;
|
|
338
|
+
// while (true) {
|
|
339
|
+
// const pkgPath = path.join(currentDir, 'package.json');
|
|
340
|
+
// if (fs.existsSync(pkgPath)) {
|
|
341
|
+
// return currentDir;
|
|
342
|
+
// }
|
|
343
|
+
// const parentDir = path.dirname(currentDir);
|
|
344
|
+
// if (parentDir === currentDir) {
|
|
345
|
+
// // Root dizine ulaşıldı
|
|
346
|
+
// return null;
|
|
347
|
+
// }
|
|
348
|
+
// currentDir = parentDir;
|
|
349
|
+
// }
|
|
350
|
+
// }
|
|
351
|
+
// }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/TestRun.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
async function main() {
|
|
2
|
+
//const serviceManager = new ServiceManager();
|
|
3
|
+
// const _service = new LayoutPageService({
|
|
4
|
+
// tag: 'LayoutService',
|
|
5
|
+
// usedService: {}
|
|
6
|
+
// });
|
|
7
|
+
// await serviceManager.initServices(
|
|
8
|
+
// {
|
|
9
|
+
// LayoutService: _service
|
|
10
|
+
// }
|
|
11
|
+
// );
|
|
12
|
+
}
|
|
13
|
+
main().catch(console.error);
|
|
14
|
+
export {};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./types/Service.js";
|
|
2
|
+
export * from "./types/ServiceStatus.js";
|
|
3
|
+
export * from "./types/ServiceConstructor.js";
|
|
4
|
+
export * from "./types/ServiceEntry.js";
|
|
5
|
+
export * from "./types/ServiceSetupOptions.js";
|
|
6
|
+
export * from "./types/_ServiceError.js";
|
|
7
|
+
export * from "./types/ServiceResponse.js";
|
|
8
|
+
export * from "./types/ServiceOts.js";
|
|
9
|
+
export { ServiceManager } from "./ServiceManager.js";
|
|
10
|
+
export { NSPageControllerService } from "./services/abstract/pageServices/controllers/NSPageControllerService.js";
|
|
11
|
+
export { SVPageControllerService } from "./services/abstract/pageServices/controllers/SVPageControllerService.js";
|
|
12
|
+
export { ExtensionService } from "./services/abstract/extensionServices/ExtensionService.js";
|
|
13
|
+
export { ProjectInfoService } from "./services/abstract/project/ProjectInfoService.js";
|
|
14
|
+
export { RequestHandlerService } from "./services/main/httpServices/RequestHandlerService.js";
|
|
15
|
+
export { AuthService } from "./services/abstract/authServices/AuthService.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Types
|
|
2
|
+
export * from "./types/Service.js";
|
|
3
|
+
export * from "./types/ServiceStatus.js";
|
|
4
|
+
export * from "./types/ServiceConstructor.js";
|
|
5
|
+
export * from "./types/ServiceEntry.js";
|
|
6
|
+
export * from "./types/ServiceSetupOptions.js";
|
|
7
|
+
export * from "./types/_ServiceError.js";
|
|
8
|
+
export * from "./types/ServiceResponse.js";
|
|
9
|
+
export * from "./types/ServiceOts.js";
|
|
10
|
+
// Classes
|
|
11
|
+
export { ServiceManager } from "./ServiceManager.js";
|
|
12
|
+
export { NSPageControllerService } from "./services/abstract/pageServices/controllers/NSPageControllerService.js";
|
|
13
|
+
export { SVPageControllerService } from "./services/abstract/pageServices/controllers/SVPageControllerService.js";
|
|
14
|
+
export { ExtensionService } from "./services/abstract/extensionServices/ExtensionService.js";
|
|
15
|
+
export { ProjectInfoService } from "./services/abstract/project/ProjectInfoService.js";
|
|
16
|
+
export { RequestHandlerService } from "./services/main/httpServices/RequestHandlerService.js";
|
|
17
|
+
export { AuthService } from "./services/abstract/authServices/AuthService.js";
|
|
18
|
+
// export { PageControllerService } from "./services/pageServices/controller/PageControllerService.js";
|
|
19
|
+
// export { ExtensionService } from "./services/extensionServices/controller/ExtensionService.js";
|
|
20
|
+
// export { Test2Service } from "./testServices/TestService2";
|
|
21
|
+
// Functions
|
|
22
|
+
// export { add } from "./addService/AddServiceStatic";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Service } from "../../../types/Service.js";
|
|
2
|
+
import { ServiceResponse } from "../../../types/ServiceResponse.js";
|
|
3
|
+
export declare abstract class ApiService extends Service {
|
|
4
|
+
ots: any;
|
|
5
|
+
apis: {
|
|
6
|
+
[key: string]: {
|
|
7
|
+
handler: (...args: any[]) => Promise<any>;
|
|
8
|
+
options?: {
|
|
9
|
+
auth?: boolean;
|
|
10
|
+
role?: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
protected onStart(): Promise<ServiceResponse>;
|
|
15
|
+
constructor(ots: any);
|
|
16
|
+
resposeHandler(response: any): Response;
|
|
17
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Service } from "../../../types/Service.js";
|
|
2
|
+
export class ApiService extends Service {
|
|
3
|
+
ots;
|
|
4
|
+
apis = {};
|
|
5
|
+
onStart() {
|
|
6
|
+
const requestHandlerService = this.ots.usedService.RequestHandlerService();
|
|
7
|
+
Object.entries(this.apis).forEach(([name, { handler, options }]) => {
|
|
8
|
+
requestHandlerService.addHandler(`${this.tag}/${name}`, handler.bind(this), options || { auth: true, role: "guest" });
|
|
9
|
+
});
|
|
10
|
+
return Promise.resolve({ status: "success", message: "ApiService started" });
|
|
11
|
+
}
|
|
12
|
+
constructor(ots) {
|
|
13
|
+
super(ots);
|
|
14
|
+
this.ots = ots;
|
|
15
|
+
this.apis = {};
|
|
16
|
+
}
|
|
17
|
+
resposeHandler(response) {
|
|
18
|
+
if (response.status === "success") {
|
|
19
|
+
return new Response(JSON.stringify(response), {
|
|
20
|
+
status: 200,
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/json'
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return new Response(JSON.stringify(response), {
|
|
27
|
+
status: 400,
|
|
28
|
+
headers: {
|
|
29
|
+
'Content-Type': 'application/json'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Service } from "../../../types/Service.js";
|
|
2
|
+
import { ServiceOts } from "../../../types/ServiceOts.js";
|
|
3
|
+
import { RegisterServiceInfo } from "../../../types/ServiceRegisterInfo.js";
|
|
4
|
+
import { ServiceResponse } from "../../../types/ServiceResponse.js";
|
|
5
|
+
import { ServiceSetupOptions } from "../../../types/ServiceSetupOptions.js";
|
|
6
|
+
import { RequestHandlerService } from "../../main/httpServices/RequestHandlerService.js";
|
|
7
|
+
export type AuthOts = ServiceOts & {
|
|
8
|
+
usedService: {
|
|
9
|
+
RequestHandlerService: () => RequestHandlerService;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare abstract class AuthService extends Service {
|
|
13
|
+
ots: AuthOts;
|
|
14
|
+
static serviceInfo: {
|
|
15
|
+
name: string;
|
|
16
|
+
requiredServices: string[];
|
|
17
|
+
};
|
|
18
|
+
protected onSetup(options?: ServiceSetupOptions): Promise<ServiceResponse>;
|
|
19
|
+
protected onStart(): Promise<ServiceResponse>;
|
|
20
|
+
protected onStop(): Promise<ServiceResponse>;
|
|
21
|
+
protected onDestroy(): Promise<ServiceResponse>;
|
|
22
|
+
constructor(ots: AuthOts);
|
|
23
|
+
protected abstract saveToken(token: string): Promise<void>;
|
|
24
|
+
protected abstract clearToken(): Promise<void>;
|
|
25
|
+
protected abstract getUserInfo({ userId, userName, userRole }: {
|
|
26
|
+
userId?: string;
|
|
27
|
+
userName?: string;
|
|
28
|
+
userRole?: string;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
success: boolean;
|
|
31
|
+
message?: string;
|
|
32
|
+
user?: {
|
|
33
|
+
id: number;
|
|
34
|
+
username: string;
|
|
35
|
+
password: string;
|
|
36
|
+
role?: string;
|
|
37
|
+
databaseId?: string;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
40
|
+
loginRequest({ username, password, params, request, url }: {
|
|
41
|
+
username: any;
|
|
42
|
+
password: any;
|
|
43
|
+
params: any;
|
|
44
|
+
request: any;
|
|
45
|
+
url: any;
|
|
46
|
+
}): Promise<any>;
|
|
47
|
+
checkToken({ accessToken, refreshToken, options }: {
|
|
48
|
+
accessToken: string;
|
|
49
|
+
refreshToken: string;
|
|
50
|
+
options?: {
|
|
51
|
+
role?: string;
|
|
52
|
+
};
|
|
53
|
+
}): Promise<{
|
|
54
|
+
valid: boolean;
|
|
55
|
+
newAccessToken?: string;
|
|
56
|
+
newRefreshToken?: string;
|
|
57
|
+
user?: any;
|
|
58
|
+
}>;
|
|
59
|
+
deneme({ params, request, url }: {
|
|
60
|
+
params: any;
|
|
61
|
+
request: any;
|
|
62
|
+
url: any;
|
|
63
|
+
}): Promise<any>;
|
|
64
|
+
getUserInfo_REQUEST({ params, request, url, user }: {
|
|
65
|
+
params: any;
|
|
66
|
+
request: any;
|
|
67
|
+
url: any;
|
|
68
|
+
user: any;
|
|
69
|
+
}): Promise<any>;
|
|
70
|
+
resposeHandler(response: any): Response;
|
|
71
|
+
getCookie(cookieHeader: string | null, name: string): string | undefined;
|
|
72
|
+
logout(): Promise<void>;
|
|
73
|
+
register(username: string, password: string): Promise<boolean>;
|
|
74
|
+
}
|
|
75
|
+
export declare const registerServiceInfo: RegisterServiceInfo;
|