@lovrabet/cli 1.1.26-beta.9 → 1.2.1-beta.3

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 (67) hide show
  1. package/lib/add-page/input-page-router.js +1 -1
  2. package/lib/add-page/main.js +1 -1
  3. package/lib/add-page/select-page-template.js +1 -1
  4. package/lib/api/api-doc-ui.js +1 -1
  5. package/lib/api/api-doc.js +1 -1
  6. package/lib/api/api-pull-ui.js +1 -1
  7. package/lib/api/fetch-model-list.js +1 -1
  8. package/lib/api/generate-api-file.js +1 -1
  9. package/lib/api/main.js +1 -1
  10. package/lib/api/pull-silent.js +1 -1
  11. package/lib/app-menu/app-menu-sync-ui.js +1 -1
  12. package/lib/app-menu/create-menu.js +1 -1
  13. package/lib/app-menu/get-local-pages.js +1 -1
  14. package/lib/app-menu/get-online-menu-list.js +1 -1
  15. package/lib/app-menu/use-get-online-menu-list.js +1 -1
  16. package/lib/app-menu/utils.js +1 -1
  17. package/lib/app-menu/valid-url.js +1 -1
  18. package/lib/app-menu-update-cdn/current-content.js +1 -0
  19. package/lib/app-menu-update-cdn/input-cdn-asset.js +1 -0
  20. package/lib/app-menu-update-cdn/main.js +1 -0
  21. package/lib/app-menu-update-cdn/update-menu-cdn-url.js +1 -0
  22. package/lib/auth/auth-server-ui.js +1 -1
  23. package/lib/auth/auth-server.js +1 -1
  24. package/lib/auth/constant.js +1 -1
  25. package/lib/auth/get-cookie.js +1 -1
  26. package/lib/auth/is-session-valid.js +1 -1
  27. package/lib/auth/logout.js +1 -1
  28. package/lib/cli.js +1 -1
  29. package/lib/cmd/build-watch.js +1 -1
  30. package/lib/cmd/build.js +1 -1
  31. package/lib/cmd/logs.js +1 -1
  32. package/lib/cmd/preview.js +1 -1
  33. package/lib/cmd/start.js +1 -1
  34. package/lib/config/config-help.js +1 -1
  35. package/lib/config/main.js +1 -1
  36. package/lib/constant/domain.js +1 -1
  37. package/lib/constant/env.js +1 -1
  38. package/lib/create-app/enhanced-guided-create.js +1 -1
  39. package/lib/create-app/format-elapsed.js +1 -1
  40. package/lib/create-app/main.js +1 -1
  41. package/lib/create-app/task-finished.js +1 -1
  42. package/lib/create-app/task-loading.js +1 -1
  43. package/lib/create-app/task-running.js +1 -1
  44. package/lib/create-app/task-time.js +1 -1
  45. package/lib/create-app/use-copy-project-template.js +1 -1
  46. package/lib/create-app/use-format-code.js +1 -1
  47. package/lib/create-app/use-install-dependencies.js +1 -1
  48. package/lib/help.js +1 -1
  49. package/lib/init/main.js +1 -1
  50. package/lib/mcp/cursor.js +1 -1
  51. package/lib/mcp/main.js +1 -1
  52. package/lib/types/index.js +1 -0
  53. package/lib/utils/check-sdk-version.js +1 -0
  54. package/lib/utils/config.js +1 -1
  55. package/lib/utils/copy-directory.js +1 -1
  56. package/lib/utils/http-client.js +1 -1
  57. package/lib/utils/logger.js +1 -1
  58. package/lib/utils/router-updater.js +1 -1
  59. package/lib/utils/sleep.js +1 -1
  60. package/lib/utils/template-replacer.js +1 -1
  61. package/package.json +3 -1
  62. package/templates/generate-api/api.ts.tpl +9 -4
  63. package/templates/rules/lovrabet_rules.mdc.tpl +90 -34
  64. package/lib/app-menu-cdn-version/app-menu-sync-cdn-version-ui.js +0 -1
  65. package/lib/app-menu-cdn-version/cdn-url-compare-table.js +0 -1
  66. package/lib/app-menu-cdn-version/update-menu-cdn-url.js +0 -1
  67. /package/lib/{app-menu-cdn-version → app-menu-update-cdn}/types.js +0 -0
