@lynker-desktop/electron-sdk 0.0.9-alpha.74 → 0.0.9-alpha.76

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.
@@ -3,9 +3,10 @@ import * as ipc from '@lynker-desktop/electron-ipc/main';
3
3
  import * as windowManager from '@lynker-desktop/electron-window-manager/main';
4
4
  import type { PreloadWebContentsConfig } from '@lynker-desktop/electron-window-manager/common';
5
5
  import { type ServeOptions, type VideoDownloadOptions, type VideoProgressCallback, type VideoDownloadResult } from '../common';
6
+ import { getAppStore } from './store';
6
7
  import { ResourceCache, type ResourceCacheOptions } from './resource-cache';
7
8
  import type ElectronStore from 'electron-store';
8
- export { ResourceCache, type ResourceCacheOptions };
9
+ export { ResourceCache, type ResourceCacheOptions, getAppStore };
9
10
  export declare let isInitialized: boolean;
10
11
  export interface SDK_TYPE {
11
12
  ipc: typeof ipc.mainIPC;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,OAAO,KAAK,GAAG,MAAM,mCAAmC,CAAA;AAExD,OAAO,KAAK,aAAa,MAAM,8CAA8C,CAAA;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAA;AAC9F,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAqB,MAAM,WAAW,CAAC;AAIvK,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,CAAC;AAMpD,eAAO,IAAI,aAAa,SAAQ,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;IAC5C,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClH,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACrJ,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CAC7C;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,YAAa;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,QA4FxU,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,MAAM,QAAO,QAOzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAGT,MAAM,SAoDtB,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,KAAK,YAAa,YAAY,qBAsF1C,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,MAAM,gBAAiB,WAAW,SAA+B,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAwB,GAAG,MAAM,CAiBnE;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAnWwB,SAC7C,OAkWsD,CAAC;AAE/D;;;GAGG;;AACH,wBAeG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,OAAO,KAAK,GAAG,MAAM,mCAAmC,CAAA;AAExD,OAAO,KAAK,aAAa,MAAM,8CAA8C,CAAA;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAA;AAC9F,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAqB,MAAM,WAAW,CAAC;AACvK,OAAO,EAAmB,WAAW,EAAgB,MAAM,SAAS,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,WAAW,EAAE,CAAC;AAMjE,eAAO,IAAI,aAAa,SAAQ,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;IAC5C,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClH,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACrJ,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CAC7C;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,YAAa;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,QA4FxU,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,MAAM,QAAO,QAOzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAGT,MAAM,SAoDtB,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,KAAK,YAAa,YAAY,qBAsF1C,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,MAAM,gBAAiB,WAAW,SAA+B,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAwB,GAAG,MAAM,CAiBnE;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAnWwB,SAC7C,OAkWsD,CAAC;AAE/D;;;GAGG;;AACH,wBAeG"}
package/esm/main/index.js CHANGED
@@ -340,5 +340,5 @@ const index = new Proxy({}, {
340
340
  }
341
341
  });
342
342
 
