vome-core 0.1.15 → 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 (151) 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/config/index.d.ts +10 -1
  26. package/dist/index.d.ts +13 -1
  27. package/dist/index.js +1 -1
  28. package/dist/server/index.d.ts +17 -1
  29. package/dist/server/index.js +1 -1
  30. package/dist/shared/excel.js +1 -1
  31. package/dist/shared/index.js +1 -1
  32. package/dist/shared/locale-json.js +1 -1
  33. package/dist/shared/tree.js +1 -1
  34. package/package.json +7 -5
  35. package/typings/comm/crud.ts +29 -0
  36. package/typings/comm/page.ts +18 -0
  37. package/typings/comm/scan.ts +6 -0
  38. package/typings/common.ts +4 -0
  39. package/typings/context/data.ts +10 -0
  40. package/typings/ext/market-seat.ts +42 -0
  41. package/typings/ext/market.ts +55 -0
  42. package/typings/ext/module.ts +64 -0
  43. package/typings/ext/plugin.ts +38 -0
  44. package/typings/ioc/metadata.ts +34 -0
  45. package/typings/logger/config.ts +6 -0
  46. package/typings/routing/crud.ts +162 -0
  47. package/typings/routing/eps.ts +72 -0
  48. package/typings/routing/meta.ts +63 -0
  49. package/typings/routing/register.ts +21 -0
  50. package/typings/routing/scan-context.ts +7 -0
  51. package/dist/ai.d.ts +0 -1
  52. package/dist/src/admin/config/plugin-dev.d.ts +0 -52
  53. package/dist/src/agent/index.d.ts +0 -3
  54. package/dist/src/config/index.d.ts +0 -10
  55. package/dist/src/index.d.ts +0 -12
  56. package/dist/src/server/index.d.ts +0 -17
  57. package/dist/src/shared/excel.d.ts +0 -23
  58. package/dist/src/shared/tree.d.ts +0 -18
  59. package/src/shared/excel.d.ts +0 -23
  60. package/src/shared/excel.ts +0 -123
  61. package/src/shared/index.ts +0 -30
  62. package/src/shared/locale-json.ts +0 -79
  63. package/src/shared/tree.d.ts +0 -18
  64. package/src/shared/tree.ts +0 -50
  65. /package/dist/{src/agent → agent}/constants.d.ts +0 -0
  66. /package/dist/{src/agent → agent}/protocol.d.ts +0 -0
  67. /package/dist/{src/agent → agent}/types.d.ts +0 -0
  68. /package/dist/{src/ai → ai}/adapters/anthropic-gemini.d.ts +0 -0
  69. /package/dist/{src/ai → ai}/adapters/auth-headers.d.ts +0 -0
  70. /package/dist/{src/ai → ai}/adapters/index.d.ts +0 -0
  71. /package/dist/{src/ai → ai}/adapters/openai-compatible.d.ts +0 -0
  72. /package/dist/{src/ai → ai}/call-log-helpers.d.ts +0 -0
  73. /package/dist/{src/ai → ai}/index.d.ts +0 -0
  74. /package/dist/{src/ai → ai}/normalize.d.ts +0 -0
  75. /package/dist/{src/ai → ai}/sse.d.ts +0 -0
  76. /package/dist/{src/ai → ai}/transport.d.ts +0 -0
  77. /package/dist/{src/ai → ai}/types.d.ts +0 -0
  78. /package/dist/{src/auth → auth}/define-macro.d.ts +0 -0
  79. /package/dist/{src/auth → auth}/index.d.ts +0 -0
  80. /package/dist/{src/comm → comm}/daily-log.d.ts +0 -0
  81. /package/dist/{src/comm → comm}/env.d.ts +0 -0
  82. /package/dist/{src/comm → comm}/format-time.d.ts +0 -0
  83. /package/dist/{src/comm → comm}/merge.d.ts +0 -0
  84. /package/dist/{src/comm → comm}/scan.d.ts +0 -0
  85. /package/dist/{src/comm → comm}/startBanner.d.ts +0 -0
  86. /package/dist/{src/core → core}/app.d.ts +0 -0
  87. /package/dist/{src/core → core}/config.d.ts +0 -0
  88. /package/dist/{src/core → core}/context/index.d.ts +0 -0
  89. /package/dist/{src/core → core}/host-infra.d.ts +0 -0
  90. /package/dist/{src/core → core}/index.d.ts +0 -0
  91. /package/dist/{src/core → core}/plugins/async-context.d.ts +0 -0
  92. /package/dist/{src/core → core}/plugins/error.d.ts +0 -0
  93. /package/dist/{src/core → core}/plugins/logging.d.ts +0 -0
  94. /package/dist/{src/core → core}/plugins/openapi.d.ts +0 -0
  95. /package/dist/{src/core → core}/vome-config.d.ts +0 -0
  96. /package/dist/{src/ext → ext}/base-plugin.d.ts +0 -0
  97. /package/dist/{src/ext → ext}/host-identity.d.ts +0 -0
  98. /package/dist/{src/ext → ext}/index.d.ts +0 -0
  99. /package/dist/{src/ext → ext}/load-plugin.d.ts +0 -0
  100. /package/dist/{src/ext → ext}/market-crypto.d.ts +0 -0
  101. /package/dist/{src/ext → ext}/market-package.d.ts +0 -0
  102. /package/dist/{src/ext → ext}/market-runtime.d.ts +0 -0
  103. /package/dist/{src/ext → ext}/market-seat.d.ts +0 -0
  104. /package/dist/{src/ext → ext}/micro-apps.d.ts +0 -0
  105. /package/dist/{src/ext → ext}/module-gateway.d.ts +0 -0
  106. /package/dist/{src/ext → ext}/module-install-gate.d.ts +0 -0
  107. /package/dist/{src/ext → ext}/module-install.d.ts +0 -0
  108. /package/dist/{src/ext → ext}/module-registry.d.ts +0 -0
  109. /package/dist/{src/ext → ext}/path.d.ts +0 -0
  110. /package/dist/{src/ioc → ioc}/container.d.ts +0 -0
  111. /package/dist/{src/ioc → ioc}/decorators.d.ts +0 -0
  112. /package/dist/{src/ioc → ioc}/host.d.ts +0 -0
  113. /package/dist/{src/ioc → ioc}/index.d.ts +0 -0
  114. /package/dist/{src/ioc → ioc}/metadata.d.ts +0 -0
  115. /package/dist/{src/ioc → ioc}/scope.d.ts +0 -0
  116. /package/dist/{src/logger → logger}/bootstrap.d.ts +0 -0
  117. /package/dist/{src/logger → logger}/exception.d.ts +0 -0
  118. /package/dist/{src/logger → logger}/index.d.ts +0 -0
  119. /package/dist/{src/logger → logger}/logger.d.ts +0 -0
  120. /package/dist/{src/logger → logger}/pino.d.ts +0 -0
  121. /package/dist/{src/orm → orm}/base-columns.d.ts +0 -0
  122. /package/dist/{src/orm → orm}/column-comments.d.ts +0 -0
  123. /package/dist/{src/orm → orm}/crud-config.d.ts +0 -0
  124. /package/dist/{src/orm → orm}/crud-register.d.ts +0 -0
  125. /package/dist/{src/orm → orm}/data-scope.d.ts +0 -0
  126. /package/dist/{src/orm → orm}/db-store.d.ts +0 -0
  127. /package/dist/{src/orm → orm}/declarative-select.d.ts +0 -0
  128. /package/dist/{src/orm → orm}/entity-schema.d.ts +0 -0
  129. /package/dist/{src/orm → orm}/field-ref.d.ts +0 -0
  130. /package/dist/{src/orm → orm}/import-excel.d.ts +0 -0
  131. /package/dist/{src/orm → orm}/index.d.ts +0 -0
  132. /package/dist/{src/orm → orm}/join-tables.d.ts +0 -0
  133. /package/dist/{src/orm → orm}/query-builder.d.ts +0 -0
  134. /package/dist/{src/orm → orm}/query-op.d.ts +0 -0
  135. /package/dist/{src/orm → orm}/repository.d.ts +0 -0
  136. /package/dist/{src/orm → orm}/service.d.ts +0 -0
  137. /package/dist/{src/orm → orm}/tenant.d.ts +0 -0
  138. /package/dist/{src/routing → routing}/base.d.ts +0 -0
  139. /package/dist/{src/routing → routing}/context.d.ts +0 -0
  140. /package/dist/{src/routing → routing}/crud-summary.d.ts +0 -0
  141. /package/dist/{src/routing → routing}/decorators.d.ts +0 -0
  142. /package/dist/{src/routing → routing}/eps.d.ts +0 -0
  143. /package/dist/{src/routing → routing}/index.d.ts +0 -0
  144. /package/dist/{src/routing → routing}/metadata.d.ts +0 -0
  145. /package/dist/{src/routing → routing}/openapi-tags.d.ts +0 -0
  146. /package/dist/{src/routing → routing}/path-utils.d.ts +0 -0
  147. /package/dist/{src/routing → routing}/perm.d.ts +0 -0
  148. /package/dist/{src/routing → routing}/public-routes.d.ts +0 -0
  149. /package/dist/{src/routing → routing}/register.d.ts +0 -0
  150. /package/dist/{src/shared → shared}/index.d.ts +0 -0
  151. /package/dist/{src/shared → shared}/locale-json.d.ts +0 -0
