vome-core 0.1.14 → 0.1.16

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 (153) 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/import-excel.js +1 -1
  19. package/dist/admin/lib/json.js +1 -1
  20. package/dist/admin/lib/menu.js +1 -1
  21. package/dist/admin/lib/tree.js +1 -1
  22. package/dist/admin/lib/upload.js +1 -1
  23. package/dist/admin/lib/video-frame.js +1 -1
  24. package/dist/agent/index.d.ts +3 -1
  25. package/dist/client/vite-resolve.d.ts +1 -1
  26. package/dist/client/vite-resolve.js +1 -1
  27. package/dist/config/index.d.ts +10 -1
  28. package/dist/index.d.ts +13 -1
  29. package/dist/index.js +1 -1
  30. package/dist/server/index.d.ts +17 -1
  31. package/dist/server/index.js +1 -1
  32. package/dist/shared/excel.js +1 -1
  33. package/dist/shared/index.js +1 -1
  34. package/dist/shared/locale-json.js +1 -1
  35. package/dist/shared/tree.js +1 -1
  36. package/package.json +7 -5
  37. package/typings/comm/crud.ts +29 -0
  38. package/typings/comm/page.ts +18 -0
  39. package/typings/comm/scan.ts +6 -0
  40. package/typings/common.ts +4 -0
  41. package/typings/context/data.ts +10 -0
  42. package/typings/ext/market-seat.ts +42 -0
  43. package/typings/ext/market.ts +55 -0
  44. package/typings/ext/module.ts +64 -0
  45. package/typings/ext/plugin.ts +38 -0
  46. package/typings/ioc/metadata.ts +34 -0
  47. package/typings/logger/config.ts +6 -0
  48. package/typings/routing/crud.ts +162 -0
  49. package/typings/routing/eps.ts +72 -0
  50. package/typings/routing/meta.ts +63 -0
  51. package/typings/routing/register.ts +21 -0
  52. package/typings/routing/scan-context.ts +7 -0
  53. package/dist/ai.d.ts +0 -1
  54. package/dist/src/admin/config/plugin-dev.d.ts +0 -52
  55. package/dist/src/agent/index.d.ts +0 -3
  56. package/dist/src/config/index.d.ts +0 -10
  57. package/dist/src/index.d.ts +0 -12
  58. package/dist/src/server/index.d.ts +0 -17
  59. package/dist/src/shared/excel.d.ts +0 -23
  60. package/dist/src/shared/tree.d.ts +0 -18
  61. package/src/shared/excel.d.ts +0 -23
  62. package/src/shared/excel.ts +0 -123
  63. package/src/shared/index.ts +0 -30
  64. package/src/shared/locale-json.ts +0 -79
  65. package/src/shared/tree.d.ts +0 -18
  66. package/src/shared/tree.ts +0 -50
  67. /package/dist/{src/agent → agent}/constants.d.ts +0 -0
  68. /package/dist/{src/agent → agent}/protocol.d.ts +0 -0
  69. /package/dist/{src/agent → agent}/types.d.ts +0 -0
  70. /package/dist/{src/ai → ai}/adapters/anthropic-gemini.d.ts +0 -0
  71. /package/dist/{src/ai → ai}/adapters/auth-headers.d.ts +0 -0
  72. /package/dist/{src/ai → ai}/adapters/index.d.ts +0 -0
  73. /package/dist/{src/ai → ai}/adapters/openai-compatible.d.ts +0 -0
  74. /package/dist/{src/ai → ai}/call-log-helpers.d.ts +0 -0
  75. /package/dist/{src/ai → ai}/index.d.ts +0 -0
  76. /package/dist/{src/ai → ai}/normalize.d.ts +0 -0
  77. /package/dist/{src/ai → ai}/sse.d.ts +0 -0
  78. /package/dist/{src/ai → ai}/transport.d.ts +0 -0
  79. /package/dist/{src/ai → ai}/types.d.ts +0 -0
  80. /package/dist/{src/auth → auth}/define-macro.d.ts +0 -0
  81. /package/dist/{src/auth → auth}/index.d.ts +0 -0
  82. /package/dist/{src/comm → comm}/daily-log.d.ts +0 -0
  83. /package/dist/{src/comm → comm}/env.d.ts +0 -0
  84. /package/dist/{src/comm → comm}/format-time.d.ts +0 -0
  85. /package/dist/{src/comm → comm}/merge.d.ts +0 -0
  86. /package/dist/{src/comm → comm}/scan.d.ts +0 -0
  87. /package/dist/{src/comm → comm}/startBanner.d.ts +0 -0
  88. /package/dist/{src/core → core}/app.d.ts +0 -0
  89. /package/dist/{src/core → core}/config.d.ts +0 -0
  90. /package/dist/{src/core → core}/context/index.d.ts +0 -0
  91. /package/dist/{src/core → core}/host-infra.d.ts +0 -0
  92. /package/dist/{src/core → core}/index.d.ts +0 -0
  93. /package/dist/{src/core → core}/plugins/async-context.d.ts +0 -0
  94. /package/dist/{src/core → core}/plugins/error.d.ts +0 -0
  95. /package/dist/{src/core → core}/plugins/logging.d.ts +0 -0
  96. /package/dist/{src/core → core}/plugins/openapi.d.ts +0 -0
  97. /package/dist/{src/core → core}/vome-config.d.ts +0 -0
  98. /package/dist/{src/ext → ext}/base-plugin.d.ts +0 -0
  99. /package/dist/{src/ext → ext}/host-identity.d.ts +0 -0
  100. /package/dist/{src/ext → ext}/index.d.ts +0 -0
  101. /package/dist/{src/ext → ext}/load-plugin.d.ts +0 -0
  102. /package/dist/{src/ext → ext}/market-crypto.d.ts +0 -0
  103. /package/dist/{src/ext → ext}/market-package.d.ts +0 -0
  104. /package/dist/{src/ext → ext}/market-runtime.d.ts +0 -0
  105. /package/dist/{src/ext → ext}/market-seat.d.ts +0 -0
  106. /package/dist/{src/ext → ext}/micro-apps.d.ts +0 -0
  107. /package/dist/{src/ext → ext}/module-gateway.d.ts +0 -0
  108. /package/dist/{src/ext → ext}/module-install-gate.d.ts +0 -0
  109. /package/dist/{src/ext → ext}/module-install.d.ts +0 -0
  110. /package/dist/{src/ext → ext}/module-registry.d.ts +0 -0
  111. /package/dist/{src/ext → ext}/path.d.ts +0 -0
  112. /package/dist/{src/ioc → ioc}/container.d.ts +0 -0
  113. /package/dist/{src/ioc → ioc}/decorators.d.ts +0 -0
  114. /package/dist/{src/ioc → ioc}/host.d.ts +0 -0
  115. /package/dist/{src/ioc → ioc}/index.d.ts +0 -0
  116. /package/dist/{src/ioc → ioc}/metadata.d.ts +0 -0
  117. /package/dist/{src/ioc → ioc}/scope.d.ts +0 -0
  118. /package/dist/{src/logger → logger}/bootstrap.d.ts +0 -0
  119. /package/dist/{src/logger → logger}/exception.d.ts +0 -0
  120. /package/dist/{src/logger → logger}/index.d.ts +0 -0
  121. /package/dist/{src/logger → logger}/logger.d.ts +0 -0
  122. /package/dist/{src/logger → logger}/pino.d.ts +0 -0
  123. /package/dist/{src/orm → orm}/base-columns.d.ts +0 -0
  124. /package/dist/{src/orm → orm}/column-comments.d.ts +0 -0
  125. /package/dist/{src/orm → orm}/crud-config.d.ts +0 -0
  126. /package/dist/{src/orm → orm}/crud-register.d.ts +0 -0
  127. /package/dist/{src/orm → orm}/data-scope.d.ts +0 -0
  128. /package/dist/{src/orm → orm}/db-store.d.ts +0 -0
  129. /package/dist/{src/orm → orm}/declarative-select.d.ts +0 -0
  130. /package/dist/{src/orm → orm}/entity-schema.d.ts +0 -0
  131. /package/dist/{src/orm → orm}/field-ref.d.ts +0 -0
  132. /package/dist/{src/orm → orm}/import-excel.d.ts +0 -0
  133. /package/dist/{src/orm → orm}/index.d.ts +0 -0
  134. /package/dist/{src/orm → orm}/join-tables.d.ts +0 -0
  135. /package/dist/{src/orm → orm}/query-builder.d.ts +0 -0
  136. /package/dist/{src/orm → orm}/query-op.d.ts +0 -0
  137. /package/dist/{src/orm → orm}/repository.d.ts +0 -0
  138. /package/dist/{src/orm → orm}/service.d.ts +0 -0
  139. /package/dist/{src/orm → orm}/tenant.d.ts +0 -0
  140. /package/dist/{src/routing → routing}/base.d.ts +0 -0
  141. /package/dist/{src/routing → routing}/context.d.ts +0 -0
  142. /package/dist/{src/routing → routing}/crud-summary.d.ts +0 -0
  143. /package/dist/{src/routing → routing}/decorators.d.ts +0 -0
  144. /package/dist/{src/routing → routing}/eps.d.ts +0 -0
  145. /package/dist/{src/routing → routing}/index.d.ts +0 -0
  146. /package/dist/{src/routing → routing}/metadata.d.ts +0 -0
  147. /package/dist/{src/routing → routing}/openapi-tags.d.ts +0 -0
  148. /package/dist/{src/routing → routing}/path-utils.d.ts +0 -0
  149. /package/dist/{src/routing → routing}/perm.d.ts +0 -0
  150. /package/dist/{src/routing → routing}/public-routes.d.ts +0 -0
  151. /package/dist/{src/routing → routing}/register.d.ts +0 -0
  152. /package/dist/{src/shared → shared}/index.d.ts +0 -0
  153. /package/dist/{src/shared → shared}/locale-json.d.ts +0 -0