343
- export { ResourceCache, index as default, enable, getCustomSession, getRandomUUID, getSDK, initialize, isInitialized, registerProtocol, serve };
343
+ export { ResourceCache, index as default, enable, getAppStore, getCustomSession, getRandomUUID, getSDK, initialize, isInitialized, registerProtocol, serve };
344
344
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/main/index.ts"],"sourcesContent":["import type { WebContents } from 'electron'\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport {promisify} from 'node:util';\nimport electron, { app, webContents } from 'electron';\nimport md5 from 'md5';\nimport { v5 as uuidv5 } from 'uuid';\nimport lodash from 'lodash';\nimport * as remote from '@electron/remote/main'\nimport * as ipc from '@lynker-desktop/electron-ipc/main'\nimport * as logs from '@lynker-desktop/electron-logs/main'\nimport * as windowManager from '@lynker-desktop/electron-window-manager/main'\nimport type { PreloadWebContentsConfig } from '@lynker-desktop/electron-window-manager/common'\nimport { IPC_GET_APP_METRICS, type ServeOptions, type VideoDownloadOptions, type VideoProgressCallback, type VideoDownloadResult, type CacheOptions } from '../common';\nimport { initializeStore, getAppStore, appStoreInit } from './store';\nimport { initializeClipboard } from './clipboard';\nimport { initializeShortcut } from './shortcut';\nimport { ResourceCache, type ResourceCacheOptions } from './resource-cache';\nimport { downloadVideo, clearVideoCache, getVideoCacheStats, removeVideoCache, getFileUrl, setFFmpegPath } from './video-downloader';\nimport { DownloadOptions, getDownloader } from './downloader';\nimport type ElectronStore from 'electron-store';\n\n// 重新导出 ResourceCache 相关类型和类,以便外部使用\nexport { ResourceCache, type ResourceCacheOptions };\n\nif (!remote.isInitialized()) {\n remote.initialize();\n}\n\nexport let isInitialized = false;\n\nexport interface SDK_TYPE {\n ipc: typeof ipc.mainIPC;\n windowManager: windowManager.WindowsManager,\n getPreload: () => string;\n downloadVideo: (options: VideoDownloadOptions, callbacks?: VideoProgressCallback) => Promise<VideoDownloadResult>;\n clearVideoCache: (outputDir: string) => void;\n getVideoCacheStats: (outputDir: string) => { size: number; entries: Array<{ fileName: string; filePath: string; fileSize: number; mtime: number }> };\n removeVideoCache: (options: VideoDownloadOptions) => boolean;\n getAppStore: (name: string) => ElectronStore;\n appStoreInit: (stores: string[]) => boolean;\n}\n\n\nfunction findWebContentsByPid(pid: number): {id: number, url: string} | undefined {\n const all = webContents.getAllWebContents();\n\n const wc = all.find((wc) => {\n try {\n return wc.getOSProcessId() === pid;\n } catch (e) {\n return false;\n }\n });\n // @ts-ignore\n return wc ? {id: wc.id, url: wc.getURL()} : undefined;\n}\n\n\n/**\n * 初始化\n * @param protocol 唤起协议 例:dgz\n * @param preload 预加载js 必须传\n * @param loadingViewUrl 窗口管理默认loading页面\n * @returns\n */\nexport const initialize = (options: { protocol: string, preload: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[], serveOptions?: ServeOptions, resourceCacheOptions?: ResourceCacheOptions, ffmpegPath?: string, appStores?: string[] }): SDK_TYPE => {\n let {protocol, preload, loadingViewUrl, serveOptions = [], errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList, resourceCacheOptions} = options;\n if (isInitialized) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n isInitialized = true;\n ipc.initialize();\n logs.initialize();\n initializeStore();\n initializeClipboard();\n initializeShortcut();\n if (options.appStores && options.appStores.length) {\n appStoreInit(options.appStores as string[]);\n }\n if (options.ffmpegPath) {\n setFFmpegPath(options.ffmpegPath);\n }\n const wm = windowManager.initialize(preload, loadingViewUrl, errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList || []);\n if (protocol) {\n registerProtocol(protocol);\n }\n if (!serveOptions) {\n serveOptions = []\n }\n if (resourceCacheOptions) {\n if (resourceCacheOptions.cacheDir) {\n serveOptions.push({\n scheme: ResourceCache.scheme,\n directory: resourceCacheOptions.cacheDir,\n })\n }\n }\n if (serveOptions && serveOptions.length) {\n serve(serveOptions);\n }\n if (resourceCacheOptions) {\n app.on('ready', () => {\n new ResourceCache(electron.session.defaultSession, resourceCacheOptions);\n });\n }\n class SDK {\n static ipc = ipc.mainIPC;\n static windowManager = wm;\n static getPreload = () => preload;\n static downloader = getDownloader();\n static downloadVideo = downloadVideo;\n static clearVideoCache = clearVideoCache;\n static getVideoCacheStats = getVideoCacheStats;\n static removeVideoCache = removeVideoCache;\n static getAppStore = getAppStore;\n static appStoreInit = appStoreInit;\n }\n ipc.mainIPC.handleRenderer(IPC_GET_APP_METRICS, async () => {\n const metrics = app.getAppMetrics().map(i => {\n const webContents = findWebContentsByPid(i.pid || 0);\n console.log('webContents', webContents);\n return {\n ...i,\n webContents: webContents?.id || undefined,\n url: webContents?.url,\n }\n })\n return JSON.stringify(metrics);\n })\n ipc.mainIPC.handleRenderer(`__sdk_transcode_video__`, async (options:VideoDownloadOptions) => {\n const md5Options = md5(JSON.stringify(options.url));\n downloadVideo(options, {\n onDownloadProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'downloadProgress',\n data: progress\n });\n },\n onTranscodeProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'transcodeProgress',\n data: progress\n });\n },\n onComplete: (result) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'complete',\n data: result\n });\n },\n });\n return true;\n })\n // @ts-ignore\n global['__GLBOAL_ELECTRON_SDK__'] = SDK;\n return SDK;\n}\n\n/** 后续再优化 */\nexport const getSDK = (): SDK_TYPE => {\n // @ts-ignore\n if (!global['__GLBOAL_ELECTRON_SDK__']) {\n throw '请在ready前先调用initialize'\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n}\n\n/**\n * 注册唤起\n */\nexport const registerProtocol = (() => {\n let isRegister = false;\n let launchOptions = ``;\n return (protocol: string) => {\n if (isRegister) {\n return;\n }\n isRegister = true;\n if (process.defaultApp) {\n if (process.argv.length >= 2) {\n app.setAsDefaultProtocolClient(protocol, process.execPath, [path.resolve(lodash.get(process, `argv[1]`, ''))]);\n }\n } else {\n app.setAsDefaultProtocolClient(protocol);\n }\n const handleUrl = (url: string) => {\n launchOptions = `${url ?? ''}`;\n ipc.mainIPC.invokeAllRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', url)\n };\n\n function handleArgv(argv: string[]) {\n const prefix = `${protocol}:`;\n const offset = app?.isPackaged ? 1 : 2;\n const url = argv.find((arg, i) => i >= offset && arg.startsWith(prefix));\n if (url) handleUrl(url);\n }\n\n handleArgv(process.argv);\n\n app.on('second-instance', (event, argv) => {\n console.info(event)\n if (process.platform === 'win32') {\n // Windows\n handleArgv(argv);\n }\n });\n\n // macOS\n app.on('open-url', (event, urlStr) => {\n console.info(event)\n handleUrl(urlStr);\n });\n\n\n app.on(\"open-url\", (_event, url) => {\n handleUrl(url);\n });\n ipc.mainIPC.handleRenderer('__GLOBAL_GET_LAUNCH_OPTIONS__', async () => {\n return launchOptions;\n })\n ipc.mainIPC.handleRenderer('__GLOBAL_DEL_LAUNCH_OPTIONS__', async () => {\n launchOptions = ``;\n return launchOptions;\n })\n }\n})();\n\n/**\n * 注册协议\n * @param options\n * @returns\n */\nexport const serve = (options: ServeOptions) => {\n if (!options.length) {\n\t\tthrow new Error('请传入配置');\n\t}\n const stat = promisify(fs.stat);\n\n // See https://cs.chromium.org/chromium/src/net/base/net_error_list.h\n const FILE_NOT_FOUND = -6;\n\n const getPath: any = async (path_: string) => {\n try {\n const result = await stat(path_);\n\n if (result.isFile()) {\n return path_;\n }\n\n if (result.isDirectory()) {\n return getPath(path.join(path_, 'index.html'));\n }\n } catch (_) {}\n };\n\n const createHandler = (item: any) => {\n return async (request: any, callback: any) => {\n const indexPath = path.join(item.directory, 'index.html');\n const filePath = path.join(item.directory, decodeURIComponent(new URL(request.url).pathname));\n const resolvedPath = await getPath(filePath);\n const targetPath = resolvedPath || indexPath;\n const ext = path.extname(targetPath).toLowerCase();\n\n if (resolvedPath || !ext || ext === '.html' || ext === '.asar') {\n callback({\n path: resolvedPath || indexPath\n });\n } else {\n callback({error: FILE_NOT_FOUND});\n }\n }\n };\n\n\toptions = options.map((item) => {\n\t\treturn {\n\t\t\t...item,\n\t\t\tisCorsEnabled: !!item?.isCorsEnabled,\n\t\t\tscheme: item?.scheme || 'app',\n\t\t\tdirectory: path.resolve(electron.app.getAppPath(), item.directory),\n\t\t}\n\t})\n // 注册自定义协议的权限配置\n // 说明:\n // bypassCSP: 是否绕过内容安全策略(CSP),允许加载本地资源时不受 CSP 限制\n // standard: 使协议表现得像标准协议(如 http/https),支持标准 API\n // secure: 标记为安全协议,允许安全相关的操作\n // allowServiceWorkers: 允许该协议下注册 Service Worker\n // supportFetchAPI: 允许 fetch/XHR 等 API 访问该协议资源\n // corsEnabled: 是否启用跨域资源共享(CORS)\n // stream: 支持流式传输\n\telectron.protocol.registerSchemesAsPrivileged(options.map((item) => {\n\t\treturn {\n\t\t\tscheme: item.scheme,\n\t\t\tprivileges: {\n bypassCSP: true,\n\t\t\t\tstandard: true,\n\t\t\t\tsecure: true,\n\t\t\t\tallowServiceWorkers: true,\n\t\t\t\tsupportFetchAPI: true,\n\t\t\t\tcorsEnabled: item.isCorsEnabled ?? false,\n stream: true,\n\t\t\t}\n\t\t}\n\t}));\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\telectron.app.on('ready', () => {\n\t\t\t\toptions.forEach((item) => {\n\t\t\t\t\tconst handler = createHandler(item);\n\t\t\t\t\tconst session = item.partition ? electron.session.fromPartition(item.partition) : electron.session.defaultSession;\n\t\t\t\t\tsession.protocol.registerFileProtocol(item.scheme, handler);\n\t\t\t\t})\n\t\t\t\tresolve(true)\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\n\n/**\n * @electron/remote/main enable方法\n * @param webContents\n * @returns\n */\nexport const enable = (webContents: WebContents) => remote.enable(webContents);\n\n/**\n * 获取随机UUID\n * @param key\n * @returns\n */\nexport function getRandomUUID(key: string = `${Date.now()}`): string {\n let webcrypto!: Crypto;\n let randomValue = Math?.random()?.toString()?.replace('0.', '');\n try {\n if (!webcrypto && !!window && window?.crypto) {\n webcrypto = window.crypto;\n }\n } catch (error) {console.log}\n try {\n const ar = webcrypto.getRandomValues(new Uint8Array(12));\n randomValue = `${md5(ar)}` || randomValue;\n } catch (error) {}\n const uuid = uuidv5(\n `${JSON.stringify(key)}_${Date.now()}_${randomValue}`,\n uuidv5.URL,\n );\n return uuid;\n}\n\n\n/**\n * 获取定制Session\n */\nexport const getCustomSession = windowManager.getCustomSession;\n\n/**\n * 获取SDK实例\n * @returns\n */\nexport default new Proxy({} as SDK_TYPE, {\n get(_target, prop) {\n if (!isInitialized) {\n throw new Error('请在ready前先调用initialize');\n }\n if (!prop) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'][prop];\n },\n set() {\n return false;\n }\n});\n"],"names":["uuidv5"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/main/index.ts"],"sourcesContent":["import type { WebContents } from 'electron'\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport {promisify} from 'node:util';\nimport electron, { app, webContents } from 'electron';\nimport md5 from 'md5';\nimport { v5 as uuidv5 } from 'uuid';\nimport lodash from 'lodash';\nimport * as remote from '@electron/remote/main'\nimport * as ipc from '@lynker-desktop/electron-ipc/main'\nimport * as logs from '@lynker-desktop/electron-logs/main'\nimport * as windowManager from '@lynker-desktop/electron-window-manager/main'\nimport type { PreloadWebContentsConfig } from '@lynker-desktop/electron-window-manager/common'\nimport { IPC_GET_APP_METRICS, type ServeOptions, type VideoDownloadOptions, type VideoProgressCallback, type VideoDownloadResult, type CacheOptions } from '../common';\nimport { initializeStore, getAppStore, appStoreInit } from './store';\nimport { initializeClipboard } from './clipboard';\nimport { initializeShortcut } from './shortcut';\nimport { ResourceCache, type ResourceCacheOptions } from './resource-cache';\nimport { downloadVideo, clearVideoCache, getVideoCacheStats, removeVideoCache, getFileUrl, setFFmpegPath } from './video-downloader';\nimport { DownloadOptions, getDownloader } from './downloader';\nimport type ElectronStore from 'electron-store';\n\n// 重新导出 ResourceCache 相关类型和类,以便外部使用\nexport { ResourceCache, type ResourceCacheOptions, getAppStore };\n\nif (!remote.isInitialized()) {\n remote.initialize();\n}\n\nexport let isInitialized = false;\n\nexport interface SDK_TYPE {\n ipc: typeof ipc.mainIPC;\n windowManager: windowManager.WindowsManager,\n getPreload: () => string;\n downloadVideo: (options: VideoDownloadOptions, callbacks?: VideoProgressCallback) => Promise<VideoDownloadResult>;\n clearVideoCache: (outputDir: string) => void;\n getVideoCacheStats: (outputDir: string) => { size: number; entries: Array<{ fileName: string; filePath: string; fileSize: number; mtime: number }> };\n removeVideoCache: (options: VideoDownloadOptions) => boolean;\n getAppStore: (name: string) => ElectronStore;\n appStoreInit: (stores: string[]) => boolean;\n}\n\n\nfunction findWebContentsByPid(pid: number): {id: number, url: string} | undefined {\n const all = webContents.getAllWebContents();\n\n const wc = all.find((wc) => {\n try {\n return wc.getOSProcessId() === pid;\n } catch (e) {\n return false;\n }\n });\n // @ts-ignore\n return wc ? {id: wc.id, url: wc.getURL()} : undefined;\n}\n\n\n/**\n * 初始化\n * @param protocol 唤起协议 例:dgz\n * @param preload 预加载js 必须传\n * @param loadingViewUrl 窗口管理默认loading页面\n * @returns\n */\nexport const initialize = (options: { protocol: string, preload: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[], serveOptions?: ServeOptions, resourceCacheOptions?: ResourceCacheOptions, ffmpegPath?: string, appStores?: string[] }): SDK_TYPE => {\n let {protocol, preload, loadingViewUrl, serveOptions = [], errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList, resourceCacheOptions} = options;\n if (isInitialized) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n isInitialized = true;\n ipc.initialize();\n logs.initialize();\n initializeStore();\n initializeClipboard();\n initializeShortcut();\n if (options.appStores && options.appStores.length) {\n appStoreInit(options.appStores as string[]);\n }\n if (options.ffmpegPath) {\n setFFmpegPath(options.ffmpegPath);\n }\n const wm = windowManager.initialize(preload, loadingViewUrl, errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList || []);\n if (protocol) {\n registerProtocol(protocol);\n }\n if (!serveOptions) {\n serveOptions = []\n }\n if (resourceCacheOptions) {\n if (resourceCacheOptions.cacheDir) {\n serveOptions.push({\n scheme: ResourceCache.scheme,\n directory: resourceCacheOptions.cacheDir,\n })\n }\n }\n if (serveOptions && serveOptions.length) {\n serve(serveOptions);\n }\n if (resourceCacheOptions) {\n app.on('ready', () => {\n new ResourceCache(electron.session.defaultSession, resourceCacheOptions);\n });\n }\n class SDK {\n static ipc = ipc.mainIPC;\n static windowManager = wm;\n static getPreload = () => preload;\n static downloader = getDownloader();\n static downloadVideo = downloadVideo;\n static clearVideoCache = clearVideoCache;\n static getVideoCacheStats = getVideoCacheStats;\n static removeVideoCache = removeVideoCache;\n static getAppStore = getAppStore;\n static appStoreInit = appStoreInit;\n }\n ipc.mainIPC.handleRenderer(IPC_GET_APP_METRICS, async () => {\n const metrics = app.getAppMetrics().map(i => {\n const webContents = findWebContentsByPid(i.pid || 0);\n console.log('webContents', webContents);\n return {\n ...i,\n webContents: webContents?.id || undefined,\n url: webContents?.url,\n }\n })\n return JSON.stringify(metrics);\n })\n ipc.mainIPC.handleRenderer(`__sdk_transcode_video__`, async (options:VideoDownloadOptions) => {\n const md5Options = md5(JSON.stringify(options.url));\n downloadVideo(options, {\n onDownloadProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'downloadProgress',\n data: progress\n });\n },\n onTranscodeProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'transcodeProgress',\n data: progress\n });\n },\n onComplete: (result) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'complete',\n data: result\n });\n },\n });\n return true;\n })\n // @ts-ignore\n global['__GLBOAL_ELECTRON_SDK__'] = SDK;\n return SDK;\n}\n\n/** 后续再优化 */\nexport const getSDK = (): SDK_TYPE => {\n // @ts-ignore\n if (!global['__GLBOAL_ELECTRON_SDK__']) {\n throw '请在ready前先调用initialize'\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n}\n\n/**\n * 注册唤起\n */\nexport const registerProtocol = (() => {\n let isRegister = false;\n let launchOptions = ``;\n return (protocol: string) => {\n if (isRegister) {\n return;\n }\n isRegister = true;\n if (process.defaultApp) {\n if (process.argv.length >= 2) {\n app.setAsDefaultProtocolClient(protocol, process.execPath, [path.resolve(lodash.get(process, `argv[1]`, ''))]);\n }\n } else {\n app.setAsDefaultProtocolClient(protocol);\n }\n const handleUrl = (url: string) => {\n launchOptions = `${url ?? ''}`;\n ipc.mainIPC.invokeAllRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', url)\n };\n\n function handleArgv(argv: string[]) {\n const prefix = `${protocol}:`;\n const offset = app?.isPackaged ? 1 : 2;\n const url = argv.find((arg, i) => i >= offset && arg.startsWith(prefix));\n if (url) handleUrl(url);\n }\n\n handleArgv(process.argv);\n\n app.on('second-instance', (event, argv) => {\n console.info(event)\n if (process.platform === 'win32') {\n // Windows\n handleArgv(argv);\n }\n });\n\n // macOS\n app.on('open-url', (event, urlStr) => {\n console.info(event)\n handleUrl(urlStr);\n });\n\n\n app.on(\"open-url\", (_event, url) => {\n handleUrl(url);\n });\n ipc.mainIPC.handleRenderer('__GLOBAL_GET_LAUNCH_OPTIONS__', async () => {\n return launchOptions;\n })\n ipc.mainIPC.handleRenderer('__GLOBAL_DEL_LAUNCH_OPTIONS__', async () => {\n launchOptions = ``;\n return launchOptions;\n })\n }\n})();\n\n/**\n * 注册协议\n * @param options\n * @returns\n */\nexport const serve = (options: ServeOptions) => {\n if (!options.length) {\n\t\tthrow new Error('请传入配置');\n\t}\n const stat = promisify(fs.stat);\n\n // See https://cs.chromium.org/chromium/src/net/base/net_error_list.h\n const FILE_NOT_FOUND = -6;\n\n const getPath: any = async (path_: string) => {\n try {\n const result = await stat(path_);\n\n if (result.isFile()) {\n return path_;\n }\n\n if (result.isDirectory()) {\n return getPath(path.join(path_, 'index.html'));\n }\n } catch (_) {}\n };\n\n const createHandler = (item: any) => {\n return async (request: any, callback: any) => {\n const indexPath = path.join(item.directory, 'index.html');\n const filePath = path.join(item.directory, decodeURIComponent(new URL(request.url).pathname));\n const resolvedPath = await getPath(filePath);\n const targetPath = resolvedPath || indexPath;\n const ext = path.extname(targetPath).toLowerCase();\n\n if (resolvedPath || !ext || ext === '.html' || ext === '.asar') {\n callback({\n path: resolvedPath || indexPath\n });\n } else {\n callback({error: FILE_NOT_FOUND});\n }\n }\n };\n\n\toptions = options.map((item) => {\n\t\treturn {\n\t\t\t...item,\n\t\t\tisCorsEnabled: !!item?.isCorsEnabled,\n\t\t\tscheme: item?.scheme || 'app',\n\t\t\tdirectory: path.resolve(electron.app.getAppPath(), item.directory),\n\t\t}\n\t})\n // 注册自定义协议的权限配置\n // 说明:\n // bypassCSP: 是否绕过内容安全策略(CSP),允许加载本地资源时不受 CSP 限制\n // standard: 使协议表现得像标准协议(如 http/https),支持标准 API\n // secure: 标记为安全协议,允许安全相关的操作\n // allowServiceWorkers: 允许该协议下注册 Service Worker\n // supportFetchAPI: 允许 fetch/XHR 等 API 访问该协议资源\n // corsEnabled: 是否启用跨域资源共享(CORS)\n // stream: 支持流式传输\n\telectron.protocol.registerSchemesAsPrivileged(options.map((item) => {\n\t\treturn {\n\t\t\tscheme: item.scheme,\n\t\t\tprivileges: {\n bypassCSP: true,\n\t\t\t\tstandard: true,\n\t\t\t\tsecure: true,\n\t\t\t\tallowServiceWorkers: true,\n\t\t\t\tsupportFetchAPI: true,\n\t\t\t\tcorsEnabled: item.isCorsEnabled ?? false,\n stream: true,\n\t\t\t}\n\t\t}\n\t}));\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\telectron.app.on('ready', () => {\n\t\t\t\toptions.forEach((item) => {\n\t\t\t\t\tconst handler = createHandler(item);\n\t\t\t\t\tconst session = item.partition ? electron.session.fromPartition(item.partition) : electron.session.defaultSession;\n\t\t\t\t\tsession.protocol.registerFileProtocol(item.scheme, handler);\n\t\t\t\t})\n\t\t\t\tresolve(true)\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\n\n/**\n * @electron/remote/main enable方法\n * @param webContents\n * @returns\n */\nexport const enable = (webContents: WebContents) => remote.enable(webContents);\n\n/**\n * 获取随机UUID\n * @param key\n * @returns\n */\nexport function getRandomUUID(key: string = `${Date.now()}`): string {\n let webcrypto!: Crypto;\n let randomValue = Math?.random()?.toString()?.replace('0.', '');\n try {\n if (!webcrypto && !!window && window?.crypto) {\n webcrypto = window.crypto;\n }\n } catch (error) {console.log}\n try {\n const ar = webcrypto.getRandomValues(new Uint8Array(12));\n randomValue = `${md5(ar)}` || randomValue;\n } catch (error) {}\n const uuid = uuidv5(\n `${JSON.stringify(key)}_${Date.now()}_${randomValue}`,\n uuidv5.URL,\n );\n return uuid;\n}\n\n\n/**\n * 获取定制Session\n */\nexport const getCustomSession = windowManager.getCustomSession;\n\n/**\n * 获取SDK实例\n * @returns\n */\nexport default new Proxy({} as SDK_TYPE, {\n get(_target, prop) {\n if (!isInitialized) {\n throw new Error('请在ready前先调用initialize');\n }\n if (!prop) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'][prop];\n },\n set() {\n return false;\n }\n});\n"],"names":["uuidv5"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/main/store.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAa,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,MAAM,eAAe,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAAC;AA2BnD,eAAO,MAAM,eAAe,YAsB3B,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,QAEvC,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,EAAE,YAa5C,CAAA"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/main/store.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAa,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,MAAM,eAAe,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAAC;AAkCnD,eAAO,MAAM,eAAe,YAsB3B,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,QAEvC,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,EAAE,YAa5C,CAAA"}
package/esm/main/store.js CHANGED
@@ -12,6 +12,13 @@ function ensureStore(name) {
12
12
  name,
13
13
  accessPropertiesByDotNotation: true,
14
14
  }));
