vome-core 0.3.67 → 0.3.69
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/orm/entity-cache.d.ts +1 -1
- package/dist/orm/service.d.ts +5 -5
- 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
|
-
function
|
|
1
|
+
const _0x3bffee=_0x2a85;(function(_0x506375,_0x3ffa99){const _0x304c5d=_0x2a85,_0x458585=_0x506375();while(!![]){try{const _0x433823=-parseInt(_0x304c5d(0x93))/0x1+-parseInt(_0x304c5d(0x7a))/0x2*(parseInt(_0x304c5d(0x91))/0x3)+-parseInt(_0x304c5d(0x8a))/0x4+-parseInt(_0x304c5d(0x85))/0x5+-parseInt(_0x304c5d(0x96))/0x6+-parseInt(_0x304c5d(0x8e))/0x7*(-parseInt(_0x304c5d(0x7c))/0x8)+parseInt(_0x304c5d(0x82))/0x9;if(_0x433823===_0x3ffa99)break;else _0x458585['push'](_0x458585['shift']());}catch(_0x27b8b9){_0x458585['push'](_0x458585['shift']());}}}(_0xd8c6,0xbd413));const HEADER_TIMEOUT_STREAM_MS=0x1388,HEADER_TIMEOUT_SYNC_MS=0x57e40,HEADER_TIMEOUT_ASYNC_MS=0x1388,REGISTRY_KEY=Symbol['for'](_0x3bffee(0x90));function _0x2a85(_0x35623b,_0x341191){_0x35623b=_0x35623b-0x7a;const _0xd8c63c=_0xd8c6();let _0x2a85f3=_0xd8c63c[_0x35623b];if(_0x2a85['EqAmnQ']===undefined){var _0x754d45=function(_0x3f587f){const _0xf2c156='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x160879='',_0x445184='';for(let _0x4abd9f=0x0,_0x215a90,_0x3fee08,_0x128d12=0x0;_0x3fee08=_0x3f587f['charAt'](_0x128d12++);~_0x3fee08&&(_0x215a90=_0x4abd9f%0x4?_0x215a90*0x40+_0x3fee08:_0x3fee08,_0x4abd9f++%0x4)?_0x160879+=String['fromCharCode'](0xff&_0x215a90>>(-0x2*_0x4abd9f&0x6)):0x0){_0x3fee08=_0xf2c156['indexOf'](_0x3fee08);}for(let _0x317cef=0x0,_0x4553ab=_0x160879['length'];_0x317cef<_0x4553ab;_0x317cef++){_0x445184+='%'+('00'+_0x160879['charCodeAt'](_0x317cef)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x445184);};_0x2a85['kyGkbg']=_0x754d45,_0x2a85['QAarlU']={},_0x2a85['EqAmnQ']=!![];}const _0x1c4acc=_0xd8c63c[0x0],_0x43d326=_0x35623b+_0x1c4acc,_0x278544=_0x2a85['QAarlU'][_0x43d326];return!_0x278544?(_0x2a85f3=_0x2a85['kyGkbg'](_0x2a85f3),_0x2a85['QAarlU'][_0x43d326]=_0x2a85f3):_0x2a85f3=_0x278544,_0x2a85f3;}function registryMap(){const _0x160879=globalThis;if(!_0x160879[REGISTRY_KEY])_0x160879[REGISTRY_KEY]=new Map();return _0x160879[REGISTRY_KEY];}export function registerChatModels(_0x445184){const _0x1dd830=_0x3bffee,_0x4abd9f=registryMap();for(const _0x215a90 of _0x445184){const _0x3fee08=String(_0x215a90[_0x1dd830(0x7d)]||'')[_0x1dd830(0x8f)]();if(!_0x3fee08)continue;const _0x128d12=_0x215a90[_0x1dd830(0x8b)],_0x317cef=_0x128d12&&typeof _0x128d12[_0x1dd830(0x87)]===_0x1dd830(0x8c)&&Number[_0x1dd830(0x7b)](_0x128d12[_0x1dd830(0x87)])&&_0x128d12['timeoutMs']>0x0?_0x128d12[_0x1dd830(0x87)]:undefined;_0x4abd9f[_0x1dd830(0x7f)](_0x3fee08,{'resultModes':Array['isArray'](_0x215a90[_0x1dd830(0x86)])&&_0x215a90[_0x1dd830(0x86)][_0x1dd830(0x80)]?_0x215a90['resultModes'][_0x1dd830(0x88)](String):[_0x1dd830(0x81)],'defaultsTimeoutMs':_0x317cef});}}function _0xd8c6(){const _0x3008e2=['mtC5otHkDK9JvNi','AxngAw5PDgu','ohvjvKzkua','y29Kzq','z2v0','C2v0','BgvUz3rO','C3LUyW','mZCZotG2otLxz0LdDfO','Aw5JBhvKzxm','y2fWywjPBgL0Eq','ndmZmJe0nu5xAKz2Cq','CMvZDwX0tw9Kzxm','DgLTzw91De1Z','BwfW','DMLKzw8','ntq5nJq0mgzjBwvWsG','zgvMyxvSDhm','BNvTyMvY','C3rYzwfT','nZq1mJu3mwjctxv2Ca','DhjPBq','DM9Tzs5HAs5TB2rLBc5YzwDPC3rYEq','mJu1t0rjEgjs','y2HHDa','nZq4ntbKEKrJqLK','zgvMyxvSDhnuAw1LB3v0txm','yxn5BMm','ode4nZqZohDZExjzza'];_0xd8c6=function(){return _0x3008e2;};return _0xd8c6();}function inferChatMode(_0x4553ab){const _0x4211a3=_0x3bffee;if(_0x4553ab['includes'](_0x4211a3(0x8d)))return _0x4211a3(0x8d);if(_0x4553ab[_0x4211a3(0x83)](_0x4211a3(0x81)))return _0x4211a3(0x81);if(_0x4553ab[_0x4211a3(0x83)](_0x4211a3(0x95)))return _0x4211a3(0x95);return _0x4211a3(0x81);}function fallbackHeaderTimeoutMs(_0x34dbcd){const _0x3f3f7b=_0x3bffee,_0xbe040=String(_0x34dbcd[_0x3f3f7b(0x84)]||'chat')[_0x3f3f7b(0x8f)]()||_0x3f3f7b(0x92),_0x2ed6fa=_0x34dbcd[_0x3f3f7b(0x8d)];if(_0xbe040===_0x3f3f7b(0x89))return HEADER_TIMEOUT_ASYNC_MS;if(_0xbe040===_0x3f3f7b(0x92)){if(_0x2ed6fa===![])return HEADER_TIMEOUT_SYNC_MS;return HEADER_TIMEOUT_STREAM_MS;}return HEADER_TIMEOUT_SYNC_MS;}export function resolveModelHeaderTimeoutMs(_0x36a035,_0x20eb7d){const _0x900d10=_0x3bffee;if(_0x20eb7d?.[_0x900d10(0x87)]!=null)return _0x20eb7d[_0x900d10(0x87)];const _0x3d49d3=String(_0x36a035||'')['trim'](),_0x313efe=String(_0x20eb7d?.[_0x900d10(0x84)]||_0x900d10(0x92))[_0x900d10(0x8f)]()||_0x900d10(0x92);if(_0x313efe===_0x900d10(0x92)){if(_0x20eb7d?.[_0x900d10(0x8d)]===![])return HEADER_TIMEOUT_SYNC_MS;if(_0x20eb7d?.[_0x900d10(0x8d)]===!![])return HEADER_TIMEOUT_STREAM_MS;}if(!_0x3d49d3)return fallbackHeaderTimeoutMs({'capability':_0x313efe,'stream':_0x20eb7d?.[_0x900d10(0x8d)]});const _0xd84e1d=registryMap()[_0x900d10(0x7e)](_0x3d49d3);if(!_0xd84e1d)return fallbackHeaderTimeoutMs({'capability':_0x313efe,'stream':_0x20eb7d?.[_0x900d10(0x8d)]});if(_0x313efe===_0x900d10(0x89)){const _0x431682=_0xd84e1d[_0x900d10(0x86)]['includes'](_0x900d10(0x95))?_0x900d10(0x95):_0x900d10(0x81);if(_0x431682===_0x900d10(0x95))return HEADER_TIMEOUT_ASYNC_MS;return _0xd84e1d[_0x900d10(0x94)]??HEADER_TIMEOUT_SYNC_MS;}const _0x7fa3c6=inferChatMode(_0xd84e1d[_0x900d10(0x86)]);if(_0x7fa3c6===_0x900d10(0x8d))return HEADER_TIMEOUT_STREAM_MS;if(_0x7fa3c6===_0x900d10(0x81))return _0xd84e1d[_0x900d10(0x94)]??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 _0x9c3c5c=_0x3c84;(function(_0x19e6d7,_0x49be9e){const _0x458495=_0x3c84,_0x1c7651=_0x19e6d7();while(!![]){try{const _0x42345e=parseInt(_0x458495(0x12b))/0x1+-parseInt(_0x458495(0x135))/0x2+-parseInt(_0x458495(0x11d))/0x3*(-parseInt(_0x458495(0x12c))/0x4)+parseInt(_0x458495(0x121))/0x5+-parseInt(_0x458495(0x11f))/0x6*(-parseInt(_0x458495(0x134))/0x7)+-parseInt(_0x458495(0x13c))/0x8*(-parseInt(_0x458495(0x12d))/0x9)+-parseInt(_0x458495(0x127))/0xa;if(_0x42345e===_0x49be9e)break;else _0x1c7651['push'](_0x1c7651['shift']());}catch(_0x162098){_0x1c7651['push'](_0x1c7651['shift']());}}}(_0x2e0b,0x750de));import{getClientRequest}from'./configure';import{resolveModelHeaderTimeoutMs}from'./ai-model-registry';function _0x3c84(_0x21e4c1,_0x3deb16){_0x21e4c1=_0x21e4c1-0x119;const _0x2e0b03=_0x2e0b();let _0x3c848b=_0x2e0b03[_0x21e4c1];if(_0x3c84['ikjSgF']===undefined){var _0x288434=function(_0x30422c){const _0x518757='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2b480c='',_0x49a1e3='';for(let _0x698b65=0x0,_0x400a4c,_0x3f2868,_0x4339ac=0x0;_0x3f2868=_0x30422c['charAt'](_0x4339ac++);~_0x3f2868&&(_0x400a4c=_0x698b65%0x4?_0x400a4c*0x40+_0x3f2868:_0x3f2868,_0x698b65++%0x4)?_0x2b480c+=String['fromCharCode'](0xff&_0x400a4c>>(-0x2*_0x698b65&0x6)):0x0){_0x3f2868=_0x518757['indexOf'](_0x3f2868);}for(let _0xe3891f=0x0,_0x30baae=_0x2b480c['length'];_0xe3891f<_0x30baae;_0xe3891f++){_0x49a1e3+='%'+('00'+_0x2b480c['charCodeAt'](_0xe3891f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49a1e3);};_0x3c84['kJYBDO']=_0x288434,_0x3c84['cQiTAa']={},_0x3c84['ikjSgF']=!![];}const _0x3a854c=_0x2e0b03[0x0],_0x494e68=_0x21e4c1+_0x3a854c,_0x5aff48=_0x3c84['cQiTAa'][_0x494e68];return!_0x5aff48?(_0x3c848b=_0x3c84['kJYBDO'](_0x3c848b),_0x3c84['cQiTAa'][_0x494e68]=_0x3c848b):_0x3c848b=_0x5aff48,_0x3c848b;}function stripTimeMeta(_0x2b480c){const _0x2933a0=_0x3c84;if(Array[_0x2933a0(0x138)](_0x2b480c))return _0x2b480c[_0x2933a0(0x11a)](_0x49a1e3=>stripTimeMeta(_0x49a1e3));if(_0x2b480c&&typeof _0x2b480c==='object'){const _0x698b65={..._0x2b480c};return delete _0x698b65['createTime'],delete _0x698b65[_0x2933a0(0x12e)],_0x698b65;}return _0x2b480c;}function isBusinessSseUrl(_0x400a4c){const _0x205905=_0x3c84,_0x3f2868=(_0x400a4c[_0x205905(0x139)]('?')[0x0]||'')[_0x205905(0x131)](/\/+$/,'');return/\/pack\/translate$/['test'](_0x3f2868)||/\/dataPack\/translateTable$/[_0x205905(0x119)](_0x3f2868);}function _0x2e0b(){const _0x1e0d0d=['CMvXDwvZDa','Dg9vChbLCKnHC2u','CMvWBgfJzq','l2LUzM8','C3rYAw5N','mJC5m1fWAvfVvG','mta2odKZnKHVB0XTAG','BMfTzxnWywnL','ywrK','AxnbCNjHEq','C3bSAxq','C2v0','CgfYyw1Z','oda2ntm2D1b2rvDn','C3rYzwfT','Dg9tDhjPBMC','DxbKyxrL','DgLTzw91De1Z','l3jLC3rVCMu','ue9tva','Bwv0Ag9K','C3rHCNrZv2L0Aa','DgvZDa','BwfW','r0vu','BgLZDa','mteYmZeXovj4tM5XqW','zgf0yq','ntmYmMzhzhHHsG','zw50CMLLCW','ndq2mtC2mezSA21StW','CMvZDg9Yzq','l3vWzgf0zq','Bw9KzwW','DxjS','CgfNzq','mJiZodiWmZbbDKnQugq','B3b0Aw9UCW','y2HHDa','y2fWywjPBgL0Eq','ntuXmZK1EwrLELrg','ogjIufLYtW','nJnOEK5jv2i','DxbKyxrLvgLTzq'];_0x2e0b=function(){return _0x1e0d0d;};return _0x2e0b();}function resolveRequestTimeoutMs(_0x4339ac,_0xe3891f){const _0xa403f7=_0x3c84;if(_0xe3891f['timeoutMs']!=null)return _0xe3891f['timeoutMs'];if(/\/ai\/model\/test\/?$/[_0xa403f7(0x119)](_0x4339ac))return 0x1d4c0;if(isBusinessSseUrl(_0x4339ac))return 0x0;if(/\/ensureHostZh\/?$/[_0xa403f7(0x119)](_0x4339ac))return 0x493e0;const _0x30baae=_0xe3891f[_0xa403f7(0x11e)],_0x1850f5=_0x30baae?.[_0xa403f7(0x128)],_0x37edcf=typeof _0x30baae?.[_0xa403f7(0x124)]===_0xa403f7(0x133)?_0x30baae['model']['trim']():'',_0x1e7ea9=/\/ai\/model\/call\/?$/[_0xa403f7(0x119)](_0x4339ac);if(_0x1e7ea9&&_0x37edcf)return resolveModelHeaderTimeoutMs(_0x37edcf,{'capability':typeof _0x30baae?.[_0xa403f7(0x12a)]===_0xa403f7(0x133)?_0x30baae['capability']:_0xa403f7(0x129),'stream':_0x1850f5?.[_0xa403f7(0x13d)],'timeoutMs':_0x1850f5?.[_0xa403f7(0x140)]});if(_0x1e7ea9)return resolveModelHeaderTimeoutMs('',{'capability':typeof _0x30baae?.[_0xa403f7(0x12a)]===_0xa403f7(0x133)?_0x30baae[_0xa403f7(0x12a)]:'chat','stream':_0x1850f5?.[_0xa403f7(0x13d)],'timeoutMs':_0x1850f5?.[_0xa403f7(0x140)]});return;}export class BaseService{[_0x9c3c5c(0x136)];constructor(_0x2f7d22){const _0x185ae6=_0x9c3c5c;if(_0x2f7d22)this[_0x185ae6(0x136)]=_0x2f7d22[_0x185ae6(0x131)](/^\//,'');}async[_0x9c3c5c(0x12f)](_0x4e955b={}){const _0x335952=_0x9c3c5c;let _0x1a21e2=_0x4e955b[_0x335952(0x125)]||'';if(_0x1a21e2&&!/^https?:\/\//[_0x335952(0x119)](_0x1a21e2)){if(this[_0x335952(0x136)]){const _0x5796ee=this[_0x335952(0x136)][_0x335952(0x144)]('/')?this[_0x335952(0x136)]:'/'+this[_0x335952(0x136)];_0x1a21e2=_0x1a21e2['startsWith']('/')?''+_0x5796ee+_0x1a21e2:_0x5796ee+'/'+_0x1a21e2;}if(!_0x1a21e2[_0x335952(0x144)]('/'))_0x1a21e2='/'+_0x1a21e2;}const _0x51e8e9=resolveRequestTimeoutMs(_0x1a21e2,_0x4e955b),_0x5419db=getClientRequest(),_0x27b976=(_0x4e955b[_0x335952(0x143)]||_0x335952(0x11b))[_0x335952(0x130)]();if(_0x27b976===_0x335952(0x11b)){const _0xb3e87a=_0x4e955b[_0x335952(0x13b)]||{},_0x23babd=new URLSearchParams();for(const [_0x24081c,_0x55e2c9]of Object[_0x335952(0x120)](_0xb3e87a)){if(_0x55e2c9==null)continue;_0x23babd[_0x335952(0x13a)](_0x24081c,String(_0x55e2c9));}const _0x427f4d=_0x23babd[_0x335952(0x13e)]();return _0x5419db(_0x427f4d?_0x1a21e2+'?'+_0x427f4d:_0x1a21e2,{'timeoutMs':_0x51e8e9});}return _0x5419db(_0x1a21e2,{'method':_0x27b976,'body':JSON['stringify'](stripTimeMeta(_0x4e955b[_0x335952(0x11e)]??{})),'timeoutMs':_0x51e8e9});}[_0x9c3c5c(0x126)](_0x4659b0={},_0x5b4bbd={}){const _0x49172f=_0x9c3c5c;return this['request']({'url':'/page','method':_0x49172f(0x142),'data':_0x4659b0,..._0x5b4bbd});}[_0x9c3c5c(0x11c)](_0x2fed08={},_0x36cb6d={}){const _0x3dbb4d=_0x9c3c5c;return this[_0x3dbb4d(0x12f)]({'url':'/list','method':'POST','data':_0x2fed08,..._0x36cb6d});}['info'](_0x902ec4){const _0x5c9287=_0x9c3c5c;return this[_0x5c9287(0x12f)]({'url':_0x5c9287(0x132),'method':_0x5c9287(0x11b),'params':_0x902ec4});}[_0x9c3c5c(0x137)](_0x1baad8){const _0x154e33=_0x9c3c5c;return this[_0x154e33(0x12f)]({'url':'/add','method':'POST','data':_0x1baad8});}[_0x9c3c5c(0x13f)](_0x1a8dbf){const _0x14d681=_0x9c3c5c;return this[_0x14d681(0x12f)]({'url':_0x14d681(0x123),'method':_0x14d681(0x142),'data':_0x1a8dbf});}['delete'](_0x56d105){const _0x2b912d=_0x9c3c5c;return this[_0x2b912d(0x12f)]({'url':'/delete','method':'POST','data':_0x56d105});}[_0x9c3c5c(0x122)](_0x3680fd){const _0x239468=_0x9c3c5c;return this[_0x239468(0x12f)]({'url':_0x239468(0x141),'method':_0x239468(0x142),'data':_0x3680fd});}}
|
|
@@ -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 _0x4ab0d7=_0x3d9e;(function(_0x4aa654,_0x5c9df5){const _0x2bf439=_0x3d9e,_0x5a9130=_0x4aa654();while(!![]){try{const _0x436000=parseInt(_0x2bf439(0x1d1))/0x1+parseInt(_0x2bf439(0x1c4))/0x2*(-parseInt(_0x2bf439(0x1d5))/0x3)+parseInt(_0x2bf439(0x1d0))/0x4*(parseInt(_0x2bf439(0x1d6))/0x5)+-parseInt(_0x2bf439(0x1d2))/0x6+-parseInt(_0x2bf439(0x1d8))/0x7*(-parseInt(_0x2bf439(0x1cc))/0x8)+-parseInt(_0x2bf439(0x1cb))/0x9*(parseInt(_0x2bf439(0x1c2))/0xa)+-parseInt(_0x2bf439(0x1c3))/0xb;if(_0x436000===_0x5c9df5)break;else _0x5a9130['push'](_0x5a9130['shift']());}catch(_0x1a17b2){_0x5a9130['push'](_0x5a9130['shift']());}}}(_0x151f,0x32d60));const CLIENT_HOOKS_KEY=Symbol[_0x4ab0d7(0x1ca)](_0x4ab0d7(0x1d7));function getHooks(){const _0x234938=globalThis;return _0x234938[CLIENT_HOOKS_KEY]??null;}function setHooks(_0xf68ce7){const _0x4506d6=globalThis;_0x4506d6[CLIENT_HOOKS_KEY]=_0xf68ce7;}export function configureClient(_0x29f7b3){setHooks({...getHooks()||{},..._0x29f7b3});}export function getClientRequest(){const _0x1da51e=_0x4ab0d7,_0x41015a=getHooks();if(!_0x41015a?.[_0x1da51e(0x1c9)])throw new Error(_0x1da51e(0x1c6));return _0x41015a['request'];}function _0x3d9e(_0xdf1d0,_0x246bb4){_0xdf1d0=_0xdf1d0-0x1c2;const _0x151fed=_0x151f();let _0x3d9e58=_0x151fed[_0xdf1d0];if(_0x3d9e['zosvbn']===undefined){var _0x434487=function(_0x3943dc){const _0x216a12='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x234938='',_0xf68ce7='';for(let _0x4506d6=0x0,_0x29f7b3,_0x41015a,_0x514b8a=0x0;_0x41015a=_0x3943dc['charAt'](_0x514b8a++);~_0x41015a&&(_0x29f7b3=_0x4506d6%0x4?_0x29f7b3*0x40+_0x41015a:_0x41015a,_0x4506d6++%0x4)?_0x234938+=String['fromCharCode'](0xff&_0x29f7b3>>(-0x2*_0x4506d6&0x6)):0x0){_0x41015a=_0x216a12['indexOf'](_0x41015a);}for(let _0x575e67=0x0,_0x12b6e9=_0x234938['length'];_0x575e67<_0x12b6e9;_0x575e67++){_0xf68ce7+='%'+('00'+_0x234938['charCodeAt'](_0x575e67)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf68ce7);};_0x3d9e['XcgXBO']=_0x434487,_0x3d9e['neOGIL']={},_0x3d9e['zosvbn']=!![];}const _0x5a8d39=_0x151fed[0x0],_0x4aba5e=_0xdf1d0+_0x5a8d39,_0x46ce44=_0x3d9e['neOGIL'][_0x4aba5e];return!_0x46ce44?(_0x3d9e58=_0x3d9e['XcgXBO'](_0x3d9e58),_0x3d9e['neOGIL'][_0x4aba5e]=_0x3d9e58):_0x3d9e58=_0x46ce44,_0x3d9e58;}export function getLoadStaticEps(){return getHooks()?.['loadStaticEps'];}export function getClientBaseUrl(){const _0x231aa1=_0x4ab0d7,_0x514b8a=getHooks()?.[_0x231aa1(0x1d4)];if(!_0x514b8a)throw new Error('[vome-core/client]\x20configureClient({\x20baseUrl\x20})\x20before\x20apiUrl\x20/\x20request');return _0x514b8a;}export async function fetchPackagedEpsJson(){const _0x539211=_0x4ab0d7,_0x575e67=import.meta,_0x12b6e9=_0x575e67[_0x539211(0x1c8)]?.[_0x539211(0x1cf)]||'/',_0x129856=String(_0x12b6e9)[_0x539211(0x1d3)](/\/?$/,'/')+_0x539211(0x1c5),_0x15bbdf=await fetch(_0x129856);if(!_0x15bbdf['ok'])throw new Error(_0x539211(0x1cd)+_0x129856+'\x20('+_0x15bbdf[_0x539211(0x1ce)]+')');return await _0x15bbdf[_0x539211(0x1c7)]();}function _0x151f(){const _0x5a12fb=['mJDTvwH5veu','mJqYodaWoenjEfn2Cq','w3zVBwuTzxbZxsbSB2fKu3rHDgLJrxbZigzHAwXLzdOG','C3rHDhvZ','qKftrv9vuKW','nJeYmtm2ue90DxPs','mZmZmZuZz2r3uNnX','mte5odC1oeT5AKrYrW','CMvWBgfJzq','yMfZzvvYBa','mtv5zg1tqKS','nwfzyLbPAG','DM9Tzs5JBgLLBNqUAg9VA3m','n1HIrhDlqq','nde0odGWDe5KCxLl','mtiWnZmYn29wAwT0Eq','ntKWnJbyt3vAAhC','zxbZlMPZB24','w3zVBwuTy29Yzs9JBgLLBNrDignVBMzPz3vYzunSAwvUDcH7ihjLCxvLC3qGFsKGyMvMB3jLigXVywrfChmGlYbZzxj2AwnL','ANnVBG','zw52','CMvXDwvZDa','zM9Y'];_0x151f=function(){return _0x5a12fb;};return _0x151f();}
|
|
@@ -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 _0x443ee4=_0xdbe3;(function(_0x41229e,_0x3829b5){const _0x142986=_0xdbe3,_0x3d3227=_0x41229e();while(!![]){try{const _0x19f545=-parseInt(_0x142986(0x115))/0x1*(-parseInt(_0x142986(0x117))/0x2)+-parseInt(_0x142986(0x126))/0x3*(parseInt(_0x142986(0x127))/0x4)+-parseInt(_0x142986(0x112))/0x5*(-parseInt(_0x142986(0x121))/0x6)+parseInt(_0x142986(0x123))/0x7*(parseInt(_0x142986(0x118))/0x8)+parseInt(_0x142986(0x122))/0x9*(parseInt(_0x142986(0x11d))/0xa)+parseInt(_0x142986(0x11c))/0xb*(parseInt(_0x142986(0x11f))/0xc)+-parseInt(_0x142986(0x119))/0xd;if(_0x19f545===_0x3829b5)break;else _0x3d3227['push'](_0x3d3227['shift']());}catch(_0x3a7ecc){_0x3d3227['push'](_0x3d3227['shift']());}}}(_0xca9e,0x68134));import{deepTree}from'../shared/tree';function isEmpty(_0x1456b2){return _0x1456b2===''||_0x1456b2===null||_0x1456b2===undefined;}const DICT_DATA_KEY=Symbol[_0x443ee4(0x116)](_0x443ee4(0x125));function _0xca9e(){const _0x21693a=['BMfTzq','nZHPCMrhBfi','oufkzevKyq','mJu3nZG4m213AgT3qW','DMfSDwu','DM9Tzs5KAwn0lMrHDge','nJntsvnAExy','otq3mZz4vuPQDuu','AxnbCNjHEq','ndK0ntvJyuLwqLG','zMLUza','y29SB3i','mtfgEfLSCeq','zM9Y','mtm1mJyWDxj1AKry','ohvPruzMCa','mtqYmdy4ntvssfDqufK','y2HPBgrYzw4','BwfW','nJzHAur1tg8','mZKXnZGXmezVC0vUwG','B2jQzwn0','nZy3odu2zLbbvxfu'];_0xca9e=function(){return _0x21693a;};return _0xca9e();}function dictData(){const _0x1db4eb=globalThis;if(!_0x1db4eb[DICT_DATA_KEY])_0x1db4eb[DICT_DATA_KEY]=Object['create'](null);return _0x1db4eb[DICT_DATA_KEY];}export function getDictMap(){return dictData();}export function getDict(_0x520e91){return dictData()[_0x520e91]||[];}function _0xdbe3(_0x59666a,_0x407822){_0x59666a=_0x59666a-0x111;const _0xca9e5=_0xca9e();let _0xdbe322=_0xca9e5[_0x59666a];if(_0xdbe3['lrCRzP']===undefined){var _0x549797=function(_0x2405c8){const _0xfdd7d0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1456b2='',_0x1db4eb='';for(let _0x520e91=0x0,_0x1afe58,_0x3ab237,_0xe818df=0x0;_0x3ab237=_0x2405c8['charAt'](_0xe818df++);~_0x3ab237&&(_0x1afe58=_0x520e91%0x4?_0x1afe58*0x40+_0x3ab237:_0x3ab237,_0x520e91++%0x4)?_0x1456b2+=String['fromCharCode'](0xff&_0x1afe58>>(-0x2*_0x520e91&0x6)):0x0){_0x3ab237=_0xfdd7d0['indexOf'](_0x3ab237);}for(let _0x1e5dbc=0x0,_0x36e13a=_0x1456b2['length'];_0x1e5dbc<_0x36e13a;_0x1e5dbc++){_0x1db4eb+='%'+('00'+_0x1456b2['charCodeAt'](_0x1e5dbc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1db4eb);};_0xdbe3['GzfOds']=_0x549797,_0xdbe3['JGVxBx']={},_0xdbe3['lrCRzP']=!![];}const _0x41e049=_0xca9e5[0x0],_0x10f75f=_0x59666a+_0x41e049,_0x4aa8e5=_0xdbe3['JGVxBx'][_0x10f75f];return!_0x4aa8e5?(_0xdbe322=_0xdbe3['GzfOds'](_0xdbe322),_0xdbe3['JGVxBx'][_0x10f75f]=_0xdbe322):_0xdbe322=_0x4aa8e5,_0xdbe322;}export function getDictOptions(_0x1afe58){return getDict(_0x1afe58)['map'](_0x3ab237=>{const _0x3e0936=_0xdbe3,_0xe818df=_0x3ab237[_0x3e0936(0x11a)]?.[_0x3e0936(0x113)](_0x1e5dbc=>_0x1e5dbc[_0x3e0936(0x120)]===_0x3e0936(0x114));return{'label':_0x3ab237['label']||_0x3ab237[_0x3e0936(0x120)],'value':_0x3ab237[_0x3e0936(0x124)],'color':_0xe818df?.[_0x3e0936(0x124)]!=null&&_0xe818df['value']!==''?String(_0xe818df['value']):undefined};});}export function clearDictCache(_0x36e13a){const _0x2dc0cb=dictData();if(_0x36e13a){delete _0x2dc0cb[_0x36e13a];return;}for(const _0x5b6205 of Object['keys'](_0x2dc0cb))delete _0x2dc0cb[_0x5b6205];}export function hydrateDictFromEps(_0x4d9570){const _0x113d30=_0x443ee4,_0x125e20=dictData();if(!_0x4d9570||typeof _0x4d9570!==_0x113d30(0x11e))return _0x125e20;for(const [_0x46b480,_0xbddb40]of Object['entries'](_0x4d9570)){if(!Array[_0x113d30(0x111)](_0xbddb40))continue;const _0x2223ca=_0xbddb40[_0x113d30(0x11b)](_0x38d828=>{const _0x24545e=_0x113d30,_0x2d077c=isEmpty(_0x38d828[_0x24545e(0x124)])?_0x38d828['id']:_0x38d828['value'];return{..._0x38d828,'label':_0x38d828[_0x24545e(0x120)],'value':_0x2d077c};});_0x125e20[_0x46b480]=deepTree(_0x2223ca,'asc');}return _0x125e20;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x1c82(_0x2e2012,_0x2f4943){_0x2e2012=_0x2e2012-0xaa;const _0x198d16=_0x198d();let _0x1c8263=_0x198d16[_0x2e2012];if(_0x1c82['Cjuqyr']===undefined){var _0x41b6e9=function(_0x9ef520){const _0x48e5d6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x261d6c='',_0x5c8610='';for(let _0x1effb8=0x0,_0x2a7b19,_0x48b345,_0x47ef3e=0x0;_0x48b345=_0x9ef520['charAt'](_0x47ef3e++);~_0x48b345&&(_0x2a7b19=_0x1effb8%0x4?_0x2a7b19*0x40+_0x48b345:_0x48b345,_0x1effb8++%0x4)?_0x261d6c+=String['fromCharCode'](0xff&_0x2a7b19>>(-0x2*_0x1effb8&0x6)):0x0){_0x48b345=_0x48e5d6['indexOf'](_0x48b345);}for(let _0x2924f7=0x0,_0x20c484=_0x261d6c['length'];_0x2924f7<_0x20c484;_0x2924f7++){_0x5c8610+='%'+('00'+_0x261d6c['charCodeAt'](_0x2924f7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c8610);};_0x1c82['HOzzPV']=_0x41b6e9,_0x1c82['vIDlQb']={},_0x1c82['Cjuqyr']=!![];}const _0x431770=_0x198d16[0x0],_0x91b8f9=_0x2e2012+_0x431770,_0x2a3e42=_0x1c82['vIDlQb'][_0x91b8f9];return!_0x2a3e42?(_0x1c8263=_0x1c82['HOzzPV'](_0x1c8263),_0x1c82['vIDlQb'][_0x91b8f9]=_0x1c8263):_0x1c8263=_0x2a3e42,_0x1c8263;}(function(_0x533ca8,_0x25b96a){const _0x3bbd30=_0x1c82,_0x2ae035=_0x533ca8();while(!![]){try{const _0x4d6720=parseInt(_0x3bbd30(0xb0))/0x1*(parseInt(_0x3bbd30(0xab))/0x2)+parseInt(_0x3bbd30(0xb7))/0x3+-parseInt(_0x3bbd30(0xaa))/0x4*(parseInt(_0x3bbd30(0xb2))/0x5)+parseInt(_0x3bbd30(0xba))/0x6*(-parseInt(_0x3bbd30(0xaf))/0x7)+-parseInt(_0x3bbd30(0xb3))/0x8*(-parseInt(_0x3bbd30(0xbb))/0x9)+-parseInt(_0x3bbd30(0xb6))/0xa+parseInt(_0x3bbd30(0xad))/0xb;if(_0x4d6720===_0x25b96a)break;else _0x2ae035['push'](_0x2ae035['shift']());}catch(_0x40f22a){_0x2ae035['push'](_0x2ae035['shift']());}}}(_0x198d,0x7a472));function isEpsPayload(_0x261d6c){const _0x4d8e76=_0x1c82;return Boolean(_0x261d6c&&typeof _0x261d6c===_0x4d8e76(0xae)&&_0x4d8e76(0xb5)in _0x261d6c&&_0x261d6c[_0x4d8e76(0xb5)]&&typeof _0x261d6c['modules']==='object');}function _0x198d(){const _0xc8a2c8=['mtuYodi3mK5OquXZwG','zxbZ','Bw9KDwXLCW','ote5mZu2mePozgPgsa','mtuYode3nKzRvK5kuW','zgLJDa','y29Kzq','nZjsthzwAMu','ouHPvvftDG','zgf0yq','ngrzCwvvAG','mJqXnKPhrLHmsW','AxnbCNjHEq','nZa5nZG5m2nYyLLYtW','B2jQzwn0','mtGYodyXuhviwhjI','ndm1v3LfvhrV','yM9VBgvHBG','nJG3ndm1t2f4D1nm'];_0x198d=function(){return _0xc8a2c8;};return _0x198d();}export function parseEpsPayload(_0x5c8610){const _0x1745c8=_0x1c82;if(!_0x5c8610||typeof _0x5c8610!=='object')return{'modules':{},'dict':{}};const _0x1effb8=_0x5c8610;if(_0x1745c8(0xb9)in _0x1effb8&&'data'in _0x1effb8&&_0x1effb8[_0x1745c8(0xbc)]&&typeof _0x1effb8['data']==='object'&&!Array[_0x1745c8(0xac)](_0x1effb8['data']))return parseEpsPayload(_0x1effb8[_0x1745c8(0xbc)]);if(isEpsPayload(_0x5c8610))return{'eps':typeof _0x5c8610[_0x1745c8(0xb4)]===_0x1745c8(0xb1)?_0x5c8610['eps']:undefined,'modules':_0x5c8610[_0x1745c8(0xb5)]||{},'dict':_0x5c8610[_0x1745c8(0xb8)]&&typeof _0x5c8610['dict']==='object'?_0x5c8610[_0x1745c8(0xb8)]:{}};return{'modules':_0x5c8610,'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
|
-
const
|
|
1
|
+
const _0x3a2dce=_0x4fff;(function(_0x5dd4da,_0x588c72){const _0x1d2b85=_0x4fff,_0x24085f=_0x5dd4da();while(!![]){try{const _0x12140c=parseInt(_0x1d2b85(0x7a))/0x1+parseInt(_0x1d2b85(0x7e))/0x2+-parseInt(_0x1d2b85(0x89))/0x3*(parseInt(_0x1d2b85(0x85))/0x4)+-parseInt(_0x1d2b85(0x8d))/0x5+parseInt(_0x1d2b85(0x74))/0x6+-parseInt(_0x1d2b85(0x90))/0x7*(parseInt(_0x1d2b85(0x87))/0x8)+-parseInt(_0x1d2b85(0x8a))/0x9*(-parseInt(_0x1d2b85(0x80))/0xa);if(_0x12140c===_0x588c72)break;else _0x24085f['push'](_0x24085f['shift']());}catch(_0x16415e){_0x24085f['push'](_0x24085f['shift']());}}}(_0x11d3,0xa53bd));import{getClientRequest,getLoadStaticEps}from'./configure';import{clearDictCache,hydrateDictFromEps}from'./dict';import{parseEpsPayload}from'./eps-payload';export{parseEpsPayload}from'./eps-payload';const EPS_URL={'admin':_0x3a2dce(0x8c),'app':_0x3a2dce(0x7b)},EPS_CACHE_KEY=Symbol[_0x3a2dce(0x7d)](_0x3a2dce(0x83));function epsCache(){const _0x5c27fc=globalThis;return!_0x5c27fc[EPS_CACHE_KEY]&&(_0x5c27fc[EPS_CACHE_KEY]={'admin':null,'app':null}),_0x5c27fc[EPS_CACHE_KEY];}function _0x11d3(){const _0x420159=['mZy0mZC2ufHeyxrx','ChjLzML4','nte5nZvJC05Rq0e','mZuZnZbYANn1yNy','ywXS','l2fKBwLUl2jHC2uVB3bLBI9LChm','ndu1mdG5nwnQANHgwG','zxbZ','Bw9KDwXLCW','nZDeq3fku0K','revw','mtiWmte0C3rREMHH','yxbW','A2v5CW','yM9VBgvHBG','B2jQzwn0','CMvWBgfJzq','ntaZmJa1C1vIEe12','l2fWCc9IyxnLl29Wzw4VzxbZ','ywrTAw4','zM9Y','mJuWnZy4zNLxCuHj','BgvUz3rO','ntq3mhnMtvvrwq','zgLJDa','DMfSDwvZ','DM9Tzs5LChmUy2fJAgu','zMLUza','mty0vKntvLft','CMvKDwnL'];_0x11d3=function(){return _0x420159;};return _0x11d3();}function isDev(){const _0x935a35=_0x3a2dce;try{return Boolean(import.meta.env?.[_0x935a35(0x91)]);}catch{return![];}}function countModules(_0x1dd48f){const _0xdb0aed=_0x3a2dce;if(!_0x1dd48f)return 0x0;return Object[_0xdb0aed(0x82)](_0x1dd48f)[_0xdb0aed(0x86)]((_0x27dbfa,_0xfaa634)=>_0x27dbfa+(_0xfaa634?.[_0xdb0aed(0x7f)]||0x0),0x0);}function _0x4fff(_0x559674,_0x276c8e){_0x559674=_0x559674-0x74;const _0x11d386=_0x11d3();let _0x4fff1d=_0x11d386[_0x559674];if(_0x4fff['PUsYVo']===undefined){var _0xeb874b=function(_0xf057f6){const _0x1e3eb0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c27fc='',_0x1dd48f='';for(let _0x27dbfa=0x0,_0xfaa634,_0x22aa38,_0x125929=0x0;_0x22aa38=_0xf057f6['charAt'](_0x125929++);~_0x22aa38&&(_0xfaa634=_0x27dbfa%0x4?_0xfaa634*0x40+_0x22aa38:_0x22aa38,_0x27dbfa++%0x4)?_0x5c27fc+=String['fromCharCode'](0xff&_0xfaa634>>(-0x2*_0x27dbfa&0x6)):0x0){_0x22aa38=_0x1e3eb0['indexOf'](_0x22aa38);}for(let _0x1689a1=0x0,_0x46c1f0=_0x5c27fc['length'];_0x1689a1<_0x46c1f0;_0x1689a1++){_0x1dd48f+='%'+('00'+_0x5c27fc['charCodeAt'](_0x1689a1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dd48f);};_0x4fff['mnDUMR']=_0xeb874b,_0x4fff['kjlJsc']={},_0x4fff['PUsYVo']=!![];}const _0x3454f1=_0x11d386[0x0],_0x423843=_0x559674+_0x3454f1,_0x5c58e8=_0x4fff['kjlJsc'][_0x423843];return!_0x5c58e8?(_0x4fff1d=_0x4fff['mnDUMR'](_0x4fff1d),_0x4fff['kjlJsc'][_0x423843]=_0x4fff1d):_0x4fff1d=_0x5c58e8,_0x4fff1d;}function normalizeStaticBundle(_0x22aa38){const _0x15c30e=_0x3a2dce;if(!_0x22aa38||typeof _0x22aa38!==_0x15c30e(0x78))return{};const _0x125929=_0x22aa38;if(!(_0x15c30e(0x7c)in _0x125929)&&!(_0x15c30e(0x75)in _0x125929)&&!(_0x15c30e(0x8f)in _0x125929))return{'admin':_0x125929,'app':{},'dict':{},'eps':![]};if(_0x15c30e(0x8f)in _0x125929&&typeof _0x125929[_0x15c30e(0x8f)]==='object'){const _0x1689a1=parseEpsPayload(_0x125929);return{'eps':typeof _0x125929[_0x15c30e(0x8e)]===_0x15c30e(0x77)?_0x125929['eps']:_0x1689a1[_0x15c30e(0x8e)],'admin':_0x1689a1[_0x15c30e(0x8f)],'app':{},'dict':_0x1689a1[_0x15c30e(0x81)]};}return{'eps':typeof _0x125929['eps']===_0x15c30e(0x77)?_0x125929[_0x15c30e(0x8e)]:undefined,'admin':_0x125929[_0x15c30e(0x7c)]||{},'app':_0x125929[_0x15c30e(0x75)]||{},'dict':_0x125929[_0x15c30e(0x81)]||{}};}function applyPayload(_0x46c1f0,_0xf39863){const _0x36e3e7=_0x3a2dce,_0x2dbcda=epsCache();return _0x2dbcda[_0x46c1f0]=_0xf39863['modules']||{},_0xf39863['dict']&&Object[_0x36e3e7(0x76)](_0xf39863[_0x36e3e7(0x81)])[_0x36e3e7(0x7f)]&&hydrateDictFromEps(_0xf39863['dict']),_0x2dbcda[_0x46c1f0];}function applyStatic(_0x4ef215,_0x123fce){const _0x29876a=_0x3a2dce,_0x16f19e=epsCache(),_0x2eb784=(_0x4ef215===_0x29876a(0x7c)?_0x123fce[_0x29876a(0x7c)]:_0x123fce['app'])||{};return _0x16f19e[_0x4ef215]=_0x2eb784,_0x123fce[_0x29876a(0x81)]&&Object[_0x29876a(0x76)](_0x123fce[_0x29876a(0x81)])['length']&&hydrateDictFromEps(_0x123fce[_0x29876a(0x81)]),_0x2eb784;}async function fetchLive(_0x1944f3){const _0x166b8f=getClientRequest(),_0x2e5044=await _0x166b8f(EPS_URL[_0x1944f3],{'toast':![]});return parseEpsPayload(_0x2e5044);}export async function loadEps(_0x45183d=![],_0x38c23f=_0x3a2dce(0x7c)){const _0x4a9225=_0x3a2dce,_0x56bdaf=epsCache();if(_0x56bdaf[_0x38c23f]&&!_0x45183d)return _0x56bdaf[_0x38c23f];if(isDev())return applyPayload(_0x38c23f,await fetchLive(_0x38c23f));const _0x5f1601=getLoadStaticEps();if(!_0x5f1601)throw new Error('[vome-eps]\x20PROD\x20requires\x20configureClient({\x20loadStaticEps\x20})\x20(packaged\x20eps.json)');const _0x4b6c50=normalizeStaticBundle(await _0x5f1601());applyStatic(_0x38c23f,_0x4b6c50);if(_0x4b6c50[_0x4a9225(0x8e)]!==!![])return _0x56bdaf[_0x38c23f];try{const _0x1c3058=await fetchLive(_0x38c23f);if(countModules(_0x1c3058['modules'])>0x0)return applyPayload(_0x38c23f,_0x1c3058);}catch{}return _0x56bdaf[_0x38c23f];}export async function loadAllEps(_0x2c7512=![]){const _0x491874=_0x3a2dce,_0x476fb4=epsCache();return await Promise[_0x491874(0x8b)]([loadEps(_0x2c7512,_0x491874(0x7c)),loadEps(_0x2c7512,_0x491874(0x75))]),{'admin':_0x476fb4[_0x491874(0x7c)],'app':_0x476fb4['app']};}export function getEps(_0x2f79c5=_0x3a2dce(0x7c)){return epsCache()[_0x2f79c5];}export function findEpsEntity(_0x527313,_0x4a739c=_0x3a2dce(0x7c)){const _0x16b607=_0x3a2dce,_0x2ec1f1=epsCache()[_0x4a739c];if(!_0x2ec1f1)return;for(const _0x2ed681 of Object[_0x16b607(0x82)](_0x2ec1f1)){const _0x536f1d=_0x2ed681[_0x16b607(0x84)](_0x53b47a=>_0x53b47a['prefix']===_0x527313||_0x53b47a[_0x16b607(0x88)]===_0x527313[_0x16b607(0x79)](/\/$/,''));if(_0x536f1d)return _0x536f1d;}return;}export function clearEpsCache(_0xff74a7){const _0xb30165=_0x3a2dce,_0x44a4d3=epsCache();if(_0xff74a7){_0x44a4d3[_0xff74a7]=null;return;}_0x44a4d3[_0xb30165(0x7c)]=null,_0x44a4d3[_0xb30165(0x75)]=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
|
-
|
|
1
|
+
function _0x3e6c(_0xad158a,_0x42d2f9){_0xad158a=_0xad158a-0x185;var _0xcb407=_0xcb40();var _0x3e6c31=_0xcb407[_0xad158a];if(_0x3e6c['Xaoxkb']===undefined){var _0x498a22=function(_0x389bf7){var _0x3cbaa5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x28de27='',_0xb9fa37='';for(var _0x54ac78=0x0,_0x32458a,_0x1eb716,_0x51f5cc=0x0;_0x1eb716=_0x389bf7['charAt'](_0x51f5cc++);~_0x1eb716&&(_0x32458a=_0x54ac78%0x4?_0x32458a*0x40+_0x1eb716:_0x1eb716,_0x54ac78++%0x4)?_0x28de27+=String['fromCharCode'](0xff&_0x32458a>>(-0x2*_0x54ac78&0x6)):0x0){_0x1eb716=_0x3cbaa5['indexOf'](_0x1eb716);}for(var _0x44224f=0x0,_0x5622cc=_0x28de27['length'];_0x44224f<_0x5622cc;_0x44224f++){_0xb9fa37+='%'+('00'+_0x28de27['charCodeAt'](_0x44224f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb9fa37);};_0x3e6c['CasuvL']=_0x498a22,_0x3e6c['JfkCjE']={},_0x3e6c['Xaoxkb']=!![];}var _0x1aae02=_0xcb407[0x0],_0x41821b=_0xad158a+_0x1aae02,_0x4afb0b=_0x3e6c['JfkCjE'][_0x41821b];return!_0x4afb0b?(_0x3e6c31=_0x3e6c['CasuvL'](_0x3e6c31),_0x3e6c['JfkCjE'][_0x41821b]=_0x3e6c31):_0x3e6c31=_0x4afb0b,_0x3e6c31;}(function(_0x9a238f,_0xf98510){var _0x4c14a8=_0x3e6c,_0x2b4417=_0x9a238f();while(!![]){try{var _0x206915=parseInt(_0x4c14a8(0x18c))/0x1*(-parseInt(_0x4c14a8(0x188))/0x2)+-parseInt(_0x4c14a8(0x185))/0x3*(-parseInt(_0x4c14a8(0x18d))/0x4)+-parseInt(_0x4c14a8(0x18b))/0x5*(parseInt(_0x4c14a8(0x18e))/0x6)+-parseInt(_0x4c14a8(0x187))/0x7+parseInt(_0x4c14a8(0x190))/0x8+-parseInt(_0x4c14a8(0x18f))/0x9*(-parseInt(_0x4c14a8(0x18a))/0xa)+-parseInt(_0x4c14a8(0x189))/0xb*(-parseInt(_0x4c14a8(0x186))/0xc);if(_0x206915===_0xf98510)break;else _0x2b4417['push'](_0x2b4417['shift']());}catch(_0x34610d){_0x2b4417['push'](_0x2b4417['shift']());}}}(_0xcb40,0x768f9));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';function _0xcb40(){var _0x37cbf6=['mtq2otmZmgvAtLzVCq','nJy1otK1mfrbveXICq','mtbQvwD6s0C','otu1tMDRzhzP','mxPkBuXvsq','mtmYnZzktenjtfy','mJG1mdzWAwzvreu','mZC0odqWmufrvNnQva','ntu4nta4oen5B05NrW','nJGXswrZvNft','mtjYB01qs2e','mJqYmdi5ovj1A3rlta'];_0xcb40=function(){return _0x37cbf6;};return _0xcb40();}
|
|
@@ -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 _0x4265f4=_0x3dc1;(function(_0xa66fca,_0xd89401){const _0x1d809b=_0x3dc1,_0x3728b3=_0xa66fca();while(!![]){try{const _0x46bb26=-parseInt(_0x1d809b(0xb2))/0x1*(parseInt(_0x1d809b(0xaa))/0x2)+parseInt(_0x1d809b(0xa7))/0x3*(-parseInt(_0x1d809b(0xb6))/0x4)+parseInt(_0x1d809b(0xab))/0x5+-parseInt(_0x1d809b(0xb4))/0x6+parseInt(_0x1d809b(0xa8))/0x7*(-parseInt(_0x1d809b(0xb8))/0x8)+-parseInt(_0x1d809b(0xb7))/0x9*(parseInt(_0x1d809b(0xba))/0xa)+parseInt(_0x1d809b(0xb1))/0xb*(parseInt(_0x1d809b(0xb0))/0xc);if(_0x46bb26===_0xd89401)break;else _0x3728b3['push'](_0x3728b3['shift']());}catch(_0x311006){_0x3728b3['push'](_0x3728b3['shift']());}}}(_0x13fe,0x79695));import{onMounted,onUnmounted}from'vue';function _0x13fe(){const _0x2f673f=['nJuXofjMCw14yW','x192B21Lx2XVy2fSzv9JAgfUz2vFBgLZDgvUzxjZx18','ntq5ody2nhLPvMPkyW','ywrK','ndiWodG0u3jjueX1','mJqZntaYmLHrz3Hxza','oevAveLHzW','Dw5P','mtblCw5gr1m','m3byswLHua','nJq2mtaYoffACwLPwG','zgLZCgf0y2HfDMvUDa','mtrZA1vevNa','mJa4mJa1nwDjsxrVuq','D2fYBG','zNvUy3rPB24','Dw5KzwzPBMvK','w2XVy2fSzv0GBgLZDgvUzxiGzxjYB3i','mJGXmda5mtz1vhLHELG','mtfbswLRr2y'];_0x13fe=function(){return _0x2f673f;};return _0x13fe();}export const LOCALE_CHANGE_EVENT='vome:locale-change';const LISTENERS_KEY=_0x4265f4(0xb3);function _0x3dc1(_0xe92bf6,_0x3a2a4f){_0xe92bf6=_0xe92bf6-0xa7;const _0x13fed2=_0x13fe();let _0x3dc19a=_0x13fed2[_0xe92bf6];if(_0x3dc1['yRthOL']===undefined){var _0x42c770=function(_0x95f92c){const _0x1ce187='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29155c='',_0x1e40a5='';for(let _0x1a0631=0x0,_0x73108d,_0x23be76,_0x587610=0x0;_0x23be76=_0x95f92c['charAt'](_0x587610++);~_0x23be76&&(_0x73108d=_0x1a0631%0x4?_0x73108d*0x40+_0x23be76:_0x23be76,_0x1a0631++%0x4)?_0x29155c+=String['fromCharCode'](0xff&_0x73108d>>(-0x2*_0x1a0631&0x6)):0x0){_0x23be76=_0x1ce187['indexOf'](_0x23be76);}for(let _0x4591e0=0x0,_0x4eb0c6=_0x29155c['length'];_0x4591e0<_0x4eb0c6;_0x4591e0++){_0x1e40a5+='%'+('00'+_0x29155c['charCodeAt'](_0x4591e0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e40a5);};_0x3dc1['ngtufo']=_0x42c770,_0x3dc1['vXqJfD']={},_0x3dc1['yRthOL']=!![];}const _0xe13c89=_0x13fed2[0x0],_0x542103=_0xe92bf6+_0xe13c89,_0x47314c=_0x3dc1['vXqJfD'][_0x542103];return!_0x47314c?(_0x3dc19a=_0x3dc1['ngtufo'](_0x3dc19a),_0x3dc1['vXqJfD'][_0x542103]=_0x3dc19a):_0x3dc19a=_0x47314c,_0x3dc19a;}function listeners(){const _0x29155c=globalThis;let _0x1e40a5=_0x29155c[LISTENERS_KEY];return!_0x1e40a5&&(_0x1e40a5=new Set(),_0x29155c[LISTENERS_KEY]=_0x1e40a5),_0x1e40a5;}export function subscribeLocaleChange(_0x1a0631){const _0x5685cc=_0x4265f4;return listeners()[_0x5685cc(0xb5)](_0x1a0631),()=>{listeners()['delete'](_0x1a0631);};}export function notifyLocaleChange(_0x73108d){const _0x1143a5=_0x4265f4;for(const _0x23be76 of[...listeners()]){try{_0x23be76(_0x73108d);}catch(_0x587610){console[_0x1143a5(0xac)](_0x1143a5(0xaf),_0x587610);}}try{typeof window!==_0x1143a5(0xae)&&typeof CustomEvent===_0x1143a5(0xad)&&window[_0x1143a5(0xa9)](new CustomEvent(LOCALE_CHANGE_EVENT,{'detail':_0x73108d}));}catch{}try{const _0x4591e0=globalThis[_0x1143a5(0xb9)];_0x4591e0?.['$emit']?.(LOCALE_CHANGE_EVENT,_0x73108d);}catch{}}export function useOnLocaleChange(_0x4eb0c6){let _0xbdfaa1;onMounted(()=>{_0xbdfaa1=subscribeLocaleChange(_0x4eb0c6);}),onUnmounted(()=>{_0xbdfaa1?.(),_0xbdfaa1=undefined;});}
|
|
@@ -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';
|