vome-core 0.3.66 → 0.3.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/api/client.d.ts +50 -0
- package/dist/admin/components/ui/avatar/index.d.ts +3 -0
- package/dist/admin/components/ui/avatar/index.js +1 -1
- package/dist/admin/components/ui/badge/index.d.ts +6 -0
- package/dist/admin/components/ui/button/index.d.ts +7 -0
- package/dist/admin/components/ui/checkbox/index.d.ts +1 -0
- package/dist/admin/components/ui/checkbox/index.js +1 -1
- package/dist/admin/components/ui/dialog/index.d.ts +10 -0
- package/dist/admin/components/ui/dialog/index.js +1 -1
- package/dist/admin/components/ui/dropdown-menu/index.d.ts +15 -0
- package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
- package/dist/admin/components/ui/input/index.d.ts +1 -0
- package/dist/admin/components/ui/input/index.js +1 -1
- package/dist/admin/components/ui/label/index.d.ts +1 -0
- package/dist/admin/components/ui/label/index.js +1 -1
- package/dist/admin/components/ui/scroll-area/index.d.ts +2 -0
- package/dist/admin/components/ui/scroll-area/index.js +1 -1
- package/dist/admin/components/ui/select/index.d.ts +11 -0
- package/dist/admin/components/ui/select/index.js +1 -1
- package/dist/admin/components/ui/separator/index.d.ts +1 -0
- package/dist/admin/components/ui/separator/index.js +1 -1
- package/dist/admin/components/ui/sheet/index.d.ts +8 -0
- package/dist/admin/components/ui/sheet/index.js +1 -1
- package/dist/admin/components/ui/sonner/index.d.ts +1 -0
- package/dist/admin/components/ui/sonner/index.js +1 -1
- package/dist/admin/components/ui/table/index.d.ts +9 -0
- package/dist/admin/components/ui/table/index.js +1 -1
- package/dist/admin/components/ui/tabs/index.d.ts +4 -0
- package/dist/admin/components/ui/tabs/index.js +1 -1
- package/dist/admin/components/ui/tooltip/index.d.ts +4 -0
- package/dist/admin/components/ui/tooltip/index.js +1 -1
- package/dist/admin/crud/auto-fields.d.ts +68 -0
- package/dist/admin/crud/auto-fields.js +1 -1
- package/dist/admin/crud/config.d.ts +5 -0
- package/dist/admin/crud/config.js +1 -1
- package/dist/admin/crud/confirm.d.ts +19 -0
- package/dist/admin/crud/confirm.js +1 -1
- package/dist/admin/crud/crud-page-request.d.ts +21 -0
- package/dist/admin/crud/crud-page-request.js +1 -1
- package/dist/admin/crud/data-i18n.d.ts +62 -0
- package/dist/admin/crud/data-i18n.js +1 -1
- package/dist/admin/crud/dict.d.ts +4 -0
- package/dist/admin/crud/dict.js +1 -1
- package/dist/admin/crud/export-fetch.d.ts +22 -0
- package/dist/admin/crud/export-fetch.js +1 -1
- package/dist/admin/crud/index.d.ts +60 -0
- package/dist/admin/crud/json-kv.d.ts +9 -0
- package/dist/admin/crud/key.d.ts +22 -0
- package/dist/admin/crud/key.js +1 -1
- package/dist/admin/crud/paging.d.ts +2 -0
- package/dist/admin/crud/plugins.d.ts +63 -0
- package/dist/admin/crud/plugins.js +1 -1
- package/dist/admin/crud/registry.d.ts +3 -0
- package/dist/admin/crud/span.d.ts +17 -0
- package/dist/admin/crud/span.js +1 -1
- package/dist/admin/crud/style.d.ts +82 -0
- package/dist/admin/crud/style.js +1 -1
- package/dist/admin/crud/useCrud.d.ts +26 -0
- package/dist/admin/crud/validate.d.ts +7 -0
- package/dist/admin/crud/validate.js +1 -1
- package/dist/admin/directives/perm.d.ts +3 -0
- package/dist/admin/directives/perm.js +1 -1
- package/dist/admin/hooks/useBrowser.d.ts +6 -0
- package/dist/admin/hooks/useUpload.d.ts +8 -0
- package/dist/admin/hooks/useUpload.js +1 -1
- package/dist/admin/hooks/useVome.d.ts +10 -0
- package/dist/admin/index.d.ts +31 -1
- package/dist/admin/lib/browser.d.ts +3 -0
- package/dist/admin/lib/browser.js +1 -1
- package/dist/admin/lib/cn.d.ts +2 -0
- package/dist/admin/lib/cn.js +1 -1
- package/dist/admin/lib/compress-image.d.ts +12 -0
- package/dist/admin/lib/dialog-float.d.ts +8 -0
- package/dist/admin/lib/dialog-float.js +1 -1
- package/dist/admin/lib/eps.d.ts +2 -0
- package/dist/admin/lib/export-excel.d.ts +9 -0
- package/dist/admin/lib/export-excel.js +1 -1
- package/dist/admin/lib/file-preview.d.ts +9 -0
- package/dist/admin/lib/import-excel.d.ts +21 -0
- package/dist/admin/lib/import-excel.js +1 -1
- package/dist/admin/lib/json.d.ts +11 -0
- package/dist/admin/lib/json.js +1 -1
- package/dist/admin/lib/menu.d.ts +3 -0
- package/dist/admin/lib/menu.js +1 -1
- package/dist/admin/lib/micro-locale.d.ts +5 -0
- package/dist/admin/lib/micro-locale.js +1 -1
- package/dist/admin/lib/micro-theme.d.ts +14 -0
- package/dist/admin/lib/micro-theme.js +1 -1
- package/dist/admin/lib/module.d.ts +21 -0
- package/dist/admin/lib/scarce-assets.d.ts +5 -0
- package/dist/admin/lib/shell.d.ts +8 -0
- package/dist/admin/lib/shell.js +1 -1
- package/dist/admin/lib/theme-color-options.d.ts +15 -0
- package/dist/admin/lib/theme-color-options.js +1 -1
- package/dist/admin/lib/tree.d.ts +2 -0
- package/dist/admin/lib/tree.js +1 -1
- package/dist/admin/lib/upload.d.ts +17 -0
- package/dist/admin/lib/upload.js +1 -1
- package/dist/admin/lib/video-frame.d.ts +6 -0
- package/dist/admin/lib/video-frame.js +1 -1
- package/dist/admin/router/create.d.ts +16 -0
- package/dist/admin/router/create.js +1 -1
- package/dist/admin/router/guards.d.ts +6 -0
- package/dist/admin/router/guards.js +1 -1
- package/dist/admin/router/index.d.ts +5 -1
- package/dist/admin/router/menu-routes.d.ts +13 -0
- package/dist/admin/service/index.d.ts +11 -1
- package/dist/admin/stores/app.d.ts +1 -0
- package/dist/admin/stores/tags.d.ts +1 -0
- package/dist/admin/stores/user.d.ts +1 -0
- package/dist/ai/index.js +1 -1
- package/dist/client/admin-vendor.d.ts +13 -1
- package/dist/client/ai-model-registry.d.ts +16 -0
- package/dist/client/ai-model-registry.js +1 -1
- package/dist/client/base.d.ts +28 -0
- package/dist/client/base.js +1 -1
- package/dist/client/configure.d.ts +33 -0
- package/dist/client/configure.js +1 -1
- package/dist/client/dict.d.ts +31 -0
- package/dist/client/dict.js +1 -1
- package/dist/client/eps-payload.d.ts +3 -0
- package/dist/client/eps-payload.js +1 -1
- package/dist/client/eps.d.ts +17 -0
- package/dist/client/eps.js +1 -1
- package/dist/client/index.d.ts +7 -1
- package/dist/client/index.js +1 -1
- package/dist/client/locale-change.d.ts +16 -0
- package/dist/client/locale-change.js +1 -1
- package/dist/client/locale-store.d.ts +61 -0
- package/dist/client/locale-store.js +1 -1
- package/dist/client/path.d.ts +6 -0
- package/dist/client/path.js +1 -0
- package/dist/client/service.d.ts +29 -0
- package/dist/client/service.js +1 -1
- package/dist/client/vite-admin.d.ts +40 -1
- package/dist/client/vite-admin.js +1 -1
- package/dist/client/vite-auto-import.d.ts +2 -1
- package/dist/client/vite-auto-import.js +1 -1
- package/dist/client/vite-micro-proxy.d.ts +20 -1
- package/dist/client/vite-micro-proxy.js +1 -1
- package/dist/client/vite-plugin-eps.d.ts +20 -1
- package/dist/client/vite-plugin-eps.js +1 -1
- package/dist/client/vite-resolve.d.ts +16 -1
- package/dist/client/vite-resolve.js +1 -1
- package/dist/config/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/shared/datetime-picker.js +1 -1
- package/dist/shared/decimal.js +1 -1
- package/dist/shared/excel.js +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/locale-json.js +1 -1
- package/dist/shared/tree.js +1 -1
- package/package.json +3 -3
|
@@ -1 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* 打进 dist/admin/vendor 的叶子依赖(非 peer)。
|
|
3
|
+
* 避免未打包 .vue 在浏览器里解析到 CJS;宿主与 core 共用的 vue/reka 等仍走 peer。
|
|
4
|
+
*/
|
|
5
|
+
export type AdminVendorSpec = {
|
|
6
|
+
/** dist/admin/vendor 下文件名 */
|
|
7
|
+
file: string;
|
|
8
|
+
/** Bun.build 入口(优先 ESM) */
|
|
9
|
+
entry: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const ADMIN_VENDOR: Record<string, AdminVendorSpec>;
|
|
12
|
+
export declare function isAdminVendorPkg(id: string): boolean;
|
|
13
|
+
export declare function adminVendorFileName(id: string): string | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ChatModelRegistryEntry = {
|
|
2
|
+
code?: string;
|
|
3
|
+
resultModes?: string[] | null;
|
|
4
|
+
defaults?: Record<string, unknown> | null;
|
|
5
|
+
};
|
|
6
|
+
/** AI 模型列表加载后登记,供 `/ai/model/call` 按 resultModes 推断等头超时 */
|
|
7
|
+
export declare function registerChatModels(models: ChatModelRegistryEntry[]): void;
|
|
8
|
+
/**
|
|
9
|
+
* 按模型 resultModes(及 options.stream 显式覆盖)推断「等响应头」超时。
|
|
10
|
+
* 仅用于 `/ai/model/call`;业务 translate URL 在 base.ts 设 timeoutMs=0。
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveModelHeaderTimeoutMs(modelCode: string, opts?: {
|
|
13
|
+
capability?: string;
|
|
14
|
+
stream?: boolean;
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
}): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x5f00f7=_0xc2ec;(function(_0x2b5e07,_0xe2c1d7){const _0x241c88=_0xc2ec,_0x425eee=_0x2b5e07();while(!![]){try{const _0x3a7e7a=parseInt(_0x241c88(0xef))/0x1*(-parseInt(_0x241c88(0xd7))/0x2)+-parseInt(_0x241c88(0xdb))/0x3*(-parseInt(_0x241c88(0xdd))/0x4)+parseInt(_0x241c88(0xde))/0x5+parseInt(_0x241c88(0xf1))/0x6+parseInt(_0x241c88(0xe2))/0x7+parseInt(_0x241c88(0xda))/0x8*(parseInt(_0x241c88(0xdf))/0x9)+-parseInt(_0x241c88(0xe7))/0xa;if(_0x3a7e7a===_0xe2c1d7)break;else _0x425eee['push'](_0x425eee['shift']());}catch(_0x51691d){_0x425eee['push'](_0x425eee['shift']());}}}(_0x53fb,0x5fd06));function _0x53fb(){const _0x4d3ef3=['mtjnCurZsfq','DMLKzw8','nZG2odrtwLfvtNe','mJe1mdiYnwTls0Pnsa','mtC2nZqYwgPWv2PA','yxn5BMm','y29Kzq','ntq4mZyXogLYyLzisG','Aw5JBhvKzxm','BNvTyMvY','zgvMyxvSDhnuAw1LB3v0txm','AxnbCNjHEq','mti2mJq5mdbRtNj1B0O','CMvZDwX0tw9Kzxm','BgvUz3rO','DgLTzw91De1Z','C3LUyW','DhjPBq','C3rYzwfT','y2HHDa','muT0v3zYqq','y2fWywjPBgL0Eq','mtC1mJyWmg1js2XYuW','nty1ndG2C3jvuwfr','zM9Y','C2v0','mtq0BfbpBuzq'];_0x53fb=function(){return _0x4d3ef3;};return _0x53fb();}const HEADER_TIMEOUT_STREAM_MS=0x1388,HEADER_TIMEOUT_SYNC_MS=0x57e40,HEADER_TIMEOUT_ASYNC_MS=0x1388,REGISTRY_KEY=Symbol[_0x5f00f7(0xd8)]('vome.ai.model.registry');function registryMap(){const _0x633478=globalThis;if(!_0x633478[REGISTRY_KEY])_0x633478[REGISTRY_KEY]=new Map();return _0x633478[REGISTRY_KEY];}export function registerChatModels(_0x414ace){const _0x299ebc=_0x5f00f7,_0x49786a=registryMap();for(const _0x1b8184 of _0x414ace){const _0x212774=String(_0x1b8184[_0x299ebc(0xe1)]||'')['trim']();if(!_0x212774)continue;const _0x42036a=_0x1b8184['defaults'],_0x52f2ed=_0x42036a&&typeof _0x42036a['timeoutMs']===_0x299ebc(0xe4)&&Number['isFinite'](_0x42036a['timeoutMs'])&&_0x42036a[_0x299ebc(0xea)]>0x0?_0x42036a[_0x299ebc(0xea)]:undefined;_0x49786a[_0x299ebc(0xd9)](_0x212774,{'resultModes':Array[_0x299ebc(0xe6)](_0x1b8184['resultModes'])&&_0x1b8184[_0x299ebc(0xe8)][_0x299ebc(0xe9)]?_0x1b8184[_0x299ebc(0xe8)]['map'](String):['sync'],'defaultsTimeoutMs':_0x52f2ed});}}function inferChatMode(_0xc73c65){const _0x24faee=_0x5f00f7;if(_0xc73c65[_0x24faee(0xe3)](_0x24faee(0xed)))return _0x24faee(0xed);if(_0xc73c65['includes'](_0x24faee(0xeb)))return _0x24faee(0xeb);if(_0xc73c65[_0x24faee(0xe3)](_0x24faee(0xe0)))return _0x24faee(0xe0);return _0x24faee(0xeb);}function _0xc2ec(_0x540fae,_0x2b7b08){_0x540fae=_0x540fae-0xd7;const _0x53fb18=_0x53fb();let _0xc2ecc9=_0x53fb18[_0x540fae];if(_0xc2ec['BTXXjr']===undefined){var _0xddb452=function(_0x214354){const _0x54ee30='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x633478='',_0x414ace='';for(let _0x49786a=0x0,_0x1b8184,_0x212774,_0x42036a=0x0;_0x212774=_0x214354['charAt'](_0x42036a++);~_0x212774&&(_0x1b8184=_0x49786a%0x4?_0x1b8184*0x40+_0x212774:_0x212774,_0x49786a++%0x4)?_0x633478+=String['fromCharCode'](0xff&_0x1b8184>>(-0x2*_0x49786a&0x6)):0x0){_0x212774=_0x54ee30['indexOf'](_0x212774);}for(let _0x52f2ed=0x0,_0xc73c65=_0x633478['length'];_0x52f2ed<_0xc73c65;_0x52f2ed++){_0x414ace+='%'+('00'+_0x633478['charCodeAt'](_0x52f2ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x414ace);};_0xc2ec['vfBUDX']=_0xddb452,_0xc2ec['neIRZZ']={},_0xc2ec['BTXXjr']=!![];}const _0x1855d6=_0x53fb18[0x0],_0x3a690e=_0x540fae+_0x1855d6,_0x5eddaa=_0xc2ec['neIRZZ'][_0x3a690e];return!_0x5eddaa?(_0xc2ecc9=_0xc2ec['vfBUDX'](_0xc2ecc9),_0xc2ec['neIRZZ'][_0x3a690e]=_0xc2ecc9):_0xc2ecc9=_0x5eddaa,_0xc2ecc9;}function fallbackHeaderTimeoutMs(_0x3a2b40){const _0x3400e5=_0x5f00f7,_0x2255e3=String(_0x3a2b40[_0x3400e5(0xf0)]||_0x3400e5(0xee))[_0x3400e5(0xec)]()||_0x3400e5(0xee),_0x46a2e2=_0x3a2b40[_0x3400e5(0xed)];if(_0x2255e3==='video')return HEADER_TIMEOUT_ASYNC_MS;if(_0x2255e3===_0x3400e5(0xee)){if(_0x46a2e2===![])return HEADER_TIMEOUT_SYNC_MS;return HEADER_TIMEOUT_STREAM_MS;}return HEADER_TIMEOUT_SYNC_MS;}export function resolveModelHeaderTimeoutMs(_0x2dde97,_0x4a20b4){const _0x34874c=_0x5f00f7;if(_0x4a20b4?.[_0x34874c(0xea)]!=null)return _0x4a20b4[_0x34874c(0xea)];const _0x56c3d9=String(_0x2dde97||'')[_0x34874c(0xec)](),_0x492298=String(_0x4a20b4?.[_0x34874c(0xf0)]||'chat')[_0x34874c(0xec)]()||_0x34874c(0xee);if(_0x492298===_0x34874c(0xee)){if(_0x4a20b4?.[_0x34874c(0xed)]===![])return HEADER_TIMEOUT_SYNC_MS;if(_0x4a20b4?.[_0x34874c(0xed)]===!![])return HEADER_TIMEOUT_STREAM_MS;}if(!_0x56c3d9)return fallbackHeaderTimeoutMs({'capability':_0x492298,'stream':_0x4a20b4?.[_0x34874c(0xed)]});const _0x4cf38c=registryMap()['get'](_0x56c3d9);if(!_0x4cf38c)return fallbackHeaderTimeoutMs({'capability':_0x492298,'stream':_0x4a20b4?.[_0x34874c(0xed)]});if(_0x492298===_0x34874c(0xdc)){const _0xdcb4b2=_0x4cf38c[_0x34874c(0xe8)][_0x34874c(0xe3)]('async')?_0x34874c(0xe0):_0x34874c(0xeb);if(_0xdcb4b2==='async')return HEADER_TIMEOUT_ASYNC_MS;return _0x4cf38c['defaultsTimeoutMs']??HEADER_TIMEOUT_SYNC_MS;}const _0x4d376d=inferChatMode(_0x4cf38c['resultModes']);if(_0x4d376d===_0x34874c(0xed))return HEADER_TIMEOUT_STREAM_MS;if(_0x4d376d===_0x34874c(0xeb))return _0x4cf38c[_0x34874c(0xe5)]??HEADER_TIMEOUT_SYNC_MS;return HEADER_TIMEOUT_ASYNC_MS;}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ServiceRequestOptions } from '../../typings/admin/comm/service';
|
|
2
|
+
/** BaseService:namespace + request + 标准 CRUD */
|
|
3
|
+
export declare class BaseService {
|
|
4
|
+
namespace?: string;
|
|
5
|
+
constructor(namespace?: string);
|
|
6
|
+
request(options?: ServiceRequestOptions): Promise<unknown>;
|
|
7
|
+
page(data?: Record<string, unknown>, options?: Pick<ServiceRequestOptions, 'timeoutMs'>): Promise<{
|
|
8
|
+
list: Record<string, unknown>[];
|
|
9
|
+
pagination: {
|
|
10
|
+
page: number;
|
|
11
|
+
size: number;
|
|
12
|
+
total: number;
|
|
13
|
+
};
|
|
14
|
+
}>;
|
|
15
|
+
list(data?: Record<string, unknown>, options?: Pick<ServiceRequestOptions, 'timeoutMs'>): Promise<Record<string, unknown>[]>;
|
|
16
|
+
info(params: {
|
|
17
|
+
id: number | string;
|
|
18
|
+
}): Promise<Record<string, unknown>>;
|
|
19
|
+
add(data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown>;
|
|
20
|
+
update(data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown>;
|
|
21
|
+
delete(data: {
|
|
22
|
+
ids: Array<number | string>;
|
|
23
|
+
force?: boolean;
|
|
24
|
+
} | Array<number | string> | Array<Record<string, unknown>>): Promise<unknown>;
|
|
25
|
+
restore(data: {
|
|
26
|
+
ids: Array<number | string>;
|
|
27
|
+
}): Promise<unknown>;
|
|
28
|
+
}
|
package/dist/client/base.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x340403=_0x4e28;(function(_0x447db9,_0x1eeb40){const _0x3fe73e=_0x4e28,_0x3ee58b=_0x447db9();while(!![]){try{const _0x5cad20=-parseInt(_0x3fe73e(0x1c3))/0x1*(parseInt(_0x3fe73e(0x1ad))/0x2)+-parseInt(_0x3fe73e(0x1a8))/0x3*(-parseInt(_0x3fe73e(0x1c6))/0x4)+-parseInt(_0x3fe73e(0x1bb))/0x5+-parseInt(_0x3fe73e(0x1c7))/0x6+parseInt(_0x3fe73e(0x1a7))/0x7*(parseInt(_0x3fe73e(0x1b6))/0x8)+-parseInt(_0x3fe73e(0x1b9))/0x9+parseInt(_0x3fe73e(0x1a5))/0xa*(-parseInt(_0x3fe73e(0x1b3))/0xb);if(_0x5cad20===_0x1eeb40)break;else _0x3ee58b['push'](_0x3ee58b['shift']());}catch(_0x2fedcd){_0x3ee58b['push'](_0x3ee58b['shift']());}}}(_0x3d19,0xcbd33));import{getClientRequest}from'./configure';function _0x4e28(_0x554c75,_0x4c735d){_0x554c75=_0x554c75-0x19d;const _0x3d1930=_0x3d19();let _0x4e28f9=_0x3d1930[_0x554c75];if(_0x4e28['YbVfca']===undefined){var _0x41e268=function(_0x2afb78){const _0x53101c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b45fd='',_0x48b6c7='';for(let _0x1327b4=0x0,_0x521276,_0x315948,_0x24ec4e=0x0;_0x315948=_0x2afb78['charAt'](_0x24ec4e++);~_0x315948&&(_0x521276=_0x1327b4%0x4?_0x521276*0x40+_0x315948:_0x315948,_0x1327b4++%0x4)?_0x1b45fd+=String['fromCharCode'](0xff&_0x521276>>(-0x2*_0x1327b4&0x6)):0x0){_0x315948=_0x53101c['indexOf'](_0x315948);}for(let _0x5b1b98=0x0,_0x24088b=_0x1b45fd['length'];_0x5b1b98<_0x24088b;_0x5b1b98++){_0x48b6c7+='%'+('00'+_0x1b45fd['charCodeAt'](_0x5b1b98)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48b6c7);};_0x4e28['psJogn']=_0x41e268,_0x4e28['ayLsfZ']={},_0x4e28['YbVfca']=!![];}const _0x2100fd=_0x3d1930[0x0],_0x4bc08f=_0x554c75+_0x2100fd,_0x59b469=_0x4e28['ayLsfZ'][_0x4bc08f];return!_0x59b469?(_0x4e28f9=_0x4e28['psJogn'](_0x4e28f9),_0x4e28['ayLsfZ'][_0x4bc08f]=_0x4e28f9):_0x4e28f9=_0x59b469,_0x4e28f9;}import{resolveModelHeaderTimeoutMs}from'./ai-model-registry';function stripTimeMeta(_0x1b45fd){const _0x4f6f89=_0x4e28;if(Array['isArray'](_0x1b45fd))return _0x1b45fd['map'](_0x48b6c7=>stripTimeMeta(_0x48b6c7));if(_0x1b45fd&&typeof _0x1b45fd==='object'){const _0x1327b4={..._0x1b45fd};return delete _0x1327b4[_0x4f6f89(0x1a3)],delete _0x1327b4[_0x4f6f89(0x1a6)],_0x1327b4;}return _0x1b45fd;}function _0x3d19(){const _0x1955bd=['zgvSzxrL','ue9tva','Dg9vChbLCKnHC2u','y3jLyxrLvgLTzq','BMfTzxnWywnL','mJbJDvroufa','DxbKyxrLvgLTzq','mteZmdq4mtf2tff3v0i','nKHHvw1fDa','y2HHDa','Dg9tDhjPBMC','l2rLBgv0zq','C3rYzwfT','mtqXnZCWoeHHCwDmBq','CMvZDg9Yzq','l2LUzM8','Aw5MBW','r0vu','DxjS','ntC5odu0wxPTvMzp','zgf0yq','Bw9KzwW','ohfyDMzLtW','DhjPBq','DgvZDa','mtG4nZyZm0TuAxvqvW','CMvXDwvZDa','oti4ntGWzg9guw9I','l2fKza','y2fWywjPBgL0Eq','Bwv0Ag9K','C3rHCNrZv2L0Aa','ywrK','l3vWzgf0zq','B3b0Aw9UCW','mvrYrvrwEa','C3bSAxq','CgfYyw1Z','mJeYnJK4oe11qwXKAG','mZGWmZe5mhLfv2riDW','C3rYAw5NAwz5','CgfNzq','DgLTzw91De1Z','C3rYAw5N'];_0x3d19=function(){return _0x1955bd;};return _0x3d19();}function isBusinessSseUrl(_0x521276){const _0x56dc25=_0x4e28,_0x315948=(_0x521276[_0x56dc25(0x1c4)]('?')[0x0]||'')['replace'](/\/+$/,'');return/\/pack\/translate$/[_0x56dc25(0x1b8)](_0x315948)||/\/dataPack\/translateTable$/['test'](_0x315948);}function resolveRequestTimeoutMs(_0x24ec4e,_0x5b1b98){const _0x217572=_0x4e28;if(_0x5b1b98[_0x217572(0x19e)]!=null)return _0x5b1b98[_0x217572(0x19e)];if(/\/ai\/model\/test\/?$/['test'](_0x24ec4e))return 0x1d4c0;if(isBusinessSseUrl(_0x24ec4e))return 0x0;if(/\/ensureHostZh\/?$/[_0x217572(0x1b8)](_0x24ec4e))return 0x493e0;const _0x24088b=_0x5b1b98[_0x217572(0x1b4)],_0x2b6692=_0x24088b?.[_0x217572(0x1c2)],_0x5f88f9=typeof _0x24088b?.[_0x217572(0x1b5)]===_0x217572(0x19f)?_0x24088b['model'][_0x217572(0x1b7)]():'',_0x7a57a=/\/ai\/model\/call\/?$/[_0x217572(0x1b8)](_0x24ec4e);if(_0x7a57a&&_0x5f88f9)return resolveModelHeaderTimeoutMs(_0x5f88f9,{'capability':typeof _0x24088b?.['capability']===_0x217572(0x19f)?_0x24088b[_0x217572(0x1bd)]:_0x217572(0x1a9),'stream':_0x2b6692?.[_0x217572(0x1ac)],'timeoutMs':_0x2b6692?.[_0x217572(0x19e)]});if(_0x7a57a)return resolveModelHeaderTimeoutMs('',{'capability':typeof _0x24088b?.['capability']===_0x217572(0x19f)?_0x24088b['capability']:_0x217572(0x1a9),'stream':_0x2b6692?.[_0x217572(0x1ac)],'timeoutMs':_0x2b6692?.['timeoutMs']});return;}export class BaseService{[_0x340403(0x1a4)];constructor(_0x104d5f){const _0xc5f5c7=_0x340403;if(_0x104d5f)this[_0xc5f5c7(0x1a4)]=_0x104d5f['replace'](/^\//,'');}async['request'](_0x37af1e={}){const _0x5dbf4c=_0x340403;let _0x5d2a6e=_0x37af1e[_0x5dbf4c(0x1b2)]||'';if(_0x5d2a6e&&!/^https?:\/\//[_0x5dbf4c(0x1b8)](_0x5d2a6e)){if(this[_0x5dbf4c(0x1a4)]){const _0x4e142e=this[_0x5dbf4c(0x1a4)][_0x5dbf4c(0x1bf)]('/')?this['namespace']:'/'+this[_0x5dbf4c(0x1a4)];_0x5d2a6e=_0x5d2a6e[_0x5dbf4c(0x1bf)]('/')?''+_0x4e142e+_0x5d2a6e:_0x4e142e+'/'+_0x5d2a6e;}if(!_0x5d2a6e[_0x5dbf4c(0x1bf)]('/'))_0x5d2a6e='/'+_0x5d2a6e;}const _0x5a79b5=resolveRequestTimeoutMs(_0x5d2a6e,_0x37af1e),_0x106d92=getClientRequest(),_0x4601ae=(_0x37af1e[_0x5dbf4c(0x1be)]||_0x5dbf4c(0x1b1))[_0x5dbf4c(0x1a2)]();if(_0x4601ae===_0x5dbf4c(0x1b1)){const _0x1fb1bd=_0x37af1e[_0x5dbf4c(0x1c5)]||{},_0x54ccd0=new URLSearchParams();for(const [_0x827e4e,_0x26d51c]of Object['entries'](_0x1fb1bd)){if(_0x26d51c==null)continue;_0x54ccd0['set'](_0x827e4e,String(_0x26d51c));}const _0x72ef7d=_0x54ccd0[_0x5dbf4c(0x1aa)]();return _0x106d92(_0x72ef7d?_0x5d2a6e+'?'+_0x72ef7d:_0x5d2a6e,{'timeoutMs':_0x5a79b5});}return _0x106d92(_0x5d2a6e,{'method':_0x4601ae,'body':JSON[_0x5dbf4c(0x1c8)](stripTimeMeta(_0x37af1e['data']??{})),'timeoutMs':_0x5a79b5});}[_0x340403(0x19d)](_0x54c61d={},_0x50a6c7={}){const _0x584cc8=_0x340403;return this[_0x584cc8(0x1ba)]({'url':'/page','method':_0x584cc8(0x1a1),'data':_0x54c61d,..._0x50a6c7});}['list'](_0x2a81c3={},_0x42da5f={}){const _0x44402a=_0x340403;return this[_0x44402a(0x1ba)]({'url':'/list','method':'POST','data':_0x2a81c3,..._0x42da5f});}[_0x340403(0x1b0)](_0x1c6bd9){const _0x545068=_0x340403;return this[_0x545068(0x1ba)]({'url':_0x545068(0x1af),'method':'GET','params':_0x1c6bd9});}[_0x340403(0x1c0)](_0x11ddc5){const _0x125aa2=_0x340403;return this['request']({'url':_0x125aa2(0x1bc),'method':_0x125aa2(0x1a1),'data':_0x11ddc5});}['update'](_0x5943ab){const _0x527fab=_0x340403;return this[_0x527fab(0x1ba)]({'url':_0x527fab(0x1c1),'method':'POST','data':_0x5943ab});}[_0x340403(0x1a0)](_0x5ebcc1){const _0x69f67c=_0x340403;return this[_0x69f67c(0x1ba)]({'url':_0x69f67c(0x1ab),'method':_0x69f67c(0x1a1),'data':_0x5ebcc1});}[_0x340403(0x1ae)](_0x4fa259){const _0x178910=_0x340403;return this[_0x178910(0x1ba)]({'url':'/restore','method':_0x178910(0x1a1),'data':_0x4fa259});}}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { RequestOptions } from '../../typings/admin/comm/request';
|
|
2
|
+
/** 宿主注入的 HTTP 能力(admin / web / uni 各自实现) */
|
|
3
|
+
export type ClientRequestFn = <T>(path: string, init?: RequestOptions) => Promise<T>;
|
|
4
|
+
/** 生产打包内的 eps.json:{ eps, admin, app, dict } */
|
|
5
|
+
export type EpsStaticBundle = {
|
|
6
|
+
/** 构建时写入的服务端 vome.eps;仅 true 时生产允许再请求 */
|
|
7
|
+
eps?: boolean;
|
|
8
|
+
admin?: Record<string, unknown>;
|
|
9
|
+
app?: Record<string, unknown>;
|
|
10
|
+
dict?: Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
export type ClientHooks = {
|
|
13
|
+
request: ClientRequestFn;
|
|
14
|
+
/** admin / web / uni 的 API 根路径(如 /dev) */
|
|
15
|
+
baseUrl?: string;
|
|
16
|
+
/**
|
|
17
|
+
* 生产环境 loadEps 数据源(打包内 build/eps.json)。
|
|
18
|
+
* DEV 不走此路径;PROD 未注入则 loadEps 抛错(禁止回退 HTTP)。
|
|
19
|
+
*/
|
|
20
|
+
loadStaticEps?: () => Promise<EpsStaticBundle | unknown>;
|
|
21
|
+
};
|
|
22
|
+
/** 各端注入;可多次调用(浅合并,便于 request 与 loadStaticEps 分文件注册) */
|
|
23
|
+
export declare function configureClient(next: Partial<ClientHooks> & {
|
|
24
|
+
request?: ClientRequestFn;
|
|
25
|
+
}): void;
|
|
26
|
+
export declare function getClientRequest(): ClientRequestFn;
|
|
27
|
+
export declare function getLoadStaticEps(): ClientHooks['loadStaticEps'];
|
|
28
|
+
export declare function getClientBaseUrl(): string;
|
|
29
|
+
/**
|
|
30
|
+
* 默认 loadStaticEps:读打包产物根目录 /eps.json
|
|
31
|
+
* (Vite 插件开发态中间件 + closeBundle 拷贝到 dist)
|
|
32
|
+
*/
|
|
33
|
+
export declare function fetchPackagedEpsJson(): Promise<EpsStaticBundle>;
|
package/dist/client/configure.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0xee151=_0x18f5;function _0x18f5(_0x4d5573,_0x3d95d4){_0x4d5573=_0x4d5573-0x8f;const _0x454355=_0x4543();let _0x18f501=_0x454355[_0x4d5573];if(_0x18f5['cAgaaI']===undefined){var _0x2b31f3=function(_0xbfbfb2){const _0x441419='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x43bcca='',_0x2c5d7d='';for(let _0x4af96c=0x0,_0x3883ae,_0x464000,_0x1912f7=0x0;_0x464000=_0xbfbfb2['charAt'](_0x1912f7++);~_0x464000&&(_0x3883ae=_0x4af96c%0x4?_0x3883ae*0x40+_0x464000:_0x464000,_0x4af96c++%0x4)?_0x43bcca+=String['fromCharCode'](0xff&_0x3883ae>>(-0x2*_0x4af96c&0x6)):0x0){_0x464000=_0x441419['indexOf'](_0x464000);}for(let _0x143904=0x0,_0x1a0750=_0x43bcca['length'];_0x143904<_0x1a0750;_0x143904++){_0x2c5d7d+='%'+('00'+_0x43bcca['charCodeAt'](_0x143904)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c5d7d);};_0x18f5['UtnsiE']=_0x2b31f3,_0x18f5['YbucWB']={},_0x18f5['cAgaaI']=!![];}const _0x1554b6=_0x454355[0x0],_0x412d9c=_0x4d5573+_0x1554b6,_0x3ecb7f=_0x18f5['YbucWB'][_0x412d9c];return!_0x3ecb7f?(_0x18f501=_0x18f5['UtnsiE'](_0x18f501),_0x18f5['YbucWB'][_0x412d9c]=_0x18f501):_0x18f501=_0x3ecb7f,_0x18f501;}function _0x4543(){const _0x86d45a=['mtqZmtzuAfzpy1u','zw52','nJiZmg1yAfDoBq','C3rHDhvZ','nJaZnZHqBKrUqLK','yMfZzvvYBa','ANnVBG','ndi4B2HbtNHx','w3zVBwuTy29Yzs9JBgLLBNrDignVBMzPz3vYzunSAwvUDcH7igjHC2vvCMWGFsKGyMvMB3jLigfWAvvYBcaVihjLCxvLC3q','mZCWnwveweDqqq','qKftrv9vuKW','nJq0mZj0tvbdAhi','CMvWBgfJzq','mZvNwLbjEM8','mZi3rvrIqvfr','mJe2mJbrtKXLBgq','w3zVBwuTzxbZxsbSB2fKu3rHDgLJrxbZigzHAwXLzdOG','w3zVBwuTy29Yzs9JBgLLBNrDignVBMzPz3vYzunSAwvUDcH7ihjLCxvLC3qGFsKGyMvMB3jLigXVywrfChmGlYbZzxj2AwnL','Bg9Hzfn0yxrPy0vWCW','mtG1mdi3n2Pvu3zizW','zxbZlMPZB24','mZzMuwTWEfu','ntiYwM90DKLj','zM9Y','mtuZqMXequjQ'];_0x4543=function(){return _0x86d45a;};return _0x4543();}(function(_0x506a4e,_0x1e326a){const _0x2f90dc=_0x18f5,_0x113e2a=_0x506a4e();while(!![]){try{const _0x5f3472=parseInt(_0x2f90dc(0x9d))/0x1*(parseInt(_0x2f90dc(0x96))/0x2)+parseInt(_0x2f90dc(0x93))/0x3*(parseInt(_0x2f90dc(0xa4))/0x4)+-parseInt(_0x2f90dc(0x91))/0x5*(-parseInt(_0x2f90dc(0xa5))/0x6)+-parseInt(_0x2f90dc(0x9c))/0x7*(parseInt(_0x2f90dc(0x9a))/0x8)+-parseInt(_0x2f90dc(0xa7))/0x9*(parseInt(_0x2f90dc(0x9e))/0xa)+parseInt(_0x2f90dc(0xa2))/0xb+-parseInt(_0x2f90dc(0x8f))/0xc*(parseInt(_0x2f90dc(0x98))/0xd);if(_0x5f3472===_0x1e326a)break;else _0x113e2a['push'](_0x113e2a['shift']());}catch(_0x27ae1d){_0x113e2a['push'](_0x113e2a['shift']());}}}(_0x4543,0x1b064));const CLIENT_HOOKS_KEY=Symbol[_0xee151(0xa6)]('vome.client.hooks');function getHooks(){const _0x43bcca=globalThis;return _0x43bcca[CLIENT_HOOKS_KEY]??null;}function setHooks(_0x2c5d7d){const _0x4af96c=globalThis;_0x4af96c[CLIENT_HOOKS_KEY]=_0x2c5d7d;}export function configureClient(_0x3883ae){setHooks({...getHooks()||{},..._0x3883ae});}export function getClientRequest(){const _0x181075=_0xee151,_0x464000=getHooks();if(!_0x464000?.['request'])throw new Error(_0x181075(0xa0));return _0x464000['request'];}export function getLoadStaticEps(){const _0xe0ab01=_0xee151;return getHooks()?.[_0xe0ab01(0xa1)];}export function getClientBaseUrl(){const _0x3523a9=_0xee151,_0x1912f7=getHooks()?.[_0x3523a9(0x94)];if(!_0x1912f7)throw new Error(_0x3523a9(0x97));return _0x1912f7;}export async function fetchPackagedEpsJson(){const _0x51cd99=_0xee151,_0x143904=import.meta,_0x1a0750=_0x143904[_0x51cd99(0x90)]?.[_0x51cd99(0x99)]||'/',_0x247ded=String(_0x1a0750)[_0x51cd99(0x9b)](/\/?$/,'/')+_0x51cd99(0xa3),_0x1c8af5=await fetch(_0x247ded);if(!_0x1c8af5['ok'])throw new Error(_0x51cd99(0x9f)+_0x247ded+'\x20('+_0x1c8af5[_0x51cd99(0x92)]+')');return await _0x1c8af5[_0x51cd99(0x95)]();}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** EPS /data 下发的扁平字典行 */
|
|
2
|
+
export type EpsDictRow = {
|
|
3
|
+
id: number;
|
|
4
|
+
name: string;
|
|
5
|
+
typeId: number;
|
|
6
|
+
parentId?: number | null;
|
|
7
|
+
orderNum?: number;
|
|
8
|
+
value?: unknown;
|
|
9
|
+
children?: EpsDictNode[];
|
|
10
|
+
};
|
|
11
|
+
export type EpsDictNode = EpsDictRow & {
|
|
12
|
+
label: string;
|
|
13
|
+
value: string | number | boolean;
|
|
14
|
+
children?: EpsDictNode[];
|
|
15
|
+
};
|
|
16
|
+
export type EpsDictMap = Record<string, EpsDictNode[]>;
|
|
17
|
+
export declare function getDictMap(): EpsDictMap;
|
|
18
|
+
/** 字典树(含 children);表单下拉 / switch 等 */
|
|
19
|
+
export declare function getDict(typeKey: string): EpsDictNode[];
|
|
20
|
+
/** 根项 → { label, value, color? };color 取自子节点 name===color */
|
|
21
|
+
export declare function getDictOptions(typeKey: string): {
|
|
22
|
+
label: string;
|
|
23
|
+
value: string | number;
|
|
24
|
+
color: string;
|
|
25
|
+
}[];
|
|
26
|
+
export declare function clearDictCache(typeKey?: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* 用 EPS 下发的扁平 dict 灌入本地缓存(组树)
|
|
29
|
+
* 空对象不覆盖已有缓存
|
|
30
|
+
*/
|
|
31
|
+
export declare function hydrateDictFromEps(raw: Record<string, EpsDictRow[]> | null | undefined): EpsDictMap;
|
package/dist/client/dict.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x42d0fa=_0x5139;(function(_0x410839,_0x542e33){const _0x30e82a=_0x5139,_0x45dd74=_0x410839();while(!![]){try{const _0x4e1898=parseInt(_0x30e82a(0x119))/0x1*(-parseInt(_0x30e82a(0x10f))/0x2)+parseInt(_0x30e82a(0x117))/0x3+-parseInt(_0x30e82a(0x114))/0x4+parseInt(_0x30e82a(0x111))/0x5*(-parseInt(_0x30e82a(0x108))/0x6)+-parseInt(_0x30e82a(0x118))/0x7*(parseInt(_0x30e82a(0x115))/0x8)+-parseInt(_0x30e82a(0x109))/0x9+-parseInt(_0x30e82a(0x10c))/0xa*(-parseInt(_0x30e82a(0x104))/0xb);if(_0x4e1898===_0x542e33)break;else _0x45dd74['push'](_0x45dd74['shift']());}catch(_0x359609){_0x45dd74['push'](_0x45dd74['shift']());}}}(_0x9da2,0x1e5b7));import{deepTree}from'../shared/tree';function isEmpty(_0x4067a5){return _0x4067a5===''||_0x4067a5===null||_0x4067a5===undefined;}const DICT_DATA_KEY=Symbol[_0x42d0fa(0x11a)](_0x42d0fa(0x110));function dictData(){const _0x4e4237=_0x42d0fa,_0x52b8cf=globalThis;if(!_0x52b8cf[DICT_DATA_KEY])_0x52b8cf[DICT_DATA_KEY]=Object[_0x4e4237(0x116)](null);return _0x52b8cf[DICT_DATA_KEY];}export function getDictMap(){return dictData();}function _0x5139(_0x2f4c44,_0x1dc700){_0x2f4c44=_0x2f4c44-0x104;const _0x9da2fa=_0x9da2();let _0x513922=_0x9da2fa[_0x2f4c44];if(_0x5139['EkpsAN']===undefined){var _0x2b19aa=function(_0x50f165){const _0xc2526e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4067a5='',_0x52b8cf='';for(let _0x231dfb=0x0,_0x238e50,_0x4cdc29,_0x25b694=0x0;_0x4cdc29=_0x50f165['charAt'](_0x25b694++);~_0x4cdc29&&(_0x238e50=_0x231dfb%0x4?_0x238e50*0x40+_0x4cdc29:_0x4cdc29,_0x231dfb++%0x4)?_0x4067a5+=String['fromCharCode'](0xff&_0x238e50>>(-0x2*_0x231dfb&0x6)):0x0){_0x4cdc29=_0xc2526e['indexOf'](_0x4cdc29);}for(let _0x52d23d=0x0,_0x428922=_0x4067a5['length'];_0x52d23d<_0x428922;_0x52d23d++){_0x52b8cf+='%'+('00'+_0x4067a5['charCodeAt'](_0x52d23d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52b8cf);};_0x5139['jziMuK']=_0x2b19aa,_0x5139['FVTLzA']={},_0x5139['EkpsAN']=!![];}const _0x12143f=_0x9da2fa[0x0],_0x5ee419=_0x2f4c44+_0x12143f,_0x40f56a=_0x5139['FVTLzA'][_0x5ee419];return!_0x40f56a?(_0x513922=_0x5139['jziMuK'](_0x513922),_0x5139['FVTLzA'][_0x5ee419]=_0x513922):_0x513922=_0x40f56a,_0x513922;}export function getDict(_0x231dfb){return dictData()[_0x231dfb]||[];}function _0x9da2(){const _0x553c13=['mtiXmdCXmNzOv2nxAW','y3jLyxrL','ndaYmtq3C2PZqMnK','n1LqsMXwuq','ndfHA0jirg8','zM9Y','y29SB3i','mJjSqLjqwNy','BwfW','DMfSDwu','BgfIzwW','mta3nti1nhH5zM9Ysa','ndC1mZK4A3Dvs1zz','A2v5CW','zMLUza','mZeYnZKWmejmy3HlDG','BMfTzq','yxnJ','nZy0mLPVzfPmDG','DM9Tzs5KAwn0lMrHDge','nwrXzgToAG','y2HPBgrYzw4','zw50CMLLCW','mZGXmdiWC2rjrNbO'];_0x9da2=function(){return _0x553c13;};return _0x9da2();}export function getDictOptions(_0x238e50){const _0x164347=_0x42d0fa;return getDict(_0x238e50)[_0x164347(0x105)](_0x4cdc29=>{const _0x5da50d=_0x164347,_0x25b694=_0x4cdc29[_0x5da50d(0x112)]?.[_0x5da50d(0x10b)](_0x52d23d=>_0x52d23d[_0x5da50d(0x10d)]===_0x5da50d(0x11b));return{'label':_0x4cdc29[_0x5da50d(0x107)]||_0x4cdc29['name'],'value':_0x4cdc29['value'],'color':_0x25b694?.[_0x5da50d(0x106)]!=null&&_0x25b694[_0x5da50d(0x106)]!==''?String(_0x25b694['value']):undefined};});}export function clearDictCache(_0x428922){const _0x466f42=_0x42d0fa,_0x2cc0dc=dictData();if(_0x428922){delete _0x2cc0dc[_0x428922];return;}for(const _0x3bbb67 of Object[_0x466f42(0x10a)](_0x2cc0dc))delete _0x2cc0dc[_0x3bbb67];}export function hydrateDictFromEps(_0x4d4aa7){const _0x29c90c=_0x42d0fa,_0x9abf25=dictData();if(!_0x4d4aa7||typeof _0x4d4aa7!=='object')return _0x9abf25;for(const [_0x391b7c,_0x583878]of Object[_0x29c90c(0x113)](_0x4d4aa7)){if(!Array['isArray'](_0x583878))continue;const _0xf4b13d=_0x583878[_0x29c90c(0x105)](_0x4a8637=>{const _0x1831fe=_0x29c90c,_0x4a2cf1=isEmpty(_0x4a8637[_0x1831fe(0x106)])?_0x4a8637['id']:_0x4a8637[_0x1831fe(0x106)];return{..._0x4a8637,'label':_0x4a8637['name'],'value':_0x4a2cf1};});_0x9abf25[_0x391b7c]=deepTree(_0xf4b13d,_0x29c90c(0x10e));}return _0x9abf25;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x5ba8(){const _0x2724d3=['ow9kBhjIuW','mJq0otC4BxHhBfrv','B2jQzwn0','zgLJDa','yM9VBgvHBG','mJa2nte0zxLmyM1z','y29Kzq','zxbZ','mJmZmJqZmNPMt09NBq','mta5mJzoA2Pyuxi','nJK3mdu4muvythLUuq','mJC0nJG0y3vNBwX2','nJi1CuD6wfLL','zgf0yq','Bw9KDwXLCW','AxnbCNjHEq','nda1mteWvwTIvvrK'];_0x5ba8=function(){return _0x2724d3;};return _0x5ba8();}(function(_0x5776eb,_0x53799e){const _0x20aa6c=_0x587b,_0x1e00a7=_0x5776eb();while(!![]){try{const _0x10345e=-parseInt(_0x20aa6c(0x1ae))/0x1+-parseInt(_0x20aa6c(0x1ac))/0x2+parseInt(_0x20aa6c(0x1ad))/0x3*(-parseInt(_0x20aa6c(0x1a7))/0x4)+parseInt(_0x20aa6c(0x1a8))/0x5*(-parseInt(_0x20aa6c(0x1a5))/0x6)+-parseInt(_0x20aa6c(0x1b2))/0x7+parseInt(_0x20aa6c(0x1a4))/0x8+parseInt(_0x20aa6c(0x1a6))/0x9;if(_0x10345e===_0x53799e)break;else _0x1e00a7['push'](_0x1e00a7['shift']());}catch(_0x1fd6dd){_0x1e00a7['push'](_0x1e00a7['shift']());}}}(_0x5ba8,0x25efe));function _0x587b(_0x41671f,_0x50cccc){_0x41671f=_0x41671f-0x1a4;const _0x5ba8f4=_0x5ba8();let _0x587b85=_0x5ba8f4[_0x41671f];if(_0x587b['PCQxha']===undefined){var _0x23a181=function(_0x1abe66){const _0x511556='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1517de='',_0x3403f7='';for(let _0xda173=0x0,_0x5e0d73,_0xa1ad4d,_0x109cf9=0x0;_0xa1ad4d=_0x1abe66['charAt'](_0x109cf9++);~_0xa1ad4d&&(_0x5e0d73=_0xda173%0x4?_0x5e0d73*0x40+_0xa1ad4d:_0xa1ad4d,_0xda173++%0x4)?_0x1517de+=String['fromCharCode'](0xff&_0x5e0d73>>(-0x2*_0xda173&0x6)):0x0){_0xa1ad4d=_0x511556['indexOf'](_0xa1ad4d);}for(let _0x10152a=0x0,_0xcc45be=_0x1517de['length'];_0x10152a<_0xcc45be;_0x10152a++){_0x3403f7+='%'+('00'+_0x1517de['charCodeAt'](_0x10152a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3403f7);};_0x587b['jlRbZa']=_0x23a181,_0x587b['QZeWzp']={},_0x587b['PCQxha']=!![];}const _0x2d0266=_0x5ba8f4[0x0],_0x44032d=_0x41671f+_0x2d0266,_0x532fca=_0x587b['QZeWzp'][_0x44032d];return!_0x532fca?(_0x587b85=_0x587b['jlRbZa'](_0x587b85),_0x587b['QZeWzp'][_0x44032d]=_0x587b85):_0x587b85=_0x532fca,_0x587b85;}function isEpsPayload(_0x1517de){const _0x3612ac=_0x587b;return Boolean(_0x1517de&&typeof _0x1517de==='object'&&_0x3612ac(0x1aa)in _0x1517de&&_0x1517de[_0x3612ac(0x1aa)]&&typeof _0x1517de[_0x3612ac(0x1aa)]===_0x3612ac(0x1af));}export function parseEpsPayload(_0x3403f7){const _0x2a9a1f=_0x587b;if(!_0x3403f7||typeof _0x3403f7!==_0x2a9a1f(0x1af))return{'modules':{},'dict':{}};const _0xda173=_0x3403f7;if(_0x2a9a1f(0x1b3)in _0xda173&&_0x2a9a1f(0x1a9)in _0xda173&&_0xda173[_0x2a9a1f(0x1a9)]&&typeof _0xda173[_0x2a9a1f(0x1a9)]==='object'&&!Array[_0x2a9a1f(0x1ab)](_0xda173[_0x2a9a1f(0x1a9)]))return parseEpsPayload(_0xda173[_0x2a9a1f(0x1a9)]);if(isEpsPayload(_0x3403f7))return{'eps':typeof _0x3403f7[_0x2a9a1f(0x1b4)]===_0x2a9a1f(0x1b1)?_0x3403f7[_0x2a9a1f(0x1b4)]:undefined,'modules':_0x3403f7['modules']||{},'dict':_0x3403f7[_0x2a9a1f(0x1b0)]&&typeof _0x3403f7[_0x2a9a1f(0x1b0)]===_0x2a9a1f(0x1af)?_0x3403f7['dict']:{}};return{'modules':_0x3403f7,'dict':{}};}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EpsEntity, EpsModuleMap } from '../../typings/admin/comm/eps';
|
|
2
|
+
export type EpsSide = 'admin' | 'app';
|
|
3
|
+
export { parseEpsPayload } from './eps-payload';
|
|
4
|
+
/**
|
|
5
|
+
* 拉取 EPS。
|
|
6
|
+
* - DEV:始终 HTTP
|
|
7
|
+
* - PROD:先读打包 eps.json;仅当 bundle.eps === true 才请求;失败/空 modules 回退本地
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadEps(force?: boolean, side?: EpsSide): Promise<EpsModuleMap>;
|
|
10
|
+
export declare function loadAllEps(force?: boolean): Promise<{
|
|
11
|
+
admin: EpsModuleMap;
|
|
12
|
+
app: EpsModuleMap;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function getEps(side?: EpsSide): EpsModuleMap;
|
|
15
|
+
/** 按 prefix 找实体,如 /admin/base/user、/app/user/info */
|
|
16
|
+
export declare function findEpsEntity(prefix: string, side?: EpsSide): EpsEntity;
|
|
17
|
+
export declare function clearEpsCache(side?: EpsSide): void;
|
package/dist/client/eps.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const _0x505b84=_0x156f;(function(_0x1289c7,_0x42bede){const _0x156afa=_0x156f,_0x193ceb=_0x1289c7();while(!![]){try{const _0x41af08=parseInt(_0x156afa(0x18e))/0x1*(parseInt(_0x156afa(0x17c))/0x2)+-parseInt(_0x156afa(0x180))/0x3+parseInt(_0x156afa(0x17e))/0x4*(parseInt(_0x156afa(0x182))/0x5)+-parseInt(_0x156afa(0x17b))/0x6+-parseInt(_0x156afa(0x186))/0x7*(-parseInt(_0x156afa(0x181))/0x8)+-parseInt(_0x156afa(0x18d))/0x9+-parseInt(_0x156afa(0x18b))/0xa*(parseInt(_0x156afa(0x18a))/0xb);if(_0x41af08===_0x42bede)break;else _0x193ceb['push'](_0x193ceb['shift']());}catch(_0x69f1d7){_0x193ceb['push'](_0x193ceb['shift']());}}}(_0x2a6a,0x581d4));import{getClientRequest,getLoadStaticEps}from'./configure';import{clearDictCache,hydrateDictFromEps}from'./dict';import{parseEpsPayload}from'./eps-payload';export{parseEpsPayload}from'./eps-payload';function _0x2a6a(){const _0x2ecaaf=['zMLUza','zgLJDa','yxbW','nZCXmti3thjvyujs','l2fWCc9IyxnLl29Wzw4VzxbZ','yM9VBgvHBG','DM9Tzs5LChmUy2fJAgu','nJe5m3DkEe9bua','nJCZmg9cAfDdBW','CMvWBgfJzq','nZK1ndGZzKzqwMPA','nZCXzxD6uufV','zxbZ','DMfSDwvZ','Bw9KDwXLCW','BgvUz3rO','revw','ywrTAw4','zM9Y','ntG3nZG0AMjRr1jP','mZC2ywTRrM1S','ChjLzML4','ndrVwujLug0','B2jQzwn0','mtmWmZq0CvnXqMfY','ofD1qKjxEG','mZi0nZC1zvrwAgnc'];_0x2a6a=function(){return _0x2ecaaf;};return _0x2a6a();}const EPS_URL={'admin':'/admin/base/open/eps','app':_0x505b84(0x187)},EPS_CACHE_KEY=Symbol[_0x505b84(0x17a)](_0x505b84(0x189));function epsCache(){const _0x313660=globalThis;return!_0x313660[EPS_CACHE_KEY]&&(_0x313660[EPS_CACHE_KEY]={'admin':null,'app':null}),_0x313660[EPS_CACHE_KEY];}function isDev(){const _0x573758=_0x505b84;try{return Boolean(import.meta.env?.[_0x573758(0x193)]);}catch{return![];}}function countModules(_0x2d1a05){const _0x595291=_0x505b84;if(!_0x2d1a05)return 0x0;return Object[_0x595291(0x190)](_0x2d1a05)['reduce']((_0xd8a60f,_0x7273cf)=>_0xd8a60f+(_0x7273cf?.[_0x595291(0x192)]||0x0),0x0);}function normalizeStaticBundle(_0x54f5a1){const _0x30d4dd=_0x505b84;if(!_0x54f5a1||typeof _0x54f5a1!==_0x30d4dd(0x17f))return{};const _0x7f8747=_0x54f5a1;if(!('admin'in _0x7f8747)&&!(_0x30d4dd(0x185)in _0x7f8747)&&!(_0x30d4dd(0x191)in _0x7f8747))return{'admin':_0x7f8747,'app':{},'dict':{},'eps':![]};if('modules'in _0x7f8747&&typeof _0x7f8747[_0x30d4dd(0x191)]==='object'){const _0x25c33d=parseEpsPayload(_0x7f8747);return{'eps':typeof _0x7f8747[_0x30d4dd(0x18f)]==='boolean'?_0x7f8747[_0x30d4dd(0x18f)]:_0x25c33d[_0x30d4dd(0x18f)],'admin':_0x25c33d[_0x30d4dd(0x191)],'app':{},'dict':_0x25c33d['dict']};}return{'eps':typeof _0x7f8747[_0x30d4dd(0x18f)]===_0x30d4dd(0x188)?_0x7f8747[_0x30d4dd(0x18f)]:undefined,'admin':_0x7f8747[_0x30d4dd(0x194)]||{},'app':_0x7f8747[_0x30d4dd(0x185)]||{},'dict':_0x7f8747[_0x30d4dd(0x184)]||{}};}function applyPayload(_0x15ae07,_0x3002e7){const _0x478242=_0x505b84,_0x2cddc2=epsCache();return _0x2cddc2[_0x15ae07]=_0x3002e7[_0x478242(0x191)]||{},_0x3002e7['dict']&&Object['keys'](_0x3002e7[_0x478242(0x184)])['length']&&hydrateDictFromEps(_0x3002e7[_0x478242(0x184)]),_0x2cddc2[_0x15ae07];}function applyStatic(_0x5cc1b9,_0x228b54){const _0x6c4814=_0x505b84,_0x594182=epsCache(),_0x3a7291=(_0x5cc1b9==='admin'?_0x228b54[_0x6c4814(0x194)]:_0x228b54[_0x6c4814(0x185)])||{};return _0x594182[_0x5cc1b9]=_0x3a7291,_0x228b54[_0x6c4814(0x184)]&&Object['keys'](_0x228b54[_0x6c4814(0x184)])['length']&&hydrateDictFromEps(_0x228b54['dict']),_0x3a7291;}function _0x156f(_0x30e0ca,_0x29d433){_0x30e0ca=_0x30e0ca-0x17a;const _0x2a6a6d=_0x2a6a();let _0x156fc0=_0x2a6a6d[_0x30e0ca];if(_0x156f['nDCNAd']===undefined){var _0x2226fa=function(_0x34a4ed){const _0x2b6004='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x313660='',_0x2d1a05='';for(let _0xd8a60f=0x0,_0x7273cf,_0x54f5a1,_0x7f8747=0x0;_0x54f5a1=_0x34a4ed['charAt'](_0x7f8747++);~_0x54f5a1&&(_0x7273cf=_0xd8a60f%0x4?_0x7273cf*0x40+_0x54f5a1:_0x54f5a1,_0xd8a60f++%0x4)?_0x313660+=String['fromCharCode'](0xff&_0x7273cf>>(-0x2*_0xd8a60f&0x6)):0x0){_0x54f5a1=_0x2b6004['indexOf'](_0x54f5a1);}for(let _0x25c33d=0x0,_0x15ae07=_0x313660['length'];_0x25c33d<_0x15ae07;_0x25c33d++){_0x2d1a05+='%'+('00'+_0x313660['charCodeAt'](_0x25c33d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d1a05);};_0x156f['TWibti']=_0x2226fa,_0x156f['YIqXvK']={},_0x156f['nDCNAd']=!![];}const _0x11f654=_0x2a6a6d[0x0],_0x44aad8=_0x30e0ca+_0x11f654,_0x5d1cc7=_0x156f['YIqXvK'][_0x44aad8];return!_0x5d1cc7?(_0x156fc0=_0x156f['TWibti'](_0x156fc0),_0x156f['YIqXvK'][_0x44aad8]=_0x156fc0):_0x156fc0=_0x5d1cc7,_0x156fc0;}async function fetchLive(_0x4fa273){const _0x26bb64=getClientRequest(),_0xd7d4ca=await _0x26bb64(EPS_URL[_0x4fa273],{'toast':![]});return parseEpsPayload(_0xd7d4ca);}export async function loadEps(_0x524198=![],_0x37f2d5=_0x505b84(0x194)){const _0x38b31e=_0x505b84,_0x234264=epsCache();if(_0x234264[_0x37f2d5]&&!_0x524198)return _0x234264[_0x37f2d5];if(isDev())return applyPayload(_0x37f2d5,await fetchLive(_0x37f2d5));const _0x3e885f=getLoadStaticEps();if(!_0x3e885f)throw new Error('[vome-eps]\x20PROD\x20requires\x20configureClient({\x20loadStaticEps\x20})\x20(packaged\x20eps.json)');const _0x36f0b2=normalizeStaticBundle(await _0x3e885f());applyStatic(_0x37f2d5,_0x36f0b2);if(_0x36f0b2['eps']!==!![])return _0x234264[_0x37f2d5];try{const _0x3865d2=await fetchLive(_0x37f2d5);if(countModules(_0x3865d2[_0x38b31e(0x191)])>0x0)return applyPayload(_0x37f2d5,_0x3865d2);}catch{}return _0x234264[_0x37f2d5];}export async function loadAllEps(_0x59239e=![]){const _0x28043e=_0x505b84,_0x4498ad=epsCache();return await Promise['all']([loadEps(_0x59239e,_0x28043e(0x194)),loadEps(_0x59239e,_0x28043e(0x185))]),{'admin':_0x4498ad[_0x28043e(0x194)],'app':_0x4498ad['app']};}export function getEps(_0x471e13=_0x505b84(0x194)){return epsCache()[_0x471e13];}export function findEpsEntity(_0x9b4ec1,_0x5ac752=_0x505b84(0x194)){const _0x5e0dc1=_0x505b84,_0x370c90=epsCache()[_0x5ac752];if(!_0x370c90)return;for(const _0x36afb3 of Object[_0x5e0dc1(0x190)](_0x370c90)){const _0x4b4824=_0x36afb3[_0x5e0dc1(0x183)](_0x39f208=>_0x39f208['prefix']===_0x9b4ec1||_0x39f208[_0x5e0dc1(0x17d)]===_0x9b4ec1[_0x5e0dc1(0x18c)](/\/$/,''));if(_0x4b4824)return _0x4b4824;}return;}export function clearEpsCache(_0x21603f){const _0x2c1df6=_0x505b84,_0x486bd9=epsCache();if(_0x21603f){_0x486bd9[_0x21603f]=null;return;}_0x486bd9[_0x2c1df6(0x194)]=null,_0x486bd9[_0x2c1df6(0x185)]=null,clearDictCache();}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
export {}
|
|
1
|
+
export { configureClient, getClientRequest, fetchPackagedEpsJson, type ClientHooks, type ClientRequestFn, type EpsStaticBundle, } from './configure';
|
|
2
|
+
export { loadEps, loadAllEps, getEps, findEpsEntity, clearEpsCache, parseEpsPayload, type EpsSide, } from './eps';
|
|
3
|
+
export { getDict, getDictMap, getDictOptions, hydrateDictFromEps, clearDictCache, type EpsDictNode, type EpsDictMap, type EpsDictRow, } from './dict';
|
|
4
|
+
export { BaseService } from './base';
|
|
5
|
+
export { registerChatModels, type ChatModelRegistryEntry, } from './ai-model-registry';
|
|
6
|
+
export { service, getService, createEps, bindEpsHotReload, setServicePerms, resolveService, serviceOf, type CreateEpsOptions, type ServiceLeaf, type ServiceTree, } from './service';
|
|
7
|
+
export { createLocaleStore, LOCALE_CHANGE_EVENT, subscribeLocaleChange, notifyLocaleChange, useOnLocaleChange, type I18nLangItem, type LocalePersist, type LocalePackApi, type CreateLocaleStoreOptions, type LocaleChangeDetail, } from './locale-store';
|
package/dist/client/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x38974a,_0x36a98c){var _0x536a08=_0x39a1,_0x584d44=_0x38974a();while(!![]){try{var _0x47dccb=-parseInt(_0x536a08(0x130))/0x1+parseInt(_0x536a08(0x133))/0x2*(-parseInt(_0x536a08(0x12c))/0x3)+-parseInt(_0x536a08(0x131))/0x4+-parseInt(_0x536a08(0x135))/0x5*(-parseInt(_0x536a08(0x136))/0x6)+parseInt(_0x536a08(0x12d))/0x7*(parseInt(_0x536a08(0x132))/0x8)+parseInt(_0x536a08(0x134))/0x9+parseInt(_0x536a08(0x12e))/0xa*(-parseInt(_0x536a08(0x12f))/0xb);if(_0x47dccb===_0x36a98c)break;else _0x584d44['push'](_0x584d44['shift']());}catch(_0xc42669){_0x584d44['push'](_0x584d44['shift']());}}}(_0x4932,0xb4f9c));function _0x39a1(_0x313217,_0x3dd078){_0x313217=_0x313217-0x12c;var _0x4932b5=_0x4932();var _0x39a1f5=_0x4932b5[_0x313217];if(_0x39a1['MRgMzb']===undefined){var _0x4e78db=function(_0x2b5921){var _0x4f000f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x43f46e='',_0x2cedd6='';for(var _0x2b532b=0x0,_0x132584,_0x4c169a,_0x49c966=0x0;_0x4c169a=_0x2b5921['charAt'](_0x49c966++);~_0x4c169a&&(_0x132584=_0x2b532b%0x4?_0x132584*0x40+_0x4c169a:_0x4c169a,_0x2b532b++%0x4)?_0x43f46e+=String['fromCharCode'](0xff&_0x132584>>(-0x2*_0x2b532b&0x6)):0x0){_0x4c169a=_0x4f000f['indexOf'](_0x4c169a);}for(var _0x4cc031=0x0,_0x26ed99=_0x43f46e['length'];_0x4cc031<_0x26ed99;_0x4cc031++){_0x2cedd6+='%'+('00'+_0x43f46e['charCodeAt'](_0x4cc031)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2cedd6);};_0x39a1['vEhjac']=_0x4e78db,_0x39a1['NeAAOJ']={},_0x39a1['MRgMzb']=!![];}var _0x10e8f7=_0x4932b5[0x0],_0x49bc72=_0x313217+_0x10e8f7,_0x253d47=_0x39a1['NeAAOJ'][_0x49bc72];return!_0x253d47?(_0x39a1f5=_0x39a1['vEhjac'](_0x39a1f5),_0x39a1['NeAAOJ'][_0x49bc72]=_0x39a1f5):_0x39a1f5=_0x253d47,_0x39a1f5;}function _0x4932(){var _0x2e66a6=['mZu0otK4ofPdyMXAuq','ogjsC29kDa','mtuWnZzzuhfmvMK','odeZmZa4nfvVuer0zq','mZe1mZG1Avv5Cvbd','odrjqMHwu2S','ntrLDeXWD3q','nty4mdu3n0Hmuhn3qG','nZq4mda1mhPhrhnmsq','mtfmrhLhzvq','odu4mdnnAfj1tK8'];_0x4932=function(){return _0x2e66a6;};return _0x4932();}export{configureClient,getClientRequest,fetchPackagedEpsJson}from'./configure';export{loadEps,loadAllEps,getEps,findEpsEntity,clearEpsCache,parseEpsPayload}from'./eps';export{getDict,getDictMap,getDictOptions,hydrateDictFromEps,clearDictCache}from'./dict';export{BaseService}from'./base';export{registerChatModels}from'./ai-model-registry';export{service,getService,createEps,bindEpsHotReload,setServicePerms,resolveService,serviceOf}from'./service';export{createLocaleStore,LOCALE_CHANGE_EVENT,subscribeLocaleChange,notifyLocaleChange,useOnLocaleChange}from'./locale-store';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** 与 window CustomEvent / uni.$emit 同名 */
|
|
2
|
+
export declare const LOCALE_CHANGE_EVENT = "vome:locale-change";
|
|
3
|
+
export type LocaleChangeDetail = {
|
|
4
|
+
code: string;
|
|
5
|
+
epoch: number;
|
|
6
|
+
};
|
|
7
|
+
type LocaleChangeHandler = (detail: LocaleChangeDetail) => void;
|
|
8
|
+
/** 跨端订阅(H5 / WebView / 小程序均可) */
|
|
9
|
+
export declare function subscribeLocaleChange(handler: LocaleChangeHandler): () => void;
|
|
10
|
+
export declare function notifyLocaleChange(detail: LocaleChangeDetail): void;
|
|
11
|
+
/**
|
|
12
|
+
* Vue 组件内订阅语种变更(自动卸载)。
|
|
13
|
+
* 用于 web / uniapp / 业务页在切语种后重拉接口。
|
|
14
|
+
*/
|
|
15
|
+
export declare function useOnLocaleChange(handler: LocaleChangeHandler): void;
|
|
16
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x7397dc=_0x5981;(function(_0x43008b,_0x268014){const _0x1c510b=_0x5981,_0x206142=_0x43008b();while(!![]){try{const _0x5b0294=parseInt(_0x1c510b(0x191))/0x1+-parseInt(_0x1c510b(0x19a))/0x2+-parseInt(_0x1c510b(0x19c))/0x3+-parseInt(_0x1c510b(0x195))/0x4*(-parseInt(_0x1c510b(0x1a1))/0x5)+-parseInt(_0x1c510b(0x197))/0x6*(-parseInt(_0x1c510b(0x1a0))/0x7)+-parseInt(_0x1c510b(0x193))/0x8+parseInt(_0x1c510b(0x192))/0x9;if(_0x5b0294===_0x268014)break;else _0x206142['push'](_0x206142['shift']());}catch(_0x52f236){_0x206142['push'](_0x206142['shift']());}}}(_0x4ff3,0xd48a4));import{onMounted,onUnmounted}from'vue';export const LOCALE_CHANGE_EVENT=_0x7397dc(0x1a2);const LISTENERS_KEY='__vome_locale_change_listeners__';function listeners(){const _0x5957c6=globalThis;let _0x4eba3d=_0x5957c6[LISTENERS_KEY];return!_0x4eba3d&&(_0x4eba3d=new Set(),_0x5957c6[LISTENERS_KEY]=_0x4eba3d),_0x4eba3d;}export function subscribeLocaleChange(_0x1e71d6){const _0x30a278=_0x7397dc;return listeners()[_0x30a278(0x194)](_0x1e71d6),()=>{const _0x25c30a=_0x30a278;listeners()[_0x25c30a(0x19e)](_0x1e71d6);};}export function notifyLocaleChange(_0x8bf539){const _0x32db0e=_0x7397dc;for(const _0x3b25ae of[...listeners()]){try{_0x3b25ae(_0x8bf539);}catch(_0x25f81e){console[_0x32db0e(0x19f)](_0x32db0e(0x19d),_0x25f81e);}}try{typeof window!==_0x32db0e(0x19b)&&typeof CustomEvent===_0x32db0e(0x198)&&window[_0x32db0e(0x196)](new CustomEvent(LOCALE_CHANGE_EVENT,{'detail':_0x8bf539}));}catch{}try{const _0x11d57c=globalThis[_0x32db0e(0x199)];_0x11d57c?.[_0x32db0e(0x1a3)]?.(LOCALE_CHANGE_EVENT,_0x8bf539);}catch{}}export function useOnLocaleChange(_0x2795a4){let _0x28559a;onMounted(()=>{_0x28559a=subscribeLocaleChange(_0x2795a4);}),onUnmounted(()=>{_0x28559a?.(),_0x28559a=undefined;});}function _0x5981(_0x13e2d9,_0x173b13){_0x13e2d9=_0x13e2d9-0x191;const _0x4ff332=_0x4ff3();let _0x59813d=_0x4ff332[_0x13e2d9];if(_0x5981['axcIHt']===undefined){var _0x32c8a8=function(_0x1e9371){const _0x552d98='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5957c6='',_0x4eba3d='';for(let _0x1e71d6=0x0,_0x8bf539,_0x3b25ae,_0x25f81e=0x0;_0x3b25ae=_0x1e9371['charAt'](_0x25f81e++);~_0x3b25ae&&(_0x8bf539=_0x1e71d6%0x4?_0x8bf539*0x40+_0x3b25ae:_0x3b25ae,_0x1e71d6++%0x4)?_0x5957c6+=String['fromCharCode'](0xff&_0x8bf539>>(-0x2*_0x1e71d6&0x6)):0x0){_0x3b25ae=_0x552d98['indexOf'](_0x3b25ae);}for(let _0x11d57c=0x0,_0x2795a4=_0x5957c6['length'];_0x11d57c<_0x2795a4;_0x11d57c++){_0x4eba3d+='%'+('00'+_0x5957c6['charCodeAt'](_0x11d57c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4eba3d);};_0x5981['nLgwnO']=_0x32c8a8,_0x5981['wJlrOS']={},_0x5981['axcIHt']=!![];}const _0x16f2a1=_0x4ff332[0x0],_0x1e97ad=_0x13e2d9+_0x16f2a1,_0x4c05da=_0x5981['wJlrOS'][_0x1e97ad];return!_0x4c05da?(_0x59813d=_0x5981['nLgwnO'](_0x59813d),_0x5981['wJlrOS'][_0x1e97ad]=_0x59813d):_0x59813d=_0x4c05da,_0x59813d;}function _0x4ff3(){const _0x92d2a2=['Dw5KzwzPBMvK','mtaXnZq5nvbssNHhrq','w2XVy2fSzv0GBgLZDgvUzxiGzxjYB3i','zgvSzxrL','D2fYBG','mZq1ndK5q0P0rwTK','mti0nZvQwhjdsMq','DM9TztPSB2nHBguTy2HHBMDL','jgvTAxq','mta3mtG2nMnnv0HQDa','odCWmdm2m2vhzKDcqW','otC1mtiZmLjWre5KDq','ywrK','mtmYoeTmvez1sa','zgLZCgf0y2HfDMvUDa','nMDoweHkuq','zNvUy3rPB24','Dw5P','otC1mJC0wej5rxDp'];_0x4ff3=function(){return _0x92d2a2;};return _0x4ff3();}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type I18nLangItem = {
|
|
2
|
+
code: string;
|
|
3
|
+
name: string;
|
|
4
|
+
flag?: string;
|
|
5
|
+
status?: number;
|
|
6
|
+
};
|
|
7
|
+
export type LocalePersist = {
|
|
8
|
+
get: (key: string) => string | null | undefined;
|
|
9
|
+
set: (key: string, value: string) => void;
|
|
10
|
+
};
|
|
11
|
+
export type LocalePackApi = {
|
|
12
|
+
locales?: (q: {
|
|
13
|
+
scopeKey: string;
|
|
14
|
+
}) => Promise<I18nLangItem[] | null>;
|
|
15
|
+
hostLocales?: (q?: {
|
|
16
|
+
scopeKey?: string;
|
|
17
|
+
}) => Promise<I18nLangItem[] | null>;
|
|
18
|
+
active?: (q: {
|
|
19
|
+
langCode: string;
|
|
20
|
+
scopeKey: string;
|
|
21
|
+
scopeType?: string;
|
|
22
|
+
}) => Promise<{
|
|
23
|
+
packJson?: Record<string, unknown>;
|
|
24
|
+
version?: number;
|
|
25
|
+
} | null>;
|
|
26
|
+
list?: (q: Record<string, unknown>) => Promise<Array<{
|
|
27
|
+
langCode?: string;
|
|
28
|
+
}>>;
|
|
29
|
+
};
|
|
30
|
+
export type CreateLocaleStoreOptions = {
|
|
31
|
+
/** pinia store id,默认 locale */
|
|
32
|
+
id?: string;
|
|
33
|
+
storageKey: string;
|
|
34
|
+
scopeKey: string;
|
|
35
|
+
defaultLocale?: string;
|
|
36
|
+
/** web/uniapp 静态源包;admin 可空 */
|
|
37
|
+
defaultPack?: Record<string, unknown>;
|
|
38
|
+
persist: LocalePersist;
|
|
39
|
+
getPackApi: () => LocalePackApi | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* admin:优先 hostLocales;app:locales({ scopeKey })
|
|
42
|
+
* 默认按 scopeKey===admin 分支
|
|
43
|
+
*/
|
|
44
|
+
langMode?: 'admin' | 'app';
|
|
45
|
+
/** 切换语种时缓存已拉过的包(web/uniapp) */
|
|
46
|
+
cachePacks?: boolean;
|
|
47
|
+
/** admin:注入 CRUD 翻译 */
|
|
48
|
+
onPackLoaded?: (ctx: {
|
|
49
|
+
t: (key: string, fallback?: string, ...args: Array<string | number | Record<string, string | number | null | undefined>>) => string;
|
|
50
|
+
}) => void;
|
|
51
|
+
/** admin:菜单名 tMenu */
|
|
52
|
+
enableMenu?: boolean;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* 三端共用 locale store 工厂
|
|
56
|
+
* - admin:langMode=admin + onPackLoaded(setCrudTranslator) + enableMenu
|
|
57
|
+
* - web/uniapp:defaultPack + cachePacks + langMode=app
|
|
58
|
+
* - setLocale:持久化 → loadLangs(语种列表;name 为配置原文,不随 X-Lang 变)→ loadPack → localeEpoch + notify
|
|
59
|
+
*/
|
|
60
|
+
export declare function createLocaleStore(options: CreateLocaleStoreOptions): any;
|
|
61
|
+
export { LOCALE_CHANGE_EVENT, subscribeLocaleChange, notifyLocaleChange, useOnLocaleChange, type LocaleChangeDetail, } from './locale-change';
|