15
+ /**
16
+ * 临时存储,每次启动时清空
17
+ */
18
+ if (name.startsWith('__temp__')) {
19
+ _appStore.get(name).clear();
20
+ console.log('clear temp store', name);
21
+ }
15
22
  _appStore.get(name).onDidAnyChange((newValue, oldValue) => {
16
23
  try {
17
24
  ipc__default.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../../src/main/store.ts"],"sourcesContent":["import ElectronStore from 'electron-store';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\nexport const _appStore: Map<string, any> = new Map();\n\nexport interface EStoreQuery {\n name?: string;\n method: 'get' | 'set' | 'delete' | 'clear' | 'has' | 'store';\n key?: string;\n value?: any;\n};\n\nexport type AppStoreOptions = {[key: string]: any};\n\n/**\n * 确保 store 存在并已初始化,如果不存在则创建\n */\nfunction ensureStore(name: string) {\n if (!_appStore.has(name) || typeof _appStore.get(name)?.set !== 'function') {\n const Store = ElectronStore;\n _appStore.set(name, new Store({\n name,\n accessPropertiesByDotNotation: true,\n }));\n _appStore.get(name).onDidAnyChange((newValue: any, oldValue: any) => {\n try {\n ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {\n name,\n newValue: newValue ? JSON.stringify(newValue) : undefined,\n oldValue: oldValue ? JSON.stringify(oldValue) : undefined,\n });\n } catch (error) {\n console.error('core:estore:didAnyChange', error);\n }\n });\n }\n return _appStore.get(name);\n}\n\nexport const initializeStore = () => {\n ipc.mainIPC.handleRenderer('core:estore', async (options: EStoreQuery) => {\n const { name = 'appStore', method, key, value } = options;\n const appStore = ensureStore(name);\n\n if (method === 'get') {\n return appStore.get(key);\n } else if (method === 'set') {\n appStore.set(key, value);\n return true;\n } else if (method === 'delete') {\n appStore.delete(key);\n return true;\n } else if (method === 'clear') {\n appStore.clear();\n return true;\n } else if (method === 'has') {\n return appStore.has(key);\n } else if (method === 'store') {\n return appStore.store;\n }\n })\n}\n\nexport const getAppStore = (name: string) => {\n return ensureStore(name);\n}\n\nexport const appStoreInit = (stores: string[]) => {\n if (stores.length) {\n stores.forEach((storeName: string) => {\n try {\n if (typeof storeName === 'string') {\n ensureStore(storeName);\n }\n } catch (error) {\n console.error('appStoreInit', error);\n }\n });\n }\n return true;\n}\n"],"names":["ipc"],"mappings":";;;AAGa,MAAA,SAAS,GAAqB,IAAI,GAAG,GAAG;AAWrD;;AAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAA;IAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,UAAU,EAAE;QAC1E,MAAM,KAAK,GAAG,aAAa,CAAC;AAC5B,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;YAC5B,IAAI;AACJ,YAAA,6BAA6B,EAAE,IAAI;AACpC,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAa,EAAE,QAAa,KAAI;AAClE,YAAA,IAAI;AACF,gBAAAA,YAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,0BAA0B,EAAE;oBACxD,IAAI;AACJ,oBAAA,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS;AACzD,oBAAA,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS;AAC1D,iBAAA,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;aAClD;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAEM,MAAM,eAAe,GAAG,MAAK;IAClCA,YAAG,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,OAAoB,KAAI;AACvE,QAAA,MAAM,EAAE,IAAI,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAEnC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC9B,YAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC;SACvB;AACH,KAAC,CAAC,CAAA;AACJ,EAAC;AAEY,MAAA,WAAW,GAAG,CAAC,IAAY,KAAI;AAC1C,IAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAC;AAEY,MAAA,YAAY,GAAG,CAAC,MAAgB,KAAI;AAC/C,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;AACnC,YAAA,IAAI;AACF,gBAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;oBACjC,WAAW,CAAC,SAAS,CAAC,CAAC;iBACxB;aACF;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;aACtC;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"store.js","sources":["../../src/main/store.ts"],"sourcesContent":["import ElectronStore from 'electron-store';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\nexport const _appStore: Map<string, any> = new Map();\n\nexport interface EStoreQuery {\n name?: string;\n method: 'get' | 'set' | 'delete' | 'clear' | 'has' | 'store';\n key?: string;\n value?: any;\n};\n\nexport type AppStoreOptions = {[key: string]: any};\n\n/**\n * 确保 store 存在并已初始化,如果不存在则创建\n */\nfunction ensureStore(name: string) {\n if (!_appStore.has(name) || typeof _appStore.get(name)?.set !== 'function') {\n const Store = ElectronStore;\n _appStore.set(name, new Store({\n name,\n accessPropertiesByDotNotation: true,\n }));\n /**\n * 临时存储,每次启动时清空\n */\n if (name.startsWith('__temp__')) {\n _appStore.get(name).clear();\n console.log('clear temp store', name);\n }\n _appStore.get(name).onDidAnyChange((newValue: any, oldValue: any) => {\n try {\n ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {\n name,\n newValue: newValue ? JSON.stringify(newValue) : undefined,\n oldValue: oldValue ? JSON.stringify(oldValue) : undefined,\n });\n } catch (error) {\n console.error('core:estore:didAnyChange', error);\n }\n });\n }\n return _appStore.get(name);\n}\n\nexport const initializeStore = () => {\n ipc.mainIPC.handleRenderer('core:estore', async (options: EStoreQuery) => {\n const { name = 'appStore', method, key, value } = options;\n const appStore = ensureStore(name);\n\n if (method === 'get') {\n return appStore.get(key);\n } else if (method === 'set') {\n appStore.set(key, value);\n return true;\n } else if (method === 'delete') {\n appStore.delete(key);\n return true;\n } else if (method === 'clear') {\n appStore.clear();\n return true;\n } else if (method === 'has') {\n return appStore.has(key);\n } else if (method === 'store') {\n return appStore.store;\n }\n })\n}\n\nexport const getAppStore = (name: string) => {\n return ensureStore(name);\n}\n\nexport const appStoreInit = (stores: string[]) => {\n if (stores.length) {\n stores.forEach((storeName: string) => {\n try {\n if (typeof storeName === 'string') {\n ensureStore(storeName);\n }\n } catch (error) {\n console.error('appStoreInit', error);\n }\n });\n }\n return true;\n}\n"],"names":["ipc"],"mappings":";;;AAGa,MAAA,SAAS,GAAqB,IAAI,GAAG,GAAG;AAWrD;;AAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAA;IAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,UAAU,EAAE;QAC1E,MAAM,KAAK,GAAG,aAAa,CAAC;AAC5B,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;YAC5B,IAAI;AACJ,YAAA,6BAA6B,EAAE,IAAI;AACpC,SAAA,CAAC,CAAC,CAAC;AACJ;;AAEG;AACH,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC/B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;SACvC;AACD,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAa,EAAE,QAAa,KAAI;AAClE,YAAA,IAAI;AACF,gBAAAA,YAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,0BAA0B,EAAE;oBACxD,IAAI;AACJ,oBAAA,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS;AACzD,oBAAA,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS;AAC1D,iBAAA,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;aAClD;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAEM,MAAM,eAAe,GAAG,MAAK;IAClCA,YAAG,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,OAAoB,KAAI;AACvE,QAAA,MAAM,EAAE,IAAI,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAEnC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC9B,YAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC;SACvB;AACH,KAAC,CAAC,CAAA;AACJ,EAAC;AAEY,MAAA,WAAW,GAAG,CAAC,IAAY,KAAI;AAC1C,IAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAC;AAEY,MAAA,YAAY,GAAG,CAAC,MAAgB,KAAI;AAC/C,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;AACnC,YAAA,IAAI;AACF,gBAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;oBACjC,WAAW,CAAC,SAAS,CAAC,CAAC;iBACxB;aACF;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;aACtC;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;;;"}
package/main/index.d.ts CHANGED
@@ -3,9 +3,10 @@ import * as ipc from '@lynker-desktop/electron-ipc/main';
3
3
  import * as windowManager from '@lynker-desktop/electron-window-manager/main';
4
4
  import type { PreloadWebContentsConfig } from '@lynker-desktop/electron-window-manager/common';
5
5
  import { type ServeOptions, type VideoDownloadOptions, type VideoProgressCallback, type VideoDownloadResult } from '../common';
6
+ import { getAppStore } from './store';
6
7
  import { ResourceCache, type ResourceCacheOptions } from './resource-cache';
7
8
  import type ElectronStore from 'electron-store';
8
- export { ResourceCache, type ResourceCacheOptions };
9
+ export { ResourceCache, type ResourceCacheOptions, getAppStore };
9
10
  export declare let isInitialized: boolean;
10
11
  export interface SDK_TYPE {
11
12
  ipc: typeof ipc.mainIPC;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,OAAO,KAAK,GAAG,MAAM,mCAAmC,CAAA;AAExD,OAAO,KAAK,aAAa,MAAM,8CAA8C,CAAA;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAA;AAC9F,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAqB,MAAM,WAAW,CAAC;AAIvK,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,CAAC;AAMpD,eAAO,IAAI,aAAa,SAAQ,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;IAC5C,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClH,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACrJ,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CAC7C;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,YAAa;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,QA4FxU,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,MAAM,QAAO,QAOzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAGT,MAAM,SAoDtB,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,KAAK,YAAa,YAAY,qBAsF1C,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,MAAM,gBAAiB,WAAW,SAA+B,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAwB,GAAG,MAAM,CAiBnE;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAnWwB,SAC7C,OAkWsD,CAAC;AAE/D;;;GAGG;;AACH,wBAeG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,OAAO,KAAK,GAAG,MAAM,mCAAmC,CAAA;AAExD,OAAO,KAAK,aAAa,MAAM,8CAA8C,CAAA;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAA;AAC9F,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAqB,MAAM,WAAW,CAAC;AACvK,OAAO,EAAmB,WAAW,EAAgB,MAAM,SAAS,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,WAAW,EAAE,CAAC;AAMjE,eAAO,IAAI,aAAa,SAAQ,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;IAC5C,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClH,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACrJ,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CAC7C;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,YAAa;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,QA4FxU,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,MAAM,QAAO,QAOzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAGT,MAAM,SAoDtB,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,KAAK,YAAa,YAAY,qBAsF1C,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,MAAM,gBAAiB,WAAW,SAA+B,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAwB,GAAG,MAAM,CAiBnE;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAnWwB,SAC7C,OAkWsD,CAAC;AAE/D;;;GAGG;;AACH,wBAeG"}
package/main/index.js CHANGED
@@ -358,6 +358,7 @@ const index = new Proxy({}, {
358
358
  }
359
359
  });
360
360
 
361
+ exports.getAppStore = store.getAppStore;
361
362
  exports.ResourceCache = resourceCache.ResourceCache;
362
363
  exports.default = index;
363
364
  exports.enable = enable;
package/main/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/src/main/index.ts"],"sourcesContent":["import type { WebContents } from 'electron'\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport {promisify} from 'node:util';\nimport electron, { app, webContents } from 'electron';\nimport md5 from 'md5';\nimport { v5 as uuidv5 } from 'uuid';\nimport lodash from 'lodash';\nimport * as remote from '@electron/remote/main'\nimport * as ipc from '@lynker-desktop/electron-ipc/main'\nimport * as logs from '@lynker-desktop/electron-logs/main'\nimport * as windowManager from '@lynker-desktop/electron-window-manager/main'\nimport type { PreloadWebContentsConfig } from '@lynker-desktop/electron-window-manager/common'\nimport { IPC_GET_APP_METRICS, type ServeOptions, type VideoDownloadOptions, type VideoProgressCallback, type VideoDownloadResult, type CacheOptions } from '../common';\nimport { initializeStore, getAppStore, appStoreInit } from './store';\nimport { initializeClipboard } from './clipboard';\nimport { initializeShortcut } from './shortcut';\nimport { ResourceCache, type ResourceCacheOptions } from './resource-cache';\nimport { downloadVideo, clearVideoCache, getVideoCacheStats, removeVideoCache, getFileUrl, setFFmpegPath } from './video-downloader';\nimport { DownloadOptions, getDownloader } from './downloader';\nimport type ElectronStore from 'electron-store';\n\n// 重新导出 ResourceCache 相关类型和类,以便外部使用\nexport { ResourceCache, type ResourceCacheOptions };\n\nif (!remote.isInitialized()) {\n remote.initialize();\n}\n\nexport let isInitialized = false;\n\nexport interface SDK_TYPE {\n ipc: typeof ipc.mainIPC;\n windowManager: windowManager.WindowsManager,\n getPreload: () => string;\n downloadVideo: (options: VideoDownloadOptions, callbacks?: VideoProgressCallback) => Promise<VideoDownloadResult>;\n clearVideoCache: (outputDir: string) => void;\n getVideoCacheStats: (outputDir: string) => { size: number; entries: Array<{ fileName: string; filePath: string; fileSize: number; mtime: number }> };\n removeVideoCache: (options: VideoDownloadOptions) => boolean;\n getAppStore: (name: string) => ElectronStore;\n appStoreInit: (stores: string[]) => boolean;\n}\n\n\nfunction findWebContentsByPid(pid: number): {id: number, url: string} | undefined {\n const all = webContents.getAllWebContents();\n\n const wc = all.find((wc) => {\n try {\n return wc.getOSProcessId() === pid;\n } catch (e) {\n return false;\n }\n });\n // @ts-ignore\n return wc ? {id: wc.id, url: wc.getURL()} : undefined;\n}\n\n\n/**\n * 初始化\n * @param protocol 唤起协议 例:dgz\n * @param preload 预加载js 必须传\n * @param loadingViewUrl 窗口管理默认loading页面\n * @returns\n */\nexport const initialize = (options: { protocol: string, preload: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[], serveOptions?: ServeOptions, resourceCacheOptions?: ResourceCacheOptions, ffmpegPath?: string, appStores?: string[] }): SDK_TYPE => {\n let {protocol, preload, loadingViewUrl, serveOptions = [], errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList, resourceCacheOptions} = options;\n if (isInitialized) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n isInitialized = true;\n ipc.initialize();\n logs.initialize();\n initializeStore();\n initializeClipboard();\n initializeShortcut();\n if (options.appStores && options.appStores.length) {\n appStoreInit(options.appStores as string[]);\n }\n if (options.ffmpegPath) {\n setFFmpegPath(options.ffmpegPath);\n }\n const wm = windowManager.initialize(preload, loadingViewUrl, errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList || []);\n if (protocol) {\n registerProtocol(protocol);\n }\n if (!serveOptions) {\n serveOptions = []\n }\n if (resourceCacheOptions) {\n if (resourceCacheOptions.cacheDir) {\n serveOptions.push({\n scheme: ResourceCache.scheme,\n directory: resourceCacheOptions.cacheDir,\n })\n }\n }\n if (serveOptions && serveOptions.length) {\n serve(serveOptions);\n }\n if (resourceCacheOptions) {\n app.on('ready', () => {\n new ResourceCache(electron.session.defaultSession, resourceCacheOptions);\n });\n }\n class SDK {\n static ipc = ipc.mainIPC;\n static windowManager = wm;\n static getPreload = () => preload;\n static downloader = getDownloader();\n static downloadVideo = downloadVideo;\n static clearVideoCache = clearVideoCache;\n static getVideoCacheStats = getVideoCacheStats;\n static removeVideoCache = removeVideoCache;\n static getAppStore = getAppStore;\n static appStoreInit = appStoreInit;\n }\n ipc.mainIPC.handleRenderer(IPC_GET_APP_METRICS, async () => {\n const metrics = app.getAppMetrics().map(i => {\n const webContents = findWebContentsByPid(i.pid || 0);\n console.log('webContents', webContents);\n return {\n ...i,\n webContents: webContents?.id || undefined,\n url: webContents?.url,\n }\n })\n return JSON.stringify(metrics);\n })\n ipc.mainIPC.handleRenderer(`__sdk_transcode_video__`, async (options:VideoDownloadOptions) => {\n const md5Options = md5(JSON.stringify(options.url));\n downloadVideo(options, {\n onDownloadProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'downloadProgress',\n data: progress\n });\n },\n onTranscodeProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'transcodeProgress',\n data: progress\n });\n },\n onComplete: (result) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'complete',\n data: result\n });\n },\n });\n return true;\n })\n // @ts-ignore\n global['__GLBOAL_ELECTRON_SDK__'] = SDK;\n return SDK;\n}\n\n/** 后续再优化 */\nexport const getSDK = (): SDK_TYPE => {\n // @ts-ignore\n if (!global['__GLBOAL_ELECTRON_SDK__']) {\n throw '请在ready前先调用initialize'\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n}\n\n/**\n * 注册唤起\n */\nexport const registerProtocol = (() => {\n let isRegister = false;\n let launchOptions = ``;\n return (protocol: string) => {\n if (isRegister) {\n return;\n }\n isRegister = true;\n if (process.defaultApp) {\n if (process.argv.length >= 2) {\n app.setAsDefaultProtocolClient(protocol, process.execPath, [path.resolve(lodash.get(process, `argv[1]`, ''))]);\n }\n } else {\n app.setAsDefaultProtocolClient(protocol);\n }\n const handleUrl = (url: string) => {\n launchOptions = `${url ?? ''}`;\n ipc.mainIPC.invokeAllRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', url)\n };\n\n function handleArgv(argv: string[]) {\n const prefix = `${protocol}:`;\n const offset = app?.isPackaged ? 1 : 2;\n const url = argv.find((arg, i) => i >= offset && arg.startsWith(prefix));\n if (url) handleUrl(url);\n }\n\n handleArgv(process.argv);\n\n app.on('second-instance', (event, argv) => {\n console.info(event)\n if (process.platform === 'win32') {\n // Windows\n handleArgv(argv);\n }\n });\n\n // macOS\n app.on('open-url', (event, urlStr) => {\n console.info(event)\n handleUrl(urlStr);\n });\n\n\n app.on(\"open-url\", (_event, url) => {\n handleUrl(url);\n });\n ipc.mainIPC.handleRenderer('__GLOBAL_GET_LAUNCH_OPTIONS__', async () => {\n return launchOptions;\n })\n ipc.mainIPC.handleRenderer('__GLOBAL_DEL_LAUNCH_OPTIONS__', async () => {\n launchOptions = ``;\n return launchOptions;\n })\n }\n})();\n\n/**\n * 注册协议\n * @param options\n * @returns\n */\nexport const serve = (options: ServeOptions) => {\n if (!options.length) {\n\t\tthrow new Error('请传入配置');\n\t}\n const stat = promisify(fs.stat);\n\n // See https://cs.chromium.org/chromium/src/net/base/net_error_list.h\n const FILE_NOT_FOUND = -6;\n\n const getPath: any = async (path_: string) => {\n try {\n const result = await stat(path_);\n\n if (result.isFile()) {\n return path_;\n }\n\n if (result.isDirectory()) {\n return getPath(path.join(path_, 'index.html'));\n }\n } catch (_) {}\n };\n\n const createHandler = (item: any) => {\n return async (request: any, callback: any) => {\n const indexPath = path.join(item.directory, 'index.html');\n const filePath = path.join(item.directory, decodeURIComponent(new URL(request.url).pathname));\n const resolvedPath = await getPath(filePath);\n const targetPath = resolvedPath || indexPath;\n const ext = path.extname(targetPath).toLowerCase();\n\n if (resolvedPath || !ext || ext === '.html' || ext === '.asar') {\n callback({\n path: resolvedPath || indexPath\n });\n } else {\n callback({error: FILE_NOT_FOUND});\n }\n }\n };\n\n\toptions = options.map((item) => {\n\t\treturn {\n\t\t\t...item,\n\t\t\tisCorsEnabled: !!item?.isCorsEnabled,\n\t\t\tscheme: item?.scheme || 'app',\n\t\t\tdirectory: path.resolve(electron.app.getAppPath(), item.directory),\n\t\t}\n\t})\n // 注册自定义协议的权限配置\n // 说明:\n // bypassCSP: 是否绕过内容安全策略(CSP),允许加载本地资源时不受 CSP 限制\n // standard: 使协议表现得像标准协议(如 http/https),支持标准 API\n // secure: 标记为安全协议,允许安全相关的操作\n // allowServiceWorkers: 允许该协议下注册 Service Worker\n // supportFetchAPI: 允许 fetch/XHR 等 API 访问该协议资源\n // corsEnabled: 是否启用跨域资源共享(CORS)\n // stream: 支持流式传输\n\telectron.protocol.registerSchemesAsPrivileged(options.map((item) => {\n\t\treturn {\n\t\t\tscheme: item.scheme,\n\t\t\tprivileges: {\n bypassCSP: true,\n\t\t\t\tstandard: true,\n\t\t\t\tsecure: true,\n\t\t\t\tallowServiceWorkers: true,\n\t\t\t\tsupportFetchAPI: true,\n\t\t\t\tcorsEnabled: item.isCorsEnabled ?? false,\n stream: true,\n\t\t\t}\n\t\t}\n\t}));\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\telectron.app.on('ready', () => {\n\t\t\t\toptions.forEach((item) => {\n\t\t\t\t\tconst handler = createHandler(item);\n\t\t\t\t\tconst session = item.partition ? electron.session.fromPartition(item.partition) : electron.session.defaultSession;\n\t\t\t\t\tsession.protocol.registerFileProtocol(item.scheme, handler);\n\t\t\t\t})\n\t\t\t\tresolve(true)\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\n\n/**\n * @electron/remote/main enable方法\n * @param webContents\n * @returns\n */\nexport const enable = (webContents: WebContents) => remote.enable(webContents);\n\n/**\n * 获取随机UUID\n * @param key\n * @returns\n */\nexport function getRandomUUID(key: string = `${Date.now()}`): string {\n let webcrypto!: Crypto;\n let randomValue = Math?.random()?.toString()?.replace('0.', '');\n try {\n if (!webcrypto && !!window && window?.crypto) {\n webcrypto = window.crypto;\n }\n } catch (error) {console.log}\n try {\n const ar = webcrypto.getRandomValues(new Uint8Array(12));\n randomValue = `${md5(ar)}` || randomValue;\n } catch (error) {}\n const uuid = uuidv5(\n `${JSON.stringify(key)}_${Date.now()}_${randomValue}`,\n uuidv5.URL,\n );\n return uuid;\n}\n\n\n/**\n * 获取定制Session\n */\nexport const getCustomSession = windowManager.getCustomSession;\n\n/**\n * 获取SDK实例\n * @returns\n */\nexport default new Proxy({} as SDK_TYPE, {\n get(_target, prop) {\n if (!isInitialized) {\n throw new Error('请在ready前先调用initialize');\n }\n if (!prop) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'][prop];\n },\n set() {\n return false;\n }\n});\n"],"names":["remote","isInitialized","webContents","ipc","logs","initializeStore","initializeClipboard","initializeShortcut","appStoreInit","setFFmpegPath","windowManager","ResourceCache","app","getDownloader","downloadVideo","clearVideoCache","getVideoCacheStats","removeVideoCache","getAppStore","IPC_GET_APP_METRICS","promisify","uuid","uuidv5"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/src/main/index.ts"],"sourcesContent":["import type { WebContents } from 'electron'\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport {promisify} from 'node:util';\nimport electron, { app, webContents } from 'electron';\nimport md5 from 'md5';\nimport { v5 as uuidv5 } from 'uuid';\nimport lodash from 'lodash';\nimport * as remote from '@electron/remote/main'\nimport * as ipc from '@lynker-desktop/electron-ipc/main'\nimport * as logs from '@lynker-desktop/electron-logs/main'\nimport * as windowManager from '@lynker-desktop/electron-window-manager/main'\nimport type { PreloadWebContentsConfig } from '@lynker-desktop/electron-window-manager/common'\nimport { IPC_GET_APP_METRICS, type ServeOptions, type VideoDownloadOptions, type VideoProgressCallback, type VideoDownloadResult, type CacheOptions } from '../common';\nimport { initializeStore, getAppStore, appStoreInit } from './store';\nimport { initializeClipboard } from './clipboard';\nimport { initializeShortcut } from './shortcut';\nimport { ResourceCache, type ResourceCacheOptions } from './resource-cache';\nimport { downloadVideo, clearVideoCache, getVideoCacheStats, removeVideoCache, getFileUrl, setFFmpegPath } from './video-downloader';\nimport { DownloadOptions, getDownloader } from './downloader';\nimport type ElectronStore from 'electron-store';\n\n// 重新导出 ResourceCache 相关类型和类,以便外部使用\nexport { ResourceCache, type ResourceCacheOptions, getAppStore };\n\nif (!remote.isInitialized()) {\n remote.initialize();\n}\n\nexport let isInitialized = false;\n\nexport interface SDK_TYPE {\n ipc: typeof ipc.mainIPC;\n windowManager: windowManager.WindowsManager,\n getPreload: () => string;\n downloadVideo: (options: VideoDownloadOptions, callbacks?: VideoProgressCallback) => Promise<VideoDownloadResult>;\n clearVideoCache: (outputDir: string) => void;\n getVideoCacheStats: (outputDir: string) => { size: number; entries: Array<{ fileName: string; filePath: string; fileSize: number; mtime: number }> };\n removeVideoCache: (options: VideoDownloadOptions) => boolean;\n getAppStore: (name: string) => ElectronStore;\n appStoreInit: (stores: string[]) => boolean;\n}\n\n\nfunction findWebContentsByPid(pid: number): {id: number, url: string} | undefined {\n const all = webContents.getAllWebContents();\n\n const wc = all.find((wc) => {\n try {\n return wc.getOSProcessId() === pid;\n } catch (e) {\n return false;\n }\n });\n // @ts-ignore\n return wc ? {id: wc.id, url: wc.getURL()} : undefined;\n}\n\n\n/**\n * 初始化\n * @param protocol 唤起协议 例:dgz\n * @param preload 预加载js 必须传\n * @param loadingViewUrl 窗口管理默认loading页面\n * @returns\n */\nexport const initialize = (options: { protocol: string, preload: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[], serveOptions?: ServeOptions, resourceCacheOptions?: ResourceCacheOptions, ffmpegPath?: string, appStores?: string[] }): SDK_TYPE => {\n let {protocol, preload, loadingViewUrl, serveOptions = [], errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList, resourceCacheOptions} = options;\n if (isInitialized) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n isInitialized = true;\n ipc.initialize();\n logs.initialize();\n initializeStore();\n initializeClipboard();\n initializeShortcut();\n if (options.appStores && options.appStores.length) {\n appStoreInit(options.appStores as string[]);\n }\n if (options.ffmpegPath) {\n setFFmpegPath(options.ffmpegPath);\n }\n const wm = windowManager.initialize(preload, loadingViewUrl, errorViewUrl, preloadWebContentsConfig, webviewDomainWhiteList || []);\n if (protocol) {\n registerProtocol(protocol);\n }\n if (!serveOptions) {\n serveOptions = []\n }\n if (resourceCacheOptions) {\n if (resourceCacheOptions.cacheDir) {\n serveOptions.push({\n scheme: ResourceCache.scheme,\n directory: resourceCacheOptions.cacheDir,\n })\n }\n }\n if (serveOptions && serveOptions.length) {\n serve(serveOptions);\n }\n if (resourceCacheOptions) {\n app.on('ready', () => {\n new ResourceCache(electron.session.defaultSession, resourceCacheOptions);\n });\n }\n class SDK {\n static ipc = ipc.mainIPC;\n static windowManager = wm;\n static getPreload = () => preload;\n static downloader = getDownloader();\n static downloadVideo = downloadVideo;\n static clearVideoCache = clearVideoCache;\n static getVideoCacheStats = getVideoCacheStats;\n static removeVideoCache = removeVideoCache;\n static getAppStore = getAppStore;\n static appStoreInit = appStoreInit;\n }\n ipc.mainIPC.handleRenderer(IPC_GET_APP_METRICS, async () => {\n const metrics = app.getAppMetrics().map(i => {\n const webContents = findWebContentsByPid(i.pid || 0);\n console.log('webContents', webContents);\n return {\n ...i,\n webContents: webContents?.id || undefined,\n url: webContents?.url,\n }\n })\n return JSON.stringify(metrics);\n })\n ipc.mainIPC.handleRenderer(`__sdk_transcode_video__`, async (options:VideoDownloadOptions) => {\n const md5Options = md5(JSON.stringify(options.url));\n downloadVideo(options, {\n onDownloadProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'downloadProgress',\n data: progress\n });\n },\n onTranscodeProgress: (progress) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'transcodeProgress',\n data: progress\n });\n },\n onComplete: (result) => {\n ipc.mainIPC.invokeAllRenderer(`__sdk_transcode_video_callback_${md5Options}__`, {\n type: 'complete',\n data: result\n });\n },\n });\n return true;\n })\n // @ts-ignore\n global['__GLBOAL_ELECTRON_SDK__'] = SDK;\n return SDK;\n}\n\n/** 后续再优化 */\nexport const getSDK = (): SDK_TYPE => {\n // @ts-ignore\n if (!global['__GLBOAL_ELECTRON_SDK__']) {\n throw '请在ready前先调用initialize'\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n}\n\n/**\n * 注册唤起\n */\nexport const registerProtocol = (() => {\n let isRegister = false;\n let launchOptions = ``;\n return (protocol: string) => {\n if (isRegister) {\n return;\n }\n isRegister = true;\n if (process.defaultApp) {\n if (process.argv.length >= 2) {\n app.setAsDefaultProtocolClient(protocol, process.execPath, [path.resolve(lodash.get(process, `argv[1]`, ''))]);\n }\n } else {\n app.setAsDefaultProtocolClient(protocol);\n }\n const handleUrl = (url: string) => {\n launchOptions = `${url ?? ''}`;\n ipc.mainIPC.invokeAllRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', url)\n };\n\n function handleArgv(argv: string[]) {\n const prefix = `${protocol}:`;\n const offset = app?.isPackaged ? 1 : 2;\n const url = argv.find((arg, i) => i >= offset && arg.startsWith(prefix));\n if (url) handleUrl(url);\n }\n\n handleArgv(process.argv);\n\n app.on('second-instance', (event, argv) => {\n console.info(event)\n if (process.platform === 'win32') {\n // Windows\n handleArgv(argv);\n }\n });\n\n // macOS\n app.on('open-url', (event, urlStr) => {\n console.info(event)\n handleUrl(urlStr);\n });\n\n\n app.on(\"open-url\", (_event, url) => {\n handleUrl(url);\n });\n ipc.mainIPC.handleRenderer('__GLOBAL_GET_LAUNCH_OPTIONS__', async () => {\n return launchOptions;\n })\n ipc.mainIPC.handleRenderer('__GLOBAL_DEL_LAUNCH_OPTIONS__', async () => {\n launchOptions = ``;\n return launchOptions;\n })\n }\n})();\n\n/**\n * 注册协议\n * @param options\n * @returns\n */\nexport const serve = (options: ServeOptions) => {\n if (!options.length) {\n\t\tthrow new Error('请传入配置');\n\t}\n const stat = promisify(fs.stat);\n\n // See https://cs.chromium.org/chromium/src/net/base/net_error_list.h\n const FILE_NOT_FOUND = -6;\n\n const getPath: any = async (path_: string) => {\n try {\n const result = await stat(path_);\n\n if (result.isFile()) {\n return path_;\n }\n\n if (result.isDirectory()) {\n return getPath(path.join(path_, 'index.html'));\n }\n } catch (_) {}\n };\n\n const createHandler = (item: any) => {\n return async (request: any, callback: any) => {\n const indexPath = path.join(item.directory, 'index.html');\n const filePath = path.join(item.directory, decodeURIComponent(new URL(request.url).pathname));\n const resolvedPath = await getPath(filePath);\n const targetPath = resolvedPath || indexPath;\n const ext = path.extname(targetPath).toLowerCase();\n\n if (resolvedPath || !ext || ext === '.html' || ext === '.asar') {\n callback({\n path: resolvedPath || indexPath\n });\n } else {\n callback({error: FILE_NOT_FOUND});\n }\n }\n };\n\n\toptions = options.map((item) => {\n\t\treturn {\n\t\t\t...item,\n\t\t\tisCorsEnabled: !!item?.isCorsEnabled,\n\t\t\tscheme: item?.scheme || 'app',\n\t\t\tdirectory: path.resolve(electron.app.getAppPath(), item.directory),\n\t\t}\n\t})\n // 注册自定义协议的权限配置\n // 说明:\n // bypassCSP: 是否绕过内容安全策略(CSP),允许加载本地资源时不受 CSP 限制\n // standard: 使协议表现得像标准协议(如 http/https),支持标准 API\n // secure: 标记为安全协议,允许安全相关的操作\n // allowServiceWorkers: 允许该协议下注册 Service Worker\n // supportFetchAPI: 允许 fetch/XHR 等 API 访问该协议资源\n // corsEnabled: 是否启用跨域资源共享(CORS)\n // stream: 支持流式传输\n\telectron.protocol.registerSchemesAsPrivileged(options.map((item) => {\n\t\treturn {\n\t\t\tscheme: item.scheme,\n\t\t\tprivileges: {\n bypassCSP: true,\n\t\t\t\tstandard: true,\n\t\t\t\tsecure: true,\n\t\t\t\tallowServiceWorkers: true,\n\t\t\t\tsupportFetchAPI: true,\n\t\t\t\tcorsEnabled: item.isCorsEnabled ?? false,\n stream: true,\n\t\t\t}\n\t\t}\n\t}));\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\telectron.app.on('ready', () => {\n\t\t\t\toptions.forEach((item) => {\n\t\t\t\t\tconst handler = createHandler(item);\n\t\t\t\t\tconst session = item.partition ? electron.session.fromPartition(item.partition) : electron.session.defaultSession;\n\t\t\t\t\tsession.protocol.registerFileProtocol(item.scheme, handler);\n\t\t\t\t})\n\t\t\t\tresolve(true)\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\n\n/**\n * @electron/remote/main enable方法\n * @param webContents\n * @returns\n */\nexport const enable = (webContents: WebContents) => remote.enable(webContents);\n\n/**\n * 获取随机UUID\n * @param key\n * @returns\n */\nexport function getRandomUUID(key: string = `${Date.now()}`): string {\n let webcrypto!: Crypto;\n let randomValue = Math?.random()?.toString()?.replace('0.', '');\n try {\n if (!webcrypto && !!window && window?.crypto) {\n webcrypto = window.crypto;\n }\n } catch (error) {console.log}\n try {\n const ar = webcrypto.getRandomValues(new Uint8Array(12));\n randomValue = `${md5(ar)}` || randomValue;\n } catch (error) {}\n const uuid = uuidv5(\n `${JSON.stringify(key)}_${Date.now()}_${randomValue}`,\n uuidv5.URL,\n );\n return uuid;\n}\n\n\n/**\n * 获取定制Session\n */\nexport const getCustomSession = windowManager.getCustomSession;\n\n/**\n * 获取SDK实例\n * @returns\n */\nexport default new Proxy({} as SDK_TYPE, {\n get(_target, prop) {\n if (!isInitialized) {\n throw new Error('请在ready前先调用initialize');\n }\n if (!prop) {\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'];\n }\n // @ts-ignore\n return global['__GLBOAL_ELECTRON_SDK__'][prop];\n },\n set() {\n return false;\n }\n});\n"],"names":["remote","isInitialized","webContents","ipc","logs","initializeStore","initializeClipboard","initializeShortcut","appStoreInit","setFFmpegPath","windowManager","ResourceCache","app","getDownloader","downloadVideo","clearVideoCache","getVideoCacheStats","removeVideoCache","getAppStore","IPC_GET_APP_METRICS","promisify","uuid","uuidv5"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/main/store.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAa,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,MAAM,eAAe,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAAC;AA2BnD,eAAO,MAAM,eAAe,YAsB3B,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,QAEvC,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,EAAE,YAa5C,CAAA"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/main/store.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAa,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,MAAM,eAAe,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAAC;AAkCnD,eAAO,MAAM,eAAe,YAsB3B,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,QAEvC,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,EAAE,YAa5C,CAAA"}
package/main/store.js CHANGED
@@ -12,6 +12,13 @@ function ensureStore(name) {
12
12
  name,
13
13
  accessPropertiesByDotNotation: true,
14
14
  }));