@@ -0,0 +1 @@
1
+ const a54_0x39d9e7=a54_0x7248;function a54_0x7248(_0x31c9ae,_0x4741c7){_0x31c9ae=_0x31c9ae-0x8c;const _0x22146b=a54_0x2214();let _0x7248df=_0x22146b[_0x31c9ae];return _0x7248df;}(function(_0x426a7a,_0x3498c3){const _0x5345c1=a54_0x7248,_0xfe4abf=_0x426a7a();while(!![]){try{const _0xb43e92=parseInt(_0x5345c1(0x9b))/0x1*(parseInt(_0x5345c1(0xa6))/0x2)+-parseInt(_0x5345c1(0xa5))/0x3*(parseInt(_0x5345c1(0x9e))/0x4)+-parseInt(_0x5345c1(0x93))/0x5*(-parseInt(_0x5345c1(0xa9))/0x6)+parseInt(_0x5345c1(0xa7))/0x7+parseInt(_0x5345c1(0x91))/0x8+-parseInt(_0x5345c1(0x8f))/0x9*(-parseInt(_0x5345c1(0x94))/0xa)+-parseInt(_0x5345c1(0x9d))/0xb;if(_0xb43e92===_0x3498c3)break;else _0xfe4abf['push'](_0xfe4abf['shift']());}catch(_0x414f98){_0xfe4abf['push'](_0xfe4abf['shift']());}}}(a54_0x2214,0xd83bf));import a54_0x1fe313 from'node:fs';import a54_0x182787 from'node:path';function a54_0x2214(){const _0x22da34=['2158452OOMQCz','coerce','6808896Zdvqbc','join','41555TkdjDN','10mAdNeg','@lovrabet/sdk','\x1b[1m','\x20\x20\x20当前\x20CLI\x20版本已升级模型注册协议,但检测到您的\x20@lovrabet/sdk\x20版本\x20','\x1b[33m','\x1b[0m','readFileSync','132287StYLui','\x20或更高版本:','12731686QJdNkI','30252OSMEMh','\x20不支持新协议。','parse','log','\x20\x20\x20npm\x20install\x20@lovrabet/sdk@latest','⚠️\x20\x20SDK\x20版本不兼容','utf8','207qUpsKt','2LPboeJ','6599691uTfdIm','minVersion','288yVpjpU','\x20\x20\x20查看最新版本:\x20https://www.npmjs.com/package/@lovrabet/sdk','1.2.0','package.json','version'];a54_0x2214=function(){return _0x22da34;};return a54_0x2214();}import a54_0x4932b4 from'semver';const MIN_SDK_VERSION=a54_0x39d9e7(0x8c);export function checkSdkVersion(_0x25f189){const _0x5194c4=a54_0x39d9e7,_0x290967=a54_0x182787[_0x5194c4(0x92)](_0x25f189,_0x5194c4(0x8d));if(!a54_0x1fe313['existsSync'](_0x290967))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};try{const _0x3bc01c=JSON[_0x5194c4(0xa0)](a54_0x1fe313[_0x5194c4(0x9a)](_0x290967,_0x5194c4(0xa4))),_0x2aadaa=_0x3bc01c['dependencies']||{},_0x200849=_0x3bc01c['devDependencies']||{},_0x101532=_0x2aadaa['@lovrabet/sdk']||_0x200849[_0x5194c4(0x95)];if(!_0x101532)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};const _0x3645ae=a54_0x4932b4[_0x5194c4(0x90)](_0x101532),_0x269ef1=_0x3645ae?a54_0x4932b4['lt'](_0x3645ae,MIN_SDK_VERSION):![];return{'installed':!![],'version':_0x101532,'needsUpgrade':_0x269ef1,'minVersion':MIN_SDK_VERSION};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};}}export function printSdkUpgradeWarning(_0x1b3410){const _0x3d46e6=a54_0x39d9e7;if(!_0x1b3410['needsUpgrade'])return;const _0x44f064=_0x3d46e6(0x98),_0x180a28=_0x3d46e6(0x99),_0x109e09=_0x3d46e6(0x96);console[_0x3d46e6(0xa1)](),console[_0x3d46e6(0xa1)](''+_0x44f064+_0x109e09+_0x3d46e6(0xa3)+_0x180a28),console[_0x3d46e6(0xa1)](_0x44f064+_0x3d46e6(0x97)+_0x1b3410[_0x3d46e6(0x8e)]+_0x3d46e6(0x9f)+_0x180a28),console[_0x3d46e6(0xa1)](_0x44f064+'\x20\x20\x20请升级\x20SDK\x20至\x20'+_0x1b3410[_0x3d46e6(0xa8)]+_0x3d46e6(0x9c)+_0x180a28),console[_0x3d46e6(0xa1)](_0x44f064+_0x3d46e6(0xa2)+_0x180a28),console[_0x3d46e6(0xa1)](_0x44f064+_0x3d46e6(0xaa)+_0x180a28),console[_0x3d46e6(0xa1)]();}
@@ -1 +1 @@
1
- const a52_0x2d8895=a52_0x1e57;function a52_0x1a15(){const _0x159f3c=['string','8lYbNEk','942957ryrAas','279823SlhORo','utf8','242242kXOERr','1347311apLJul','trim','482988QpPRqs','cwd','appcode','.lovrabetrc','app','123130MsMiSz','822984nqwENC','64wXygLQ','parse'];a52_0x1a15=function(){return _0x159f3c;};return a52_0x1a15();}(function(_0x219422,_0x1aa7a8){const _0x5f07b6=a52_0x1e57,_0x229e98=_0x219422();while(!![]){try{const _0x18f5f1=-parseInt(_0x5f07b6(0xbc))/0x1+-parseInt(_0x5f07b6(0xbe))/0x2+-parseInt(_0x5f07b6(0xc1))/0x3+-parseInt(_0x5f07b6(0xba))/0x4*(parseInt(_0x5f07b6(0xc6))/0x5)+parseInt(_0x5f07b6(0xc7))/0x6+-parseInt(_0x5f07b6(0xbf))/0x7+-parseInt(_0x5f07b6(0xc8))/0x8*(-parseInt(_0x5f07b6(0xbb))/0x9);if(_0x18f5f1===_0x1aa7a8)break;else _0x229e98['push'](_0x229e98['shift']());}catch(_0x47aa93){_0x229e98['push'](_0x229e98['shift']());}}}(a52_0x1a15,0x29ea3));import{existsSync,readFileSync}from'node:fs';import{resolve}from'node:path';import{homedir}from'node:os';export const projectConfigPath=resolve(process[a52_0x2d8895(0xc2)](),a52_0x2d8895(0xc4));function a52_0x1e57(_0x1a00a4,_0x131c9c){const _0x1a158a=a52_0x1a15();return a52_0x1e57=function(_0x1e5763,_0x15de03){_0x1e5763=_0x1e5763-0xb9;let _0x2cf158=_0x1a158a[_0x1e5763];return _0x2cf158;},a52_0x1e57(_0x1a00a4,_0x131c9c);}export const globalConfigPath=resolve(homedir(),a52_0x2d8895(0xc4));export function readConfig(){const _0x4d18c8=a52_0x2d8895;let _0x1e77d8={};try{if(existsSync(globalConfigPath)){const _0xe7cb4e=readFileSync(globalConfigPath,{'encoding':_0x4d18c8(0xbd)});_0xe7cb4e&&(_0x1e77d8=JSON[_0x4d18c8(0xc9)](_0xe7cb4e));}}catch(_0x360e78){}try{if(existsSync(projectConfigPath)){const _0x48972c=readFileSync(projectConfigPath,{'encoding':_0x4d18c8(0xbd)});if(_0x48972c){const _0x4a00f2=JSON[_0x4d18c8(0xc9)](_0x48972c);_0x1e77d8={..._0x1e77d8,..._0x4a00f2};}}}catch(_0x3e0762){}return _0x1e77d8;}export function getConfigAppCode(){const _0x246255=a52_0x2d8895;let _0x18961b={},_0x2231a5={};try{if(existsSync(globalConfigPath)){const _0x1cfa58=readFileSync(globalConfigPath,{'encoding':_0x246255(0xbd)});_0x1cfa58&&(_0x2231a5=JSON['parse'](_0x1cfa58));}}catch(_0x1a33dd){}try{if(existsSync(projectConfigPath)){const _0x4db060=readFileSync(projectConfigPath,{'encoding':_0x246255(0xbd)});_0x4db060&&(_0x18961b=JSON[_0x246255(0xc9)](_0x4db060));}}catch(_0x4eedb4){}let _0x99b77c;if(_0x246255(0xc3)in _0x18961b)_0x99b77c=_0x18961b[_0x246255(0xc3)];else{if('app'in _0x18961b)_0x99b77c=_0x18961b[_0x246255(0xc5)];else{if(_0x246255(0xc3)in _0x2231a5)_0x99b77c=_0x2231a5[_0x246255(0xc3)];else _0x246255(0xc5)in _0x2231a5&&(_0x99b77c=_0x2231a5[_0x246255(0xc5)]);}}if(typeof _0x99b77c!==_0x246255(0xb9)||_0x99b77c[_0x246255(0xc0)]()==='')return undefined;return _0x99b77c;}export function isInProject(){return existsSync(projectConfigPath);}
1
+ const a55_0x2b3111=a55_0x68aa;(function(_0x3a1fc1,_0x365917){const _0x54f898=a55_0x68aa,_0x82369f=_0x3a1fc1();while(!![]){try{const _0x222136=parseInt(_0x54f898(0x18b))/0x1*(parseInt(_0x54f898(0x183))/0x2)+parseInt(_0x54f898(0x188))/0x3*(parseInt(_0x54f898(0x187))/0x4)+parseInt(_0x54f898(0x184))/0x5+-parseInt(_0x54f898(0x17f))/0x6*(-parseInt(_0x54f898(0x185))/0x7)+-parseInt(_0x54f898(0x181))/0x8+parseInt(_0x54f898(0x17e))/0x9*(parseInt(_0x54f898(0x17b))/0xa)+-parseInt(_0x54f898(0x180))/0xb;if(_0x222136===_0x365917)break;else _0x82369f['push'](_0x82369f['shift']());}catch(_0xfa3075){_0x82369f['push'](_0x82369f['shift']());}}}(a55_0x2bb6,0x648e5));import{existsSync,readFileSync}from'node:fs';function a55_0x68aa(_0x5efb66,_0x1de5d3){_0x5efb66=_0x5efb66-0x17b;const _0x2bb6f3=a55_0x2bb6();let _0x68aa0f=_0x2bb6f3[_0x5efb66];return _0x68aa0f;}import{resolve}from'node:path';import{homedir}from'node:os';export const projectConfigPath=resolve(process['cwd'](),a55_0x2b3111(0x182));export const globalConfigPath=resolve(homedir(),a55_0x2b3111(0x182));export function readConfig(){const _0x42cd20=a55_0x2b3111;let _0x95b6f5={};try{if(existsSync(globalConfigPath)){const _0x3238f0=readFileSync(globalConfigPath,{'encoding':_0x42cd20(0x18a)});_0x3238f0&&(_0x95b6f5=JSON[_0x42cd20(0x17d)](_0x3238f0));}}catch(_0x18c779){}try{if(existsSync(projectConfigPath)){const _0x1038d0=readFileSync(projectConfigPath,{'encoding':'utf8'});if(_0x1038d0){const _0x2ad0dd=JSON[_0x42cd20(0x17d)](_0x1038d0);_0x95b6f5={..._0x95b6f5,..._0x2ad0dd};}}}catch(_0x3ed847){}return _0x95b6f5;}export function getConfigAppCode(){const _0x3400bf=a55_0x2b3111;let _0x36e05d={},_0x3b1401={};try{if(existsSync(globalConfigPath)){const _0x32deb3=readFileSync(globalConfigPath,{'encoding':'utf8'});_0x32deb3&&(_0x3b1401=JSON[_0x3400bf(0x17d)](_0x32deb3));}}catch(_0x2c85c0){}try{if(existsSync(projectConfigPath)){const _0x4dffdb=readFileSync(projectConfigPath,{'encoding':_0x3400bf(0x18a)});_0x4dffdb&&(_0x36e05d=JSON[_0x3400bf(0x17d)](_0x4dffdb));}}catch(_0x5b39ca){}let _0x5090bf;if('appcode'in _0x36e05d)_0x5090bf=_0x36e05d[_0x3400bf(0x18c)];else{if(_0x3400bf(0x17c)in _0x36e05d)_0x5090bf=_0x36e05d['app'];else{if(_0x3400bf(0x18c)in _0x3b1401)_0x5090bf=_0x3b1401['appcode'];else'app'in _0x3b1401&&(_0x5090bf=_0x3b1401[_0x3400bf(0x17c)]);}}if(typeof _0x5090bf!==_0x3400bf(0x189)||_0x5090bf[_0x3400bf(0x186)]()==='')return undefined;return _0x5090bf;}export function isInProject(){return existsSync(projectConfigPath);}function a55_0x2bb6(){const _0x5e4370=['app','parse','1579077OFYxYj','17250hNXdST','18653426ZXCRzl','5303664erbOLL','.lovrabetrc','65700joEHJr','2455625UfiFWg','1358twxiVn','trim','3162892EvSNmp','3yJqgPR','string','utf8','23KfrQNQ','appcode','10hCjZZp'];a55_0x2bb6=function(){return _0x5e4370;};return a55_0x2bb6();}
@@ -1 +1 @@
1
- (function(_0x59526f,_0x52f3f9){const _0x32442b=a53_0x3185,_0x23f3d7=_0x59526f();while(!![]){try{const _0x20342e=-parseInt(_0x32442b(0x1fd))/0x1+-parseInt(_0x32442b(0x1f5))/0x2+-parseInt(_0x32442b(0x1f9))/0x3*(-parseInt(_0x32442b(0x1f3))/0x4)+-parseInt(_0x32442b(0x1ef))/0x5*(-parseInt(_0x32442b(0x200))/0x6)+-parseInt(_0x32442b(0x1f4))/0x7+-parseInt(_0x32442b(0x1fa))/0x8*(parseInt(_0x32442b(0x1fb))/0x9)+parseInt(_0x32442b(0x1f8))/0xa*(parseInt(_0x32442b(0x1f0))/0xb);if(_0x20342e===_0x52f3f9)break;else _0x23f3d7['push'](_0x23f3d7['shift']());}catch(_0x4787b5){_0x23f3d7['push'](_0x23f3d7['shift']());}}}(a53_0x33d8,0xcb21e));function a53_0x3185(_0x129f89,_0x477458){const _0x33d8fe=a53_0x33d8();return a53_0x3185=function(_0x318553,_0x87f576){_0x318553=_0x318553-0x1ef;let _0x191f30=_0x33d8fe[_0x318553];return _0x191f30;},a53_0x3185(_0x129f89,_0x477458);}import a53_0x2b36ba from'node:path';function a53_0x33d8(){const _0xd9742f=['213RbaQwW','139256FkUAbb','36wQTRPS','readdirSync','1281571ZUJmgT','copyFileSync','isDirectory','24918izlYZu','error','1400lnRISe','9911JVLMWi','name','mkdirSync','344KSiYer','10862838pgXjBF','2380304mYHRET','复制目录时出错:','join','41690sdDCyL'];a53_0x33d8=function(){return _0xd9742f;};return a53_0x33d8();}import a53_0x1455b7 from'node:fs';export async function copyDirectory(_0xa8f157,_0x3874b6){const _0x2d3ecd=a53_0x3185;try{const _0x50dcc1=a53_0x1455b7[_0x2d3ecd(0x1fc)](_0xa8f157,{'withFileTypes':!![]});a53_0x1455b7[_0x2d3ecd(0x1f2)](_0x3874b6,{'recursive':!![]});for(const _0x424ec6 of _0x50dcc1){const _0x42a5ca=a53_0x2b36ba[_0x2d3ecd(0x1f7)](_0xa8f157,_0x424ec6[_0x2d3ecd(0x1f1)]),_0x54227b=a53_0x2b36ba[_0x2d3ecd(0x1f7)](_0x3874b6,_0x424ec6['name']);_0x424ec6[_0x2d3ecd(0x1ff)]()?await copyDirectory(_0x42a5ca,_0x54227b):a53_0x1455b7[_0x2d3ecd(0x1fe)](_0x42a5ca,_0x54227b);}}catch(_0x54df75){console[_0x2d3ecd(0x201)](_0x2d3ecd(0x1f6),_0x54df75);}}
1
+ function a56_0x36b9(){const _0x4b29a7=['365490TKVqWe','4735440OLEVTg','215931qfpveW','511280vVvzUR','23720upuPCo','40TqNJmO','join','copyFileSync','isDirectory','name','1122dETXPL','4852iwpmZn','readdirSync','error','4612338WoGbho','1183pLbIJA'];a56_0x36b9=function(){return _0x4b29a7;};return a56_0x36b9();}(function(_0x537358,_0x1b7110){const _0x4b4be1=a56_0x1f34,_0x16235f=_0x537358();while(!![]){try{const _0x16a8ca=parseInt(_0x4b4be1(0x84))/0x1+parseInt(_0x4b4be1(0x7d))/0x2*(parseInt(_0x4b4be1(0x7c))/0x3)+-parseInt(_0x4b4be1(0x87))/0x4*(parseInt(_0x4b4be1(0x85))/0x5)+parseInt(_0x4b4be1(0x82))/0x6+-parseInt(_0x4b4be1(0x81))/0x7*(-parseInt(_0x4b4be1(0x86))/0x8)+parseInt(_0x4b4be1(0x80))/0x9+-parseInt(_0x4b4be1(0x83))/0xa;if(_0x16a8ca===_0x1b7110)break;else _0x16235f['push'](_0x16235f['shift']());}catch(_0x5e6beb){_0x16235f['push'](_0x16235f['shift']());}}}(a56_0x36b9,0xab4c1));function a56_0x1f34(_0x35e738,_0x2a4e73){_0x35e738=_0x35e738-0x7c;const _0x36b9c8=a56_0x36b9();let _0x1f3450=_0x36b9c8[_0x35e738];return _0x1f3450;}import a56_0xcbb85a from'node:path';import a56_0x739597 from'node:fs';export async function copyDirectory(_0x503fbc,_0x22494c){const _0x4770d4=a56_0x1f34;try{const _0x45ce86=a56_0x739597[_0x4770d4(0x7e)](_0x503fbc,{'withFileTypes':!![]});a56_0x739597['mkdirSync'](_0x22494c,{'recursive':!![]});for(const _0x45187c of _0x45ce86){const _0x41d686=a56_0xcbb85a[_0x4770d4(0x88)](_0x503fbc,_0x45187c[_0x4770d4(0x8b)]),_0x2d8984=a56_0xcbb85a['join'](_0x22494c,_0x45187c[_0x4770d4(0x8b)]);_0x45187c[_0x4770d4(0x8a)]()?await copyDirectory(_0x41d686,_0x2d8984):a56_0x739597[_0x4770d4(0x89)](_0x41d686,_0x2d8984);}}catch(_0x17c2d7){console[_0x4770d4(0x7f)]('复制目录时出错:',_0x17c2d7);}}
@@ -1 +1 @@
1
- (function(_0x3e3e75,_0x5adace){const _0x5dc82c=a54_0x24e0,_0xcbd41=_0x3e3e75();while(!![]){try{const _0x39311c=-parseInt(_0x5dc82c(0xc2))/0x1+parseInt(_0x5dc82c(0xcc))/0x2+parseInt(_0x5dc82c(0xc5))/0x3+-parseInt(_0x5dc82c(0xc1))/0x4*(-parseInt(_0x5dc82c(0xd6))/0x5)+-parseInt(_0x5dc82c(0xc7))/0x6*(-parseInt(_0x5dc82c(0xce))/0x7)+parseInt(_0x5dc82c(0xc3))/0x8+-parseInt(_0x5dc82c(0xcf))/0x9;if(_0x39311c===_0x5adace)break;else _0xcbd41['push'](_0xcbd41['shift']());}catch(_0x5c0add){_0xcbd41['push'](_0xcbd41['shift']());}}}(a54_0x3ca5,0x3547f));function a54_0x3ca5(){const _0x20a1ff=['150702vKHwJL','fetch','name','url','*\x20请求失败,','594882fEpVhC','get','70pAJqEo','8012457bCmWUl','text','abort','headers','AbortError','content-type','TypeError','1031170kIofwh','ENOTFOUND','signal','message','application/json','log','\x20次重试...','includes','4QWUBvb','248580JfYKGl','2085144eOwdHj','json','1024812YmIwva','Request\x20failed'];a54_0x3ca5=function(){return _0x20a1ff;};return a54_0x3ca5();}export async function httpRequest(_0x207c59,_0x155a43={}){const _0x521055=a54_0x24e0,{timeout:timeout=0x7530,retries:retries=0x3,retryDelay:retryDelay=0x3e8,headers:headers={}}=_0x155a43;let _0x40e4fc=null;for(let _0x4d7b77=0x0;_0x4d7b77<=retries;_0x4d7b77++){try{const _0x1e8b06=new AbortController(),_0x275009=setTimeout(()=>_0x1e8b06[_0x521055(0xd1)](),timeout),_0x41a349=await fetch(_0x207c59,{'headers':headers,'signal':_0x1e8b06[_0x521055(0xbb)]});clearTimeout(_0x275009);let _0x1b46db;const _0x479d1e=_0x41a349[_0x521055(0xd2)][_0x521055(0xcd)](_0x521055(0xd4));return _0x479d1e?.['includes'](_0x521055(0xbd))?_0x1b46db=await _0x41a349[_0x521055(0xc4)]():_0x1b46db=await _0x41a349[_0x521055(0xd0)](),{'ok':_0x41a349['ok'],'status':_0x41a349['status'],'statusText':_0x41a349['statusText'],'data':_0x1b46db,'headers':_0x41a349['headers'],'url':_0x41a349[_0x521055(0xca)],'text':()=>_0x41a349[_0x521055(0xd0)]()};}catch(_0x55392b){_0x40e4fc=_0x55392b instanceof Error?_0x55392b:new Error(String(_0x55392b));if(_0x4d7b77===retries)break;if(shouldRetry(_0x55392b)){console[_0x521055(0xbe)](_0x521055(0xcb)+retryDelay+'ms\x20后进行第\x20'+(_0x4d7b77+0x1)+_0x521055(0xbf)),await sleep(retryDelay);continue;}else break;}}throw _0x40e4fc||new Error(_0x521055(0xc6));}function shouldRetry(_0x302331){const _0x133572=a54_0x24e0;if(_0x302331 instanceof Error){if(_0x302331[_0x133572(0xc9)]===_0x133572(0xd3))return![];if(_0x302331[_0x133572(0xc9)]===_0x133572(0xd5)&&_0x302331[_0x133572(0xbc)][_0x133572(0xc0)](_0x133572(0xc8)))return!![];if(_0x302331[_0x133572(0xbc)][_0x133572(0xc0)]('ECONNRESET'))return!![];if(_0x302331[_0x133572(0xbc)]['includes'](_0x133572(0xd7)))return![];}return![];}function sleep(_0x117449){return new Promise(_0x21f3d3=>setTimeout(_0x21f3d3,_0x117449));}function a54_0x24e0(_0x430ee3,_0x199917){const _0x3ca509=a54_0x3ca5();return a54_0x24e0=function(_0x24e039,_0x3adef3){_0x24e039=_0x24e039-0xbb;let _0x23b1bc=_0x3ca509[_0x24e039];return _0x23b1bc;},a54_0x24e0(_0x430ee3,_0x199917);}export function validateUrl(_0x1e3ee8){try{return new URL(_0x1e3ee8),!![];}catch{return![];}}
1
+ (function(_0xb529ac,_0x7dbdd5){const _0x4ee4b2=a57_0x3e20,_0x28c3f4=_0xb529ac();while(!![]){try{const _0x42074b=parseInt(_0x4ee4b2(0xa6))/0x1+-parseInt(_0x4ee4b2(0xab))/0x2+parseInt(_0x4ee4b2(0xa0))/0x3*(parseInt(_0x4ee4b2(0x9c))/0x4)+parseInt(_0x4ee4b2(0x9a))/0x5+-parseInt(_0x4ee4b2(0x96))/0x6*(parseInt(_0x4ee4b2(0xa4))/0x7)+-parseInt(_0x4ee4b2(0xaa))/0x8+parseInt(_0x4ee4b2(0x9d))/0x9;if(_0x42074b===_0x7dbdd5)break;else _0x28c3f4['push'](_0x28c3f4['shift']());}catch(_0x23d5d9){_0x28c3f4['push'](_0x28c3f4['shift']());}}}(a57_0x13b3,0x50a15));export async function httpRequest(_0xb7bfc5,_0x244120={}){const _0x4246c4=a57_0x3e20,{timeout:timeout=0x7530,retries:retries=0x3,retryDelay:retryDelay=0x3e8,headers:headers={}}=_0x244120;let _0x5a31e4=null;for(let _0x26be9c=0x0;_0x26be9c<=retries;_0x26be9c++){try{const _0x2e8a86=new AbortController(),_0x59b7df=setTimeout(()=>_0x2e8a86[_0x4246c4(0xad)](),timeout),_0x4dad5b=await fetch(_0xb7bfc5,{'headers':headers,'signal':_0x2e8a86[_0x4246c4(0xa2)]});clearTimeout(_0x59b7df);let _0x5998f1;const _0x305a3d=_0x4dad5b[_0x4246c4(0xac)][_0x4246c4(0x98)]('content-type');return _0x305a3d?.[_0x4246c4(0xa9)](_0x4246c4(0x9b))?_0x5998f1=await _0x4dad5b[_0x4246c4(0xae)]():_0x5998f1=await _0x4dad5b[_0x4246c4(0x97)](),{'ok':_0x4dad5b['ok'],'status':_0x4dad5b[_0x4246c4(0x94)],'statusText':_0x4dad5b['statusText'],'data':_0x5998f1,'headers':_0x4dad5b['headers'],'url':_0x4dad5b['url'],'text':()=>_0x4dad5b[_0x4246c4(0x97)]()};}catch(_0x3a51a5){_0x5a31e4=_0x3a51a5 instanceof Error?_0x3a51a5:new Error(String(_0x3a51a5));if(_0x26be9c===retries)break;if(shouldRetry(_0x3a51a5)){console[_0x4246c4(0xa7)](_0x4246c4(0x9e)+retryDelay+_0x4246c4(0xa8)+(_0x26be9c+0x1)+_0x4246c4(0x9f)),await sleep(retryDelay);continue;}else break;}}throw _0x5a31e4||new Error('Request\x20failed');}function shouldRetry(_0x361c61){const _0x2f64bd=a57_0x3e20;if(_0x361c61 instanceof Error){if(_0x361c61[_0x2f64bd(0xa5)]==='AbortError')return![];if(_0x361c61[_0x2f64bd(0xa5)]===_0x2f64bd(0xa3)&&_0x361c61[_0x2f64bd(0x99)][_0x2f64bd(0xa9)](_0x2f64bd(0xa1)))return!![];if(_0x361c61[_0x2f64bd(0x99)][_0x2f64bd(0xa9)](_0x2f64bd(0x95)))return!![];if(_0x361c61[_0x2f64bd(0x99)][_0x2f64bd(0xa9)]('ENOTFOUND'))return![];}return![];}function a57_0x3e20(_0x48e6b2,_0xebb905){_0x48e6b2=_0x48e6b2-0x94;const _0x13b373=a57_0x13b3();let _0x3e2097=_0x13b373[_0x48e6b2];return _0x3e2097;}function sleep(_0x44a0f3){return new Promise(_0x2b6f09=>setTimeout(_0x2b6f09,_0x44a0f3));}export function validateUrl(_0x421110){try{return new URL(_0x421110),!![];}catch{return![];}}function a57_0x13b3(){const _0x5483a4=['status','ECONNRESET','1267902WQFCnK','text','get','message','393945eLjxUV','application/json','596MqXSmH','2529477hGtEJG','*\x20请求失败,','\x20次重试...','5697axKytu','fetch','signal','TypeError','21HhjhSr','name','529322WhJURF','log','ms\x20后进行第\x20','includes','581200dwaVTq','270506PxZmfk','headers','abort','json'];a57_0x13b3=function(){return _0x5483a4;};return a57_0x13b3();}
@@ -1 +1 @@
1
- const a55_0x5b468f=a55_0x67d9;(function(_0x350aa0,_0x3d6f7b){const _0x52de3b=a55_0x67d9,_0x4d5aaa=_0x350aa0();while(!![]){try{const _0x91bbbc=-parseInt(_0x52de3b(0x1a0))/0x1+-parseInt(_0x52de3b(0x1bb))/0x2+-parseInt(_0x52de3b(0x197))/0x3+-parseInt(_0x52de3b(0x1a2))/0x4+parseInt(_0x52de3b(0x18f))/0x5+parseInt(_0x52de3b(0x19b))/0x6*(-parseInt(_0x52de3b(0x1ac))/0x7)+parseInt(_0x52de3b(0x1c3))/0x8*(parseInt(_0x52de3b(0x18c))/0x9);if(_0x91bbbc===_0x3d6f7b)break;else _0x4d5aaa['push'](_0x4d5aaa['shift']());}catch(_0x4fd68c){_0x4d5aaa['push'](_0x4d5aaa['shift']());}}}(a55_0x1594,0xd24f7));import a55_0xeafb44 from'winston';import a55_0x584492 from'node:fs';import a55_0x1ec65a from'node:path';class Logger{[a55_0x5b468f(0x1ae)];[a55_0x5b468f(0x1a6)];[a55_0x5b468f(0x1b2)]='';constructor(){const _0x427dd3=a55_0x5b468f;this[_0x427dd3(0x1a6)]='';}[a55_0x5b468f(0x191)](_0x28891e){const _0x55f1bf=a55_0x5b468f;this[_0x55f1bf(0x1b2)]=_0x28891e;}[a55_0x5b468f(0x1a5)](){const _0xdd44e0=a55_0x5b468f,_0x5d2303=a55_0x1ec65a['dirname'](this[_0xdd44e0(0x1a6)]);!a55_0x584492['existsSync'](_0x5d2303)&&a55_0x584492[_0xdd44e0(0x198)](_0x5d2303,{'recursive':!![]});const _0x27e85b=a55_0xeafb44[_0xdd44e0(0x1b0)]['combine'](a55_0xeafb44['format'][_0xdd44e0(0x1b4)](),a55_0xeafb44[_0xdd44e0(0x1b0)]['errors']({'stack':!![]}),a55_0xeafb44[_0xdd44e0(0x1b0)][_0xdd44e0(0x19f)](_0x41d7ce=>{const _0x59730f=_0xdd44e0,_0x5d8afc={'timestamp':_0x41d7ce[_0x59730f(0x1b4)]||new Date()[_0x59730f(0x1c1)](),'level':_0x41d7ce[_0x59730f(0x1bd)]||'info','command':_0x41d7ce[_0x59730f(0x195)]||'unknown','rawCommand':_0x41d7ce[_0x59730f(0x1ab)]||this[_0x59730f(0x1b2)]||undefined,'message':_0x41d7ce[_0x59730f(0x19e)]||'','duration':_0x41d7ce['duration']||undefined,'details':_0x41d7ce[_0x59730f(0x1a1)]||undefined};return JSON[_0x59730f(0x19a)](_0x5d8afc);}));this[_0xdd44e0(0x1ae)]=a55_0xeafb44[_0xdd44e0(0x19d)]({'level':_0xdd44e0(0x1b9),'format':_0x27e85b,'transports':[new a55_0xeafb44[(_0xdd44e0(0x1c0))][(_0xdd44e0(0x1a4))]({'filename':this[_0xdd44e0(0x1a6)],'level':_0xdd44e0(0x1b9)})],'silent':![]}),a55_0xeafb44[_0xdd44e0(0x199)]({'success':_0xdd44e0(0x193),'error':_0xdd44e0(0x1b3),'warn':_0xdd44e0(0x1a3),'info':_0xdd44e0(0x18e)});}['setLogPath'](_0x674dc4){const _0x2b02d1=a55_0x5b468f;this[_0x2b02d1(0x1a6)]=a55_0x1ec65a[_0x2b02d1(0x1b5)](_0x674dc4,_0x2b02d1(0x1aa)),this[_0x2b02d1(0x1ae)]&&this[_0x2b02d1(0x1ae)][_0x2b02d1(0x1a8)](),this[_0x2b02d1(0x1a5)]();}[a55_0x5b468f(0x1b9)](_0x33582b,_0x272066,_0x507ce1){const _0x86ffbc=a55_0x5b468f;if(!this[_0x86ffbc(0x1a6)]||!this[_0x86ffbc(0x1ae)])return;this[_0x86ffbc(0x1ae)]['info'](_0x272066,{'command':_0x33582b,'details':_0x507ce1});}[a55_0x5b468f(0x194)](_0x261e89,_0x3c9f5c,_0x2b95e5,_0x15a50b){const _0x5b0f5f=a55_0x5b468f;if(!this[_0x5b0f5f(0x1a6)]||!this[_0x5b0f5f(0x1ae)])return;this[_0x5b0f5f(0x1ae)]['log']('info',_0x3c9f5c,{'level':'success','command':_0x261e89,'duration':_0x2b95e5,'details':_0x15a50b});}[a55_0x5b468f(0x1a9)](_0x58698d,_0x30c17a,_0x2d6903){const _0x8168e1=a55_0x5b468f;if(!this[_0x8168e1(0x1a6)]||!this[_0x8168e1(0x1ae)])return;this[_0x8168e1(0x1ae)][_0x8168e1(0x1a9)](_0x30c17a,{'command':_0x58698d,'details':_0x2d6903});}[a55_0x5b468f(0x1b8)](_0xe1b828,_0x5b1245,_0x2ee204){const _0xfa4b5d=a55_0x5b468f;if(!this['logFilePath']||!this[_0xfa4b5d(0x1ae)])return;this[_0xfa4b5d(0x1ae)][_0xfa4b5d(0x1b8)](_0x5b1245,{'command':_0xe1b828,'details':_0x2ee204});}async[a55_0x5b468f(0x1ba)](_0x26a711,_0x5714c6,_0x357bf0){const _0x1d562d=a55_0x5b468f,_0x46e4d5=Date[_0x1d562d(0x1b6)]();this[_0x1d562d(0x1b9)](_0x26a711,'开始执行:\x20'+_0x5714c6);try{const _0x5725bf=await _0x357bf0(),_0x3dcc44=Date[_0x1d562d(0x1b6)]()-_0x46e4d5;return this[_0x1d562d(0x194)](_0x26a711,_0x1d562d(0x190)+_0x5714c6,_0x3dcc44),_0x5725bf;}catch(_0x4e425f){const _0xb7524=Date[_0x1d562d(0x1b6)]()-_0x46e4d5;this[_0x1d562d(0x1a9)](_0x26a711,'失败:\x20'+_0x5714c6,{'error':_0x4e425f instanceof Error?_0x4e425f[_0x1d562d(0x19e)]:String(_0x4e425f),'duration':_0xb7524});throw _0x4e425f;}}[a55_0x5b468f(0x1b7)](){const _0x361e01=a55_0x5b468f;try{if(!a55_0x584492[_0x361e01(0x192)](this['logFilePath']))return[];const _0x21513a=a55_0x584492[_0x361e01(0x19c)](this['logFilePath'],_0x361e01(0x1a7));return _0x21513a[_0x361e01(0x18d)]('\x0a')[_0x361e01(0x1ad)](_0x4a9940=>_0x4a9940['trim']())[_0x361e01(0x1b1)](_0x2628fc=>JSON[_0x361e01(0x1be)](_0x2628fc));}catch(_0x1be175){return console[_0x361e01(0x1b8)](_0x361e01(0x196),_0x1be175),[];}}[a55_0x5b468f(0x1bc)](){const _0x5bcb63=a55_0x5b468f;try{a55_0x584492[_0x5bcb63(0x192)](this[_0x5bcb63(0x1a6)])&&a55_0x584492[_0x5bcb63(0x1c2)](this[_0x5bcb63(0x1a6)],'',_0x5bcb63(0x1a7));}catch(_0x5ef1e8){console[_0x5bcb63(0x1b8)](_0x5bcb63(0x1af),_0x5ef1e8);}}[a55_0x5b468f(0x1bf)](){return this['winstonLogger'];}}function a55_0x1594(){const _0x57a489=['3962368Vgbkji','yellow','File','initWinstonLogger','logFilePath','utf8','clear','error','.lovrabet.log','rawCommand','49hSWJgh','filter','winstonLogger','Failed\x20to\x20clear\x20logs:','format','map','currentRawCommand','red','timestamp','join','now','readLogs','warn','info','logTask','2396524ojKkTr','clearLogs','level','parse','getWinstonInstance','transports','toISOString','writeFileSync','112wjmQiP','3797487yqYcfa','split','blue','5002735luaOQd','完成:\x20','setRawCommand','existsSync','green','success','command','Failed\x20to\x20read\x20logs:','5015379vtJEhV','mkdirSync','addColors','stringify','449214ebFHTR','readFileSync','createLogger','message','printf','1661588FfABNi','details'];a55_0x1594=function(){return _0x57a489;};return a55_0x1594();}function a55_0x67d9(_0x1c44f4,_0x5f213f){const _0x159434=a55_0x1594();return a55_0x67d9=function(_0x67d973,_0x1c647d){_0x67d973=_0x67d973-0x18c;let _0x5cc295=_0x159434[_0x67d973];return _0x5cc295;},a55_0x67d9(_0x1c44f4,_0x5f213f);}export const logger=new Logger();
1
+ function a58_0x3a32(){const _0x5cd369=['currentRawCommand','createLogger','split','now','rawCommand','filter','green','mkdirSync','.lovrabet.log','existsSync','details','error','winstonLogger','errors','7Nouczp','combine','level','red','2FtoRmU','539899kEidkk','6409341xPVWCQ','3000380CVfQTs','Failed\x20to\x20clear\x20logs:','parse','readLogs','2169670JrLfgc','blue','unknown','trim','logTask','14468700YFUhHa','timestamp','transports','readFileSync','utf8','2026230QJLxkR','logFilePath','printf','map','command','yellow','失败:\x20','success','toISOString','message','开始执行:\x20','warn','log','addColors','duration','6hafSmU','join','format','getWinstonInstance','initWinstonLogger','753952fJUszW','clear','info'];a58_0x3a32=function(){return _0x5cd369;};return a58_0x3a32();}const a58_0x5f3a53=a58_0x2699;(function(_0x1c27af,_0x1b84f0){const _0x32779c=a58_0x2699,_0x118e04=_0x1c27af();while(!![]){try{const _0x5a1ef8=-parseInt(_0x32779c(0x10c))/0x1*(-parseInt(_0x32779c(0x10b))/0x2)+-parseInt(_0x32779c(0x11c))/0x3+parseInt(_0x32779c(0x10e))/0x4+-parseInt(_0x32779c(0x112))/0x5*(-parseInt(_0x32779c(0x12b))/0x6)+-parseInt(_0x32779c(0x107))/0x7*(-parseInt(_0x32779c(0x130))/0x8)+parseInt(_0x32779c(0x10d))/0x9+-parseInt(_0x32779c(0x117))/0xa;if(_0x5a1ef8===_0x1b84f0)break;else _0x118e04['push'](_0x118e04['shift']());}catch(_0x124ee9){_0x118e04['push'](_0x118e04['shift']());}}}(a58_0x3a32,0x639e9));import a58_0x180002 from'winston';import a58_0x3ef3d1 from'node:fs';import a58_0x3a5c2d from'node:path';class Logger{[a58_0x5f3a53(0x105)];[a58_0x5f3a53(0x11d)];[a58_0x5f3a53(0x133)]='';constructor(){const _0x2ccb72=a58_0x5f3a53;this[_0x2ccb72(0x11d)]='';}['setRawCommand'](_0x1baa3a){this['currentRawCommand']=_0x1baa3a;}[a58_0x5f3a53(0x12f)](){const _0x1e8d3f=a58_0x5f3a53,_0x1a5a05=a58_0x3a5c2d['dirname'](this[_0x1e8d3f(0x11d)]);!a58_0x3ef3d1['existsSync'](_0x1a5a05)&&a58_0x3ef3d1[_0x1e8d3f(0x100)](_0x1a5a05,{'recursive':!![]});const _0x64f09f=a58_0x180002[_0x1e8d3f(0x12d)][_0x1e8d3f(0x108)](a58_0x180002[_0x1e8d3f(0x12d)][_0x1e8d3f(0x118)](),a58_0x180002['format'][_0x1e8d3f(0x106)]({'stack':!![]}),a58_0x180002['format'][_0x1e8d3f(0x11e)](_0x4080fa=>{const _0x3cc28e=_0x1e8d3f,_0x27dd66={'timestamp':_0x4080fa['timestamp']||new Date()[_0x3cc28e(0x124)](),'level':_0x4080fa[_0x3cc28e(0x109)]||'info','command':_0x4080fa[_0x3cc28e(0x120)]||_0x3cc28e(0x114),'rawCommand':_0x4080fa[_0x3cc28e(0xfd)]||this['currentRawCommand']||undefined,'message':_0x4080fa[_0x3cc28e(0x125)]||'','duration':_0x4080fa[_0x3cc28e(0x12a)]||undefined,'details':_0x4080fa[_0x3cc28e(0x103)]||undefined};return JSON['stringify'](_0x27dd66);}));this['winstonLogger']=a58_0x180002[_0x1e8d3f(0x134)]({'level':'info','format':_0x64f09f,'transports':[new a58_0x180002[(_0x1e8d3f(0x119))]['File']({'filename':this[_0x1e8d3f(0x11d)],'level':'info'})],'silent':![]}),a58_0x180002[_0x1e8d3f(0x129)]({'success':_0x1e8d3f(0xff),'error':_0x1e8d3f(0x10a),'warn':_0x1e8d3f(0x121),'info':_0x1e8d3f(0x113)});}['setLogPath'](_0x3f89b2){const _0x40e42e=a58_0x5f3a53;this[_0x40e42e(0x11d)]=a58_0x3a5c2d[_0x40e42e(0x12c)](_0x3f89b2,_0x40e42e(0x101)),this[_0x40e42e(0x105)]&&this[_0x40e42e(0x105)][_0x40e42e(0x131)](),this['initWinstonLogger']();}[a58_0x5f3a53(0x132)](_0x345d59,_0x6139b3,_0x50cb75){const _0x50b295=a58_0x5f3a53;if(!this[_0x50b295(0x11d)]||!this[_0x50b295(0x105)])return;this[_0x50b295(0x105)]['info'](_0x6139b3,{'command':_0x345d59,'details':_0x50cb75});}[a58_0x5f3a53(0x123)](_0x14e786,_0x3c063e,_0xd90664,_0x611fa0){const _0x595e68=a58_0x5f3a53;if(!this[_0x595e68(0x11d)]||!this[_0x595e68(0x105)])return;this[_0x595e68(0x105)][_0x595e68(0x128)](_0x595e68(0x132),_0x3c063e,{'level':_0x595e68(0x123),'command':_0x14e786,'duration':_0xd90664,'details':_0x611fa0});}['error'](_0x490530,_0x28858d,_0xb055){const _0x6a62cb=a58_0x5f3a53;if(!this[_0x6a62cb(0x11d)]||!this[_0x6a62cb(0x105)])return;this[_0x6a62cb(0x105)][_0x6a62cb(0x104)](_0x28858d,{'command':_0x490530,'details':_0xb055});}[a58_0x5f3a53(0x127)](_0x5b6459,_0x40b27f,_0x5df843){const _0x8e46cc=a58_0x5f3a53;if(!this[_0x8e46cc(0x11d)]||!this[_0x8e46cc(0x105)])return;this[_0x8e46cc(0x105)]['warn'](_0x40b27f,{'command':_0x5b6459,'details':_0x5df843});}async[a58_0x5f3a53(0x116)](_0x1176d9,_0x4aa8b0,_0x46dd50){const _0x4a59a3=a58_0x5f3a53,_0x1e13dd=Date[_0x4a59a3(0xfc)]();this[_0x4a59a3(0x132)](_0x1176d9,_0x4a59a3(0x126)+_0x4aa8b0);try{const _0x14e6e7=await _0x46dd50(),_0x34e1f8=Date['now']()-_0x1e13dd;return this[_0x4a59a3(0x123)](_0x1176d9,'完成:\x20'+_0x4aa8b0,_0x34e1f8),_0x14e6e7;}catch(_0x19aaf4){const _0x33be44=Date[_0x4a59a3(0xfc)]()-_0x1e13dd;this[_0x4a59a3(0x104)](_0x1176d9,_0x4a59a3(0x122)+_0x4aa8b0,{'error':_0x19aaf4 instanceof Error?_0x19aaf4[_0x4a59a3(0x125)]:String(_0x19aaf4),'duration':_0x33be44});throw _0x19aaf4;}}[a58_0x5f3a53(0x111)](){const _0x3946b3=a58_0x5f3a53;try{if(!a58_0x3ef3d1[_0x3946b3(0x102)](this[_0x3946b3(0x11d)]))return[];const _0x2ed9ae=a58_0x3ef3d1[_0x3946b3(0x11a)](this[_0x3946b3(0x11d)],_0x3946b3(0x11b));return _0x2ed9ae[_0x3946b3(0x135)]('\x0a')[_0x3946b3(0xfe)](_0x9f2df3=>_0x9f2df3[_0x3946b3(0x115)]())[_0x3946b3(0x11f)](_0x1369e6=>JSON[_0x3946b3(0x110)](_0x1369e6));}catch(_0x4fa0e5){return console['warn']('Failed\x20to\x20read\x20logs:',_0x4fa0e5),[];}}['clearLogs'](){const _0x15ce35=a58_0x5f3a53;try{a58_0x3ef3d1['existsSync'](this[_0x15ce35(0x11d)])&&a58_0x3ef3d1['writeFileSync'](this[_0x15ce35(0x11d)],'',_0x15ce35(0x11b));}catch(_0x47e3f6){console[_0x15ce35(0x127)](_0x15ce35(0x10f),_0x47e3f6);}}[a58_0x5f3a53(0x12e)](){const _0x14c53e=a58_0x5f3a53;return this[_0x14c53e(0x105)];}}function a58_0x2699(_0x4a0ec5,_0x113198){_0x4a0ec5=_0x4a0ec5-0xfc;const _0x3a32a6=a58_0x3a32();let _0x269914=_0x3a32a6[_0x4a0ec5];return _0x269914;}export const logger=new Logger();
@@ -1 +1 @@
1
- const a56_0x2ef250=a56_0x3cdd;function a56_0x4b61(){const _0x40a68f=['readFile','530360ttgLOG','promises','6bFKLWQ','22978EAEybN','existsSync','error','addImport','routerFilePath','now','toUpperCase','2pMGAMZ','map','addRoute','toComponentName','toLowerCase','\x20from\x20\x22../pages/','utf8','921305mXhSGl','match','路由配置更新完成','50TTClCv','charAt','split','\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20element:\x20<','addPageRoute','\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20path:\x20\x22','import\x20','success','885447lCUrPq','开始更新路由配置','377856rVBGqh','join','路由文件不存在:\x20','slice','路由配置更新失败','previewChanges','length','includes','未找到路由配置的\x20children\x20数组','1045268wpxinM','src','router','index','483606QEYJgq'];a56_0x4b61=function(){return _0x40a68f;};return a56_0x4b61();}(function(_0x4bd976,_0x4512f9){const _0x55ca12=a56_0x3cdd,_0x4c93a5=_0x4bd976();while(!![]){try{const _0x2dd701=-parseInt(_0x55ca12(0x17c))/0x1*(-parseInt(_0x55ca12(0x175))/0x2)+-parseInt(_0x55ca12(0x170))/0x3+parseInt(_0x55ca12(0x172))/0x4+-parseInt(_0x55ca12(0x183))/0x5*(parseInt(_0x55ca12(0x174))/0x6)+-parseInt(_0x55ca12(0x16c))/0x7+-parseInt(_0x55ca12(0x163))/0x8+-parseInt(_0x55ca12(0x161))/0x9*(-parseInt(_0x55ca12(0x186))/0xa);if(_0x2dd701===_0x4512f9)break;else _0x4c93a5['push'](_0x4c93a5['shift']());}catch(_0x49efa2){_0x4c93a5['push'](_0x4c93a5['shift']());}}}(a56_0x4b61,0x19bf8));import a56_0x34d8a5 from'node:fs';import a56_0x3b0fe6 from'node:path';function a56_0x3cdd(_0x32732d,_0x243854){const _0x4b61bd=a56_0x4b61();return a56_0x3cdd=function(_0x3cdd21,_0x27e9c4){_0x3cdd21=_0x3cdd21-0x161;let _0x528e31=_0x4b61bd[_0x3cdd21];return _0x528e31;},a56_0x3cdd(_0x32732d,_0x243854);}import{logger}from'./logger.js';export class RouterUpdater{[a56_0x2ef250(0x179)];constructor(_0x36edfb){const _0x4ba485=a56_0x2ef250;this[_0x4ba485(0x179)]=a56_0x3b0fe6[_0x4ba485(0x164)](_0x36edfb,_0x4ba485(0x16d),_0x4ba485(0x16e),'index.tsx');}async[a56_0x2ef250(0x18a)](_0x5dcd98,_0x1e9edb){const _0x4ca219=a56_0x2ef250;if(!a56_0x34d8a5['existsSync'](this[_0x4ca219(0x179)]))throw new Error(_0x4ca219(0x165)+this[_0x4ca219(0x179)]);const _0x2c5ef6=Date[_0x4ca219(0x17a)]();logger['info'](_0x4ca219(0x16e),_0x4ca219(0x162),{'pageName':_0x5dcd98,'routePath':_0x1e9edb,'file':this[_0x4ca219(0x179)]});try{const _0x1176bb=await a56_0x34d8a5['promises'][_0x4ca219(0x171)](this['routerFilePath'],_0x4ca219(0x182)),_0x15e490=this[_0x4ca219(0x17f)](_0x5dcd98),_0x25e8a1=this[_0x4ca219(0x178)](_0x1176bb,_0x15e490,_0x5dcd98),_0x105a74=this['addRoute'](_0x25e8a1,_0x1e9edb,_0x15e490);await a56_0x34d8a5[_0x4ca219(0x173)]['writeFile'](this[_0x4ca219(0x179)],_0x105a74,_0x4ca219(0x182));const _0xe3b378=Date[_0x4ca219(0x17a)]()-_0x2c5ef6;logger[_0x4ca219(0x18d)]('router',_0x4ca219(0x185),_0xe3b378,{'pageName':_0x5dcd98,'routePath':_0x1e9edb,'componentName':_0x15e490});}catch(_0x585414){const _0x1abd06=Date[_0x4ca219(0x17a)]()-_0x2c5ef6;logger[_0x4ca219(0x177)](_0x4ca219(0x16e),_0x4ca219(0x167),{'pageName':_0x5dcd98,'routePath':_0x1e9edb,'error':_0x585414 instanceof Error?_0x585414['message']:String(_0x585414),'duration':_0x1abd06});throw _0x585414;}}[a56_0x2ef250(0x17f)](_0x32456f){const _0x3480cc=a56_0x2ef250;return _0x32456f[_0x3480cc(0x188)]('-')[_0x3480cc(0x17d)](_0xe7d78e=>_0xe7d78e[_0x3480cc(0x187)](0x0)[_0x3480cc(0x17b)]()+_0xe7d78e[_0x3480cc(0x166)](0x1)[_0x3480cc(0x180)]())[_0x3480cc(0x164)]('');}[a56_0x2ef250(0x178)](_0x271fab,_0x35d8cb,_0x14fe2a){const _0x4b8a9b=a56_0x2ef250,_0x550fb0=/import\s+\w+\s+from\s+["']\.\.\/pages\/\w+["'];?\n/g,_0x110379=_0x271fab[_0x4b8a9b(0x184)](_0x550fb0)||[],_0x484181=_0x4b8a9b(0x18c)+_0x35d8cb+_0x4b8a9b(0x181)+_0x14fe2a+'\x22;';if(_0x271fab[_0x4b8a9b(0x16a)](_0x484181))return _0x271fab;if(_0x110379['length']>0x0){const _0x243cdb=_0x110379[_0x110379['length']-0x1];if(_0x243cdb){const _0x342de3=_0x271fab['lastIndexOf'](_0x243cdb),_0x44c822=_0x342de3+_0x243cdb[_0x4b8a9b(0x169)];return _0x271fab[_0x4b8a9b(0x166)](0x0,_0x44c822)+_0x484181+'\x0a'+_0x271fab['slice'](_0x44c822);}}const _0x371386=_0x271fab['match'](/import\s+\w+\s+from\s+["']\.\.\/layouts\/\w+["'];?\n/);if(_0x371386&&_0x371386[_0x4b8a9b(0x16f)]!==undefined){const _0x9f5b0a=_0x371386[_0x4b8a9b(0x16f)]+_0x371386[0x0][_0x4b8a9b(0x169)];return _0x271fab['slice'](0x0,_0x9f5b0a)+_0x484181+'\x0a'+_0x271fab[_0x4b8a9b(0x166)](_0x9f5b0a);}return _0x271fab;}['addRoute'](_0x1a0206,_0x5ed083,_0xea23b){const _0x32c754=a56_0x2ef250,_0x555e13=_0x32c754(0x18b)+_0x5ed083+_0x32c754(0x189)+_0xea23b+'\x20/>,\x0a\x20\x20\x20\x20\x20\x20\x20\x20},';if(_0x1a0206['includes']('path:\x20\x22'+_0x5ed083+'\x22'))return _0x1a0206;const _0x1c324c=/children:\s*\[([\s\S]*?)\]/,_0x2c91c1=_0x1a0206[_0x32c754(0x184)](_0x1c324c);if(!_0x2c91c1||_0x2c91c1[_0x32c754(0x16f)]===undefined)throw new Error(_0x32c754(0x16b));const _0x1bf9dc=_0x2c91c1[0x1],_0x12b966=_0x2c91c1[_0x32c754(0x16f)]+_0x2c91c1[0x0]['indexOf']('[')+0x1,_0x1a3b8b=_0x1bf9dc?.[_0x32c754(0x184)](/\{[\s\S]*?\},/g)||[];if(_0x1a3b8b['length']>0x0){const _0x277fe6=_0x1a3b8b[_0x1a3b8b[_0x32c754(0x169)]-0x1];if(_0x277fe6){const _0x39b19d=_0x1a0206['lastIndexOf'](_0x277fe6),_0x17365a=_0x39b19d+_0x277fe6[_0x32c754(0x169)];return _0x1a0206[_0x32c754(0x166)](0x0,_0x17365a)+'\x0a'+_0x555e13+_0x1a0206[_0x32c754(0x166)](_0x17365a);}}return _0x1a0206[_0x32c754(0x166)](0x0,_0x12b966)+'\x0a'+_0x555e13+_0x1a0206[_0x32c754(0x166)](_0x12b966);}async[a56_0x2ef250(0x168)](_0x18e045,_0x4c5385){const _0x12a6cf=a56_0x2ef250;if(!a56_0x34d8a5[_0x12a6cf(0x176)](this[_0x12a6cf(0x179)]))throw new Error('路由文件不存在:\x20'+this[_0x12a6cf(0x179)]);const _0xae884e=await a56_0x34d8a5[_0x12a6cf(0x173)][_0x12a6cf(0x171)](this['routerFilePath'],_0x12a6cf(0x182)),_0x74fa0d=this[_0x12a6cf(0x17f)](_0x18e045);let _0x47f4af=this[_0x12a6cf(0x178)](_0xae884e,_0x74fa0d,_0x18e045);return _0x47f4af=this[_0x12a6cf(0x17e)](_0x47f4af,_0x4c5385,_0x74fa0d),_0x47f4af;}}
1
+ function a59_0x1fc0(){const _0xfcc70a=['path:\x20\x22','187422bZfDEF','promises','utf8','includes','1972491qEzWzN','join','1488236gBBadh','开始更新路由配置','addImport','\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20path:\x20\x22','message','src','router','未找到路由配置的\x20children\x20数组','20nidUxG','info','32704OqQTDI','9mqZMuc','addRoute','index','toComponentName','indexOf','\x20from\x20\x22../pages/','charAt','347287Omqklf','2WKlhnU','\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20element:\x20<','4044210eoGGvN','735evJfMV','2897807qAddhL','routerFilePath','now','路由配置更新失败','success','lastIndexOf','import\x20','index.tsx','map','readFile','\x20/>,\x0a\x20\x20\x20\x20\x20\x20\x20\x20},','length','路由配置更新完成','previewChanges','match','路由文件不存在:\x20','addPageRoute','split','slice'];a59_0x1fc0=function(){return _0xfcc70a;};return a59_0x1fc0();}function a59_0x3caf(_0x1616ec,_0x1c692a){_0x1616ec=_0x1616ec-0xff;const _0x1fc0f1=a59_0x1fc0();let _0x3caf16=_0x1fc0f1[_0x1616ec];return _0x3caf16;}const a59_0x348a1c=a59_0x3caf;(function(_0x9412ea,_0x3d9739){const _0xab1243=a59_0x3caf,_0x30b763=_0x9412ea();while(!![]){try{const _0x1160f9=-parseInt(_0xab1243(0x110))/0x1+parseInt(_0xab1243(0x111))/0x2*(-parseInt(_0xab1243(0x12d))/0x3)+parseInt(_0xab1243(0x12f))/0x4+parseInt(_0xab1243(0x106))/0x5*(-parseInt(_0xab1243(0x129))/0x6)+-parseInt(_0xab1243(0x114))/0x7*(-parseInt(_0xab1243(0x108))/0x8)+parseInt(_0xab1243(0x109))/0x9*(parseInt(_0xab1243(0x113))/0xa)+parseInt(_0xab1243(0x115))/0xb;if(_0x1160f9===_0x3d9739)break;else _0x30b763['push'](_0x30b763['shift']());}catch(_0x54638c){_0x30b763['push'](_0x30b763['shift']());}}}(a59_0x1fc0,0x52de1));import a59_0x619160 from'node:fs';import a59_0x3cbd46 from'node:path';import{logger}from'./logger.js';export class RouterUpdater{[a59_0x348a1c(0x116)];constructor(_0x4ef82e){const _0x4f0881=a59_0x348a1c;this[_0x4f0881(0x116)]=a59_0x3cbd46[_0x4f0881(0x12e)](_0x4ef82e,_0x4f0881(0x103),'router',_0x4f0881(0x11c));}async[a59_0x348a1c(0x125)](_0x315f5f,_0x32c660){const _0x53a1b0=a59_0x348a1c;if(!a59_0x619160['existsSync'](this['routerFilePath']))throw new Error(_0x53a1b0(0x124)+this['routerFilePath']);const _0x5653b6=Date['now']();logger[_0x53a1b0(0x107)](_0x53a1b0(0x104),_0x53a1b0(0xff),{'pageName':_0x315f5f,'routePath':_0x32c660,'file':this[_0x53a1b0(0x116)]});try{const _0x35747f=await a59_0x619160[_0x53a1b0(0x12a)]['readFile'](this[_0x53a1b0(0x116)],_0x53a1b0(0x12b)),_0xae0449=this[_0x53a1b0(0x10c)](_0x315f5f),_0x1368cf=this['addImport'](_0x35747f,_0xae0449,_0x315f5f),_0x89dd5b=this[_0x53a1b0(0x10a)](_0x1368cf,_0x32c660,_0xae0449);await a59_0x619160['promises']['writeFile'](this[_0x53a1b0(0x116)],_0x89dd5b,_0x53a1b0(0x12b));const _0x422817=Date[_0x53a1b0(0x117)]()-_0x5653b6;logger[_0x53a1b0(0x119)](_0x53a1b0(0x104),_0x53a1b0(0x121),_0x422817,{'pageName':_0x315f5f,'routePath':_0x32c660,'componentName':_0xae0449});}catch(_0x4b22b5){const _0x39c682=Date['now']()-_0x5653b6;logger['error']('router',_0x53a1b0(0x118),{'pageName':_0x315f5f,'routePath':_0x32c660,'error':_0x4b22b5 instanceof Error?_0x4b22b5[_0x53a1b0(0x102)]:String(_0x4b22b5),'duration':_0x39c682});throw _0x4b22b5;}}[a59_0x348a1c(0x10c)](_0x3b3c8b){const _0x4a6483=a59_0x348a1c;return _0x3b3c8b[_0x4a6483(0x126)]('-')[_0x4a6483(0x11d)](_0x24c474=>_0x24c474[_0x4a6483(0x10f)](0x0)['toUpperCase']()+_0x24c474['slice'](0x1)['toLowerCase']())[_0x4a6483(0x12e)]('');}[a59_0x348a1c(0x100)](_0x191ad4,_0xbd8716,_0x43861b){const _0x418e5d=a59_0x348a1c,_0x3448e6=/import\s+\w+\s+from\s+["']\.\.\/pages\/\w+["'];?\n/g,_0x3af816=_0x191ad4[_0x418e5d(0x123)](_0x3448e6)||[],_0x730a93=_0x418e5d(0x11b)+_0xbd8716+_0x418e5d(0x10e)+_0x43861b+'\x22;';if(_0x191ad4[_0x418e5d(0x12c)](_0x730a93))return _0x191ad4;if(_0x3af816[_0x418e5d(0x120)]>0x0){const _0x5453bd=_0x3af816[_0x3af816[_0x418e5d(0x120)]-0x1];if(_0x5453bd){const _0x5c6b21=_0x191ad4[_0x418e5d(0x11a)](_0x5453bd),_0xf8004c=_0x5c6b21+_0x5453bd[_0x418e5d(0x120)];return _0x191ad4[_0x418e5d(0x127)](0x0,_0xf8004c)+_0x730a93+'\x0a'+_0x191ad4[_0x418e5d(0x127)](_0xf8004c);}}const _0x4c611c=_0x191ad4[_0x418e5d(0x123)](/import\s+\w+\s+from\s+["']\.\.\/layouts\/\w+["'];?\n/);if(_0x4c611c&&_0x4c611c['index']!==undefined){const _0x153ff5=_0x4c611c[_0x418e5d(0x10b)]+_0x4c611c[0x0][_0x418e5d(0x120)];return _0x191ad4[_0x418e5d(0x127)](0x0,_0x153ff5)+_0x730a93+'\x0a'+_0x191ad4[_0x418e5d(0x127)](_0x153ff5);}return _0x191ad4;}[a59_0x348a1c(0x10a)](_0x50ccb3,_0x2decde,_0x262e73){const _0x527039=a59_0x348a1c,_0xd3ff07=_0x527039(0x101)+_0x2decde+_0x527039(0x112)+_0x262e73+_0x527039(0x11f);if(_0x50ccb3['includes'](_0x527039(0x128)+_0x2decde+'\x22'))return _0x50ccb3;const _0x208db2=/children:\s*\[([\s\S]*?)\]/,_0x433406=_0x50ccb3[_0x527039(0x123)](_0x208db2);if(!_0x433406||_0x433406[_0x527039(0x10b)]===undefined)throw new Error(_0x527039(0x105));const _0x3ffb1f=_0x433406[0x1],_0x38ada4=_0x433406[_0x527039(0x10b)]+_0x433406[0x0][_0x527039(0x10d)]('[')+0x1,_0x7422fa=_0x3ffb1f?.[_0x527039(0x123)](/\{[\s\S]*?\},/g)||[];if(_0x7422fa[_0x527039(0x120)]>0x0){const _0x7397d7=_0x7422fa[_0x7422fa[_0x527039(0x120)]-0x1];if(_0x7397d7){const _0x35ea59=_0x50ccb3[_0x527039(0x11a)](_0x7397d7),_0x1172bc=_0x35ea59+_0x7397d7[_0x527039(0x120)];return _0x50ccb3[_0x527039(0x127)](0x0,_0x1172bc)+'\x0a'+_0xd3ff07+_0x50ccb3['slice'](_0x1172bc);}}return _0x50ccb3[_0x527039(0x127)](0x0,_0x38ada4)+'\x0a'+_0xd3ff07+_0x50ccb3[_0x527039(0x127)](_0x38ada4);}async[a59_0x348a1c(0x122)](_0x47afdd,_0x214b34){const _0x14fea7=a59_0x348a1c;if(!a59_0x619160['existsSync'](this[_0x14fea7(0x116)]))throw new Error('路由文件不存在:\x20'+this['routerFilePath']);const _0x25e22d=await a59_0x619160['promises'][_0x14fea7(0x11e)](this[_0x14fea7(0x116)],_0x14fea7(0x12b)),_0x55fb1d=this[_0x14fea7(0x10c)](_0x47afdd);let _0x3f908d=this[_0x14fea7(0x100)](_0x25e22d,_0x55fb1d,_0x47afdd);return _0x3f908d=this[_0x14fea7(0x10a)](_0x3f908d,_0x214b34,_0x55fb1d),_0x3f908d;}}
@@ -1 +1 @@
1
- export function sleep(_0x5db0ba){return new Promise(_0x57dcc2=>setTimeout(_0x57dcc2,_0x5db0ba));}
1
+ export function sleep(_0x58abdb){return new Promise(_0x2d5459=>setTimeout(_0x2d5459,_0x58abdb));}
@@ -1 +1 @@
1
- const a58_0x181f98=a58_0x1412;function a58_0xbd26(){const _0x2342d8=['360580kPkiML','3BCeyws','模板内容替换完成','replaceApiContent','toLocaleDateString','78Yaxjer','mkdir','includes','.css','toLowerCase','keys','map','48zWCCJl','toDisplayTitle','6019536OmXJSI','join','4420uEYdwd','processTemplate','extname','.ts','api','2-digit','charAt','14113ZtgpZP','copyFile','readFile','utf8','writeFile','promises','replaceContent','name','toISOString','toLocaleString','196RXeorg','1YTPETR','toComponentName','YourModel','isFile','processDirectory','template','toLocaleTimeString','718442ljyUNF','slice','开始处理模板内容替换','toUpperCase','7488207KuxbWU','.jsx','success','isDirectory','numeric','137024vpOWfD','replace','.scss','endsWith','.json','3362356jiRDhG','split','now','.tpl','default','.tsx'];a58_0xbd26=function(){return _0x2342d8;};return a58_0xbd26();}function a58_0x1412(_0x24690f,_0x51a050){const _0xbd2689=a58_0xbd26();return a58_0x1412=function(_0x1412df,_0x3824a2){_0x1412df=_0x1412df-0xc1;let _0x205ddc=_0xbd2689[_0x1412df];return _0x205ddc;},a58_0x1412(_0x24690f,_0x51a050);}(function(_0x127b7f,_0x33459f){const _0x594653=a58_0x1412,_0x460dc0=_0x127b7f();while(!![]){try{const _0x472312=-parseInt(_0x594653(0xe9))/0x1*(parseInt(_0x594653(0xf0))/0x2)+parseInt(_0x594653(0xc8))/0x3*(-parseInt(_0x594653(0xc1))/0x4)+-parseInt(_0x594653(0xc7))/0x5*(-parseInt(_0x594653(0xd3))/0x6)+-parseInt(_0x594653(0xe8))/0x7*(parseInt(_0x594653(0xf9))/0x8)+-parseInt(_0x594653(0xf4))/0x9+parseInt(_0x594653(0xd7))/0xa*(-parseInt(_0x594653(0xde))/0xb)+-parseInt(_0x594653(0xd5))/0xc*(-parseInt(_0x594653(0xcc))/0xd);if(_0x472312===_0x33459f)break;else _0x460dc0['push'](_0x460dc0['shift']());}catch(_0x4a7790){_0x460dc0['push'](_0x460dc0['shift']());}}}(a58_0xbd26,0x7c121));import a58_0x25dcdd from'node:fs';import a58_0x54732c from'node:path';import{logger}from'./logger.js';export class TemplateReplacer{static[a58_0x181f98(0xea)](_0xb10a98){const _0x84af53=a58_0x181f98,_0x288f22=_0xb10a98[_0x84af53(0xc2)]('/')['pop']()||_0xb10a98;return _0x288f22[_0x84af53(0xc2)]('-')[_0x84af53(0xd2)](_0x3dd413=>_0x3dd413[_0x84af53(0xdd)](0x0)[_0x84af53(0xf3)]()+_0x3dd413['slice'](0x1)['toLowerCase']())['join']('');}static[a58_0x181f98(0xd4)](_0x268320){const _0x23b53c=a58_0x181f98,_0x2fcc75=_0x268320[_0x23b53c(0xc2)]('/')['pop']()||_0x268320;return _0x2fcc75[_0x23b53c(0xc2)]('-')[_0x23b53c(0xd2)](_0x399d05=>_0x399d05[_0x23b53c(0xdd)](0x0)[_0x23b53c(0xf3)]()+_0x399d05[_0x23b53c(0xf1)](0x1)[_0x23b53c(0xd0)]())[_0x23b53c(0xd6)]('\x20');}static[a58_0x181f98(0xe4)](_0x39f6c0,_0x165853,_0x40bcc0){const _0x2c89f6=a58_0x181f98,_0x5eb135=this['toComponentName'](_0x165853),_0x3e2b15=this[_0x2c89f6(0xd4)](_0x165853),_0x1609d3=new Date(),_0x4050b5=_0x1609d3[_0x2c89f6(0xe7)](undefined,{'year':_0x2c89f6(0xf8),'month':_0x2c89f6(0xdc),'day':_0x2c89f6(0xdc),'hour':_0x2c89f6(0xdc),'minute':'2-digit','second':'2-digit','hour12':![]})[_0x2c89f6(0xfa)](/\//g,'-'),_0x2be554=_0x1609d3[_0x2c89f6(0xcb)](undefined,{'year':_0x2c89f6(0xf8),'month':'2-digit','day':_0x2c89f6(0xdc)})[_0x2c89f6(0xfa)](/\//g,'-'),_0x2e404f=_0x1609d3[_0x2c89f6(0xef)](undefined,{'hour12':![]});let _0x53b098=_0x39f6c0[_0x2c89f6(0xfa)](/\{ComponentName\}/g,_0x5eb135)[_0x2c89f6(0xfa)](/\{DisplayTitle\}/g,_0x3e2b15)['replace'](/\{PageName\}/g,_0x165853)[_0x2c89f6(0xfa)](/\{TemplateName\}/g,_0x40bcc0)[_0x2c89f6(0xfa)](/\{CreatedAt\}/g,_0x4050b5)[_0x2c89f6(0xfa)](/\{CreatedDate\}/g,_0x2be554)[_0x2c89f6(0xfa)](/\{CreatedTime\}/g,_0x2e404f);return _0x53b098;}static[a58_0x181f98(0xca)](_0x24ff00,_0x1291a0,_0x141819,_0x3a7002,_0x1fe726,_0x21f7da,_0x5ee31b){const _0x5c038a=a58_0x181f98,_0x36115b=new Date(),_0x2fe14f=_0x36115b[_0x5c038a(0xe6)](),_0x3c1d3e=JSON['stringify'](_0x141819,null,0x2)[_0x5c038a(0xc2)]('\x0a')[_0x5c038a(0xf1)](0x1,-0x1)[_0x5c038a(0xd2)](_0x1f8a03=>_0x1f8a03[_0x5c038a(0xfa)](/^ /,'\x20\x20\x20\x20'))[_0x5c038a(0xd6)]('\x0a'),_0xb6eed9=_0x3a7002||Object[_0x5c038a(0xd1)](_0x141819)[0x0]||_0x5c038a(0xeb);let _0x403b88=_0x24ff00[_0x5c038a(0xfa)](/\{AppCode\}/g,_0x1291a0)[_0x5c038a(0xfa)](/\{ModelConfigs\}/g,_0x3c1d3e)['replace'](/\{ExampleModelName\}/g,_0xb6eed9)[_0x5c038a(0xfa)](/\{ApiFileName\}/g,_0x1fe726||_0x5c038a(0xdb))[_0x5c038a(0xfa)](/\{ConfigName\}/g,_0x21f7da||_0x5c038a(0xc5))[_0x5c038a(0xfa)](/\{ClientConfigParam\}/g,_0x5ee31b||'')['replace'](/\{CreatedAt\}/g,_0x2fe14f);return _0x403b88;}static async[a58_0x181f98(0xd8)](_0x58aa1c,_0x3e8664,_0x8ef161,_0x354e37,_0x515424=!![]){const _0x12fdc7=a58_0x181f98,_0x4742fa=Date[_0x12fdc7(0xc3)]();try{_0x515424&&logger['info'](_0x12fdc7(0xee),_0x12fdc7(0xf2),{'templatePath':_0x58aa1c,'targetPath':_0x3e8664,'pageName':_0x8ef161,'templateName':_0x354e37});await a58_0x25dcdd[_0x12fdc7(0xe3)][_0x12fdc7(0xcd)](_0x3e8664,{'recursive':!![]}),await this['processDirectory'](_0x58aa1c,_0x3e8664,_0x8ef161,_0x354e37);if(_0x515424){const _0x42678e=Date[_0x12fdc7(0xc3)]()-_0x4742fa;logger[_0x12fdc7(0xf6)](_0x12fdc7(0xee),_0x12fdc7(0xc9),_0x42678e,{'pageName':_0x8ef161,'templateName':_0x354e37});}}catch(_0x1d980f){if(_0x515424){const _0x1a1f8e=Date[_0x12fdc7(0xc3)]()-_0x4742fa;logger['error'](_0x12fdc7(0xee),'模板内容替换失败',{'templatePath':_0x58aa1c,'targetPath':_0x3e8664,'pageName':_0x8ef161,'templateName':_0x354e37,'error':_0x1d980f instanceof Error?_0x1d980f['message']:String(_0x1d980f),'duration':_0x1a1f8e});}throw _0x1d980f;}}static async['processDirectory'](_0x5e14be,_0x4f66f6,_0x2de6aa,_0x5c24ec){const _0x39b757=a58_0x181f98,_0x470e41=await a58_0x25dcdd[_0x39b757(0xe3)]['readdir'](_0x5e14be,{'withFileTypes':!![]});for(const _0xa676f6 of _0x470e41){const _0xed0925=a58_0x54732c[_0x39b757(0xd6)](_0x5e14be,_0xa676f6[_0x39b757(0xe5)]);let _0x423ed9=a58_0x54732c['join'](_0x4f66f6,_0xa676f6['name']);_0xa676f6[_0x39b757(0xe5)][_0x39b757(0xfc)](_0x39b757(0xc4))&&(_0x423ed9=a58_0x54732c[_0x39b757(0xd6)](_0x4f66f6,_0xa676f6[_0x39b757(0xe5)][_0x39b757(0xfa)](/\.tpl$/,'')));if(_0xa676f6[_0x39b757(0xf7)]())await a58_0x25dcdd[_0x39b757(0xe3)]['mkdir'](_0x423ed9,{'recursive':!![]}),await this[_0x39b757(0xed)](_0xed0925,_0x423ed9,_0x2de6aa,_0x5c24ec);else _0xa676f6[_0x39b757(0xec)]()&&await this['processFile'](_0xed0925,_0x423ed9,_0x2de6aa,_0x5c24ec);}}static async['processFile'](_0x13a1ea,_0x368a94,_0x432c15,_0x2f4c4f){const _0x4c50c4=a58_0x181f98,_0x31387c=a58_0x54732c[_0x4c50c4(0xd9)](_0x13a1ea)['toLowerCase']();_0x13a1ea[_0x4c50c4(0xfc)](_0x4c50c4(0xc4))&&(_0x368a94=_0x368a94[_0x4c50c4(0xfa)](/\.tpl$/,''));const _0x27af83=[_0x4c50c4(0xc6),_0x4c50c4(0xda),_0x4c50c4(0xf5),'.js',_0x4c50c4(0xfd),'.md',_0x4c50c4(0xcf),_0x4c50c4(0xfb),'.tpl'];if(_0x27af83[_0x4c50c4(0xce)](_0x31387c)||_0x13a1ea['endsWith'](_0x4c50c4(0xc4))){const _0x5e86fe=await a58_0x25dcdd[_0x4c50c4(0xe3)][_0x4c50c4(0xe0)](_0x13a1ea,'utf8'),_0x79540=this[_0x4c50c4(0xe4)](_0x5e86fe,_0x432c15,_0x2f4c4f);await a58_0x25dcdd['promises'][_0x4c50c4(0xe2)](_0x368a94,_0x79540,_0x4c50c4(0xe1));}else await a58_0x25dcdd[_0x4c50c4(0xe3)][_0x4c50c4(0xdf)](_0x13a1ea,_0x368a94);}}
1
+ const a61_0x25e3a7=a61_0x3af9;function a61_0x3af9(_0x2775cf,_0x14c408){_0x2775cf=_0x2775cf-0x1a8;const _0x1fdb36=a61_0x1fdb();let _0x3af912=_0x1fdb36[_0x2775cf];return _0x3af912;}(function(_0x498f44,_0x2d17a8){const _0x54b128=a61_0x3af9,_0xd2e899=_0x498f44();while(!![]){try{const _0x95c4f5=-parseInt(_0x54b128(0x1e2))/0x1*(parseInt(_0x54b128(0x1b2))/0x2)+parseInt(_0x54b128(0x1b6))/0x3+parseInt(_0x54b128(0x1d9))/0x4*(parseInt(_0x54b128(0x1dc))/0x5)+parseInt(_0x54b128(0x1b7))/0x6+parseInt(_0x54b128(0x1ad))/0x7+parseInt(_0x54b128(0x1e3))/0x8+-parseInt(_0x54b128(0x1b4))/0x9*(parseInt(_0x54b128(0x1df))/0xa);if(_0x95c4f5===_0x2d17a8)break;else _0xd2e899['push'](_0xd2e899['shift']());}catch(_0x549726){_0xd2e899['push'](_0xd2e899['shift']());}}}(a61_0x1fdb,0x61fe1));import a61_0x2fee1a from'node:fs';function a61_0x1fdb(){const _0xde54da=['toLocaleDateString','2dPXVwo','4547848oYnSmb','writeFile','includes','toUpperCase','slice','numeric','alias','push','\x20},','.tpl','datasetCode:\x20\x22','error','message','1929746lLHeek','.tsx','name','.md','mkdir','38566FyusHZ','2-digit','1764ZWGpcm','toComponentName','2083932WoAxBA','484620atHqbg','replace','promises','alias:\x20\x22','YourModel','utf8','success','\x0a\x20\x20\x20\x20{\x20','name:\x20\x22','pop','.scss','tableName:\x20\x22','processTemplate','.json','replaceContent','charAt','map','模板内容替换完成','toDisplayTitle','now','开始处理模板内容替换','info','toISOString','processFile','toLowerCase','processDirectory','.ts','endsWith','.jsx','.css','readFile','.js','split','template','24cEtnlS','tableName','datasetCode','140055VDYZOx','toLocaleString','replaceApiContent','68760DvufRW','join'];a61_0x1fdb=function(){return _0xde54da;};return a61_0x1fdb();}import a61_0x24a344 from'node:path';import{logger}from'./logger.js';export class TemplateReplacer{static['toComponentName'](_0x1e14b3){const _0x2b9d32=a61_0x3af9,_0x3d4dcb=_0x1e14b3[_0x2b9d32(0x1d7)]('/')['pop']()||_0x1e14b3;return _0x3d4dcb[_0x2b9d32(0x1d7)]('-')[_0x2b9d32(0x1c7)](_0x20e8d5=>_0x20e8d5['charAt'](0x0)[_0x2b9d32(0x1e6)]()+_0x20e8d5[_0x2b9d32(0x1e7)](0x1)[_0x2b9d32(0x1cf)]())[_0x2b9d32(0x1e0)]('');}static[a61_0x25e3a7(0x1c9)](_0x2d4583){const _0x5a1b7c=a61_0x25e3a7,_0x3bfaa1=_0x2d4583[_0x5a1b7c(0x1d7)]('/')[_0x5a1b7c(0x1c0)]()||_0x2d4583;return _0x3bfaa1[_0x5a1b7c(0x1d7)]('-')['map'](_0x3ed427=>_0x3ed427[_0x5a1b7c(0x1c6)](0x0)[_0x5a1b7c(0x1e6)]()+_0x3ed427[_0x5a1b7c(0x1e7)](0x1)[_0x5a1b7c(0x1cf)]())[_0x5a1b7c(0x1e0)]('\x20');}static[a61_0x25e3a7(0x1c5)](_0x4bc5de,_0x1736e1,_0x232820){const _0x59207f=a61_0x25e3a7,_0x305f53=this[_0x59207f(0x1b5)](_0x1736e1),_0x494372=this[_0x59207f(0x1c9)](_0x1736e1),_0x119f2a=new Date(),_0x115dd2=_0x119f2a[_0x59207f(0x1dd)](undefined,{'year':_0x59207f(0x1e8),'month':'2-digit','day':_0x59207f(0x1b3),'hour':_0x59207f(0x1b3),'minute':_0x59207f(0x1b3),'second':'2-digit','hour12':![]})[_0x59207f(0x1b8)](/\//g,'-'),_0x206fa9=_0x119f2a[_0x59207f(0x1e1)](undefined,{'year':_0x59207f(0x1e8),'month':'2-digit','day':_0x59207f(0x1b3)})['replace'](/\//g,'-'),_0xe270b5=_0x119f2a['toLocaleTimeString'](undefined,{'hour12':![]});let _0x104761=_0x4bc5de[_0x59207f(0x1b8)](/\{ComponentName\}/g,_0x305f53)[_0x59207f(0x1b8)](/\{DisplayTitle\}/g,_0x494372)[_0x59207f(0x1b8)](/\{PageName\}/g,_0x1736e1)[_0x59207f(0x1b8)](/\{TemplateName\}/g,_0x232820)[_0x59207f(0x1b8)](/\{CreatedAt\}/g,_0x115dd2)[_0x59207f(0x1b8)](/\{CreatedDate\}/g,_0x206fa9)[_0x59207f(0x1b8)](/\{CreatedTime\}/g,_0xe270b5);return _0x104761;}static[a61_0x25e3a7(0x1de)](_0x5065bc,_0x5a113f,_0xafb80a,_0xa64009,_0x527c58,_0x245673,_0x28b0e2){const _0x23d98f=a61_0x25e3a7,_0x5c7416=new Date(),_0x44a28a=_0x5c7416[_0x23d98f(0x1cd)](),_0xde054d=_0xafb80a[_0x23d98f(0x1c7)](_0x3df37c=>{const _0x215c9f=_0x23d98f,_0x1c08ea=[_0x215c9f(0x1aa)+_0x3df37c[_0x215c9f(0x1db)]+'\x22',_0x215c9f(0x1c2)+_0x3df37c[_0x215c9f(0x1da)]+'\x22',_0x215c9f(0x1bf)+_0x3df37c[_0x215c9f(0x1af)]+'\x22'];return _0x3df37c['alias']&&_0x1c08ea[_0x215c9f(0x1ea)](_0x215c9f(0x1ba)+_0x3df37c[_0x215c9f(0x1e9)]+'\x22'),_0x215c9f(0x1be)+_0x1c08ea[_0x215c9f(0x1e0)](',\x20')+_0x215c9f(0x1a8);})[_0x23d98f(0x1e0)](''),_0x54d1d3=_0xa64009||_0xafb80a[0x0]?.[_0x23d98f(0x1e9)]||_0x23d98f(0x1bb);let _0x45fdbb=_0x5065bc[_0x23d98f(0x1b8)](/\{AppCode\}/g,_0x5a113f)[_0x23d98f(0x1b8)](/\{ModelConfigs\}/g,_0xde054d)[_0x23d98f(0x1b8)](/\{ExampleModelName\}/g,_0x54d1d3)['replace'](/\{ApiFileName\}/g,_0x527c58||'api')[_0x23d98f(0x1b8)](/\{ConfigName\}/g,_0x245673||'default')[_0x23d98f(0x1b8)](/\{ClientConfigParam\}/g,_0x28b0e2||'')[_0x23d98f(0x1b8)](/\{CreatedAt\}/g,_0x44a28a);return _0x45fdbb;}static async[a61_0x25e3a7(0x1c3)](_0xa43e3,_0x53743b,_0x3c4381,_0xf2042e,_0x5e7ed1=!![]){const _0xe2ff2d=a61_0x25e3a7,_0x2b603b=Date[_0xe2ff2d(0x1ca)]();try{_0x5e7ed1&&logger[_0xe2ff2d(0x1cc)](_0xe2ff2d(0x1d8),_0xe2ff2d(0x1cb),{'templatePath':_0xa43e3,'targetPath':_0x53743b,'pageName':_0x3c4381,'templateName':_0xf2042e});await a61_0x2fee1a[_0xe2ff2d(0x1b9)]['mkdir'](_0x53743b,{'recursive':!![]}),await this[_0xe2ff2d(0x1d0)](_0xa43e3,_0x53743b,_0x3c4381,_0xf2042e);if(_0x5e7ed1){const _0xede5a2=Date[_0xe2ff2d(0x1ca)]()-_0x2b603b;logger[_0xe2ff2d(0x1bd)](_0xe2ff2d(0x1d8),_0xe2ff2d(0x1c8),_0xede5a2,{'pageName':_0x3c4381,'templateName':_0xf2042e});}}catch(_0x451627){if(_0x5e7ed1){const _0x19c0cf=Date[_0xe2ff2d(0x1ca)]()-_0x2b603b;logger[_0xe2ff2d(0x1ab)](_0xe2ff2d(0x1d8),'模板内容替换失败',{'templatePath':_0xa43e3,'targetPath':_0x53743b,'pageName':_0x3c4381,'templateName':_0xf2042e,'error':_0x451627 instanceof Error?_0x451627[_0xe2ff2d(0x1ac)]:String(_0x451627),'duration':_0x19c0cf});}throw _0x451627;}}static async['processDirectory'](_0x1ae37b,_0x50649d,_0x35276b,_0x2e9b3f){const _0x3473c3=a61_0x25e3a7,_0x56c7c3=await a61_0x2fee1a['promises']['readdir'](_0x1ae37b,{'withFileTypes':!![]});for(const _0x1583af of _0x56c7c3){const _0x3a47cf=a61_0x24a344[_0x3473c3(0x1e0)](_0x1ae37b,_0x1583af['name']);let _0x525a8c=a61_0x24a344[_0x3473c3(0x1e0)](_0x50649d,_0x1583af[_0x3473c3(0x1af)]);_0x1583af[_0x3473c3(0x1af)][_0x3473c3(0x1d2)]('.tpl')&&(_0x525a8c=a61_0x24a344[_0x3473c3(0x1e0)](_0x50649d,_0x1583af[_0x3473c3(0x1af)][_0x3473c3(0x1b8)](/\.tpl$/,'')));if(_0x1583af['isDirectory']())await a61_0x2fee1a[_0x3473c3(0x1b9)][_0x3473c3(0x1b1)](_0x525a8c,{'recursive':!![]}),await this[_0x3473c3(0x1d0)](_0x3a47cf,_0x525a8c,_0x35276b,_0x2e9b3f);else _0x1583af['isFile']()&&await this[_0x3473c3(0x1ce)](_0x3a47cf,_0x525a8c,_0x35276b,_0x2e9b3f);}}static async['processFile'](_0x21efc3,_0x2cb40c,_0x5ac83d,_0x30b11f){const _0x2fc4=a61_0x25e3a7,_0x19fcde=a61_0x24a344['extname'](_0x21efc3)['toLowerCase']();_0x21efc3['endsWith']('.tpl')&&(_0x2cb40c=_0x2cb40c['replace'](/\.tpl$/,''));const _0x34807b=[_0x2fc4(0x1ae),_0x2fc4(0x1d1),_0x2fc4(0x1d3),_0x2fc4(0x1d6),_0x2fc4(0x1c4),_0x2fc4(0x1b0),_0x2fc4(0x1d4),_0x2fc4(0x1c1),_0x2fc4(0x1a9)];if(_0x34807b[_0x2fc4(0x1e5)](_0x19fcde)||_0x21efc3['endsWith']('.tpl')){const _0x4b82d0=await a61_0x2fee1a[_0x2fc4(0x1b9)][_0x2fc4(0x1d5)](_0x21efc3,_0x2fc4(0x1bc)),_0x2c41a6=this[_0x2fc4(0x1c5)](_0x4b82d0,_0x5ac83d,_0x30b11f);await a61_0x2fee1a[_0x2fc4(0x1b9)][_0x2fc4(0x1e4)](_0x2cb40c,_0x2c41a6,'utf8');}else await a61_0x2fee1a[_0x2fc4(0x1b9)]['copyFile'](_0x21efc3,_0x2cb40c);}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/cli",
3
- "version": "1.1.26-beta.9",
3
+ "version": "1.2.1-beta.3",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "bin": {
6
6
  "lovrabet": "lib/cli.js"
@@ -44,12 +44,14 @@
44
44
  "meow": "^13.2.0",
45
45
  "prettier": "^3.6.2",
46
46
  "react": "^19.1.1",
47
+ "semver": "^7.7.3",
47
48
  "winston": "^3.17.0"
48
49
  },
49
50
  "devDependencies": {
50
51
  "@types/listr": "^0.14.9",
51
52
  "@types/node": "^24.5.2",
52
53
  "@types/react": "^19.1.12",
54
+ "@types/semver": "^7.7.1",
53
55
  "@vitest/coverage-v8": "^3.2.4",
54
56
  "@vitest/ui": "^3.2.4",
55
57
  "c8": "^10.1.3",
@@ -12,11 +12,16 @@ export const LOVRABET_APP_CODE = "{AppCode}";
12
12
 
13
13
  /**
14
14
  * 项目的模型配置
15
- * 包含所有数据表的映射关系
15
+ * 使用数组格式,每个模型包含 datasetCode、tableName、name 和可选的 alias
16
+ *
17
+ * 访问方式:
18
+ * - 标准访问:client.models.dataset_[datasetCode]
19
+ * - 别名访问:client.models.[alias](如果配置了 alias)
16
20
  */
17
21
  export const LOVRABET_MODELS_CONFIG: ModelsConfig = {
18
22
  appCode: LOVRABET_APP_CODE,
19
- models: {{ModelConfigs}}
23
+ models: [{ModelConfigs}
24
+ ]
20
25
  } as const;
21
26
 
22
27
  /**
@@ -31,12 +36,12 @@ registerModels(LOVRABET_MODELS_CONFIG, {ConfigName});
31
36
  * // 开发环境配置
32
37
  * registerModels({
33
38
  * appCode: 'app-dev-123',
34
- * models: { ... }
39
+ * models: [...]
35
40
  * }, 'dev');
36
41
  *
37
42
  * // 其他项目配置
38
43
  * registerModels({
39
44
  * appCode: 'other-project',
40
- * models: { ... }
45
+ * models: [...]
41
46
  * }, 'project-b');
42
47
  */
@@ -83,23 +83,90 @@ const response = await client.models.<modelName>.getOne(<id>);
83
83
  if (response.success) { ... } // 错误!成功时只返回 data 内容
84
84
  ```
85
85
 
86
- ### 3. 数据模型操作
86
+ ### 3. SDK 调用注释规范(人类友好)
87
87
 
88
- **重要提示:强烈建议使用 `filter()` 而不是 `getList()`**
88
+ **重要**:每次调用 SDK 方法时,必须在代码前添加注释说明正在调用的数据集和数据表,便于代码阅读和维护。
89
89
 
90
- `filter()` 方法在 v1.1.22+ 已支持 **OpenAPI 和 WebAPI 两种模式**,强烈建议优先使用:
91
- - 更强大的查询能力(支持复杂条件、范围查询、模糊匹配)
92
- - 更好的性能(通过 `select` 参数只返回需要的字段)
93
- - 更简洁的返回结构(直接返回 `{ tableData, total }`)
90
+ ```typescript
91
+ // 正确:添加数据集和数据表注释
92
+ // 数据集: 项目成员 | 数据表: project_members
93
+ const members = await client.models.projectMembers.filter({
94
+ where: { status: { $eq: 'active' } },
95
+ });
96
+
97
+ // 数据集: 用户信息 | 数据表: users
98
+ const user = await client.models.users.getOne(userId);
99
+
100
+ // 错误:缺少注释,不清楚在操作什么数据
101
+ const members = await client.models.projectMembers.filter({ ... });
102
+ ```
103
+
104
+ **注释格式**:`// 数据集: <数据集名称> | 数据表: <表名>`
105
+
106
+ 无论使用标准方式(`dataset_xxx`)还是别名方式(`projectMembers`),都应添加此注释。
107
+
108
+ ### 3.1 模型访问方式与别名规范
109
+
110
+ **⚠️ SDK 版本要求**:
111
+ - `dataset_[code]` 标准模式和 alias 别名模式需要 `@lovrabet/sdk >= 1.2.0`
112
+ - 如果用户的 SDK 版本 < 1.2.0,只能使用 `createClient` 或 `registerModels` 中配置的 key
113
+ - **编写代码前,请先检查用户 `package.json` 中的 `@lovrabet/sdk` 版本**
114
+
115
+ SDK 支持两种模型访问方式(需 SDK >= 1.2.0):
116
+
117
+ **1. 标准方式(默认推荐)**:使用 `dataset_[完整datasetCode]` 格式,稳定可靠,无需额外配置。
118
+
119
+ **2. 别名方式**:使用用户在 `createClient` 或 `registerModels` 中配置的 alias。
120
+
121
+ **重要规则**:
122
+ - 如果用户代码中已配置自定义 alias,**必须使用用户定义的 alias**
123
+ - 不要假设 alias 是默认的 camelCase 表名,先检查用户的 SDK 初始化代码
124
+
125
+ ```typescript
126
+ // 方式1:在 createClient 时定义 alias
127
+ const client = createClient({
128
+ appCode: '<appcode>',
129
+ models: {
130
+ // 用户自定义 alias 为 'members',而非默认的 'projectMembers'
131
+ members: {
132
+ tableName: 'project_members',
133
+ datasetCode: '<dataset-code>',
134
+ },
135
+ },
136
+ });
137
+
138
+ // 方式2:通过 registerModels 动态注册 alias
139
+ client.registerModels({
140
+ tasks: {
141
+ tableName: 'project_tasks',
142
+ datasetCode: '<dataset-code>',
143
+ },
144
+ });
145
+
146
+ // 正确:使用用户定义的 alias
147
+ const result = await client.models.members.filter({...});
148
+ const tasks = await client.models.tasks.filter({...});
149
+
150
+ // 错误:使用默认 alias,但用户配置的是 'members'
151
+ const result = await client.models.projectMembers.filter({...});
152
+ ```
153
+
154
+ **编写代码前,请先检查用户的 `createClient` 和 `registerModels` 代码,确认使用的是用户定义的 alias。**
155
+
156
+ ### 4. 数据模型操作
157
+
158
+ #### 列表查询:使用 `filter()` 方法
159
+
160
+ `filter()` 方法支持 **OpenAPI 和 WebAPI 两种模式**:
161
+ - 强大的查询能力(支持复杂条件、范围查询、模糊匹配)
162
+ - 高性能(通过 `select` 参数只返回需要的字段)
163
+ - 简洁的返回结构(直接返回 `{ tableData, total }`)
94
164
  - 支持 11 种条件操作符和 `$and`/`$or` 逻辑组合
95
165
  - 支持的操作符(11 种):
96
166
  - $eq, $ne, $gte ($gteq), $lte ($lteq), $in, $contain, $startWith, $endWith
97
167
  - 逻辑操作符:$and, $or(支持嵌套)
98
168
 
99
- #### 高级过滤查询(v1.1.22+,OpenAPI 和 WebAPI 都支持,强烈推荐!)
100
-
101
169
  ```typescript
102
- // 强烈推荐:filter 功能强大,性能更好,两种模式都支持
103
170
  const result = await client.models.<modelName>.filter({
104
171
  where: {
105
172
  $and: [
@@ -226,19 +293,16 @@ const options = await client.models.<modelName>.getSelectOptions({
226
293
  });
227
294
  ```
228
295
 
229
- ### 4. 认证模式支持(v1.1.22+ 更新)
296
+ ### 5. 认证模式支持
230
297
 
231
298
  **OpenAPI 模式(accessKey/token)**:
232
- - 支持:getList, getOne, create, update
233
- - 支持:**filter**(v1.1.22+ 新增)
299
+ - 支持:filter, getOne, create, update
234
300
  - 支持:executeSql
235
- - 不支持:user.getList
236
301
  - 不支持:delete(暂不支持)
237
302
  - 不支持:getSelectOptions(暂不支持)
238
303
 
239
304
  **WebAPI 模式(Cookie)**:
240
- - 支持:getList, getOne, create, update
241
- - 支持:filter
305
+ - 支持:filter, getOne, create, update
242
306
  - 支持:delete
243
307
  - 支持:getSelectOptions
244
308
  - 支持:executeSql
@@ -298,18 +362,12 @@ await client.models.<modelName>.create({
298
362
  ### 1. 减少 API 调用和数据传输
299
363
 
300
364
  ```typescript
301
- // 推荐:使用 filter + select 只返回需要的字段
365
+ // 使用 filter + select 只返回需要的字段
302
366
  const result = await client.models.<modelName>.filter({
303
367
  where: { <field>: <value> },
304
368
  select: ['<field1>', '<field2>', '<field3>'], // 只返回3个字段,减少数据传输
305
369
  });
306
370
 
307
- // 不推荐:getList 返回所有字段,浪费带宽
308
- const response = await client.models.<modelName>.getList({
309
- <field>: <value>,
310
- pageSize: 20,
311
- }); // 返回所有字段,无法筛选
312
-
313
371
  // 批量操作,避免循环
314
372
  const items = await Promise.all(
315
373
  ids.map(id => client.models.<modelName>.getOne(id))
@@ -377,8 +435,8 @@ const [loading, setLoading] = useState(false);
377
435
  async function loadData() {
378
436
  setLoading(true);
379
437
  try {
380
- const response = await client.models.<modelName>.getList({ pageSize: 20 });
381
- setData(response.tableData);
438
+ const result = await client.models.<modelName>.filter({ pageSize: 20 });
439
+ setData(result.tableData);
382
440
  } catch (error) {
383
441
  alert('加载失败');
384
442
  } finally {
@@ -401,9 +459,9 @@ interface DataType {
401
459
  <field2>: number;
402
460
  }
403
461
 
404
- const response = await client.models.<modelName>.getList<DataType>({ pageSize: 20 });
462
+ const result = await client.models.<modelName>.filter<DataType>({ pageSize: 20 });
405
463
 
406
- response.tableData.forEach(item => {
464
+ result.tableData.forEach(item => {
407
465
  console.log(item.<field1>); // 类型安全
408
466
  console.log(item.unknownField); // 编译错误
409
467
  });
@@ -420,9 +478,8 @@ response.tableData.forEach(item => {
420
478
  5. **不要假设返回值结构** - 注意不同方法返回值的差异
421
479
  6. **不要在循环中调用 API** - 使用 Promise.all 批量处理
422
480
  7. **不要在每次渲染时调用 API** - 使用 useEffect 控制
423
- 8. **不要使用 getList** - 应该使用功能更强大的 `filter()`(v1.1.22+ 两种模式都支持)
424
- 9. **不要忘记检查 execSuccess** - executeSql 返回的数据必须检查 `execSuccess` 状态
425
- 10. **不要假设 executeSql 返回数组** - 返回的是 `{ execSuccess, execResult }` 对象
481
+ 8. **不要忘记检查 execSuccess** - executeSql 返回的数据必须检查 `execSuccess` 状态
482
+ 9. **不要假设 executeSql 返回数组** - 返回的是 `{ execSuccess, execResult }` 对象
426
483
 
427
484
 
428
485
 
@@ -432,14 +489,13 @@ response.tableData.forEach(item => {
432
489
 
433
490
  | 方法 | 返回结构 | 认证限制 |
434
491
  |------|----------|----------|
435
- | `filter()` (推荐) | `{ tableData, total }` | **OpenAPI + WebAPI**(v1.1.22+)|
436
- | `getList()` | `{ paging, tableData, tableColumns }` | OpenAPI + WebAPI |
437
- | `executeSql()` | `{ execSuccess, execResult }` | OpenAPI + WebAPI |
438
- | `user.getList()` | `User[]` | OpenAPI + WebAPI |
492
+ | `filter()` | `{ tableData, total }` | OpenAPI + WebAPI |
439
493
  | `getOne()` | 单个对象 | OpenAPI + WebAPI |
440
494
  | `create/update()` | 操作结果对象 | OpenAPI + WebAPI |
441
495
  | `delete()` | 删除结果 | 仅 WebAPI |
442
496
  | `getSelectOptions()` | `[{ label, value }]` | 仅 WebAPI |
497
+ | `executeSql()` | `{ execSuccess, execResult }` | OpenAPI + WebAPI |
498
+ | `user.getList()` | `User[]` | 仅 WebAPI |
443
499
 
444
500
  ### 记住
445
501
 
@@ -448,7 +504,7 @@ response.tableData.forEach(item => {
448
504
  - **所有调用**:必须用 `try-catch` 包裹
449
505
  - **先获取元数据**:使用 MCP 确认字段存在
450
506
  - **注意参数名**:`select`(不是 `fields`),`orderBy`(不是 `sortList`)
451
- - **强烈推荐 filter**:两种模式都支持,用 `filter()` 而不是 `getList()`(v1.1.22+)
507
+ - **列表查询用 filter**:使用 `filter()` 方法进行列表查询
452
508
  - **executeSql 检查状态**:应用层必须检查 `execSuccess` 状态
453
509
  - **用户列表**:使用 `client.api.user.getList()` 获取平台用户
454
510
 
@@ -1 +0,0 @@
1
- function a18_0x304b(){const _0x4b13fd=['dots','yellow','!\x20未找到菜单资源链接','cyan','leftArrow','filter','188728lCFLGL',')(?:\x5c.|-)','label','317676baJVal','取消更新','match','upArrow','column','[?&]version=(','replace','main','downArrow','then','path','12LgGhdP','1153200aNnPXj','1.0.4','gray','√\x20资源版本更新成功','unknown','✗\x20待更新的菜单资源无法访问,请检查链接是否正确','继续更新','return','flat','2263689opMsGw','length','6RePWqy','red','value','209321hysFTH','\x5cd+\x5c.\x5cd+\x5c.\x5cd+(?:[-+A-Za-z0-9.]+)?','\x20命令重新登录','40779sSUirZ','green','1549176nnoWfo','cancel','map','lovrabet\x20auth','all','resources','from','rightArrow'];a18_0x304b=function(){return _0x4b13fd;};return a18_0x304b();}const a18_0x3d91a5=a18_0x36a0;(function(_0x516bc5,_0x3153fd){const _0x3e7dd7=a18_0x36a0,_0x5126ab=_0x516bc5();while(!![]){try{const _0x97ba0=-parseInt(_0x3e7dd7(0x143))/0x1*(-parseInt(_0x3e7dd7(0x131))/0x2)+parseInt(_0x3e7dd7(0x126))/0x3+parseInt(_0x3e7dd7(0x153))/0x4+-parseInt(_0x3e7dd7(0x132))/0x5*(parseInt(_0x3e7dd7(0x13d))/0x6)+parseInt(_0x3e7dd7(0x140))/0x7+parseInt(_0x3e7dd7(0x145))/0x8+-parseInt(_0x3e7dd7(0x13b))/0x9;if(_0x97ba0===_0x3153fd)break;else _0x5126ab['push'](_0x5126ab['shift']());}catch(_0x2b1590){_0x5126ab['push'](_0x5126ab['shift']());}}}(a18_0x304b,0x21f81));import{jsx as a18_0x38ba6d,jsxs as a18_0x2fdd20}from'react/jsx-runtime';import{Text,Box,useInput,useApp,render}from'ink';import{useEffect,useState}from'react';import a18_0x39df15 from'ink-spinner';import{useGetOnlineMenuList}from'../app-menu/use-get-online-menu-list.js';import{isUrlReachable}from'../app-menu/valid-url.js';function a18_0x36a0(_0xe7734a,_0x36d21f){const _0x304b80=a18_0x304b();return a18_0x36a0=function(_0x36a077,_0x1800c3){_0x36a077=_0x36a077-0x125;let _0x40e615=_0x304b80[_0x36a077];return _0x40e615;},a18_0x36a0(_0xe7734a,_0x36d21f);}import{updateMenuCdnUrl}from'./update-menu-cdn-url.js';import{CdnUrlCompareTable}from'./cdn-url-compare-table.js';import.meta[a18_0x3d91a5(0x12d)]&&render(a18_0x38ba6d(AppMenuSyncCdnVersionUI,{'newVersion':a18_0x3d91a5(0x133)}));export function AppMenuSyncCdnVersionUI(_0x133a8a){const _0x3c2013=a18_0x3d91a5,{exit:_0x28951c}=useApp(),{newVersion:_0x29b421}=_0x133a8a,{loading:_0x5d341b,menuList:_0x1fb549,error:_0x17d6fe}=useGetOnlineMenuList(),[_0x28a1aa,_0x3a933b]=useState(![]),[_0x428599,_0x5d1ccc]=useState(!![]),[_0x3248d2,_0x28134b]=useState('ok'),[_0x3b5a1b,_0x4aa3c4]=useState([]),_0x1a8647=Array[_0x3c2013(0x14b)](new Set(_0x1fb549['map'](_0x238e9f=>_0x238e9f[_0x3c2013(0x14a)])[_0x3c2013(0x13a)]()));useEffect(()=>{const _0x3fa47e=_0x3c2013;if(!_0x1a8647[_0x3fa47e(0x13c)])return;Promise['all'](_0x1a8647['map'](async _0x121268=>{const _0x21d370=_0x3fa47e,_0x611ed=_0x121268[_0x21d370(0x12c)](extractVersionFromUrl(_0x121268),_0x29b421),_0x5eaf45=await isUrlReachable(_0x611ed);if(_0x5eaf45)return'';return _0x611ed;}))[_0x3fa47e(0x12f)](_0xccbed1=>{const _0x2fdb17=_0x3fa47e;_0x4aa3c4(_0xccbed1[_0x2fdb17(0x152)](_0x103418=>_0x103418)),_0x5d1ccc(![]);});},[_0x1a8647['length'],_0x29b421]),useEffect(()=>{const _0xec9c93=_0x3c2013;(_0x28a1aa||_0x3b5a1b[_0xec9c93(0x13c)]>0x0)&&setTimeout(_0x28951c,0x32);},[_0x28a1aa,_0x3b5a1b[_0x3c2013(0x13c)]]),useInput(async(_0x589e95,_0x2068cf)=>{const _0x3035c1=_0x3c2013;if(_0x2068cf[_0x3035c1(0x129)]||_0x2068cf[_0x3035c1(0x12e)]||_0x2068cf[_0x3035c1(0x151)]||_0x2068cf[_0x3035c1(0x14c)]){_0x28134b(_0x35bb89=>_0x35bb89==='ok'?_0x3035c1(0x146):'ok');return;}if(_0x2068cf[_0x3035c1(0x139)]){if(_0x3248d2==='ok'){await Promise[_0x3035c1(0x149)](_0x1fb549[_0x3035c1(0x147)](_0x99974b=>{const _0x52eba9=_0x3035c1,_0x2a6588={'id':_0x99974b['id'],'label':_0x99974b[_0x52eba9(0x125)],'path':_0x99974b[_0x52eba9(0x130)],'resources':_0x99974b[_0x52eba9(0x14a)]['map'](_0x3d04a6=>_0x3d04a6[_0x52eba9(0x12c)](extractVersionFromUrl(_0x3d04a6),_0x29b421))};return updateMenuCdnUrl(_0x2a6588);})),_0x3a933b(!![]);return;}_0x3248d2===_0x3035c1(0x146)&&_0x28951c();}});if(_0x5d341b||_0x428599)return a18_0x2fdd20(Box,{'marginTop':0x1,'marginBottom':0x1,'children':[a18_0x38ba6d(Text,{'children':'\x20\x20'}),a18_0x38ba6d(a18_0x39df15,{'type':_0x3c2013(0x14d)}),a18_0x38ba6d(Text,{'children':'\x20正在获取线上菜单资源列表...'})]});if(_0x17d6fe)return a18_0x2fdd20(Box,{'flexDirection':_0x3c2013(0x12a),'marginTop':0x1,'marginBottom':0x1,'children':[a18_0x2fdd20(Text,{'color':_0x3c2013(0x13e),'children':['✗\x20',_0x17d6fe]}),a18_0x2fdd20(Box,{'marginTop':0x1,'children':[a18_0x38ba6d(Text,{'color':'gray','children':'提示:使用\x20'}),a18_0x38ba6d(Text,{'color':_0x3c2013(0x150),'children':_0x3c2013(0x148)}),a18_0x38ba6d(Text,{'color':_0x3c2013(0x134),'children':_0x3c2013(0x142)})]})]});if(_0x1a8647[_0x3c2013(0x13c)]===0x0)return a18_0x38ba6d(Box,{'marginTop':0x1,'marginBottom':0x1,'children':a18_0x38ba6d(Text,{'color':'yellow','children':_0x3c2013(0x14f)})});const _0x413088=_0x1a8647['map'](_0x147ab3=>({'cdnUrl':_0x147ab3,'currentVersion':extractVersionFromUrl(_0x147ab3)||_0x3c2013(0x136),'newVersion':_0x29b421}));if(_0x28a1aa)return a18_0x2fdd20(Box,{'flexDirection':_0x3c2013(0x12a),'marginTop':0x1,'marginBottom':0x1,'children':[a18_0x38ba6d(CdnUrlCompareTable,{'compareRows':_0x413088}),a18_0x38ba6d(Box,{'marginTop':0x1,'children':a18_0x38ba6d(Text,{'color':_0x3c2013(0x144),'children':_0x3c2013(0x135)})})]});if(_0x3b5a1b[_0x3c2013(0x13c)])return a18_0x2fdd20(Box,{'flexDirection':'column','marginTop':0x1,'marginBottom':0x1,'children':[a18_0x38ba6d(CdnUrlCompareTable,{'compareRows':_0x413088}),a18_0x2fdd20(Box,{'marginTop':0x1,'flexDirection':_0x3c2013(0x12a),'children':[a18_0x38ba6d(Text,{'color':'red','children':_0x3c2013(0x137)}),_0x3b5a1b[_0x3c2013(0x147)](_0x273611=>a18_0x38ba6d(Text,{'color':_0x3c2013(0x134),'children':'\x20\x20'+_0x273611},_0x273611))]})]});return a18_0x2fdd20(Box,{'flexDirection':'column','marginTop':0x1,'marginBottom':0x1,'children':[a18_0x38ba6d(CdnUrlCompareTable,{'compareRows':_0x413088}),a18_0x38ba6d(Box,{'marginTop':0x1,'children':a18_0x38ba6d(Text,{'color':_0x3c2013(0x150),'children':'*\x20更新菜单资源到\x20Lovrabet\x20平台'})}),a18_0x38ba6d(Box,{'marginTop':0x1,'flexDirection':_0x3c2013(0x12a),'children':[{'label':_0x3c2013(0x138),'value':'ok'},{'label':_0x3c2013(0x127),'value':'cancel'}][_0x3c2013(0x147)](_0x1d95a5=>a18_0x2fdd20(Text,{'color':_0x3248d2===_0x1d95a5[_0x3c2013(0x13f)]?_0x3c2013(0x14e):undefined,'children':[_0x3248d2===_0x1d95a5['value']?'>\x20':'\x20\x20',_0x1d95a5['label']]},_0x1d95a5[_0x3c2013(0x13f)]))})]});}function extractVersionFromUrl(_0x532d62){const _0x365ec2=a18_0x3d91a5;if(!_0x532d62)return'';const _0x253541=_0x365ec2(0x141),_0x561f48=[new RegExp('@('+_0x253541+')'),new RegExp('-('+_0x253541+_0x365ec2(0x154)),new RegExp('/v?('+_0x253541+')(?:/|$)'),new RegExp(_0x365ec2(0x12b)+_0x253541+')')];for(const _0x254330 of _0x561f48){const _0x1c3a2c=_0x532d62[_0x365ec2(0x128)](_0x254330);if(_0x1c3a2c&&_0x1c3a2c[0x1])return _0x1c3a2c[0x1];}return'';}
@@ -1 +0,0 @@
1
- function a19_0x2687(_0x716b73,_0x49a5b5){const _0x5cd8ca=a19_0x5cd8();return a19_0x2687=function(_0x268715,_0x4db8c8){_0x268715=_0x268715-0xa6;let _0x118327=_0x5cd8ca[_0x268715];return _0x118327;},a19_0x2687(_0x716b73,_0x49a5b5);}(function(_0x277e28,_0x4bd511){const _0x3f7a32=a19_0x2687,_0x1cbf51=_0x277e28();while(!![]){try{const _0xa2c869=parseInt(_0x3f7a32(0xb0))/0x1+-parseInt(_0x3f7a32(0xb7))/0x2*(-parseInt(_0x3f7a32(0xae))/0x3)+-parseInt(_0x3f7a32(0xa6))/0x4+parseInt(_0x3f7a32(0xaf))/0x5*(-parseInt(_0x3f7a32(0xb6))/0x6)+parseInt(_0x3f7a32(0xa8))/0x7*(-parseInt(_0x3f7a32(0xa7))/0x8)+-parseInt(_0x3f7a32(0xa9))/0x9+parseInt(_0x3f7a32(0xac))/0xa;if(_0xa2c869===_0x4bd511)break;else _0x1cbf51['push'](_0x1cbf51['shift']());}catch(_0x11503f){_0x1cbf51['push'](_0x1cbf51['shift']());}}}(a19_0x5cd8,0x88394));import{jsx as a19_0x141b2f,jsxs as a19_0x5b776f,Fragment as a19_0x56acf6}from'react/jsx-runtime';import{Text,Box}from'ink';function a19_0x5cd8(){const _0x3e45a3=['110530KIxsEI','176656aDJkFP','139304HPlbht','189EAvojD','4267917tPaHeM','currentVersion','新版本','9694440SSTAKK','green','21LJYJTU','5mjXxIF','521548izJzUG','资源链接','cdnUrl','map','newVersion','当前版本','1988082qXAOUz'];a19_0x5cd8=function(){return _0x3e45a3;};return a19_0x5cd8();}import{getMaxWidth,getRemainingSpaces,getStringWidth}from'../app-menu/utils.js';export function CdnUrlCompareTable(_0x39b3a3){const _0x4c9ca1=a19_0x2687,{compareRows:_0x23962d}=_0x39b3a3,_0x2c26b7=_0x23962d[_0x4c9ca1(0xb3)](_0x11db8e=>_0x11db8e[_0x4c9ca1(0xb2)]),_0x360acc=getStringWidth(getMaxWidth([_0x4c9ca1(0xb5),_0x4c9ca1(0xab)],0x2)),_0x7a5945=getStringWidth(getMaxWidth(_0x2c26b7,0x2));return a19_0x5b776f(a19_0x56acf6,{'children':[a19_0x141b2f(Text,{'color':'cyan','children':'*\x20待更新的菜单资源链接'}),a19_0x5b776f(Box,{'children':[a19_0x5b776f(Text,{'bold':!![],'children':['\x20\x20',_0x4c9ca1(0xb1),getRemainingSpaces(_0x7a5945,_0x4c9ca1(0xb1))]}),a19_0x5b776f(Text,{'bold':!![],'children':['当前版本',getRemainingSpaces(_0x360acc,_0x4c9ca1(0xb5))]}),a19_0x5b776f(Text,{'bold':!![],'children':[_0x4c9ca1(0xab),getRemainingSpaces(_0x360acc,'新版本')]})]}),_0x23962d[_0x4c9ca1(0xb3)](_0x30a627=>a19_0x5b776f(Box,{'children':[a19_0x5b776f(Text,{'children':['\x20\x20',_0x30a627['cdnUrl'],getRemainingSpaces(_0x7a5945,_0x30a627[_0x4c9ca1(0xb2)])]}),a19_0x5b776f(Text,{'color':_0x4c9ca1(0xad),'children':[_0x30a627[_0x4c9ca1(0xaa)],getRemainingSpaces(_0x360acc,_0x30a627['currentVersion'])]}),a19_0x5b776f(Text,{'color':'cyan','children':[_0x30a627['newVersion'],getRemainingSpaces(_0x360acc,_0x30a627[_0x4c9ca1(0xb4)])]})]},_0x30a627['cdnUrl']))]});}
@@ -1 +0,0 @@
1
- function a21_0x1f4f(){const _0x314100=['main','菜单资源同步成功:\x20','7087531hbFXKk','resources','/smartapi/menu/update','errorCode','11204TPeHKA','\x20\x20\x201.\x20直接指定:\x20lovrabet\x20api\x20pull\x20<app-code>','4281250HBJjOs','data','6VfbGlJ','error','未知错误','appcode','success','label','7507955svGtGC','未提供应用AppCode,且配置中也没有默认值','sdk-demo','stringify','update-menu-cdn-url','6QmdzwY','3OMNTFP','更新菜单资源失败:\x20','status','json','5045104QQcmnk','POST','8gigNJQ','errorMsg','\x20\x20\x202.\x20配置默认值:\x20lovrabet\x20config\x20set\x20app\x20<app-code>','log','info','133524mxIjGL','4647025LPEnST'];a21_0x1f4f=function(){return _0x314100;};return a21_0x1f4f();}const a21_0xaec8c8=a21_0x1360;function a21_0x1360(_0x65b6b0,_0x203a89){const _0x1f4f4e=a21_0x1f4f();return a21_0x1360=function(_0x1360cc,_0x4ae1b5){_0x1360cc=_0x1360cc-0x19e;let _0x2a4d40=_0x1f4f4e[_0x1360cc];return _0x2a4d40;},a21_0x1360(_0x65b6b0,_0x203a89);}(function(_0x3ae5ed,_0x412d32){const _0x31c2af=a21_0x1360,_0x4043c4=_0x3ae5ed();while(!![]){try{const _0x4f74a1=-parseInt(_0x31c2af(0x1c0))/0x1*(parseInt(_0x31c2af(0x1a1))/0x2)+parseInt(_0x31c2af(0x1ad))/0x3*(-parseInt(_0x31c2af(0x1b1))/0x4)+-parseInt(_0x31c2af(0x1b9))/0x5*(-parseInt(_0x31c2af(0x1ac))/0x6)+-parseInt(_0x31c2af(0x1a7))/0x7*(-parseInt(_0x31c2af(0x1b3))/0x8)+-parseInt(_0x31c2af(0x1b8))/0x9+-parseInt(_0x31c2af(0x19f))/0xa+parseInt(_0x31c2af(0x1bc))/0xb;if(_0x4f74a1===_0x412d32)break;else _0x4043c4['push'](_0x4043c4['shift']());}catch(_0x2bb611){_0x4043c4['push'](_0x4043c4['shift']());}}}(a21_0x1f4f,0xddc9a));import{getCookie}from'../auth/get-cookie.js';import{getApiDomain}from'../constant/domain.js';import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';const config=readConfig(),logLabel=a21_0xaec8c8(0x1ab);import.meta[a21_0xaec8c8(0x1ba)]&&updateMenuCdnUrl({'id':0xf41e,'label':'SdkDemo1','path':a21_0xaec8c8(0x1a9),'resources':['https://g.yuntooai.com/dist/yt-test-app/1.0.1/assets/main.js','https://g.yuntooai.com/dist/yt-test-app/1.0.1/assets/main.css']});export async function updateMenuCdnUrl(_0xb8edd9){const _0x3861e1=a21_0xaec8c8,_0x5811d5=config?.[_0x3861e1(0x1a4)];if(!_0x5811d5){const _0x3f58c8=_0x3861e1(0x1a8);logger['error'](logLabel,_0x3f58c8),console[_0x3861e1(0x1a2)]('×\x20'+_0x3f58c8),console[_0x3861e1(0x1b6)]('!\x20请使用以下方式之一:'),console[_0x3861e1(0x1b6)](_0x3861e1(0x19e)),console['log'](_0x3861e1(0x1b5));return;}logger[_0x3861e1(0x1b7)](logLabel,'正在更新菜单资源链接:\x20'+_0xb8edd9[_0x3861e1(0x1a6)]+'\x20('+_0xb8edd9['path']+')');const _0xf472ee={'id':_0xb8edd9['id'],'appCode':_0x5811d5,'extend':{'loadScriptMode':'import','resources':_0xb8edd9['resources']?JSON[_0x3861e1(0x1aa)](_0xb8edd9[_0x3861e1(0x1bd)]):undefined}},_0x178b2e=await fetch(getApiDomain()+_0x3861e1(0x1be),{'method':_0x3861e1(0x1b2),'body':JSON['stringify'](_0xf472ee),'headers':{'Content-Type':'application/json','Cookie':getCookie()}});if(!_0x178b2e['ok']){if(_0x178b2e[_0x3861e1(0x1af)]===0x191){const _0x49e697='登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录';logger['error'](logLabel,_0x49e697,{'status':_0x178b2e[_0x3861e1(0x1af)],'menu':_0xb8edd9[_0x3861e1(0x1a6)]});throw new Error(_0x49e697);}const _0xce9805='创建菜单失败,HTTP状态码:\x20'+_0x178b2e[_0x3861e1(0x1af)];logger['error'](logLabel,_0xce9805,{'menu':_0xb8edd9[_0x3861e1(0x1a6)]});throw new Error(_0xce9805);}const _0x33b40d=await _0x178b2e[_0x3861e1(0x1b0)]();if(!_0x33b40d[_0x3861e1(0x1a5)]){const _0x29b5c7=_0x3861e1(0x1ae)+(_0x33b40d[_0x3861e1(0x1b4)]||_0x3861e1(0x1a3));logger[_0x3861e1(0x1a2)](logLabel,_0x29b5c7,{'errorCode':_0x33b40d[_0x3861e1(0x1bf)],'errorMsg':_0x33b40d[_0x3861e1(0x1b4)],'menu':_0xb8edd9[_0x3861e1(0x1a6)]});throw new Error(_0x29b5c7);}logger[_0x3861e1(0x1b7)](logLabel,_0x3861e1(0x1bb)+_0xb8edd9[_0x3861e1(0x1a6)],_0x33b40d[_0x3861e1(0x1a0)]);}