vome-core 0.0.55 → 0.0.56

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 (40) 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-crypto.d.ts +41 -0
  33. package/dist/src/ext/market-install.test.d.ts +1 -0
  34. package/dist/src/ext/market-package.d.ts +28 -0
  35. package/dist/src/ext/module-install-gate.d.ts +13 -0
  36. package/dist/src/ext/path.d.ts +6 -0
  37. package/dist/src/server/index.d.ts +2 -2
  38. package/dist/typings/ext/market.d.ts +43 -0
  39. package/dist/typings/ext/module.d.ts +7 -0
  40. package/package.json +3 -1
@@ -1 +1 @@
1
- const _0x2fbca8=_0x14d3;(function(_0x413415,_0x325c1f){const _0x227e54=_0x14d3,_0x5542b2=_0x413415();while(!![]){try{const _0x3949c6=-parseInt(_0x227e54(0x175))/0x1*(-parseInt(_0x227e54(0x176))/0x2)+-parseInt(_0x227e54(0x17a))/0x3+parseInt(_0x227e54(0x161))/0x4+parseInt(_0x227e54(0x167))/0x5*(parseInt(_0x227e54(0x169))/0x6)+parseInt(_0x227e54(0x179))/0x7+parseInt(_0x227e54(0x15c))/0x8*(parseInt(_0x227e54(0x174))/0x9)+-parseInt(_0x227e54(0x168))/0xa;if(_0x3949c6===_0x325c1f)break;else _0x5542b2['push'](_0x5542b2['shift']());}catch(_0x57a8ac){_0x5542b2['push'](_0x5542b2['shift']());}}}(_0x1e55,0x6a8ae));function _0x1e55(){const _0xb63162=['yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','BgvUz3rO','zw5KC1DPDgG','ChvZAa','BwfW','nZa4ntK1s2rgwNjX','mtKWmZCWodb1C1vJEwq','mZz1y2Xetva','u2HLzxroyw1LCW','C2HLzxrFDg9FANnVBG','D3jPDgu','C2v0','u2HLzxqX','CMvHza','lNHSC3G','zgvSzxrLzef0','C3rYAw5N','Aw5JBhvKzxm','mJDkse5Qrxy','m295ugTryW','mtaYmda4rLnWDeTY','u2HLzxrZ','yM9VA19HChbLBMrFC2HLzxq','ndq3mdK2m3z0Eej2CG','mZe2odi3ChPKqvLZ','yw9Hx3rVx3nOzwv0','yM9VA19UzxC','ChjVCa','DxbKyxrLvgLTzq','z2v0','mta5mJiYngvnwLjlsG','DxrPBhm','yxjYyxK','BgfIzwW','DhjPBq','mtu3nJm4nejkyvvICq'];_0x1e55=function(){return _0xb63162;};return _0x1e55();}import*as _0x57c742 from'xlsx';export const IMPORT_SKIP_FIELDS=['id','createTime',_0x2fbca8(0x15a),_0x2fbca8(0x171),'tenantId'];export function isImportSkipField(_0x98da7d){const _0x870228=_0x2fbca8;return IMPORT_SKIP_FIELDS[_0x870228(0x173)](_0x98da7d);}export function buildExcelBuffer(_0x255a28,_0x1476d6,_0x4929fd){const _0x2078e3=_0x2fbca8,_0x19be96=_0x255a28['map'](_0x2d2f71=>_0x2d2f71[_0x2078e3(0x15f)]||_0x2d2f71[_0x2078e3(0x159)]),_0x36ff9f=_0x1476d6[_0x2078e3(0x166)](_0x505e62=>_0x255a28[_0x2078e3(0x166)](_0x570bb7=>{const _0x350b3e=_0x2078e3;if(_0x4929fd)return _0x4929fd(_0x570bb7[_0x350b3e(0x159)],_0x505e62);const _0x11c416=_0x505e62[_0x570bb7[_0x350b3e(0x159)]];if(_0x11c416==null)return'';return String(_0x11c416);})),_0x101f5b=_0x57c742['utils'][_0x2078e3(0x17b)]([_0x19be96,..._0x36ff9f]),_0x1c9bee=_0x57c742[_0x2078e3(0x15d)][_0x2078e3(0x17c)]();return _0x57c742[_0x2078e3(0x15d)][_0x2078e3(0x178)](_0x1c9bee,_0x101f5b,_0x2078e3(0x16e)),_0x57c742[_0x2078e3(0x16c)](_0x1c9bee,{'bookType':'xlsx','type':'array'});}export function buildImportTemplateBuffer(_0x3df795){return buildExcelBuffer(_0x3df795,[]);}function _0x14d3(_0x1587b2,_0x352447){_0x1587b2=_0x1587b2-0x159;const _0x1e55d3=_0x1e55();let _0x14d377=_0x1e55d3[_0x1587b2];if(_0x14d3['OQnysF']===undefined){var _0x32f0fc=function(_0x574839){const _0x15fa79='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57c742='',_0x98da7d='';for(let _0x255a28=0x0,_0x1476d6,_0x4929fd,_0x19be96=0x0;_0x4929fd=_0x574839['charAt'](_0x19be96++);~_0x4929fd&&(_0x1476d6=_0x255a28%0x4?_0x1476d6*0x40+_0x4929fd:_0x4929fd,_0x255a28++%0x4)?_0x57c742+=String['fromCharCode'](0xff&_0x1476d6>>(-0x2*_0x255a28&0x6)):0x0){_0x4929fd=_0x15fa79['indexOf'](_0x4929fd);}for(let _0x36ff9f=0x0,_0x101f5b=_0x57c742['length'];_0x36ff9f<_0x101f5b;_0x36ff9f++){_0x98da7d+='%'+('00'+_0x57c742['charCodeAt'](_0x36ff9f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x98da7d);};_0x14d3['crClvA']=_0x32f0fc,_0x14d3['akAmfc']={},_0x14d3['OQnysF']=!![];}const _0x1444c5=_0x1e55d3[0x0],_0x575efd=_0x1587b2+_0x1444c5,_0x538cf6=_0x14d3['akAmfc'][_0x575efd];return!_0x538cf6?(_0x14d377=_0x14d3['crClvA'](_0x14d377),_0x14d3['akAmfc'][_0x575efd]=_0x14d377):_0x14d377=_0x538cf6,_0x14d377;}export function parseExcelBuffer(_0x387464,_0x3d51dc){const _0x33666d=_0x2fbca8,_0x181c12=_0x57c742[_0x33666d(0x16f)](_0x387464,{'type':_0x33666d(0x15e),'cellDates':!![]}),_0x38040c=_0x181c12[_0x33666d(0x16a)][0x0];if(!_0x38040c)return[];const _0xbbf009=_0x181c12[_0x33666d(0x177)][_0x38040c];if(!_0xbbf009)return[];const _0x30b8c7=_0x57c742[_0x33666d(0x15d)][_0x33666d(0x16b)](_0xbbf009,{'header':0x1,'defval':'','raw':![]});if(!_0x30b8c7[_0x33666d(0x163)])return[];const _0x322986=(_0x30b8c7[0x0]||[])[_0x33666d(0x166)](_0x5f1de8=>String(_0x5f1de8??'')[_0x33666d(0x160)]()),_0x11129a=new Map();if(_0x3d51dc?.[_0x33666d(0x163)])for(const _0x379eb2 of _0x3d51dc){_0x11129a[_0x33666d(0x16d)](_0x379eb2[_0x33666d(0x15f)][_0x33666d(0x160)](),_0x379eb2[_0x33666d(0x159)]),_0x11129a[_0x33666d(0x16d)](_0x379eb2[_0x33666d(0x159)],_0x379eb2['prop']);}const _0xd9949f=_0x322986[_0x33666d(0x166)](_0x36e076=>{const _0x1a4431=_0x33666d;if(!_0x36e076)return'';return _0x11129a[_0x1a4431(0x15b)](_0x36e076)||_0x36e076;}),_0x5ea947=[];for(let _0x52ae66=0x1;_0x52ae66<_0x30b8c7[_0x33666d(0x163)];_0x52ae66++){const _0x50cc9d=_0x30b8c7[_0x52ae66]||[],_0x539ed8={};let _0x34ac17=!![];for(let _0x365d56=0x0;_0x365d56<_0xd9949f[_0x33666d(0x163)];_0x365d56++){const _0x575582=_0xd9949f[_0x365d56];if(!_0x575582)continue;let _0xb439fc=_0x50cc9d[_0x365d56];if(_0xb439fc==null||_0xb439fc===''){_0x539ed8[_0x575582]=_0xb439fc==null?null:'';continue;}_0x34ac17=![],typeof _0xb439fc===_0x33666d(0x172)?_0x539ed8[_0x575582]=_0xb439fc[_0x33666d(0x160)]():_0x539ed8[_0x575582]=_0xb439fc;}if(!_0x34ac17)_0x5ea947[_0x33666d(0x165)](_0x539ed8);}return _0x5ea947;}export function excelFilename(_0x3af210){const _0x2afcd6=_0x2fbca8;return _0x3af210[_0x2afcd6(0x164)](_0x2afcd6(0x170))?_0x3af210:_0x3af210+'.xlsx';}export function excelResponseHeaders(_0x18a3af){const _0xbb3c32=_0x2fbca8,_0x5a7459=excelFilename(_0x18a3af);return{'Content-Type':_0xbb3c32(0x162),'Content-Disposition':'attachment;\x20filename*=UTF-8\x27\x27'+encodeURIComponent(_0x5a7459)};}
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 +1 @@
1
- (function(_0x205082,_0x33ea9d){var _0x3225d0=_0x13f5,_0x38a2bd=_0x205082();while(!![]){try{var _0x5b5d54=-parseInt(_0x3225d0(0xc1))/0x1*(parseInt(_0x3225d0(0xc0))/0x2)+parseInt(_0x3225d0(0xc4))/0x3+parseInt(_0x3225d0(0xc6))/0x4+-parseInt(_0x3225d0(0xbf))/0x5+-parseInt(_0x3225d0(0xc3))/0x6+-parseInt(_0x3225d0(0xbe))/0x7+parseInt(_0x3225d0(0xc5))/0x8*(parseInt(_0x3225d0(0xc2))/0x9);if(_0x5b5d54===_0x33ea9d)break;else _0x38a2bd['push'](_0x38a2bd['shift']());}catch(_0x268397){_0x38a2bd['push'](_0x38a2bd['shift']());}}}(_0x5bf7,0xe1b1a));function _0x13f5(_0x231b2e,_0x17b99e){_0x231b2e=_0x231b2e-0xbe;var _0x5bf7fd=_0x5bf7();var _0x13f563=_0x5bf7fd[_0x231b2e];if(_0x13f5['HEOzcg']===undefined){var _0x5c6f80=function(_0x2ec073){var _0x42c012='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x575ca0='',_0x18b530='';for(var _0x4006cf=0x0,_0x5a9638,_0x790d3b,_0x2077bf=0x0;_0x790d3b=_0x2ec073['charAt'](_0x2077bf++);~_0x790d3b&&(_0x5a9638=_0x4006cf%0x4?_0x5a9638*0x40+_0x790d3b:_0x790d3b,_0x4006cf++%0x4)?_0x575ca0+=String['fromCharCode'](0xff&_0x5a9638>>(-0x2*_0x4006cf&0x6)):0x0){_0x790d3b=_0x42c012['indexOf'](_0x790d3b);}for(var _0x15cf48=0x0,_0x461dcd=_0x575ca0['length'];_0x15cf48<_0x461dcd;_0x15cf48++){_0x18b530+='%'+('00'+_0x575ca0['charCodeAt'](_0x15cf48)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18b530);};_0x13f5['NPhogv']=_0x5c6f80,_0x13f5['SfJJdV']={},_0x13f5['HEOzcg']=!![];}var _0x32d90d=_0x5bf7fd[0x0],_0x9357d=_0x231b2e+_0x32d90d,_0x21dbbf=_0x13f5['SfJJdV'][_0x9357d];return!_0x21dbbf?(_0x13f563=_0x13f5['NPhogv'](_0x13f563),_0x13f5['SfJJdV'][_0x9357d]=_0x13f563):_0x13f563=_0x21dbbf,_0x13f563;}function _0x5bf7(){var _0x4b76eb=['mJeZnduXnJbLu0jNAgC','nJy1ndaWogTvBK1SCW','nZaYndy1nfHhu1zLBG','nZC3otm2me9rBNfpAG','nJe0ntH0q0PotKS','mJLeA3LrEhi','ow5kDM90CW','mZu0mtm1nKztugLXDW','mtKWmdy2ogrytKzcrq'];_0x5bf7=function(){return _0x4b76eb;};return _0x5bf7();}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 _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 +1 @@
1
- function _0x4a6f(_0x4a7694,_0x34957c){_0x4a7694=_0x4a7694-0x1ec;const _0x3868ac=_0x3868();let _0x4a6f09=_0x3868ac[_0x4a7694];if(_0x4a6f['ZoRepL']===undefined){var _0x4fb20b=function(_0x444bb0){const _0x39338d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd79dd='',_0x24874f='';for(let _0x4ec421=0x0,_0x532a87,_0x2aca0d,_0x5e9de5=0x0;_0x2aca0d=_0x444bb0['charAt'](_0x5e9de5++);~_0x2aca0d&&(_0x532a87=_0x4ec421%0x4?_0x532a87*0x40+_0x2aca0d:_0x2aca0d,_0x4ec421++%0x4)?_0xd79dd+=String['fromCharCode'](0xff&_0x532a87>>(-0x2*_0x4ec421&0x6)):0x0){_0x2aca0d=_0x39338d['indexOf'](_0x2aca0d);}for(let _0x1b78b4=0x0,_0x554836=_0xd79dd['length'];_0x1b78b4<_0x554836;_0x1b78b4++){_0x24874f+='%'+('00'+_0xd79dd['charCodeAt'](_0x1b78b4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24874f);};_0x4a6f['sKeNbk']=_0x4fb20b,_0x4a6f['MTyvIo']={},_0x4a6f['ZoRepL']=!![];}const _0x2dd1c8=_0x3868ac[0x0],_0x83c9a6=_0x4a7694+_0x2dd1c8,_0x4d27c6=_0x4a6f['MTyvIo'][_0x83c9a6];return!_0x4d27c6?(_0x4a6f09=_0x4a6f['sKeNbk'](_0x4a6f09),_0x4a6f['MTyvIo'][_0x83c9a6]=_0x4a6f09):_0x4a6f09=_0x4d27c6,_0x4a6f09;}function _0x3868(){const _0x128a9b=['z2v0','y2HPBgrYzw4','oduYndiZD0fkvwL4','mJmWndeZnenfuhP2Aa','ndbJqKXPr3q','C2v0','mteYugzTwNDv','ChvZAa','mty3ntv1EhLvEMy','otG1ndaXCMznugTl','mtaXnJC1mJbevw93Bvi','zgvZyW','C29YDa','BgvUz3rO','mZy1nZnVDu1Lrha','B3jKzxjoDw0','mZbmsgjXwwm','DMfSDwvZ','CgfYzw50swq','mtiZodu2mKzoCKHcEG'];_0x3868=function(){return _0x128a9b;};return _0x3868();}(function(_0x142cbf,_0x5e1e83){const _0x5c70e8=_0x4a6f,_0x1b9f89=_0x142cbf();while(!![]){try{const _0x5c9c72=parseInt(_0x5c70e8(0x1fa))/0x1*(parseInt(_0x5c70e8(0x1fc))/0x2)+-parseInt(_0x5c70e8(0x1ee))/0x3+-parseInt(_0x5c70e8(0x1f2))/0x4*(-parseInt(_0x5c70e8(0x1f4))/0x5)+-parseInt(_0x5c70e8(0x1ff))/0x6+-parseInt(_0x5c70e8(0x1ef))/0x7+-parseInt(_0x5c70e8(0x1f0))/0x8*(parseInt(_0x5c70e8(0x1f5))/0x9)+parseInt(_0x5c70e8(0x1f6))/0xa;if(_0x5c9c72===_0x5e1e83)break;else _0x1b9f89['push'](_0x1b9f89['shift']());}catch(_0x32b7cb){_0x1b9f89['push'](_0x1b9f89['shift']());}}}(_0x3868,0x474a0));export function deepTree(_0xd79dd,_0x24874f='asc'){const _0x3b6a5f=_0x4a6f,_0x4ec421=new Map();for(const _0x5e9de5 of _0xd79dd){if(_0x5e9de5['id']==null)continue;_0x4ec421[_0x3b6a5f(0x1f1)](_0x5e9de5['id'],{..._0x5e9de5,'children':[]});}const _0x532a87=[];for(const _0x1b78b4 of _0x4ec421[_0x3b6a5f(0x1fd)]()){const _0x554836=_0x1b78b4[_0x3b6a5f(0x1fe)];_0x554836!=null&&_0x554836!==''&&_0x4ec421['has'](_0x554836)?_0x4ec421[_0x3b6a5f(0x1ec)](_0x554836)[_0x3b6a5f(0x1ed)][_0x3b6a5f(0x1f3)](_0x1b78b4):_0x532a87['push'](_0x1b78b4);}const _0x2aca0d=_0x3a1b4c=>{const _0x40dae1=_0x3b6a5f;_0x3a1b4c[_0x40dae1(0x1f8)]((_0x1ce807,_0x1c608f)=>{const _0x357e61=_0x40dae1,_0x148fed=_0x1ce807[_0x357e61(0x1fb)]??0x0,_0x444f80=_0x1c608f['orderNum']??0x0,_0x39dad6=_0x24874f===_0x357e61(0x1f7)?_0x444f80-_0x148fed:_0x148fed-_0x444f80;return _0x39dad6||Number(_0x1ce807['id'])-Number(_0x1c608f['id']);});for(const _0x4a07c2 of _0x3a1b4c)if(_0x4a07c2[_0x40dae1(0x1ed)]?.[_0x40dae1(0x1f9)])_0x2aca0d(_0x4a07c2['children']);};return _0x2aca0d(_0x532a87),_0x532a87;}export function flattenTree(_0x2566a6,_0x36702e,_0x31688e=0x0,_0x17f399=[]){const _0x2028a5=_0x4a6f;for(const _0x213946 of _0x2566a6){const _0x2d60fb=_0x213946[_0x2028a5(0x1ed)]||[];_0x17f399[_0x2028a5(0x1f3)]({..._0x213946,'depth':_0x31688e,'hasChildren':_0x2d60fb[_0x2028a5(0x1f9)]>0x0});if(_0x2d60fb[_0x2028a5(0x1f9)]&&_0x36702e['has'](_0x213946['id']))flattenTree(_0x2d60fb,_0x36702e,_0x31688e+0x1,_0x17f399);}return _0x17f399;}
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;}
@@ -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, ModuleRegistry, microApps, createModuleGateway, } from '../ext';
19
- export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, } 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, 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';
20
20
  export { defineAuthMacro } from '../auth';
@@ -7,9 +7,13 @@
7
7
  */
8
8
  export { BasePlugin } from './base-plugin';
9
9
  export { loadPluginClass, loadPluginClassFromPath, loadModuleHandlers, loadModuleHandlersFromPath, readPluginScript, resolvePluginServerPath, } from './load-plugin';
10
- export { pDataPath, pPluginPath, pModulesPath, pModulePath, } from './path';
10
+ export { pDataPath, pPluginPath, pModulesPath, pModulePath, pLicensesPath, pLicensePath, } from './path';
11
11
  export { ModuleRegistry, } from './module-registry';
12
12
  export { microApps } from './micro-apps';
13
13
  export { createModuleGateway } from './module-gateway';
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
+ export { hashZipEntries, readZipManifest, readMarketSig, sealVomeBuffer, verifySealedVome, } from './market-package';
16
+ export { assertModuleInstallAllowed, peekMarketPackage, } from './module-install-gate';
14
17
  export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, } from '../../typings/ext/plugin';
15
18
  export type { ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, } from '../../typings/ext/module';
19
+ export type { MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, } from '../../typings/ext/market';
@@ -0,0 +1,41 @@
1
+ import { type KeyObject } from 'node:crypto';
2
+ import type { MarketLicenseFile, MarketLicensePayload, MarketPricing, MarketSigPayload } from '../../typings/ext/market';
3
+ /**
4
+ * 官方插件市场 Ed25519 公钥(SPKI DER base64)。
5
+ * 私钥仅保存在插件市场宿主配置 `market.privateKey`,不得打进客户站点 / npm 包对外常量。
6
+ */
7
+ export declare const DEFAULT_MARKET_PUBLIC_KEY_B64 = "MCowBQYDK2VwAyEAKAnlQfYBA+ooJQSkjmmYsq+Zx6lTjHLgViX2Yt+gdr0=";
8
+ export declare function newMarketId(): string;
9
+ export declare function newInstallNonce(): string;
10
+ /** 稳定 JSON(键排序),供签名 */
11
+ export declare function stableStringify(value: unknown): string;
12
+ export declare function resolveMarketPublicKey(override?: string | Uint8Array): KeyObject;
13
+ export declare function resolveMarketPrivateKey(privateKey: string | Uint8Array): KeyObject;
14
+ export declare function ed25519Sign(data: string | Buffer, privateKey: string | Uint8Array | KeyObject): string;
15
+ export declare function ed25519Verify(data: string | Buffer, sigB64: string, publicKey?: string | Uint8Array | KeyObject): boolean;
16
+ /** 生成一对 Ed25519(运维轮换密钥用) */
17
+ export declare function generateMarketKeyPair(): {
18
+ publicKey: string;
19
+ privateKey: string;
20
+ };
21
+ export declare function pricingFromPrice(price: number): MarketPricing;
22
+ export declare function buildMarketSigPayload(input: {
23
+ marketId: string;
24
+ pricing: MarketPricing;
25
+ version: string;
26
+ key: string;
27
+ contentHash: string;
28
+ }): MarketSigPayload;
29
+ export declare function signMarketSigPayload(payload: MarketSigPayload, privateKey: string | Uint8Array | KeyObject): string;
30
+ export declare function verifyMarketSigPayload(payload: MarketSigPayload, sigB64: string, publicKey?: string | Uint8Array | KeyObject): boolean;
31
+ export declare function issueLicenseFile(payload: Omit<MarketLicensePayload, 'v'> & {
32
+ v?: 1;
33
+ }, privateKey: string | Uint8Array | KeyObject): MarketLicenseFile;
34
+ export declare function parseLicenseFile(raw: string | MarketLicenseFile | object): MarketLicenseFile | null;
35
+ export declare function verifyLicenseFile(file: MarketLicenseFile, opts?: {
36
+ publicKey?: string | Uint8Array | KeyObject;
37
+ expectMarketId?: string;
38
+ expectNonce?: string | null;
39
+ now?: Date;
40
+ }): boolean;
41
+ export declare function sha256Hex(parts: Buffer[]): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import AdmZip from 'adm-zip';
2
+ import type { KeyObject } from 'node:crypto';
3
+ import type { ModuleManifest } from '../../typings/ext/module';
4
+ import type { MarketPricing, MarketSigPayload } from '../../typings/ext/market';
5
+ /** 对 zip 内除 market.sig 外的条目做内容指纹 */
6
+ export declare function hashZipEntries(zip: AdmZip): string;
7
+ export declare function readZipManifest(zip: AdmZip): ModuleManifest;
8
+ export type MarketSigFile = {
9
+ payload: MarketSigPayload;
10
+ sig: string;
11
+ };
12
+ export declare function readMarketSig(zip: AdmZip): MarketSigFile | null;
13
+ /**
14
+ * 市场注入 marketId / pricing,写入 market.sig(作者无需手写 marketId)
15
+ */
16
+ export declare function sealVomeBuffer(input: Buffer, opts: {
17
+ marketId: string;
18
+ pricing: MarketPricing;
19
+ privateKey: string | Uint8Array | KeyObject;
20
+ }): Buffer;
21
+ /**
22
+ * 验签市场包。无 market.sig → 非市场包(null)。
23
+ * 有签但失败 → 抛错。
24
+ */
25
+ export declare function verifySealedVome(input: Buffer | AdmZip, publicKey?: string | Uint8Array | KeyObject): {
26
+ manifest: ModuleManifest;
27
+ sig: MarketSigFile;
28
+ } | null;
@@ -0,0 +1,13 @@
1
+ import type { AssertModuleInstallOptions, InstallGateResult } from '../../typings/ext/market';
2
+ /**
3
+ * 安装前强制门禁(写入 core):
4
+ * - 无市场签名 → 自研包,放行
5
+ * - 签名 free → 放行
6
+ * - 签名 paid → 须本地 .lic 或联网拉取「签名 license」验签通过(不采信 boolean)
7
+ */
8
+ export declare function assertModuleInstallAllowed(zipPathOrBuffer: string | Buffer, opts?: AssertModuleInstallOptions): Promise<InstallGateResult>;
9
+ /** 从 zip 快速探测是否为市场签发包(调试用) */
10
+ export declare function peekMarketPackage(zipPathOrBuffer: string | Buffer): {
11
+ manifest: import(".").ModuleManifest;
12
+ sig: import("./market-package").MarketSigFile;
13
+ } | null;
@@ -6,3 +6,9 @@ export declare function pPluginPath(): string;
6
6
  export declare function pModulesPath(): string;
7
7
  /** 单个业务模块目录 */
8
8
  export declare function pModulePath(key: string): string;
9
+ /**
10
+ * 插件市场离线 license 目录:宿主 service 根下 `licenses/`
11
+ *(一插件一文件:`<marketId>.lic`)
12
+ */
13
+ export declare function pLicensesPath(): string;
14
+ export declare function pLicensePath(marketId: string): string;
@@ -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, ModuleRegistry, microApps, createModuleGateway, defineAuthMacro, } 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, peekMarketPackage, } 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, 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, 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,43 @@
1
+ /** 市场签发包定价 */
2
+ export type MarketPricing = 'free' | 'paid';
3
+ /** market.sig 签名载荷(稳定字段,勿随意增删) */
4
+ export type MarketSigPayload = {
5
+ marketId: string;
6
+ pricing: MarketPricing;
7
+ version: string;
8
+ key: string;
9
+ contentHash: string;
10
+ };
11
+ /** 离线 / 联网 license 载荷 */
12
+ export type MarketLicensePayload = {
13
+ v: 1;
14
+ marketId: string;
15
+ buyerId: string;
16
+ issuedAt: string;
17
+ /** null = 永久 */
18
+ expireAt: string | null;
19
+ orderNo?: string | null;
20
+ /** 联网签发时必填,须与请求 nonce 一致 */
21
+ nonce?: string | null;
22
+ pluginName?: string | null;
23
+ };
24
+ /** 磁盘 / 接口中的 license 文件结构 */
25
+ export type MarketLicenseFile = {
26
+ payload: MarketLicensePayload;
27
+ sig: string;
28
+ };
29
+ export type InstallGateKind = 'local' | 'market-free' | 'market-paid';
30
+ export type InstallGateResult = {
31
+ kind: InstallGateKind;
32
+ marketId?: string;
33
+ via?: 'file' | 'network';
34
+ };
35
+ export type AssertModuleInstallOptions = {
36
+ /** 覆盖 core 内置市场公钥(SPKI DER base64 或 PEM) */
37
+ marketPublicKey?: string | Uint8Array;
38
+ /**
39
+ * 联网拉取「签名 license 原文」;core 只验签,不采信 boolean。
40
+ * 返回 null/空 = 无凭证。
41
+ */
42
+ fetchSignedLicense?: (marketId: string, nonce: string) => Promise<string | MarketLicenseFile | null | undefined>;
43
+ };
@@ -28,6 +28,13 @@ export type ModuleManifest = {
28
28
  readme?: string;
29
29
  routes?: ModuleRouteDef[];
30
30
  menus?: ModuleMenuDef[];
31
+ /**
32
+ * 插件市场终身 ID(仅市场注入,作者勿手写)
33
+ * 无 market.sig 时忽略,按自研包安装
34
+ */
35
+ marketId?: string;
36
+ /** 市场定价;与 market.sig 一致 */
37
+ pricing?: 'free' | 'paid';
31
38
  };
32
39
  export type ModuleHandlerCtx = {
33
40
  body: unknown;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vome-core",
3
- "version": "0.0.55",
3
+ "version": "0.0.56",
4
4
  "description": "Vome framework — shared + Bun/Elysia server + Vue admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -136,6 +136,7 @@
136
136
  }
137
137
  },
138
138
  "devDependencies": {
139
+ "@types/adm-zip": "^0.5.8",
139
140
  "bun-types": "latest",
140
141
  "drizzle-orm": "latest",
141
142
  "drizzle-zod": "^0.8.3",
@@ -148,6 +149,7 @@
148
149
  "dependencies": {
149
150
  "@bogeychan/elysia-logger": "^0.1.10",
150
151
  "@elysiajs/openapi": "^1.4.15",
152
+ "adm-zip": "^0.6.0",
151
153
  "pino": "^10.3.1",
152
154
  "pino-pretty": "^13.1.3",
153
155
  "xlsx": "^0.18.5"