mira-app-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 (102) hide show
  1. package/dist/HttpRouter.d.ts +17 -0
  2. package/dist/HttpRouter.d.ts.map +1 -0
  3. package/dist/HttpRouter.js +217 -0
  4. package/dist/HttpRouter.js.map +1 -0
  5. package/dist/HttpServer.d.ts +24 -0
  6. package/dist/HttpServer.d.ts.map +1 -0
  7. package/dist/HttpServer.js +55 -0
  8. package/dist/HttpServer.js.map +1 -0
  9. package/dist/ILibraryServerData.d.ts +63 -0
  10. package/dist/ILibraryServerData.d.ts.map +1 -0
  11. package/dist/ILibraryServerData.js +3 -0
  12. package/dist/ILibraryServerData.js.map +1 -0
  13. package/dist/LibraryList.d.ts +9 -0
  14. package/dist/LibraryList.d.ts.map +1 -0
  15. package/dist/LibraryList.js +29 -0
  16. package/dist/LibraryList.js.map +1 -0
  17. package/dist/LibraryServerDataSQLite.d.ts +96 -0
  18. package/dist/LibraryServerDataSQLite.d.ts.map +1 -0
  19. package/dist/LibraryServerDataSQLite.js +683 -0
  20. package/dist/LibraryServerDataSQLite.js.map +1 -0
  21. package/dist/LibraryStorage.d.ts +14 -0
  22. package/dist/LibraryStorage.d.ts.map +1 -0
  23. package/dist/LibraryStorage.js +45 -0
  24. package/dist/LibraryStorage.js.map +1 -0
  25. package/dist/MessageHandler.d.ts +16 -0
  26. package/dist/MessageHandler.d.ts.map +1 -0
  27. package/dist/MessageHandler.js +35 -0
  28. package/dist/MessageHandler.js.map +1 -0
  29. package/dist/ServerExample.d.ts +33 -0
  30. package/dist/ServerExample.d.ts.map +1 -0
  31. package/dist/ServerExample.js +87 -0
  32. package/dist/ServerExample.js.map +1 -0
  33. package/dist/ServerPlugin.d.ts +20 -0
  34. package/dist/ServerPlugin.d.ts.map +1 -0
  35. package/dist/ServerPlugin.js +79 -0
  36. package/dist/ServerPlugin.js.map +1 -0
  37. package/dist/ServerPluginManager.d.ts +30 -0
  38. package/dist/ServerPluginManager.d.ts.map +1 -0
  39. package/dist/ServerPluginManager.js +112 -0
  40. package/dist/ServerPluginManager.js.map +1 -0
  41. package/dist/WebSocketRouter.d.ts +18 -0
  42. package/dist/WebSocketRouter.d.ts.map +1 -0
  43. package/dist/WebSocketRouter.js +31 -0
  44. package/dist/WebSocketRouter.js.map +1 -0
  45. package/dist/WebSocketServer.d.ts +23 -0
  46. package/dist/WebSocketServer.d.ts.map +1 -0
  47. package/dist/WebSocketServer.js +162 -0
  48. package/dist/WebSocketServer.js.map +1 -0
  49. package/dist/event-manager.d.ts +85 -0
  50. package/dist/event-manager.d.ts.map +1 -0
  51. package/dist/event-manager.js +142 -0
  52. package/dist/event-manager.js.map +1 -0
  53. package/dist/handlers/FileHandler.d.ts +10 -0
  54. package/dist/handlers/FileHandler.d.ts.map +1 -0
  55. package/dist/handlers/FileHandler.js +55 -0
  56. package/dist/handlers/FileHandler.js.map +1 -0
  57. package/dist/handlers/FolderHandler.d.ts +10 -0
  58. package/dist/handlers/FolderHandler.d.ts.map +1 -0
  59. package/dist/handlers/FolderHandler.js +59 -0
  60. package/dist/handlers/FolderHandler.js.map +1 -0
  61. package/dist/handlers/LibraryHandler.d.ts +10 -0
  62. package/dist/handlers/LibraryHandler.d.ts.map +1 -0
  63. package/dist/handlers/LibraryHandler.js +49 -0
  64. package/dist/handlers/LibraryHandler.js.map +1 -0
  65. package/dist/handlers/MessageHandler.d.ts +15 -0
  66. package/dist/handlers/MessageHandler.d.ts.map +1 -0
  67. package/dist/handlers/MessageHandler.js +32 -0
  68. package/dist/handlers/MessageHandler.js.map +1 -0
  69. package/dist/handlers/PluginMessageHandler.d.ts +10 -0
  70. package/dist/handlers/PluginMessageHandler.d.ts.map +1 -0
  71. package/dist/handlers/PluginMessageHandler.js +21 -0
  72. package/dist/handlers/PluginMessageHandler.js.map +1 -0
  73. package/dist/handlers/TagHandler.d.ts +10 -0
  74. package/dist/handlers/TagHandler.d.ts.map +1 -0
  75. package/dist/handlers/TagHandler.js +59 -0
  76. package/dist/handlers/TagHandler.js.map +1 -0
  77. package/dist/index.d.ts +39 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +58 -0
  80. package/dist/index.js.map +1 -0
  81. package/package.json +32 -0
  82. package/src/HttpRouter.ts +236 -0
  83. package/src/HttpServer.ts +72 -0
  84. package/src/ILibraryServerData.ts +70 -0
  85. package/src/LibraryList.ts +26 -0
  86. package/src/LibraryServerDataSQLite.ts +778 -0
  87. package/src/LibraryStorage.ts +55 -0
  88. package/src/MessageHandler.ts +41 -0
  89. package/src/ServerExample.ts +72 -0
  90. package/src/ServerPlugin.ts +56 -0
  91. package/src/ServerPluginManager.ts +106 -0
  92. package/src/WebSocketRouter.ts +46 -0
  93. package/src/WebSocketServer.ts +206 -0
  94. package/src/event-manager.ts +191 -0
  95. package/src/handlers/FileHandler.ts +61 -0
  96. package/src/handlers/FolderHandler.ts +65 -0
  97. package/src/handlers/LibraryHandler.ts +55 -0
  98. package/src/handlers/MessageHandler.ts +37 -0
  99. package/src/handlers/PluginMessageHandler.ts +27 -0
  100. package/src/handlers/TagHandler.ts +66 -0
  101. package/src/index.ts +44 -0
  102. package/tsconfig.json +23 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LibraryServerDataSQLite.js","sourceRoot":"","sources":["../src/LibraryServerDataSQLite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { LibraryServerDataSQLite } from "./LibraryServerDataSQLite";
