vome-core 0.0.57 → 0.0.59
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/config/plugin-dev.js +1 -1
- package/dist/admin/crud/config.js +1 -1
- package/dist/admin/crud/confirm.js +1 -1
- package/dist/admin/crud/dict.js +1 -1
- package/dist/admin/crud/index.js +1 -1
- package/dist/admin/crud/key.js +1 -1
- package/dist/admin/crud/mitt.js +1 -1
- package/dist/admin/crud/plugins.js +1 -1
- package/dist/admin/crud/span.js +1 -1
- package/dist/admin/crud/style.js +1 -1
- package/dist/admin/crud/validate.js +1 -1
- package/dist/admin/directives/perm.js +1 -1
- package/dist/admin/hooks/useUpload.js +1 -1
- package/dist/admin/lib/browser.js +1 -1
- package/dist/admin/lib/cn.js +1 -1
- package/dist/admin/lib/dialog-float.js +1 -1
- package/dist/admin/lib/export-excel.js +1 -1
- package/dist/admin/lib/file-preview.js +1 -1
- package/dist/admin/lib/import-excel.js +1 -1
- package/dist/admin/lib/json.js +1 -1
- package/dist/admin/lib/menu.js +1 -1
- package/dist/admin/lib/tree.js +1 -1
- package/dist/admin/lib/upload.js +1 -1
- package/dist/admin/lib/video-frame.js +1 -1
- package/dist/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/shared/excel.js +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/tree.js +1 -1
- package/dist/src/core/index.d.ts +2 -2
- package/dist/src/ext/index.d.ts +3 -1
- package/dist/src/ext/market-seat.d.ts +33 -0
- package/dist/src/ext/module-install-gate.d.ts +2 -0
- package/dist/src/server/index.d.ts +2 -2
- package/dist/typings/ext/market-seat.d.ts +39 -0
- package/dist/typings/ext/module.d.ts +7 -0
- package/package.json +1 -1
package/dist/shared/excel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x52c18c=_0x2db5;function _0x2db5(_0x3680cc,_0x40bf61){_0x3680cc=_0x3680cc-0x17b;const _0x500b7d=_0x500b();let _0x2db528=_0x500b7d[_0x3680cc];if(_0x2db5['zdVaIG']===undefined){var _0x2b5a77=function(_0x53b6bf){const _0x575b49='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x191d44='',_0x35a344='';for(let _0x183d70=0x0,_0x16b0e1,_0x4566fc,_0x3bf0f3=0x0;_0x4566fc=_0x53b6bf['charAt'](_0x3bf0f3++);~_0x4566fc&&(_0x16b0e1=_0x183d70%0x4?_0x16b0e1*0x40+_0x4566fc:_0x4566fc,_0x183d70++%0x4)?_0x191d44+=String['fromCharCode'](0xff&_0x16b0e1>>(-0x2*_0x183d70&0x6)):0x0){_0x4566fc=_0x575b49['indexOf'](_0x4566fc);}for(let _0x46e916=0x0,_0x2d683a=_0x191d44['length'];_0x46e916<_0x2d683a;_0x46e916++){_0x35a344+='%'+('00'+_0x191d44['charCodeAt'](_0x46e916)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35a344);};_0x2db5['NGsJfm']=_0x2b5a77,_0x2db5['PZkjgp']={},_0x2db5['zdVaIG']=!![];}const _0x117ef9=_0x500b7d[0x0],_0x414449=_0x3680cc+_0x117ef9,_0x3db81d=_0x2db5['PZkjgp'][_0x414449];return!_0x3db81d?(_0x2db528=_0x2db5['NGsJfm'](_0x2db528),_0x2db5['PZkjgp'][_0x414449]=_0x2db528):_0x2db528=_0x3db81d,_0x2db528;}(function(_0x25aa6b,_0x38639b){const _0x241c9e=_0x2db5,_0x3a0d21=_0x25aa6b();while(!![]){try{const _0x2aa6dc=parseInt(_0x241c9e(0x198))/0x1+-parseInt(_0x241c9e(0x18e))/0x2*(parseInt(_0x241c9e(0x189))/0x3)+parseInt(_0x241c9e(0x191))/0x4*(parseInt(_0x241c9e(0x184))/0x5)+-parseInt(_0x241c9e(0x193))/0x6*(parseInt(_0x241c9e(0x18b))/0x7)+parseInt(_0x241c9e(0x194))/0x8*(parseInt(_0x241c9e(0x17c))/0x9)+-parseInt(_0x241c9e(0x195))/0xa+-parseInt(_0x241c9e(0x190))/0xb*(-parseInt(_0x241c9e(0x19b))/0xc);if(_0x2aa6dc===_0x38639b)break;else _0x3a0d21['push'](_0x3a0d21['shift']());}catch(_0x12d32b){_0x3a0d21['push'](_0x3a0d21['shift']());}}}(_0x500b,0xa7397));import*as _0x191d44 from'xlsx';export const IMPORT_SKIP_FIELDS=['id','createTime',_0x52c18c(0x181),_0x52c18c(0x19c),'tenantId'];export function isImportSkipField(_0x35a344){return IMPORT_SKIP_FIELDS['includes'](_0x35a344);}export function buildExcelBuffer(_0x183d70,_0x16b0e1,_0x4566fc){const _0x2b3c14=_0x52c18c,_0x3bf0f3=_0x183d70[_0x2b3c14(0x17b)](_0x25f548=>_0x25f548[_0x2b3c14(0x17d)]||_0x25f548[_0x2b3c14(0x188)]),_0x46e916=_0x16b0e1[_0x2b3c14(0x17b)](_0x4c58ab=>_0x183d70[_0x2b3c14(0x17b)](_0x233854=>{const _0x51fdf8=_0x2b3c14;if(_0x4566fc)return _0x4566fc(_0x233854[_0x51fdf8(0x188)],_0x4c58ab);const _0xdd0c37=_0x4c58ab[_0x233854[_0x51fdf8(0x188)]];if(_0xdd0c37==null)return'';return String(_0xdd0c37);})),_0x2d683a=_0x191d44['utils'][_0x2b3c14(0x199)]([_0x3bf0f3,..._0x46e916]),_0x3f7e7c=_0x191d44[_0x2b3c14(0x186)][_0x2b3c14(0x192)]();return _0x191d44['utils'][_0x2b3c14(0x19a)](_0x3f7e7c,_0x2d683a,'Sheet1'),_0x191d44[_0x2b3c14(0x187)](_0x3f7e7c,{'bookType':'xlsx','type':'array'});}function _0x500b(){const _0x51825a=['yw9Hx3rVx3nOzwv0','yM9VA19HChbLBMrFC2HLzxq','mJG4nJq4vuXxyLvc','zgvSzxrLzef0','z2v0','BwfW','owHMuwzvDW','BgfIzwW','yxjYyxK','C2HLzxrFDg9FANnVBG','ChvZAa','DxbKyxrLvgLTzq','C2v0','u2HLzxroyw1LCW','ntq3nZaWnu95DfDMsa','C3rYAw5N','DxrPBhm','D3jPDgu','ChjVCa','mtjUwKHeug4','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','mtrPuKLRv3y','u2HLzxrZ','lNHSC3G','nJi1mtyYu2TYEhPo','BgvUz3rO','mtaXmKn5BuroDW','nhjHq3fSEG','yM9VA19UzxC','mJaXnZu0ogTqz3Hiuq','nZu1mZG0zunSy1n5','otCZotG0mg9tvhvuuW','CMvHza','zw5KC1DPDgG','mtC4otGZDhHjDLDs'];_0x500b=function(){return _0x51825a;};return _0x500b();}export function buildImportTemplateBuffer(_0x34e632){return buildExcelBuffer(_0x34e632,[]);}export function parseExcelBuffer(_0x361134,_0x46d89a){const _0x162df1=_0x52c18c,_0x1dc57f=_0x191d44[_0x162df1(0x196)](_0x361134,{'type':_0x162df1(0x17e),'cellDates':!![]}),_0x59181f=_0x1dc57f[_0x162df1(0x183)][0x0];if(!_0x59181f)return[];const _0xf3f915=_0x1dc57f[_0x162df1(0x18c)][_0x59181f];if(!_0xf3f915)return[];const _0x30bcf9=_0x191d44['utils'][_0x162df1(0x17f)](_0xf3f915,{'header':0x1,'defval':'','raw':![]});if(!_0x30bcf9['length'])return[];const _0x40be46=(_0x30bcf9[0x0]||[])[_0x162df1(0x17b)](_0xac5fd7=>String(_0xac5fd7??'')['trim']()),_0x2018dd=new Map();if(_0x46d89a?.[_0x162df1(0x18f)])for(const _0x2a455b of _0x46d89a){_0x2018dd[_0x162df1(0x182)](_0x2a455b[_0x162df1(0x17d)]['trim'](),_0x2a455b[_0x162df1(0x188)]),_0x2018dd[_0x162df1(0x182)](_0x2a455b[_0x162df1(0x188)],_0x2a455b[_0x162df1(0x188)]);}const _0x40a3f1=_0x40be46[_0x162df1(0x17b)](_0x29f1be=>{const _0x55ffa2=_0x162df1;if(!_0x29f1be)return'';return _0x2018dd[_0x55ffa2(0x19d)](_0x29f1be)||_0x29f1be;}),_0x40f9b1=[];for(let _0x3bbb37=0x1;_0x3bbb37<_0x30bcf9[_0x162df1(0x18f)];_0x3bbb37++){const _0x3c29e2=_0x30bcf9[_0x3bbb37]||[],_0x87dc40={};let _0x1cf14b=!![];for(let _0x52994e=0x0;_0x52994e<_0x40a3f1['length'];_0x52994e++){const _0x26a511=_0x40a3f1[_0x52994e];if(!_0x26a511)continue;let _0x365821=_0x3c29e2[_0x52994e];if(_0x365821==null||_0x365821===''){_0x87dc40[_0x26a511]=_0x365821==null?null:'';continue;}_0x1cf14b=![],typeof _0x365821===_0x162df1(0x185)?_0x87dc40[_0x26a511]=_0x365821['trim']():_0x87dc40[_0x26a511]=_0x365821;}if(!_0x1cf14b)_0x40f9b1[_0x162df1(0x180)](_0x87dc40);}return _0x40f9b1;}export function excelFilename(_0x16dd41){const _0x3bbf73=_0x52c18c;return _0x16dd41[_0x3bbf73(0x197)](_0x3bbf73(0x18d))?_0x16dd41:_0x16dd41+_0x3bbf73(0x18d);}export function excelResponseHeaders(_0x310f3b){const _0x1e7cf5=_0x52c18c,_0x4ad1b8=excelFilename(_0x310f3b);return{'Content-Type':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','Content-Disposition':_0x1e7cf5(0x18a)+encodeURIComponent(_0x4ad1b8)};}
|
package/dist/shared/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
(function(_0x326173,_0x7e8f67){var _0x524a61=_0x5e24,_0x3af4ca=_0x326173();while(!![]){try{var _0x435d5d=parseInt(_0x524a61(0x1d4))/0x1+-parseInt(_0x524a61(0x1db))/0x2*(parseInt(_0x524a61(0x1da))/0x3)+parseInt(_0x524a61(0x1d9))/0x4*(parseInt(_0x524a61(0x1d2))/0x5)+parseInt(_0x524a61(0x1dc))/0x6*(-parseInt(_0x524a61(0x1d6))/0x7)+parseInt(_0x524a61(0x1d3))/0x8*(-parseInt(_0x524a61(0x1d8))/0x9)+parseInt(_0x524a61(0x1d7))/0xa+parseInt(_0x524a61(0x1d5))/0xb;if(_0x435d5d===_0x7e8f67)break;else _0x3af4ca['push'](_0x3af4ca['shift']());}catch(_0x325806){_0x3af4ca['push'](_0x3af4ca['shift']());}}}(_0x13e4,0x25c5a));function _0x5e24(_0x200aa2,_0x2176c7){_0x200aa2=_0x200aa2-0x1d2;var _0x13e4e1=_0x13e4();var _0x5e24bd=_0x13e4e1[_0x200aa2];if(_0x5e24['wQBvQA']===undefined){var _0x5cc1db=function(_0x5ae3f7){var _0x259498='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5ce86c='',_0x4c810d='';for(var _0x23284c=0x0,_0x511ca1,_0x11899d,_0x24a4c9=0x0;_0x11899d=_0x5ae3f7['charAt'](_0x24a4c9++);~_0x11899d&&(_0x511ca1=_0x23284c%0x4?_0x511ca1*0x40+_0x11899d:_0x11899d,_0x23284c++%0x4)?_0x5ce86c+=String['fromCharCode'](0xff&_0x511ca1>>(-0x2*_0x23284c&0x6)):0x0){_0x11899d=_0x259498['indexOf'](_0x11899d);}for(var _0x33c231=0x0,_0x19751e=_0x5ce86c['length'];_0x33c231<_0x19751e;_0x33c231++){_0x4c810d+='%'+('00'+_0x5ce86c['charCodeAt'](_0x33c231)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c810d);};_0x5e24['CCRKJA']=_0x5cc1db,_0x5e24['uUcFPt']={},_0x5e24['wQBvQA']=!![];}var _0x3820f7=_0x13e4e1[0x0],_0x290441=_0x200aa2+_0x3820f7,_0xc63118=_0x5e24['uUcFPt'][_0x290441];return!_0xc63118?(_0x5e24bd=_0x5e24['CCRKJA'](_0x5e24bd),_0x5e24['uUcFPt'][_0x290441]=_0x5e24bd):_0x5e24bd=_0xc63118,_0x5e24bd;}function _0x13e4(){var _0x343a5b=['nJbYvM5rEK4','ntCZndmYq2jlB1D1','mtG3mda5BxDmsfPL','mtK3nZm2mgrrBKn6zG','mZq2otLfy3b6Bvu','mJy0mtqWDejnEMvj','ouHmCujwuG','nZiZmdrssvDfz3q','m0fLrvfWBa','mtyYnJuWwhDcBfzN','mZy2surktfLP'];_0x13e4=function(){return _0x343a5b;};return _0x13e4();}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';
|
package/dist/shared/tree.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x384b(_0x3f497a,_0x3be157){_0x3f497a=_0x3f497a-0x1e6;const _0x5652af=_0x5652();let _0x384b1e=_0x5652af[_0x3f497a];if(_0x384b['rsOEvs']===undefined){var _0x99daaa=function(_0xbc5eba){const _0x53c9e2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5146f0='',_0x36ea38='';for(let _0x56a3b8=0x0,_0x3c39f6,_0x4ceba3,_0x778937=0x0;_0x4ceba3=_0xbc5eba['charAt'](_0x778937++);~_0x4ceba3&&(_0x3c39f6=_0x56a3b8%0x4?_0x3c39f6*0x40+_0x4ceba3:_0x4ceba3,_0x56a3b8++%0x4)?_0x5146f0+=String['fromCharCode'](0xff&_0x3c39f6>>(-0x2*_0x56a3b8&0x6)):0x0){_0x4ceba3=_0x53c9e2['indexOf'](_0x4ceba3);}for(let _0x37010b=0x0,_0x5a8660=_0x5146f0['length'];_0x37010b<_0x5a8660;_0x37010b++){_0x36ea38+='%'+('00'+_0x5146f0['charCodeAt'](_0x37010b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x36ea38);};_0x384b['QtDFUb']=_0x99daaa,_0x384b['ynQAMA']={},_0x384b['rsOEvs']=!![];}const _0xb4c99d=_0x5652af[0x0],_0x9d2238=_0x3f497a+_0xb4c99d,_0x40469f=_0x384b['ynQAMA'][_0x9d2238];return!_0x40469f?(_0x384b1e=_0x384b['QtDFUb'](_0x384b1e),_0x384b['ynQAMA'][_0x9d2238]=_0x384b1e):_0x384b1e=_0x40469f,_0x384b1e;}const _0xfdff9e=_0x384b;(function(_0x50090e,_0x2b264f){const _0x3d7f91=_0x384b,_0x21c2aa=_0x50090e();while(!![]){try{const _0x3986d7=parseInt(_0x3d7f91(0x1f5))/0x1+parseInt(_0x3d7f91(0x1f7))/0x2*(parseInt(_0x3d7f91(0x1f1))/0x3)+-parseInt(_0x3d7f91(0x1f3))/0x4+parseInt(_0x3d7f91(0x1e8))/0x5+-parseInt(_0x3d7f91(0x1eb))/0x6+-parseInt(_0x3d7f91(0x1ea))/0x7*(parseInt(_0x3d7f91(0x1e9))/0x8)+-parseInt(_0x3d7f91(0x1e7))/0x9;if(_0x3986d7===_0x2b264f)break;else _0x21c2aa['push'](_0x21c2aa['shift']());}catch(_0x1eccd6){_0x21c2aa['push'](_0x21c2aa['shift']());}}}(_0x5652,0x45ba9));function _0x5652(){const _0x18b002=['B3jKzxjoDw0','mZmWotu2zMDAqxjV','C2v0','mtjuA2fluw8','yxnJ','mta3ote4mwXZufrWEa','mJm1mZKXmhnTqwLYrW','mZuXnJy0DunWyu5W','ndLSAMfHt3G','mtqYntyWs2j2rvbl','CgfYzw50swq','y2HPBgrYzw4','ChvZAa','AgfZ','BgvUz3rO','mta3mdm0t1rutLzp','C29YDa','mteXnti4ogfeAMP2tq'];_0x5652=function(){return _0x18b002;};return _0x5652();}export function deepTree(_0x5146f0,_0x36ea38=_0xfdff9e(0x1e6)){const _0x40e442=_0xfdff9e,_0x56a3b8=new Map();for(const _0x778937 of _0x5146f0){if(_0x778937['id']==null)continue;_0x56a3b8[_0x40e442(0x1f6)](_0x778937['id'],{..._0x778937,'children':[]});}const _0x3c39f6=[];for(const _0x37010b of _0x56a3b8['values']()){const _0x5a8660=_0x37010b[_0x40e442(0x1ec)];_0x5a8660!=null&&_0x5a8660!==''&&_0x56a3b8[_0x40e442(0x1ef)](_0x5a8660)?_0x56a3b8['get'](_0x5a8660)[_0x40e442(0x1ed)][_0x40e442(0x1ee)](_0x37010b):_0x3c39f6['push'](_0x37010b);}const _0x4ceba3=_0xd059f0=>{const _0x58dcbd=_0x40e442;_0xd059f0[_0x58dcbd(0x1f2)]((_0x1fe3cd,_0x161707)=>{const _0xd34532=_0x58dcbd,_0x50227f=_0x1fe3cd[_0xd34532(0x1f4)]??0x0,_0x2d8e42=_0x161707[_0xd34532(0x1f4)]??0x0,_0x3196a6=_0x36ea38==='desc'?_0x2d8e42-_0x50227f:_0x50227f-_0x2d8e42;return _0x3196a6||Number(_0x1fe3cd['id'])-Number(_0x161707['id']);});for(const _0x5326d3 of _0xd059f0)if(_0x5326d3[_0x58dcbd(0x1ed)]?.[_0x58dcbd(0x1f0)])_0x4ceba3(_0x5326d3[_0x58dcbd(0x1ed)]);};return _0x4ceba3(_0x3c39f6),_0x3c39f6;}export function flattenTree(_0x5021e7,_0x323736,_0x58dfa0=0x0,_0x47eef1=[]){const _0x1f78ec=_0xfdff9e;for(const _0x497eae of _0x5021e7){const _0x34111d=_0x497eae['children']||[];_0x47eef1[_0x1f78ec(0x1ee)]({..._0x497eae,'depth':_0x58dfa0,'hasChildren':_0x34111d[_0x1f78ec(0x1f0)]>0x0});if(_0x34111d['length']&&_0x323736['has'](_0x497eae['id']))flattenTree(_0x34111d,_0x323736,_0x58dfa0+0x1,_0x47eef1);}return _0x47eef1;}
|
package/dist/src/core/index.d.ts
CHANGED
|
@@ -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, assertModuleDirAllowed, peekMarketPackage, installModuleFromZip, uninstallModuleFiles, } from '../ext';
|
|
19
|
-
export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, InstallModuleOptions, InstallModuleResult, } 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';
|
package/dist/src/ext/index.d.ts
CHANGED
|
@@ -13,9 +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, assertModuleDirAllowed, peekMarketPackage, } from './module-install-gate';
|
|
16
|
+
export { assertModuleInstallAllowed, assertModuleDirAllowed, peekMarketPackage, readDirMarketSig, } from './module-install-gate';
|
|
17
17
|
export { installModuleFromZip, uninstallModuleFiles, } from './module-install';
|
|
18
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';
|
|
19
21
|
export type { PluginManifest, PluginInfo, PluginPayload, PluginCheckResult, } from '../../typings/ext/plugin';
|
|
20
22
|
export type { ModuleRouteDef, ModuleMenuDef, ModuleManifest, ModuleHandlerCtx, ModuleHandler, ModuleInstalled, } from '../../typings/ext/module';
|
|
21
23
|
export type { MarketPricing, MarketSigPayload, MarketLicensePayload, MarketLicenseFile, InstallGateKind, InstallGateResult, AssertModuleInstallOptions, } from '../../typings/ext/market';
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* 插件调用前校验席位;距上次同步超过约 5 分钟则先联网刷新,
|
|
19
|
+
* 以便市场端「卸载席位」能尽快生效。
|
|
20
|
+
*/
|
|
21
|
+
export declare function assertModuleSeatActive(moduleKey: string): Promise<void>;
|
|
22
|
+
/** UI:席位展示,unlimited → seats/used 为 null(前端显示 /) */
|
|
23
|
+
export declare function formatSeatDisplay(st: MarketSeatStatus | null | undefined): {
|
|
24
|
+
seatsLabel: string;
|
|
25
|
+
usedLabel: string;
|
|
26
|
+
blocked: boolean;
|
|
27
|
+
tip?: string;
|
|
28
|
+
};
|
|
29
|
+
export declare function startMarketSeatHeartbeat(): void;
|
|
30
|
+
export declare function stopMarketSeatHeartbeat(): void;
|
|
31
|
+
/** 启动:加载模块 + 席位同步 + 12h 心跳(逻辑在 core) */
|
|
32
|
+
export declare function bootstrapInstalledModules(): Promise<void>;
|
|
33
|
+
export { MARKET_SEAT_DEFAULTS };
|
|
@@ -7,6 +7,8 @@ import type { MarketSigFile } from './market-package';
|
|
|
7
7
|
* - 签名 paid → 须本地 .lic 或联网拉取「签名 license」验签通过(不采信 boolean)
|
|
8
8
|
*/
|
|
9
9
|
export declare function assertModuleInstallAllowed(zipPathOrBuffer: string | Buffer, opts?: AssertModuleInstallOptions): Promise<InstallGateResult>;
|
|
10
|
+
declare function readDirMarketSig(dir: string): MarketSigFile | null;
|
|
11
|
+
export { readDirMarketSig };
|
|
10
12
|
/**
|
|
11
13
|
* 启动/热加载时校验已落盘模块(防直接拷贝 modules/ 绕过 install)
|
|
12
14
|
*/
|
|
@@ -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, assertModuleDirAllowed, peekMarketPackage, installModuleFromZip, uninstallModuleFiles, } 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, InstallModuleOptions, InstallModuleResult, 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
|
};
|