@@ -1 +1 @@
1
- function _0x3ce8(){const _0x5978b5=['yw9Hx3rVx3nOzwv0','EgXZEa','D3jPDgu','mtaXmdG2y2fuEw1h','ntm5nZyWz2jvzxvu','BgfIzwW','DxbKyxrLvgLTzq','DgvUyw50swq','BgvUz3rO','mtu2ntiZnxDHrevcBq','BwfW','odfZrNjrDxO','C2v0','mJGZndbzweT1vLm','yM9VA19HChbLBMrFC2HLzxq','y3jLyxrLvgLTzq','zw5KC1DPDgG','DhjPBq','mZC5nJu2EurwswjV','lNHSC3G','CMvHza','yM9VA19UzxC','DxrPBhm','odiXndi5mwL0Bg1LtG','C3rYAw5N','odm2nunbqLvqBG','nJy2wNj3uhHj','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','u2HLzxrZ','ChvZAa','ChjVCa'];_0x3ce8=function(){return _0x5978b5;};return _0x3ce8();}const _0x13ee58=_0x1de9;(function(_0x578ab0,_0x46972e){const _0x29e629=_0x1de9,_0x2679ef=_0x578ab0();while(!![]){try{const _0x4c14c6=-parseInt(_0x29e629(0x139))/0x1+-parseInt(_0x29e629(0x129))/0x2+-parseInt(_0x29e629(0x141))/0x3*(parseInt(_0x29e629(0x143))/0x4)+-parseInt(_0x29e629(0x13f))/0x5+-parseInt(_0x29e629(0x131))/0x6*(-parseInt(_0x29e629(0x130))/0x7)+-parseInt(_0x29e629(0x13a))/0x8+parseInt(_0x29e629(0x12e))/0x9;if(_0x4c14c6===_0x46972e)break;else _0x2679ef['push'](_0x2679ef['shift']());}catch(_0x47f792){_0x2679ef['push'](_0x2679ef['shift']());}}}(_0x3ce8,0x2c95a));import*as _0x4b71fd from'xlsx';export const IMPORT_SKIP_FIELDS=['id',_0x13ee58(0x126),_0x13ee58(0x13c),'deletedAt',_0x13ee58(0x13d)];export function isImportSkipField(_0x555e1f){return IMPORT_SKIP_FIELDS['includes'](_0x555e1f);}export function buildExcelBuffer(_0x1f74fd,_0x310281,_0x303f8){const _0x1e989d=_0x13ee58,_0x18229d=_0x1f74fd[_0x1e989d(0x140)](_0x493d9b=>_0x493d9b[_0x1e989d(0x13b)]||_0x493d9b[_0x1e989d(0x135)]),_0x1fdc3e=_0x310281[_0x1e989d(0x140)](_0x1bdf69=>_0x1f74fd[_0x1e989d(0x140)](_0xd3cb66=>{const _0x206bb4=_0x1e989d;if(_0x303f8)return _0x303f8(_0xd3cb66[_0x206bb4(0x135)],_0x1bdf69);const _0x432d8a=_0x1bdf69[_0xd3cb66[_0x206bb4(0x135)]];if(_0x432d8a==null)return'';return String(_0x432d8a);})),_0x3f0df2=_0x4b71fd[_0x1e989d(0x12d)][_0x1e989d(0x136)]([_0x18229d,..._0x1fdc3e]),_0x467b1c=_0x4b71fd[_0x1e989d(0x12d)][_0x1e989d(0x12c)]();return _0x4b71fd[_0x1e989d(0x12d)][_0x1e989d(0x144)](_0x467b1c,_0x3f0df2,'Sheet1'),_0x4b71fd[_0x1e989d(0x138)](_0x467b1c,{'bookType':_0x1e989d(0x137),'type':'array'});}export function buildImportTemplateBuffer(_0x53bfb0){return buildExcelBuffer(_0x53bfb0,[]);}export function parseExcelBuffer(_0x23eebc,_0xa611a0){const _0x30a15b=_0x13ee58,_0x45944d=_0x4b71fd[_0x30a15b(0x12b)](_0x23eebc,{'type':'array','cellDates':!![]}),_0x51b46d=_0x45944d['SheetNames'][0x0];if(!_0x51b46d)return[];const _0xb60815=_0x45944d[_0x30a15b(0x133)][_0x51b46d];if(!_0xb60815)return[];const _0xf4a446=_0x4b71fd[_0x30a15b(0x12d)]['sheet_to_json'](_0xb60815,{'header':0x1,'defval':'','raw':![]});if(!_0xf4a446[_0x30a15b(0x13e)])return[];const _0x1bb8d3=(_0xf4a446[0x0]||[])['map'](_0x4bff80=>String(_0x4bff80??'')[_0x30a15b(0x128)]()),_0x41b508=new Map();if(_0xa611a0?.[_0x30a15b(0x13e)])for(const _0x2a60a4 of _0xa611a0){_0x41b508[_0x30a15b(0x142)](_0x2a60a4['label'][_0x30a15b(0x128)](),_0x2a60a4[_0x30a15b(0x135)]),_0x41b508[_0x30a15b(0x142)](_0x2a60a4[_0x30a15b(0x135)],_0x2a60a4[_0x30a15b(0x135)]);}const _0x3c9bcf=_0x1bb8d3[_0x30a15b(0x140)](_0x44ac26=>{if(!_0x44ac26)return'';return _0x41b508['get'](_0x44ac26)||_0x44ac26;}),_0x1541db=[];for(let _0x261bc1=0x1;_0x261bc1<_0xf4a446[_0x30a15b(0x13e)];_0x261bc1++){const _0x5820b8=_0xf4a446[_0x261bc1]||[],_0x248dea={};let _0x39d511=!![];for(let _0x5b28a8=0x0;_0x5b28a8<_0x3c9bcf[_0x30a15b(0x13e)];_0x5b28a8++){const _0x290a34=_0x3c9bcf[_0x5b28a8];if(!_0x290a34)continue;let _0x28dbe3=_0x5820b8[_0x5b28a8];if(_0x28dbe3==null||_0x28dbe3===''){_0x248dea[_0x290a34]=_0x28dbe3==null?null:'';continue;}_0x39d511=![],typeof _0x28dbe3===_0x30a15b(0x12f)?_0x248dea[_0x290a34]=_0x28dbe3[_0x30a15b(0x128)]():_0x248dea[_0x290a34]=_0x28dbe3;}if(!_0x39d511)_0x1541db[_0x30a15b(0x134)](_0x248dea);}return _0x1541db;}function _0x1de9(_0x37eea6,_0x16c078){_0x37eea6=_0x37eea6-0x126;const _0x3ce881=_0x3ce8();let _0x1de955=_0x3ce881[_0x37eea6];if(_0x1de9['jEfaQJ']===undefined){var _0x110429=function(_0x5c3fc1){const _0x593c63='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b71fd='',_0x555e1f='';for(let _0x1f74fd=0x0,_0x310281,_0x303f8,_0x18229d=0x0;_0x303f8=_0x5c3fc1['charAt'](_0x18229d++);~_0x303f8&&(_0x310281=_0x1f74fd%0x4?_0x310281*0x40+_0x303f8:_0x303f8,_0x1f74fd++%0x4)?_0x4b71fd+=String['fromCharCode'](0xff&_0x310281>>(-0x2*_0x1f74fd&0x6)):0x0){_0x303f8=_0x593c63['indexOf'](_0x303f8);}for(let _0x1fdc3e=0x0,_0x3f0df2=_0x4b71fd['length'];_0x1fdc3e<_0x3f0df2;_0x1fdc3e++){_0x555e1f+='%'+('00'+_0x4b71fd['charCodeAt'](_0x1fdc3e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x555e1f);};_0x1de9['rnzDvs']=_0x110429,_0x1de9['IluHwS']={},_0x1de9['jEfaQJ']=!![];}const _0x12baba=_0x3ce881[0x0],_0x22a8dc=_0x37eea6+_0x12baba,_0x33d473=_0x1de9['IluHwS'][_0x22a8dc];return!_0x33d473?(_0x1de955=_0x1de9['rnzDvs'](_0x1de955),_0x1de9['IluHwS'][_0x22a8dc]=_0x1de955):_0x1de955=_0x33d473,_0x1de955;}export function excelFilename(_0x2da8f0){const _0x58f640=_0x13ee58;return _0x2da8f0[_0x58f640(0x127)](_0x58f640(0x12a))?_0x2da8f0:_0x2da8f0+'.xlsx';}export function excelResponseHeaders(_0x15bb44){const _0x108084=_0x13ee58,_0x3c6767=excelFilename(_0x15bb44);return{'Content-Type':_0x108084(0x132),'Content-Disposition':'attachment;\x20filename*=UTF-8\x27\x27'+encodeURIComponent(_0x3c6767)};}
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(_0x33dbdb,_0x1d3a54){var _0x22fd4e=_0x26f7,_0x5ebaa0=_0x33dbdb();while(!![]){try{var _0x2937f8=parseInt(_0x22fd4e(0x174))/0x1+-parseInt(_0x22fd4e(0x17c))/0x2*(-parseInt(_0x22fd4e(0x17b))/0x3)+-parseInt(_0x22fd4e(0x176))/0x4*(parseInt(_0x22fd4e(0x179))/0x5)+-parseInt(_0x22fd4e(0x17a))/0x6*(parseInt(_0x22fd4e(0x17f))/0x7)+parseInt(_0x22fd4e(0x178))/0x8*(-parseInt(_0x22fd4e(0x17d))/0x9)+-parseInt(_0x22fd4e(0x177))/0xa*(-parseInt(_0x22fd4e(0x175))/0xb)+-parseInt(_0x22fd4e(0x180))/0xc*(-parseInt(_0x22fd4e(0x17e))/0xd);if(_0x2937f8===_0x1d3a54)break;else _0x5ebaa0['push'](_0x5ebaa0['shift']());}catch(_0x3db61d){_0x5ebaa0['push'](_0x5ebaa0['shift']());}}}(_0x2fd0,0xb9325));export{merge}from'../comm/merge';export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';function _0x26f7(_0xe06a61,_0x1c3455){_0xe06a61=_0xe06a61-0x174;var _0x2fd0c2=_0x2fd0();var _0x26f71a=_0x2fd0c2[_0xe06a61];if(_0x26f7['gyTgHX']===undefined){var _0x5b8066=function(_0x4b362e){var _0x5f0cfb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x45c961='',_0x47b735='';for(var _0x5bb4e7=0x0,_0x830c66,_0x194036,_0x1892b9=0x0;_0x194036=_0x4b362e['charAt'](_0x1892b9++);~_0x194036&&(_0x830c66=_0x5bb4e7%0x4?_0x830c66*0x40+_0x194036:_0x194036,_0x5bb4e7++%0x4)?_0x45c961+=String['fromCharCode'](0xff&_0x830c66>>(-0x2*_0x5bb4e7&0x6)):0x0){_0x194036=_0x5f0cfb['indexOf'](_0x194036);}for(var _0x364bd3=0x0,_0x2a0050=_0x45c961['length'];_0x364bd3<_0x2a0050;_0x364bd3++){_0x47b735+='%'+('00'+_0x45c961['charCodeAt'](_0x364bd3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x47b735);};_0x26f7['SeQnnN']=_0x5b8066,_0x26f7['MRwLKP']={},_0x26f7['gyTgHX']=!![];}var _0x487221=_0x2fd0c2[0x0],_0x1c0af9=_0xe06a61+_0x487221,_0x3071f2=_0x26f7['MRwLKP'][_0x1c0af9];return!_0x3071f2?(_0x26f71a=_0x26f7['SeQnnN'](_0x26f71a),_0x26f7['MRwLKP'][_0x1c0af9]=_0x26f71a):_0x26f71a=_0x3071f2,_0x26f71a;}export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';export{flattenLocale,unflattenLocale,hashLocaleJson,extractJsonObject}from'./locale-json';function _0x2fd0(){var _0x57741a=['ndi4mZC2mfLIC2HIyG','mte3wufqDgPc','nZe4mJHdq1DACxC','nJqYnJLLBLvrv1K','mJzSteHWtNu','n0PHzK5Kva','nJuZnJuZmMvPrgnxua','nZy0ntm4q2jdrNrS','nJGWmJryzfjvwfu','ndi2nhPjvKzjCG','mZqWA1jXq0z0','odi0tKryvKvL','ntG5nufrsenizq'];_0x2fd0=function(){return _0x57741a;};return _0x2fd0();}
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(_0xf08b7f,_0x11280f){const _0x5b94e5=_0x5c87,_0x5f4c30=_0xf08b7f();while(!![]){try{const _0x213eab=-parseInt(_0x5b94e5(0x9d))/0x1+-parseInt(_0x5b94e5(0xb5))/0x2+parseInt(_0x5b94e5(0xb8))/0x3*(parseInt(_0x5b94e5(0xb2))/0x4)+-parseInt(_0x5b94e5(0xb4))/0x5+-parseInt(_0x5b94e5(0xb6))/0x6+parseInt(_0x5b94e5(0xab))/0x7*(parseInt(_0x5b94e5(0xa2))/0x8)+parseInt(_0x5b94e5(0x9f))/0x9;if(_0x213eab===_0x11280f)break;else _0x5f4c30['push'](_0x5f4c30['shift']());}catch(_0x158a75){_0x5f4c30['push'](_0x5f4c30['shift']());}}}(_0x33af,0xa42d0));import{createHash}from'node:crypto';function _0x5c87(_0x5c4351,_0x355ffe){_0x5c4351=_0x5c4351-0x9c;const _0x33af08=_0x33af();let _0x5c8796=_0x33af08[_0x5c4351];if(_0x5c87['KclhOA']===undefined){var _0x45bbdd=function(_0x52f538){const _0x4d92f4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x399a0f='',_0x3056df='';for(let _0x4fe395=0x0,_0x3cbc74,_0x5d2de0,_0xbe1b7=0x0;_0x5d2de0=_0x52f538['charAt'](_0xbe1b7++);~_0x5d2de0&&(_0x3cbc74=_0x4fe395%0x4?_0x3cbc74*0x40+_0x5d2de0:_0x5d2de0,_0x4fe395++%0x4)?_0x399a0f+=String['fromCharCode'](0xff&_0x3cbc74>>(-0x2*_0x4fe395&0x6)):0x0){_0x5d2de0=_0x4d92f4['indexOf'](_0x5d2de0);}for(let _0x539a37=0x0,_0x459480=_0x399a0f['length'];_0x539a37<_0x459480;_0x539a37++){_0x3056df+='%'+('00'+_0x399a0f['charCodeAt'](_0x539a37)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3056df);};_0x5c87['DkfyWg']=_0x45bbdd,_0x5c87['kMpjwn']={},_0x5c87['KclhOA']=!![];}const _0xc82126=_0x33af08[0x0],_0x5d03ad=_0x5c4351+_0xc82126,_0x20f42c=_0x5c87['kMpjwn'][_0x5d03ad];return!_0x20f42c?(_0x5c8796=_0x5c87['DkfyWg'](_0x5c8796),_0x5c87['kMpjwn'][_0x5d03ad]=_0x5c8796):_0x5c8796=_0x20f42c,_0x5c8796;}function _0x33af(){const _0x363256=['CgfYC2u','mtuYmdq4nZb1BwPvzKW','yxnZAwDU','Aw5KzxHpzG','oenqwvrHEG','Agv4','B2jQzwn0','C3bSAxq','BgvUz3rO','BgfZDeLUzgv4t2y','AM9PBG','AxnbCNjHEq','C29YDa','ndK5ndaZmvLRDwLcrq','quKG6l+u5zUE5PEG5Rov6kEJ5P6q5lI6iePtt04G5A+56lgH','zgLNzxn0','DxbKyxrL','zw50CMLLCW','BwfW','C2XPy2u','nevQqwTHvW','DhjPBq','nduZndC5menWBK5Tva','mti0ota2nhL3BvbduG','mJuZmZCYmKfAzvLKyq','A2v5CW','mZq0otC1mw9etKfsEq','zMLSDgvY','oti2ntm5ze1utgrk'];_0x33af=function(){return _0x363256;};return _0x33af();}export function flattenLocale(_0x399a0f,_0x3056df=''){const _0x542344=_0x5c87,_0x4fe395={};for(const [_0x3cbc74,_0x5d2de0]of Object[_0x542344(0xaf)](_0x399a0f)){const _0xbe1b7=_0x3056df?_0x3056df+'.'+_0x3cbc74:_0x3cbc74;if(_0x5d2de0!=null&&typeof _0x5d2de0===_0x542344(0xa4)&&!Array[_0x542344(0xa9)](_0x5d2de0))Object[_0x542344(0xa0)](_0x4fe395,flattenLocale(_0x5d2de0,_0xbe1b7));else{if(typeof _0x5d2de0==='string')_0x4fe395[_0xbe1b7]=_0x5d2de0;else _0x5d2de0!=null&&(_0x4fe395[_0xbe1b7]=String(_0x5d2de0));}}return _0x4fe395;}export function unflattenLocale(_0x539a37){const _0x490be6=_0x5c87,_0x459480={};for(const [_0x30368a,_0x42811b]of Object[_0x490be6(0xaf)](_0x539a37)){const _0x58cde2=_0x30368a[_0x490be6(0xa5)]('.')[_0x490be6(0x9c)](Boolean);if(!_0x58cde2[_0x490be6(0xa6)])continue;let _0x5e2dcc=_0x459480;for(let _0x2e19e9=0x0;_0x2e19e9<_0x58cde2[_0x490be6(0xa6)]-0x1;_0x2e19e9++){const _0x34c2b1=_0x58cde2[_0x2e19e9],_0x22aeb9=_0x5e2dcc[_0x34c2b1];(!_0x22aeb9||typeof _0x22aeb9!=='object'||Array['isArray'](_0x22aeb9))&&(_0x5e2dcc[_0x34c2b1]={}),_0x5e2dcc=_0x5e2dcc[_0x34c2b1];}_0x5e2dcc[_0x58cde2[_0x58cde2[_0x490be6(0xa6)]-0x1]]=_0x42811b;}return _0x459480;}export function hashLocaleJson(_0x4bfaed){const _0x54e7d6=_0x5c87,_0x1b94c7=flattenLocale(_0x4bfaed),_0x6b688c=Object[_0x54e7d6(0xb7)](_0x1b94c7)[_0x54e7d6(0xaa)](),_0x247414=_0x6b688c[_0x54e7d6(0xb0)](_0x4bef84=>_0x4bef84+'='+_0x1b94c7[_0x4bef84])[_0x54e7d6(0xa8)]('\x0a');return createHash('sha256')[_0x54e7d6(0xae)](_0x247414)[_0x54e7d6(0xad)](_0x54e7d6(0xa3))[_0x54e7d6(0xb1)](0x0,0x20);}export function extractJsonObject(_0x22bb9c){const _0x34539b=_0x5c87,_0x211b31=String(_0x22bb9c||'')['trim']();if(!_0x211b31)throw new Error('AI\x20返回空内容');try{const _0x1234a9=JSON[_0x34539b(0x9e)](_0x211b31);if(_0x1234a9&&typeof _0x1234a9===_0x34539b(0xa4)&&!Array[_0x34539b(0xa9)](_0x1234a9))return _0x1234a9;}catch{}const _0x13b626=_0x211b31['match'](/```(?:json)?\s*([\s\S]*?)```/i);if(_0x13b626?.[0x1]){const _0x4f8395=JSON[_0x34539b(0x9e)](_0x13b626[0x1][_0x34539b(0xb3)]());if(_0x4f8395&&typeof _0x4f8395===_0x34539b(0xa4)&&!Array['isArray'](_0x4f8395))return _0x4f8395;}const _0x59a4aa=_0x211b31[_0x34539b(0xa1)]('{'),_0x1df33c=_0x211b31[_0x34539b(0xa7)]('}');if(_0x59a4aa>=0x0&&_0x1df33c>_0x59a4aa){const _0x593a9c=JSON['parse'](_0x211b31['slice'](_0x59a4aa,_0x1df33c+0x1));if(_0x593a9c&&typeof _0x593a9c===_0x34539b(0xa4)&&!Array[_0x34539b(0xa9)](_0x593a9c))return _0x593a9c;}throw new Error(_0x34539b(0xac));}
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 _0x32b10c=_0x4cb1;(function(_0x44de67,_0x4904ed){const _0x52042c=_0x4cb1,_0x369aa9=_0x44de67();while(!![]){try{const _0xab5877=-parseInt(_0x52042c(0x15c))/0x1+-parseInt(_0x52042c(0x15d))/0x2+-parseInt(_0x52042c(0x169))/0x3+parseInt(_0x52042c(0x160))/0x4*(-parseInt(_0x52042c(0x161))/0x5)+parseInt(_0x52042c(0x165))/0x6+-parseInt(_0x52042c(0x167))/0x7+parseInt(_0x52042c(0x164))/0x8;if(_0xab5877===_0x4904ed)break;else _0x369aa9['push'](_0x369aa9['shift']());}catch(_0x456ccc){_0x369aa9['push'](_0x369aa9['shift']());}}}(_0x14b9,0x3ede0));export function deepTree(_0x1cb33d,_0x1aa33e=_0x32b10c(0x16c)){const _0x59beab=_0x32b10c,_0x40f79e=new Map();for(const _0x440c93 of _0x1cb33d){if(_0x440c93['id']==null)continue;_0x40f79e[_0x59beab(0x162)](_0x440c93['id'],{..._0x440c93,'children':[]});}const _0x50df57=[];for(const _0x32e48e of _0x40f79e[_0x59beab(0x16a)]()){const _0x5f0bdc=_0x32e48e['parentId'];_0x5f0bdc!=null&&_0x5f0bdc!==''&&_0x40f79e[_0x59beab(0x166)](_0x5f0bdc)?_0x40f79e['get'](_0x5f0bdc)['children'][_0x59beab(0x15f)](_0x32e48e):_0x50df57[_0x59beab(0x15f)](_0x32e48e);}const _0x24ede4=_0x599be6=>{const _0x5c32ae=_0x59beab;_0x599be6[_0x5c32ae(0x15e)]((_0x293448,_0x11d2da)=>{const _0x4ef04b=_0x5c32ae,_0x435053=_0x293448['orderNum']??0x0,_0x1f825d=_0x11d2da['orderNum']??0x0,_0x23645f=_0x1aa33e===_0x4ef04b(0x163)?_0x1f825d-_0x435053:_0x435053-_0x1f825d;return _0x23645f||Number(_0x293448['id'])-Number(_0x11d2da['id']);});for(const _0x2af037 of _0x599be6)if(_0x2af037[_0x5c32ae(0x168)]?.[_0x5c32ae(0x16b)])_0x24ede4(_0x2af037[_0x5c32ae(0x168)]);};return _0x24ede4(_0x50df57),_0x50df57;}function _0x4cb1(_0x467fa0,_0xb0c57f){_0x467fa0=_0x467fa0-0x15c;const _0x14b9ff=_0x14b9();let _0x4cb113=_0x14b9ff[_0x467fa0];if(_0x4cb1['Jqrojj']===undefined){var _0x42b214=function(_0x55f31a){const _0x29ca1c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cb33d='',_0x1aa33e='';for(let _0x40f79e=0x0,_0x50df57,_0x24ede4,_0x440c93=0x0;_0x24ede4=_0x55f31a['charAt'](_0x440c93++);~_0x24ede4&&(_0x50df57=_0x40f79e%0x4?_0x50df57*0x40+_0x24ede4:_0x24ede4,_0x40f79e++%0x4)?_0x1cb33d+=String['fromCharCode'](0xff&_0x50df57>>(-0x2*_0x40f79e&0x6)):0x0){_0x24ede4=_0x29ca1c['indexOf'](_0x24ede4);}for(let _0x32e48e=0x0,_0x5f0bdc=_0x1cb33d['length'];_0x32e48e<_0x5f0bdc;_0x32e48e++){_0x1aa33e+='%'+('00'+_0x1cb33d['charCodeAt'](_0x32e48e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1aa33e);};_0x4cb1['Ylpvwq']=_0x42b214,_0x4cb1['WIkckT']={},_0x4cb1['Jqrojj']=!![];}const _0x3312ab=_0x14b9ff[0x0],_0x3e3955=_0x467fa0+_0x3312ab,_0x5780f1=_0x4cb1['WIkckT'][_0x3e3955];return!_0x5780f1?(_0x4cb113=_0x4cb1['Ylpvwq'](_0x4cb113),_0x4cb1['WIkckT'][_0x3e3955]=_0x4cb113):_0x4cb113=_0x5780f1,_0x4cb113;}export function flattenTree(_0x38d4dc,_0x8ee059,_0x352c04=0x0,_0x104959=[]){const _0x3f592d=_0x32b10c;for(const _0x2c4bed of _0x38d4dc){const _0x4d8aeb=_0x2c4bed[_0x3f592d(0x168)]||[];_0x104959[_0x3f592d(0x15f)]({..._0x2c4bed,'depth':_0x352c04,'hasChildren':_0x4d8aeb[_0x3f592d(0x16b)]>0x0});if(_0x4d8aeb[_0x3f592d(0x16b)]&&_0x8ee059[_0x3f592d(0x166)](_0x2c4bed['id']))flattenTree(_0x4d8aeb,_0x8ee059,_0x352c04+0x1,_0x104959);}return _0x104959;}function _0x14b9(){const _0x159beb=['mty2mZu3ofDyA2rQrG','y2HPBgrYzw4','mtqXmtmYourxAfvNCG','DMfSDwvZ','BgvUz3rO','yxnJ','ndC0odCYEKX1txzo','odm5ndG4z3f3DNrg','C29YDa','ChvZAa','mZiXmJC2uvH4EvrI','nvnoCxf0Ba','C2v0','zgvZyW','mti1ntiZmZzIBvfiC0W','mJiYodK2nhneALzRqG','AgfZ'];_0x14b9=function(){return _0x159beb;};return _0x14b9();}
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.15",
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
+ }
@@ -0,0 +1,162 @@
1
+ import type { ClassToken } from '../ioc/metadata'
2
+
3
+ /** 快速 CRUD 接口名(含回收站) */
4
+ export type CrudApi =
5
+ | 'add'
6
+ | 'delete'
7
+ | 'update'
8
+ | 'info'
9
+ | 'list'
10
+ | 'page'
11
+ | 'restore'
12
+
13
+ /**
14
+ * 字段引用(fieldEq / fieldLike / fieldArray / keyWordLikeFields)。
15
+ * - 裸名 `status` → `a.status`,请求参数名 = `status`
16
+ * - `b.providerId` → 参数名 = `providerId`
17
+ * - `e.id as roleId` → 筛 `e.id`,参数名 = `roleId`(短名冲突用 as,不用 requestParam)
18
+ */
19
+ export type QueryFieldRef =
20
+ | string
21
+ | {
22
+ /** 如 `status` / `b.providerId` / `e.id as roleId` */
23
+ column: string
24
+ /** 筛选项展示名;缺省用实体 columnComments / EPS comment */
25
+ label?: string
26
+ /** 业务字典 type.key;筛选项用其拉 options */
27
+ dict?: string
28
+ /** 有 dict 时默认 true(下拉多选);false 为单选 */
29
+ multiple?: boolean
30
+ /** true:后端仍按本字段筛选,admin 不自动构建筛控件 */
31
+ none?: boolean
32
+ }
33
+
34
+ /** 区间筛选精度 / 数字类型(告诉 admin 用什么控件) */
35
+ export type FieldRangeType =
36
+ | 'int'
37
+ | 'float'
38
+ | 'year'
39
+ | 'month'
40
+ | 'day'
41
+ | 'hour'
42
+ | 'minute'
43
+ | 'second'
44
+
45
+ /** 价格 / 时间等区间;min/max 为请求体参数名 */
46
+ export type QueryFieldRange = {
47
+ column: string
48
+ min: string
49
+ max: string
50
+ type: FieldRangeType
51
+ /** 覆盖实体注释,用于搜索 label / placeholder 前缀 */
52
+ label?: string
53
+ /** true:后端支持区间,admin 不自动出控件 */
54
+ none?: boolean
55
+ }
56
+
57
+ /** join 类型 */
58
+ export type QueryJoinType = 'join' | 'leftJoin' | 'innerJoin'
59
+
60
+ /**
61
+ * Join 配置(Drizzle pgTable)。
62
+ * - 主表固定别名 `a`
63
+ * - 联表必须显式:`entity` + `alias` + `type` + `condition`
64
+ */
65
+ export type QueryJoin = {
66
+ /** Drizzle pgTable */
67
+ entity: unknown
68
+ /** 联表别名,如 b / c / f;不可为 a */
69
+ alias: string
70
+ type: QueryJoinType
71
+ /** 等值条件,如 `a.skinId = b.id` */
72
+ condition: string
73
+ }
74
+
75
+ /** where / extend 上下文 */
76
+ export type QueryOpCtx = {
77
+ body: Record<string, unknown>
78
+ request: Request
79
+ }
80
+
81
+ /** where 返回:单条 SQL,或列表(undefined/false/null 自动丢弃) */
82
+ export type QueryWhereResult =
83
+ | unknown
84
+ | Array<unknown | undefined | false | null>
85
+
86
+ export type QueryWhereFn = (
87
+ ctx: QueryOpCtx,
88
+ ) => QueryWhereResult | Promise<QueryWhereResult>
89
+
90
+ /** extend 可改的查询句柄 */
91
+ export type QueryExtendQb = {
92
+ andWhere: (condition: unknown) => void
93
+ orderBy: (...orders: unknown[]) => void
94
+ }
95
+
96
+ export type QueryExtendFn = (
97
+ qb: QueryExtendQb,
98
+ ctx: QueryOpCtx,
99
+ ) => void | Promise<void>
100
+
101
+ /** page / list 查询配置 */
102
+ export type QueryOp = {
103
+ keyWordLikeFields?: string[]
104
+ fieldEq?: QueryFieldRef[]
105
+ fieldLike?: QueryFieldRef[]
106
+ /** PG 数组列包含查询(body 单值或数组);admin 筛选用输入框 */
107
+ fieldArray?: QueryFieldRef[]
108
+ /** 数字 / 时间区间(与 fieldEq 等并存,勿再在 where 里拆参) */
109
+ fieldRange?: QueryFieldRange[]
110
+ addOrderBy?: Record<string, 'asc' | 'desc'>
111
+ /**
112
+ * 声明式投影(有 join 时建议显式配置)。
113
+ * - `a.*`:主表全部列,结果键 = 驼峰字段名
114
+ * - `b.userName`:结果键 = `userName`(无需 as)
115
+ * - `e.name as roleName`:结果键 = `roleName`
116
+ */
117
+ select?: string[]
118
+ join?: QueryJoin[]
119
+ where?: QueryWhereFn
120
+ extend?: QueryExtendFn
121
+ }
122
+
123
+ export type InsertParamFn = (ctx: {
124
+ body?: unknown
125
+ request?: Request
126
+ }) => Record<string, unknown> | Promise<Record<string, unknown>>
127
+
128
+ /** 写操作前钩子(add / update / delete / restore) */
129
+ export type CrudBeforeFn = (ctx: {
130
+ body: Record<string, unknown>
131
+ request: Request
132
+ api: string
133
+ }) => void | Promise<void>
134
+
135
+ /** 控制器 / 路由中间件(Elysia onBeforeHandle) */
136
+ export type RouteMiddleware = (
137
+ ctx: Record<string, unknown>,
138
+ ) => unknown | Promise<unknown>
139
+
140
+ /**
141
+ * @Controller 快速 CRUD 选项(Drizzle 适配)
142
+ */
143
+ export type ControllerCrudOptions = {
144
+ api?: CrudApi[]
145
+ /** Drizzle pgTable,宿主挂载 Repository */
146
+ entity?: unknown
147
+ /** 业务 Service 类(须 @Provide,建议 extends BaseService) */
148
+ service?: ClassToken
149
+ /** 把 Service 方法挂成 POST /methodName */
150
+ serviceApis?: string[]
151
+ /** 写操作前改 body(add/update/delete/restore) */
152
+ before?: CrudBeforeFn
153
+ pageQueryOp?: QueryOp
154
+ listQueryOp?: QueryOp
155
+ insertParam?: InsertParamFn
156
+ infoIgnoreProperty?: string[]
157
+ /**
158
+ * 导入 upsert 唯一键(字段名数组)。
159
+ * 未配置时自动取实体 uniqueIndex / unique 约束。
160
+ */
161
+ importUniqueKeys?: string[]
162
+ }