vome-core 0.0.56 → 0.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/admin/config/plugin-dev.js +1 -1
  2. package/dist/admin/crud/config.js +1 -1
  3. package/dist/admin/crud/confirm.js +1 -1
  4. package/dist/admin/crud/dict.js +1 -1
  5. package/dist/admin/crud/index.js +1 -1
  6. package/dist/admin/crud/key.js +1 -1
  7. package/dist/admin/crud/mitt.js +1 -1
  8. package/dist/admin/crud/plugins.js +1 -1
  9. package/dist/admin/crud/span.js +1 -1
  10. package/dist/admin/crud/style.js +1 -1
  11. package/dist/admin/crud/validate.js +1 -1
  12. package/dist/admin/directives/perm.js +1 -1
  13. package/dist/admin/hooks/useUpload.js +1 -1
  14. package/dist/admin/lib/browser.js +1 -1
  15. package/dist/admin/lib/cn.js +1 -1
  16. package/dist/admin/lib/dialog-float.js +1 -1
  17. package/dist/admin/lib/export-excel.js +1 -1
  18. package/dist/admin/lib/file-preview.js +1 -1
  19. package/dist/admin/lib/import-excel.js +1 -1
  20. package/dist/admin/lib/json.js +1 -1
  21. package/dist/admin/lib/menu.js +1 -1
  22. package/dist/admin/lib/tree.js +1 -1
  23. package/dist/admin/lib/upload.js +1 -1
  24. package/dist/admin/lib/video-frame.js +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/server/index.js +1 -1
  27. package/dist/shared/excel.js +1 -1
  28. package/dist/shared/index.js +1 -1
  29. package/dist/shared/tree.js +1 -1
  30. package/dist/src/core/index.d.ts +2 -2
  31. package/dist/src/ext/index.d.ts +5 -1
  32. package/dist/src/ext/market-seat.d.ts +29 -0
  33. package/dist/src/ext/module-install-gate.d.ts +10 -1
  34. package/dist/src/ext/module-install.d.ts +25 -0
  35. package/dist/src/ext/module-registry.d.ts +8 -2
  36. package/dist/src/server/index.d.ts +2 -2
  37. package/dist/typings/ext/market-seat.d.ts +39 -0
  38. package/dist/typings/ext/module.d.ts +7 -0
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- const _0x329ba2=_0x27b1;(function(_0x5eef47,_0x190819){const _0x1a1815=_0x27b1,_0x67a1f3=_0x5eef47();while(!![]){try{const _0x47c63d=parseInt(_0x1a1815(0x13c))/0x1*(-parseInt(_0x1a1815(0x14c))/0x2)+parseInt(_0x1a1815(0x12d))/0x3+-parseInt(_0x1a1815(0x133))/0x4*(parseInt(_0x1a1815(0x144))/0x5)+-parseInt(_0x1a1815(0x12b))/0x6*(-parseInt(_0x1a1815(0x130))/0x7)+parseInt(_0x1a1815(0x149))/0x8*(-parseInt(_0x1a1815(0x13a))/0x9)+-parseInt(_0x1a1815(0x141))/0xa*(parseInt(_0x1a1815(0x146))/0xb)+parseInt(_0x1a1815(0x14d))/0xc;if(_0x47c63d===_0x190819)break;else _0x67a1f3['push'](_0x67a1f3['shift']());}catch(_0x3341f8){_0x67a1f3['push'](_0x67a1f3['shift']());}}}(_0x485c,0x6fa8c));function _0x485c(){const _0x20969a=['DxbKyxrLvgLTzq','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','mJm1nta3mfzJq2fmAG','yxjYyxK','yw9Hx3rVx3nOzwv0','ndeWrMrmBNjb','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','mtfmwMX3CLi','ChjVCa','C2v0','mZCWne9pBw1UuW','zw5KC1DPDgG','y3jLyxrLvgLTzq','mZuYmtiWuwnbuvHm','ndaXnJi2ognRD1Lswa','BgfIzwW','C2HLzxrFDg9FANnVBG','CMvHza','otu3ndjlCeLTCNy','Aw5JBhvKzxm','mtu1mJu0nw1gAxHywG','z2v0','BgvUz3rO','mJCZyxbLEe9o','BwfW','u2HLzxqX','mJa3mKfjB1H5wG','DgvUyw50swq','C3rYAw5N','yM9VA19HChbLBMrFC2HLzxq','u2HLzxrZ','lNHSC3G','DhjPBq','nZuYngT5wu9bvq','DxrPBhm','mK1fy1nAwa','EgXZEa','u2HLzxroyw1LCW'];_0x485c=function(){return _0x20969a;};return _0x485c();}import*as _0x1db80e from'xlsx';export const IMPORT_SKIP_FIELDS=['id',_0x329ba2(0x14b),_0x329ba2(0x13f),'deletedAt',_0x329ba2(0x134)];export function isImportSkipField(_0x42d6e7){const _0x33ec28=_0x329ba2;return IMPORT_SKIP_FIELDS[_0x33ec28(0x12c)](_0x42d6e7);}export function buildExcelBuffer(_0x185872,_0x592895,_0x9fb88){const _0x597594=_0x329ba2,_0x374279=_0x185872[_0x597594(0x131)](_0x118cc0=>_0x118cc0['label']||_0x118cc0[_0x597594(0x147)]),_0x3c8b3d=_0x592895[_0x597594(0x131)](_0x4d4c0c=>_0x185872['map'](_0x377b52=>{const _0x52aaeb=_0x597594;if(_0x9fb88)return _0x9fb88(_0x377b52[_0x52aaeb(0x147)],_0x4d4c0c);const _0x1f826e=_0x4d4c0c[_0x377b52[_0x52aaeb(0x147)]];if(_0x1f826e==null)return'';return String(_0x1f826e);})),_0x24824d=_0x1db80e[_0x597594(0x13b)][_0x597594(0x143)]([_0x374279,..._0x3c8b3d]),_0x12c0d2=_0x1db80e[_0x597594(0x13b)]['book_new']();return _0x1db80e['utils'][_0x597594(0x136)](_0x12c0d2,_0x24824d,_0x597594(0x132)),_0x1db80e['write'](_0x12c0d2,{'bookType':_0x597594(0x13d),'type':_0x597594(0x142)});}export function buildImportTemplateBuffer(_0x565fe6){return buildExcelBuffer(_0x565fe6,[]);}export function parseExcelBuffer(_0xd7cd60,_0x3a2df0){const _0x43136b=_0x329ba2,_0x39ed52=_0x1db80e[_0x43136b(0x12a)](_0xd7cd60,{'type':_0x43136b(0x142),'cellDates':!![]}),_0x4341be=_0x39ed52[_0x43136b(0x13e)][0x0];if(!_0x4341be)return[];const _0xfc8069=_0x39ed52[_0x43136b(0x137)][_0x4341be];if(!_0xfc8069)return[];const _0x177d7c=_0x1db80e['utils'][_0x43136b(0x129)](_0xfc8069,{'header':0x1,'defval':'','raw':![]});if(!_0x177d7c[_0x43136b(0x12f)])return[];const _0x3febda=(_0x177d7c[0x0]||[])[_0x43136b(0x131)](_0x57a52a=>String(_0x57a52a??'')[_0x43136b(0x139)]()),_0x409867=new Map();if(_0x3a2df0?.[_0x43136b(0x12f)])for(const _0xac4d78 of _0x3a2df0){_0x409867[_0x43136b(0x148)](_0xac4d78[_0x43136b(0x14e)][_0x43136b(0x139)](),_0xac4d78['prop']),_0x409867[_0x43136b(0x148)](_0xac4d78[_0x43136b(0x147)],_0xac4d78[_0x43136b(0x147)]);}const _0x4442a3=_0x3febda[_0x43136b(0x131)](_0x9aaadc=>{const _0x25267c=_0x43136b;if(!_0x9aaadc)return'';return _0x409867[_0x25267c(0x12e)](_0x9aaadc)||_0x9aaadc;}),_0x38da96=[];for(let _0x55dda4=0x1;_0x55dda4<_0x177d7c[_0x43136b(0x12f)];_0x55dda4++){const _0x5288ca=_0x177d7c[_0x55dda4]||[],_0x575c66={};let _0x100dfe=!![];for(let _0x12ac66=0x0;_0x12ac66<_0x4442a3[_0x43136b(0x12f)];_0x12ac66++){const _0x31ad40=_0x4442a3[_0x12ac66];if(!_0x31ad40)continue;let _0xb54560=_0x5288ca[_0x12ac66];if(_0xb54560==null||_0xb54560===''){_0x575c66[_0x31ad40]=_0xb54560==null?null:'';continue;}_0x100dfe=![],typeof _0xb54560===_0x43136b(0x135)?_0x575c66[_0x31ad40]=_0xb54560[_0x43136b(0x139)]():_0x575c66[_0x31ad40]=_0xb54560;}if(!_0x100dfe)_0x38da96['push'](_0x575c66);}return _0x38da96;}function _0x27b1(_0x2e63fa,_0x46bb79){_0x2e63fa=_0x2e63fa-0x129;const _0x485c58=_0x485c();let _0x27b169=_0x485c58[_0x2e63fa];if(_0x27b1['BmmGuy']===undefined){var _0x33c228=function(_0x27558f){const _0xfe0298='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1db80e='',_0x42d6e7='';for(let _0x185872=0x0,_0x592895,_0x9fb88,_0x374279=0x0;_0x9fb88=_0x27558f['charAt'](_0x374279++);~_0x9fb88&&(_0x592895=_0x185872%0x4?_0x592895*0x40+_0x9fb88:_0x9fb88,_0x185872++%0x4)?_0x1db80e+=String['fromCharCode'](0xff&_0x592895>>(-0x2*_0x185872&0x6)):0x0){_0x9fb88=_0xfe0298['indexOf'](_0x9fb88);}for(let _0x3c8b3d=0x0,_0x24824d=_0x1db80e['length'];_0x3c8b3d<_0x24824d;_0x3c8b3d++){_0x42d6e7+='%'+('00'+_0x1db80e['charCodeAt'](_0x3c8b3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42d6e7);};_0x27b1['ooESuO']=_0x33c228,_0x27b1['NEkpMo']={},_0x27b1['BmmGuy']=!![];}const _0x1dcc35=_0x485c58[0x0],_0x47ea0a=_0x2e63fa+_0x1dcc35,_0x4ddbed=_0x27b1['NEkpMo'][_0x47ea0a];return!_0x4ddbed?(_0x27b169=_0x27b1['ooESuO'](_0x27b169),_0x27b1['NEkpMo'][_0x47ea0a]=_0x27b169):_0x27b169=_0x4ddbed,_0x27b169;}export function excelFilename(_0x5cfde9){const _0x5c155f=_0x329ba2;return _0x5cfde9[_0x5c155f(0x14a)](_0x5c155f(0x138))?_0x5cfde9:_0x5cfde9+'.xlsx';}export function excelResponseHeaders(_0x33de3b){const _0x11b6e4=_0x329ba2,_0x5bc7a3=excelFilename(_0x33de3b);return{'Content-Type':_0x11b6e4(0x140),'Content-Disposition':_0x11b6e4(0x145)+encodeURIComponent(_0x5bc7a3)};}
1
+ const _0x92388b=_0x105b;(function(_0x474d82,_0x4e72d4){const _0x407a4b=_0x105b,_0x4e2772=_0x474d82();while(!![]){try{const _0x3f5185=-parseInt(_0x407a4b(0x13b))/0x1*(-parseInt(_0x407a4b(0x12b))/0x2)+parseInt(_0x407a4b(0x12f))/0x3+parseInt(_0x407a4b(0x120))/0x4+parseInt(_0x407a4b(0x128))/0x5*(parseInt(_0x407a4b(0x13d))/0x6)+parseInt(_0x407a4b(0x131))/0x7*(-parseInt(_0x407a4b(0x123))/0x8)+-parseInt(_0x407a4b(0x121))/0x9+-parseInt(_0x407a4b(0x132))/0xa;if(_0x3f5185===_0x4e72d4)break;else _0x4e2772['push'](_0x4e2772['shift']());}catch(_0x38988d){_0x4e2772['push'](_0x4e2772['shift']());}}}(_0x47ab,0x3f422));import*as _0x1ea021 from'xlsx';export const IMPORT_SKIP_FIELDS=['id','createTime',_0x92388b(0x12d),'deletedAt',_0x92388b(0x137)];export function isImportSkipField(_0x15059c){const _0x4b0e0e=_0x92388b;return IMPORT_SKIP_FIELDS[_0x4b0e0e(0x12a)](_0x15059c);}export function buildExcelBuffer(_0x1a7347,_0x5bdcff,_0x677d2c){const _0x1a7b9f=_0x92388b,_0x2a18ee=_0x1a7347['map'](_0x764160=>_0x764160[_0x1a7b9f(0x136)]||_0x764160['prop']),_0x50806c=_0x5bdcff['map'](_0x1a3624=>_0x1a7347[_0x1a7b9f(0x13a)](_0x113d5f=>{const _0x4ddd51=_0x1a7b9f;if(_0x677d2c)return _0x677d2c(_0x113d5f[_0x4ddd51(0x12e)],_0x1a3624);const _0xc9bab7=_0x1a3624[_0x113d5f[_0x4ddd51(0x12e)]];if(_0xc9bab7==null)return'';return String(_0xc9bab7);})),_0x47225e=_0x1ea021[_0x1a7b9f(0x135)][_0x1a7b9f(0x134)]([_0x2a18ee,..._0x50806c]),_0x1958e2=_0x1ea021[_0x1a7b9f(0x135)][_0x1a7b9f(0x124)]();return _0x1ea021[_0x1a7b9f(0x135)]['book_append_sheet'](_0x1958e2,_0x47225e,_0x1a7b9f(0x11f)),_0x1ea021[_0x1a7b9f(0x130)](_0x1958e2,{'bookType':'xlsx','type':_0x1a7b9f(0x122)});}export function buildImportTemplateBuffer(_0x5c4cdd){return buildExcelBuffer(_0x5c4cdd,[]);}export function parseExcelBuffer(_0x461a8a,_0x519c83){const _0x1179d9=_0x92388b,_0x2d0219=_0x1ea021['read'](_0x461a8a,{'type':_0x1179d9(0x122),'cellDates':!![]}),_0x1071ac=_0x2d0219[_0x1179d9(0x139)][0x0];if(!_0x1071ac)return[];const _0x5489c4=_0x2d0219[_0x1179d9(0x133)][_0x1071ac];if(!_0x5489c4)return[];const _0xb3f2d8=_0x1ea021['utils']['sheet_to_json'](_0x5489c4,{'header':0x1,'defval':'','raw':![]});if(!_0xb3f2d8[_0x1179d9(0x13e)])return[];const _0x3f1047=(_0xb3f2d8[0x0]||[])['map'](_0x4d9191=>String(_0x4d9191??'')[_0x1179d9(0x127)]()),_0x3b736b=new Map();if(_0x519c83?.[_0x1179d9(0x13e)])for(const _0x3fdb60 of _0x519c83){_0x3b736b[_0x1179d9(0x11e)](_0x3fdb60['label'][_0x1179d9(0x127)](),_0x3fdb60[_0x1179d9(0x12e)]),_0x3b736b[_0x1179d9(0x11e)](_0x3fdb60['prop'],_0x3fdb60[_0x1179d9(0x12e)]);}const _0x203429=_0x3f1047['map'](_0x415241=>{if(!_0x415241)return'';return _0x3b736b['get'](_0x415241)||_0x415241;}),_0x37f976=[];for(let _0x37c426=0x1;_0x37c426<_0xb3f2d8['length'];_0x37c426++){const _0x57ddec=_0xb3f2d8[_0x37c426]||[],_0x13db28={};let _0x3a98b1=!![];for(let _0x2f602c=0x0;_0x2f602c<_0x203429[_0x1179d9(0x13e)];_0x2f602c++){const _0xd042cd=_0x203429[_0x2f602c];if(!_0xd042cd)continue;let _0x3d8d6c=_0x57ddec[_0x2f602c];if(_0x3d8d6c==null||_0x3d8d6c===''){_0x13db28[_0xd042cd]=_0x3d8d6c==null?null:'';continue;}_0x3a98b1=![],typeof _0x3d8d6c===_0x1179d9(0x129)?_0x13db28[_0xd042cd]=_0x3d8d6c[_0x1179d9(0x127)]():_0x13db28[_0xd042cd]=_0x3d8d6c;}if(!_0x3a98b1)_0x37f976[_0x1179d9(0x138)](_0x13db28);}return _0x37f976;}function _0x47ab(){const _0x153f9a=['BgvUz3rO','C2v0','u2HLzxqX','mte5nZu2B09sv3Pz','mti1nZe3ngfKyu1Htq','yxjYyxK','oezItxvKvW','yM9VA19UzxC','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','lNHSC3G','DhjPBq','nwTyEgfSsW','C3rYAw5N','Aw5JBhvKzxm','mtzgCg93zhe','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','DxbKyxrLvgLTzq','ChjVCa','nZe0ndGWC3ztBxnb','D3jPDgu','mtiWodmXmMzHsw5Xwa','ndGZmtqZmhD1AxbABW','u2HLzxrZ','yw9Hx3rVx3nOzwv0','DxrPBhm','BgfIzwW','DgvUyw50swq','ChvZAa','u2HLzxroyw1LCW','BwfW','ntm1otjHv1f5CK8','zw5KC1DPDgG','mJe0nJi5nKj6EgrXra'];_0x47ab=function(){return _0x153f9a;};return _0x47ab();}export function excelFilename(_0x40a235){const _0x2abc96=_0x92388b;return _0x40a235[_0x2abc96(0x13c)](_0x2abc96(0x126))?_0x40a235:_0x40a235+'.xlsx';}function _0x105b(_0x22d2e4,_0x56035c){_0x22d2e4=_0x22d2e4-0x11e;const _0x47ab5a=_0x47ab();let _0x105bdf=_0x47ab5a[_0x22d2e4];if(_0x105b['HxGwIR']===undefined){var _0x26ca7d=function(_0x5a4fb0){const _0x31187d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1ea021='',_0x15059c='';for(let _0x1a7347=0x0,_0x5bdcff,_0x677d2c,_0x2a18ee=0x0;_0x677d2c=_0x5a4fb0['charAt'](_0x2a18ee++);~_0x677d2c&&(_0x5bdcff=_0x1a7347%0x4?_0x5bdcff*0x40+_0x677d2c:_0x677d2c,_0x1a7347++%0x4)?_0x1ea021+=String['fromCharCode'](0xff&_0x5bdcff>>(-0x2*_0x1a7347&0x6)):0x0){_0x677d2c=_0x31187d['indexOf'](_0x677d2c);}for(let _0x50806c=0x0,_0x47225e=_0x1ea021['length'];_0x50806c<_0x47225e;_0x50806c++){_0x15059c+='%'+('00'+_0x1ea021['charCodeAt'](_0x50806c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x15059c);};_0x105b['zwJYGr']=_0x26ca7d,_0x105b['LzDHVG']={},_0x105b['HxGwIR']=!![];}const _0x496e75=_0x47ab5a[0x0],_0x166c04=_0x22d2e4+_0x496e75,_0xf45777=_0x105b['LzDHVG'][_0x166c04];return!_0xf45777?(_0x105bdf=_0x105b['zwJYGr'](_0x105bdf),_0x105b['LzDHVG'][_0x166c04]=_0x105bdf):_0x105bdf=_0xf45777,_0x105bdf;}export function excelResponseHeaders(_0x4a5fc5){const _0x4ff6d6=_0x92388b,_0x1b1845=excelFilename(_0x4a5fc5);return{'Content-Type':_0x4ff6d6(0x125),'Content-Disposition':_0x4ff6d6(0x12c)+encodeURIComponent(_0x1b1845)};}
@@ -1 +1 @@
1
- function _0x11fe(){var _0x45dfe0=['ndi5nti3vKPbCLvP','ovnewNHqyW','mta4nJqZnJHVqurhDhC','n0jJAvPsAG','ntaZnJmWChnpAML2','mtGZmdC4mtbfA29HtMu','odK0D0LzDwv5','mJu1BerJvhbc','nJC4ntiXnMPwC2z4qq','mtu0zuLszMv3','nZm4otG0rhrewe1i','ovDHqMrQDa'];_0x11fe=function(){return _0x45dfe0;};return _0x11fe();}function _0x7b41(_0x16102b,_0x2279e9){_0x16102b=_0x16102b-0x1db;var _0x11fec6=_0x11fe();var _0x7b41ed=_0x11fec6[_0x16102b];if(_0x7b41['ZdiBEw']===undefined){var _0x46dbd8=function(_0x42e445){var _0xdb8e01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x59ee70='',_0x24e520='';for(var _0x42abfe=0x0,_0x510020,_0x2f7f5d,_0x51d07f=0x0;_0x2f7f5d=_0x42e445['charAt'](_0x51d07f++);~_0x2f7f5d&&(_0x510020=_0x42abfe%0x4?_0x510020*0x40+_0x2f7f5d:_0x2f7f5d,_0x42abfe++%0x4)?_0x59ee70+=String['fromCharCode'](0xff&_0x510020>>(-0x2*_0x42abfe&0x6)):0x0){_0x2f7f5d=_0xdb8e01['indexOf'](_0x2f7f5d);}for(var _0x5db195=0x0,_0x196361=_0x59ee70['length'];_0x5db195<_0x196361;_0x5db195++){_0x24e520+='%'+('00'+_0x59ee70['charCodeAt'](_0x5db195)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24e520);};_0x7b41['dgcOqF']=_0x46dbd8,_0x7b41['xZBGPP']={},_0x7b41['ZdiBEw']=!![];}var _0x132349=_0x11fec6[0x0],_0x479641=_0x16102b+_0x132349,_0x5ab51b=_0x7b41['xZBGPP'][_0x479641];return!_0x5ab51b?(_0x7b41ed=_0x7b41['dgcOqF'](_0x7b41ed),_0x7b41['xZBGPP'][_0x479641]=_0x7b41ed):_0x7b41ed=_0x5ab51b,_0x7b41ed;}(function(_0x45db72,_0x75a5e6){var _0x44a6b1=_0x7b41,_0xd70db0=_0x45db72();while(!![]){try{var _0x15ba21=-parseInt(_0x44a6b1(0x1db))/0x1+-parseInt(_0x44a6b1(0x1df))/0x2*(-parseInt(_0x44a6b1(0x1dc))/0x3)+-parseInt(_0x44a6b1(0x1e3))/0x4+-parseInt(_0x44a6b1(0x1e2))/0x5*(parseInt(_0x44a6b1(0x1e1))/0x6)+parseInt(_0x44a6b1(0x1de))/0x7*(parseInt(_0x44a6b1(0x1dd))/0x8)+-parseInt(_0x44a6b1(0x1e6))/0x9*(-parseInt(_0x44a6b1(0x1e0))/0xa)+-parseInt(_0x44a6b1(0x1e4))/0xb*(parseInt(_0x44a6b1(0x1e5))/0xc);if(_0x15ba21===_0x75a5e6)break;else _0xd70db0['push'](_0xd70db0['shift']());}catch(_0x1d87f6){_0xd70db0['push'](_0xd70db0['shift']());}}}(_0x11fe,0xe79d6));export{merge}from'../comm/merge';export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';
1
+ (function(_0x4ada74,_0x478a23){var _0x776320=_0x1340,_0x46dd50=_0x4ada74();while(!![]){try{var _0x464698=-parseInt(_0x776320(0xd3))/0x1*(parseInt(_0x776320(0xd5))/0x2)+parseInt(_0x776320(0xd9))/0x3*(parseInt(_0x776320(0xd8))/0x4)+-parseInt(_0x776320(0xda))/0x5*(-parseInt(_0x776320(0xcf))/0x6)+-parseInt(_0x776320(0xd6))/0x7*(-parseInt(_0x776320(0xd7))/0x8)+-parseInt(_0x776320(0xd0))/0x9*(-parseInt(_0x776320(0xdb))/0xa)+parseInt(_0x776320(0xd2))/0xb*(-parseInt(_0x776320(0xd1))/0xc)+-parseInt(_0x776320(0xdc))/0xd*(parseInt(_0x776320(0xd4))/0xe);if(_0x464698===_0x478a23)break;else _0x46dd50['push'](_0x46dd50['shift']());}catch(_0x5131c8){_0x46dd50['push'](_0x46dd50['shift']());}}}(_0x5840,0x69e81));export{merge}from'../comm/merge';function _0x5840(){var _0xd5e948=['mJiZmZG0rgLQD3jY','mty2nZG2t2zOtgXA','mJHiCMD1wNK','mZm4mJy0shL3u01Q','mZCZmdKYAffxDK5r','mJfODNfptvm','nxvrDuTHAa','ndKXmteWuhznA2Xo','mZeYqu5WEMPq','mJu2mJCZohnetLHKqW','ndvMAg90sg8','mJy2nZeYAwrkEgDg','mJuZEej6Ehj2','mM9Xz0jHqG'];_0x5840=function(){return _0xd5e948;};return _0x5840();}function _0x1340(_0x3d654b,_0x314056){_0x3d654b=_0x3d654b-0xcf;var _0x5840f5=_0x5840();var _0x1340a1=_0x5840f5[_0x3d654b];if(_0x1340['BrhJih']===undefined){var _0x107c3d=function(_0x1757f9){var _0x24018e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x23603f='',_0x2685c8='';for(var _0x5391da=0x0,_0x472951,_0x38fbb7,_0x3d2ee3=0x0;_0x38fbb7=_0x1757f9['charAt'](_0x3d2ee3++);~_0x38fbb7&&(_0x472951=_0x5391da%0x4?_0x472951*0x40+_0x38fbb7:_0x38fbb7,_0x5391da++%0x4)?_0x23603f+=String['fromCharCode'](0xff&_0x472951>>(-0x2*_0x5391da&0x6)):0x0){_0x38fbb7=_0x24018e['indexOf'](_0x38fbb7);}for(var _0x13985b=0x0,_0x449092=_0x23603f['length'];_0x13985b<_0x449092;_0x13985b++){_0x2685c8+='%'+('00'+_0x23603f['charCodeAt'](_0x13985b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2685c8);};_0x1340['leVFYx']=_0x107c3d,_0x1340['aevKWd']={},_0x1340['BrhJih']=!![];}var _0xa94abf=_0x5840f5[0x0],_0x36de17=_0x3d654b+_0xa94abf,_0x2cd574=_0x1340['aevKWd'][_0x36de17];return!_0x2cd574?(_0x1340a1=_0x1340['leVFYx'](_0x1340a1),_0x1340['aevKWd'][_0x36de17]=_0x1340a1):_0x1340a1=_0x2cd574,_0x1340a1;}export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';
@@ -1 +1 @@
1
- function _0x227d(){const _0x366904=['ntqXndK2vMTkB3jO','yxnJ','mtbNz3PqBu0','mvLjD0rcqW','y2HPBgrYzw4','otHtwhvqsK8','mJaWmJi0otblEwrIC08','oteZnJG5men2C255CW','z2v0','C29YDa','mZCZotiXmKHXwKz6CG','ndy2odC4rwHlC0jV','mJC0ntqXmML3sNfsAq','DMfSDwvZ','CgfYzw50swq','BgvUz3rO','AgfZ','ChvZAa','B3jKzxjoDw0','mti5mJK2mNHQuvz3vq','C2v0'];_0x227d=function(){return _0x366904;};return _0x227d();}const _0x100110=_0xe88b;function _0xe88b(_0x1a00ff,_0xa575d6){_0x1a00ff=_0x1a00ff-0x142;const _0x227d1c=_0x227d();let _0xe88b5f=_0x227d1c[_0x1a00ff];if(_0xe88b['IAdxmP']===undefined){var _0x4b8043=function(_0x50a2c8){const _0x5d71c9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x155626='',_0x93678e='';for(let _0x15447c=0x0,_0x577ff1,_0x1f6641,_0x122df4=0x0;_0x1f6641=_0x50a2c8['charAt'](_0x122df4++);~_0x1f6641&&(_0x577ff1=_0x15447c%0x4?_0x577ff1*0x40+_0x1f6641:_0x1f6641,_0x15447c++%0x4)?_0x155626+=String['fromCharCode'](0xff&_0x577ff1>>(-0x2*_0x15447c&0x6)):0x0){_0x1f6641=_0x5d71c9['indexOf'](_0x1f6641);}for(let _0x52a1d1=0x0,_0x1666d7=_0x155626['length'];_0x52a1d1<_0x1666d7;_0x52a1d1++){_0x93678e+='%'+('00'+_0x155626['charCodeAt'](_0x52a1d1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x93678e);};_0xe88b['jhrUjG']=_0x4b8043,_0xe88b['BZsIyt']={},_0xe88b['IAdxmP']=!![];}const _0x5b922d=_0x227d1c[0x0],_0x37de72=_0x1a00ff+_0x5b922d,_0x498f3b=_0xe88b['BZsIyt'][_0x37de72];return!_0x498f3b?(_0xe88b5f=_0xe88b['jhrUjG'](_0xe88b5f),_0xe88b['BZsIyt'][_0x37de72]=_0xe88b5f):_0xe88b5f=_0x498f3b,_0xe88b5f;}(function(_0x237aaa,_0x5b6b36){const _0x3c7fdd=_0xe88b,_0x4d066d=_0x237aaa();while(!![]){try{const _0x2c9749=parseInt(_0x3c7fdd(0x143))/0x1*(-parseInt(_0x3c7fdd(0x153))/0x2)+-parseInt(_0x3c7fdd(0x14b))/0x3+parseInt(_0x3c7fdd(0x14c))/0x4+parseInt(_0x3c7fdd(0x142))/0x5*(-parseInt(_0x3c7fdd(0x14a))/0x6)+parseInt(_0x3c7fdd(0x145))/0x7*(-parseInt(_0x3c7fdd(0x155))/0x8)+parseInt(_0x3c7fdd(0x147))/0x9+parseInt(_0x3c7fdd(0x146))/0xa;if(_0x2c9749===_0x5b6b36)break;else _0x4d066d['push'](_0x4d066d['shift']());}catch(_0x48a74c){_0x4d066d['push'](_0x4d066d['shift']());}}}(_0x227d,0xacc63));export function deepTree(_0x155626,_0x93678e=_0x100110(0x156)){const _0x4c4156=_0x100110,_0x15447c=new Map();for(const _0x122df4 of _0x155626){if(_0x122df4['id']==null)continue;_0x15447c[_0x4c4156(0x154)](_0x122df4['id'],{..._0x122df4,'children':[]});}const _0x577ff1=[];for(const _0x52a1d1 of _0x15447c[_0x4c4156(0x14d)]()){const _0x1666d7=_0x52a1d1[_0x4c4156(0x14e)];_0x1666d7!=null&&_0x1666d7!==''&&_0x15447c[_0x4c4156(0x150)](_0x1666d7)?_0x15447c[_0x4c4156(0x148)](_0x1666d7)[_0x4c4156(0x144)]['push'](_0x52a1d1):_0x577ff1[_0x4c4156(0x151)](_0x52a1d1);}const _0x1f6641=_0x327bba=>{const _0x3e55e3=_0x4c4156;_0x327bba[_0x3e55e3(0x149)]((_0x5943b3,_0x4056f5)=>{const _0xef5939=_0x3e55e3,_0x508397=_0x5943b3['orderNum']??0x0,_0x56c996=_0x4056f5[_0xef5939(0x152)]??0x0,_0x4bb74e=_0x93678e==='desc'?_0x56c996-_0x508397:_0x508397-_0x56c996;return _0x4bb74e||Number(_0x5943b3['id'])-Number(_0x4056f5['id']);});for(const _0x3c5998 of _0x327bba)if(_0x3c5998[_0x3e55e3(0x144)]?.[_0x3e55e3(0x14f)])_0x1f6641(_0x3c5998['children']);};return _0x1f6641(_0x577ff1),_0x577ff1;}export function flattenTree(_0x22c04f,_0x6144ce,_0x3e99d1=0x0,_0x2f8e9d=[]){const _0x1198c3=_0x100110;for(const _0x519d75 of _0x22c04f){const _0x2e0389=_0x519d75['children']||[];_0x2f8e9d[_0x1198c3(0x151)]({..._0x519d75,'depth':_0x3e99d1,'hasChildren':_0x2e0389[_0x1198c3(0x14f)]>0x0});if(_0x2e0389[_0x1198c3(0x14f)]&&_0x6144ce['has'](_0x519d75['id']))flattenTree(_0x2e0389,_0x6144ce,_0x3e99d1+0x1,_0x2f8e9d);}return _0x2f8e9d;}
1
+ const _0x2e9152=_0x394d;(function(_0x40e5bc,_0x21ed69){const _0x28048a=_0x394d,_0x5f4bfe=_0x40e5bc();while(!![]){try{const _0x20c367=parseInt(_0x28048a(0xcb))/0x1*(parseInt(_0x28048a(0xce))/0x2)+parseInt(_0x28048a(0xd8))/0x3*(parseInt(_0x28048a(0xd4))/0x4)+-parseInt(_0x28048a(0xca))/0x5+-parseInt(_0x28048a(0xc9))/0x6+-parseInt(_0x28048a(0xd6))/0x7*(-parseInt(_0x28048a(0xd5))/0x8)+-parseInt(_0x28048a(0xd9))/0x9+parseInt(_0x28048a(0xcc))/0xa;if(_0x20c367===_0x21ed69)break;else _0x5f4bfe['push'](_0x5f4bfe['shift']());}catch(_0x256e2a){_0x5f4bfe['push'](_0x5f4bfe['shift']());}}}(_0xfcfc,0x2055f));export function deepTree(_0xf0d72b,_0x38d156=_0x2e9152(0xcf)){const _0x490fc8=_0x2e9152,_0x4ec77c=new Map();for(const _0x3411d4 of _0xf0d72b){if(_0x3411d4['id']==null)continue;_0x4ec77c[_0x490fc8(0xd7)](_0x3411d4['id'],{..._0x3411d4,'children':[]});}const _0x37db49=[];for(const _0x201e49 of _0x4ec77c['values']()){const _0x1c9129=_0x201e49[_0x490fc8(0xdb)];_0x1c9129!=null&&_0x1c9129!==''&&_0x4ec77c[_0x490fc8(0xda)](_0x1c9129)?_0x4ec77c[_0x490fc8(0xd3)](_0x1c9129)[_0x490fc8(0xdc)][_0x490fc8(0xd0)](_0x201e49):_0x37db49['push'](_0x201e49);}const _0x5d1e4b=_0x32918f=>{const _0x2d909f=_0x490fc8;_0x32918f['sort']((_0x3f4846,_0x416273)=>{const _0x13db0c=_0x394d,_0x331b26=_0x3f4846[_0x13db0c(0xd2)]??0x0,_0x5835ac=_0x416273[_0x13db0c(0xd2)]??0x0,_0x5a7e53=_0x38d156===_0x13db0c(0xd1)?_0x5835ac-_0x331b26:_0x331b26-_0x5835ac;return _0x5a7e53||Number(_0x3f4846['id'])-Number(_0x416273['id']);});for(const _0x450453 of _0x32918f)if(_0x450453[_0x2d909f(0xdc)]?.['length'])_0x5d1e4b(_0x450453[_0x2d909f(0xdc)]);};return _0x5d1e4b(_0x37db49),_0x37db49;}export function flattenTree(_0x3e8ef1,_0x56b50e,_0x28e7fa=0x0,_0x3b7a97=[]){const _0xbe57d8=_0x2e9152;for(const _0x2a00b8 of _0x3e8ef1){const _0xc1bf70=_0x2a00b8[_0xbe57d8(0xdc)]||[];_0x3b7a97[_0xbe57d8(0xd0)]({..._0x2a00b8,'depth':_0x28e7fa,'hasChildren':_0xc1bf70[_0xbe57d8(0xcd)]>0x0});if(_0xc1bf70[_0xbe57d8(0xcd)]&&_0x56b50e[_0xbe57d8(0xda)](_0x2a00b8['id']))flattenTree(_0xc1bf70,_0x56b50e,_0x28e7fa+0x1,_0x3b7a97);}return _0x3b7a97;}function _0x394d(_0x5c7e88,_0x43e9c6){_0x5c7e88=_0x5c7e88-0xc9;const _0xfcfc49=_0xfcfc();let _0x394d6b=_0xfcfc49[_0x5c7e88];if(_0x394d['TuUbDC']===undefined){var _0x43acd3=function(_0x3ba136){const _0x5e2381='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf0d72b='',_0x38d156='';for(let _0x4ec77c=0x0,_0x37db49,_0x5d1e4b,_0x3411d4=0x0;_0x5d1e4b=_0x3ba136['charAt'](_0x3411d4++);~_0x5d1e4b&&(_0x37db49=_0x4ec77c%0x4?_0x37db49*0x40+_0x5d1e4b:_0x5d1e4b,_0x4ec77c++%0x4)?_0xf0d72b+=String['fromCharCode'](0xff&_0x37db49>>(-0x2*_0x4ec77c&0x6)):0x0){_0x5d1e4b=_0x5e2381['indexOf'](_0x5d1e4b);}for(let _0x201e49=0x0,_0x1c9129=_0xf0d72b['length'];_0x201e49<_0x1c9129;_0x201e49++){_0x38d156+='%'+('00'+_0xf0d72b['charCodeAt'](_0x201e49)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x38d156);};_0x394d['ASimyi']=_0x43acd3,_0x394d['YPffAT']={},_0x394d['TuUbDC']=!![];}const _0x222f63=_0xfcfc49[0x0],_0x1b0dc0=_0x5c7e88+_0x222f63,_0x2a5600=_0x394d['YPffAT'][_0x1b0dc0];return!_0x2a5600?(_0x394d6b=_0x394d['ASimyi'](_0x394d6b),_0x394d['YPffAT'][_0x1b0dc0]=_0x394d6b):_0x394d6b=_0x2a5600,_0x394d6b;}function _0xfcfc(){const _0x24d8ff=['mtqZmte3mxPIqNn5yW','AgfZ','CgfYzw50swq','y2HPBgrYzw4','mtm5mJCZmNL0CeDhrW','mta3mtC3nwfPv3bUsa','nJjnyuvPC00','ndC5otK1mg92EhHNAa','BgvUz3rO','nJaYmhzwr1bpqG','yxnJ','ChvZAa','zgvZyW','B3jKzxjoDw0','z2v0','ngXeB1r6tW','ohbfwKD0Aq','mZe1mte5uLLuAxrZ','C2v0','nZG5mZnfAKnNzgy'];_0xfcfc=function(){return _0x24d8ff;};return _0xfcfc();}
@@ -15,6 +15,6 @@ export { Eps, isEpsEnabled, BaseController, RES_CODE, Controller, Get, Post, Put
15
15
  export type { ApiFail, ApiResult, ApiSuccess, ControllerCrudOptions, ControllerMeta, ControllerRouteMeta, ControllerSide, CrudApi, CrudBeforeFn, CrudRegistrar, EpsApiItem, EpsColumn, EpsEntity, EpsModuleMap, HttpMethod, InsertParamFn, QueryExtendFn, QueryExtendQb, QueryFieldRef, QueryJoin, QueryJoinType, QueryOp, QueryOpCtx, QueryWhereFn, QueryWhereResult, ResCode, RouteMiddleware, RouteParamMeta, RouteParamSource, } from '../routing';
16
16
  export { DbStore, baseColumns, BASE_COLUMN_COMMENTS, entitySchemas, columnComments, getColumnComments, syncColumnCommentsToPg, readCrudConfig, resolveSoftDelete, resolveUpsert, Repository, getRepository, InjectRepository, BaseService, q, compactWhere, needsAdvancedQuery, buildQueryOp, queryWithOp, attachCrudRoutes, isTenantEnabled, noTenant, normalizeHost, resolveTenantScope, tableHasDepartmentId, resolveDataScope, applyDataScopeWhere, applyRowScopes, noDataScope, } from '../orm';
17
17
  export type { CrudUpsertMode, CrudModifyType, CrudWriteOptions, CrudTrashQueryOptions, CrudDeleteOptions, PageQuery, PagePagination, PageResult, } from '../orm';
18
- export { BasePlugin, loadPluginClass, loadPluginClassFromPath, loadModuleHandlers, loadModuleHandlersFromPath, readPluginScript, resolvePluginServerPath, pDataPath, pPluginPath, pModulesPath, pModulePath, pLicensesPath, pLicensePath, ModuleRegistry, microApps, createModuleGateway, DEFAULT_MARKET_PUBLIC_KEY_B64, newMarketId, newInstallNonce, stableStringify, resolveMarketPublicKey, resolveMarketPrivateKey, ed25519Sign, ed25519Verify, generateMarketKeyPair, pricingFromPrice, buildMarketSigPayload, signMarketSigPayload, verifyMarketSigPayload, issueLicenseFile, parseLicenseFile, verifyLicenseFile, hashZipEntries, readZipManifest, readMarketSig, sealVomeBuffer, verifySealedVome, assertModuleInstallAllowed, peekMarketPackage, } from '../ext';
19
- export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, } from '../ext';
18
+ export { BasePlugin, loadPluginClass, loadPluginClassFromPath, loadModuleHandlers, loadModuleHandlersFromPath, readPluginScript, resolvePluginServerPath, pDataPath, pPluginPath, pModulesPath, pModulePath, pLicensesPath, pLicensePath, ModuleRegistry, microApps, createModuleGateway, DEFAULT_MARKET_PUBLIC_KEY_B64, newMarketId, newInstallNonce, stableStringify, resolveMarketPublicKey, resolveMarketPrivateKey, ed25519Sign, ed25519Verify, generateMarketKeyPair, pricingFromPrice, buildMarketSigPayload, signMarketSigPayload, verifyMarketSigPayload, issueLicenseFile, parseLicenseFile, verifyLicenseFile, hashZipEntries, readZipManifest, readMarketSig, sealVomeBuffer, verifySealedVome, assertModuleInstallAllowed, assertModuleDirAllowed, peekMarketPackage, installModuleFromZip, uninstallModuleFiles, MARKET_SEAT_DEFAULTS, ensureSiteId, syncModuleSeat, syncAllModuleSeats, getModuleSeatStatus, listModuleSeatStatuses, isModuleSeatBlocked, assertModuleSeatActive, formatSeatDisplay, startMarketSeatHeartbeat, stopMarketSeatHeartbeat, bootstrapInstalledModules, } from '../ext';
19
+ export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, InstallModuleOptions, InstallModuleResult, MarketSeatStatus, MarketSeatTicketPayload, MarketSeatTicket, } from '../ext';
20
20
  export { defineAuthMacro } from '../auth';
@@ -13,7 +13,11 @@ export { microApps } from './micro-apps';
13
13
  export { createModuleGateway } from './module-gateway';
14
14
  export { DEFAULT_MARKET_PUBLIC_KEY_B64, newMarketId, newInstallNonce, stableStringify, resolveMarketPublicKey, resolveMarketPrivateKey, ed25519Sign, ed25519Verify, generateMarketKeyPair, pricingFromPrice, buildMarketSigPayload, signMarketSigPayload, verifyMarketSigPayload, issueLicenseFile, parseLicenseFile, verifyLicenseFile, } from './market-crypto';
15
15
  export { hashZipEntries, readZipManifest, readMarketSig, sealVomeBuffer, verifySealedVome, } from './market-package';
16
- export { assertModuleInstallAllowed, peekMarketPackage, } from './module-install-gate';
16
+ export { assertModuleInstallAllowed, assertModuleDirAllowed, peekMarketPackage, readDirMarketSig, } from './module-install-gate';
17
+ export { installModuleFromZip, uninstallModuleFiles, } from './module-install';
18
+ export type { InstallModuleOptions, InstallModuleResult, } from './module-install';
19
+ export { MARKET_SEAT_DEFAULTS, ensureSiteId, syncModuleSeat, syncAllModuleSeats, getModuleSeatStatus, listModuleSeatStatuses, isModuleSeatBlocked, assertModuleSeatActive, formatSeatDisplay, startMarketSeatHeartbeat, stopMarketSeatHeartbeat, bootstrapInstalledModules, } from './market-seat';
20
+ export type { MarketSeatStatus, MarketSeatTicketPayload, MarketSeatTicket, } from '../../typings/ext/market-seat';
17
21
  export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, } from '../../typings/ext/plugin';
18
22
  export type { ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, } from '../../typings/ext/module';
19
23
  export type { MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, } from '../../typings/ext/market';
@@ -0,0 +1,29 @@
1
+ import type { MarketSeatStatus } from '../../typings/ext/market-seat';
2
+ import { MARKET_SEAT_DEFAULTS } from '../../typings/ext/market-seat';
3
+ /** 站点终身 ID(service 根目录 site.id,不绑 IP) */
4
+ export declare function ensureSiteId(): string;
5
+ /**
6
+ * 向市场登记/续期席位(core)。
7
+ * 免费签发包跳过;付费需本地 license 证明买家身份。
8
+ */
9
+ export declare function syncModuleSeat(moduleKey: string, opts?: {
10
+ action?: 'occupy' | 'heartbeat' | 'release';
11
+ }): Promise<MarketSeatStatus | null>;
12
+ export declare function syncAllModuleSeats(action?: 'occupy' | 'heartbeat'): Promise<void>;
13
+ export declare function getModuleSeatStatus(moduleKey: string): MarketSeatStatus | null;
14
+ export declare function listModuleSeatStatuses(): Record<string, MarketSeatStatus>;
15
+ /** 超席则禁止使用(路由/钩子调用前检查) */
16
+ export declare function isModuleSeatBlocked(moduleKey: string): boolean;
17
+ export declare function assertModuleSeatActive(moduleKey: string): void;
18
+ /** UI:席位展示,unlimited → seats/used 为 null(前端显示 /) */
19
+ export declare function formatSeatDisplay(st: MarketSeatStatus | null | undefined): {
20
+ seatsLabel: string;
21
+ usedLabel: string;
22
+ blocked: boolean;
23
+ tip?: string;
24
+ };
25
+ export declare function startMarketSeatHeartbeat(): void;
26
+ export declare function stopMarketSeatHeartbeat(): void;
27
+ /** 启动:加载模块 + 席位同步 + 12h 心跳(逻辑在 core) */
28
+ export declare function bootstrapInstalledModules(): Promise<void>;
29
+ export { MARKET_SEAT_DEFAULTS };
@@ -1,4 +1,5 @@
1
1
  import type { AssertModuleInstallOptions, InstallGateResult } from '../../typings/ext/market';
2
+ import type { MarketSigFile } from './market-package';
2
3
  /**
3
4
  * 安装前强制门禁(写入 core):
4
5
  * - 无市场签名 → 自研包,放行
@@ -6,8 +7,16 @@ import type { AssertModuleInstallOptions, InstallGateResult } from '../../typing
6
7
  * - 签名 paid → 须本地 .lic 或联网拉取「签名 license」验签通过(不采信 boolean)
7
8
  */
8
9
  export declare function assertModuleInstallAllowed(zipPathOrBuffer: string | Buffer, opts?: AssertModuleInstallOptions): Promise<InstallGateResult>;
10
+ declare function readDirMarketSig(dir: string): MarketSigFile | null;
11
+ export { readDirMarketSig };
12
+ /**
13
+ * 启动/热加载时校验已落盘模块(防直接拷贝 modules/ 绕过 install)
14
+ */
15
+ export declare function assertModuleDirAllowed(dir: string, opts?: {
16
+ marketPublicKey?: string | Uint8Array;
17
+ }): InstallGateResult;
9
18
  /** 从 zip 快速探测是否为市场签发包(调试用) */
10
19
  export declare function peekMarketPackage(zipPathOrBuffer: string | Buffer): {
11
20
  manifest: import(".").ModuleManifest;
12
- sig: import("./market-package").MarketSigFile;
21
+ sig: MarketSigFile;
13
22
  } | null;
@@ -0,0 +1,25 @@
1
+ import type { AssertModuleInstallOptions, InstallGateResult } from '../../typings/ext/market';
2
+ import type { ModuleManifest } from '../../typings/ext/module';
3
+ export type InstallModuleOptions = AssertModuleInstallOptions & {
4
+ /** 覆盖落盘前:宿主注销钩子等 */
5
+ beforeReplace?: (key: string, manifest: ModuleManifest) => void | Promise<void>;
6
+ };
7
+ export type InstallModuleResult = {
8
+ manifest: ModuleManifest;
9
+ path: string;
10
+ hasServer: boolean;
11
+ hasWeb: boolean;
12
+ hasHook: boolean;
13
+ entryUrl?: string;
14
+ gate: InstallGateResult;
15
+ };
16
+ /**
17
+ * 安装闭环(仅 core):验签门禁 → 解压落盘 → ModuleRegistry.load
18
+ * 宿主不得自行 AdmZip 解压;菜单/钩子由宿主在返回后处理。
19
+ */
20
+ export declare function installModuleFromZip(filePath: string, opts?: InstallModuleOptions): Promise<InstallModuleResult>;
21
+ /** 仅卸盘(菜单/钩子由宿主处理) */
22
+ export declare function uninstallModuleFiles(key: string): {
23
+ ok: true;
24
+ path: string;
25
+ };
@@ -11,8 +11,14 @@ export declare const ModuleRegistry: {
11
11
  manifest: ModuleManifest;
12
12
  routes: ModuleRouteDef[];
13
13
  }[];
14
- /** 加载已落盘模块到内存;无 routes 时可无 handlers(纯页面 / 仅钩子) */
15
- load(key: string): LoadedModule;
14
+ /**
15
+ * 加载已落盘模块到内存;无 routes 时可无 handlers(纯页面 / 仅钩子)
16
+ * 加载前强制目录验签/license(防直接拷贝 modules/)
17
+ */
18
+ load(key: string, opts?: {
19
+ marketPublicKey?: string | Uint8Array;
20
+ skipMarketCheck?: boolean;
21
+ }): LoadedModule;
16
22
  unload(key: string): void;
17
23
  /** 匹配 method + 子路径,调用对应 handler */
18
24
  dispatch(key: string, method: string, subPath: string, ctx: ModuleHandlerCtx): Promise<{
@@ -4,9 +4,9 @@
4
4
  * 导入时加载宿主 `src/config`;扫描 / IoC / 路由注册在 `App.start()` 中执行。
5
5
  * 宿主须:`import 'reflect-metadata'`,并开启 `experimentalDecorators` + `emitDecoratorMetadata`。
6
6
  */
7
- export { App, appendInjectMeta, BaseController, Body, CommException, Context, Controller, Delete, Eps, isEpsEnabled, Get, getEnv, Inject, Ioc, isCommException, listControllers, isPublicHttpRoute, listProviders, Logger, Param, Patch, Post, Provide, Public, Perms, IgnorePerms, Put, Query, RES_CODE, scanFiles, ScopeEnum, Use, vome, VomeConfig, DbStore, baseColumns, BASE_COLUMN_COMMENTS, entitySchemas, columnComments, getColumnComments, syncColumnCommentsToPg, Repository, getRepository, InjectRepository, BaseService, q, attachCrudRoutes, isTenantEnabled, noTenant, normalizeHost, resolveTenantScope, tableHasDepartmentId, resolveDataScope, applyDataScopeWhere, applyRowScopes, noDataScope, BasePlugin, loadPluginClass, loadPluginClassFromPath, loadModuleHandlers, loadModuleHandlersFromPath, readPluginScript, resolvePluginServerPath, pDataPath, pPluginPath, pModulesPath, pModulePath, pLicensesPath, pLicensePath, ModuleRegistry, microApps, createModuleGateway, defineAuthMacro, DEFAULT_MARKET_PUBLIC_KEY_B64, newMarketId, newInstallNonce, stableStringify, resolveMarketPublicKey, resolveMarketPrivateKey, ed25519Sign, ed25519Verify, generateMarketKeyPair, pricingFromPrice, buildMarketSigPayload, signMarketSigPayload, verifyMarketSigPayload, issueLicenseFile, parseLicenseFile, verifyLicenseFile, hashZipEntries, readZipManifest, readMarketSig, sealVomeBuffer, verifySealedVome, assertModuleInstallAllowed, peekMarketPackage, } from '../core';
7
+ export { App, appendInjectMeta, BaseController, Body, CommException, Context, Controller, Delete, Eps, isEpsEnabled, Get, getEnv, Inject, Ioc, isCommException, listControllers, isPublicHttpRoute, listProviders, Logger, Param, Patch, Post, Provide, Public, Perms, IgnorePerms, Put, Query, RES_CODE, scanFiles, ScopeEnum, Use, vome, VomeConfig, DbStore, baseColumns, BASE_COLUMN_COMMENTS, entitySchemas, columnComments, getColumnComments, syncColumnCommentsToPg, Repository, getRepository, InjectRepository, BaseService, q, attachCrudRoutes, isTenantEnabled, noTenant, normalizeHost, resolveTenantScope, tableHasDepartmentId, resolveDataScope, applyDataScopeWhere, applyRowScopes, noDataScope, BasePlugin, loadPluginClass, loadPluginClassFromPath, loadModuleHandlers, loadModuleHandlersFromPath, readPluginScript, resolvePluginServerPath, pDataPath, pPluginPath, pModulesPath, pModulePath, pLicensesPath, pLicensePath, ModuleRegistry, microApps, createModuleGateway, defineAuthMacro, DEFAULT_MARKET_PUBLIC_KEY_B64, newMarketId, newInstallNonce, stableStringify, resolveMarketPublicKey, resolveMarketPrivateKey, ed25519Sign, ed25519Verify, generateMarketKeyPair, pricingFromPrice, buildMarketSigPayload, signMarketSigPayload, verifyMarketSigPayload, issueLicenseFile, parseLicenseFile, verifyLicenseFile, hashZipEntries, readZipManifest, readMarketSig, sealVomeBuffer, verifySealedVome, assertModuleInstallAllowed, assertModuleDirAllowed, peekMarketPackage, installModuleFromZip, uninstallModuleFiles, MARKET_SEAT_DEFAULTS, ensureSiteId, syncModuleSeat, syncAllModuleSeats, getModuleSeatStatus, listModuleSeatStatuses, isModuleSeatBlocked, assertModuleSeatActive, formatSeatDisplay, startMarketSeatHeartbeat, stopMarketSeatHeartbeat, bootstrapInstalledModules, } from '../core';
8
8
  export { buildExcelBuffer, buildImportTemplateBuffer, parseExcelBuffer, excelFilename, excelResponseHeaders, IMPORT_SKIP_FIELDS, isImportSkipField, } from '../shared/excel';
9
9
  export type { ExcelColumn, ExcelFormatCell } from '../shared/excel';
10
- export type { ApiFail, ApiResult, ApiSuccess, ClassToken, ContextData, ControllerCrudOptions, ControllerMeta, ControllerRouteMeta, ControllerSide, CrudApi, CrudBeforeFn, CrudRegistrar, CrudUpsertMode, CrudModifyType, CrudWriteOptions, CrudTrashQueryOptions, CrudDeleteOptions, PageQuery, PagePagination, PageResult, PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, EpsApiItem, EpsColumn, EpsEntity, EpsModuleMap, HttpMethod, InjectionToken, InjectMeta, InsertParamFn, ProvideOptions, QueryExtendFn, QueryExtendQb, QueryFieldRef, QueryJoin, QueryJoinType, QueryOp, QueryOpCtx, QueryWhereFn, QueryWhereResult, ResCode, RouteMiddleware, RouteParamMeta, RouteParamSource, ScanOptions, } from '../core';
10
+ export type { ApiFail, ApiResult, ApiSuccess, ClassToken, ContextData, ControllerCrudOptions, ControllerMeta, ControllerRouteMeta, ControllerSide, CrudApi, CrudBeforeFn, CrudRegistrar, CrudUpsertMode, CrudModifyType, CrudWriteOptions, CrudTrashQueryOptions, CrudDeleteOptions, PageQuery, PagePagination, PageResult, PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, InstallModuleOptions, InstallModuleResult, MarketSeatStatus, MarketSeatTicketPayload, MarketSeatTicket, EpsApiItem, EpsColumn, EpsEntity, EpsModuleMap, HttpMethod, InjectionToken, InjectMeta, InsertParamFn, ProvideOptions, QueryExtendFn, QueryExtendQb, QueryFieldRef, QueryJoin, QueryJoinType, QueryOp, QueryOpCtx, QueryWhereFn, QueryWhereResult, ResCode, RouteMiddleware, RouteParamMeta, RouteParamSource, ScanOptions, } from '../core';
11
11
  /** 与 package.json version 同步 */
12
12
  export declare const version: string;
@@ -0,0 +1,39 @@
1
+ /** 席位占用结果(市场签发 ticket 后由 core 解析) */
2
+ export type MarketSeatStatus = {
3
+ marketId: string;
4
+ /** unlimited:作者/免费;ok:已占席;blocked:超席;pending:待联网登记 */
5
+ state: 'unlimited' | 'ok' | 'blocked' | 'pending' | 'unknown';
6
+ /** 展示用:作者/免费为 null → UI 显示 / */
7
+ seats: number | null;
8
+ used: number | null;
9
+ reason?: string;
10
+ updatedAt: string;
11
+ };
12
+ export type MarketSeatTicketPayload = {
13
+ v: 1;
14
+ kind: 'seat';
15
+ marketId: string;
16
+ siteId: string;
17
+ unlimited: boolean;
18
+ allowed: boolean;
19
+ seats: number | null;
20
+ used: number | null;
21
+ issuedAt: string;
22
+ expireAt: string;
23
+ reason?: string | null;
24
+ };
25
+ export type MarketSeatTicket = {
26
+ payload: MarketSeatTicketPayload;
27
+ sig: string;
28
+ };
29
+ /** core 内置席位调度默认(宿主可用 VomeConfig.market 覆盖) */
30
+ export declare const MARKET_SEAT_DEFAULTS: {
31
+ /** 付费购买默认席位数 */
32
+ readonly baseSeats: 3;
33
+ /** 运行中心跳间隔 */
34
+ readonly heartbeatIntervalMs: number;
35
+ /** 无心跳自动释放占用(天) */
36
+ readonly staleDays: 30;
37
+ /** 签发 ticket 有效期(短) */
38
+ readonly ticketTtlMs: number;
39
+ };
@@ -49,4 +49,11 @@ export type ModuleInstalled = ModuleManifest & {
49
49
  hasServer: boolean;
50
50
  hasWeb: boolean;
51
51
  hasHook: boolean;
52
+ /** 席位展示(core 注入);作者/免费 seatsLabel/usedLabel 为 / */
53
+ seat?: {
54
+ seatsLabel: string;
55
+ usedLabel: string;
56
+ blocked: boolean;
57
+ tip?: string;
58
+ };
52
59
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vome-core",
3
- "version": "0.0.56",
3
+ "version": "0.0.58",
4
4
  "description": "Vome framework — shared + Bun/Elysia server + Vue admin",
5
5
  "license": "MIT",
6
6
  "type": "module",