@ahana-awesome-platform/ahana-electron-sdk 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 (111) hide show
  1. package/dist/cjs/controller/index.d.ts +12 -0
  2. package/dist/cjs/controller/index.d.ts.map +1 -0
  3. package/dist/cjs/controller/index.js +1 -0
  4. package/dist/cjs/ipc/IpcMain.d.ts +20 -0
  5. package/dist/cjs/ipc/IpcMain.d.ts.map +1 -0
  6. package/dist/cjs/ipc/IpcTypes.d.ts +24 -0
  7. package/dist/cjs/ipc/IpcTypes.d.ts.map +1 -0
  8. package/dist/cjs/ipc/index.d.ts +66 -0
  9. package/dist/cjs/ipc/index.d.ts.map +1 -0
  10. package/dist/cjs/ipc/index.js +1 -0
  11. package/dist/cjs/logger/String16.d.ts +11 -0
  12. package/dist/cjs/logger/String16.d.ts.map +1 -0
  13. package/dist/cjs/logger/index.d.ts +104 -0
  14. package/dist/cjs/logger/index.d.ts.map +1 -0
  15. package/dist/cjs/logger/index.js +1 -0
  16. package/dist/cjs/orm/common/logger.d.ts +4 -0
  17. package/dist/cjs/orm/common/logger.d.ts.map +1 -0
  18. package/dist/cjs/orm/index.d.ts +4 -0
  19. package/dist/cjs/orm/index.d.ts.map +1 -0
  20. package/dist/cjs/orm/index.js +1 -0
  21. package/dist/cjs/orm/orm/CheckHealth.d.ts +4 -0
  22. package/dist/cjs/orm/orm/CheckHealth.d.ts.map +1 -0
  23. package/dist/cjs/orm/orm/ExecuteInTransaction.d.ts +5 -0
  24. package/dist/cjs/orm/orm/ExecuteInTransaction.d.ts.map +1 -0
  25. package/dist/cjs/orm/orm/SafeAlterTable.d.ts +8 -0
  26. package/dist/cjs/orm/orm/SafeAlterTable.d.ts.map +1 -0
  27. package/dist/cjs/orm/orm/SqLiteConnection.d.ts +5 -0
  28. package/dist/cjs/orm/orm/SqLiteConnection.d.ts.map +1 -0
  29. package/dist/cjs/orm/sqlite/index.d.ts +10 -0
  30. package/dist/cjs/orm/sqlite/index.d.ts.map +1 -0
  31. package/dist/cjs/platform/index.d.ts +2 -0
  32. package/dist/cjs/platform/index.d.ts.map +1 -0
  33. package/dist/cjs/platform/index.js +1 -0
  34. package/dist/cjs/platform/platform/detector.d.ts +47 -0
  35. package/dist/cjs/platform/platform/detector.d.ts.map +1 -0
  36. package/dist/cjs/platform/platform/registry/index.d.ts +47 -0
  37. package/dist/cjs/platform/platform/registry/index.d.ts.map +1 -0
  38. package/dist/cjs/platform/platform/registry/kylin-registry.d.ts +31 -0
  39. package/dist/cjs/platform/platform/registry/kylin-registry.d.ts.map +1 -0
  40. package/dist/cjs/platform/platform/registry/registry.d.ts +89 -0
  41. package/dist/cjs/platform/platform/registry/registry.d.ts.map +1 -0
  42. package/dist/cjs/platform/platform/registry/windows-registry.d.ts +32 -0
  43. package/dist/cjs/platform/platform/registry/windows-registry.d.ts.map +1 -0
  44. package/dist/cjs/response-factory/factory/AppError.d.ts +8 -0
  45. package/dist/cjs/response-factory/factory/AppError.d.ts.map +1 -0
  46. package/dist/cjs/response-factory/factory/BusinessError.d.ts +70 -0
  47. package/dist/cjs/response-factory/factory/BusinessError.d.ts.map +1 -0
  48. package/dist/cjs/response-factory/index.d.ts +3 -0
  49. package/dist/cjs/response-factory/index.d.ts.map +1 -0
  50. package/dist/cjs/response-factory/index.js +1 -0
  51. package/dist/cjs/response-factory/response/Response.d.ts +15 -0
  52. package/dist/cjs/response-factory/response/Response.d.ts.map +1 -0
  53. package/dist/esm/_commonjsHelpers-Dm6U3U_N.js +35 -0
  54. package/dist/esm/controller/index.d.ts +12 -0
  55. package/dist/esm/controller/index.d.ts.map +1 -0
  56. package/dist/esm/controller/index.js +1128 -0
  57. package/dist/esm/events-CqhjgOaW.js +213 -0
  58. package/dist/esm/index-Dys2BW-7.js +256 -0
  59. package/dist/esm/index-xOyNRTcn.js +21640 -0
  60. package/dist/esm/ipc/IpcMain.d.ts +20 -0
  61. package/dist/esm/ipc/IpcMain.d.ts.map +1 -0
  62. package/dist/esm/ipc/IpcTypes.d.ts +24 -0
  63. package/dist/esm/ipc/IpcTypes.d.ts.map +1 -0
  64. package/dist/esm/ipc/index.d.ts +66 -0
  65. package/dist/esm/ipc/index.d.ts.map +1 -0
  66. package/dist/esm/ipc/index.js +137 -0
  67. package/dist/esm/kylin-registry-3nmgzi3s.js +249 -0
  68. package/dist/esm/logger/String16.d.ts +11 -0
  69. package/dist/esm/logger/String16.d.ts.map +1 -0
  70. package/dist/esm/logger/index.d.ts +104 -0
  71. package/dist/esm/logger/index.d.ts.map +1 -0
  72. package/dist/esm/logger/index.js +7 -0
  73. package/dist/esm/orm/common/logger.d.ts +4 -0
  74. package/dist/esm/orm/common/logger.d.ts.map +1 -0
  75. package/dist/esm/orm/index.d.ts +4 -0
  76. package/dist/esm/orm/index.d.ts.map +1 -0
  77. package/dist/esm/orm/index.js +50024 -0
  78. package/dist/esm/orm/orm/CheckHealth.d.ts +4 -0
  79. package/dist/esm/orm/orm/CheckHealth.d.ts.map +1 -0
  80. package/dist/esm/orm/orm/ExecuteInTransaction.d.ts +5 -0
  81. package/dist/esm/orm/orm/ExecuteInTransaction.d.ts.map +1 -0
  82. package/dist/esm/orm/orm/SafeAlterTable.d.ts +8 -0
  83. package/dist/esm/orm/orm/SafeAlterTable.d.ts.map +1 -0
  84. package/dist/esm/orm/orm/SqLiteConnection.d.ts +5 -0
  85. package/dist/esm/orm/orm/SqLiteConnection.d.ts.map +1 -0
  86. package/dist/esm/orm/sqlite/index.d.ts +10 -0
  87. package/dist/esm/orm/sqlite/index.d.ts.map +1 -0
  88. package/dist/esm/platform/index.d.ts +2 -0
  89. package/dist/esm/platform/index.d.ts.map +1 -0
  90. package/dist/esm/platform/index.js +8 -0
  91. package/dist/esm/platform/platform/detector.d.ts +47 -0
  92. package/dist/esm/platform/platform/detector.d.ts.map +1 -0
  93. package/dist/esm/platform/platform/registry/index.d.ts +47 -0
  94. package/dist/esm/platform/platform/registry/index.d.ts.map +1 -0
  95. package/dist/esm/platform/platform/registry/kylin-registry.d.ts +31 -0
  96. package/dist/esm/platform/platform/registry/kylin-registry.d.ts.map +1 -0
  97. package/dist/esm/platform/platform/registry/registry.d.ts +89 -0
  98. package/dist/esm/platform/platform/registry/registry.d.ts.map +1 -0
  99. package/dist/esm/platform/platform/registry/windows-registry.d.ts +32 -0
  100. package/dist/esm/platform/platform/registry/windows-registry.d.ts.map +1 -0
  101. package/dist/esm/response-factory/factory/AppError.d.ts +8 -0
  102. package/dist/esm/response-factory/factory/AppError.d.ts.map +1 -0
  103. package/dist/esm/response-factory/factory/BusinessError.d.ts +70 -0
  104. package/dist/esm/response-factory/factory/BusinessError.d.ts.map +1 -0
  105. package/dist/esm/response-factory/index.d.ts +3 -0
  106. package/dist/esm/response-factory/index.d.ts.map +1 -0
  107. package/dist/esm/response-factory/index.js +121 -0
  108. package/dist/esm/response-factory/response/Response.d.ts +15 -0
  109. package/dist/esm/response-factory/response/Response.d.ts.map +1 -0
  110. package/dist/esm/windows-registry-B92IgP1f.js +354 -0
  111. package/package.json +73 -0