2
+ import { MiraBackend } from "./ServerExample";
3
+ export declare class LibraryStorage {
4
+ libraryServices: LibraryServerDataSQLite[];
5
+ backend: MiraBackend;
6
+ constructor(backend: MiraBackend);
7
+ all(): LibraryServerDataSQLite[];
8
+ load(dbConfig: Record<string, any>): Promise<LibraryServerDataSQLite>;
9
+ loadAll(): Promise<number>;
10
+ get(libraryId: string): LibraryServerDataSQLite | undefined;
11
+ exists(libraryId: string): boolean;
12
+ find(libraryId: string): LibraryServerDataSQLite | undefined;
13
+ }
14
+ //# sourceMappingURL=LibraryStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LibraryStorage.d.ts","sourceRoot":"","sources":["../src/LibraryStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,qBAAa,cAAc;IACzB,eAAe,EAAE,uBAAuB,EAAE,CAAM;IAChD,OAAO,EAAE,WAAW,CAAC;gBAET,OAAO,EAAE,WAAW;IAIhC,GAAG,IAAI,uBAAuB,EAAE;IAI1B,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAOrE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAchC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAM3D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAMlC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAK7D"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LibraryStorage = void 0;
4
+ const LibraryServerDataSQLite_1 = require("./LibraryServerDataSQLite");
5
+ const LibraryList_1 = require("./LibraryList");
6
+ class LibraryStorage {
7
+ constructor(backend) {
8
+ this.libraryServices = [];
9
+ this.backend = backend;
10
+ }
11
+ all() {
12
+ return this.libraryServices;
13
+ }
14
+ async load(dbConfig) {
15
+ const dbServer = new LibraryServerDataSQLite_1.LibraryServerDataSQLite(dbConfig, { webSocketServer: this.backend.webSocketServer, httpServer: this.backend.httpServer });
16
+ await dbServer.initialize();
17
+ this.libraryServices.push(dbServer);
18
+ return dbServer;
19
+ }
20
+ async loadAll() {
21
+ let success = 0;
22
+ for (const library of await (0, LibraryList_1.getLibrarysJson)(this.backend.dataPath)) {
23
+ try {
24
+ console.log('loading library ', library.name);
25
+ await this.load(library);
26
+ success++;
27
+ }
28
+ catch (err) {
29
+ console.log(err);
30
+ }
31
+ }
32
+ return success;
33
+ }
34
+ get(libraryId) {
35
+ return this.libraryServices.find((library) => library.getLibraryId() === libraryId);
36
+ }
37
+ exists(libraryId) {
38
+ return this.libraryServices.some((library) => library.getLibraryId() === libraryId);
39
+ }
40
+ find(libraryId) {
41
+ return this.libraryServices.find((library) => library.getLibraryId() === libraryId);
42
+ }
43
+ }
44
+ exports.LibraryStorage = LibraryStorage;
45
+ //# sourceMappingURL=LibraryStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LibraryStorage.js","sourceRoot":"","sources":["../src/LibraryStorage.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAEpE,+CAAgD;AAEhD,MAAa,cAAc;IAIzB,YAAY,OAAoB;QAHhC,oBAAe,GAA8B,EAAE,CAAC;QAI9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAA6B;QACtC,MAAM,QAAQ,GAAG,IAAI,iDAAuB,CAAC,QAAQ,EAAE,EAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAC,CAAE,CAAC;QAC9I,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,MAAM,IAAA,6BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,OAAM,GAAG,EAAC,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,SAAS,CAClD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,SAAS,CAClD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC,CAAC;IACtF,CAAC;CAGF;AAlDD,wCAkDC"}
@@ -0,0 +1,16 @@
1
+ import { LibraryServerDataSQLite } from './LibraryServerDataSQLite';
2
+ import { WebSocket } from 'ws';
3
+ import { WebSocketMessage } from './WebSocketRouter';
4
+ export declare abstract class MessageHandler {
5
+ protected dbService: LibraryServerDataSQLite;
6
+ protected ws: WebSocket;
7
+ protected message: WebSocketMessage;
8
+ constructor(dbService: LibraryServerDataSQLite, ws: WebSocket, message: WebSocketMessage);
9
+ abstract handle(): Promise<void>;
10
+ protected sendResponse(data: Record<string, any>): void;
11
+ protected sendError(error: string): void;
12
+ protected getLibraryId(): string;
13
+ protected getAction(): string;
14
+ protected getPayload(): Record<string, any>;
15
+ }
16
+ //# sourceMappingURL=MessageHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../src/MessageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,cAAc;IAEhC,SAAS,CAAC,SAAS,EAAE,uBAAuB;IAC5C,SAAS,CAAC,EAAE,EAAE,SAAS;IACvB,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBAFzB,SAAS,EAAE,uBAAuB,EAClC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,gBAAgB;IAGrC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAQvD,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG5C"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageHandler = void 0;
4
+ class MessageHandler {
5
+ constructor(dbService, ws, message) {
6
+ this.dbService = dbService;
7
+ this.ws = ws;
8
+ this.message = message;
9
+ }
10
+ sendResponse(data) {
11
+ this.ws.send(JSON.stringify({
12
+ requestId: this.message.requestId,
13
+ status: 'ok',
14
+ data
15
+ }));
16
+ }
17
+ sendError(error) {
18
+ this.ws.send(JSON.stringify({
19
+ requestId: this.message.requestId,
20
+ status: 'error',
21
+ error
22
+ }));
23
+ }
24
+ getLibraryId() {
25
+ return this.message.libraryId;
26
+ }
27
+ getAction() {
28
+ return this.message.action;
29
+ }
30
+ getPayload() {
31
+ return this.message.payload.data || {};
32
+ }
33
+ }
34
+ exports.MessageHandler = MessageHandler;
35
+ //# sourceMappingURL=MessageHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["../src/MessageHandler.ts"],"names":[],"mappings":";;;AAIA,MAAsB,cAAc;IAClC,YACY,SAAkC,EAClC,EAAa,EACb,OAAyB;QAFzB,cAAS,GAAT,SAAS,CAAyB;QAClC,OAAE,GAAF,EAAE,CAAW;QACb,YAAO,GAAP,OAAO,CAAkB;IAClC,CAAC;IAIM,YAAY,CAAC,IAAyB;QAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,MAAM,EAAE,IAAI;YACZ,IAAI;SACL,CAAC,CAAC,CAAC;IACN,CAAC;IAES,SAAS,CAAC,KAAa;QAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,MAAM,EAAE,OAAO;YACf,KAAK;SACN,CAAC,CAAC,CAAC;IACN,CAAC;IAES,YAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAES,SAAS;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IACzC,CAAC;CACF;AApCD,wCAoCC"}
@@ -0,0 +1,33 @@
1
+ import { MiraWebsocketServer } from './WebSocketServer';
2
+ import { MiraHttpServer } from './HttpServer';
3
+ import { LibraryStorage } from './LibraryStorage';
4
+ export declare class MiraBackend {
5
+ webSocketServer: MiraWebsocketServer;
6
+ httpServer: MiraHttpServer;
7
+ libraries: LibraryStorage;
8
+ dataPath: string;
9
+ constructor(options?: {
10
+ dataPath?: string;
11
+ httpPort?: number;
12
+ wsPort?: number;
13
+ autoLoad?: boolean;
14
+ autoStart?: boolean;
15
+ });
16
+ /**
17
+ * 手动启动服务器
18
+ */
19
+ start(): void;
20
+ /**
21
+ * 停止服务器
22
+ */
23
+ stop(): Promise<void>;
24
+ /**
25
+ * 创建并启动服务器的静态方法 (向后兼容)
26
+ */
27
+ static createAndStart(options?: {
28
+ dataPath?: string;
29
+ httpPort?: number;
30
+ wsPort?: number;
31
+ }): MiraBackend;
32
+ }
33
+ //# sourceMappingURL=ServerExample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerExample.d.ts","sourceRoot":"","sources":["../src/ServerExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,qBAAa,WAAW;IACtB,eAAe,EAAE,mBAAmB,CAAC;IACrC,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;gBAEL,OAAO,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB;IAkBD;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,WAAW;CAOhB"}
@@ -0,0 +1,87 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MiraBackend = void 0;
37
+ const WebSocketServer_1 = require("./WebSocketServer");
38
+ const HttpServer_1 = require("./HttpServer");
39
+ const LibraryStorage_1 = require("./LibraryStorage");
40
+ const path = __importStar(require("path"));
41
+ class MiraBackend {
42
+ constructor(options) {
43
+ this.dataPath = options?.dataPath || process.env.DATA_PATH || path.join(process.cwd(), 'data');
44
+ this.libraries = new LibraryStorage_1.LibraryStorage(this);
45
+ // 只有在明确要求时才自动加载
46
+ if (options?.autoLoad !== false) {
47
+ this.libraries.loadAll().then((loaded) => console.log(`${loaded} Libraries loaded`));
48
+ }
49
+ this.httpServer = new HttpServer_1.MiraHttpServer(options?.httpPort || 3000, this);
50
+ this.webSocketServer = new WebSocketServer_1.MiraWebsocketServer(options?.wsPort || 8081, this);
51
+ // 只有在明确要求时才自动启动
52
+ if (options?.autoStart === true) {
53
+ this.start();
54
+ }
55
+ }
56
+ /**
57
+ * 手动启动服务器
58
+ */
59
+ start() {
60
+ this.webSocketServer.start('/ws');
61
+ // 处理退出
62
+ process.on('SIGINT', async () => {
63
+ console.log('Shutting down servers...');
64
+ await this.stop();
65
+ process.exit();
66
+ });
67
+ }
68
+ /**
69
+ * 停止服务器
70
+ */
71
+ async stop() {
72
+ await this.webSocketServer.stop();
73
+ await this.httpServer.stop();
74
+ }
75
+ /**
76
+ * 创建并启动服务器的静态方法 (向后兼容)
77
+ */
78
+ static createAndStart(options) {
79
+ return new MiraBackend({
80
+ ...options,
81
+ autoLoad: true,
82
+ autoStart: true
83
+ });
84
+ }
85
+ }
86
+ exports.MiraBackend = MiraBackend;
87
+ //# sourceMappingURL=ServerExample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerExample.js","sourceRoot":"","sources":["../src/ServerExample.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAwD;AACxD,6CAA8C;AAC9C,qDAAkD;AAClD,2CAA6B;AAE7B,MAAa,WAAW;IAMtB,YAAY,OAMX;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,gBAAgB;QAChB,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,mBAAmB,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,2BAAc,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,GAAG,IAAI,qCAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QAE9E,gBAAgB;QAChB,IAAI,OAAO,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAElC,OAAO;QACP,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAIrB;QACC,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,OAAO;YACV,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAlED,kCAkEC"}
@@ -0,0 +1,20 @@
1
+ import { EventEmitter } from 'events';
2
+ import { ServerPluginManager } from './ServerPluginManager';
3
+ import { ILibraryServerData } from './ILibraryServerData';
4
+ import { MiraHttpServer } from './HttpServer';
5
+ export declare abstract class ServerPlugin {
6
+ protected readonly pluginName: string;
7
+ protected configs: Record<string, any>;
8
+ protected readonly eventEmitter: EventEmitter;
9
+ protected readonly pluginDir: string;
10
+ protected readonly pluginDataDir: string;
11
+ constructor(pluginName: string, pluginManager: ServerPluginManager, dbServer: ILibraryServerData, httpServer: MiraHttpServer);
12
+ private ensureDirExists;
13
+ protected writeConfig(key: string, value: any): void;
14
+ protected saveConfig(): void;
15
+ protected readConfig(key: string): any;
16
+ protected loadConfig(defaultConfig?: Record<string, any>): void;
17
+ protected writeJson(filename: string, data: any): void;
18
+ protected readJson(filename: string): any;
19
+ }
20
+ //# sourceMappingURL=ServerPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerPlugin.d.ts","sourceRoot":"","sources":["../src/ServerPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,8BAAsB,YAAY;IAMlB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM;IALjD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAEV,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc;IAO/I,OAAO,CAAC,eAAe;IAMvB,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAK7C,SAAS,CAAC,UAAU;IAIpB,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAItC,SAAS,CAAC,UAAU,CAAC,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI5D,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAK/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;CAO5C"}
@@ -0,0 +1,79 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ServerPlugin = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ class ServerPlugin {
40
+ constructor(pluginName, pluginManager, dbServer, httpServer) {
41
+ this.pluginName = pluginName;
42
+ this.configs = {};
43
+ this.eventEmitter = dbServer.getEventManager();
44
+ this.pluginDir = pluginManager.getPluginDir(pluginName);
45
+ this.pluginDataDir = path.join(this.pluginDir, 'data');
46
+ this.ensureDirExists();
47
+ }
48
+ ensureDirExists() {
49
+ if (!fs.existsSync(this.pluginDataDir)) {
50
+ fs.mkdirSync(this.pluginDataDir, { recursive: true });
51
+ }
52
+ }
53
+ writeConfig(key, value) {
54
+ this.configs[key] = value;
55
+ this.saveConfig();
56
+ }
57
+ saveConfig() {
58
+ return this.writeJson('config.json', this.configs);
59
+ }
60
+ readConfig(key) {
61
+ return this.configs[key];
62
+ }
63
+ loadConfig(defaultConfig = {}) {
64
+ this.configs = { ...defaultConfig, ...this.readJson('config.json') };
65
+ }
66
+ writeJson(filename, data) {
67
+ const filePath = path.join(this.pluginDataDir, filename);
68
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
69
+ }
70
+ readJson(filename) {
71
+ const filePath = path.join(this.pluginDataDir, filename);
72
+ if (fs.existsSync(filePath)) {
73
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
74
+ }
75
+ return null;
76
+ }
77
+ }
78
+ exports.ServerPlugin = ServerPlugin;
79
+ //# sourceMappingURL=ServerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerPlugin.js","sourceRoot":"","sources":["../src/ServerPlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAK7B,MAAsB,YAAY;IAM9B,YAA+B,UAAkB,EAAE,aAAkC,EAAE,QAA4B,EAAE,UAA0B;QAAhH,eAAU,GAAV,UAAU,CAAQ;QALvC,YAAO,GAAwB,EAAE,CAAC;QAMxC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,EAAG,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAES,WAAW,CAAC,GAAW,EAAE,KAAU;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAES,UAAU,CAAC,GAAW;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAES,UAAU,CAAC,gBAAqC,EAAE;QACzD,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAC,CAAC;IACtE,CAAC;IAES,SAAS,CAAC,QAAgB,EAAE,IAAS;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACzD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAES,QAAQ,CAAC,QAAgB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAhDD,oCAgDC"}
@@ -0,0 +1,30 @@
1
+ import { MiraHttpServer } from './HttpServer';
2
+ import { ILibraryServerData } from './ILibraryServerData';
3
+ import { MiraWebsocketServer } from './WebSocketServer';
4
+ export interface PluginConfig {
5
+ name: string;
6
+ enabled: boolean;
7
+ path: string;
8
+ }
9
+ export declare class ServerPluginManager {
10
+ pluginsDir: string;
11
+ private server;
12
+ private httpServer;
13
+ private dbService;
14
+ private pluginsConfigPath;
15
+ private loadedPlugins;
16
+ fields: Record<string, any>[];
17
+ constructor({ server, dbService, httpServer, pluginsDir }: {
18
+ server: MiraWebsocketServer;
19
+ dbService: ILibraryServerData;
20
+ httpServer: MiraHttpServer;
21
+ pluginsDir?: string;
22
+ });
23
+ getPluginDir(pluginName: string): string;
24
+ loadPlugins(): Promise<void>;
25
+ registerFields(fields: Record<string, any>[]): void;
26
+ registerField(field: Record<string, any>): void;
27
+ getPlugin<T>(name: string): T | undefined;
28
+ addPlugin(config: PluginConfig): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=ServerPluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerPluginManager.d.ts","sourceRoot":"","sources":["../src/ServerPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAA+B;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;gBAEvB,EAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAC,EAAE;QAAC,MAAM,EAAE,mBAAmB,CAAC;QAAC,SAAS,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC;IAmBtK,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIlC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI;IAMnD,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAQ/C,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAInC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBvD"}
@@ -0,0 +1,112 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ServerPluginManager = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ class ServerPluginManager {
40
+ constructor({ server, dbService, httpServer, pluginsDir }) {
41
+ this.loadedPlugins = new Map();
42
+ this.fields = [];
43
+ this.pluginsDir = pluginsDir || path.join(__dirname, 'plugins');
44
+ this.server = server;
45
+ this.dbService = dbService;
46
+ this.httpServer = httpServer;
47
+ this.pluginsConfigPath = path.join(this.pluginsDir, 'plugins.json');
48
+ // Ensure plugins directory exists
49
+ if (!fs.existsSync(this.pluginsDir)) {
50
+ fs.mkdirSync(this.pluginsDir, { recursive: true });
51
+ }
52
+ // Initialize plugins.json if it doesn't exist
53
+ if (!fs.existsSync(this.pluginsConfigPath)) {
54
+ fs.writeFileSync(this.pluginsConfigPath, JSON.stringify([], null, 2));
55
+ }
56
+ }
57
+ // getPluginDir
58
+ getPluginDir(pluginName) {
59
+ return path.join(this.pluginsDir, pluginName);
60
+ }
61
+ async loadPlugins() {
62
+ const config = JSON.parse(fs.readFileSync(this.pluginsConfigPath, 'utf-8'));
63
+ for (const pluginConfig of config) {
64
+ if (pluginConfig.enabled) {
65
+ try {
66
+ const pluginPath = path.join(this.pluginsDir, pluginConfig.path);
67
+ delete require.cache[require.resolve(pluginPath)];
68
+ const pluginModule = require(pluginPath);
69
+ if (typeof pluginModule.init === 'function') {
70
+ await pluginModule.init({ pluginManager: this, server: this.server, dbService: this.dbService, httpServer: this.httpServer });
71
+ }
72
+ this.loadedPlugins.set(pluginConfig.name, pluginModule);
73
+ console.log(`Loaded plugin: ${pluginConfig.name}`);
74
+ }
75
+ catch (err) {
76
+ console.error(`Failed to load plugin ${pluginConfig.name}:`, err);
77
+ }
78
+ }
79
+ }
80
+ }
81
+ registerFields(fields) {
82
+ for (const field of fields) {
83
+ this.registerField(field);
84
+ }
85
+ }
86
+ registerField(field) {
87
+ let { action, type, field: fieldName } = field;
88
+ if (!fieldName || !action || !type) {
89
+ throw new Error('Field registration error: action, type, and field are required');
90
+ }
91
+ this.fields.push(field);
92
+ }
93
+ getPlugin(name) {
94
+ return this.loadedPlugins.get(name);
95
+ }
96
+ async addPlugin(config) {
97
+ const currentConfig = JSON.parse(fs.readFileSync(this.pluginsConfigPath, 'utf-8'));
98
+ const existingIndex = currentConfig.findIndex(p => p.name === config.name);
99
+ if (existingIndex >= 0) {
100
+ currentConfig[existingIndex] = config;
101
+ }
102
+ else {
103
+ currentConfig.push(config);
104
+ }
105
+ fs.writeFileSync(this.pluginsConfigPath, JSON.stringify(currentConfig, null, 2));
106
+ if (config.enabled) {
107
+ await this.loadPlugins();
108
+ }
109
+ }
110
+ }
111
+ exports.ServerPluginManager = ServerPluginManager;
112
+ //# sourceMappingURL=ServerPluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerPluginManager.js","sourceRoot":"","sources":["../src/ServerPluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { LibraryServerDataSQLite } from './LibraryServerDataSQLite';
2
+ import { WebSocket } from 'ws';
3
+ import { MessageHandler } from './handlers/MessageHandler';
4
+ export interface WebSocketMessage {
5
+ action: string;
6
+ requestId: string;
7
+ libraryId: string;
8
+ clientId: string;
9
+ payload: {
10
+ type: string;
11
+ data: Record<string, any>;
12
+ };
13
+ }
14
+ export declare class WebSocketRouter {
15
+ static route(server: any, // 修改为any类型避免类型冲突
16
+ dbService: LibraryServerDataSQLite, ws: WebSocket, message: WebSocketMessage): Promise<MessageHandler | null>;
17
+ }
18
+ //# sourceMappingURL=WebSocketRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketRouter.d.ts","sourceRoot":"","sources":["../src/WebSocketRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAmB,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC3B,CAAC;CACH;AAED,qBAAa,eAAe;WACb,KAAK,CAChB,MAAM,EAAE,GAAG,EAAG,iBAAiB;IAC/B,SAAS,EAAE,uBAAuB,EAClC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAmBlC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebSocketRouter = void 0;
4
+ const FileHandler_1 = require("./handlers/FileHandler");
5
+ const TagHandler_1 = require("./handlers/TagHandler");
6
+ const FolderHandler_1 = require("./handlers/FolderHandler");
7
+ const LibraryHandler_1 = require("./handlers/LibraryHandler");
8
+ const PluginMessageHandler_1 = require("./handlers/PluginMessageHandler");
9
+ class WebSocketRouter {
10
+ static async route(server, // 修改为any类型避免类型冲突
11
+ dbService, ws, message) {
12
+ const { payload } = message;
13
+ // 根据资源类型路由到不同的处理器
14
+ switch (payload.type) {
15
+ case 'plugin':
16
+ return new PluginMessageHandler_1.PluginMessageHandler(server, dbService, ws, message);
17
+ case 'file':
18
+ return new FileHandler_1.FileHandler(server, dbService, ws, message);
19
+ case 'tag':
20
+ return new TagHandler_1.TagHandler(server, dbService, ws, message);
21
+ case 'folder':
22
+ return new FolderHandler_1.FolderHandler(server, dbService, ws, message);
23
+ case 'library':
24
+ return new LibraryHandler_1.LibraryHandler(server, dbService, ws, message);
25
+ default:
26
+ return null;
27
+ }
28
+ }
29
+ }
30
+ exports.WebSocketRouter = WebSocketRouter;
31
+ //# sourceMappingURL=WebSocketRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketRouter.js","sourceRoot":"","sources":["../src/WebSocketRouter.ts"],"names":[],"mappings":";;;AAGA,wDAAqD;AACrD,sDAAmD;AACnD,4DAAyD;AACzD,8DAA2D;AAC3D,0EAAuE;AAavE,MAAa,eAAe;IAC1B,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,MAAW,EAAG,iBAAiB;IAC/B,SAAkC,EAClC,EAAa,EACb,OAAyB;QAEzB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE5B,kBAAkB;QAClB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,IAAI,2CAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAClE,KAAK,MAAM;gBACT,OAAO,IAAI,yBAAW,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACzD,KAAK,KAAK;gBACR,OAAO,IAAI,uBAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACxD,KAAK,QAAQ;gBACX,OAAO,IAAI,6BAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3D,KAAK,SAAS;gBACZ,OAAO,IAAI,+BAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5D;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;CACF;AAzBD,0CAyBC"}