@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.
Files changed (101) hide show
  1. package/.eslintrc.js +13 -0
  2. package/dist/ServiceManager.d.ts +26 -0
  3. package/dist/ServiceManager.js +351 -0
  4. package/dist/TestRun.d.ts +1 -0
  5. package/dist/TestRun.js +14 -0
  6. package/dist/index.d.ts +15 -0
  7. package/dist/index.js +22 -0
  8. package/dist/services/abstract/apiService/ApiService.d.ts +17 -0
  9. package/dist/services/abstract/apiService/ApiService.js +33 -0
  10. package/dist/services/abstract/authServices/AuthService.d.ts +75 -0
  11. package/dist/services/abstract/authServices/AuthService.js +275 -0
  12. package/dist/services/abstract/authServices/Authorization.d.ts +0 -0
  13. package/dist/services/abstract/authServices/Authorization.js +0 -0
  14. package/dist/services/abstract/extensionServices/ExtensionService.d.ts +25 -0
  15. package/dist/services/abstract/extensionServices/ExtensionService.js +21 -0
  16. package/dist/services/abstract/pageServices/LayoutPageService.d.ts +17 -0
  17. package/dist/services/abstract/pageServices/LayoutPageService.js +32 -0
  18. package/dist/services/abstract/pageServices/PageServices.d.ts +20 -0
  19. package/dist/services/abstract/pageServices/PageServices.js +23 -0
  20. package/dist/services/abstract/pageServices/controllers/NSPageControllerService.d.ts +10 -0
  21. package/dist/services/abstract/pageServices/controllers/NSPageControllerService.js +18 -0
  22. package/dist/services/abstract/pageServices/controllers/PageControllerService.d.ts +27 -0
  23. package/dist/services/abstract/pageServices/controllers/PageControllerService.js +24 -0
  24. package/dist/services/abstract/pageServices/controllers/SVPageControllerService.d.ts +34 -0
  25. package/dist/services/abstract/pageServices/controllers/SVPageControllerService.js +73 -0
  26. package/dist/services/abstract/pageServices/pages/NsPageService.d.ts +26 -0
  27. package/dist/services/abstract/pageServices/pages/NsPageService.js +66 -0
  28. package/dist/services/abstract/project/ProjectInfoService.d.ts +42 -0
  29. package/dist/services/abstract/project/ProjectInfoService.js +72 -0
  30. package/dist/services/abstract/webviewServices/WVBackService.d.ts +18 -0
  31. package/dist/services/abstract/webviewServices/WVBackService.js +22 -0
  32. package/dist/services/abstract/webviewServices/WVFrontService.d.ts +21 -0
  33. package/dist/services/abstract/webviewServices/WVFrontService.js +54 -0
  34. package/dist/services/abstract/webviewServices/nv.d.ts +26 -0
  35. package/dist/services/abstract/webviewServices/nv.js +99 -0
  36. package/dist/services/main/fetchServices/FetchBrowserService.d.ts +19 -0
  37. package/dist/services/main/fetchServices/FetchBrowserService.js +26 -0
  38. package/dist/services/main/httpServices/RequestHandlerService.d.ts +46 -0
  39. package/dist/services/main/httpServices/RequestHandlerService.js +165 -0
  40. package/dist/services/main/remoteApiControllerService/RemoteApiControllerService.d.ts +36 -0
  41. package/dist/services/main/remoteApiControllerService/RemoteApiControllerService.js +42 -0
  42. package/dist/services/main/testServices/TestService.d.ts +19 -0
  43. package/dist/services/main/testServices/TestService.js +22 -0
  44. package/dist/services/main/testServices/TestService2.d.ts +18 -0
  45. package/dist/services/main/testServices/TestService2.js +20 -0
  46. package/dist/types/RegisterServiceInfo.d.ts +13 -0
  47. package/dist/types/RegisterServiceInfo.js +1 -0
  48. package/dist/types/Service.d.ts +32 -0
  49. package/dist/types/Service.js +43 -0
  50. package/dist/types/ServiceConstructor.d.ts +5 -0
  51. package/dist/types/ServiceConstructor.js +1 -0
  52. package/dist/types/ServiceEntry.d.ts +6 -0
  53. package/dist/types/ServiceEntry.js +1 -0
  54. package/dist/types/ServiceOts.d.ts +12 -0
  55. package/dist/types/ServiceOts.js +1 -0
  56. package/dist/types/ServiceRegisterInfo.d.ts +29 -0
  57. package/dist/types/ServiceRegisterInfo.js +25 -0
  58. package/dist/types/ServiceResponse.d.ts +13 -0
  59. package/dist/types/ServiceResponse.js +1 -0
  60. package/dist/types/ServiceSetupOptions.d.ts +3 -0
  61. package/dist/types/ServiceSetupOptions.js +1 -0
  62. package/dist/types/ServiceStatus.d.ts +1 -0
  63. package/dist/types/ServiceStatus.js +1 -0
  64. package/dist/types/_ServiceError.d.ts +5 -0
  65. package/dist/types/_ServiceError.js +1 -0
  66. package/jest.config.js +5 -0
  67. package/package.json +35 -0
  68. package/src/ServiceManager.ts +403 -0
  69. package/src/TestRun.ts +17 -0
  70. package/src/index.ts +26 -0
  71. package/src/services/abstract/apiService/ApiService.ts +51 -0
  72. package/src/services/abstract/authServices/AuthService.ts +364 -0
  73. package/src/services/abstract/authServices/Authorization.ts +0 -0
  74. package/src/services/abstract/extensionServices/ExtensionService.ts +50 -0
  75. package/src/services/abstract/pageServices/LayoutPageService.ts +49 -0
  76. package/src/services/abstract/pageServices/PageServices.ts +37 -0
  77. package/src/services/abstract/pageServices/controllers/NSPageControllerService.ts +23 -0
  78. package/src/services/abstract/pageServices/controllers/PageControllerService.ts +56 -0
  79. package/src/services/abstract/pageServices/controllers/SVPageControllerService.ts +104 -0
  80. package/src/services/abstract/pageServices/pages/NSPageService.ts +82 -0
  81. package/src/services/abstract/project/ProjectInfoService.ts +108 -0
  82. package/src/services/abstract/webviewServices/WVBackService.ts +34 -0
  83. package/src/services/abstract/webviewServices/WVFrontService.ts +71 -0
  84. package/src/services/abstract/webviewServices/nv.js +112 -0
  85. package/src/services/abstract/webviewServices/nv.ts +125 -0
  86. package/src/services/main/fetchServices/FetchBrowserService.ts +40 -0
  87. package/src/services/main/httpServices/RequestHandlerService.ts +207 -0
  88. package/src/services/main/remoteApiControllerService/RemoteApiControllerService.ts +70 -0
  89. package/src/services/main/testServices/TestService.ts +36 -0
  90. package/src/services/main/testServices/TestService2.ts +34 -0
  91. package/src/types/RegisterServiceInfo.ts +19 -0
  92. package/src/types/Service.ts +61 -0
  93. package/src/types/ServiceConstructor.ts +6 -0
  94. package/src/types/ServiceEntry.ts +10 -0
  95. package/src/types/ServiceOts.ts +17 -0
  96. package/src/types/ServiceRegisterInfo.ts +48 -0
  97. package/src/types/ServiceResponse.ts +13 -0
  98. package/src/types/ServiceSetupOptions.ts +5 -0
  99. package/src/types/ServiceStatus.ts +2 -0
  100. package/src/types/_ServiceError.ts +5 -0
  101. package/tsconfig.json +20 -0