@@ -0,0 +1,12 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * 类装饰器:RestController
4
+ * 注册控制器并自动绑定所有IPC路由
5
+ */
6
+ export declare const RestController: (prefix?: string) => ClassDecorator;
7
+ /**
8
+ * 方法装饰器:RequestMapping
9
+ * 标记一个方法为IPC处理器
10
+ */
11
+ export declare const RequestMapping: (channel: string) => MethodDecorator;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/controller/index.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AA4C1B;;;GAGG;AACH,eAAO,MAAM,cAAc,YAChB,MAAM,KAAQ,cA8BtB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,cAAc,YACf,MAAM,KAAG,eAsBlB,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestMapping=exports.RestController=void 0;const e=require("electron");require("reflect-metadata");const t=Symbol("ipc:routes"),r=Symbol("ipc:prefix"),o=e=>Reflect.getMetadata(t,e)||[],n=(e,t)=>async(r,...o)=>{try{return await e.call(t,r,...o)}catch(n){throw n instanceof Error?n.message:String(n)}};exports.RestController=(a="")=>c=>{const l=c;Reflect.defineMetadata(r,a,l);const s=o(l.prototype);if(0===s.length)return void l.name;const i=new l;for(const t of s){const{channel:r,handler:o}=t,c=a?`${a}:${r}`:r,l=n(o,i);e.ipcMain.handle(c,l)}Reflect.deleteMetadata(t,l.prototype)};exports.RequestMapping=e=>(r,n,a)=>{if(!a||!a.value)throw new Error("缺少方法描述符");if("function"!=typeof a.value)throw new Error("目标必须是函数");const c=o(r);c.push({channel:e,handler:a.value}),Reflect.defineMetadata(t,c,r)};
@@ -0,0 +1,20 @@
1
+ import type { BrowserWindow } from 'electron';
2
+ import type { IPCRendererChannels } from './IpcTypes';
3
+ /**
4
+ * 主进程 IPC 封装
5
+ */
6
+ declare class IPCMainHandler {
7
+ private readonly windows;
8
+ registerWindow(win: BrowserWindow): void;
9
+ /**
10
+ * 发送消息到所有窗口
11
+ */
12
+ sendToAllWindows<K extends keyof IPCRendererChannels>(channel: K, args: IPCRendererChannels[K]): void;
13
+ /**
14
+ * 发送消息到特定窗口
15
+ */
16
+ sendToWindow<K extends keyof IPCRendererChannels>(win: BrowserWindow, channel: K, args: IPCRendererChannels[K]): void;
17
+ }
18
+ export declare const IpcMainHandler: IPCMainHandler;
19
+ export {};
20
+ //# sourceMappingURL=IpcMain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IpcMain.d.ts","sourceRoot":"","sources":["../../../src/ipc/IpcMain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAE7C,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAK/C;;OAEG;IACI,gBAAgB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAQ5G;;OAEG;IACI,YAAY,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACrD,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,IAAI;CAKR;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { IpcRendererEvent } from 'electron';
2
+ /**
3
+ * IPC 通道类型定义
4
+ */
5
+ export interface IPCChannels {
6
+ [key: string]: string;
7
+ }
8
+ /**
9
+ * 主进程发送到渲染进程的通道
10
+ */
11
+ export interface IPCRendererChannels {
12
+ [key: string]: string;
13
+ }
14
+ /**
15
+ * 类型安全的 IPC 调用接口
16
+ */
17
+ export interface TypedIPCRenderer {
18
+ invoke<K extends keyof IPCChannels>(channel: K, ...args: IPCChannels[K] extends never ? [] : [IPCChannels[K]]): Promise<IPCChannels[K]>;
19
+ send<K extends keyof IPCChannels>(channel: K, ...args: IPCChannels[K] extends never ? [] : [IPCChannels[K]]): void;
20
+ on<K extends keyof IPCRendererChannels>(channel: K, listener: (event: IpcRendererEvent, args: IPCRendererChannels[K]) => void): () => void;
21
+ once<K extends keyof IPCRendererChannels>(channel: K, listener: (event: IpcRendererEvent, args: IPCRendererChannels[K]) => void): void;
22
+ }
23
+ export declare const typedIpc: TypedIPCRenderer;
24
+ //# sourceMappingURL=IpcTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IpcTypes.d.ts","sourceRoot":"","sources":["../../../src/ipc/IpcTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,CAAC,SAAS,MAAM,WAAW,EAChC,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC5D,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEnH,EAAE,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACpC,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,GACxE,MAAM,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACtC,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,GACxE,IAAI,CAAC;CACT;AAGD,eAAO,MAAM,QAAQ,EAAE,gBAA0C,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { IpcRendererEvent } from 'electron';
2
+ import { IpcMainHandler } from './IpcMain';
3
+ /**
4
+ * Electron IPC 通信封装
5
+ */
6
+ declare class IPCRenderer {
7
+ private static instance;
8
+ private readonly emitter;
9
+ private constructor();
10
+ static getInstance(): IPCRenderer;
11
+ /**
12
+ * 调用主进程方法 (请求-响应模式)
13
+ * @param channel 通信通道
14
+ * @param args 参数
15
+ * @returns Promise<T>
16
+ */
17
+ invoke<T>(channel: string, ...args: T[]): Promise<T>;
18
+ /**
19
+ * 发送消息到主进程 (无响应)
20
+ * @param channel 通信通道
21
+ * @param args 参数
22
+ */
23
+ send<T>(channel: string, ...args: T[]): void;
24
+ /**
25
+ * 监听主进程消息
26
+ * @param channel 通信通道
27
+ * @param listener 监听函数
28
+ * @returns 取消监听函数
29
+ */
30
+ on<T>(channel: string, listener: (event: IpcRendererEvent, ...args: T[]) => void): () => void;
31
+ /**
32
+ * 一次性监听主进程消息
33
+ * @param channel 通信通道
34
+ * @param listener 监听函数
35
+ */
36
+ once<T>(channel: string, listener: (event: IpcRendererEvent, ...args: T[]) => void): void;
37
+ /**
38
+ * 移除监听器
39
+ * @param channel 通信通道
40
+ * @param listener 监听函数
41
+ */
42
+ off<T>(channel: string, listener: (event: IpcRendererEvent, ...args: T[]) => void): void;
43
+ /**
44
+ * 发送事件到主进程并等待回复 (带超时)
45
+ * @param channel 通信通道
46
+ * @param timeout 超时时间(ms)
47
+ * @param args 参数
48
+ * @returns Promise<T>
49
+ */
50
+ invokeOperation<T, R>(channel: string, data: T, type?: string): Promise<R>;
51
+ /**
52
+ * 注册本地事件 (渲染进程内部通信)
53
+ * @param event 事件名
54
+ * @param listener 监听函数
55
+ */
56
+ registerLocalEvent<T>(event: string, listener: (...args: T[]) => void): () => void;
57
+ /**
58
+ * 触发本地事件
59
+ * @param event 事件名
60
+ * @param args 参数
61
+ */
62
+ emitLocalEvent<T>(event: string, ...args: T[]): void;
63
+ }
64
+ export declare const Ipc: IPCRenderer;
65
+ export { IpcMainHandler };
66
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ipc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,cAAM,WAAW;IAEf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,OAAO;WAKO,WAAW,IAAI,WAAW;IAOxC;;;;;OAKG;IACI,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3D;;;;OAIG;IACI,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI;IAInD;;;;;OAKG;IACI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAKpG;;;;OAIG;IACI,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,IAAI;IAIhG;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,IAAI;IAI/F;;;;;;OAMG;IACI,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAkBjF;;;;OAIG;IACI,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAKzF;;;;OAIG;IACI,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI;CAG5D;AAED,eAAO,MAAM,GAAG,aAA4B,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";var e=Object.defineProperty,t=(t,n,r)=>(((t,n,r)=>{n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r})(t,"symbol"!=typeof n?n+"":n,r),r);Object.defineProperty(exports,"__esModule",{value:!0}),exports.IpcMainHandler=exports.Ipc=void 0;const n=require("electron"),r=require("events"),i=require("./IpcMain");Object.defineProperty(exports,"IpcMainHandler",{enumerable:!0,get:function(){return i.IpcMainHandler}});const o=class e{constructor(){t(this,"emitter",new r.EventEmitter)}static getInstance(){return e.instance||(e.instance=new e),e.instance}invoke(e,...t){return n.ipcRenderer.invoke(e,...t)}send(e,...t){n.ipcRenderer.send(e,...t)}on(e,t){return n.ipcRenderer.on(e,t),()=>this.off(e,t)}once(e,t){n.ipcRenderer.once(e,t)}off(e,t){n.ipcRenderer.off(e,t)}invokeOperation(e,t,r){return new Promise((i,o)=>{const c=setTimeout(()=>{o(new Error(`IPC调用超时 (6000ms): ${e}`))},6e3);n.ipcRenderer.invoke(e,t,r).then(e=>{clearTimeout(c),i(e)}).catch(e=>{clearTimeout(c),o(e)})})}registerLocalEvent(e,t){return this.emitter.on(e,t),()=>this.emitter.off(e,t)}emitLocalEvent(e,...t){this.emitter.emit(e,...t)}};t(o,"instance",null);let c=o;exports.Ipc=c.getInstance();
@@ -0,0 +1,11 @@
1
+ export declare class String16 {
2
+ private readonly value;
3
+ constructor(str: string);
4
+ toString(): string;
5
+ valueOf(): string;
6
+ getValue(): string;
7
+ static from(str: string): String16;
8
+ static isValid(str: string): boolean;
9
+ static generate(): String16;
10
+ }
11
+ //# sourceMappingURL=String16.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"String16.d.ts","sourceRoot":"","sources":["../../../src/logger/String16.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,GAAG,EAAE,MAAM;IAOvB,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,QAAQ,IAAI,MAAM;IAKlB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAKlC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKpC,MAAM,CAAC,QAAQ,IAAI,QAAQ;CAQ5B"}
@@ -0,0 +1,104 @@
1
+ import type { LoggerConfig, Logger } from '@ahana-awesome-platform/shared-types';
2
+ import winston from 'winston';
3
+ /**
4
+ * 日志服务类
5
+ * 提供加密、轮转、多级别日志功能
6
+ */
7
+ export declare class LoggerService implements Logger {
8
+ private readonly levels;
9
+ private readonly colors;
10
+ private readonly params;
11
+ private logDir;
12
+ private readonly logger;
13
+ private readonly sqlLogger;
14
+ /**
15
+ * 构造函数
16
+ * @param params 日志配置参数
17
+ */
18
+ constructor(params?: Partial<LoggerConfig>);
19
+ /**
20
+ * 获取默认日志目录
21
+ */
22
+ private getDefaultLogDir;
23
+ /**
24
+ * 检查加密密钥
25
+ */
26
+ private checkEncryptionKey;
27
+ /**
28
+ * 设置日志参数
29
+ * @param params 日志参数
30
+ */
31
+ setParams(params: Partial<LoggerConfig>): this;
32
+ /**
33
+ * 生成加密密钥
34
+ */
35
+ generateEncryptionKey(): string;
36
+ /**
37
+ * 加密文本
38
+ * @param text 要加密的文本
39
+ */
40
+ encrypt(text: string): string;
41
+ /**
42
+ * 解密文本
43
+ * @param encryptedText 加密文本
44
+ */
45
+ decrypt(encryptedText: string): string;
46
+ /**
47
+ * 格式化消息
48
+ * @param message 消息
49
+ */
50
+ private formatMessage;
51
+ /**
52
+ * 创建日志格式化器
53
+ * @param isConsole 是否为控制台格式
54
+ * @param shouldEncrypt 是否加密
55
+ */
56
+ private createFormat;
57
+ /**
58
+ * 创建日志传输器
59
+ */
60
+ private createTransports;
61
+ /**
62
+ * 创建日志记录器
63
+ */
64
+ private createLogger;
65
+ /**
66
+ * 创建SQL日志记录器
67
+ */
68
+ private createSqlLogger;
69
+ /**
70
+ * 获取流接口(供morgan等中间件使用)
71
+ */
72
+ getLogStream(): {
73
+ write: (message: string) => void;
74
+ };
75
+ /**
76
+ * 生成新的加密密钥
77
+ */
78
+ generateNewEncryptionKey(): string;
79
+ /**
80
+ * 获取日志记录器
81
+ */
82
+ getLogger(): winston.Logger;
83
+ /**
84
+ * 获取SQL日志记录器
85
+ */
86
+ getSqlLogger(): {
87
+ log: (query: string, duration: number, options?: Record<string, unknown> | undefined) => void;
88
+ };
89
+ /**
90
+ * 获取日志参数
91
+ */
92
+ getParams(): LoggerConfig;
93
+ /**
94
+ * 获取日志目录
95
+ */
96
+ getLogDir(): string;
97
+ error(message: string): void;
98
+ warn(message: string): void;
99
+ info(message: string): void;
100
+ http(message: string): void;
101
+ debug(message: string): void;
102
+ sql(query: string, duration: number): void;
103
+ }
104
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAClG,OAAO,OAAO,MAAM,SAAS,CAAC;AAU9B;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOrB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOrB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAQrB;IAEF,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;IAEF;;;OAGG;gBACS,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAoB9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAqB9C;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAkB7B;;;OAGG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IA8BtC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAoEpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4DxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,YAAY;yBAES,MAAM;;IAM3B;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAMlC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM;IAI3B;;OAEG;IACH,YAAY;;;IAIZ;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG3C"}
@@ -0,0 +1 @@
1
+ "use strict";var e=Object.defineProperty,t=(t,r,s)=>(((t,r,s)=>{r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[r]=s})(t,"symbol"!=typeof r?r+"":r,s),s);Object.defineProperty(exports,"__esModule",{value:!0}),exports.LoggerService=void 0;const r=require("tslib"),s=r.__importDefault(require("winston")),a=r.__importDefault(require("winston-daily-rotate-file")),o=require("util"),i=r.__importDefault(require("crypto")),l=r.__importDefault(require("path")),n=r.__importDefault(require("os")),g=require("./String16");exports.LoggerService=class{constructor(e={}){t(this,"levels",{error:0,warn:1,info:2,http:3,debug:4,sql:5}),t(this,"colors",{error:"red",warn:"yellow",info:"green",http:"magenta",debug:"blue",sql:"cyan"}),t(this,"params",{APPNAME:"",ENCRYPTION_KEY:"",ENCRYPTION_ALGORITHM:"aes-256-gcm",ENCRYPTION_KEY_LENGTH:32,IV_LENGTH:12,AUTH_TAG_LENGTH:16,LOG_LEVEL:"info"}),t(this,"logDir",l.default.join(process.cwd(),"logs")),t(this,"logger"),t(this,"sqlLogger"),e&&"[object Object]"===Object.prototype.toString.call(e)&&this.setParams(e),this.logDir=this.getDefaultLogDir(),this.checkEncryptionKey(),s.default.addColors(this.colors),this.logger=this.createLogger(),this.sqlLogger=this.createSqlLogger()}getDefaultLogDir(){return this.params.APPNAME?l.default.join(n.default.homedir(),"AppData","Local",this.params.APPNAME,"logs"):l.default.join(process.cwd(),"logs")}checkEncryptionKey(){this.params.ENCRYPTION_KEY}setParams(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const r=e[t];null!=r&&("ENCRYPTION_KEY"===t?g.String16.isValid(r)&&(this.params[t]=r):this.params[t]=r)}return this.logDir=this.getDefaultLogDir(),this}generateEncryptionKey(){return i.default.randomBytes(this.params.ENCRYPTION_KEY_LENGTH).toString("hex")}encrypt(e){if(!this.params.ENCRYPTION_KEY)return e;const t=i.default.randomBytes(this.params.IV_LENGTH),r=i.default.createCipheriv(this.params.ENCRYPTION_ALGORITHM||"aes-256-gcm",Buffer.from(this.params.ENCRYPTION_KEY,"hex"),t);let s=r.update(e,"utf8","hex");s+=r.final("hex");const a=r.getAuthTag().toString("hex");return`${t.toString("hex")}:${s}:${a}`}decrypt(e){if(!this.params.ENCRYPTION_KEY||!e)return e;try{const[t,r,s]=e.split(":");if(!s)return e;const a=Buffer.from(t,"hex"),o=Buffer.from(r,"hex"),l=Buffer.from(s||"","hex"),n=i.default.createDecipheriv(this.params.ENCRYPTION_ALGORITHM||"aes-256-gcm",Buffer.from(this.params.ENCRYPTION_KEY,"hex"),a);n.setAuthTag(l);const g=n.update(o,void 0,"utf8");return g+n.final("utf8")}catch(t){return e}}formatMessage(e){return"string"==typeof e?e:e instanceof Error?e.stack||e.message:(0,o.inspect)(e,{depth:null,colors:!0})}createFormat(e,t=!1){const r=[s.default.format.timestamp({format:"YYYY-MM-DD HH:mm:ss.SSS"}),s.default.format(e=>(e.message=this.formatMessage(e.message),e.error&&(e.error=this.formatMessage(e.error)),t&&this.params.ENCRYPTION_KEY&&(e.message&&(e.message=this.encrypt(e.message)),e.error&&(e.error=this.encrypt(e.error)),e.meta&&(e.meta=this.encrypt(JSON.stringify(e.meta)))),e))()];return e?r.push(s.default.format.colorize({all:!0}),s.default.format.printf(e=>{const{timestamp:t,level:r,message:s,...a}=e;let i="",l=s;if(this.params.ENCRYPTION_KEY&&(l=this.decrypt(s),a.error&&(a.error=this.decrypt(a.error)),a.meta))try{a.meta=JSON.parse(this.decrypt(a.meta))}catch(n){a.meta=this.decrypt(a.meta)}return Object.keys(a).length>0&&(i=` ${(0,o.inspect)(a,{colors:!0,depth:3})}`),`${t} ${r}: ${l}${i}`})):r.push(s.default.format.json({replacer:(e,t)=>t instanceof Error?{message:t.message?t.message:"",stack:t.stack}:t})),s.default.format.combine(...r)}createTransports(){const e=[new s.default.transports.Console({level:this.params.ENCRYPTION_KEY?"info":"debug",format:this.createFormat(!0),silent:Boolean(this.params.ENCRYPTION_KEY)})],t=Boolean(this.params.ENCRYPTION_KEY),r=t?"/encrypted":"";return e.push(new a.default({level:"error",filename:`${this.logDir}${r}/error-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:!0,maxSize:"20m",maxFiles:"30d",format:this.createFormat(!1,t)}),new a.default({level:"info",filename:`${this.logDir}${r}/combined-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:!0,maxSize:"20m",maxFiles:"14d",format:this.createFormat(!1,t)}),new a.default({level:"sql",filename:`${this.logDir}${r}/sql-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:!0,maxSize:"20m",maxFiles:"7d",format:this.createFormat(!1,t)}),new a.default({level:"debug",filename:`${this.logDir}${r}/debug-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:!0,maxSize:"20m",maxFiles:"7d",format:this.createFormat(!1,t)})),e}createLogger(){return s.default.createLogger({level:this.params.LOG_LEVEL||"info",levels:this.levels,format:this.createFormat(!1),transports:this.createTransports(),exitOnError:!1})}createSqlLogger(){return{log:(e,t,r)=>{this.logger.log("sql",`[${t}ms] ${e}`,r)}}}getLogStream(){return{write:e=>{this.logger.info(e.trim())}}}generateNewEncryptionKey(){return this.generateEncryptionKey()}getLogger(){return this.logger}getSqlLogger(){return this.sqlLogger}getParams(){return{...this.params}}getLogDir(){return this.logDir}error(e){this.logger.error(e)}warn(e){this.logger.warn(e)}info(e){this.logger.info(e)}http(e){this.logger.log("http",e)}debug(e){this.logger.debug(e)}sql(e,t){this.sqlLogger.log(e,t)}};
@@ -0,0 +1,4 @@
1
+ import type { Logger, LoggerConfig } from '@ahana-awesome-platform/shared-types';
2
+ export declare let logger: Logger | null;
3
+ export declare const setLogger: (sqliteDatabaseConfig: LoggerConfig) => Promise<unknown>;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/orm/common/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGjF,eAAO,IAAI,MAAM,EAAE,MAAM,GAAG,IAAW,CAAC;AAExC,eAAO,MAAM,SAAS,yBAA0B,YAAY,qBASxD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { getSqliteDatabase } from './sqlite';
2
+ export * from 'sequelize';
3
+ export { getSqliteDatabase };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSqliteDatabase=void 0;const e=require("tslib"),t=require("./sqlite");Object.defineProperty(exports,"getSqliteDatabase",{enumerable:!0,get:function(){return t.getSqliteDatabase}}),e.__exportStar(require("sequelize"),exports);
@@ -0,0 +1,4 @@
1
+ import type { AhanaSequelize, DatabaseHealthResult, Logger } from '@ahana-awesome-platform/shared-types';
2
+ declare const checkHealth: (customSequelize: AhanaSequelize, storagePath: string, logger: Logger | null) => () => Promise<DatabaseHealthResult>;
3
+ export { checkHealth };
4
+ //# sourceMappingURL=CheckHealth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckHealth.d.ts","sourceRoot":"","sources":["../../../../src/orm/orm/CheckHealth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAIzG,QAAA,MAAM,WAAW,oBACG,cAAc,eAAe,MAAM,UAAU,MAAM,GAAG,IAAI,WAClE,QAAQ,oBAAoB,CA+DrC,CAAC;AAEJ,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AhanaSequelize, GlobalConfig, Logger } from '@ahana-awesome-platform/shared-types';
2
+ import { Transaction } from 'sequelize';
3
+ declare const executeInTransaction: (customSequelize: AhanaSequelize, GLOBAL_CONFIG: GlobalConfig, logger: Logger | null) => <T>(callback: (t: Transaction) => Promise<T>, isolationLevel?: Transaction.ISOLATION_LEVELS) => Promise<T>;
4
+ export { executeInTransaction };
5
+ //# sourceMappingURL=ExecuteInTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecuteInTransaction.d.ts","sourceRoot":"","sources":["../../../../src/orm/orm/ExecuteInTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,QAAA,MAAM,oBAAoB,oBACN,cAAc,iBAAiB,YAAY,UAAU,MAAM,GAAG,IAAI,uBAC5D,WAAW,kCAAkC,YAAY,gBAAgB,eAyBhG,CAAC;AAEJ,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ModelStatic, Model } from 'sequelize';
2
+ import type { AhanaSequelize, Logger } from '@ahana-awesome-platform/shared-types';
3
+ declare const safeAlterTable: (customSequelize: AhanaSequelize, logger: Logger | null) => (model: ModelStatic<Model>, options?: {
4
+ isDropColumns?: boolean;
5
+ ignoreColumns?: string[];
6
+ }) => Promise<void>;
7
+ export { safeAlterTable };
8
+ //# sourceMappingURL=SafeAlterTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAlterTable.d.ts","sourceRoot":"","sources":["../../../../src/orm/orm/SafeAlterTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAkB,KAAK,EAA4C,MAAM,WAAW,CAAC;AAC9G,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,EAAE,MAAM,sCAAsC,CAAC;AA0IxG,QAAA,MAAM,cAAc,oBACA,cAAc,UAAU,MAAM,GAAG,IAAI,aAE9C,YAAY,KAAK,CAAC,YAChB;IACP,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,KACA,QAAQ,IAAI,CA8Ed,CAAC;AAEJ,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AhanaSequelize, GlobalConfig, Logger } from '@ahana-awesome-platform/shared-types';
2
+ declare const testSQLiteConnection: (customSequelize: AhanaSequelize, logger: Logger | null) => () => Promise<void>;
3
+ declare const closeSQLiteConnection: (customSequelize: AhanaSequelize, GLOBAL_CONFIG: GlobalConfig, logger: Logger | null) => () => Promise<void>;
4
+ export { testSQLiteConnection, closeSQLiteConnection };
5
+ //# sourceMappingURL=SqLiteConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqLiteConnection.d.ts","sourceRoot":"","sources":["../../../../src/orm/orm/SqLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAGjG,QAAA,MAAM,oBAAoB,oBAAqB,cAAc,UAAU,MAAM,GAAG,IAAI,WAAe,QAAQ,IAAI,CAQ9G,CAAC;AAGF,QAAA,MAAM,qBAAqB,oBACP,cAAc,iBAAiB,YAAY,UAAU,MAAM,GAAG,IAAI,WAAe,QAAQ,IAAI,CAQ9G,CAAC;AAEJ,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AhanaSequelize, SQLiteConfig, LoggerConfig } from '@ahana-awesome-platform/shared-types';
2
+ declare const getSqliteDatabase: (sqliteDatabaseConfig: {
3
+ config: Partial<SQLiteConfig>;
4
+ logConfig: LoggerConfig;
5
+ isdev: boolean;
6
+ appName: string;
7
+ version: string;
8
+ }) => Promise<AhanaSequelize>;
9
+ export { getSqliteDatabase };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/orm/sqlite/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAEZ,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAgP9C,QAAA,MAAM,iBAAiB,yBAAgC;IACrD,MAAM,EAAE,QAAQ,YAAY,CAAC,CAAC;IAC9B,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,KAAG,QAAQ,cAAc,CAqBzB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './platform/registry';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("tslib").__exportStar(require("./platform/registry"),exports);
@@ -0,0 +1,47 @@
1
+ import type { PlatformType } from '@ahana-awesome-platform/shared-types';
2
+ /**
3
+ * 平台检测器
4
+ */
5
+ /**
6
+ * 平台信息接口
7
+ */
8
+ interface PlatformInfo {
9
+ type: string;
10
+ platform: string;
11
+ arch: string;
12
+ release: string;
13
+ version: string;
14
+ hostname: string;
15
+ cpus: number;
16
+ totalMemory: number;
17
+ freeMemory: number;
18
+ uptime: number;
19
+ }
20
+ export declare class PlatformDetector {
21
+ /**
22
+ * 检测当前平台
23
+ */
24
+ static detect(): PlatformType;
25
+ /**
26
+ * 检测是否为麒麟系统
27
+ */
28
+ private static isKylinOS;
29
+ /**
30
+ * 通过文件检测麒麟系统
31
+ */
32
+ private static checkKylinByFiles;
33
+ /**
34
+ * 通过命令检测麒麟系统
35
+ */
36
+ private static checkKylinByCommand;
37
+ /**
38
+ * 获取平台详细信息
39
+ */
40
+ static getPlatformInfo(): PlatformInfo;
41
+ /**
42
+ * 检查是否支持当前平台
43
+ */
44
+ static isSupported(): boolean;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../../src/platform/platform/detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAKzE;;GAEG;AACH;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,YAAY;IAiB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAkBxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAmBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAsBlC;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,YAAY;IAetC;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAI9B"}
@@ -0,0 +1,47 @@
1
+ import type { PlatformType, RegistryValueResult, RegistryOptions, RegistryValue } from '@ahana-awesome-platform/shared-types';
2
+ import { WINHKLM, KYLINHKEY } from './registry';
3
+ /**
4
+ * 平台工厂
5
+ */
6
+ declare class RegistryDetector {
7
+ /**
8
+ * 读取注册表值
9
+ */
10
+ static getValue(hive: WINHKLM | KYLINHKEY, key: string, valueName: string, options?: RegistryOptions): Promise<RegistryValueResult>;
11
+ /**
12
+ * 设置注册表值
13
+ */
14
+ static setValue(registryOptions: {
15
+ hive: WINHKLM | KYLINHKEY;
16
+ key: string;
17
+ valueName: string;
18
+ value: RegistryValue;
19
+ options: RegistryOptions;
20
+ }): Promise<void>;
21
+ /**
22
+ * 删除注册表值
23
+ */
24
+ static deleteValue(hive: WINHKLM | KYLINHKEY, key: string, valueName: string, options?: RegistryOptions): Promise<void>;
25
+ /**
26
+ * 获取当前平台类型
27
+ */
28
+ static getCurrentPlatform(): PlatformType;
29
+ /**
30
+ * 检查是否是Windows
31
+ */
32
+ static isWindows(): boolean;
33
+ /**
34
+ * 检查是否是麒麟系统
35
+ */
36
+ static isKylin(): boolean;
37
+ /**
38
+ * 检查是否是Linux
39
+ */
40
+ static isLinux(): boolean;
41
+ }
42
+ declare const getRegistryValue: typeof RegistryDetector.getValue;
43
+ declare const setRegistryValue: typeof RegistryDetector.setValue;
44
+ declare const deleteRegistryValue: typeof RegistryDetector.deleteValue;
45
+ export { WINHKLM, KYLINHKEY };
46
+ export { getRegistryValue, setRegistryValue, deleteRegistryValue };
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/platform/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,aAAa,EACd,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGhD;;GAEG;AACH,cAAM,gBAAgB;IACpB;;OAEG;WACU,QAAQ,CACnB,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,EAEX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAgB/B;;OAEG;WACU,QAAQ,CAAC,eAAe,EAAE;QACrC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;QAEZ,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EAAE,eAAe,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjB;;OAEG;WACU,WAAW,CACtB,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAgBhB;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,YAAY;IAIzC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,OAAO;CAI1B;AACD,QAAA,MAAM,gBAAgB,kCAA4B,CAAC;AACnD,QAAA,MAAM,gBAAgB,kCAA4B,CAAC;AACnD,QAAA,MAAM,mBAAmB,qCAA+B,CAAC;AAIzD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { RegistryValueResult, RegistryOptions, RegistryValue, RegistryKeyInfo } from '@ahana-awesome-platform/shared-types';
2
+ import { KYLINHKEY } from './registry';
3
+ export declare class KylinRegistry {
4
+ private static instance;
5
+ private static readonly valueBackupCache;
6
+ private constructor();
7
+ static getInstance(): KylinRegistry;
8
+ private static mapRegistryToConfigPath;
9
+ private static ensureConfigDir;
10
+ private static safeOperation;
11
+ private static delay;
12
+ static getValue(hive: KYLINHKEY, key: string, valueName: string, options?: RegistryOptions): Promise<RegistryValueResult>;
13
+ static setValue(hive: KYLINHKEY, key: string, valueName: string, value: RegistryValue, options?: RegistryOptions): Promise<void>;
14
+ static deleteValue(hive: KYLINHKEY, key: string, valueName: string, options?: RegistryOptions): Promise<void>;
15
+ static createKey(hive: KYLINHKEY, key: string, options?: RegistryOptions): Promise<void>;
16
+ static deleteKey(hive: KYLINHKEY, key: string, options?: RegistryOptions): Promise<void>;
17
+ static listKeys(hive: KYLINHKEY, key: string, options?: RegistryOptions): Promise<string[]>;
18
+ static listValues(hive: KYLINHKEY, key: string, options?: RegistryOptions): Promise<Array<{
19
+ name: string;
20
+ value: RegistryValue;
21
+ }>>;
22
+ static getKeyInfo(hive: KYLINHKEY, key: string, options?: RegistryOptions): Promise<RegistryKeyInfo>;
23
+ static batchSetValues(hive: KYLINHKEY, key: string, values: Record<string, {
24
+ value: RegistryValue;
25
+ }>, options?: RegistryOptions): Promise<void>;
26
+ static keyExists(hive: KYLINHKEY, key: string): Promise<boolean>;
27
+ static valueExists(hive: KYLINHKEY, key: string, valueName: string, options?: RegistryOptions): Promise<boolean>;
28
+ setConfigBaseDir(baseDir: string): void;
29
+ getConfigBaseDir(): string;
30
+ }
31
+ //# sourceMappingURL=kylin-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kylin-registry.d.ts","sourceRoot":"","sources":["../../../../../src/platform/platform/registry/kylin-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAqBvC,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAA0C;IAElF,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,aAAa;IAQnC,OAAO,CAAC,MAAM,CAAC,uBAAuB;mBAKjB,eAAe;mBAIf,aAAa;IAuBlC,OAAO,CAAC,MAAM,CAAC,KAAK;WAKP,QAAQ,CACnB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WA2BlB,QAAQ,CACnB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;WA+BH,WAAW,CACtB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;WAkCH,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;WAYrF,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;WAiBrF,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAoBxF,UAAU,CACrB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;WAoB5C,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;WAqBjG,cAAc,CACzB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,EAChD,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;WA2BH,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAYzD,WAAW,CACtB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC;IASnB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC,gBAAgB,IAAI,MAAM;CAG3B"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * HKEY_LOCAL_MACHINE:系统级配置,全局生效
3
+ Software:软件配置的标准位置
4
+ ahana-electron-app:你的应用专属配置键
5
+ dbName:具体的配置值
6
+ */
7
+ export declare enum WINHKEY {
8
+ /**
9
+ * 本地机器配置 - 整个计算机的全局设置
10
+ * 包含操作系统、硬件、已安装软件的系统级配置
11
+ * 适用于计算机上所有用户,修改通常需要管理员权限
12
+ */
13
+ HKLM = "HKEY_LOCAL_MACHINE",
14
+ /**
15
+ * 当前用户配置 - 当前登录用户的个人设置
16
+ * 包含用户个性化设置、应用程序用户配置等
17
+ * 仅对当前登录用户有效,用户可直接修改
18
+ */
19
+ HKCU = "HKEY_CURRENT_USER",
20
+ /**
21
+ * 类根配置 - 文件类型关联和COM对象注册
22
+ * 包含文件扩展名关联、COM类、接口配置等
23
+ * 实际上是 HKLM\Software\Classes 和 HKCU\Software\Classes 的合并视图
24
+ */
25
+ HKCR = "HKEY_CLASSES_ROOT",
26
+ /**
27
+ * 用户配置 - 计算机上所有用户的配置
28
+ * 包含系统上所有用户的配置文件
29
+ * 每个用户有一个以其SID命名的子键
30
+ */
31
+ HKU = "HKEY_USERS",
32
+ /**
33
+ * 当前配置 - 当前硬件配置文件
34
+ * 包含当前系统启动时加载的硬件配置
35
+ * 通常是 HKLM\System\CurrentControlSet\Hardware Profiles\Current 的镜像
36
+ */
37
+ HKCC = "HKEY_CURRENT_CONFIG"
38
+ }
39
+ /**
40
+ * Windows 注册表一级子键(按配置单元分类)
41
+ */
42
+ export declare enum WINHKLM {
43
+ SOFTWARE = "HKEY_LOCAL_MACHINE:Software",
44
+ SYSTEM = "HKEY_LOCAL_MACHINE:System",
45
+ HARDWARE = "HKEY_LOCAL_MACHINE:Hardware",
46
+ SECURITY = "HKEY_LOCAL_MACHINE:Security",
47
+ SAM = "HKEY_LOCAL_MACHINE:SAM",
48
+ COMPONENTS = "HKEY_LOCAL_MACHINE:Components",
49
+ DRIVERS = "HKEY_LOCAL_MACHINE:Drivers",
50
+ ENUM = "HKEY_LOCAL_MACHINE:Enum",
51
+ BCD = "HKEY_LOCAL_MACHINE:BCD"
52
+ }
53
+ export declare enum WINHKCU {
54
+ SOFTWARE = "HKEY_CURRENT_USER:Software",
55
+ CONTROL_PANEL = "HKEY_CURRENT_USER:Control Panel",
56
+ ENVIRONMENT = "HKEY_CURRENT_USER:Environment",
57
+ CONSOLE = "HKEY_CURRENT_USER:Console",
58
+ NETWORK = "HKEY_CURRENT_USER:Network",
59
+ PRINTERS = "HKEY_CURRENT_USER:Printers",
60
+ SESSION_INFO = "HKEY_CURRENT_USER:SessionInformation"
61
+ }
62
+ export declare enum WINHKCR {
63
+ CLSID = "HKEY_CURRENT_USER:CLSID",
64
+ INTERFACE = "HKEY_CURRENT_USER:Interface",
65
+ TYPELIB = "HKEY_CURRENT_USER:TypeLib",
66
+ APPID = "HKEY_CURRENT_USER:AppID",
67
+ COMPONENT_CATEGORIES = "HKEY_CURRENT_USER:Component Categories",
68
+ PROTOCOLS = "HKEY_CURRENT_USER:Protocols"
69
+ }
70
+ export declare enum WINHKU {
71
+ DEFAULT = "HKEY_USERS:.DEFAULT"
72
+ }
73
+ export declare enum WINHKCC {
74
+ SOFTWARE = "HKEY_CURRENT_CONFIG:Software",
75
+ SYSTEM = "HKEY_CURRENT_CONFIG:System"
76
+ }
77
+ export declare enum KYLINHKEY {
78
+ ETC_APP = "/etc/applications",
79
+ USR_SHARE_APP = "/usr/share/applications",
80
+ CONFIG_APPS = "~/.config/applications",
81
+ ICONS = "/usr/share/icons",
82
+ THEMES = "/usr/share/themes",
83
+ FONTS = "/usr/share/fonts",
84
+ DOC = "/usr/share/doc",
85
+ MAN = "/usr/share/man",
86
+ LOCALE = "/usr/share/locale"
87
+ }
88
+ export declare const normalizeRegistryPathAdvanced: (path: string) => string;
89
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/platform/platform/registry/registry.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AACF,oBAAY,OAAO;IACjB;;;;OAIG;IACH,IAAI,uBAAuB;IAE3B;;;;OAIG;IACH,IAAI,sBAAsB;IAE1B;;;;OAIG;IACH,IAAI,sBAAsB;IAE1B;;;;OAIG;IACH,GAAG,eAAe;IAElB;;;;OAIG;IACH,IAAI,wBAAwB;CAC7B;AAED;;GAEG;AAEH,oBAAY,OAAO;IACjB,QAAQ,gCAAgC;IACxC,MAAM,8BAA8B;IACpC,QAAQ,gCAAgC;IACxC,QAAQ,gCAAgC;IACxC,GAAG,2BAA2B;IAC9B,UAAU,kCAAkC;IAC5C,OAAO,+BAA+B;IACtC,IAAI,4BAA4B;IAChC,GAAG,2BAA2B;CAC/B;AAGD,oBAAY,OAAO;IACjB,QAAQ,+BAA+B;IACvC,aAAa,oCAAoC;IACjD,WAAW,kCAAkC;IAC7C,OAAO,8BAA8B;IACrC,OAAO,8BAA8B;IACrC,QAAQ,+BAA+B;IACvC,YAAY,yCAAyC;CACtD;AAGD,oBAAY,OAAO;IACjB,KAAK,4BAA4B;IACjC,SAAS,gCAAgC;IACzC,OAAO,8BAA8B;IACrC,KAAK,4BAA4B;IACjC,oBAAoB,2CAA2C;IAC/D,SAAS,gCAAgC;CAC1C;AAGD,oBAAY,MAAM;IAChB,OAAO,wBAAwB;CAChC;AAGD,oBAAY,OAAO;IACjB,QAAQ,iCAAiC;IACzC,MAAM,+BAA+B;CACtC;AAED,oBAAY,SAAS;IAEnB,OAAO,sBAAsB;IAG7B,aAAa,4BAA4B;IAGzC,WAAW,2BAA2B;IAMtC,KAAK,qBAAqB;IAG1B,MAAM,sBAAsB;IAG5B,KAAK,qBAAqB;IAG1B,GAAG,mBAAmB;IAGtB,GAAG,mBAAmB;IAGtB,MAAM,sBAAsB;CAC7B;AAED,eAAO,MAAM,6BAA6B,SAAU,MAAM,KAAG,MASjC,CAAC"}