15
+ /**
16
+ * 临时存储,每次启动时清空
17
+ */
18
+ if (name.startsWith('__temp__')) {
19
+ _appStore.get(name).clear();
20
+ console.log('clear temp store', name);
21
+ }
15
22
  _appStore.get(name).onDidAnyChange((newValue, oldValue) => {
16
23
  try {
17
24
  ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {
package/main/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../src/src/main/store.ts"],"sourcesContent":["import ElectronStore from 'electron-store';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\nexport const _appStore: Map<string, any> = new Map();\n\nexport interface EStoreQuery {\n name?: string;\n method: 'get' | 'set' | 'delete' | 'clear' | 'has' | 'store';\n key?: string;\n value?: any;\n};\n\nexport type AppStoreOptions = {[key: string]: any};\n\n/**\n * 确保 store 存在并已初始化,如果不存在则创建\n */\nfunction ensureStore(name: string) {\n if (!_appStore.has(name) || typeof _appStore.get(name)?.set !== 'function') {\n const Store = ElectronStore;\n _appStore.set(name, new Store({\n name,\n accessPropertiesByDotNotation: true,\n }));\n _appStore.get(name).onDidAnyChange((newValue: any, oldValue: any) => {\n try {\n ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {\n name,\n newValue: newValue ? JSON.stringify(newValue) : undefined,\n oldValue: oldValue ? JSON.stringify(oldValue) : undefined,\n });\n } catch (error) {\n console.error('core:estore:didAnyChange', error);\n }\n });\n }\n return _appStore.get(name);\n}\n\nexport const initializeStore = () => {\n ipc.mainIPC.handleRenderer('core:estore', async (options: EStoreQuery) => {\n const { name = 'appStore', method, key, value } = options;\n const appStore = ensureStore(name);\n\n if (method === 'get') {\n return appStore.get(key);\n } else if (method === 'set') {\n appStore.set(key, value);\n return true;\n } else if (method === 'delete') {\n appStore.delete(key);\n return true;\n } else if (method === 'clear') {\n appStore.clear();\n return true;\n } else if (method === 'has') {\n return appStore.has(key);\n } else if (method === 'store') {\n return appStore.store;\n }\n })\n}\n\nexport const getAppStore = (name: string) => {\n return ensureStore(name);\n}\n\nexport const appStoreInit = (stores: string[]) => {\n if (stores.length) {\n stores.forEach((storeName: string) => {\n try {\n if (typeof storeName === 'string') {\n ensureStore(storeName);\n }\n } catch (error) {\n console.error('appStoreInit', error);\n }\n });\n }\n return true;\n}\n"],"names":[],"mappings":";;;AAGa,MAAA,SAAS,GAAqB,IAAI,GAAG,GAAG;AAWrD;;AAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAA;IAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,UAAU,EAAE;QAC1E,MAAM,KAAK,GAAG,aAAa,CAAC;AAC5B,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;YAC5B,IAAI;AACJ,YAAA,6BAA6B,EAAE,IAAI;AACpC,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAa,EAAE,QAAa,KAAI;AAClE,YAAA,IAAI;AACF,gBAAA,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,0BAA0B,EAAE;oBACxD,IAAI;AACJ,oBAAA,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS;AACzD,oBAAA,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS;AAC1D,iBAAA,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;aAClD;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAEM,MAAM,eAAe,GAAG,MAAK;IAClC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,OAAoB,KAAI;AACvE,QAAA,MAAM,EAAE,IAAI,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAEnC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC9B,YAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjB,YAAA,OAAO,IAAI,CAAC;SACb;AAAM,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC;SACvB;AACH,KAAC,CAAC,CAAA;AACJ,EAAC;AAEY,MAAA,WAAW,GAAG,CAAC,IAAY,KAAI;AAC1C,IAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAC;AAEY,MAAA,YAAY,GAAG,CAAC,MAAgB,KAAI;AAC/C,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;AACnC,YAAA,IAAI;AACF,gBAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;oBACjC,WAAW,CAAC,SAAS,CAAC,CAAC;iBACxB;aACF;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;aACtC;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;;;;;;"}
1
+ {"version":3,"file":"store.js","sources":["../src/src/main/store.ts"],"sourcesContent":["import ElectronStore from 'electron-store';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\nexport const _appStore: Map<string, any> = new Map();\n\nexport interface EStoreQuery {\n name?: string;\n method: 'get' | 'set' | 'delete' | 'clear' | 'has' | 'store';\n key?: string;\n value?: any;\n};\n\nexport type AppStoreOptions = {[key: string]: any};\n\n/**\n * 确保 store 存在并已初始化,如果不存在则创建\n */\nfunction ensureStore(name: string) {\n if (!_appStore.has(name) || typeof _appStore.get(name)?.set !== 'function') {\n const Store = ElectronStore;\n _appStore.set(name, new Store({\n name,\n accessPropertiesByDotNotation: true,\n }));\n /**\n * 临时存储,每次启动时清空\n */\n if (name.startsWith('__temp__')) {\n _appStore.get(name).clear();\n console.log('clear temp store', name);\n }\n _appStore.get(name).onDidAnyChange((newValue: any, oldValue: any) => {\n try {\n ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {\n name,\n newValue: newValue ? JSON.stringify(newValue) : undefined,\n oldValue: oldValue ? JSON.stringify(oldValue) : undefined,\n });\n } catch (error) {\n console.error('core:estore:didAnyChange', error);\n }\n });\n }\n return _appStore.get(name);\n}\n\nexport const initializeStore = () => {\n ipc.mainIPC.handleRenderer('core:estore', async (options: EStoreQuery) => {\n const { name = 'appStore', method, key, value } = options;\n const appStore = ensureStore(name);\n\n if (method === 'get') {\n return appStore.get(key);\n } else if (method === 'set') {\n appStore.set(key, value);\n return true;\n } else if (method === 'delete') {\n appStore.delete(key);\n return true;\n } else if (method === 'clear') {\n appStore.clear();\n return true;\n } else if (method === 'has') {\n return appStore.has(key);\n } else if (method === 'store') {\n return appStore.store;\n }\n })\n}\n\nexport const getAppStore = (name: string) => {\n return ensureStore(name);\n}\n\nexport const appStoreInit = (stores: string[]) => {\n if (stores.length) {\n stores.forEach((storeName: string) => {\n try {\n if (typeof storeName === 'string') {\n ensureStore(storeName);\n }\n } catch (error) {\n console.error('appStoreInit', error);\n }\n });\n }\n return true;\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynker-desktop/electron-sdk",
3
- "version": "0.0.9-alpha.74",
3
+ "version": "0.0.9-alpha.76",
4
4
  "description": "electron-sdk",
5
5
  "keywords": [
6
6
  "electron",
@@ -53,9 +53,9 @@
53
53
  "packageManager": "pnpm@9.6.0",
54
54
  "dependencies": {
55
55
  "@electron/remote": "^2.1.2",
56
- "@lynker-desktop/electron-ipc": "0.0.9-alpha.74",
57
- "@lynker-desktop/electron-logs": "0.0.9-alpha.74",
58
- "@lynker-desktop/electron-window-manager": "0.0.9-alpha.74",
56
+ "@lynker-desktop/electron-ipc": "0.0.9-alpha.76",
57
+ "@lynker-desktop/electron-logs": "0.0.9-alpha.76",
58
+ "@lynker-desktop/electron-window-manager": "0.0.9-alpha.76",
59
59
  "electron-store": "^11.0.2",
60
60
  "events": "^3.3.0",
61
61
  "lodash": "^4.17.21",
@@ -92,5 +92,5 @@
92
92
  "tslib": "^2.6.3",
93
93
  "typescript": "^5.5.3"
94
94
  },
95
- "gitHead": "1a1047039aef20f144559a8b16e38dd7411a1a99"
95
+ "gitHead": "abd885596ff9cf1eb0150e46ba366d472cc5e0c8"
96
96
  }