@@ -0,0 +1,66 @@
1
+ import { Service } from "../../../../types/Service.js";
2
+ export class NSPageService extends Service {
3
+ serviceInfo;
4
+ model;
5
+ page;
6
+ constructor(ots) {
7
+ super({ ...ots });
8
+ }
9
+ async onSetup(options) {
10
+ this.log.OK("onSetup called", options);
11
+ return { status: "success", message: "setup complete" };
12
+ }
13
+ async onStart() {
14
+ this.log.OK("onStart called");
15
+ return { status: "success", message: "started" };
16
+ }
17
+ async onStop() {
18
+ this.log.OK("onStop called");
19
+ return { status: "success", message: "stopped" };
20
+ }
21
+ async onDestroy() {
22
+ this.log.OK("onDestroy called");
23
+ return { status: "success", message: "destroyed" };
24
+ }
25
+ navigatingTo(callback, model, args) {
26
+ this.log.OK("navigatingTo called");
27
+ if (callback)
28
+ callback(args);
29
+ if (model) {
30
+ this.model = model;
31
+ //ts-ignore
32
+ const page = args.object;
33
+ page.bindingContext = model;
34
+ this.page = page;
35
+ this.log.OK("Model set:", model);
36
+ }
37
+ else {
38
+ this.log.WARN("No model provided");
39
+ }
40
+ }
41
+ navigatedTo(callback, args) {
42
+ this.log.OK("navigatedTo called");
43
+ if (callback)
44
+ callback(args);
45
+ }
46
+ onLoaded(callback, args) {
47
+ this.log.OK("onLoaded called");
48
+ if (callback)
49
+ callback(args);
50
+ }
51
+ onUnloaded(callback, args) {
52
+ this.log.OK("onUnloaded called");
53
+ if (callback)
54
+ callback(args);
55
+ }
56
+ navigatingFrom(callback, args) {
57
+ this.log.OK("navigatingFrom called");
58
+ if (callback)
59
+ callback(args);
60
+ }
61
+ navigatedFrom(callback, args) {
62
+ this.log.OK("navigatedFrom called");
63
+ if (callback)
64
+ callback(args);
65
+ }
66
+ }
@@ -0,0 +1,42 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { ServiceOts } from "../../../types/ServiceOts.js";
3
+ import { ServiceResponse } from "../../../types/ServiceResponse.js";
4
+ import { ServiceSetupOptions } from "../../../types/ServiceSetupOptions.js";
5
+ import { PageService } from "../pageServices/PageServices.js";
6
+ export type ProjectsPages = {
7
+ [key: string]: {
8
+ icon: string;
9
+ title: string;
10
+ slug: string;
11
+ description: string;
12
+ showInMenu: boolean;
13
+ showInMobile: boolean;
14
+ order: number;
15
+ group?: string;
16
+ service?: PageService;
17
+ serviceRef: any;
18
+ userGroup?: string;
19
+ };
20
+ };
21
+ export type ProjectInfoOts = ServiceOts & {
22
+ usedService: {};
23
+ };
24
+ export declare abstract class ProjectInfoService extends Service {
25
+ ots: ProjectInfoOts;
26
+ static serviceInfo: {
27
+ name: string;
28
+ requiredServices: any[];
29
+ };
30
+ abstract pages: ProjectsPages;
31
+ constructor(ots: ProjectInfoOts);
32
+ protected onSetup(options?: ServiceSetupOptions): Promise<ServiceResponse>;
33
+ protected onStart(): Promise<ServiceResponse>;
34
+ protected onStop(): Promise<ServiceResponse>;
35
+ protected onDestroy(): Promise<ServiceResponse>;
36
+ getMenuPages(userGroup?: string): {
37
+ [key: string]: ProjectsPages[string];
38
+ };
39
+ getMobilePages(limit?: number): {
40
+ [key: string]: ProjectsPages[string];
41
+ };
42
+ }
@@ -0,0 +1,72 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { PageService } from "../pageServices/PageServices.js";
3
+ export class ProjectInfoService extends Service {
4
+ ots;
5
+ static serviceInfo = {
6
+ name: "ProjectInfoService",
7
+ requiredServices: [],
8
+ };
9
+ constructor(ots) {
10
+ super({ ...ots });
11
+ this.ots = ots;
12
+ }
13
+ async onSetup(options) {
14
+ // Create a service for each page
15
+ Object.keys(this.pages).forEach(async (tag) => {
16
+ const service = this.ots.abilities.createChildService?.("ProjectPage-" + tag, this.pages[tag].serviceRef || PageService);
17
+ if (service) {
18
+ this.pages[tag].service = service;
19
+ }
20
+ await service.setup();
21
+ });
22
+ return { status: "success", message: "setup complete" };
23
+ }
24
+ async onStart() {
25
+ // Object.keys(this.pages).forEach(async tag => {
26
+ // const service = this.ots.abilities.createChildService?.("ProjectPage-"+tag);
27
+ // await service.start();
28
+ // });
29
+ return { status: "success", message: "started" };
30
+ }
31
+ async onStop() {
32
+ return { status: "success", message: "stopped" };
33
+ }
34
+ async onDestroy() {
35
+ return { status: "success", message: "destroyed" };
36
+ }
37
+ getMenuPages(userGroup) {
38
+ const result = {};
39
+ Object.entries(this.pages).forEach(([key, page]) => {
40
+ if (page.showInMenu) {
41
+ if (userGroup && userGroup == 'admin') {
42
+ result[key] = page;
43
+ }
44
+ else {
45
+ if (userGroup) {
46
+ // Check if the page is accessible by the user group
47
+ if (page.userGroup === userGroup) {
48
+ result[key] = page;
49
+ }
50
+ }
51
+ else {
52
+ result[key] = page;
53
+ }
54
+ }
55
+ }
56
+ });
57
+ return result;
58
+ }
59
+ getMobilePages(limit = 4) {
60
+ const result = {};
61
+ let count = 0;
62
+ for (const [key, page] of Object.entries(this.pages)) {
63
+ if (page.showInMobile) {
64
+ result[key] = page;
65
+ count++;
66
+ if (count >= limit)
67
+ break;
68
+ }
69
+ }
70
+ return result;
71
+ }
72
+ }
@@ -0,0 +1,18 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { ServiceOts } from "../../../types/ServiceOts.js";
3
+ import { ServiceResponse } from "../../../types/ServiceResponse.js";
4
+ import { ServiceSetupOptions } from "../../../types/ServiceSetupOptions.js";
5
+ export type WVBackServiceOts = ServiceOts & {
6
+ usedService: {};
7
+ };
8
+ export declare class WVBackService extends Service {
9
+ static serviceInfo: {
10
+ name: string;
11
+ requiredServices: any[];
12
+ };
13
+ protected onSetup(options?: ServiceSetupOptions): Promise<ServiceResponse>;
14
+ protected onStart(): Promise<ServiceResponse>;
15
+ protected onStop(): Promise<ServiceResponse>;
16
+ protected onDestroy(): Promise<ServiceResponse>;
17
+ constructor(ots: WVBackServiceOts);
18
+ }
@@ -0,0 +1,22 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ export class WVBackService extends Service {
3
+ static serviceInfo = {
4
+ name: "WVBackService",
5
+ requiredServices: [],
6
+ };
7
+ async onSetup(options) {
8
+ return { status: "success", message: "onSetup complete" };
9
+ }
10
+ async onStart() {
11
+ return { status: "success", message: "onStart complete" };
12
+ }
13
+ async onStop() {
14
+ return { status: "success", message: "onStop complete" };
15
+ }
16
+ async onDestroy() {
17
+ return { status: "success", message: "onDestroy complete" };
18
+ }
19
+ constructor(ots) {
20
+ super({ ...ots });
21
+ }
22
+ }
@@ -0,0 +1,21 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { ServiceOts } from "../../../types/ServiceOts.js";
3
+ import { ServiceResponse } from "../../../types/ServiceResponse.js";
4
+ import { ServiceSetupOptions } from "../../../types/ServiceSetupOptions.js";
5
+ import { NSWebViewinterface } from "./nv.js";
6
+ export type WVFrontServiceOts = ServiceOts & {
7
+ usedService: {};
8
+ };
9
+ export declare class WVFrontService extends Service {
10
+ static serviceInfo: {
11
+ name: string;
12
+ requiredServices: any[];
13
+ };
14
+ protected onSetup(options?: ServiceSetupOptions): Promise<ServiceResponse>;
15
+ protected onStart(): Promise<ServiceResponse>;
16
+ protected onStop(): Promise<ServiceResponse>;
17
+ protected onDestroy(): Promise<ServiceResponse>;
18
+ oWebViewInterface: NSWebViewinterface;
19
+ constructor(ots: WVFrontServiceOts);
20
+ sendFetchRequest(url: string, options?: RequestInit): Promise<any>;
21
+ }
@@ -0,0 +1,54 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { NSWebViewinterface } from "./nv.js";
3
+ export class WVFrontService extends Service {
4
+ static serviceInfo = {
5
+ name: "WVFrontService",
6
+ requiredServices: [],
7
+ };
8
+ async onSetup(options) {
9
+ this.oWebViewInterface = new NSWebViewinterface();
10
+ //@ts-ignore
11
+ window.nsWebViewInterface = this.oWebViewInterface;
12
+ this.oWebViewInterface.emit("loadFinished", "");
13
+ return { status: "success", message: "onSetup complete" };
14
+ }
15
+ async onStart() {
16
+ return { status: "success", message: "onStart complete" };
17
+ }
18
+ async onStop() {
19
+ return { status: "success", message: "onStop complete" };
20
+ }
21
+ async onDestroy() {
22
+ return { status: "success", message: "onDestroy complete" };
23
+ }
24
+ oWebViewInterface;
25
+ constructor(ots) {
26
+ super({ ...ots });
27
+ }
28
+ async sendFetchRequest(url, options) {
29
+ console.log("sendFetchRequest", url, options);
30
+ return new Promise((resolve) => {
31
+ const callback = (args) => {
32
+ const param = args;
33
+ // Convert param to a Response object
34
+ debugger;
35
+ //@ts-ignore
36
+ const byteArray = Object.values(param._bodyBlob._buffer);
37
+ //@ts-ignore
38
+ const uint8 = new Uint8Array(byteArray);
39
+ //@ts-ignore
40
+ const text = new TextDecoder().decode(uint8);
41
+ const response = new Response(text, {
42
+ status: 200,
43
+ headers: { "Content-Type": "application/json" }
44
+ });
45
+ debugger;
46
+ console.log("sendFetchRequest received", param);
47
+ this.oWebViewInterface.removeListener('sendFetchRequest', callback);
48
+ resolve(response);
49
+ };
50
+ this.oWebViewInterface.on('sendFetchRequest', callback);
51
+ this.oWebViewInterface.emit("sendFetchRequest", { url, options });
52
+ });
53
+ }
54
+ }
@@ -0,0 +1,26 @@
1
+ type EventCallback = (data: any) => any;
2
+ declare global {
3
+ interface Window {
4
+ androidWebViewInterface?: {
5
+ handleEventFromWebView: (eventName: string, data: any) => void;
6
+ };
7
+ }
8
+ }
9
+ declare class NSWebViewinterface {
10
+ private eventListenerMap;
11
+ private _iosResponseMap;
12
+ private _iosCntResponseId;
13
+ constructor();
14
+ private _onNativeEvent;
15
+ private _callJSFunction;
16
+ private _getResolvedFunction;
17
+ private _sendJSCallResponse;
18
+ private _createIFrame;
19
+ private _emitEventToIOS;
20
+ private _getIOSResponse;
21
+ private _emitEventToAndroid;
22
+ on(eventName: string, callback: EventCallback): void;
23
+ removeListener(eventName: string, callback: EventCallback): void;
24
+ emit(eventName: string, data: any): void;
25
+ }
26
+ export { NSWebViewinterface };
@@ -0,0 +1,99 @@
1
+ class NSWebViewinterface {
2
+ eventListenerMap;
3
+ _iosResponseMap;
4
+ _iosCntResponseId;
5
+ constructor() {
6
+ this.eventListenerMap = {};
7
+ this._iosResponseMap = {};
8
+ this._iosCntResponseId = 0;
9
+ }
10
+ _onNativeEvent(eventName, data) {
11
+ const lstEvtListeners = this.eventListenerMap[eventName] || [];
12
+ for (let _i = 0; _i < lstEvtListeners.length; _i++) {
13
+ const listener = lstEvtListeners[_i];
14
+ const retnVal = listener && listener(data);
15
+ if (retnVal === false) {
16
+ break;
17
+ }
18
+ }
19
+ }
20
+ _callJSFunction(reqId, functionName, args) {
21
+ const resolvedFn = this._getResolvedFunction(functionName);
22
+ if (resolvedFn) {
23
+ const retnVal = resolvedFn.apply(window, args);
24
+ if (retnVal && retnVal.then) {
25
+ retnVal.then((value) => this._sendJSCallResponse(reqId, value), (error) => this._sendJSCallResponse(reqId, error, true));
26
+ }
27
+ else {
28
+ this._sendJSCallResponse(reqId, retnVal);
29
+ }
30
+ }
31
+ }
32
+ _getResolvedFunction(functionName) {
33
+ if (functionName && (functionName = functionName.trim()).length) {
34
+ functionName = functionName.indexOf('window.') === 0 ? functionName.replace('window.', '') : functionName;
35
+ const arrFnPath = functionName.split('.');
36
+ let fn = window;
37
+ for (let i = 0; i < arrFnPath.length; i++) {
38
+ if (!fn[arrFnPath[i]]) {
39
+ fn = null;
40
+ break;
41
+ }
42
+ fn = fn[arrFnPath[i]];
43
+ }
44
+ return typeof fn === 'function' ? fn : null;
45
+ }
46
+ return null;
47
+ }
48
+ _sendJSCallResponse(reqId, response, isError) {
49
+ const oResponse = {
50
+ reqId: reqId,
51
+ response: response ?? null,
52
+ isError: !!isError
53
+ };
54
+ this.emit('_jsCallResponse', oResponse);
55
+ }
56
+ _createIFrame(src) {
57
+ const rootElm = document.documentElement;
58
+ const newFrameElm = document.createElement("IFRAME");
59
+ newFrameElm.setAttribute("src", src);
60
+ rootElm.appendChild(newFrameElm);
61
+ return newFrameElm;
62
+ }
63
+ _emitEventToIOS(eventName, data) {
64
+ this._iosResponseMap[++this._iosCntResponseId] = data;
65
+ const metadata = { eventName: eventName, resId: this._iosCntResponseId };
66
+ const url = 'js2ios:' + JSON.stringify(metadata);
67
+ const iFrame = this._createIFrame(url);
68
+ iFrame.parentNode?.removeChild(iFrame);
69
+ }
70
+ _getIOSResponse(resId) {
71
+ const response = this._iosResponseMap[resId];
72
+ delete this._iosResponseMap[resId];
73
+ return response;
74
+ }
75
+ _emitEventToAndroid(eventName, data) {
76
+ window.androidWebViewInterface?.handleEventFromWebView(eventName, data);
77
+ }
78
+ on(eventName, callback) {
79
+ const lstListeners = this.eventListenerMap[eventName] || (this.eventListenerMap[eventName] = []);
80
+ lstListeners.push(callback);
81
+ }
82
+ removeListener(eventName, callback) {
83
+ const listeners = this.eventListenerMap[eventName];
84
+ if (listeners) {
85
+ // Belirtilen geri çağırma işlevini kaldır
86
+ this.eventListenerMap[eventName] = listeners.filter(listener => listener !== callback);
87
+ }
88
+ }
89
+ emit(eventName, data) {
90
+ const strData = typeof data === 'object' ? JSON.stringify(data) : data;
91
+ if (window.androidWebViewInterface) {
92
+ this._emitEventToAndroid(eventName, strData);
93
+ }
94
+ else {
95
+ this._emitEventToIOS(eventName, strData);
96
+ }
97
+ }
98
+ }
99
+ export { NSWebViewinterface };
@@ -0,0 +1,19 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { ServiceOts } from "../../../types/ServiceOts.js";
3
+ import { ServiceResponse } from "../../../types/ServiceResponse.js";
4
+ import { ServiceSetupOptions } from "../../../types/ServiceSetupOptions.js";
5
+ export type FetchBrowserServiceOts = ServiceOts & {
6
+ usedService: {};
7
+ };
8
+ export declare class FetchBrowserService extends Service {
9
+ static serviceInfo: {
10
+ name: string;
11
+ requiredServices: any[];
12
+ };
13
+ protected onSetup(options?: ServiceSetupOptions): Promise<ServiceResponse>;
14
+ protected onStart(): Promise<ServiceResponse>;
15
+ protected onStop(): Promise<ServiceResponse>;
16
+ protected onDestroy(): Promise<ServiceResponse>;
17
+ constructor(ots: FetchBrowserServiceOts);
18
+ sendFetchRequest(url: string, options?: RequestInit): Promise<Response>;
19
+ }
@@ -0,0 +1,26 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ export class FetchBrowserService extends Service {
3
+ static serviceInfo = {
4
+ name: "FetchBrowserService",
5
+ requiredServices: [],
6
+ };
7
+ async onSetup(options) {
8
+ return { status: "success", message: "onSetup complete" };
9
+ }
10
+ async onStart() {
11
+ return { status: "success", message: "onStart complete" };
12
+ }
13
+ async onStop() {
14
+ return { status: "success", message: "onStop complete" };
15
+ }
16
+ async onDestroy() {
17
+ return { status: "success", message: "onDestroy complete" };
18
+ }
19
+ constructor(ots) {
20
+ super({ ...ots });
21
+ }
22
+ async sendFetchRequest(url, options) {
23
+ const response = await fetch(url, options);
24
+ return response;
25
+ }
26
+ }
@@ -0,0 +1,46 @@
1
+ import { Service } from "../../../types/Service.js";
2
+ import { ServiceResponse } from "../../../types/ServiceResponse.js";
3
+ import { ServiceSetupOptions } from "../../../types/ServiceSetupOptions.js";
4
+ export type HandlerList = {
5
+ [key: string]: {
6
+ callback({ params, request, url, user }: {
7
+ params: any;
8
+ request: any;
9
+ url: any;
10
+ user?: any;
11
+ }): Promise<any>;
12
+ options?: {
13
+ auth?: boolean;
14
+ role?: string;
15
+ };
16
+ };
17
+ };
18
+ export declare class RequestHandlerService extends Service {
19
+ ots: any;
20
+ static serviceInfo: {
21
+ name: string;
22
+ requiredServices: string[];
23
+ };
24
+ handlers: HandlerList;
25
+ protected onSetup(options?: ServiceSetupOptions): Promise<ServiceResponse>;
26
+ protected onStart(): Promise<ServiceResponse>;
27
+ protected onStop(): Promise<ServiceResponse>;
28
+ protected onDestroy(): Promise<ServiceResponse>;
29
+ constructor(ots: any);
30
+ addHandler(name: string, callback: ({ params, request, url, user }: {
31
+ params: any;
32
+ request: any;
33
+ url: any;
34
+ user: any;
35
+ }) => Promise<any>, options?: {
36
+ auth?: boolean;
37
+ role?: string;
38
+ }): Promise<void>;
39
+ requestCome({ params, request, url }: {
40
+ params: any;
41
+ request: any;
42
+ url: any;
43
+ }): Promise<any>;
44
+ getCookie(cookieHeader: string | null, name: string): string | undefined;
45
+ resposeHandler(response: any): Response;
46
+ }