@@ -1 +1 @@
1
- const _0x4f665d=_0x538d;function _0x538d(_0x2d6acd,_0x453a5e){_0x2d6acd=_0x2d6acd-0x145;const _0x5b6b9e=_0x5b6b();let _0x538d84=_0x5b6b9e[_0x2d6acd];if(_0x538d['FHTvlU']===undefined){var _0x6aedf7=function(_0x47d690){const _0x5a392e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39dab5='',_0x294332='';for(let _0x58d7a6=0x0,_0x1b5011,_0x34494f,_0x174fc7=0x0;_0x34494f=_0x47d690['charAt'](_0x174fc7++);~_0x34494f&&(_0x1b5011=_0x58d7a6%0x4?_0x1b5011*0x40+_0x34494f:_0x34494f,_0x58d7a6++%0x4)?_0x39dab5+=String['fromCharCode'](0xff&_0x1b5011>>(-0x2*_0x58d7a6&0x6)):0x0){_0x34494f=_0x5a392e['indexOf'](_0x34494f);}for(let _0x25b621=0x0,_0x1a7d5a=_0x39dab5['length'];_0x25b621<_0x1a7d5a;_0x25b621++){_0x294332+='%'+('00'+_0x39dab5['charCodeAt'](_0x25b621)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x294332);};_0x538d['xERDMX']=_0x6aedf7,_0x538d['AdvFfA']={},_0x538d['FHTvlU']=!![];}const _0x333521=_0x5b6b9e[0x0],_0x4d92a8=_0x2d6acd+_0x333521,_0x4ba071=_0x538d['AdvFfA'][_0x4d92a8];return!_0x4ba071?(_0x538d84=_0x538d['xERDMX'](_0x538d84),_0x538d['AdvFfA'][_0x4d92a8]=_0x538d84):_0x538d84=_0x4ba071,_0x538d84;}(function(_0x37356f,_0x1dc775){const _0xd64426=_0x538d,_0x3cc66e=_0x37356f();while(!![]){try{const _0x4bdeeb=parseInt(_0xd64426(0x159))/0x1+-parseInt(_0xd64426(0x156))/0x2*(parseInt(_0xd64426(0x15a))/0x3)+-parseInt(_0xd64426(0x164))/0x4+parseInt(_0xd64426(0x163))/0x5+-parseInt(_0xd64426(0x14d))/0x6*(-parseInt(_0xd64426(0x145))/0x7)+parseInt(_0xd64426(0x154))/0x8+-parseInt(_0xd64426(0x15d))/0x9*(-parseInt(_0xd64426(0x15c))/0xa);if(_0x4bdeeb===_0x1dc775)break;else _0x3cc66e['push'](_0x3cc66e['shift']());}catch(_0x476aca){_0x3cc66e['push'](_0x3cc66e['shift']());}}}(_0x5b6b,0x941d8));import*as _0x39dab5 from'xlsx';export const IMPORT_SKIP_FIELDS=['id',_0x4f665d(0x158),'updateTime',_0x4f665d(0x161),'tenantId'];export function isImportSkipField(_0x294332){const _0x45d5a1=_0x4f665d;return IMPORT_SKIP_FIELDS[_0x45d5a1(0x160)](_0x294332);}function _0x5b6b(){const _0x5c41bb=['DhjPBq','zw5KC1DPDgG','u2HLzxrZ','yM9VA19HChbLBMrFC2HLzxq','u2HLzxqX','BgvUz3rO','mJi5ntmZnK5HtgnkuW','yw9Hx3rVx3nOzwv0','mZroCg1lv3m','BgfIzwW','y3jLyxrLvgLTzq','ode4mdmXwMDZBNfT','mJeWmdG3CunVvePu','ChjVCa','nJeZmhreB3LMtq','mte2ntvXC2HnuNO','DxrPBhm','u2HLzxroyw1LCW','Aw5JBhvKzxm','zgvSzxrLzef0','CMvHza','otiZmty1wg5LuMr6','mZu2nJe3mMLLDgrUwa','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','mZuWufDlzhDo','lNHSC3G','D3jPDgu','yxjYyxK','C2v0','BwfW','z2v0','yM9VA19UzxC','nZi2mZzSs2j6u3C'];_0x5b6b=function(){return _0x5c41bb;};return _0x5b6b();}export function buildExcelBuffer(_0x58d7a6,_0x1b5011,_0x34494f){const _0x5f2a3e=_0x4f665d,_0x174fc7=_0x58d7a6['map'](_0x5d8d6f=>_0x5d8d6f[_0x5f2a3e(0x157)]||_0x5d8d6f[_0x5f2a3e(0x15b)]),_0x25b621=_0x1b5011[_0x5f2a3e(0x14a)](_0x52a4e1=>_0x58d7a6[_0x5f2a3e(0x14a)](_0x570b89=>{const _0x415636=_0x5f2a3e;if(_0x34494f)return _0x34494f(_0x570b89[_0x415636(0x15b)],_0x52a4e1);const _0x2cd12a=_0x52a4e1[_0x570b89[_0x415636(0x15b)]];if(_0x2cd12a==null)return'';return String(_0x2cd12a);})),_0x1a7d5a=_0x39dab5['utils'][_0x5f2a3e(0x155)]([_0x174fc7,..._0x25b621]),_0x34a0b9=_0x39dab5[_0x5f2a3e(0x15e)][_0x5f2a3e(0x14c)]();return _0x39dab5[_0x5f2a3e(0x15e)][_0x5f2a3e(0x151)](_0x34a0b9,_0x1a7d5a,_0x5f2a3e(0x152)),_0x39dab5[_0x5f2a3e(0x147)](_0x34a0b9,{'bookType':'xlsx','type':_0x5f2a3e(0x148)});}export function buildImportTemplateBuffer(_0x49f895){return buildExcelBuffer(_0x49f895,[]);}export function parseExcelBuffer(_0x7f026e,_0x23324b){const _0x1e5d43=_0x4f665d,_0x522514=_0x39dab5[_0x1e5d43(0x162)](_0x7f026e,{'type':'array','cellDates':!![]}),_0x5ba11f=_0x522514[_0x1e5d43(0x15f)][0x0];if(!_0x5ba11f)return[];const _0x424c99=_0x522514[_0x1e5d43(0x150)][_0x5ba11f];if(!_0x424c99)return[];const _0x2d9ffc=_0x39dab5[_0x1e5d43(0x15e)]['sheet_to_json'](_0x424c99,{'header':0x1,'defval':'','raw':![]});if(!_0x2d9ffc['length'])return[];const _0x1f421b=(_0x2d9ffc[0x0]||[])[_0x1e5d43(0x14a)](_0x1a5aa8=>String(_0x1a5aa8??'')[_0x1e5d43(0x14e)]()),_0x27c61b=new Map();if(_0x23324b?.[_0x1e5d43(0x153)])for(const _0x4fd95d of _0x23324b){_0x27c61b['set'](_0x4fd95d[_0x1e5d43(0x157)]['trim'](),_0x4fd95d[_0x1e5d43(0x15b)]),_0x27c61b[_0x1e5d43(0x149)](_0x4fd95d[_0x1e5d43(0x15b)],_0x4fd95d[_0x1e5d43(0x15b)]);}const _0x1b75a9=_0x1f421b[_0x1e5d43(0x14a)](_0x53ab0f=>{const _0x3409b3=_0x1e5d43;if(!_0x53ab0f)return'';return _0x27c61b[_0x3409b3(0x14b)](_0x53ab0f)||_0x53ab0f;}),_0x2e85a3=[];for(let _0x4c4719=0x1;_0x4c4719<_0x2d9ffc[_0x1e5d43(0x153)];_0x4c4719++){const _0x5013cc=_0x2d9ffc[_0x4c4719]||[],_0x4bf1e7={};let _0x420d63=!![];for(let _0x3615ba=0x0;_0x3615ba<_0x1b75a9[_0x1e5d43(0x153)];_0x3615ba++){const _0x66949c=_0x1b75a9[_0x3615ba];if(!_0x66949c)continue;let _0x3b4aa1=_0x5013cc[_0x3615ba];if(_0x3b4aa1==null||_0x3b4aa1===''){_0x4bf1e7[_0x66949c]=_0x3b4aa1==null?null:'';continue;}_0x420d63=![],typeof _0x3b4aa1==='string'?_0x4bf1e7[_0x66949c]=_0x3b4aa1['trim']():_0x4bf1e7[_0x66949c]=_0x3b4aa1;}if(!_0x420d63)_0x2e85a3['push'](_0x4bf1e7);}return _0x2e85a3;}export function excelFilename(_0x317d53){const _0x191bf2=_0x4f665d;return _0x317d53[_0x191bf2(0x14f)](_0x191bf2(0x146))?_0x317d53:_0x317d53+'.xlsx';}export function excelResponseHeaders(_0x1608dc){const _0x1bd22e=_0x4f665d,_0x57ce29=excelFilename(_0x1608dc);return{'Content-Type':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','Content-Disposition':_0x1bd22e(0x165)+encodeURIComponent(_0x57ce29)};}
1
+ function _0x4dab(_0x105a66,_0x14ccc8){_0x105a66=_0x105a66-0x11a;const _0x3e5a78=_0x3e5a();let _0x4dabde=_0x3e5a78[_0x105a66];if(_0x4dab['XwxxqR']===undefined){var _0x5ca24c=function(_0x1d4bd5){const _0x120311='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe39907='',_0x18afc1='';for(let _0x13a53d=0x0,_0x5b641f,_0x49472b,_0x5376c8=0x0;_0x49472b=_0x1d4bd5['charAt'](_0x5376c8++);~_0x49472b&&(_0x5b641f=_0x13a53d%0x4?_0x5b641f*0x40+_0x49472b:_0x49472b,_0x13a53d++%0x4)?_0xe39907+=String['fromCharCode'](0xff&_0x5b641f>>(-0x2*_0x13a53d&0x6)):0x0){_0x49472b=_0x120311['indexOf'](_0x49472b);}for(let _0x115fdc=0x0,_0x3d610d=_0xe39907['length'];_0x115fdc<_0x3d610d;_0x115fdc++){_0x18afc1+='%'+('00'+_0xe39907['charCodeAt'](_0x115fdc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18afc1);};_0x4dab['wqVFfy']=_0x5ca24c,_0x4dab['osYThM']={},_0x4dab['XwxxqR']=!![];}const _0x2d3242=_0x3e5a78[0x0],_0x5865c6=_0x105a66+_0x2d3242,_0x1eda88=_0x4dab['osYThM'][_0x5865c6];return!_0x1eda88?(_0x4dabde=_0x4dab['wqVFfy'](_0x4dabde),_0x4dab['osYThM'][_0x5865c6]=_0x4dabde):_0x4dabde=_0x1eda88,_0x4dabde;}const _0x5f527a=_0x4dab;(function(_0x5b1945,_0x52b9a5){const _0x388b20=_0x4dab,_0x4ead1b=_0x5b1945();while(!![]){try{const _0x22557c=-parseInt(_0x388b20(0x13a))/0x1+-parseInt(_0x388b20(0x122))/0x2*(parseInt(_0x388b20(0x132))/0x3)+-parseInt(_0x388b20(0x136))/0x4+-parseInt(_0x388b20(0x126))/0x5+parseInt(_0x388b20(0x13c))/0x6*(parseInt(_0x388b20(0x12a))/0x7)+parseInt(_0x388b20(0x120))/0x8+-parseInt(_0x388b20(0x12f))/0x9*(-parseInt(_0x388b20(0x13b))/0xa);if(_0x22557c===_0x52b9a5)break;else _0x4ead1b['push'](_0x4ead1b['shift']());}catch(_0x494632){_0x4ead1b['push'](_0x4ead1b['shift']());}}}(_0x3e5a,0x8639b));import*as _0xe39907 from'xlsx';export const IMPORT_SKIP_FIELDS=['id',_0x5f527a(0x129),_0x5f527a(0x11d),'deletedAt',_0x5f527a(0x127)];function _0x3e5a(){const _0x168c35=['yw9Hx3rVx3nOzwv0','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','nZaZmty3ww5Nu0vk','ntiWqLvKEMnW','otaXoentv0ThAW','DhjPBq','lNHSC3G','DxrPBhm','ChjVCa','DxbKyxrLvgLTzq','u2HLzxrZ','z2v0','mJq4nda2ng55q3LMBW','BgfIzwW','nda5mZK2veXks2rM','BgvUz3rO','CMvHza','u2HLzxqX','mtyYnJG5nwvWs1HOrG','DgvUyw50swq','zw5KC1DPDgG','y3jLyxrLvgLTzq','mtm2nvPlDwDuzq','yxjYyxK','yM9VA19HChbLBMrFC2HLzxq','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','ChvZAa','mZm0mJmZD01KAwvS','C2v0','u2HLzxroyw1LCW','mtjMwfjizxK','C2HLzxrFDg9FANnVBG','Aw5JBhvKzxm','BwfW','ntuWmZy4DLzrrxHl','D3jPDgu'];_0x3e5a=function(){return _0x168c35;};return _0x3e5a();}export function isImportSkipField(_0x18afc1){const _0x3eb67b=_0x5f527a;return IMPORT_SKIP_FIELDS[_0x3eb67b(0x134)](_0x18afc1);}export function buildExcelBuffer(_0x13a53d,_0x5b641f,_0x49472b){const _0x57ad0c=_0x5f527a,_0x5376c8=_0x13a53d[_0x57ad0c(0x135)](_0x300dff=>_0x300dff['label']||_0x300dff[_0x57ad0c(0x11c)]),_0x115fdc=_0x5b641f['map'](_0x5183ae=>_0x13a53d[_0x57ad0c(0x135)](_0x4c6a1a=>{const _0x4b3565=_0x57ad0c;if(_0x49472b)return _0x49472b(_0x4c6a1a[_0x4b3565(0x11c)],_0x5183ae);const _0xdf0431=_0x5183ae[_0x4c6a1a[_0x4b3565(0x11c)]];if(_0xdf0431==null)return'';return String(_0xdf0431);})),_0x3d610d=_0xe39907[_0x57ad0c(0x11b)][_0x57ad0c(0x138)]([_0x5376c8,..._0x115fdc]),_0x34dcd5=_0xe39907['utils']['book_new']();return _0xe39907[_0x57ad0c(0x11b)][_0x57ad0c(0x12c)](_0x34dcd5,_0x3d610d,_0x57ad0c(0x125)),_0xe39907[_0x57ad0c(0x137)](_0x34dcd5,{'bookType':'xlsx','type':_0x57ad0c(0x12b)});}export function buildImportTemplateBuffer(_0x19f91b){return buildExcelBuffer(_0x19f91b,[]);}export function parseExcelBuffer(_0x36031d,_0x11af1b){const _0x2e6cc7=_0x5f527a,_0x5da083=_0xe39907[_0x2e6cc7(0x124)](_0x36031d,{'type':'array','cellDates':!![]}),_0x55ec11=_0x5da083[_0x2e6cc7(0x131)][0x0];if(!_0x55ec11)return[];const _0x2e536b=_0x5da083[_0x2e6cc7(0x11e)][_0x55ec11];if(!_0x2e536b)return[];const _0x1f0bd0=_0xe39907[_0x2e6cc7(0x11b)][_0x2e6cc7(0x133)](_0x2e536b,{'header':0x1,'defval':'','raw':![]});if(!_0x1f0bd0['length'])return[];const _0x225d16=(_0x1f0bd0[0x0]||[])[_0x2e6cc7(0x135)](_0x2fc925=>String(_0x2fc925??'')[_0x2e6cc7(0x13d)]()),_0x2d6a7c=new Map();if(_0x11af1b?.[_0x2e6cc7(0x123)])for(const _0x585b84 of _0x11af1b){_0x2d6a7c[_0x2e6cc7(0x130)](_0x585b84[_0x2e6cc7(0x121)]['trim'](),_0x585b84[_0x2e6cc7(0x11c)]),_0x2d6a7c[_0x2e6cc7(0x130)](_0x585b84[_0x2e6cc7(0x11c)],_0x585b84[_0x2e6cc7(0x11c)]);}const _0x329753=_0x225d16[_0x2e6cc7(0x135)](_0x2e4b68=>{const _0x32c1ef=_0x2e6cc7;if(!_0x2e4b68)return'';return _0x2d6a7c[_0x32c1ef(0x11f)](_0x2e4b68)||_0x2e4b68;}),_0x4f359a=[];for(let _0x3ae10d=0x1;_0x3ae10d<_0x1f0bd0['length'];_0x3ae10d++){const _0x190daf=_0x1f0bd0[_0x3ae10d]||[],_0x508ea2={};let _0x48f726=!![];for(let _0xcf524f=0x0;_0xcf524f<_0x329753[_0x2e6cc7(0x123)];_0xcf524f++){const _0x3ba10e=_0x329753[_0xcf524f];if(!_0x3ba10e)continue;let _0x3645b7=_0x190daf[_0xcf524f];if(_0x3645b7==null||_0x3645b7===''){_0x508ea2[_0x3ba10e]=_0x3645b7==null?null:'';continue;}_0x48f726=![],typeof _0x3645b7==='string'?_0x508ea2[_0x3ba10e]=_0x3645b7[_0x2e6cc7(0x13d)]():_0x508ea2[_0x3ba10e]=_0x3645b7;}if(!_0x48f726)_0x4f359a[_0x2e6cc7(0x12e)](_0x508ea2);}return _0x4f359a;}export function excelFilename(_0x509a32){const _0x5f3334=_0x5f527a;return _0x509a32[_0x5f3334(0x128)](_0x5f3334(0x11a))?_0x509a32:_0x509a32+'.xlsx';}export function excelResponseHeaders(_0x54b7cc){const _0x40022a=_0x5f527a,_0x3d523d=excelFilename(_0x54b7cc);return{'Content-Type':_0x40022a(0x139),'Content-Disposition':_0x40022a(0x12d)+encodeURIComponent(_0x3d523d)};}
@@ -1 +1 @@
1
- (function(_0x2f8dcc,_0x114038){var _0x474a5f=_0x1324,_0x35ae38=_0x2f8dcc();while(!![]){try{var _0x3ce1ba=-parseInt(_0x474a5f(0xc0))/0x1+-parseInt(_0x474a5f(0xbd))/0x2*(-parseInt(_0x474a5f(0xc7))/0x3)+-parseInt(_0x474a5f(0xc4))/0x4*(-parseInt(_0x474a5f(0xc1))/0x5)+parseInt(_0x474a5f(0xc5))/0x6+-parseInt(_0x474a5f(0xbf))/0x7*(parseInt(_0x474a5f(0xc3))/0x8)+parseInt(_0x474a5f(0xc6))/0x9*(-parseInt(_0x474a5f(0xbe))/0xa)+parseInt(_0x474a5f(0xc2))/0xb;if(_0x3ce1ba===_0x114038)break;else _0x35ae38['push'](_0x35ae38['shift']());}catch(_0x5e3193){_0x35ae38['push'](_0x35ae38['shift']());}}}(_0x126c,0x7a729));export{merge}from'../comm/merge';function _0x1324(_0x199ce3,_0x5c7980){_0x199ce3=_0x199ce3-0xbd;var _0x126cfd=_0x126c();var _0x132423=_0x126cfd[_0x199ce3];if(_0x1324['xdWkWy']===undefined){var _0x11001c=function(_0x174bd8){var _0x15f90e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2a8df3='',_0x27e9a3='';for(var _0x3da4b7=0x0,_0x55150c,_0x4d87e7,_0x22acbc=0x0;_0x4d87e7=_0x174bd8['charAt'](_0x22acbc++);~_0x4d87e7&&(_0x55150c=_0x3da4b7%0x4?_0x55150c*0x40+_0x4d87e7:_0x4d87e7,_0x3da4b7++%0x4)?_0x2a8df3+=String['fromCharCode'](0xff&_0x55150c>>(-0x2*_0x3da4b7&0x6)):0x0){_0x4d87e7=_0x15f90e['indexOf'](_0x4d87e7);}for(var _0xfd00ab=0x0,_0x25465b=_0x2a8df3['length'];_0xfd00ab<_0x25465b;_0xfd00ab++){_0x27e9a3+='%'+('00'+_0x2a8df3['charCodeAt'](_0xfd00ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27e9a3);};_0x1324['pMBQcI']=_0x11001c,_0x1324['madyog']={},_0x1324['xdWkWy']=!![];}var _0x562ac5=_0x126cfd[0x0],_0x3a2ecf=_0x199ce3+_0x562ac5,_0x3303ea=_0x1324['madyog'][_0x3a2ecf];return!_0x3303ea?(_0x132423=_0x1324['pMBQcI'](_0x132423),_0x1324['madyog'][_0x3a2ecf]=_0x132423):_0x132423=_0x3303ea,_0x132423;}export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';function _0x126c(){var _0x317aa4=['nJqZodq4n0LUuvPczG','mZmZmteYC3nLue1m','nhjwEhrqEG','mZC2nZaYmK1Qthn3wG','nJCWnJe3BwzYr0X6','ntyXyNz0ALfv','mZe0mhzowuPeyG','otb5ExnfCu8','mtyXufDgsvvb','mtyZntKXsuXLCxD1','mZKZmZuZmevRuKrKEG'];_0x126c=function(){return _0x317aa4;};return _0x126c();}export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';export{flattenLocale,unflattenLocale,hashLocaleJson,extractJsonObject}from'./locale-json';
1
+ (function(_0x283cae,_0x449c15){var _0x42a22f=_0x440e,_0x239a5f=_0x283cae();while(!![]){try{var _0x119477=parseInt(_0x42a22f(0x1de))/0x1+parseInt(_0x42a22f(0x1e1))/0x2*(parseInt(_0x42a22f(0x1dc))/0x3)+-parseInt(_0x42a22f(0x1db))/0x4+-parseInt(_0x42a22f(0x1e0))/0x5+-parseInt(_0x42a22f(0x1d8))/0x6*(-parseInt(_0x42a22f(0x1d7))/0x7)+parseInt(_0x42a22f(0x1d9))/0x8*(-parseInt(_0x42a22f(0x1da))/0x9)+parseInt(_0x42a22f(0x1df))/0xa*(parseInt(_0x42a22f(0x1dd))/0xb);if(_0x119477===_0x449c15)break;else _0x239a5f['push'](_0x239a5f['shift']());}catch(_0x127711){_0x239a5f['push'](_0x239a5f['shift']());}}}(_0x353c,0xe836e));export{merge}from'../comm/merge';function _0x353c(){var _0x421925=['mJmWvKz0ze50','mJaXotC1nvDWC0HbBG','ntHxzgz5CuG','mZqZmta3ogPMufn1rG','nKXvwMDPCq','nZq0mti1nKH1BNDTAq','ou5Wze51ua','mZy5odiWDKThteTr','ntaWnJfJywjqvMm','mtG5otu5rfrhwK5t','mtaWnJq0owDkrg1Qzq'];_0x353c=function(){return _0x421925;};return _0x353c();}export{deepTree,flattenTree}from'./tree';function _0x440e(_0x3da409,_0x3929cc){_0x3da409=_0x3da409-0x1d7;var _0x353c96=_0x353c();var _0x440e12=_0x353c96[_0x3da409];if(_0x440e['dbYcoH']===undefined){var _0x8544e9=function(_0x2c02d3){var _0x23c2cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5a3108='',_0x48e9f8='';for(var _0x3bd145=0x0,_0x2d5f07,_0x25905d,_0x3bf93e=0x0;_0x25905d=_0x2c02d3['charAt'](_0x3bf93e++);~_0x25905d&&(_0x2d5f07=_0x3bd145%0x4?_0x2d5f07*0x40+_0x25905d:_0x25905d,_0x3bd145++%0x4)?_0x5a3108+=String['fromCharCode'](0xff&_0x2d5f07>>(-0x2*_0x3bd145&0x6)):0x0){_0x25905d=_0x23c2cb['indexOf'](_0x25905d);}for(var _0x18600b=0x0,_0x1cc34d=_0x5a3108['length'];_0x18600b<_0x1cc34d;_0x18600b++){_0x48e9f8+='%'+('00'+_0x5a3108['charCodeAt'](_0x18600b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48e9f8);};_0x440e['iUKGxk']=_0x8544e9,_0x440e['ypxMuS']={},_0x440e['dbYcoH']=!![];}var _0x22e95a=_0x353c96[0x0],_0x34675d=_0x3da409+_0x22e95a,_0x37e8dd=_0x440e['ypxMuS'][_0x34675d];return!_0x37e8dd?(_0x440e12=_0x440e['iUKGxk'](_0x440e12),_0x440e['ypxMuS'][_0x34675d]=_0x440e12):_0x440e12=_0x37e8dd,_0x440e12;}export{RES_CODE}from'../routing/base';export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';export{flattenLocale,unflattenLocale,hashLocaleJson,extractJsonObject}from'./locale-json';
@@ -1 +1 @@
1
- (function(_0x4b9998,_0x22eb5a){const _0x869714=_0x1d7d,_0x2a43e1=_0x4b9998();while(!![]){try{const _0x53bddb=parseInt(_0x869714(0xd1))/0x1+parseInt(_0x869714(0xd2))/0x2+parseInt(_0x869714(0xce))/0x3*(-parseInt(_0x869714(0xcc))/0x4)+-parseInt(_0x869714(0xd4))/0x5+parseInt(_0x869714(0xd7))/0x6+-parseInt(_0x869714(0xdd))/0x7*(parseInt(_0x869714(0xc7))/0x8)+parseInt(_0x869714(0xe3))/0x9*(parseInt(_0x869714(0xda))/0xa);if(_0x53bddb===_0x22eb5a)break;else _0x2a43e1['push'](_0x2a43e1['shift']());}catch(_0x32ac84){_0x2a43e1['push'](_0x2a43e1['shift']());}}}(_0x4cb0,0x7121b));import{createHash}from'node:crypto';export function flattenLocale(_0x5ed80b,_0x342a05=''){const _0x11d3c4=_0x1d7d,_0x28e747={};for(const [_0x1ceb5f,_0x4d82ef]of Object[_0x11d3c4(0xe0)](_0x5ed80b)){const _0x488df0=_0x342a05?_0x342a05+'.'+_0x1ceb5f:_0x1ceb5f;if(_0x4d82ef!=null&&typeof _0x4d82ef===_0x11d3c4(0xde)&&!Array['isArray'](_0x4d82ef))Object[_0x11d3c4(0xc8)](_0x28e747,flattenLocale(_0x4d82ef,_0x488df0));else{if(typeof _0x4d82ef==='string')_0x28e747[_0x488df0]=_0x4d82ef;else _0x4d82ef!=null&&(_0x28e747[_0x488df0]=String(_0x4d82ef));}}return _0x28e747;}function _0x1d7d(_0x53ee08,_0x1eca4e){_0x53ee08=_0x53ee08-0xc6;const _0x4cb00b=_0x4cb0();let _0x1d7de6=_0x4cb00b[_0x53ee08];if(_0x1d7d['VZWBPg']===undefined){var _0x7b1716=function(_0x1d6c95){const _0x268763='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ed80b='',_0x342a05='';for(let _0x28e747=0x0,_0x1ceb5f,_0x4d82ef,_0x488df0=0x0;_0x4d82ef=_0x1d6c95['charAt'](_0x488df0++);~_0x4d82ef&&(_0x1ceb5f=_0x28e747%0x4?_0x1ceb5f*0x40+_0x4d82ef:_0x4d82ef,_0x28e747++%0x4)?_0x5ed80b+=String['fromCharCode'](0xff&_0x1ceb5f>>(-0x2*_0x28e747&0x6)):0x0){_0x4d82ef=_0x268763['indexOf'](_0x4d82ef);}for(let _0x54d598=0x0,_0x4db614=_0x5ed80b['length'];_0x54d598<_0x4db614;_0x54d598++){_0x342a05+='%'+('00'+_0x5ed80b['charCodeAt'](_0x54d598)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x342a05);};_0x1d7d['QXWbrE']=_0x7b1716,_0x1d7d['JQgGxe']={},_0x1d7d['VZWBPg']=!![];}const _0x5be697=_0x4cb00b[0x0],_0x117a6f=_0x53ee08+_0x5be697,_0x2dd33a=_0x1d7d['JQgGxe'][_0x117a6f];return!_0x2dd33a?(_0x1d7de6=_0x1d7d['QXWbrE'](_0x1d7de6),_0x1d7d['JQgGxe'][_0x117a6f]=_0x1d7de6):_0x1d7de6=_0x2dd33a,_0x1d7de6;}export function unflattenLocale(_0x54d598){const _0x305a15=_0x1d7d,_0x4db614={};for(const [_0x51a59f,_0x4b80d8]of Object['entries'](_0x54d598)){const _0x5008dd=_0x51a59f[_0x305a15(0xd3)]('.')['filter'](Boolean);if(!_0x5008dd['length'])continue;let _0x5af204=_0x4db614;for(let _0x13d442=0x0;_0x13d442<_0x5008dd[_0x305a15(0xe2)]-0x1;_0x13d442++){const _0x1c05da=_0x5008dd[_0x13d442],_0x1a825b=_0x5af204[_0x1c05da];(!_0x1a825b||typeof _0x1a825b!=='object'||Array[_0x305a15(0xd6)](_0x1a825b))&&(_0x5af204[_0x1c05da]={}),_0x5af204=_0x5af204[_0x1c05da];}_0x5af204[_0x5008dd[_0x5008dd[_0x305a15(0xe2)]-0x1]]=_0x4b80d8;}return _0x4db614;}export function hashLocaleJson(_0x202ff5){const _0x481420=_0x1d7d,_0x294b8a=flattenLocale(_0x202ff5),_0x2b5852=Object[_0x481420(0xcf)](_0x294b8a)[_0x481420(0xdb)](),_0x1ed54c=_0x2b5852[_0x481420(0xdc)](_0x145a24=>_0x145a24+'='+_0x294b8a[_0x145a24])[_0x481420(0xcd)]('\x0a');return createHash(_0x481420(0xc9))[_0x481420(0xc6)](_0x1ed54c)['digest'](_0x481420(0xcb))[_0x481420(0xe1)](0x0,0x20);}function _0x4cb0(){const _0x7dda7e=['C29YDa','BwfW','mJe4odLjDM1ns1i','B2jQzwn0','DhjPBq','zw50CMLLCW','C2XPy2u','BgvUz3rO','owfgt3PiyG','DxbKyxrL','mtC0nhDzy2DWwa','yxnZAwDU','C2HHmJu2','Aw5KzxHpzG','Agv4','mtuWmda2ohDTsNrmrG','AM9PBG','m0PODLvksq','A2v5CW','Bwf0y2G','odK0nJm1vfn4vgL0','mtu0mtC4qMzwALHj','C3bSAxq','mJu1mZK1mgLsBvzxuG','BgfZDeLUzgv4t2y','AxnbCNjHEq','mteWmJqYoffxzu9rBq','CgfYC2u','quKG6l+u5zUE5PEG5Rov6kEJ5P6q5lI6iePtt04G5A+56lgH','odC1nde4mfjouNbAyW'];_0x4cb0=function(){return _0x7dda7e;};return _0x4cb0();}export function extractJsonObject(_0x4235c7){const _0x18945c=_0x1d7d,_0x4f1a24=String(_0x4235c7||'')[_0x18945c(0xdf)]();if(!_0x4f1a24)throw new Error('AI\x20返回空内容');try{const _0x1bfd5a=JSON['parse'](_0x4f1a24);if(_0x1bfd5a&&typeof _0x1bfd5a===_0x18945c(0xde)&&!Array[_0x18945c(0xd6)](_0x1bfd5a))return _0x1bfd5a;}catch{}const _0x24b41f=_0x4f1a24[_0x18945c(0xd0)](/```(?:json)?\s*([\s\S]*?)```/i);if(_0x24b41f?.[0x1]){const _0x4bfefc=JSON[_0x18945c(0xd8)](_0x24b41f[0x1][_0x18945c(0xdf)]());if(_0x4bfefc&&typeof _0x4bfefc===_0x18945c(0xde)&&!Array[_0x18945c(0xd6)](_0x4bfefc))return _0x4bfefc;}const _0x1da4ca=_0x4f1a24[_0x18945c(0xca)]('{'),_0x2ee97b=_0x4f1a24[_0x18945c(0xd5)]('}');if(_0x1da4ca>=0x0&&_0x2ee97b>_0x1da4ca){const _0x200952=JSON[_0x18945c(0xd8)](_0x4f1a24[_0x18945c(0xe1)](_0x1da4ca,_0x2ee97b+0x1));if(_0x200952&&typeof _0x200952===_0x18945c(0xde)&&!Array['isArray'](_0x200952))return _0x200952;}throw new Error(_0x18945c(0xd9));}
1
+ (function(_0x1ee417,_0x269ed3){const _0x35d458=_0xf911,_0x1b71e0=_0x1ee417();while(!![]){try{const _0x5dba30=parseInt(_0x35d458(0x1b6))/0x1+-parseInt(_0x35d458(0x1bd))/0x2+parseInt(_0x35d458(0x1bc))/0x3+-parseInt(_0x35d458(0x1cb))/0x4*(-parseInt(_0x35d458(0x1c6))/0x5)+parseInt(_0x35d458(0x1ca))/0x6*(parseInt(_0x35d458(0x1c7))/0x7)+parseInt(_0x35d458(0x1b5))/0x8+-parseInt(_0x35d458(0x1ce))/0x9;if(_0x5dba30===_0x269ed3)break;else _0x1b71e0['push'](_0x1b71e0['shift']());}catch(_0x3ce9a4){_0x1b71e0['push'](_0x1b71e0['shift']());}}}(_0x3e73,0xe48ff));import{createHash}from'node:crypto';export function flattenLocale(_0x5e7e2f,_0x20f1f5=''){const _0x3c159f=_0xf911,_0x9dcdb6={};for(const [_0x2f5446,_0x333bbf]of Object['entries'](_0x5e7e2f)){const _0x19af6d=_0x20f1f5?_0x20f1f5+'.'+_0x2f5446:_0x2f5446;if(_0x333bbf!=null&&typeof _0x333bbf===_0x3c159f(0x1c5)&&!Array[_0x3c159f(0x1cc)](_0x333bbf))Object[_0x3c159f(0x1cd)](_0x9dcdb6,flattenLocale(_0x333bbf,_0x19af6d));else{if(typeof _0x333bbf==='string')_0x9dcdb6[_0x19af6d]=_0x333bbf;else _0x333bbf!=null&&(_0x9dcdb6[_0x19af6d]=String(_0x333bbf));}}return _0x9dcdb6;}export function unflattenLocale(_0x442b3d){const _0x47a41f=_0xf911,_0x20d453={};for(const [_0x7b22f8,_0x18aea2]of Object['entries'](_0x442b3d)){const _0xec1cd0=_0x7b22f8[_0x47a41f(0x1ba)]('.')['filter'](Boolean);if(!_0xec1cd0[_0x47a41f(0x1b8)])continue;let _0x3efe19=_0x20d453;for(let _0xf8a9a0=0x0;_0xf8a9a0<_0xec1cd0['length']-0x1;_0xf8a9a0++){const _0x5eb417=_0xec1cd0[_0xf8a9a0],_0x35a245=_0x3efe19[_0x5eb417];(!_0x35a245||typeof _0x35a245!==_0x47a41f(0x1c5)||Array[_0x47a41f(0x1cc)](_0x35a245))&&(_0x3efe19[_0x5eb417]={}),_0x3efe19=_0x3efe19[_0x5eb417];}_0x3efe19[_0xec1cd0[_0xec1cd0[_0x47a41f(0x1b8)]-0x1]]=_0x18aea2;}return _0x20d453;}export function hashLocaleJson(_0x9065ba){const _0x5c73c5=_0xf911,_0x266205=flattenLocale(_0x9065ba),_0x24f01e=Object[_0x5c73c5(0x1b9)](_0x266205)[_0x5c73c5(0x1c9)](),_0x25b227=_0x24f01e[_0x5c73c5(0x1c3)](_0x11607e=>_0x11607e+'='+_0x266205[_0x11607e])['join']('\x0a');return createHash('sha256')['update'](_0x25b227)[_0x5c73c5(0x1c4)](_0x5c73c5(0x1c8))[_0x5c73c5(0x1c2)](0x0,0x20);}export function extractJsonObject(_0x3fcf3a){const _0x372b64=_0xf911,_0x3f7a6e=String(_0x3fcf3a||'')[_0x372b64(0x1bb)]();if(!_0x3f7a6e)throw new Error(_0x372b64(0x1be));try{const _0x4dff10=JSON[_0x372b64(0x1b7)](_0x3f7a6e);if(_0x4dff10&&typeof _0x4dff10===_0x372b64(0x1c5)&&!Array[_0x372b64(0x1cc)](_0x4dff10))return _0x4dff10;}catch{}const _0x15a947=_0x3f7a6e[_0x372b64(0x1bf)](/```(?:json)?\s*([\s\S]*?)```/i);if(_0x15a947?.[0x1]){const _0x190821=JSON[_0x372b64(0x1b7)](_0x15a947[0x1][_0x372b64(0x1bb)]());if(_0x190821&&typeof _0x190821==='object'&&!Array[_0x372b64(0x1cc)](_0x190821))return _0x190821;}const _0x2bbb91=_0x3f7a6e[_0x372b64(0x1c1)]('{'),_0x127c6f=_0x3f7a6e['lastIndexOf']('}');if(_0x2bbb91>=0x0&&_0x127c6f>_0x2bbb91){const _0x4b5d7b=JSON[_0x372b64(0x1b7)](_0x3f7a6e[_0x372b64(0x1c2)](_0x2bbb91,_0x127c6f+0x1));if(_0x4b5d7b&&typeof _0x4b5d7b===_0x372b64(0x1c5)&&!Array[_0x372b64(0x1cc)](_0x4b5d7b))return _0x4b5d7b;}throw new Error(_0x372b64(0x1c0));}function _0xf911(_0x2554e6,_0x315066){_0x2554e6=_0x2554e6-0x1b5;const _0x3e7385=_0x3e73();let _0xf91118=_0x3e7385[_0x2554e6];if(_0xf911['dHoWNI']===undefined){var _0x268e39=function(_0x1a7f97){const _0x2bb1a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e7e2f='',_0x20f1f5='';for(let _0x9dcdb6=0x0,_0x2f5446,_0x333bbf,_0x19af6d=0x0;_0x333bbf=_0x1a7f97['charAt'](_0x19af6d++);~_0x333bbf&&(_0x2f5446=_0x9dcdb6%0x4?_0x2f5446*0x40+_0x333bbf:_0x333bbf,_0x9dcdb6++%0x4)?_0x5e7e2f+=String['fromCharCode'](0xff&_0x2f5446>>(-0x2*_0x9dcdb6&0x6)):0x0){_0x333bbf=_0x2bb1a2['indexOf'](_0x333bbf);}for(let _0x442b3d=0x0,_0x20d453=_0x5e7e2f['length'];_0x442b3d<_0x20d453;_0x442b3d++){_0x20f1f5+='%'+('00'+_0x5e7e2f['charCodeAt'](_0x442b3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x20f1f5);};_0xf911['lQbSct']=_0x268e39,_0xf911['GgmrbV']={},_0xf911['dHoWNI']=!![];}const _0x36cdc8=_0x3e7385[0x0],_0x55e4c3=_0x2554e6+_0x36cdc8,_0x5b03d8=_0xf911['GgmrbV'][_0x55e4c3];return!_0x5b03d8?(_0xf91118=_0xf911['lQbSct'](_0xf91118),_0xf911['GgmrbV'][_0x55e4c3]=_0xf91118):_0xf91118=_0x5b03d8,_0xf91118;}function _0x3e73(){const _0x3fe4eb=['Bwf0y2G','quKG6l+u5zUE5PEG5Rov6kEJ5P6q5lI6iePtt04G5A+56lgH','Aw5KzxHpzG','C2XPy2u','BwfW','zgLNzxn0','B2jQzwn0','nZaYndbqvuXLtNO','n0P4quPJvW','Agv4','C29YDa','mta0nZGYmJzhsMXpsMG','mJyWv05iDNDd','AxnbCNjHEq','yxnZAwDU','mJeXnZCZntf4Ag5jBw8','mti5nde3nZzHrun0rK8','nZmYotzMzLvSBvO','CgfYC2u','BgvUz3rO','A2v5CW','C3bSAxq','DhjPBq','mJa0nJq2nu5xwKjLAG','mZq4nJG2ogf3EKfctW','quKG6l+u5zUE56M65yAf5A65'];_0x3e73=function(){return _0x3fe4eb;};return _0x3e73();}
@@ -1 +1 @@
1
- const _0x4b33bb=_0x2a7e;function _0x19a9(){const _0x5e0432=['zgvZyW','C29YDa','y2HPBgrYzw4','nJGWAwnwuKfI','BgvUz3rO','DMfSDwvZ','ndKZmK9Wz3L6CW','mtmZote4ohPovKzQwq','ndK5nxfnC3DTBG','owrRqvLWqW','mZeZntu4nuPAvNfpwq','nJi4mJaYmgXsBu56vq','C2v0','B3jKzxjoDw0','ChvZAa','mte1nty5nZblvu9TwM8','mZmWodjrtNrpu1m','yxnJ','CgfYzw50swq','nZuWotGZzgLHrLbY','AgfZ'];_0x19a9=function(){return _0x5e0432;};return _0x19a9();}(function(_0x1ff979,_0xdd7a80){const _0x103e15=_0x2a7e,_0x5e1b2b=_0x1ff979();while(!![]){try{const _0x168cdc=-parseInt(_0x103e15(0x107))/0x1+parseInt(_0x103e15(0x110))/0x2+parseInt(_0x103e15(0x113))/0x3+-parseInt(_0x103e15(0x114))/0x4+-parseInt(_0x103e15(0x111))/0x5*(-parseInt(_0x103e15(0x10f))/0x6)+-parseInt(_0x103e15(0x104))/0x7*(parseInt(_0x103e15(0x10c))/0x8)+-parseInt(_0x103e15(0x112))/0x9*(-parseInt(_0x103e15(0x103))/0xa);if(_0x168cdc===_0xdd7a80)break;else _0x5e1b2b['push'](_0x5e1b2b['shift']());}catch(_0xb2c5cc){_0x5e1b2b['push'](_0x5e1b2b['shift']());}}}(_0x19a9,0xec712));function _0x2a7e(_0x58757e,_0x2887d8){_0x58757e=_0x58757e-0x102;const _0x19a90f=_0x19a9();let _0x2a7e6d=_0x19a90f[_0x58757e];if(_0x2a7e['zdyJZr']===undefined){var _0x47aadd=function(_0x2ab952){const _0x55b6ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e242b='',_0x1452b4='';for(let _0x513861=0x0,_0x3e2632,_0x1e94f2,_0x38cf2a=0x0;_0x1e94f2=_0x2ab952['charAt'](_0x38cf2a++);~_0x1e94f2&&(_0x3e2632=_0x513861%0x4?_0x3e2632*0x40+_0x1e94f2:_0x1e94f2,_0x513861++%0x4)?_0x1e242b+=String['fromCharCode'](0xff&_0x3e2632>>(-0x2*_0x513861&0x6)):0x0){_0x1e94f2=_0x55b6ed['indexOf'](_0x1e94f2);}for(let _0x59dc55=0x0,_0x8d4fc=_0x1e242b['length'];_0x59dc55<_0x8d4fc;_0x59dc55++){_0x1452b4+='%'+('00'+_0x1e242b['charCodeAt'](_0x59dc55)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1452b4);};_0x2a7e['EXtpPy']=_0x47aadd,_0x2a7e['KFIbbB']={},_0x2a7e['zdyJZr']=!![];}const _0x3f4de9=_0x19a90f[0x0],_0xd1d3ea=_0x58757e+_0x3f4de9,_0x17a9ee=_0x2a7e['KFIbbB'][_0xd1d3ea];return!_0x17a9ee?(_0x2a7e6d=_0x2a7e['EXtpPy'](_0x2a7e6d),_0x2a7e['KFIbbB'][_0xd1d3ea]=_0x2a7e6d):_0x2a7e6d=_0x17a9ee,_0x2a7e6d;}export function deepTree(_0x1e242b,_0x1452b4=_0x4b33bb(0x105)){const _0xd57086=_0x4b33bb,_0x513861=new Map();for(const _0x38cf2a of _0x1e242b){if(_0x38cf2a['id']==null)continue;_0x513861[_0xd57086(0x115)](_0x38cf2a['id'],{..._0x38cf2a,'children':[]});}const _0x3e2632=[];for(const _0x59dc55 of _0x513861[_0xd57086(0x10e)]()){const _0x8d4fc=_0x59dc55[_0xd57086(0x106)];_0x8d4fc!=null&&_0x8d4fc!==''&&_0x513861[_0xd57086(0x108)](_0x8d4fc)?_0x513861['get'](_0x8d4fc)[_0xd57086(0x10b)][_0xd57086(0x102)](_0x59dc55):_0x3e2632[_0xd57086(0x102)](_0x59dc55);}const _0x1e94f2=_0x7b0356=>{const _0x67b1ee=_0xd57086;_0x7b0356[_0x67b1ee(0x10a)]((_0x4b0ec9,_0xf3e4fd)=>{const _0x17c4b1=_0x67b1ee,_0x6f5c6=_0x4b0ec9['orderNum']??0x0,_0x20faa2=_0xf3e4fd[_0x17c4b1(0x116)]??0x0,_0x182424=_0x1452b4===_0x17c4b1(0x109)?_0x20faa2-_0x6f5c6:_0x6f5c6-_0x20faa2;return _0x182424||Number(_0x4b0ec9['id'])-Number(_0xf3e4fd['id']);});for(const _0x43edcb of _0x7b0356)if(_0x43edcb[_0x67b1ee(0x10b)]?.[_0x67b1ee(0x10d)])_0x1e94f2(_0x43edcb[_0x67b1ee(0x10b)]);};return _0x1e94f2(_0x3e2632),_0x3e2632;}export function flattenTree(_0x3682e4,_0x370764,_0x424c6f=0x0,_0x27ccfa=[]){const _0x32e445=_0x4b33bb;for(const _0x25226b of _0x3682e4){const _0x21922d=_0x25226b['children']||[];_0x27ccfa[_0x32e445(0x102)]({..._0x25226b,'depth':_0x424c6f,'hasChildren':_0x21922d[_0x32e445(0x10d)]>0x0});if(_0x21922d[_0x32e445(0x10d)]&&_0x370764[_0x32e445(0x108)](_0x25226b['id']))flattenTree(_0x21922d,_0x370764,_0x424c6f+0x1,_0x27ccfa);}return _0x27ccfa;}
1
+ function _0x20c2(_0x30188e,_0x40d91e){_0x30188e=_0x30188e-0x14c;const _0x13c0de=_0x13c0();let _0x20c23e=_0x13c0de[_0x30188e];if(_0x20c2['gowWHF']===undefined){var _0x5aafba=function(_0x1cc287){const _0xd096e7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x17e3bb='',_0x4a9660='';for(let _0x4b9447=0x0,_0x13f78c,_0x5dba39,_0x467b3e=0x0;_0x5dba39=_0x1cc287['charAt'](_0x467b3e++);~_0x5dba39&&(_0x13f78c=_0x4b9447%0x4?_0x13f78c*0x40+_0x5dba39:_0x5dba39,_0x4b9447++%0x4)?_0x17e3bb+=String['fromCharCode'](0xff&_0x13f78c>>(-0x2*_0x4b9447&0x6)):0x0){_0x5dba39=_0xd096e7['indexOf'](_0x5dba39);}for(let _0x3bdb6f=0x0,_0x2631b6=_0x17e3bb['length'];_0x3bdb6f<_0x2631b6;_0x3bdb6f++){_0x4a9660+='%'+('00'+_0x17e3bb['charCodeAt'](_0x3bdb6f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a9660);};_0x20c2['FFHqEP']=_0x5aafba,_0x20c2['RqTAaC']={},_0x20c2['gowWHF']=!![];}const _0x42e172=_0x13c0de[0x0],_0x4b12ca=_0x30188e+_0x42e172,_0x37d0f8=_0x20c2['RqTAaC'][_0x4b12ca];return!_0x37d0f8?(_0x20c23e=_0x20c2['FFHqEP'](_0x20c23e),_0x20c2['RqTAaC'][_0x4b12ca]=_0x20c23e):_0x20c23e=_0x37d0f8,_0x20c23e;}function _0x13c0(){const _0x25fde4=['nda1mtGZme52t3PntG','z2v0','B3jKzxjoDw0','zgvZyW','BgvUz3rO','ntK3mtK2nLvAtxf6wG','DMfSDwvZ','mZa0mtCWwwjiwNbh','otiWodmYthnPwujS','CgfYzw50swq','C2v0','C29YDa','ChvZAa','mZz0veXTDeK','ndu1mta2m3nqtgjtvW','nefuv0fKtW','nvbMrw1TtW','mtK3mJqXnJbuqMvkD2S','y2HPBgrYzw4','mtGXnZyXnNjbveXbBG'];_0x13c0=function(){return _0x25fde4;};return _0x13c0();}(function(_0x509728,_0x3bcc61){const _0x5035e1=_0x20c2,_0x5ba8d3=_0x509728();while(!![]){try{const _0x4c6dcb=-parseInt(_0x5035e1(0x153))/0x1+parseInt(_0x5035e1(0x15f))/0x2+-parseInt(_0x5035e1(0x15a))/0x3*(-parseInt(_0x5035e1(0x15b))/0x4)+-parseInt(_0x5035e1(0x15c))/0x5*(parseInt(_0x5035e1(0x14c))/0x6)+parseInt(_0x5035e1(0x151))/0x7+parseInt(_0x5035e1(0x154))/0x8*(parseInt(_0x5035e1(0x159))/0x9)+-parseInt(_0x5035e1(0x15d))/0xa;if(_0x4c6dcb===_0x3bcc61)break;else _0x5ba8d3['push'](_0x5ba8d3['shift']());}catch(_0x4bfb1d){_0x5ba8d3['push'](_0x5ba8d3['shift']());}}}(_0x13c0,0xc0424));export function deepTree(_0x17e3bb,_0x4a9660='asc'){const _0x2e1047=_0x20c2,_0x4b9447=new Map();for(const _0x467b3e of _0x17e3bb){if(_0x467b3e['id']==null)continue;_0x4b9447[_0x2e1047(0x156)](_0x467b3e['id'],{..._0x467b3e,'children':[]});}const _0x13f78c=[];for(const _0x3bdb6f of _0x4b9447[_0x2e1047(0x152)]()){const _0x2631b6=_0x3bdb6f[_0x2e1047(0x155)];_0x2631b6!=null&&_0x2631b6!==''&&_0x4b9447['has'](_0x2631b6)?_0x4b9447[_0x2e1047(0x14d)](_0x2631b6)[_0x2e1047(0x15e)][_0x2e1047(0x158)](_0x3bdb6f):_0x13f78c['push'](_0x3bdb6f);}const _0x5dba39=_0x18c460=>{const _0x45a4df=_0x2e1047;_0x18c460[_0x45a4df(0x157)]((_0x11ef9c,_0x49c54f)=>{const _0x35c67e=_0x45a4df,_0x582b1b=_0x11ef9c[_0x35c67e(0x14e)]??0x0,_0x1b4d7d=_0x49c54f[_0x35c67e(0x14e)]??0x0,_0x652ce6=_0x4a9660===_0x35c67e(0x14f)?_0x1b4d7d-_0x582b1b:_0x582b1b-_0x1b4d7d;return _0x652ce6||Number(_0x11ef9c['id'])-Number(_0x49c54f['id']);});for(const _0x573432 of _0x18c460)if(_0x573432['children']?.['length'])_0x5dba39(_0x573432['children']);};return _0x5dba39(_0x13f78c),_0x13f78c;}export function flattenTree(_0x165768,_0x4e3a75,_0x23adc7=0x0,_0x578752=[]){const _0x5b67bf=_0x20c2;for(const _0x5c340b of _0x165768){const _0x380508=_0x5c340b['children']||[];_0x578752[_0x5b67bf(0x158)]({..._0x5c340b,'depth':_0x23adc7,'hasChildren':_0x380508[_0x5b67bf(0x150)]>0x0});if(_0x380508[_0x5b67bf(0x150)]&&_0x4e3a75['has'](_0x5c340b['id']))flattenTree(_0x380508,_0x4e3a75,_0x23adc7+0x1,_0x578752);}return _0x578752;}
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "vome-core",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "Vome framework — shared + Bun/Elysia server + Vue admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "files": [
8
8
  "dist",
9
- "src/shared",
10
- "typings/admin"
9
+ "typings"
11
10
  ],
12
11
  "main": "./dist/index.js",
13
12
  "types": "./dist/index.d.ts",
@@ -28,7 +27,7 @@
28
27
  "default": "./dist/config/index.js"
29
28
  },
30
29
  "./ai": {
31
- "types": "./dist/ai.d.ts",
30
+ "types": "./dist/ai/index.d.ts",
32
31
  "import": "./dist/ai/index.js",
33
32
  "default": "./dist/ai/index.js"
34
33
  },
@@ -96,6 +95,9 @@
96
95
  "agent": [
97
96
  "./dist/agent/index.d.ts"
98
97
  ],
98
+ "ai": [
99
+ "./dist/ai/index.d.ts"
100
+ ],
99
101
  "admin/service": [
100
102
  "./dist/admin/service/index.d.ts"
101
103
  ],
@@ -124,7 +126,7 @@
124
126
  }
125
127
  },
126
128
  "scripts": {
127
- "build:server": "bun build ./src/index.ts ./src/server/index.ts ./src/config/index.ts ./src/ai/index.ts ./src/agent/index.ts --outdir ./dist --target bun --format esm --external elysia --external reflect-metadata --external drizzle-orm --external drizzle-zod --external @elysiajs/openapi --external @bogeychan/elysia-logger --external pino --external pino-pretty && tsc -p tsconfig.build.json && printf \"%s\\n\" \"export * from './src/index'\" > dist/index.d.ts && mkdir -p dist/server && printf \"%s\\n\" \"export * from '../src/server/index'\" > dist/server/index.d.ts && mkdir -p dist/config && printf \"%s\\n\" \"export * from '../src/config/index'\" > dist/config/index.d.ts && mkdir -p dist/agent && printf \"%s\\n\" \"export * from '../src/agent/index'\" > dist/agent/index.d.ts && printf \"%s\\n\" \"export * from './src/ai/index'\" > dist/ai.d.ts",
129
+ "build:server": "bun build ./src/index.ts ./src/server/index.ts ./src/config/index.ts ./src/ai/index.ts ./src/agent/index.ts --outdir ./dist --target bun --format esm --external elysia --external reflect-metadata --external drizzle-orm --external drizzle-zod --external @elysiajs/openapi --external @bogeychan/elysia-logger --external pino --external pino-pretty && tsc -p tsconfig.build.json && bun scripts/flatten-server-dts.ts",
128
130
  "build:client": "bun scripts/build-client.ts",
129
131
  "build:admin": "bun scripts/build-admin.ts",
130
132
  "build": "rm -rf dist && bun run build:server && bun run build:client && bun run build:admin",
@@ -0,0 +1,29 @@
1
+ /** save:有 id 则更新;insert:只插入 */
2
+ export type CrudUpsertMode = 'save' | 'insert'
3
+
4
+ /** modifyBefore / modifyAfter 操作类型 */
5
+ export type CrudModifyType = 'add' | 'update' | 'delete'
6
+
7
+ /** add() 可选覆盖 */
8
+ export type CrudWriteOptions = {
9
+ upsert?: CrudUpsertMode
10
+ }
11
+
12
+ /** 查询回收站范围 */
13
+ export type CrudTrashQueryOptions = {
14
+ withTrashed?: boolean
15
+ onlyTrashed?: boolean
16
+ softDelete?: boolean
17
+ }
18
+
19
+ /** 删除选项 */
20
+ export type CrudDeleteOptions = {
21
+ force?: boolean
22
+ softDelete?: boolean
23
+ }
24
+
25
+ /** vome.crud 运行时配置 */
26
+ export type CrudConfig = {
27
+ upsert?: CrudUpsertMode
28
+ softDelete?: boolean
29
+ }
@@ -0,0 +1,18 @@
1
+ /** 分页参数 */
2
+ export type PageQuery = {
3
+ /** 页码,从 1 开始,默认 1 */
4
+ page?: number
5
+ /** 每页条数,默认 20 */
6
+ size?: number
7
+ }
8
+
9
+ export type PagePagination = {
10
+ page: number
11
+ size: number
12
+ total: number
13
+ }
14
+
15
+ export type PageResult<T = unknown> = {
16
+ list: T[]
17
+ pagination: PagePagination
18
+ }
@@ -0,0 +1,6 @@
1
+ export type ScanOptions = {
2
+ /** 宿主项目根目录,默认 process.cwd() */
3
+ cwd?: string
4
+ /** 扩展名过滤,默认 .ts / .tsx */
5
+ ext?: RegExp
6
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 宽松对象类型:在固定字段基础上允许追加任意属性
3
+ */
4
+ export type Loose<T extends object> = T & { [key: string]: any }
@@ -0,0 +1,10 @@
1
+ /** ALS 存储的请求上下文数据 */
2
+ export interface ContextData {
3
+ requestId: string
4
+ method: string
5
+ path: string
6
+ /** 客户端 IP(优先代理头,无则空串) */
7
+ ip: string
8
+ startTime: number
9
+ [key: string]: unknown
10
+ }
@@ -0,0 +1,42 @@
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
+
13
+ export type MarketSeatTicketPayload = {
14
+ v: 1
15
+ kind: 'seat'
16
+ marketId: string
17
+ siteId: string
18
+ unlimited: boolean
19
+ allowed: boolean
20
+ seats: number | null
21
+ used: number | null
22
+ issuedAt: string
23
+ expireAt: string
24
+ reason?: string | null
25
+ }
26
+
27
+ export type MarketSeatTicket = {
28
+ payload: MarketSeatTicketPayload
29
+ sig: string
30
+ }
31
+
32
+ /** core 内置席位调度默认(宿主可用 VomeConfig.market 覆盖) */
33
+ export const MARKET_SEAT_DEFAULTS = {
34
+ /** 付费购买默认席位数 */
35
+ baseSeats: 3,
36
+ /** 运行中心跳间隔 */
37
+ heartbeatIntervalMs: 12 * 60 * 60 * 1000,
38
+ /** 无心跳自动释放占用(天) */
39
+ staleDays: 30,
40
+ /** 签发 ticket 有效期(短) */
41
+ ticketTtlMs: 15 * 60 * 1000,
42
+ } as const
@@ -0,0 +1,55 @@
1
+ /** 市场签发包定价 */
2
+ export type MarketPricing = 'free' | 'paid'
3
+
4
+ /** market.sig 签名载荷(稳定字段,勿随意增删) */
5
+ export type MarketSigPayload = {
6
+ marketId: string
7
+ pricing: MarketPricing
8
+ version: string
9
+ key: string
10
+ contentHash: string
11
+ }
12
+
13
+ /** 离线 / 联网 license 载荷 */
14
+ export type MarketLicensePayload = {
15
+ v: 1
16
+ marketId: string
17
+ buyerId: string
18
+ issuedAt: string
19
+ /** null = 永久 */
20
+ expireAt: string | null
21
+ orderNo?: string | null
22
+ /** 联网签发时必填,须与请求 nonce 一致 */
23
+ nonce?: string | null
24
+ pluginName?: string | null
25
+ }
26
+
27
+ /** 磁盘 / 接口中的 license 文件结构 */
28
+ export type MarketLicenseFile = {
29
+ payload: MarketLicensePayload
30
+ sig: string
31
+ }
32
+
33
+ export type InstallGateKind =
34
+ | 'local'
35
+ | 'market-free'
36
+ | 'market-paid'
37
+
38
+ export type InstallGateResult = {
39
+ kind: InstallGateKind
40
+ marketId?: string
41
+ via?: 'file' | 'network'
42
+ }
43
+
44
+ export type AssertModuleInstallOptions = {
45
+ /** 覆盖 core 内置市场公钥(SPKI DER base64 或 PEM) */
46
+ marketPublicKey?: string | Uint8Array
47
+ /**
48
+ * 联网拉取「签名 license 原文」;core 只验签,不采信 boolean。
49
+ * 返回 null/空 = 无凭证。
50
+ */
51
+ fetchSignedLicense?: (
52
+ marketId: string,
53
+ nonce: string,
54
+ ) => Promise<string | MarketLicenseFile | null | undefined>
55
+ }
@@ -0,0 +1,64 @@
1
+ export type ModuleRouteDef = {
2
+ method: string
3
+ path: string
4
+ handler: string
5
+ perms?: string
6
+ summary?: string
7
+ }
8
+
9
+ export type ModuleMenuDef = {
10
+ name: string
11
+ router?: string
12
+ perms?: string
13
+ type?: number
14
+ icon?: string
15
+ orderNum?: number
16
+ appKey?: string
17
+ isShow?: boolean
18
+ }
19
+
20
+ export type ModuleManifest = {
21
+ name: string
22
+ key: string
23
+ version: string
24
+ description?: string
25
+ hook?: string
26
+ config?: Record<string, unknown>
27
+ singleton?: boolean
28
+ author?: string
29
+ logo?: string
30
+ readme?: string
31
+ routes?: ModuleRouteDef[]
32
+ menus?: ModuleMenuDef[]
33
+ /**
34
+ * 插件市场终身 ID(仅市场注入,作者勿手写)
35
+ * 无 market.sig 时忽略,按自研包安装
36
+ */
37
+ marketId?: string
38
+ /** 市场定价;与 market.sig 一致 */
39
+ pricing?: 'free' | 'paid'
40
+ }
41
+
42
+ export type ModuleHandlerCtx = {
43
+ body: unknown
44
+ query: Record<string, string>
45
+ params: Record<string, string>
46
+ headers: Headers
47
+ adminId?: number | string
48
+ }
49
+
50
+ export type ModuleHandler = (ctx: ModuleHandlerCtx) => unknown | Promise<unknown>
51
+
52
+ export type ModuleInstalled = ModuleManifest & {
53
+ path: string
54
+ hasServer: boolean
55
+ hasWeb: boolean
56
+ hasHook: boolean
57
+ /** 席位展示(core 注入);作者/免费 seatsLabel/usedLabel 为 / */
58
+ seat?: {
59
+ seatsLabel: string
60
+ usedLabel: string
61
+ blocked: boolean
62
+ tip?: string
63
+ }
64
+ }
@@ -0,0 +1,38 @@
1
+ export type PluginManifest = {
2
+ name: string
3
+ key: string
4
+ hook?: string
5
+ singleton?: boolean
6
+ version: string
7
+ description?: string
8
+ author?: string
9
+ logo?: string
10
+ readme?: string
11
+ config?: Record<string, unknown>
12
+ }
13
+
14
+ export type PluginInfo = PluginManifest & {
15
+ config?: Record<string, unknown>
16
+ }
17
+
18
+ export type PluginPayload = {
19
+ content: { type: 'comm' | 'module'; data: string }
20
+ tsContent: { type: 'ts'; data: string }
21
+ }
22
+
23
+ export type PluginCheckResult = {
24
+ type: 0 | 1 | 2 | 3
25
+ message: string
26
+ }
27
+
28
+ export type PluginServices = {
29
+ cache?: {
30
+ get: (key: string) => Promise<unknown>
31
+ set: (key: string, value: unknown) => Promise<unknown>
32
+ del: (key: string) => Promise<unknown>
33
+ }
34
+ pluginService?: {
35
+ getInstance: (key: string) => Promise<unknown>
36
+ invoke: (key: string, method: string, ...params: unknown[]) => Promise<unknown>
37
+ }
38
+ }
@@ -0,0 +1,34 @@
1
+ /** IoC 作用域 */
2
+ export type ScopeValue = 'singleton' | 'request' | 'prototype'
3
+
4
+ /** 可 new 的 Provider 类 */
5
+ export type ClassToken<T = unknown> = abstract new (...args: any[]) => T
6
+
7
+ /**
8
+ * 注入标识:类 / 字符串 id / symbol
9
+ * 字符串 id 用于跨模块按名注入
10
+ */
11
+ export type InjectionToken<T = unknown> = ClassToken<T> | string | symbol
12
+
13
+ export type InjectMeta = {
14
+ propertyKey: string | symbol
15
+ /** 依赖标识;与 resolve 二选一 */
16
+ token?: InjectionToken
17
+ /** 自定义解析(如 Repository) */
18
+ resolve?: () => unknown
19
+ }
20
+
21
+ export type ProviderMeta = {
22
+ /** 注册键(类或自定义 id) */
23
+ token: InjectionToken
24
+ /** 实际用来 new 的类 */
25
+ useClass: ClassToken
26
+ scope: ScopeValue
27
+ }
28
+
29
+ export type ProvideOptions = {
30
+ /** 自定义标识,可用 `@Inject('id')` / `Ioc.get('id')` */
31
+ id?: string | symbol
32
+ /** 作用域,默认 singleton */
33
+ scope?: ScopeValue
34
+ }
@@ -0,0 +1,6 @@
1
+ export type LoggingConfig = {
2
+ level?: string
3
+ transport?: 'console' | 'file'
4
+ dir?: string
5
+ maxDays?: number
6
+ }