@lovrabet/cli 1.3.2 → 1.3.4-beta.0

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 (89) hide show
  1. package/lib/ai-setup/AISetupUI.js +1 -1
  2. package/lib/ai-setup/config.js +1 -1
  3. package/lib/api/api-doc-ui.js +1 -1
  4. package/lib/api/api-doc.js +1 -1
  5. package/lib/api/api-pull-ui.js +1 -1
  6. package/lib/api/fetch-model-list.js +1 -1
  7. package/lib/api/generate-api-file.js +1 -1
  8. package/lib/api/main.js +1 -1
  9. package/lib/api/pull-silent.js +1 -1
  10. package/lib/app-menu/app-menu-sync-ui.js +1 -1
  11. package/lib/app-menu/create-menu.js +1 -1
  12. package/lib/app-menu/get-local-pages.js +1 -1
  13. package/lib/app-menu/get-online-menu-list.js +1 -1
  14. package/lib/app-menu/use-get-online-menu-list.js +1 -1
  15. package/lib/app-menu/utils.js +1 -1
  16. package/lib/app-menu/valid-url.js +1 -1
  17. package/lib/app-menu-update-cdn/current-content.js +1 -1
  18. package/lib/app-menu-update-cdn/input-cdn-asset.js +1 -1
  19. package/lib/app-menu-update-cdn/main.js +1 -1
  20. package/lib/app-menu-update-cdn/update-menu-cdn-url.js +1 -1
  21. package/lib/auth/auth-server-ui.js +1 -1
  22. package/lib/auth/auth-server.js +1 -1
  23. package/lib/auth/constant.js +1 -1
  24. package/lib/auth/get-cookie.js +1 -1
  25. package/lib/auth/is-session-valid.js +1 -1
  26. package/lib/auth/logout.js +1 -1
  27. package/lib/cli-flags.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-execa.js +1 -0
  34. package/lib/cmd/start.js +1 -1
  35. package/lib/config/config-help.js +1 -1
  36. package/lib/config/main.js +1 -1
  37. package/lib/constant/domain.js +1 -1
  38. package/lib/constant/env.js +1 -1
  39. package/lib/create-app/enhanced-guided-create.js +1 -1
  40. package/lib/create-app/format-elapsed.js +1 -1
  41. package/lib/create-app/main.js +1 -1
  42. package/lib/create-app/non-interactive.js +1 -1
  43. package/lib/create-app/task-finished.js +1 -1
  44. package/lib/create-app/task-loading.js +1 -1
  45. package/lib/create-app/task-running.js +1 -1
  46. package/lib/create-app/task-time.js +1 -1
  47. package/lib/create-app/use-copy-project-template.js +1 -1
  48. package/lib/create-app/use-format-code.js +1 -1
  49. package/lib/create-app/use-install-dependencies.js +1 -1
  50. package/lib/help.js +1 -1
  51. package/lib/i18n/I18nProvider.js +1 -0
  52. package/lib/i18n/hooks.js +1 -0
  53. package/lib/i18n/index.js +1 -0
  54. package/lib/i18n/locales/en-US.js +1 -0
  55. package/lib/i18n/locales/zh-CN.js +1 -0
  56. package/lib/init/main.js +1 -1
  57. package/lib/mcp/McpInstallUI.js +1 -1
  58. package/lib/mcp/claude.js +1 -1
  59. package/lib/mcp/cursor.js +1 -1
  60. package/lib/mcp/main.js +1 -1
  61. package/lib/mcp/mcp-install-non-interactive.js +1 -1
  62. package/lib/mcp/mcp-installer.js +1 -1
  63. package/lib/skills/SkillInstallUI.js +1 -1
  64. package/lib/skills/main.js +1 -1
  65. package/lib/skills/skill-install-non-interactive.js +1 -1
  66. package/lib/skills/skill-installer.js +1 -1
  67. package/lib/ui/IDESelector.js +1 -1
  68. package/lib/ui/useIDESelection.js +1 -1
  69. package/lib/utils/ai_config.js +1 -1
  70. package/lib/utils/cdn-config.js +1 -1
  71. package/lib/utils/check-sdk-version.js +1 -1
  72. package/lib/utils/cli-version-check.js +1 -1
  73. package/lib/utils/config.js +1 -1
  74. package/lib/utils/copy-directory.js +1 -1
  75. package/lib/utils/file-utils.js +1 -1
  76. package/lib/utils/guides-cdn.js +1 -1
  77. package/lib/utils/http-client.js +1 -1
  78. package/lib/utils/logger.js +1 -1
  79. package/lib/utils/rules-cdn.js +1 -1
  80. package/lib/utils/sleep.js +1 -1
  81. package/lib/utils/template-replacer.js +1 -1
  82. package/package.json +6 -1
  83. package/templates/README.md +10 -55
  84. package/lib/add-page/input-page-router.js +0 -1
  85. package/lib/add-page/main.js +0 -1
  86. package/lib/add-page/select-page-template.js +0 -1
  87. package/lib/utils/router-updater.js +0 -1
  88. package/templates/pages/blank/index.tsx.tpl +0 -13
  89. package/templates/pages/sdk-fetch/index.tsx.tpl +0 -80
@@ -1 +1 @@
1
- (function(_0x23bb9b,_0x1dcdd3){const _0x2d5b1d=a45_0xce4b,_0x1ef077=_0x23bb9b();while(!![]){try{const _0x45f7d6=parseInt(_0x2d5b1d(0x119))/0x1+parseInt(_0x2d5b1d(0x113))/0x2*(parseInt(_0x2d5b1d(0x126))/0x3)+parseInt(_0x2d5b1d(0x124))/0x4*(-parseInt(_0x2d5b1d(0x133))/0x5)+parseInt(_0x2d5b1d(0x115))/0x6+-parseInt(_0x2d5b1d(0x116))/0x7+-parseInt(_0x2d5b1d(0x117))/0x8+parseInt(_0x2d5b1d(0x131))/0x9;if(_0x45f7d6===_0x1dcdd3)break;else _0x1ef077['push'](_0x1ef077['shift']());}catch(_0x54ebc7){_0x1ef077['push'](_0x1ef077['shift']());}}}(a45_0x199a,0xccadb));import a45_0x4859b0 from'path';function a45_0xce4b(_0x29e192,_0x26cc6a){_0x29e192=_0x29e192-0x103;const _0x199ad7=a45_0x199a();let _0xce4b58=_0x199ad7[_0x29e192];return _0xce4b58;}import{fileURLToPath}from'url';import a45_0x122170 from'fs/promises';import{existsSync}from'fs';import{copyDirectory}from'../utils/copy-directory.js';import{exec}from'child_process';import{promisify}from'util';import{checkCliVersion,printCliUpgradeWarning}from'../utils/cli-version-check.js';function a45_0x199a(){const _0x4957a6=['×\x20项目名不能为空','join','W_OK','1419508TFNKBY','\x20\x20正在安装依赖...','249nJnfrj','\x0a√\x20项目\x20','\x20\x20√\x20代码已格式化','length','\x20\x20√\x20依赖安装跳过(非交互模式)','\x20\x20lovrabet\x20start\x0a','×\x20项目目录\x20','readFile','needsUpgrade','access','resolve','14677587GKMGec','lovrabet.config.json','5NYrINt','log','error','stringify','A\x20project\x20created\x20with\x20Lovrabet\x20CLI','×\x20项目名包含非法字符,不允许使用:\x20<\x20>\x20:\x20\x22\x20|\x20?\x20*\x20及控制字符','\x20\x20√\x20项目模板已创建','description','dirname','cwd','package.json','exit','bun','test','npm','bun\x20--version','\x0a\x20\x20cd\x20','parse','writeFile','22112uqotVi','../../templates/projects/sub-app-react-demo','3040650OXYKVD','8520904Qxiese','10079440bGHGXA','\x20\x20√\x20环境配置完成','615176SHfIiO','\x20\x20√\x20package.json\x20已更新','trim','\x20创建成功!','constants','env','×\x20项目创建失败:\x20','message'];a45_0x199a=function(){return _0x4957a6;};return a45_0x199a();}const execAsync=promisify(exec);function getTemplateDir(){const _0x927f35=a45_0xce4b,_0x409f4b=fileURLToPath(import.meta.url),_0x5dd3ad=a45_0x4859b0['dirname'](_0x409f4b);return a45_0x4859b0['resolve'](_0x5dd3ad,_0x927f35(0x114));}export async function createProjectNonInteractive(_0x306dd8,_0xc10da1){const _0x27fe3d=a45_0xce4b,_0x3c13e9=await checkCliVersion();_0x3c13e9[_0x27fe3d(0x12e)]&&printCliUpgradeWarning(_0x3c13e9);(!_0x306dd8||_0x306dd8[_0x27fe3d(0x11b)]()==='')&&(console['error'](_0x27fe3d(0x121)),process[_0x27fe3d(0x10b)](0x1));const _0x1102b1=/[<>:"|?*\x00-\x1f\x7f]/;_0x1102b1[_0x27fe3d(0x10d)](_0x306dd8)&&(console[_0x27fe3d(0x135)](_0x27fe3d(0x105)),process['exit'](0x1));_0x306dd8[_0x27fe3d(0x129)]>0x64&&(console['error']('×\x20项目名过长,最多支持\x20100\x20个字符'),process[_0x27fe3d(0x10b)](0x1));const _0x443f6f=a45_0x4859b0[_0x27fe3d(0x130)](process[_0x27fe3d(0x109)](),_0x306dd8);existsSync(_0x443f6f)&&(console[_0x27fe3d(0x135)](_0x27fe3d(0x12c)+_0x306dd8+'\x20已存在,请使用其他项目名'),process[_0x27fe3d(0x10b)](0x1));try{const _0xf38548=a45_0x4859b0[_0x27fe3d(0x108)](_0x443f6f);await a45_0x122170[_0x27fe3d(0x12f)](_0xf38548,a45_0x122170[_0x27fe3d(0x11d)][_0x27fe3d(0x123)]);}catch(_0xeeddfa){console[_0x27fe3d(0x135)]('×\x20无法在当前目录创建项目,请检查目录权限'),process[_0x27fe3d(0x10b)](0x1);}try{console[_0x27fe3d(0x134)]('*\x20正在创建项目\x20'+_0x306dd8+'...');const _0x25f01c=getTemplateDir();await copyDirectory(_0x25f01c,_0x443f6f),console[_0x27fe3d(0x134)](_0x27fe3d(0x106)),await updatePackageJsonName(_0x306dd8),console['log'](_0x27fe3d(0x11a)),console[_0x27fe3d(0x134)](_0x27fe3d(0x125)),console[_0x27fe3d(0x134)](_0x27fe3d(0x12a)),await formatCode(_0x443f6f),console[_0x27fe3d(0x134)](_0x27fe3d(0x128)),await configureAppEnv(_0x306dd8,_0xc10da1),console[_0x27fe3d(0x134)](_0x27fe3d(0x118)),console['log'](_0x27fe3d(0x127)+_0x306dd8+_0x27fe3d(0x11c)),console[_0x27fe3d(0x134)](_0x27fe3d(0x110)+_0x306dd8),console[_0x27fe3d(0x134)](_0x27fe3d(0x12b));}catch(_0x1a0902){const _0x38c9e5=_0x1a0902 instanceof Error?_0x1a0902[_0x27fe3d(0x120)]:String(_0x1a0902);try{existsSync(_0x443f6f)&&await a45_0x122170['rm'](_0x443f6f,{'recursive':!![],'force':!![]});}catch{}console['error'](_0x27fe3d(0x11f)+_0x38c9e5),process[_0x27fe3d(0x10b)](0x1);}}async function updatePackageJsonName(_0x3470cd){const _0x16922e=a45_0xce4b,_0x7b7abd=a45_0x4859b0['resolve'](process['cwd'](),_0x3470cd),_0x345ca7=a45_0x4859b0['join'](_0x7b7abd,_0x16922e(0x10a)),_0x2e277b=await a45_0x122170[_0x16922e(0x12d)](_0x345ca7,'utf-8'),_0x54242f=JSON[_0x16922e(0x111)](_0x2e277b);_0x54242f['name']=_0x3470cd,_0x54242f[_0x16922e(0x107)]=_0x16922e(0x104),await a45_0x122170[_0x16922e(0x112)](_0x345ca7,JSON[_0x16922e(0x103)](_0x54242f,null,0x2)+'\x0a');}async function installDependencies(_0x8b1d26){const _0x88f7a0=detectPackageManager(),_0x41371c=_0x88f7a0+'\x20install';try{await execAsync(_0x41371c,{'cwd':_0x8b1d26});}catch(_0x29469d){throw new Error('依赖安装失败:\x20'+_0x29469d);}}function detectPackageManager(){const _0x38ae6a=a45_0xce4b;try{return execAsync(_0x38ae6a(0x10f),{}),_0x38ae6a(0x10c);}catch{return _0x38ae6a(0x10e);}}async function formatCode(_0x5253c0){try{await execAsync('bun\x20run\x20format',{'cwd':_0x5253c0});}catch{}}async function configureAppEnv(_0xea5aad,_0xbc7221){const _0x5a394a=a45_0xce4b,_0xbe5dba=a45_0x4859b0[_0x5a394a(0x130)](process[_0x5a394a(0x109)](),_0xea5aad),_0x5938fc=a45_0x4859b0[_0x5a394a(0x122)](_0xbe5dba,_0x5a394a(0x132));let _0x318e82={};if(existsSync(_0x5938fc)){const _0x343075=await a45_0x122170[_0x5a394a(0x12d)](_0x5938fc,'utf-8');_0x318e82=JSON[_0x5a394a(0x111)](_0x343075);}_0xbc7221&&(_0x318e82[_0x5a394a(0x11e)]=_0xbc7221),await a45_0x122170[_0x5a394a(0x112)](_0x5938fc,JSON[_0x5a394a(0x103)](_0x318e82,null,0x2)+'\x0a');}
1
+ const a43_0x147257=a43_0x3f85;(function(_0x27eccb,_0x55de90){const _0x4786d0=a43_0x3f85,_0x126f4b=_0x27eccb();while(!![]){try{const _0x4981ef=parseInt(_0x4786d0(0x13e))/0x1*(parseInt(_0x4786d0(0x147))/0x2)+-parseInt(_0x4786d0(0x165))/0x3+-parseInt(_0x4786d0(0x150))/0x4*(parseInt(_0x4786d0(0x14b))/0x5)+parseInt(_0x4786d0(0x140))/0x6+-parseInt(_0x4786d0(0x163))/0x7*(parseInt(_0x4786d0(0x13f))/0x8)+-parseInt(_0x4786d0(0x13a))/0x9+parseInt(_0x4786d0(0x15e))/0xa;if(_0x4981ef===_0x55de90)break;else _0x126f4b['push'](_0x126f4b['shift']());}catch(_0x229cdb){_0x126f4b['push'](_0x126f4b['shift']());}}}(a43_0x3c72,0x70217));import a43_0x29af00 from'path';import{fileURLToPath}from'url';function a43_0x3c72(){const _0x44df44=['exit','\x0a\x20\x20cd\x20','create.validation.required','create.validation.noPermission','依赖安装失败:\x20','test','create.nonInteractive.codeFormatted','20170630zkNUcB','error','resolve','bun\x20--version','parse','10465GmXykQ','log','1421217JcTLGQ','create.nonInteractive.envConfigured','bun','create.nonInteractive.installingDeps','lovrabet.config.json','message','3080241cBjjmT','create.nonInteractive.success','readFile','../../templates/projects/sub-app-react-demo','111746EVBkyT','4616qMqqGK','5286510jYcrLS','utf-8','join','bind','constants','create.validation.tooLong','npm','2SkbjKw','description','needsUpgrade','create.nonInteractive.depsSkipped','1453340TMaYQz','create.nonInteractive.packageJsonUpdated','\x20install','W_OK','\x20\x20lovrabet\x20start\x0a','12rVpwQi','length','name','writeFile','dirname','cwd','create.errors.createFailed'];a43_0x3c72=function(){return _0x44df44;};return a43_0x3c72();}import a43_0x10b1a3 from'fs/promises';import{existsSync}from'fs';import{copyDirectory}from'../utils/copy-directory.js';import{exec}from'child_process';function a43_0x3f85(_0x866945,_0x20975e){_0x866945=_0x866945-0x137;const _0x3c722f=a43_0x3c72();let _0x3f8587=_0x3c722f[_0x866945];return _0x3f8587;}import{promisify}from'util';import{checkCliVersion,printCliUpgradeWarning}from'../utils/cli-version-check.js';import a43_0x39a486 from'../i18n/index.js';const t=a43_0x39a486['t'][a43_0x147257(0x143)](a43_0x39a486),execAsync=promisify(exec);function getTemplateDir(){const _0x5894d4=a43_0x147257,_0x5944d2=fileURLToPath(import.meta.url),_0x558f83=a43_0x29af00[_0x5894d4(0x154)](_0x5944d2);return a43_0x29af00[_0x5894d4(0x160)](_0x558f83,_0x5894d4(0x13d));}export async function createProjectNonInteractive(_0x1b81e9,_0x5f44de){const _0x573557=a43_0x147257,_0x1ef69f=await checkCliVersion();_0x1ef69f[_0x573557(0x149)]&&printCliUpgradeWarning(_0x1ef69f);(!_0x1b81e9||_0x1b81e9['trim']()==='')&&(console['error'](t(_0x573557(0x159))),process['exit'](0x1));const _0x3c838d=/[<>:"|?*\x00-\x1f\x7f]/;_0x3c838d[_0x573557(0x15c)](_0x1b81e9)&&(console[_0x573557(0x15f)](t('create.validation.invalidChars')),process[_0x573557(0x157)](0x1));_0x1b81e9[_0x573557(0x151)]>0x64&&(console[_0x573557(0x15f)](t(_0x573557(0x145))),process[_0x573557(0x157)](0x1));const _0x3edd3e=a43_0x29af00[_0x573557(0x160)](process['cwd'](),_0x1b81e9);existsSync(_0x3edd3e)&&(console['error'](t('create.validation.dirExists',{'name':_0x1b81e9})),process['exit'](0x1));try{const _0x182980=a43_0x29af00[_0x573557(0x154)](_0x3edd3e);await a43_0x10b1a3['access'](_0x182980,a43_0x10b1a3[_0x573557(0x144)][_0x573557(0x14e)]);}catch(_0x16200a){console['error'](t(_0x573557(0x15a))),process[_0x573557(0x157)](0x1);}try{console[_0x573557(0x164)](t('create.nonInteractive.creating',{'name':_0x1b81e9}));const _0x451a9b=getTemplateDir();await copyDirectory(_0x451a9b,_0x3edd3e),console[_0x573557(0x164)](t('create.nonInteractive.templateCreated')),await updatePackageJsonName(_0x1b81e9),console['log'](t(_0x573557(0x14c))),console[_0x573557(0x164)](t(_0x573557(0x137))),console[_0x573557(0x164)](t(_0x573557(0x14a))),await formatCode(_0x3edd3e),console['log'](t(_0x573557(0x15d))),await configureAppEnv(_0x1b81e9,_0x5f44de),console['log'](t(_0x573557(0x166))),console[_0x573557(0x164)](t(_0x573557(0x13b),{'name':_0x1b81e9})),console[_0x573557(0x164)](_0x573557(0x158)+_0x1b81e9),console['log'](_0x573557(0x14f));}catch(_0x42eba2){const _0x39a437=_0x42eba2 instanceof Error?_0x42eba2[_0x573557(0x139)]:String(_0x42eba2);try{existsSync(_0x3edd3e)&&await a43_0x10b1a3['rm'](_0x3edd3e,{'recursive':!![],'force':!![]});}catch{}console[_0x573557(0x15f)](t(_0x573557(0x156),{'error':_0x39a437})),process['exit'](0x1);}}async function updatePackageJsonName(_0x4391ea){const _0x48e72c=a43_0x147257,_0x2b4425=a43_0x29af00[_0x48e72c(0x160)](process[_0x48e72c(0x155)](),_0x4391ea),_0xbdaf11=a43_0x29af00[_0x48e72c(0x142)](_0x2b4425,'package.json'),_0x163610=await a43_0x10b1a3[_0x48e72c(0x13c)](_0xbdaf11,_0x48e72c(0x141)),_0x70aa6e=JSON['parse'](_0x163610);_0x70aa6e[_0x48e72c(0x152)]=_0x4391ea,_0x70aa6e[_0x48e72c(0x148)]='A\x20project\x20created\x20with\x20Lovrabet\x20CLI',await a43_0x10b1a3[_0x48e72c(0x153)](_0xbdaf11,JSON['stringify'](_0x70aa6e,null,0x2)+'\x0a');}async function installDependencies(_0x10cc07){const _0x27d990=a43_0x147257,_0x53ea6a=detectPackageManager(),_0x34a8d3=_0x53ea6a+_0x27d990(0x14d);try{await execAsync(_0x34a8d3,{'cwd':_0x10cc07});}catch(_0x1fb580){throw new Error(_0x27d990(0x15b)+_0x1fb580);}}function detectPackageManager(){const _0x74112=a43_0x147257;try{return execAsync(_0x74112(0x161),{}),_0x74112(0x167);}catch{return _0x74112(0x146);}}async function formatCode(_0x27ca1a){try{await execAsync('bun\x20run\x20format',{'cwd':_0x27ca1a});}catch{}}async function configureAppEnv(_0x2b3579,_0x4466a0){const _0x5ea269=a43_0x147257,_0x53259b=a43_0x29af00[_0x5ea269(0x160)](process[_0x5ea269(0x155)](),_0x2b3579),_0xfda1b7=a43_0x29af00['join'](_0x53259b,_0x5ea269(0x138));let _0x558f31={};if(existsSync(_0xfda1b7)){const _0x175a8d=await a43_0x10b1a3[_0x5ea269(0x13c)](_0xfda1b7,_0x5ea269(0x141));_0x558f31=JSON[_0x5ea269(0x162)](_0x175a8d);}_0x4466a0&&(_0x558f31['env']=_0x4466a0),await a43_0x10b1a3[_0x5ea269(0x153)](_0xfda1b7,JSON['stringify'](_0x558f31,null,0x2)+'\x0a');}
@@ -1 +1 @@
1
- (function(_0x401941,_0x4a47a8){var _0x30ea6c=a46_0x239b,_0x43a263=_0x401941();while(!![]){try{var _0x1b078b=-parseInt(_0x30ea6c(0x1d6))/0x1+parseInt(_0x30ea6c(0x1da))/0x2*(-parseInt(_0x30ea6c(0x1d7))/0x3)+-parseInt(_0x30ea6c(0x1db))/0x4*(-parseInt(_0x30ea6c(0x1dc))/0x5)+-parseInt(_0x30ea6c(0x1d9))/0x6*(-parseInt(_0x30ea6c(0x1d3))/0x7)+-parseInt(_0x30ea6c(0x1d5))/0x8+parseInt(_0x30ea6c(0x1dd))/0x9*(parseInt(_0x30ea6c(0x1de))/0xa)+parseInt(_0x30ea6c(0x1d8))/0xb;if(_0x1b078b===_0x4a47a8)break;else _0x43a263['push'](_0x43a263['shift']());}catch(_0x41eaac){_0x43a263['push'](_0x43a263['shift']());}}}(a46_0x43b7,0x4e147));function a46_0x43b7(){var _0x238c1a=['568675fMsooZ','45174xZIDpB','11930963GpTnsz','6klqitv','78eLGqno','8yrJmBW','255545GFjciK','614682lVNhhL','60fZwvJg','taskName','19264TeEqVC','elapsed','989112BKcMfm'];a46_0x43b7=function(){return _0x238c1a;};return a46_0x43b7();}function a46_0x239b(_0x5d7104,_0xc54cd){_0x5d7104=_0x5d7104-0x1d3;var _0x43b7c5=a46_0x43b7();var _0x239ba9=_0x43b7c5[_0x5d7104];return _0x239ba9;}import{jsx as a46_0x251b1b,jsxs as a46_0x445dcf}from'react/jsx-runtime';import{Box,Text}from'ink';import{TaskTime}from'./task-time.js';export function TaskFinished(_0x3a7f86){var _0x3de75a=a46_0x239b;return a46_0x445dcf(Box,{'children':[a46_0x251b1b(Box,{'width':'1'}),a46_0x251b1b(Text,{'color':'green','children':'\x20√\x20'}),a46_0x251b1b(Text,{'children':_0x3a7f86[_0x3de75a(0x1df)]}),a46_0x251b1b(TaskTime,{'elapsed':_0x3a7f86[_0x3de75a(0x1d4)]})]});}
1
+ (function(_0x56fc18,_0x2491d3){var _0x577fa5=a44_0x4327,_0x4b9046=_0x56fc18();while(!![]){try{var _0x55f90f=-parseInt(_0x577fa5(0x158))/0x1*(parseInt(_0x577fa5(0x153))/0x2)+parseInt(_0x577fa5(0x14c))/0x3*(-parseInt(_0x577fa5(0x14e))/0x4)+parseInt(_0x577fa5(0x151))/0x5*(parseInt(_0x577fa5(0x159))/0x6)+parseInt(_0x577fa5(0x157))/0x7*(-parseInt(_0x577fa5(0x152))/0x8)+-parseInt(_0x577fa5(0x14d))/0x9+-parseInt(_0x577fa5(0x150))/0xa*(-parseInt(_0x577fa5(0x155))/0xb)+-parseInt(_0x577fa5(0x156))/0xc;if(_0x55f90f===_0x2491d3)break;else _0x4b9046['push'](_0x4b9046['shift']());}catch(_0x11bc34){_0x4b9046['push'](_0x4b9046['shift']());}}}(a44_0x5319,0xd0a41));import{jsx as a44_0x90b27f,jsxs as a44_0x5a0a76}from'react/jsx-runtime';import{Box,Text}from'ink';function a44_0x5319(){var _0xeaccc0=['7515252FBrblF','5173pdPjRn','99562QqTyOc','233718JOtUoi','242664pKcrDA','275409hLIayK','4jhWnXJ','taskName','789380yElHcc','130PMCMNr','3272GuOLdz','14bZwFcJ','green','220fYBvaq'];a44_0x5319=function(){return _0xeaccc0;};return a44_0x5319();}function a44_0x4327(_0x1965ee,_0x2d9f5f){_0x1965ee=_0x1965ee-0x14c;var _0x53192e=a44_0x5319();var _0x43270e=_0x53192e[_0x1965ee];return _0x43270e;}import{TaskTime}from'./task-time.js';export function TaskFinished(_0x2c5622){var _0x384204=a44_0x4327;return a44_0x5a0a76(Box,{'children':[a44_0x90b27f(Box,{'width':'1'}),a44_0x90b27f(Text,{'color':_0x384204(0x154),'children':'\x20√\x20'}),a44_0x90b27f(Text,{'children':_0x2c5622[_0x384204(0x14f)]}),a44_0x90b27f(TaskTime,{'elapsed':_0x2c5622['elapsed']})]});}
@@ -1 +1 @@
1
- function a47_0x414f(_0x56961b,_0x19278a){_0x56961b=_0x56961b-0x17d;var _0x1eb982=a47_0x1eb9();var _0x414f0b=_0x1eb982[_0x56961b];return _0x414f0b;}function a47_0x1eb9(){var _0x5dba18=['58976qGGbaI','62757pSdmml','889504VrTwVe','10947699fdyVaB','6416934gAHOwq','\x20√\x20','12mjrNmK','464410nijBpk','green','loading','dots','4384qbiqYe','1515995RRAxOb'];a47_0x1eb9=function(){return _0x5dba18;};return a47_0x1eb9();}(function(_0x3f8c0e,_0x146754){var _0x58596c=a47_0x414f,_0x5136a7=_0x3f8c0e();while(!![]){try{var _0x263db0=-parseInt(_0x58596c(0x184))/0x1+-parseInt(_0x58596c(0x189))/0x2*(-parseInt(_0x58596c(0x188))/0x3)+-parseInt(_0x58596c(0x182))/0x4+-parseInt(_0x58596c(0x181))/0x5+-parseInt(_0x58596c(0x186))/0x6+-parseInt(_0x58596c(0x185))/0x7+-parseInt(_0x58596c(0x180))/0x8*(-parseInt(_0x58596c(0x183))/0x9);if(_0x263db0===_0x146754)break;else _0x5136a7['push'](_0x5136a7['shift']());}catch(_0x3b2294){_0x5136a7['push'](_0x5136a7['shift']());}}}(a47_0x1eb9,0xddf4b));import{jsx as a47_0x1f3338,jsxs as a47_0x1ac878}from'react/jsx-runtime';import{Text}from'ink';import a47_0x25bbae from'ink-spinner';export function TaskLoading(_0x59eccf){var _0x17a058=a47_0x414f;if(_0x59eccf['finished'])return a47_0x1f3338(Text,{'color':_0x17a058(0x17d),'children':_0x17a058(0x187)});if(_0x59eccf[_0x17a058(0x17e)])return a47_0x1ac878(Text,{'color':'green','children':['\x20',a47_0x1f3338(a47_0x25bbae,{'type':_0x17a058(0x17f)}),'\x20']});return a47_0x1f3338(Text,{'children':'\x20\x20\x20'});}
1
+ (function(_0x3b3334,_0x370e97){var _0x59e415=a45_0x1a78,_0x56e0a2=_0x3b3334();while(!![]){try{var _0x128c8b=parseInt(_0x59e415(0x1c5))/0x1*(parseInt(_0x59e415(0x1c3))/0x2)+-parseInt(_0x59e415(0x1c6))/0x3+parseInt(_0x59e415(0x1c2))/0x4*(-parseInt(_0x59e415(0x1be))/0x5)+parseInt(_0x59e415(0x1c7))/0x6+-parseInt(_0x59e415(0x1bf))/0x7+-parseInt(_0x59e415(0x1c0))/0x8+parseInt(_0x59e415(0x1c8))/0x9;if(_0x128c8b===_0x370e97)break;else _0x56e0a2['push'](_0x56e0a2['shift']());}catch(_0x49a491){_0x56e0a2['push'](_0x56e0a2['shift']());}}}(a45_0x4a82,0xc8510));import{jsx as a45_0x38383a,jsxs as a45_0x2a84b0}from'react/jsx-runtime';function a45_0x4a82(){var _0xa8bbf1=['finished','loading','1300bZOpZz','2119348yHhrDd','11550784QSEDeF','dots','11192tISsAE','1853890QPeVrc','\x20√\x20','1OeoCUg','415995cbgqgq','2829138cwxYgD','18313065KhTyex','green'];a45_0x4a82=function(){return _0xa8bbf1;};return a45_0x4a82();}import{Text}from'ink';import a45_0x5d192e from'ink-spinner';function a45_0x1a78(_0x569b5d,_0x2487ca){_0x569b5d=_0x569b5d-0x1bb;var _0x4a8251=a45_0x4a82();var _0x1a781b=_0x4a8251[_0x569b5d];return _0x1a781b;}export function TaskLoading(_0x493a0a){var _0x1c76c6=a45_0x1a78;if(_0x493a0a[_0x1c76c6(0x1bc)])return a45_0x38383a(Text,{'color':_0x1c76c6(0x1bb),'children':_0x1c76c6(0x1c4)});if(_0x493a0a[_0x1c76c6(0x1bd)])return a45_0x2a84b0(Text,{'color':_0x1c76c6(0x1bb),'children':['\x20',a45_0x38383a(a45_0x5d192e,{'type':_0x1c76c6(0x1c1)}),'\x20']});return a45_0x38383a(Text,{'children':'\x20\x20\x20'});}
@@ -1 +1 @@
1
- (function(_0x158d23,_0x599dae){var _0x2a0f18=a48_0x3122,_0x31cd3a=_0x158d23();while(!![]){try{var _0x416e8c=parseInt(_0x2a0f18(0x19b))/0x1+-parseInt(_0x2a0f18(0x1a3))/0x2+-parseInt(_0x2a0f18(0x1a1))/0x3*(parseInt(_0x2a0f18(0x19e))/0x4)+-parseInt(_0x2a0f18(0x1a2))/0x5*(-parseInt(_0x2a0f18(0x19a))/0x6)+parseInt(_0x2a0f18(0x199))/0x7+parseInt(_0x2a0f18(0x19f))/0x8*(-parseInt(_0x2a0f18(0x1a0))/0x9)+parseInt(_0x2a0f18(0x19c))/0xa;if(_0x416e8c===_0x599dae)break;else _0x31cd3a['push'](_0x31cd3a['shift']());}catch(_0x102622){_0x31cd3a['push'](_0x31cd3a['shift']());}}}(a48_0xeb3a,0x92684));function a48_0xeb3a(){var _0xf7a5c9=['5176311EYkLuL','6QAXRdn','900829srZjet','6071430IqJarG','taskName','1722652HQLqLb','60184bSjWMm','1017zrwaRF','3yRThYs','925655lkjYAP','1104260PRvRTW'];a48_0xeb3a=function(){return _0xf7a5c9;};return a48_0xeb3a();}import{jsx as a48_0x58564c,jsxs as a48_0x45d702}from'react/jsx-runtime';import{Box,Text}from'ink';import{TaskLoading}from'./task-loading.js';function a48_0x3122(_0x3cda09,_0x30bd62){_0x3cda09=_0x3cda09-0x199;var _0xeb3a08=a48_0xeb3a();var _0x312217=_0xeb3a08[_0x3cda09];return _0x312217;}import{TaskTime}from'./task-time.js';export function TaskRunning(_0xbb52c9){var _0x2176e8=a48_0x3122;return a48_0x45d702(Box,{'children':[a48_0x58564c(Box,{'width':'1'}),a48_0x58564c(TaskLoading,{..._0xbb52c9}),a48_0x58564c(Text,{'children':_0xbb52c9[_0x2176e8(0x19d)]}),a48_0x58564c(TaskTime,{'elapsed':_0xbb52c9['elapsed']})]});}
1
+ (function(_0x45b669,_0x3aee10){var _0x381384=a46_0x5e5e,_0x5ef9f4=_0x45b669();while(!![]){try{var _0x49cf82=parseInt(_0x381384(0xc3))/0x1*(parseInt(_0x381384(0xc0))/0x2)+-parseInt(_0x381384(0xba))/0x3*(parseInt(_0x381384(0xc5))/0x4)+parseInt(_0x381384(0xbe))/0x5*(-parseInt(_0x381384(0xbd))/0x6)+-parseInt(_0x381384(0xbc))/0x7+-parseInt(_0x381384(0xc4))/0x8+-parseInt(_0x381384(0xbb))/0x9*(-parseInt(_0x381384(0xc1))/0xa)+parseInt(_0x381384(0xb9))/0xb;if(_0x49cf82===_0x3aee10)break;else _0x5ef9f4['push'](_0x5ef9f4['shift']());}catch(_0x35dbe9){_0x5ef9f4['push'](_0x5ef9f4['shift']());}}}(a46_0x33ca,0x6e0bf));import{jsx as a46_0x6be4c1,jsxs as a46_0x3b2b0d}from'react/jsx-runtime';function a46_0x33ca(){var _0x20c828=['15nwIelA','taskName','57170VmORWU','2843410ozsnEc','elapsed','11DULvaa','7076592TCuxEU','31956MPAEGm','27904250YmCItb','207tWkwxl','9ivHjOs','3653181NONOUx','1454154MIYNDX'];a46_0x33ca=function(){return _0x20c828;};return a46_0x33ca();}import{Box,Text}from'ink';function a46_0x5e5e(_0x595a28,_0x10dc27){_0x595a28=_0x595a28-0xb9;var _0x33ca3d=a46_0x33ca();var _0x5e5e84=_0x33ca3d[_0x595a28];return _0x5e5e84;}import{TaskLoading}from'./task-loading.js';import{TaskTime}from'./task-time.js';export function TaskRunning(_0x21e273){var _0x3e7dd8=a46_0x5e5e;return a46_0x3b2b0d(Box,{'children':[a46_0x6be4c1(Box,{'width':'1'}),a46_0x6be4c1(TaskLoading,{..._0x21e273}),a46_0x6be4c1(Text,{'children':_0x21e273[_0x3e7dd8(0xbf)]}),a46_0x6be4c1(TaskTime,{'elapsed':_0x21e273[_0x3e7dd8(0xc2)]})]});}
@@ -1 +1 @@
1
- (function(_0x11ad80,_0x2fd3ed){var _0x16270e=a49_0x3c95,_0x237046=_0x11ad80();while(!![]){try{var _0xbbd5a6=-parseInt(_0x16270e(0x101))/0x1*(-parseInt(_0x16270e(0xfa))/0x2)+-parseInt(_0x16270e(0xfc))/0x3*(parseInt(_0x16270e(0xfe))/0x4)+-parseInt(_0x16270e(0xff))/0x5+-parseInt(_0x16270e(0xf9))/0x6+-parseInt(_0x16270e(0x102))/0x7+parseInt(_0x16270e(0x100))/0x8+-parseInt(_0x16270e(0xfb))/0x9*(-parseInt(_0x16270e(0x103))/0xa);if(_0xbbd5a6===_0x2fd3ed)break;else _0x237046['push'](_0x237046['shift']());}catch(_0x95d08d){_0x237046['push'](_0x237046['shift']());}}}(a49_0x55c8,0xbd933));function a49_0x3c95(_0x578734,_0x25f323){_0x578734=_0x578734-0xf9;var _0x55c834=a49_0x55c8();var _0x3c957f=_0x55c834[_0x578734];return _0x3c957f;}import{jsx as a49_0x3e2ead,Fragment as a49_0x2cc830,jsxs as a49_0x267d75}from'react/jsx-runtime';function a49_0x55c8(){var _0x4fd80e=['gray','18876BOFUVU','117262vnmIcC','682218tkkQqU','9cqVrEi','elapsed','1289844WjnwyL','7243690nUzpxe','12194624XcSuKg','16vShChF','2295202eqjkmc','140NyFfzm'];a49_0x55c8=function(){return _0x4fd80e;};return a49_0x55c8();}import{Text}from'ink';export function TaskTime(_0x1140ad){var _0x3cdee9=a49_0x3c95;if(_0x1140ad['elapsed'])return a49_0x267d75(a49_0x2cc830,{'children':[a49_0x3e2ead(Text,{'color':_0x3cdee9(0x104),'children':'\x20['}),a49_0x3e2ead(Text,{'color':_0x3cdee9(0x104),'bold':!![],'children':_0x1140ad[_0x3cdee9(0xfd)]}),a49_0x3e2ead(Text,{'color':'gray','children':']'})]});return null;}
1
+ (function(_0x4f352e,_0x7566cb){var _0x32c9fe=a47_0xe86e,_0x19da9a=_0x4f352e();while(!![]){try{var _0x4e6220=parseInt(_0x32c9fe(0x1df))/0x1+parseInt(_0x32c9fe(0x1de))/0x2+-parseInt(_0x32c9fe(0x1dd))/0x3*(parseInt(_0x32c9fe(0x1dc))/0x4)+-parseInt(_0x32c9fe(0x1e2))/0x5+parseInt(_0x32c9fe(0x1e3))/0x6+parseInt(_0x32c9fe(0x1e5))/0x7+-parseInt(_0x32c9fe(0x1e1))/0x8;if(_0x4e6220===_0x7566cb)break;else _0x19da9a['push'](_0x19da9a['shift']());}catch(_0x72f4bd){_0x19da9a['push'](_0x19da9a['shift']());}}}(a47_0x4942,0xc5527));function a47_0x4942(){var _0x2587c8=['gray','1730048tpFeRj','5481220NkZIby','5739552ZncNLj','elapsed','1820042brtHZp','108584dxQCzJ','57fTJjqW','952760TugVyg','943527NXzAEo'];a47_0x4942=function(){return _0x2587c8;};return a47_0x4942();}import{jsx as a47_0x26f781,Fragment as a47_0x1d00a3,jsxs as a47_0x15776b}from'react/jsx-runtime';import{Text}from'ink';function a47_0xe86e(_0x484e67,_0xf39e3c){_0x484e67=_0x484e67-0x1dc;var _0x4942f0=a47_0x4942();var _0xe86e=_0x4942f0[_0x484e67];return _0xe86e;}export function TaskTime(_0x260264){var _0x24fef8=a47_0xe86e;if(_0x260264[_0x24fef8(0x1e4)])return a47_0x15776b(a47_0x1d00a3,{'children':[a47_0x26f781(Text,{'color':'gray','children':'\x20['}),a47_0x26f781(Text,{'color':'gray','bold':!![],'children':_0x260264[_0x24fef8(0x1e4)]}),a47_0x26f781(Text,{'color':_0x24fef8(0x1e0),'children':']'})]});return null;}
@@ -1 +1 @@
1
- const a50_0x17f384=a50_0x1097;(function(_0x2f00ee,_0x34fa8a){const _0x395e13=a50_0x1097,_0x247fd0=_0x2f00ee();while(!![]){try{const _0x371468=-parseInt(_0x395e13(0xec))/0x1*(parseInt(_0x395e13(0xf6))/0x2)+parseInt(_0x395e13(0xed))/0x3+-parseInt(_0x395e13(0xf9))/0x4*(parseInt(_0x395e13(0xf7))/0x5)+parseInt(_0x395e13(0xef))/0x6+parseInt(_0x395e13(0xfa))/0x7*(parseInt(_0x395e13(0xfd))/0x8)+-parseInt(_0x395e13(0xfb))/0x9*(-parseInt(_0x395e13(0xf0))/0xa)+-parseInt(_0x395e13(0xf3))/0xb*(parseInt(_0x395e13(0xfc))/0xc);if(_0x371468===_0x34fa8a)break;else _0x247fd0['push'](_0x247fd0['shift']());}catch(_0x235b29){_0x247fd0['push'](_0x247fd0['shift']());}}}(a50_0x4bba,0x48134));function a50_0x1097(_0x3f9481,_0x1d6d6d){_0x3f9481=_0x3f9481-0xe9;const _0x4bba04=a50_0x4bba();let _0x1097c3=_0x4bba04[_0x3f9481];return _0x1097c3;}import a50_0xba9b24 from'node:path';import{fileURLToPath}from'node:url';import{useCallback,useState}from'react';import{copyDirectory}from'../utils/copy-directory.js';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';const __dirname=a50_0xba9b24[a50_0x17f384(0xf1)](fileURLToPath(import.meta.url)),templateDir=a50_0xba9b24['resolve'](__dirname,a50_0x17f384(0xeb));function a50_0x4bba(){const _0x2355d5=['1507168LzCxBG','开始复制项目模板','message','复制项目文件','../../templates/projects/sub-app-react-demo','32FgODHh','87252xxkHuf','info','1785726xAlzWT','10AdMtjA','dirname','error','176NHdcSw','copy','cwd','17720DNUZIm','1670UXjNPX','项目模板复制完成','3748mvbTXB','7wfIoRb','5168925lClBUD','148296rshcaX'];a50_0x4bba=function(){return _0x2355d5;};return a50_0x4bba();}export function useCopyProjectTemplate(){const _0x1de869=a50_0x17f384,[_0x2f70b3,_0x54b08c]=useState(![]),[_0x152e75,_0x31aa3c]=useState(![]),[_0x24c91f,_0x10adf9]=useState(''),_0x534e62=useCallback(async _0x14056a=>{const _0x33f680=a50_0x1097,_0x3c9df8=Date['now'](),_0x1a844d=a50_0xba9b24['resolve'](process[_0x33f680(0xf5)](),_0x14056a);_0x54b08c(!![]);try{logger[_0x33f680(0xee)](_0x33f680(0xf4),_0x33f680(0xfe),{'projectCode':_0x14056a,'templateDir':templateDir}),await copyDirectory(templateDir,_0x1a844d);const _0x57e206=Date['now']()-_0x3c9df8;logger['success']('copy',_0x33f680(0xf8),_0x57e206,{'projectCode':_0x14056a});}catch(_0x3a42da){const _0x26de23=Date['now']()-_0x3c9df8;logger[_0x33f680(0xf2)](_0x33f680(0xf4),'项目模板复制失败',{'projectCode':_0x14056a,'error':_0x3a42da instanceof Error?_0x3a42da[_0x33f680(0xe9)]:String(_0x3a42da),'duration':_0x26de23});throw _0x3a42da;}finally{_0x54b08c(![]),_0x31aa3c(!![]),_0x10adf9(formatElapsed(_0x3c9df8));}},[]);return{'taskName':_0x1de869(0xea),'finished':_0x152e75,'loading':_0x2f70b3,'elapsed':_0x24c91f,'doTask':_0x534e62};}
1
+ const a48_0x74e835=a48_0x2f85;(function(_0x531441,_0x13c545){const _0x9f0aea=a48_0x2f85,_0x16be69=_0x531441();while(!![]){try{const _0x365dba=-parseInt(_0x9f0aea(0x149))/0x1*(parseInt(_0x9f0aea(0x14f))/0x2)+parseInt(_0x9f0aea(0x15e))/0x3*(parseInt(_0x9f0aea(0x15b))/0x4)+-parseInt(_0x9f0aea(0x15a))/0x5*(parseInt(_0x9f0aea(0x154))/0x6)+-parseInt(_0x9f0aea(0x160))/0x7+parseInt(_0x9f0aea(0x14e))/0x8*(parseInt(_0x9f0aea(0x14b))/0x9)+parseInt(_0x9f0aea(0x152))/0xa*(parseInt(_0x9f0aea(0x150))/0xb)+-parseInt(_0x9f0aea(0x158))/0xc;if(_0x365dba===_0x13c545)break;else _0x16be69['push'](_0x16be69['shift']());}catch(_0x3e193b){_0x16be69['push'](_0x16be69['shift']());}}}(a48_0x2499,0x4747e));function a48_0x2f85(_0x4ddee0,_0x16b255){_0x4ddee0=_0x4ddee0-0x149;const _0x2499a9=a48_0x2499();let _0x2f8564=_0x2499a9[_0x4ddee0];return _0x2f8564;}import a48_0x2a35b8 from'node:path';import{fileURLToPath}from'node:url';import{useCallback,useState}from'react';import{copyDirectory}from'../utils/copy-directory.js';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';import{useI18n}from'../i18n/hooks.js';const __dirname=a48_0x2a35b8[a48_0x74e835(0x156)](fileURLToPath(import.meta.url)),templateDir=a48_0x2a35b8[a48_0x74e835(0x155)](__dirname,a48_0x74e835(0x159));function a48_0x2499(){const _0x492aae=['30AODQoS','now','6KrBADc','resolve','dirname','error','1623156pcWOLN','../../templates/projects/sub-app-react-demo','1773570eqyLCz','65724BVoTmW','cwd','message','102dwZVAc','开始复制项目模板','3689168nvvmDT','53JDTGdt','copy','27nyTXNZ','项目模板复制完成','create.tasks.copyFiles','1276360gDuHdX','8870VpXmZr','1858021yQvHwe','项目模板复制失败'];a48_0x2499=function(){return _0x492aae;};return a48_0x2499();}export function useCopyProjectTemplate(){const _0x3f1884=a48_0x74e835,{t:_0x61d0c0}=useI18n(),[_0x5d0196,_0x2aece4]=useState(![]),[_0x2b6d6f,_0x17b7fc]=useState(![]),[_0xbef13,_0x31891d]=useState(''),_0x57880f=useCallback(async _0x2b1493=>{const _0x1cbe4c=a48_0x2f85,_0x3b93b7=Date[_0x1cbe4c(0x153)](),_0x175d1d=a48_0x2a35b8[_0x1cbe4c(0x155)](process[_0x1cbe4c(0x15c)](),_0x2b1493);_0x2aece4(!![]);try{logger['info'](_0x1cbe4c(0x14a),_0x1cbe4c(0x15f),{'projectCode':_0x2b1493,'templateDir':templateDir}),await copyDirectory(templateDir,_0x175d1d);const _0x12f33a=Date[_0x1cbe4c(0x153)]()-_0x3b93b7;logger['success'](_0x1cbe4c(0x14a),_0x1cbe4c(0x14c),_0x12f33a,{'projectCode':_0x2b1493});}catch(_0x1398ab){const _0x374190=Date[_0x1cbe4c(0x153)]()-_0x3b93b7;logger[_0x1cbe4c(0x157)](_0x1cbe4c(0x14a),_0x1cbe4c(0x151),{'projectCode':_0x2b1493,'error':_0x1398ab instanceof Error?_0x1398ab[_0x1cbe4c(0x15d)]:String(_0x1398ab),'duration':_0x374190});throw _0x1398ab;}finally{_0x2aece4(![]),_0x17b7fc(!![]),_0x31891d(formatElapsed(_0x3b93b7));}},[]);return{'taskName':_0x61d0c0(_0x3f1884(0x14d)),'finished':_0x2b6d6f,'loading':_0x5d0196,'elapsed':_0xbef13,'doTask':_0x57880f};}
@@ -1 +1 @@
1
- (function(_0x232869,_0x22bfd7){const _0x5def9=a51_0x42cc,_0x51c86e=_0x232869();while(!![]){try{const _0x95a9e9=parseInt(_0x5def9(0x189))/0x1*(parseInt(_0x5def9(0x188))/0x2)+-parseInt(_0x5def9(0x187))/0x3*(-parseInt(_0x5def9(0x18c))/0x4)+parseInt(_0x5def9(0x183))/0x5+-parseInt(_0x5def9(0x18b))/0x6*(-parseInt(_0x5def9(0x191))/0x7)+parseInt(_0x5def9(0x18e))/0x8+parseInt(_0x5def9(0x196))/0x9+-parseInt(_0x5def9(0x193))/0xa;if(_0x95a9e9===_0x22bfd7)break;else _0x51c86e['push'](_0x51c86e['shift']());}catch(_0x1c4462){_0x51c86e['push'](_0x51c86e['shift']());}}}(a51_0x2eb2,0x5b885));import a51_0x12d7a from'node:path';import{useCallback,useState}from'react';function a51_0x2eb2(){const _0x504841=['608368qdjVzt','message','npx','581nrNpri','代码格式化失败','22395930nGHrrh','now','prettier','4709718GRnbdv','代码格式化完成','开始格式化代码','resolve','2599120hxzmYP','error','format','success','60MiyjUg','96RQlCcM','14167wXTMpr','格式化代码','31524XPTSLv','75848NDLSOT','--write'];a51_0x2eb2=function(){return _0x504841;};return a51_0x2eb2();}import{execa}from'execa';function a51_0x42cc(_0x2c3e36,_0x4dcfb6){_0x2c3e36=_0x2c3e36-0x181;const _0x2eb27b=a51_0x2eb2();let _0x42cc36=_0x2eb27b[_0x2c3e36];return _0x42cc36;}import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';export function useFormatCode(){const _0x3bc183=a51_0x42cc,[_0x47bc67,_0x3f6042]=useState(![]),[_0x2730ec,_0x4abfab]=useState(![]),[_0x1e3fa3,_0x332725]=useState(''),_0x5df7b7=useCallback(async _0x38a39b=>{const _0x42f607=a51_0x42cc,_0x5b844e=Date['now'](),_0x457ffa=a51_0x12d7a[_0x42f607(0x182)](process['cwd'](),_0x38a39b);_0x3f6042(!![]);try{logger['info'](_0x42f607(0x185),_0x42f607(0x181),{'projectCode':_0x38a39b}),await execa(_0x42f607(0x190),[_0x42f607(0x195),_0x42f607(0x18d),'.'],{'cwd':_0x457ffa});const _0x40064e=Date[_0x42f607(0x194)]()-_0x5b844e;logger[_0x42f607(0x186)](_0x42f607(0x185),_0x42f607(0x197),_0x40064e,{'projectCode':_0x38a39b});}catch(_0x1ccde1){const _0x4adfa5=Date[_0x42f607(0x194)]()-_0x5b844e;logger[_0x42f607(0x184)](_0x42f607(0x185),_0x42f607(0x192),{'projectCode':_0x38a39b,'error':_0x1ccde1 instanceof Error?_0x1ccde1[_0x42f607(0x18f)]:String(_0x1ccde1),'duration':_0x4adfa5});throw _0x1ccde1;}finally{_0x3f6042(![]),_0x4abfab(!![]),_0x332725(formatElapsed(_0x5b844e));}},[]);return{'taskName':_0x3bc183(0x18a),'finished':_0x2730ec,'loading':_0x47bc67,'elapsed':_0x1e3fa3,'doTask':_0x5df7b7};}
1
+ (function(_0x1412c8,_0x51d210){const _0x288542=a49_0x3b1b,_0x1ab274=_0x1412c8();while(!![]){try{const _0x17fba0=parseInt(_0x288542(0x196))/0x1+-parseInt(_0x288542(0x187))/0x2+-parseInt(_0x288542(0x18a))/0x3+-parseInt(_0x288542(0x18d))/0x4+parseInt(_0x288542(0x183))/0x5*(parseInt(_0x288542(0x193))/0x6)+parseInt(_0x288542(0x18b))/0x7*(-parseInt(_0x288542(0x18c))/0x8)+parseInt(_0x288542(0x192))/0x9*(parseInt(_0x288542(0x197))/0xa);if(_0x17fba0===_0x51d210)break;else _0x1ab274['push'](_0x1ab274['shift']());}catch(_0x22daab){_0x1ab274['push'](_0x1ab274['shift']());}}}(a49_0x2e48,0x6805c));import a49_0x3938bf from'node:path';import{useCallback,useState}from'react';import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';function a49_0x2e48(){const _0xcdc3fe=['create.tasks.formatCode','代码格式化失败','736003pAQQEg','10DdjLOS','开始格式化代码','now','15DaaVvz','success','--write','resolve','1520946GKuOPJ','info','prettier','1319481HIaPHJ','826dxdzdd','36688hPhGXq','1881816krFUnk','error','format','npx','message','16251939XinMNK','192408hhXpwE'];a49_0x2e48=function(){return _0xcdc3fe;};return a49_0x2e48();}function a49_0x3b1b(_0x3dc246,_0x2d47b6){_0x3dc246=_0x3dc246-0x183;const _0x2e48be=a49_0x2e48();let _0x3b1bda=_0x2e48be[_0x3dc246];return _0x3b1bda;}import{useI18n}from'../i18n/hooks.js';export function useFormatCode(){const _0x39d9bc=a49_0x3b1b,{t:_0x42f394}=useI18n(),[_0x55d431,_0x3f9a06]=useState(![]),[_0x2942f0,_0x10ec99]=useState(![]),[_0x228ceb,_0xc2a68c]=useState(''),_0x16d008=useCallback(async _0x10f8c8=>{const _0x5c23b3=a49_0x3b1b,_0x22da21=Date['now'](),_0x4ae112=a49_0x3938bf[_0x5c23b3(0x186)](process['cwd'](),_0x10f8c8);_0x3f9a06(!![]);try{logger[_0x5c23b3(0x188)]('format',_0x5c23b3(0x198),{'projectCode':_0x10f8c8}),await execa(_0x5c23b3(0x190),[_0x5c23b3(0x189),_0x5c23b3(0x185),'.'],{'cwd':_0x4ae112});const _0x273eda=Date[_0x5c23b3(0x199)]()-_0x22da21;logger[_0x5c23b3(0x184)](_0x5c23b3(0x18f),'代码格式化完成',_0x273eda,{'projectCode':_0x10f8c8});}catch(_0x475643){const _0x368adc=Date['now']()-_0x22da21;logger[_0x5c23b3(0x18e)](_0x5c23b3(0x18f),_0x5c23b3(0x195),{'projectCode':_0x10f8c8,'error':_0x475643 instanceof Error?_0x475643[_0x5c23b3(0x191)]:String(_0x475643),'duration':_0x368adc});throw _0x475643;}finally{_0x3f9a06(![]),_0x10ec99(!![]),_0xc2a68c(formatElapsed(_0x22da21));}},[]);return{'taskName':_0x42f394(_0x39d9bc(0x194)),'finished':_0x2942f0,'loading':_0x55d431,'elapsed':_0x228ceb,'doTask':_0x16d008};}
@@ -1 +1 @@
1
- function a52_0x466e(_0x38986b,_0x53730d){_0x38986b=_0x38986b-0x1a7;const _0x4cb69b=a52_0x4cb6();let _0x466e4a=_0x4cb69b[_0x38986b];return _0x466e4a;}(function(_0x1116ee,_0x320029){const _0x3106ff=a52_0x466e,_0x49951b=_0x1116ee();while(!![]){try{const _0x400619=-parseInt(_0x3106ff(0x1be))/0x1*(-parseInt(_0x3106ff(0x1af))/0x2)+parseInt(_0x3106ff(0x1b4))/0x3+parseInt(_0x3106ff(0x1a8))/0x4*(parseInt(_0x3106ff(0x1aa))/0x5)+parseInt(_0x3106ff(0x1bd))/0x6*(-parseInt(_0x3106ff(0x1b3))/0x7)+parseInt(_0x3106ff(0x1bb))/0x8+parseInt(_0x3106ff(0x1ab))/0x9*(parseInt(_0x3106ff(0x1b6))/0xa)+parseInt(_0x3106ff(0x1b7))/0xb*(-parseInt(_0x3106ff(0x1b1))/0xc);if(_0x400619===_0x320029)break;else _0x49951b['push'](_0x49951b['shift']());}catch(_0x1f8240){_0x49951b['push'](_0x49951b['shift']());}}}(a52_0x4cb6,0xbf13f));function a52_0x4cb6(){const _0x519bdb=['35128404qltPsc','info','8848742cwIcHv','2237034yvVeez','依赖安装完成','9365590uPZhLR','11AvbKwA','resolve','开始安装依赖','--registry','10633192hocOew','error','6ThNEBj','1pQoZyc','install','2812SLPfiV','cwd','6765UsRLRK','9wuFnmr','now','https://registry.npmmirror.com','依赖安装失败','2023166qfRBWS','安装依赖'];a52_0x4cb6=function(){return _0x519bdb;};return a52_0x4cb6();}import a52_0x4ad9a1 from'node:path';import{useCallback,useState}from'react';import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';export function useInstallDependencies(){const _0x556355=a52_0x466e,[_0x224105,_0x3e8549]=useState(![]),[_0x1f0de6,_0x5a0ff9]=useState(![]),[_0x18df3f,_0x5db64a]=useState(''),_0x47924e=useCallback(async _0xb5e1d2=>{const _0x416eef=a52_0x466e,_0x49a5d0=Date['now'](),_0x1b9241=a52_0x4ad9a1[_0x416eef(0x1b8)](process[_0x416eef(0x1a9)](),_0xb5e1d2);_0x3e8549(!![]),_0x5a0ff9(![]);const _0x3a03ff=async(_0x415343,_0x99578b)=>{await execa(_0x415343,_0x99578b,{'cwd':_0x1b9241});};try{logger[_0x416eef(0x1b2)](_0x416eef(0x1a7),_0x416eef(0x1b9),{'projectCode':_0xb5e1d2,'registry':_0x416eef(0x1ad)}),await _0x3a03ff('npm',['install',_0x416eef(0x1ba),_0x416eef(0x1ad)]);const _0x5c3ccc=Date[_0x416eef(0x1ac)]()-_0x49a5d0;logger['success'](_0x416eef(0x1a7),_0x416eef(0x1b5),_0x5c3ccc,{'projectCode':_0xb5e1d2});}catch(_0x488856){const _0x362cd5=Date[_0x416eef(0x1ac)]()-_0x49a5d0;logger[_0x416eef(0x1bc)](_0x416eef(0x1a7),_0x416eef(0x1ae),{'projectCode':_0xb5e1d2,'error':_0x488856 instanceof Error?_0x488856['message']:String(_0x488856),'duration':_0x362cd5});throw _0x488856;}finally{_0x3e8549(![]),_0x5a0ff9(!![]),_0x5db64a(formatElapsed(_0x49a5d0));}},[]);return{'taskName':_0x556355(0x1b0),'finished':_0x1f0de6,'loading':_0x224105,'elapsed':_0x18df3f,'doTask':_0x47924e};}
1
+ (function(_0x17ddb6,_0x12521d){const _0x221c0b=a50_0x33da,_0x1841cb=_0x17ddb6();while(!![]){try{const _0x23adcf=parseInt(_0x221c0b(0x1cd))/0x1*(-parseInt(_0x221c0b(0x1cc))/0x2)+-parseInt(_0x221c0b(0x1d7))/0x3+-parseInt(_0x221c0b(0x1c9))/0x4+-parseInt(_0x221c0b(0x1db))/0x5+parseInt(_0x221c0b(0x1d9))/0x6*(-parseInt(_0x221c0b(0x1d8))/0x7)+-parseInt(_0x221c0b(0x1d4))/0x8+-parseInt(_0x221c0b(0x1d3))/0x9*(-parseInt(_0x221c0b(0x1cb))/0xa);if(_0x23adcf===_0x12521d)break;else _0x1841cb['push'](_0x1841cb['shift']());}catch(_0x37138b){_0x1841cb['push'](_0x1841cb['shift']());}}}(a50_0x5aaa,0x762e0));import a50_0x37e14e from'node:path';function a50_0x33da(_0x113a51,_0x595b07){_0x113a51=_0x113a51-0x1c9;const _0x5aaa7e=a50_0x5aaa();let _0x33dacf=_0x5aaa7e[_0x113a51];return _0x33dacf;}import{useCallback,useState}from'react';function a50_0x5aaa(){const _0x180532=['609452XXqRoz','依赖安装失败','4650jNBhDz','1054yfofjD','1427dNDErP','npm','error','success','create.tasks.installDependencies','install','60561qvuVOk','2697528PirFfE','resolve','https://registry.npmmirror.com','2360997rCMibz','37786mGQQtR','678yRqlaR','message','31825qffrYK','now','cwd','开始安装依赖','--registry'];a50_0x5aaa=function(){return _0x180532;};return a50_0x5aaa();}import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';import{useI18n}from'../i18n/hooks.js';export function useInstallDependencies(){const _0x1a4d75=a50_0x33da,{t:_0xbc2ecd}=useI18n(),[_0x5b3201,_0x214428]=useState(![]),[_0x11e4b1,_0x2c2350]=useState(![]),[_0x48fbb2,_0x4ab978]=useState(''),_0x2e857c=useCallback(async _0x47cbd7=>{const _0x11c312=a50_0x33da,_0x530317=Date[_0x11c312(0x1dc)](),_0x5278be=a50_0x37e14e[_0x11c312(0x1d5)](process[_0x11c312(0x1dd)](),_0x47cbd7);_0x214428(!![]),_0x2c2350(![]);const _0x3a5939=async(_0x5520fc,_0x127948)=>{await execa(_0x5520fc,_0x127948,{'cwd':_0x5278be});};try{logger['info'](_0x11c312(0x1d2),_0x11c312(0x1de),{'projectCode':_0x47cbd7,'registry':_0x11c312(0x1d6)}),await _0x3a5939(_0x11c312(0x1ce),[_0x11c312(0x1d2),_0x11c312(0x1df),_0x11c312(0x1d6)]);const _0x23c172=Date[_0x11c312(0x1dc)]()-_0x530317;logger[_0x11c312(0x1d0)](_0x11c312(0x1d2),'依赖安装完成',_0x23c172,{'projectCode':_0x47cbd7});}catch(_0x43db30){const _0x307f0e=Date[_0x11c312(0x1dc)]()-_0x530317;logger[_0x11c312(0x1cf)](_0x11c312(0x1d2),_0x11c312(0x1ca),{'projectCode':_0x47cbd7,'error':_0x43db30 instanceof Error?_0x43db30[_0x11c312(0x1da)]:String(_0x43db30),'duration':_0x307f0e});throw _0x43db30;}finally{_0x214428(![]),_0x2c2350(!![]),_0x4ab978(formatElapsed(_0x530317));}},[]);return{'taskName':_0xbc2ecd(_0x1a4d75(0x1d1)),'finished':_0x11e4b1,'loading':_0x5b3201,'elapsed':_0x48fbb2,'doTask':_0x2e857c};}
package/lib/help.js CHANGED
@@ -1 +1 @@
1
- (function(_0x128a86,_0x253876){var _0x13709e=a53_0x49f7,_0x20c37a=_0x128a86();while(!![]){try{var _0x1b5b55=-parseInt(_0x13709e(0xfc))/0x1*(-parseInt(_0x13709e(0x101))/0x2)+-parseInt(_0x13709e(0xf7))/0x3+parseInt(_0x13709e(0x102))/0x4*(-parseInt(_0x13709e(0xf8))/0x5)+parseInt(_0x13709e(0xfe))/0x6+-parseInt(_0x13709e(0xfa))/0x7*(-parseInt(_0x13709e(0x100))/0x8)+-parseInt(_0x13709e(0xf6))/0x9+parseInt(_0x13709e(0xfb))/0xa*(parseInt(_0x13709e(0xf9))/0xb);if(_0x1b5b55===_0x253876)break;else _0x20c37a['push'](_0x20c37a['shift']());}catch(_0x2d3640){_0x20c37a['push'](_0x20c37a['shift']());}}}(a53_0x3e02,0xd8add));function a53_0x49f7(_0x31664c,_0x151de3){_0x31664c=_0x31664c-0xf6;var _0x3e0290=a53_0x3e02();var _0x49f7c6=_0x3e0290[_0x31664c];return _0x49f7c6;}function a53_0x3e02(){var _0x1cb057=['27748886nHoedu','1722728ibhoSp','10XvwxlC','7989sfyKcG','green','2107914DXOyMy','查看可用命令。','8xBbrIb','282vEGcWL','466016ROCZha','9514341zTqemm','2012328VFqJjI','70psKqBZ'];a53_0x3e02=function(){return _0x1cb057;};return a53_0x3e02();}import{jsx as a53_0x13712f,jsxs as a53_0x104e19}from'react/jsx-runtime';import{Box,Text}from'ink';export function Help(){var _0x3928ed=a53_0x49f7;return a53_0x104e19(Box,{'flexDirection':'column','marginTop':0x1,'marginBottom':0x1,'children':[a53_0x104e19(Box,{'children':[a53_0x13712f(Box,{'width':'1'}),a53_0x13712f(Text,{'children':'!\x20请指定一个有效的命令。'})]}),a53_0x104e19(Box,{'marginTop':0x1,'children':[a53_0x13712f(Box,{'width':'1'}),a53_0x104e19(Text,{'children':['\x20\x20','使用']}),a53_0x104e19(Text,{'bold':!![],'color':_0x3928ed(0xfd),'children':['\x20','lovrabet\x20--help','\x20']}),a53_0x13712f(Text,{'children':_0x3928ed(0xff)})]})]});}
1
+ (function(_0x228a2a,_0x54cab6){const _0x37055c=a51_0x2ef7,_0x3f2235=_0x228a2a();while(!![]){try{const _0x205571=-parseInt(_0x37055c(0x137))/0x1+-parseInt(_0x37055c(0x139))/0x2+-parseInt(_0x37055c(0x130))/0x3+-parseInt(_0x37055c(0x136))/0x4*(-parseInt(_0x37055c(0x134))/0x5)+parseInt(_0x37055c(0x133))/0x6+-parseInt(_0x37055c(0x12f))/0x7+parseInt(_0x37055c(0x131))/0x8*(parseInt(_0x37055c(0x132))/0x9);if(_0x205571===_0x54cab6)break;else _0x3f2235['push'](_0x3f2235['shift']());}catch(_0xd551e1){_0x3f2235['push'](_0x3f2235['shift']());}}}(a51_0x31c1,0x9dd83));function a51_0x31c1(){const _0x370534=['82676jcHKCL','help.usageHint','column','5018573FljylU','1329468GrnCoT','104mhULCd','840501VbiGWz','6688692ztGQWB','353485jVUhUC','help.viewCommands','44MNQxMJ','1258542mMhSkB','help.invalidCommand'];a51_0x31c1=function(){return _0x370534;};return a51_0x31c1();}import{jsx as a51_0x34ab13,jsxs as a51_0x31b5cc}from'react/jsx-runtime';function a51_0x2ef7(_0x5b13f8,_0x38e1c9){_0x5b13f8=_0x5b13f8-0x12e;const _0x31c177=a51_0x31c1();let _0x2ef7eb=_0x31c177[_0x5b13f8];return _0x2ef7eb;}import{Box,Text}from'ink';import{useI18n}from'./i18n/hooks.js';export function Help(){const _0x18f558=a51_0x2ef7,{t:_0x3b41fa}=useI18n();return a51_0x31b5cc(Box,{'flexDirection':_0x18f558(0x12e),'marginTop':0x1,'marginBottom':0x1,'children':[a51_0x31b5cc(Box,{'children':[a51_0x34ab13(Box,{'width':'1'}),a51_0x34ab13(Text,{'children':_0x3b41fa(_0x18f558(0x138))})]}),a51_0x31b5cc(Box,{'marginTop':0x1,'children':[a51_0x34ab13(Box,{'width':'1'}),a51_0x31b5cc(Text,{'children':['\x20\x20',_0x3b41fa(_0x18f558(0x13a))]}),a51_0x31b5cc(Text,{'bold':!![],'color':'green','children':['\x20','lovrabet\x20--help','\x20']}),a51_0x34ab13(Text,{'children':_0x3b41fa(_0x18f558(0x135))})]})]});}
@@ -0,0 +1 @@
1
+ (function(_0x5dec9e,_0x46dc2c){var _0x393e22=a52_0x463c,_0x2161f6=_0x5dec9e();while(!![]){try{var _0x4e94af=-parseInt(_0x393e22(0xf1))/0x1*(-parseInt(_0x393e22(0xee))/0x2)+parseInt(_0x393e22(0xed))/0x3+-parseInt(_0x393e22(0xf4))/0x4*(-parseInt(_0x393e22(0xef))/0x5)+-parseInt(_0x393e22(0xf5))/0x6*(parseInt(_0x393e22(0xf3))/0x7)+-parseInt(_0x393e22(0xea))/0x8*(parseInt(_0x393e22(0xec))/0x9)+parseInt(_0x393e22(0xeb))/0xa+-parseInt(_0x393e22(0xf2))/0xb;if(_0x4e94af===_0x46dc2c)break;else _0x2161f6['push'](_0x2161f6['shift']());}catch(_0xe0b5a0){_0x2161f6['push'](_0x2161f6['shift']());}}}(a52_0x3b53,0x6cf07));function a52_0x3b53(){var _0x3aaf63=['88472uOvDaV','3850880pJtHBT','153DdbxME','2015043UpLsTc','10jYXkgU','610NGqEYx','changeLanguage','79927kdPaSi','3251259NwrKpa','1865003isfcFE','8940uwurTH','18RCoPOX','language'];a52_0x3b53=function(){return _0x3aaf63;};return a52_0x3b53();}import{jsx as a52_0x455ba8}from'react/jsx-runtime';import{I18nextProvider}from'react-i18next';function a52_0x463c(_0x38579d,_0x313c29){_0x38579d=_0x38579d-0xe9;var _0x3b5363=a52_0x3b53();var _0x463ce9=_0x3b5363[_0x38579d];return _0x463ce9;}import a52_0x36347a from'./index.js';export function I18nProvider({children:_0x1ead20,language:_0x415edb}){var _0x4587de=a52_0x463c;return _0x415edb&&a52_0x36347a[_0x4587de(0xe9)]!==_0x415edb&&a52_0x36347a[_0x4587de(0xf0)](_0x415edb),a52_0x455ba8(I18nextProvider,{'i18n':a52_0x36347a,'children':_0x1ead20});}
@@ -0,0 +1 @@
1
+ function a53_0x5d6c(_0x46ac0f,_0x8c041){_0x46ac0f=_0x46ac0f-0x19b;var _0x4004ba=a53_0x4004();var _0x5d6ccc=_0x4004ba[_0x46ac0f];return _0x5d6ccc;}function a53_0x4004(){var _0x482371=['1385466STmKbb','336872XfsJKg','752690rdVOdO','77361ORmRUH','513966moIcoo','2384123mbmfDB','20XPXSNk','10347000ohLCvO'];a53_0x4004=function(){return _0x482371;};return a53_0x4004();}(function(_0x5dc83f,_0x3906b7){var _0x1da4ef=a53_0x5d6c,_0x491d1c=_0x5dc83f();while(!![]){try{var _0x52ed45=parseInt(_0x1da4ef(0x19d))/0x1+-parseInt(_0x1da4ef(0x19f))/0x2*(-parseInt(_0x1da4ef(0x19c))/0x3)+parseInt(_0x1da4ef(0x1a2))/0x4+parseInt(_0x1da4ef(0x19b))/0x5+parseInt(_0x1da4ef(0x1a1))/0x6+parseInt(_0x1da4ef(0x19e))/0x7+-parseInt(_0x1da4ef(0x1a0))/0x8;if(_0x52ed45===_0x3906b7)break;else _0x491d1c['push'](_0x491d1c['shift']());}catch(_0x1573ff){_0x491d1c['push'](_0x491d1c['shift']());}}}(a53_0x4004,0x4582d));import{useTranslation}from'react-i18next';export function useI18n(){return useTranslation();}export function useI18nNs(_0x24959a){return useTranslation(_0x24959a);}
@@ -0,0 +1 @@
1
+ const a54_0x2c01bd=a54_0x1560;(function(_0x59fe4f,_0x951636){const _0x597c7f=a54_0x1560,_0x1fe9bc=_0x59fe4f();while(!![]){try{const _0x3e7232=parseInt(_0x597c7f(0x141))/0x1*(parseInt(_0x597c7f(0x14d))/0x2)+-parseInt(_0x597c7f(0x13c))/0x3*(-parseInt(_0x597c7f(0x139))/0x4)+parseInt(_0x597c7f(0x154))/0x5*(parseInt(_0x597c7f(0x14c))/0x6)+parseInt(_0x597c7f(0x151))/0x7*(parseInt(_0x597c7f(0x13d))/0x8)+parseInt(_0x597c7f(0x156))/0x9+parseInt(_0x597c7f(0x142))/0xa*(-parseInt(_0x597c7f(0x14f))/0xb)+-parseInt(_0x597c7f(0x149))/0xc;if(_0x3e7232===_0x951636)break;else _0x1fe9bc['push'](_0x1fe9bc['shift']());}catch(_0x183f1a){_0x1fe9bc['push'](_0x1fe9bc['shift']());}}}(a54_0x5dee,0xceb41));import a54_0xb7f5ec from'i18next';import{initReactI18next}from'react-i18next';function a54_0x1560(_0x1dda67,_0x3af3f6){_0x1dda67=_0x1dda67-0x139;const _0x5deeda=a54_0x5dee();let _0x156039=_0x5deeda[_0x1dda67];return _0x156039;}import{existsSync,readFileSync}from'node:fs';import{resolve}from'node:path';import{homedir}from'node:os';import a54_0x692e14 from'./locales/zh-CN.js';import a54_0x2c8b2a from'./locales/en-US.js';function a54_0x5dee(){const _0x1ff1aa=['zh-CN','15744456vdwFZd','resolvedOptions','cwd','6tHbNHN','7894jjFJBz','env','94127qwruVd','LOVRABET_LANG','14FhZlbl','string','toLowerCase','855295IkPDiy','en-US','3863466gyXYAk','replace','utf8','locale','179448iSUukb','language','lang','78jUgoUO','687936TTMlDE','use','.lovrabetrc','test','227JNIxeY','790fBNctr','zh_CN','init','DateTimeFormat','LC_ALL','en_US'];a54_0x5dee=function(){return _0x1ff1aa;};return a54_0x5dee();}export function isChineseLanguage(_0x40d642){const _0x3d9ba0=a54_0x1560;if(!_0x40d642)return![];const _0x88c801=_0x40d642[_0x3d9ba0(0x153)]()[_0x3d9ba0(0x157)]('_','-');return/^zh($|-)/[_0x3d9ba0(0x140)](_0x88c801);}const LOCALE_MAP={'zh':'zh-CN','zh-cn':a54_0x2c01bd(0x148),'zh_cn':a54_0x2c01bd(0x148),'en':a54_0x2c01bd(0x155),'en-us':a54_0x2c01bd(0x155),'en_us':a54_0x2c01bd(0x155)};export function normalizeLocale(_0x913ffd){const _0x1c584a=a54_0x2c01bd;if(!_0x913ffd)return null;return LOCALE_MAP[_0x913ffd[_0x1c584a(0x153)]()]??null;}function readLocaleFromConfig(){const _0x4802c8=a54_0x2c01bd;try{const _0x2c5860=resolve(process[_0x4802c8(0x14b)](),_0x4802c8(0x13f));if(existsSync(_0x2c5860)){const _0x3ff773=readFileSync(_0x2c5860,{'encoding':_0x4802c8(0x158)});if(_0x3ff773){const _0x3cc912=JSON['parse'](_0x3ff773);if(typeof _0x3cc912['locale']===_0x4802c8(0x152)){const _0x5bb4da=normalizeLocale(_0x3cc912[_0x4802c8(0x159)]);if(_0x5bb4da)return _0x5bb4da;}}}}catch{}try{const _0x2742a0=resolve(homedir(),_0x4802c8(0x13f));if(existsSync(_0x2742a0)){const _0x103887=readFileSync(_0x2742a0,{'encoding':'utf8'});if(_0x103887){const _0xde6c15=JSON['parse'](_0x103887);if(typeof _0xde6c15[_0x4802c8(0x159)]===_0x4802c8(0x152)){const _0x186bec=normalizeLocale(_0xde6c15['locale']);if(_0x186bec)return _0x186bec;}}}}catch{}return null;}export function detectSystemLanguage(){const _0x186974=a54_0x2c01bd,_0x53d83c=process[_0x186974(0x14e)][_0x186974(0x150)];if(_0x53d83c){const _0x53299b=normalizeLocale(_0x53d83c);if(_0x53299b)return _0x53299b;}const _0x5996e2=readLocaleFromConfig();if(_0x5996e2)return _0x5996e2;const _0x314182=process['env'][_0x186974(0x146)];if(_0x314182&&isChineseLanguage(_0x314182))return'zh-CN';const _0x15ca95=process['env']['LANG'];if(_0x15ca95&&isChineseLanguage(_0x15ca95))return'zh-CN';try{const _0x2e63f8=Intl[_0x186974(0x145)]()[_0x186974(0x14a)]()[_0x186974(0x159)];if(_0x2e63f8&&isChineseLanguage(_0x2e63f8))return'zh-CN';}catch{}return'en-US';}export function getLanguageFromFlags(_0x2aef7c){const _0x202f1d=a54_0x2c01bd,_0x12800a=_0x2aef7c[_0x202f1d(0x13b)];if(_0x12800a==='zh-CN'||_0x12800a==='zh'||_0x12800a===_0x202f1d(0x143))return'zh-CN';if(_0x12800a===_0x202f1d(0x155)||_0x12800a==='en'||_0x12800a===_0x202f1d(0x147))return _0x202f1d(0x155);return null;}a54_0xb7f5ec[a54_0x2c01bd(0x13e)](initReactI18next)[a54_0x2c01bd(0x144)]({'resources':{'zh-CN':{'translation':a54_0x692e14},'en-US':{'translation':a54_0x2c8b2a}},'lng':detectSystemLanguage(),'fallbackLng':a54_0x2c01bd(0x155),'interpolation':{'escapeValue':![]},'react':{'useSuspense':![]},'showSupportNotice':![]});export default a54_0xb7f5ec;export function changeLanguage(_0x58e9df){a54_0xb7f5ec['changeLanguage'](_0x58e9df);}export function getCurrentLanguage(){const _0x25dec3=a54_0x2c01bd;return a54_0xb7f5ec[_0x25dec3(0x13a)];}
@@ -0,0 +1 @@
1
+ function a55_0xbcc9(_0x280917,_0x23fe4f){_0x280917=_0x280917-0x1c8;var _0x31e9a5=a55_0x31e9();var _0xbcc997=_0x31e9a5[_0x280917];return _0xbcc997;}function a55_0x31e9(){var _0x1d7fa8=['*\x20CSS\x20URL:\x20','Show\x20help','Generate\x20doc\x20for\x20specific\x20dataset\x20only','Configuring\x20MCP\x20server...','Please\x20select\x20at\x20least\x20one\x20IDE','MCP\x20Server\x20(AI\x20dataset\x20access)','Failed\x20to\x20create\x20menu','\x0aSelect\x20IDEs\x20to\x20install\x20skills\x20(multi-select):\x0a','\x20\x20\x202.\x20Use\x20flag:\x20lovrabet\x20api\x20doc\x20--appcode\x20<app-code>','JS\x20URL\x20is\x20unreachable','MCP\x20&\x20Skill','Batch\x20menu\x20creation\x20completed,\x20total\x20{{count}}','Failed\x20to\x20copy\x20shared\x20skill\x20files','*\x20AppCode\x20','\x20\x20--dangerously-bff-save\x20\x20\x20\x20Include\x20Backend\x20Function\x20sync\x20workflow\x20guide\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(requires\x20MCP\x20server\x20with\x20corresponding\x20tools\x20enabled)','No\x20AppCode\x20provided\x20and\x20no\x20default\x20configured','AppCode\x20cannot\x20exceed\x20100\x20characters','Update\x20Menu\x20CDN\x20Resources','Failed\x20to\x20create\x20menu,\x20HTTP\x20status:\x20{{status}}','\x20\x20Include\x20BFF\x20sync\x20workflow\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20Use\x20--dangerously-bff-save\x20flag','Please\x20restart\x20Cursor\x20to\x20load\x20the\x20new\x20MCP\x20config.','\x20Assets\x20are\x20syncing...','Fetching\x20developer\x20guides\x20from\x20CDN\x20(with\x20extensions)...','Press\x20any\x20key\x20to\x20exit...','Project','Project\x20name\x20contains\x20invalid\x20characters.\x20Not\x20allowed:\x20<\x20>\x20:\x20\x22\x20|\x20?\x20*\x20and\x20control\x20characters','\x20\x20-\x20Filter\x20query\x20building\x20spec\x20(10\x20common\x20error\x20comparisons)\x0a\x20\x20-\x20MCP\x20SQL\x20creation\x20workflow\x20(5-step\x20mandatory\x20process)\x0a\x20\x20-\x20AntD\x20UI\x20development\x20spec\x20(anti-AI-style)\x0a\x20\x20-\x20API\x20integration\x20guide\x20(lovrabet\x20api\x20pull\x20workflow)\x0a\x20\x20-\x20Menu\x20management\x20guide\x20(menu\x20sync/update\x20workflow)\x0a\x20\x20-\x20Backend\x20Function\x20script\x20spec\x20(permissions,\x20data\x20masking,\x20business\x20logic)\x0a\x20\x20-\x20Backend\x20Function\x20sync\x20workflow\x20(requires\x20--dangerously-bff-save)','\x20Enter\x20project\x20CSS\x20asset\x20URL\x20(https://...)','Configure\x20AppCode:','💡\x20If\x20the\x20browser\x20does\x20not\x20open\x20automatically,\x20copy\x20the\x20login\x20URL\x20above\x20into\x20your\x20browser.','AppCode','Using\x20configured\x20AppCode:\x20{{appCode}}','7022000sRDGmt','Written\x20.cursor/mcp.json','🔐\x20Starting\x20login\x20service...','Please\x20run:\x20{{command}}','✗\x20Configuration\x20failed','Not\x20set','Login\x20skipped','\x0aNo\x20IDE\x20selected,\x20installation\x20cancelled\x0a','Fetching\x20daily\x20menu\x20list...\x20(appCode:\x20{{appCode}})','√\x20Menu\x20creation\x20completed','\x20\x20\x201.\x20Specify\x20directly:\x20lovrabet\x20api\x20pull\x20<app-code>','\x20\x20\x201.\x20Set\x20default:\x20lovrabet\x20config\x20set\x20appcode\x20<app-code>','Usage:','Cursor\x20MCP\x20configured\x20successfully','\x20\x20Interactive\x20selection\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20Show\x20IDE\x20list\x20for\x20selection,\x20multi-select\x20supported','\x20|\x20AppCode:\x20','Generating\x20{{fileName}}.md\x20({{current}}/{{total}})','Create','Unknown\x20IDE:\x20{{ide}}','Configuration\x20command\x20generated','*\x20Updating\x20package.json\x20name\x20and\x20description\x20fields','Invalid\x20command.\x20Available\x20commands:','↑/↓:\x20Move\x20\x20Space:\x20Toggle\x20\x20a:\x20All\x20\x20q:\x20Quit\x20\x20Enter:\x20Confirm','-\x20Model\x20config\x20({{count}}\x20models)','2466momqXh','Project\x20name:\x20','✓\x20Skill\x20Installation\x20Complete:','\x20\x20\x20Duration:\x20{{duration}}ms','Configuration\x20methods:','Fetching\x20online\x20menu\x20list...\x20(appCode:\x20{{appCode}})','Use','Lovrabet\x20Platform','\x20\x20\x20•\x20{{name}}.ts\x20-\x20Client\x20instance\x20file','\x20\x20\x20\x20→\x20Use\x20↑↓\x20to\x20move,\x20Space\x20to\x20toggle,\x20Enter\x20to\x20confirm\x0a\x20\x20\x20\x20→\x20Press\x20a\x20to\x20select\x20all,\x20i/r\x20to\x20invert,\x20q\x20to\x20quit','\x20Fetching\x20online\x20menu\x20list...','√\x20Valid\x20login\x20detected','*\x20Processed\x20{{count}}\x20datasets','\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Configure\x20Cursor','Installing\x20skills...','⚠️\x20Configuration\x20requires\x20manual\x20steps','Other\x20IDE\x20configuration\x20guide\x20displayed','16055CtUcXI','✓\x20Generated:\x20{{fileName}}.md','Examples','\x20\x20√\x20Environment\x20configured','Initializing\x20configuration\x20file...','Login\x20failed','Please\x20configure\x20app\x20code\x20first\x20via\x20`lovrabet\x20config\x20set\x20app\x20<value>`','↪\x20New\x20version\x20available','\x20Checking...','\x20Enter\x20project\x20JS\x20asset\x20URL\x20(https://...)','Watch\x20Mode','Fetched\x20{{count}}\x20online\x20menus\x20successfully','*\x20Entered\x20asset\x20URLs','Failed\x20to\x20copy\x20Cursor\x20Rules\x20file','1776663FMfSas','×\x20Project\x20creation\x20failed:\x20{{error}}','✓\x20MCP\x20configuration\x20completed!','Configuration:\x20appcode={{appcode}},\x20env={{env}}','×\x20API\x20config\x20pull\x20failed:\x20{{error}}','{{name}}\x20skill\x20installed\x20successfully','Starting\x20development\x20server...','⚠️\x20\x20Unknown\x20platform:\x20{{ide}},\x20using\x20generic\x20template','*\x20Select\x20IDEs\x20to\x20configure:','\x20\x20\x20Current\x20version:\x20{{package}}@{{version}}','*\x20No\x20logs\x20found','*\x20Pulling\x20API\x20config\x20from\x20server...\x20(env:\x20{{env}})','Specify\x20output\x20directory\x20(pull:\x20./src/api/,\x20doc:\x20./docs)','√\x20Configuration\x20file\x20created,\x20AppCode:\x20{{appCode}}','*\x20Using\x20configured\x20AppCode:\x20{{appCode}}','🚀\x20Next\x20Steps:','\x0aInstallation\x20cancelled\x0a','Menu\x20assets\x20synced:\x20{{label}}','Please\x20select\x20at\x20least\x20one\x20item\x20to\x20configure','App\x20Code\x20can\x20only\x20contain\x20letters,\x20numbers,\x20-\x20and\x20_','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Show\x20help\x0a','Lovrabet\x20Skill\x20-\x20Developer\x20Skill\x20Installation\x20Tool','Finish','Unsupported\x20MCP\x20IDE:\x20{{ide}}','•\x20Skill:\x20Install\x20best\x20practices\x20and\x20Backend\x20Function\x20guidelines','Specify\x20environment\x20(e.g.\x20daily,\x20online)','\x20\x20\x20\x20→\x20Interactive\x20IDE\x20selection','Generate\x20docs\x20for\x20all\x20datasets','\x20\x20Use\x20←→\x20to\x20revise\x20choice,\x20Enter\x20to\x20confirm\x20IDEs','\x0a✓\x20MCP\x20configuration\x20completed\x20({{successCount}}/{{totalCount}}\x20succeeded)','!\x20Not\x20logged\x20in','No\x20appcode\x20found.\x20Run\x20\x27lovrabet\x20init\x27\x20to\x20initialize\x20project\x20config','{{count}}\x20directories\x20installed','Failed\x20to\x20save\x20config','×\x20AppCode\x20not\x20configured','✗\x20Failed:\x20{{fileName}}.md\x20-\x20{{error}}','\x20\x20q.\x20Cancel\x0a','*\x20Checking\x20login\x20status...','App\x20Code','Install\x20all\x20skills','List\x20all\x20config\x20values','Installation\x20methods:','Specify\x20doc\x20output\x20directory','\x20\x20Direct\x20IDE\x20config\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20Use\x20--ide\x20flags','Failed\x20to\x20clean\x20up\x20project\x20directory','Other\x20IDE','JS\x20URL:\x20','Pull\x20API\x20config:\x20','Supported\x20IDEs:','⚠️\x20\x20Failed\x20to\x20open\x20browser\x20automatically','\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Interactive\x20MCP\x20configuration','✓\x20Logged\x20out','\x0aSelect\x20IDE\x20to\x20configure\x20MCP:\x0a','login\x20again\x20and\x20retry','Selected\x20menus','Generate\x20Documentation','*\x20Generated\x20doc\x20files:','Set\x20a\x20config\x20value','\x20\x20\x20Current\x20CLI\x20version:\x20{{version}}','\x20Fetching\x20online\x20menu\x20asset\x20links...','\x20\x20\x20Time:\x20{{time}}','Error:\x20Unsupported\x20command:\x20{{cmd}}','Selected\x20IDEs','Logged\x20in','*\x20Select\x20menus\x20to\x20sync:','Info','*\x20Logging\x20in,\x20please\x20complete\x20in\x20browser...','Failed\x20to\x20create\x20menu:\x20{{error}}','✓\x20Skills\x20installed\x20successfully!\x20{{count}}\x20directories\x20created','!\x20No\x20local\x20pages\x20found,\x20please\x20create\x20pages\x20first','\x20\x20(Note:\x20--appcode\x20flag\x20matches\x20config,\x20using\x20default\x20config)','\x20\x20✓\x20Created\x20{{path}}/','Failed\x20to\x20fetch\x20datasets,\x20HTTP\x20status:\x20{{status}}','Your\x20choice:\x20','Failed\x20to\x20fetch\x20menu\x20list:\x20{{error}}','Update','Unknown\x20error','Get\x20a\x20config\x20value','\x20\x20\x20Upgrade\x20command:\x20{{command}}','Cancel','*\x20Create\x20new\x20project','API\x20Management','Developer\x20guides\x20location:','Project\x20Name','Failed\x20to\x20update\x20menu\x20assets:\x20{{error}}','\x20\x20Restart\x20Claude\x20Code\x20to\x20take\x20effect\x0a','Set\x20display\x20language\x20(zh/en)','\x20\x20\x20\x20→\x20Install\x20all\x20IDE\x20skills','\x20Logging\x20in...','Set\x20App\x20Code\x20for\x20current\x20project','Interactive\x20skill\x20installation','\x20\x20\x20Stable\x20version:\x20{{version}}','Unknown\x20api\x20command','Select\x20IDEs\x20to\x20configure:','\x20\x20✗\x20Failed\x20to\x20install\x20{{ide}}:\x20{{error}}','*\x20Automatically\x20pull\x20API\x20config?','\x0aAvailable\x20commands:','Project\x20Configuration','\x0a✗\x20{{ide}}\x20MCP\x20configuration\x20failed:\x20{{error}}','!\x20The\x20following\x20dataset\x20codes\x20do\x20not\x20exist:\x20{{codes}}','\x20\x20\x202.\x20Set\x20default:\x20lovrabet\x20config\x20set\x20app\x20<app-code>','🚀\x20Pulling\x20API\x20config\x20from\x20server...\x20(env:\x20{{env}})','Claude\x20Code\x20MCP\x20command\x20generated','Install\x20all\x20IDE\x20skills\x20(including\x20generic\x20template)','Login\x20Successful','Failed\x20to\x20fetch\x20datasets:\x20{{error}}','*\x20Press\x20Enter\x20to\x20start\x20login.','*\x20Login\x20first\x20to\x20pull\x20API\x20config?','CSS\x20URL','*\x20Cleaning\x20up\x20failed\x20project\x20directory:\x20{{dir}}','Cursor\x20Rules\x20file\x20already\x20exists,\x20skipping','Enter\x20default:\x20Yes','\x0aInvalid\x20choice.\x20Enter\x20a\x20number\x20between\x201\x20and\x20{{count}}\x0a','\x0aNote:\x20Some\x20configurations\x20require\x20manual\x20commands,\x20please\x20follow\x20the\x20instructions\x20above','Logging\x20in...','\x20\x20•\x20Skill:','!\x20API\x20configuration\x20pull\x20failed,\x20you\x20can\x20manually\x20run:\x20lovrabet\x20api\x20pull','√\x20Configuration\x20file\x20created,\x20you\x20can\x20configure\x20later\x20with\x20\x27lovrabet\x20config\x20set\x20appcode\x20<app-code>\x27','\x0a✓\x20Skills\x20installed\x20successfully!\x20{{count}}\x20directories\x20created\x0a','1741708oPWOmb','Waiting\x203\x20seconds...\x0a','Start\x20project:\x20','Enter\x20project\x20CSS\x20asset\x20URL\x20(https://...)','[Y]\x20Yes,\x20configure\x20AI\x20assistant','Fetching\x20developer\x20guides\x20from\x20CDN...','Create\x20agents.md\x20file','agents.md\x20already\x20exists,\x20skipping','√\x20package.json\x20updated:\x20name={{name}}','Create\x20Cursor\x20Rules\x20file','2ewYwcE','✓\x20MCP\x20Server\x20Configuration\x20Complete:','\x20\x20√\x20Code\x20formatted','*\x20Output\x20directory:\x20','\x20\x20$\x20lovrabet\x20mcp\x20install','!\x20No\x20valid\x20login\x20detected','After\x20installation,\x20the\x20following\x20will\x20be\x20created\x20in\x20your\x20project:','*\x20Configure\x20Lovrabet\x20MCP\x20and\x20Skill?','Please\x20select\x20at\x20least\x20one\x20menu','Specify\x20app\x20code','\x0aError:\x20Configuration\x20failed\x20-\x20{{error}}\x0a','No\x20config\x20value\x20provided','Updating\x20menu\x20asset\x20links:\x20{{label}}\x20({{path}})','Install\x20all','175206SnwctZ','❌\x20Error:\x20Positional\x20arguments\x20are\x20no\x20longer\x20supported','\x20\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20Configure\x20Claude\x20Code\x20MCP\x20directly','Enter\x200\x20to\x20install\x20all\x20IDEs,\x20enter\x20q\x20to\x20cancel\x0a','Login\x20status','Appcode\x20must\x20be\x20configured\x20first','\x20command\x20to\x20re-login','Copy\x20project\x20files','Project\x20name\x20is\x20too\x20long,\x20maximum\x20100\x20characters','*\x20Configuring\x20AppCode\x20for\x20project\x20{{name}}:\x20{{appCode}}','Install\x20for\x20specific\x20IDE','Success','Please\x20enter\x20a\x20valid\x20JS\x20https\x20URL','\x20\x20Error:\x20{{error}}','App\x20Code\x20identifies\x20your\x20project.\x20Only\x20letters,\x20numbers,\x20-\x20and\x20_\x20are\x20allowed','\x20\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20Configure\x20Cursor\x20MCP\x20directly','Asset\x20links\x20to\x20update:','*\x20Configuring\x20Lovrabet\x20MCP\x20and\x20Skill...','Local','Start\x20batch\x20menu\x20creation,\x20total\x20{{count}}','Login\x20successful.\x20Please\x20return\x20to\x20the\x20CLI\x20to\x20continue.\x20This\x20window\x20will\x20close\x20in\x20{{seconds}}\x20seconds.','Pull\x20API','Project\x20directory\x20{{name}}\x20already\x20exists,\x20please\x20use\x20a\x20different\x20name','Pull\x20API\x20for\x20specified\x20environment','Install\x20dependencies','*\x20Project\x20name:\x20','!\x20No\x20menu\x20asset\x20links\x20found','Generating\x20docs\x20for\x20{{count}}\x20datasets...','!\x20API\x20configuration\x20pull\x20error,\x20project\x20created,\x20you\x20can\x20manually\x20run:\x20lovrabet\x20api\x20pull','↑/↓:\x20Move\x20\x20Space:\x20Toggle\x20\x20a:\x20All\x20\x20i/r:\x20Invert\x20\x20Enter:\x20Confirm','*\x20Import\x20usage:','Confirm','\x0a✓\x20{{ide}}\x20MCP\x20configured\x20successfully','√\x20Valid\x20session\x20detected,\x20no\x20login\x20required.','lovrabet\x20api\x20-\x20API\x20Operations','Configuration\x20guide:','*\x20Enter\x20new\x20asset\x20URLs','Include\x20Backend\x20Function\x20sync\x20workflow','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20Install\x20Cursor\x20skill\x20directly\x0a','[N]\x20Skip,\x20configure\x20later','\x20\x20!\x20CDN\x20fetch\x20failed,\x20skipping\x20guide\x20installation:\x20{{error}}','{{count}}','Loading...','\x20\x20Recommended:\x20Yes,\x20to\x20auto-configure\x20API','\x20\x20Installing\x20dependencies...','Unsupported\x20IDE:\x20{{ide}}','√\x20Updated\x20successfully','\x20\x20✗\x20Unknown\x20IDE:\x20{{ide}}','Examples:','19315152RWzvdb','↪\x20SDK\x20update\x20available','Other\x20IDE\x20configuration\x20guide','×\x20--datasetcode\x20cannot\x20be\x20empty','Use\x20specified\x20appcode','*\x20Creating\x20project\x20{{name}}...','Invalid\x20response\x20format\x20({{datasetCode}}):\x20missing\x20data.markdown\x20field','Login\x20successful!','Continue\x20update','✅\x20Browser\x20opened.\x20Please\x20complete\x20login\x20in\x20the\x20browser.','Cancel\x20update','Please\x20enter\x20a\x20valid\x20CSS\x20https\x20URL','Directory\x20\x22{{name}}\x22\x20already\x20exists','App\x20Code\x20cannot\x20be\x20empty','\x20\x20\x20\x20→\x20Install\x20Cursor\x20and\x20Claude\x20Code\x20skills\x20directly','!\x20Please\x20use\x20one\x20of\x20the\x20following:','✓\x20MCP\x20server\x20configuration\x20completed:','Generic\x20Template','!\x20Please\x20specify\x20a\x20valid\x20command.','Configure\x20Lovrabet\x20MCP\x20Server','√\x20API\x20configuration\x20pulled\x20successfully','Pull\x20API\x20configuration:','*\x20Generated\x20files:','Claude\x20Code','×\x20--params\x20is\x20not\x20valid\x20JSON\x20format','\x0a📋\x20Other\x20IDE\x20MCP\x20configuration:\x0a','2425244hZxfqN','\x20\x20\x202.\x20Use\x20flag:\x20lovrabet\x20api\x20pull\x20--appcode\x20<app-code>','\x20\x20\x20•\x20{{name}}.ts\x20-\x20Model\x20config\x20file','Cannot\x20create\x20project\x20in\x20current\x20directory,\x20please\x20check\x20directory\x20permissions','✓\x20{{scope}}\x20locale\x20set\x20to:\x20{{value}}','Please\x20use\x20the\x20--appcode\x20flag,\x20for\x20example:','📍\x20Login\x20URL:',',\x20{{failCount}}\x20failed','Specify\x20output\x20directory','*\x20Creating\x20configuration\x20file\x20for\x20project\x20{{name}}','Configuration:','\x20\x20Environment:\x20{{env}}','Error','{{count}}\x20items','Please\x20enter\x20App\x20Code:','Config\x20value\x20is\x20invalid\x20or\x20too\x20long','Format\x20code','Pull\x20and\x20generate\x20API\x20config\x20files','.lovrabetrc\x20file\x20already\x20exists\x20in\x20current\x20directory','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Interactive\x20IDE\x20selection','√\x20Pulled\x20{{datasetCount}}\x20datasets,\x20generated\x20{{modelCount}}\x20models','🌐\x20Attempting\x20to\x20open\x20browser\x20automatically...','All\x20specified\x20dataset\x20codes\x20do\x20not\x20exist:\x20{{codes}}','Options:','AppCode\x20can\x20only\x20contain\x20letters,\x20numbers,\x20hyphens\x20and\x20underscores,\x20and\x20must\x20start\x20with\x20a\x20letter\x20or\x20number','Fetching\x20model\x20list\x20from\x20server...\x20(env:\x20{{env}})','\x20\x20\x20\x20→\x20Configure\x20Cursor\x20MCP\x20(writes\x20.cursor/mcp.json)','Cursor','Successfully\x20initialized\x20.lovrabetrc\x20file\x20in\x20current\x20directory','Authentication\x20failed,\x20session\x20expired.\x20Please\x20use\x20lovrabet\x20auth\x20to\x20login\x20again','Invalid\x20project\x20name','Hint:\x20use\x20','Warning','Other\x20(generic\x20template)\x20(.agent/skills/)\x20-\x20Fallback','Description','{{count}}\x20items\x20created','Invalid\x20App\x20Code','\x20\x20\x20Interactive\x20selection\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20Show\x20IDE\x20list\x20for\x20selection','*\x20Logs\x20cleared','Menu\x20Name','Failed\x20to\x20fetch\x20doc\x20({{datasetCode}}),\x20HTTP\x20status:\x20{{status}}','CSS\x20URL\x20is\x20unreachable','Usage','*\x20Processing\x20{{count}}\x20datasets...','{{name}}\x20skill\x20installation\x20failed','Enter\x20project\x20JS\x20asset\x20URL\x20(https://...)','Developer\x20guides:\x20.lovrabet/skill/.shared/guides/','\x20\x20Direct\x20install\x20(multiple\x20IDEs)\x20\x20\x20\x20\x20-\x20Use\x20--ide\x20flags\x20to\x20install\x20directly','Generate\x20docs\x20for\x20specified\x20environment','Skill\x20contents\x20include:','√\x20{{label}}:\x20','\x0aNo\x20valid\x20IDE\x20to\x20install\x0a','1.\x20Configure\x20Lovrabet\x20MCP\x20and\x20Skill','\x0a📦\x20Installing\x20{{name}}...\x0a','\x0a📋\x20Run\x20the\x20following\x20command\x20to\x20configure\x20Claude\x20Code\x20MCP:\x0a','to\x20view\x20available\x20commands.','Previous','√\x20Doc\x20generation\x20complete!\x20{{successCount}}\x20succeeded','\x20\x20√\x20Dependency\x20install\x20skipped\x20(non-interactive)','*\x20Pulling\x20API\x20configuration...','\x20\x20√\x20package.json\x20updated','Server\x20returned\x20empty\x20menu\x20list','Failed\x20to\x20fetch\x20menu\x20list,\x20HTTP\x20status:\x20{{status}}','View\x20Logs','App\x20Code\x20cannot\x20exceed\x20100\x20characters','\x0aConfiguration\x20cancelled\x0a','⚠️\x20The\x20following\x20datasets\x20failed\x20to\x20generate:','Yes'];a55_0x31e9=function(){return _0x1d7fa8;};return a55_0x31e9();}var a55_0x1ae8f6=a55_0xbcc9;(function(_0x39f90b,_0x139e39){var _0x53af48=a55_0xbcc9,_0xaaf03b=_0x39f90b();while(!![]){try{var _0x363d6e=parseInt(_0x53af48(0x259))/0x1+parseInt(_0x53af48(0x263))/0x2*(-parseInt(_0x53af48(0x271))/0x3)+-parseInt(_0x53af48(0x2bc))/0x4+parseInt(_0x53af48(0x1d4))/0x5*(parseInt(_0x53af48(0x338))/0x6)+-parseInt(_0x53af48(0x1e2))/0x7+parseInt(_0x53af48(0x320))/0x8+-parseInt(_0x53af48(0x2a2))/0x9;if(_0x363d6e===_0x139e39)break;else _0xaaf03b['push'](_0xaaf03b['shift']());}catch(_0x528987){_0xaaf03b['push'](_0xaaf03b['shift']());}}}(a55_0x31e9,0xd5821));export default{'common':{'success':a55_0x1ae8f6(0x27c),'error':a55_0x1ae8f6(0x2c8),'warning':a55_0x1ae8f6(0x2dc),'info':a55_0x1ae8f6(0x223),'loading':a55_0x1ae8f6(0x29b),'cancel':a55_0x1ae8f6(0x231),'confirm':a55_0x1ae8f6(0x290),'next':'Next','previous':a55_0x1ae8f6(0x2f4),'finish':a55_0x1ae8f6(0x1f8)},'help':{'invalidCommand':a55_0x1ae8f6(0x2b4),'usageHint':a55_0x1ae8f6(0x1c9),'viewCommands':a55_0x1ae8f6(0x2f3)},'cli':{'usage':a55_0x1ae8f6(0x2e6),'examples':a55_0x1ae8f6(0x1d6),'description':a55_0x1ae8f6(0x2de)},'init':{'inputAppCode':a55_0x1ae8f6(0x2ca),'appCodeDesc':a55_0x1ae8f6(0x27f),'fileExists':a55_0x1ae8f6(0x2ce),'creating':a55_0x1ae8f6(0x1d8),'success':a55_0x1ae8f6(0x2d8),'appCodeLabel':a55_0x1ae8f6(0x31e),'nextSteps':'You\x20can\x20now\x20use\x20commands\x20like\x20\x27lovrabet\x20api\x20doc\x27\x20and\x20\x27lovrabet\x20api\x20pull\x27','validation':{'required':a55_0x1ae8f6(0x2af),'tooLong':a55_0x1ae8f6(0x2fc),'invalidFormat':a55_0x1ae8f6(0x1f5),'invalidCode':a55_0x1ae8f6(0x2e0)}},'create':{'projectNameLabel':a55_0x1ae8f6(0x235),'appCodeLabel':'App\x20Code','validation':{'required':'Project\x20name\x20cannot\x20be\x20empty','invalidChars':a55_0x1ae8f6(0x319),'tooLong':a55_0x1ae8f6(0x279),'dirExists':a55_0x1ae8f6(0x287),'noPermission':a55_0x1ae8f6(0x2bf),'projectName':{'tooLong':'Project\x20name\x20cannot\x20exceed\x2050\x20characters','invalidFormat':'Project\x20name\x20must\x20start\x20with\x20a\x20letter\x20or\x20number\x20and\x20only\x20contain\x20letters,\x20numbers,\x20-\x20and\x20_','invalid':a55_0x1ae8f6(0x2da),'dirExistsShort':a55_0x1ae8f6(0x2ae)},'appCode':{'tooLong':a55_0x1ae8f6(0x310),'invalidFormat':a55_0x1ae8f6(0x2d4),'invalid':'Invalid\x20AppCode'},'ide':{'required':'Please\x20select\x20at\x20least\x20one\x20IDE'}},'common':{'yes':a55_0x1ae8f6(0x2ff),'no':'No','selectHint':'\x20\x20Use\x20←→\x20to\x20choose,\x20press\x20Enter\x20to\x20confirm'},'steps':{'pullingApi':a55_0x1ae8f6(0x2f7),'apiPullSuccess':a55_0x1ae8f6(0x2b6),'apiPullFailed':a55_0x1ae8f6(0x256),'apiPullError':a55_0x1ae8f6(0x28d),'updatingPackage':a55_0x1ae8f6(0x334),'packageUpdated':a55_0x1ae8f6(0x261),'configuringAppCode':a55_0x1ae8f6(0x27a),'creatingConfig':'*\x20Creating\x20configuration\x20file\x20for\x20project\x20{{name}}','configCreatedWithAppCode':a55_0x1ae8f6(0x1ef),'configCreated':'√\x20Configuration\x20file\x20created,\x20you\x20can\x20configure\x20later\x20with\x20\x27lovrabet\x20config\x20set\x20appcode\x20<app-code>\x27','configuringMcp':a55_0x1ae8f6(0x282),'mcpConfigComplete':'√\x20Lovrabet\x20MCP\x20and\x20Skill\x20configuration\x20completed','cleaningUp':a55_0x1ae8f6(0x24f),'projectName':{'label':'Project\x20Name'},'appCode':{'label':a55_0x1ae8f6(0x208),'notSet':a55_0x1ae8f6(0x325)},'apiPull':{'label':'Pull\x20API\x20config'},'lovrabetSetup':{'label':a55_0x1ae8f6(0x30a),'ideCount':'{{count}}\x20IDEs'},'login':{'label':a55_0x1ae8f6(0x275),'loggedIn':a55_0x1ae8f6(0x221),'failed':a55_0x1ae8f6(0x1d9),'skipped':a55_0x1ae8f6(0x326)}},'title':a55_0x1ae8f6(0x232),'completedStep':a55_0x1ae8f6(0x2ee),'input':{'projectName':{'label':a55_0x1ae8f6(0x28a),'hint':'Press\x20Enter\x20to\x20confirm\x20or\x20type\x20a\x20custom\x20name'},'appCode':{'label':a55_0x1ae8f6(0x30d),'optional':'[optional]:\x20','hint':'Bind\x20AppCode\x20to\x20auto-configure\x20API,\x20e.g.\x20app-c4c89304\x20(press\x20Enter\x20to\x20skip)'}},'login':{'checking':a55_0x1ae8f6(0x207),'checkingStatus':a55_0x1ae8f6(0x1dc),'valid':a55_0x1ae8f6(0x1ce),'notDetected':a55_0x1ae8f6(0x268),'prompt':a55_0x1ae8f6(0x24d),'inProgress':a55_0x1ae8f6(0x224),'inProgressStatus':a55_0x1ae8f6(0x23a)},'apiPull':{'confirm':a55_0x1ae8f6(0x241),'recommendation':a55_0x1ae8f6(0x29c)},'lovrabetSetup':{'confirm':a55_0x1ae8f6(0x26a),'selectIdeHint':a55_0x1ae8f6(0x1fe),'selectIdeTitle':a55_0x1ae8f6(0x23f),'keyboardShortcuts':a55_0x1ae8f6(0x28e),'inProgress':a55_0x1ae8f6(0x282),'mcpCompleted':a55_0x1ae8f6(0x2b2),'skillCompleted':'✓\x20Skill\x20installation\x20completed:'},'creating':'*\x20Creating\x20project...','display':{'projectName':a55_0x1ae8f6(0x339),'appCode':a55_0x1ae8f6(0x32f)},'packageJson':{'updating':a55_0x1ae8f6(0x334),'updated':a55_0x1ae8f6(0x261)},'config':{'configuringAppCode':a55_0x1ae8f6(0x27a),'creating':a55_0x1ae8f6(0x2c5),'createdWithAppCode':'√\x20Configuration\x20file\x20created,\x20AppCode:\x20{{appCode}}','createdWithoutAppCode':a55_0x1ae8f6(0x257)},'cleanup':{'inProgress':a55_0x1ae8f6(0x24f)},'results':{'mcpComplete':a55_0x1ae8f6(0x264),'skillComplete':a55_0x1ae8f6(0x33a),'nextSteps':a55_0x1ae8f6(0x1f1)},'nextSteps':{'configureMcpAndSkill':a55_0x1ae8f6(0x2f0),'skill':a55_0x1ae8f6(0x255),'mcp':'\x20\x20•\x20MCP\x20Server:','startProject':'Start\x20project:','pullApi':a55_0x1ae8f6(0x2b7),'configAppCode':a55_0x1ae8f6(0x31c)},'errors':{'createFailed':a55_0x1ae8f6(0x1e3),'cleanupFailed':a55_0x1ae8f6(0x20e),'depsInstallFailed':'Dependency\x20installation\x20failed:\x20{{error}}'},'nonInteractive':{'creating':a55_0x1ae8f6(0x2a7),'templateCreated':'\x20\x20√\x20Project\x20template\x20created','packageJsonUpdated':a55_0x1ae8f6(0x2f8),'installingDeps':a55_0x1ae8f6(0x29d),'depsSkipped':a55_0x1ae8f6(0x2f6),'codeFormatted':a55_0x1ae8f6(0x265),'envConfigured':a55_0x1ae8f6(0x1d7),'success':'\x0a√\x20Project\x20{{name}}\x20created\x20successfully!'},'tasks':{'copyFiles':a55_0x1ae8f6(0x278),'formatCode':'Format\x20code','installDependencies':a55_0x1ae8f6(0x289),'formatCodeLabel':a55_0x1ae8f6(0x2cc)},'nextStepsAlt':{'startProject':a55_0x1ae8f6(0x25b),'pullApi':a55_0x1ae8f6(0x211),'configureLovrabet':a55_0x1ae8f6(0x2f0)}},'config':{'title':a55_0x1ae8f6(0x243),'help':{'invalidCommand':a55_0x1ae8f6(0x335),'examples':a55_0x1ae8f6(0x2a1),'set':a55_0x1ae8f6(0x21b),'get':a55_0x1ae8f6(0x22f),'list':a55_0x1ae8f6(0x20a),'exampleApp':a55_0x1ae8f6(0x23b),'exampleEnv':'Set\x20environment\x20(online/daily)','exampleLocale':a55_0x1ae8f6(0x238)},'validation':{'envInvalid':'env\x20value\x20must\x20be\x20\x22online\x22\x20or\x20\x22daily\x22','localeInvalid':'Invalid\x20locale\x20value.\x20Supported:\x20zh,\x20en,\x20zh-CN,\x20en-US','valueInvalid':a55_0x1ae8f6(0x2cb),'noValue':a55_0x1ae8f6(0x26e),'saveFailed':a55_0x1ae8f6(0x203)},'success':{'envSet':'✓\x20{{scope}}\x20env\x20set\x20to:\x20{{value}}','localeSet':a55_0x1ae8f6(0x2c0)},'scope':{'project':a55_0x1ae8f6(0x318),'global':'Global'}},'api':{'title':a55_0x1ae8f6(0x233),'pull':a55_0x1ae8f6(0x286),'doc':a55_0x1ae8f6(0x219),'help':{'title':a55_0x1ae8f6(0x293),'usage':'Usage:','options':a55_0x1ae8f6(0x2d3),'optAppcode':a55_0x1ae8f6(0x26c),'optOutput':a55_0x1ae8f6(0x1ee),'optEnv':a55_0x1ae8f6(0x1fb),'optDatasetcode':'Specify\x20dataset\x20codes\x20for\x20doc\x20generation\x20(comma-separated,\x20doc\x20command\x20only)','optHelp':'Show\x20this\x20help\x20message','examples':'Examples:','pullDesc':a55_0x1ae8f6(0x2cd),'pullAppcode':a55_0x1ae8f6(0x2a6),'pullOutput':a55_0x1ae8f6(0x2c4),'pullEnv':a55_0x1ae8f6(0x288),'docDesc':a55_0x1ae8f6(0x1fd),'docAppcode':'Use\x20specified\x20appcode','docOutput':a55_0x1ae8f6(0x20c),'docEnv':a55_0x1ae8f6(0x2ec),'docDataset':a55_0x1ae8f6(0x302),'docDatasets':'Generate\x20docs\x20for\x20multiple\x20datasets','unknownCommand':a55_0x1ae8f6(0x23e),'availableCommands':'Available\x20commands:'},'common':{'noPositionalArgs':a55_0x1ae8f6(0x272),'useAppcodeFlag':a55_0x1ae8f6(0x2c1),'noAppCode':a55_0x1ae8f6(0x204),'noAppCodeHint':'!\x20Please\x20use\x20one\x20of\x20the\x20following:','noAppCodeOption1':a55_0x1ae8f6(0x32b),'noAppCodeOption2Pull':a55_0x1ae8f6(0x2bd),'noAppCodeOption2Doc':a55_0x1ae8f6(0x308),'usingConfigAppCode':a55_0x1ae8f6(0x1f0),'usingConfigAppCodeHint':a55_0x1ae8f6(0x228),'usingSpecifiedAppCode':'Using\x20specified\x20AppCode:\x20{{appCode}}','usingDefaultAppCode':a55_0x1ae8f6(0x31f),'noAppCodeDefault':a55_0x1ae8f6(0x30f),'paramsInvalidJson':'×\x20--params\x20must\x20be\x20a\x20valid\x20JSON\x20object','paramsNotJson':a55_0x1ae8f6(0x2ba),'paramsError':a55_0x1ae8f6(0x27e),'datasetcodeEmpty':a55_0x1ae8f6(0x2a5),'onlyGenerateDatasets':'*\x20Generating\x20docs\x20only\x20for\x20specified\x20datasets:\x20{{codes}}','authExpired':a55_0x1ae8f6(0x2d9),'authRetry':a55_0x1ae8f6(0x217),'unknownError':a55_0x1ae8f6(0x22e)},'pullUI':{'fetching':a55_0x1ae8f6(0x247),'successPull':'√\x20Pulled\x20{{datasetCount}}\x20datasets,\x20generated\x20{{modelCount}}\x20models','duplicateInfo':'!\x20Original\x20{{originalCount}}\x20datasets,\x20filtered\x20{{duplicateCount}}\x20duplicates','generatedFiles':a55_0x1ae8f6(0x2b8),'modelFile':a55_0x1ae8f6(0x337),'clientFile':'-\x20Client\x20instance\x20file','importHint':a55_0x1ae8f6(0x28f),'pullFailed':'Failed\x20to\x20pull\x20API\x20config:\x20{{error}}'},'docUI':{'fetchingDatasets':'Fetching\x20dataset\x20list...','noDatasets':'No\x20datasets\x20found','datasetsNotFound':a55_0x1ae8f6(0x245),'allDatasetsNotFound':a55_0x1ae8f6(0x2d2),'filteredDatasets':'*\x20Filtered\x20{{count}}\x20matching\x20datasets\x20from\x20{{total}}\x20total','generatingDocs':a55_0x1ae8f6(0x28c),'generatingFile':a55_0x1ae8f6(0x330),'docComplete':a55_0x1ae8f6(0x2f5),'docFailed':a55_0x1ae8f6(0x2c3),'processedDatasets':a55_0x1ae8f6(0x1cf),'outputDir':a55_0x1ae8f6(0x266),'generatedDocs':a55_0x1ae8f6(0x21a),'failedDatasets':a55_0x1ae8f6(0x2fe),'docGenerateFailed':'Doc\x20generation\x20failed:\x20{{error}}'},'fetchModel':{'fetching':a55_0x1ae8f6(0x2d5),'httpError':a55_0x1ae8f6(0x22a),'fetchError':a55_0x1ae8f6(0x24b)},'generateFile':{'noAppCode':a55_0x1ae8f6(0x1da)},'docBatch':{'totalDatasets':'\x0a{{count}}\x20datasets\x20to\x20generate\x20docs\x20for\x0a','generating':'[{{current}}/{{total}}]\x20Generating:\x20{{fileName}}.md\x20({{name}})','success':a55_0x1ae8f6(0x1d5),'failed':a55_0x1ae8f6(0x205),'waiting':a55_0x1ae8f6(0x25a),'docFormatError':a55_0x1ae8f6(0x2a8),'httpError':a55_0x1ae8f6(0x2e4)},'silent':{'invalidPrefix':'×\x20Invalid\x20file\x20prefix.\x20Only\x20letters,\x20numbers,\x20hyphens\x20and\x20underscores\x20allowed,\x20must\x20start\x20with\x20a\x20letter.','fetching':a55_0x1ae8f6(0x1ed),'generating':'*\x20Generating\x20API\x20config\x20files:','modelFileName':a55_0x1ae8f6(0x2be),'clientFileName':a55_0x1ae8f6(0x1cb),'processing':a55_0x1ae8f6(0x2e7),'success':a55_0x1ae8f6(0x2d0),'error':a55_0x1ae8f6(0x1e6)}},'auth':{'title':'Authentication','login':{'success':{'title':a55_0x1ae8f6(0x24a),'message':a55_0x1ae8f6(0x285),'manualClose':'Unable\x20to\x20close\x20automatically.\x20Please\x20close\x20this\x20tab\x20or\x20window\x20manually.'},'successCli':a55_0x1ae8f6(0x2a9),'inProgress':a55_0x1ae8f6(0x254),'browserPrompt':'Please\x20complete\x20login\x20in\x20your\x20browser.','pressEnter':a55_0x1ae8f6(0x24c),'pressQToExit':'Press\x20“q”\x20to\x20exit.'},'session':{'valid':a55_0x1ae8f6(0x292)},'server':{'starting':a55_0x1ae8f6(0x322),'loginUrl':a55_0x1ae8f6(0x2c2),'openingBrowser':a55_0x1ae8f6(0x2d1),'manualOpenHint':a55_0x1ae8f6(0x31d),'browserOpened':a55_0x1ae8f6(0x2ab),'browserOpenFailed':a55_0x1ae8f6(0x213),'manualCopyUrl':'🔗\x20Please\x20copy\x20the\x20login\x20URL\x20into\x20your\x20browser:'},'logout':{'success':a55_0x1ae8f6(0x215),'notLoggedIn':a55_0x1ae8f6(0x200)}},'menu':{'sync':'Sync\x20Menu','update':a55_0x1ae8f6(0x311)},'mcp':{'cursor':a55_0x1ae8f6(0x2d7),'claude':a55_0x1ae8f6(0x2b9),'error':{'unsupportedCommand':a55_0x1ae8f6(0x21f),'missingAppcode':a55_0x1ae8f6(0x201)},'help':{'title':'Lovrabet\x20MCP\x20-\x20MCP\x20Server\x20Configuration\x20Tool','availableCommands':'\x0aAvailable\x20commands:','command':{'install':a55_0x1ae8f6(0x214),'help':a55_0x1ae8f6(0x1f6)},'usage':{'help':'\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Show\x20help','install':'\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Interactive\x20MCP\x20configuration','installCursor':a55_0x1ae8f6(0x280),'installClaude':a55_0x1ae8f6(0x273)},'configMethods':a55_0x1ae8f6(0x33c),'configMethodsInteractive':a55_0x1ae8f6(0x2e1),'configMethodsInteractiveHint':'\x20\x20\x20\x20→\x20Enter\x20number\x20to\x20select\x20IDE','configMethodsDirect':a55_0x1ae8f6(0x20d),'configMethodsDirectCursor':a55_0x1ae8f6(0x1d0),'configMethodsDirectClaude':'\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Configure\x20Claude\x20Code','supportedIDEs':a55_0x1ae8f6(0x212),'examples':a55_0x1ae8f6(0x2a1),'exampleInstall':a55_0x1ae8f6(0x267),'exampleInstallHint':a55_0x1ae8f6(0x1fc),'exampleInstallCursor':'\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor','exampleInstallCursorHint':a55_0x1ae8f6(0x2d6),'configGuide':a55_0x1ae8f6(0x294)},'select':{'chooseIDE':a55_0x1ae8f6(0x216),'cancel':a55_0x1ae8f6(0x206),'enterNumber':'Enter\x20a\x20number\x20to\x20select\x20IDE:\x0a','prompt':a55_0x1ae8f6(0x22b),'cancelled':a55_0x1ae8f6(0x2fd),'invalidChoice':a55_0x1ae8f6(0x252)},'installFlow':{'configuring':'\x0a📦\x20Configuring\x20{{name}}\x20MCP...\x0a','error':a55_0x1ae8f6(0x26d)},'cursorConfig':{'success':'\x0a✓\x20Cursor\x20MCP\x20configured\x20successfully!\x0a','configInfo':a55_0x1ae8f6(0x2c6),'usageHint':'You\x20can\x20now\x20use\x20Lovrabet\x20dataset\x20MCP\x20tools\x20in\x20Cursor.','restartRequired':a55_0x1ae8f6(0x314),'error':a55_0x1ae8f6(0x26d),'rules':{'exists':a55_0x1ae8f6(0x250),'created':'Create\x20Cursor\x20Rules\x20file','copyFailed':'Failed\x20to\x20copy\x20Cursor\x20Rules\x20file'},'updateExisting':'Update\x20existing\x20mcp.json\x20config','createNew':'Create\x20new\x20mcp.json\x20config','written':a55_0x1ae8f6(0x321)},'claudeConfig':{'error':a55_0x1ae8f6(0x26d),'agents':{'exists':a55_0x1ae8f6(0x260),'created':'Create\x20agents.md\x20file','copyFailed':'Failed\x20to\x20copy\x20agents.md\x20file'},'manualCommand':'Run\x20the\x20following\x20command\x20to\x20configure\x20Claude\x20Code\x20MCP:','configInfo':a55_0x1ae8f6(0x2c6),'restartRequired':'Restart\x20Claude\x20Code\x20to\x20take\x20effect','commandGenerated':a55_0x1ae8f6(0x333)},'other':{'configInfo':a55_0x1ae8f6(0x1e5),'configGuide':'Detailed\x20guide:\x20https://help.yuntoo.com/mcp/config-guide','guideShown':a55_0x1ae8f6(0x1d3)},'config':{'env':'Environment:\x20{{env}}'},'install':{'starting':'Start\x20configuring\x20MCP','unknownIDE':'Unknown\x20IDE:\x20{{ide}}','otherIDE':a55_0x1ae8f6(0x20f),'success':a55_0x1ae8f6(0x291),'failed':a55_0x1ae8f6(0x244),'completed':a55_0x1ae8f6(0x1ff),'manualActionRequired':a55_0x1ae8f6(0x253)},'ui':{'otherIDE':a55_0x1ae8f6(0x20f),'otherIDEDescription':a55_0x1ae8f6(0x2a4),'selectAtLeastOne':a55_0x1ae8f6(0x304),'selectedIDE':a55_0x1ae8f6(0x220),'count':a55_0x1ae8f6(0x29a),'title':a55_0x1ae8f6(0x2b5),'configuring':a55_0x1ae8f6(0x303),'completed':a55_0x1ae8f6(0x1e4),'partialManual':'⚠️\x20Some\x20configurations\x20require\x20manual\x20steps','failed':a55_0x1ae8f6(0x324),'manualRequired':a55_0x1ae8f6(0x1d2),'pressAnyKeyToExit':a55_0x1ae8f6(0x317),'unsupportedIDE':a55_0x1ae8f6(0x29e)}},'aiSetup':{'error':{'missingAppcode':a55_0x1ae8f6(0x276)},'mcp':{'cursor':{'success':a55_0x1ae8f6(0x32d),'written':a55_0x1ae8f6(0x321),'error':'Cursor\x20MCP\x20configuration\x20failed','rules':{'created':a55_0x1ae8f6(0x262),'copyFailed':a55_0x1ae8f6(0x1e1)}},'claude':{'commandGenerated':a55_0x1ae8f6(0x248),'manualCommand':a55_0x1ae8f6(0x2f2),'configInfo':'Configuration:','env':a55_0x1ae8f6(0x2c7),'restartRequired':a55_0x1ae8f6(0x237),'manualExecute':a55_0x1ae8f6(0x323),'agents':{'created':a55_0x1ae8f6(0x25f),'copyFailed':'Failed\x20to\x20copy\x20agents.md\x20file'}},'other':{'name':'Other','title':a55_0x1ae8f6(0x2bb),'guideShown':'Configuration\x20guide\x20displayed'},'unsupportedIDE':a55_0x1ae8f6(0x1f9)},'skill':{'unknownIDE':a55_0x1ae8f6(0x332),'installSuccess':a55_0x1ae8f6(0x1e7),'itemsCreated':a55_0x1ae8f6(0x2df),'installFailed':a55_0x1ae8f6(0x2e8),'sharedCopied':'Shared\x20skill\x20files\x20copied\x20successfully','sharedCopyFailed':a55_0x1ae8f6(0x30c),'manifestCreated':'Skill\x20manifest\x20created'},'ui':{'selectAtLeastOne':a55_0x1ae8f6(0x1f4),'confirm':{'title':'Configure\x20AI\x20assistant\x20as\x20well?\x20This\x20will:','mcpDescription':'•\x20MCP:\x20Allow\x20AI\x20to\x20access\x20Lovrabet\x20datasets\x20directly','skillDescription':a55_0x1ae8f6(0x1fa),'yes':a55_0x1ae8f6(0x25d),'no':a55_0x1ae8f6(0x298),'default':a55_0x1ae8f6(0x251)},'select':{'title':a55_0x1ae8f6(0x1ea),'mcpSection':a55_0x1ae8f6(0x305),'skillSection':'Skills\x20(engineering\x20guidelines)','controls':a55_0x1ae8f6(0x336)},'installing':'Configuring\x20AI\x20assistant...'}},'appMenu':{'error':{'missingAppCode':'No\x20AppCode\x20provided\x20and\x20no\x20default\x20configured','appCodeHint':{'title':a55_0x1ae8f6(0x2b1),'option1':a55_0x1ae8f6(0x32a),'option2':a55_0x1ae8f6(0x246)},'authExpired':a55_0x1ae8f6(0x2d9),'authValidationFailed':'Auth\x20validation\x20failed.\x20Please\x20use\x20lovrabet\x20auth\x20to\x20login\x20again','httpStatus':a55_0x1ae8f6(0x2fa),'fetchFailed':a55_0x1ae8f6(0x22c),'createHttpStatus':a55_0x1ae8f6(0x312),'createFailed':a55_0x1ae8f6(0x225)},'info':{'emptyMenuList':a55_0x1ae8f6(0x2f9)},'success':{'fetched':a55_0x1ae8f6(0x1df),'created':'Menu\x20created\x20successfully:'},'fetching':{'online':a55_0x1ae8f6(0x1c8),'daily':a55_0x1ae8f6(0x328)},'creating':{'single':'Creating\x20menu:\x20{{label}}\x20({{path}})','batch':{'start':a55_0x1ae8f6(0x284),'completed':a55_0x1ae8f6(0x30b)}},'sync':{'title':'*\x20Sync\x20menus\x20to\x20Lovrabet\x20platform','table':{'menuName':a55_0x1ae8f6(0x2e3),'local':a55_0x1ae8f6(0x283),'lovrabetPlatform':a55_0x1ae8f6(0x1ca)},'error':{'noMenuSelected':a55_0x1ae8f6(0x26b),'invalidJsUrl':a55_0x1ae8f6(0x27d),'jsUrlUnreachable':a55_0x1ae8f6(0x309),'invalidCssUrl':a55_0x1ae8f6(0x2ad),'cssUrlUnreachable':a55_0x1ae8f6(0x2e5),'createMenuFailed':a55_0x1ae8f6(0x306),'authHint':{'prefix':a55_0x1ae8f6(0x2db),'suffix':a55_0x1ae8f6(0x277)},'noLocalPages':a55_0x1ae8f6(0x227)},'step':{'selectedMenus':a55_0x1ae8f6(0x218),'selectedMenusCount':a55_0x1ae8f6(0x2c9),'jsUrl':'JS\x20URL','cssUrl':a55_0x1ae8f6(0x24e),'selectMenus':a55_0x1ae8f6(0x222),'creating':'*\x20Creating\x20menus...','completed':a55_0x1ae8f6(0x329)},'operation':{'update':a55_0x1ae8f6(0x22d),'create':a55_0x1ae8f6(0x331)},'loading':{'fetchingMenuList':a55_0x1ae8f6(0x1cd)},'hotkeys':'↑/↓:\x20Move\x20\x20Space:\x20Toggle\x20\x20a:\x20All\x20\x20i/r:\x20Invert\x20\x20Enter:\x20Confirm','input':{'jsUrl':{'label':'*\x20JS\x20URL:\x20','placeholder':a55_0x1ae8f6(0x1dd)},'cssUrl':{'label':a55_0x1ae8f6(0x300),'placeholder':a55_0x1ae8f6(0x31b)}}},'updateCdn':{'title':a55_0x1ae8f6(0x295),'error':{'invalidJsUrl':a55_0x1ae8f6(0x27d),'jsUrlUnreachable':a55_0x1ae8f6(0x309),'invalidCssUrl':a55_0x1ae8f6(0x2ad),'cssUrlUnreachable':a55_0x1ae8f6(0x2e5),'authHint':{'prefix':a55_0x1ae8f6(0x2db),'suffix':a55_0x1ae8f6(0x277)},'noCdnLinks':a55_0x1ae8f6(0x28b),'updateFailed':a55_0x1ae8f6(0x236)},'loading':{'fetching':a55_0x1ae8f6(0x21d),'syncing':a55_0x1ae8f6(0x315)},'action':{'continue':a55_0x1ae8f6(0x2aa),'cancel':a55_0x1ae8f6(0x2ac)},'success':{'updated':a55_0x1ae8f6(0x29f),'synced':a55_0x1ae8f6(0x1f3)},'updating':a55_0x1ae8f6(0x26f),'preview':{'title':'*\x20Menus\x20and\x20asset\x20links\x20to\x20update','menuList':'Menus\x20to\x20update:','resourceLinks':a55_0x1ae8f6(0x281)},'input':{'title':a55_0x1ae8f6(0x1e0),'jsUrl':{'label':a55_0x1ae8f6(0x210),'placeholder':a55_0x1ae8f6(0x2e9)},'cssUrl':{'label':'CSS\x20URL:\x20','placeholder':a55_0x1ae8f6(0x25c)}}}},'skill':{'install':'Install\x20Skills','error':{'unsupportedCommand':a55_0x1ae8f6(0x21f),'installFailed':a55_0x1ae8f6(0x240),'unknownPlatform':a55_0x1ae8f6(0x1e9),'unknownIDE':a55_0x1ae8f6(0x2a0),'noValidIDE':a55_0x1ae8f6(0x2ef),'selectAtLeastOne':a55_0x1ae8f6(0x304)},'errorHint':{'availableCommands':a55_0x1ae8f6(0x242),'installInteractive':'\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Interactive\x20skill\x20installation','installDirect':'\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20Install\x20for\x20specific\x20IDE','showHelp':'\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Show\x20help\x0a','usageExamples':'Usage\x20examples:','exampleInteractive':a55_0x1ae8f6(0x2cf),'exampleDirect':a55_0x1ae8f6(0x297)},'select':{'title':a55_0x1ae8f6(0x307),'installAll':a55_0x1ae8f6(0x270),'cancel':'Cancel','inputFormat':'Input\x20format:\x20Enter\x20numbers\x20separated\x20by\x20spaces\x20(e.g.\x201\x203\x205)','inputHint':a55_0x1ae8f6(0x274),'prompt':'Your\x20choice:\x20','cancelled':a55_0x1ae8f6(0x1f2),'noneSelected':a55_0x1ae8f6(0x327),'selectedIDE':a55_0x1ae8f6(0x220),'count':'{{count}}'},'cdn':{'fetching':a55_0x1ae8f6(0x25e),'fetchingExtend':a55_0x1ae8f6(0x316),'fetchSuccess':'✓\x20Fetched\x20{{count}}\x20developer\x20guides','fetchFailed':a55_0x1ae8f6(0x299)},'installing':{'title':'Install\x20Lovrabet\x20Skills\x20-\x20Select\x20IDE','progress':a55_0x1ae8f6(0x1d1),'ide':a55_0x1ae8f6(0x2f1),'installed':a55_0x1ae8f6(0x202),'created':'\x20\x20✓\x20Created\x20{{path}}','createdDir':a55_0x1ae8f6(0x229),'createdManifest':'✓\x20Created\x20.lovrabet/skill-manifest.json'},'done':{'success':a55_0x1ae8f6(0x258),'successInline':a55_0x1ae8f6(0x226),'guidesLocation':a55_0x1ae8f6(0x234),'guidesPath':'\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20Detailed\x20developer\x20guides\x0a','guidesPathInline':a55_0x1ae8f6(0x2ea),'pressAnyKey':a55_0x1ae8f6(0x317)},'generic':a55_0x1ae8f6(0x2b3),'help':{'title':a55_0x1ae8f6(0x1f7),'usage':a55_0x1ae8f6(0x32c),'showHelp':a55_0x1ae8f6(0x301),'installInteractive':a55_0x1ae8f6(0x23c),'installDirect':a55_0x1ae8f6(0x27b),'installAll':a55_0x1ae8f6(0x209),'installWithBff':a55_0x1ae8f6(0x296),'installMethods':a55_0x1ae8f6(0x20b),'interactiveSelect':a55_0x1ae8f6(0x32e),'interactiveKeys':a55_0x1ae8f6(0x1cc),'directInstall':a55_0x1ae8f6(0x2eb),'bffWorkflow':a55_0x1ae8f6(0x313),'supportedIDEs':a55_0x1ae8f6(0x212),'agentDesc':a55_0x1ae8f6(0x2dd),'allDesc':a55_0x1ae8f6(0x249),'options':a55_0x1ae8f6(0x2d3),'bffOption':a55_0x1ae8f6(0x30e),'skillContents':a55_0x1ae8f6(0x2ed),'skillContentsList':a55_0x1ae8f6(0x31a),'examples':a55_0x1ae8f6(0x2a1),'exampleInteractive':'\x20\x20\x20\x20→\x20Interactive\x20IDE\x20selection','exampleDirectDesc':a55_0x1ae8f6(0x2b0),'exampleBffDesc':'\x20\x20\x20\x20→\x20Install\x20skills\x20with\x20Backend\x20Function\x20sync\x20workflow','exampleAllDesc':a55_0x1ae8f6(0x239),'afterInstall':a55_0x1ae8f6(0x269),'afterInstallList':'\x20\x20-\x20IDE-specific\x20config\x20files\x20(.cursorrules,\x20.windsurf/,\x20.claude/,\x20.cline/,\x20.codex/,\x20.opencode/,\x20.qoder/,\x20.codebuddy/,\x20.trae/)\x0a\x20\x20-\x20.lovrabet/skill/.shared/guides/\x20\x20-\x20Developer\x20skill\x20guides','guidesLocationTitle':a55_0x1ae8f6(0x234)}},'logs':{'title':'Logs','view':a55_0x1ae8f6(0x2fb),'clear':'Clear\x20Logs','noLogs':a55_0x1ae8f6(0x1ec),'header':'*\x20Lovrabet\x20CLI\x20logs:\x0a','time':a55_0x1ae8f6(0x21e),'duration':a55_0x1ae8f6(0x33b),'details':'\x20\x20\x20Details:\x20{{details}}','cleared':a55_0x1ae8f6(0x2e2)},'start':{'starting':a55_0x1ae8f6(0x1e8)},'build':{'building':'Building\x20project...'},'preview':{'previewing':'Previewing\x20project...','watchMode':a55_0x1ae8f6(0x1de)},'ui':{'ideSelector':{'title':'Select\x20IDEs\x20to\x20configure:','hotkeys':'↑/↓:\x20Move\x20\x20Space:\x20Toggle\x20\x20a:\x20All\x20\x20i/r:\x20Invert\x20\x20q:\x20Quit\x20\x20Enter:\x20Confirm'}},'upgrade':{'cli':{'title':a55_0x1ae8f6(0x1db),'current':a55_0x1ae8f6(0x21c),'stable':'\x20\x20\x20Stable\x20version:\x20{{version}}','command':a55_0x1ae8f6(0x230)},'sdk':{'title':a55_0x1ae8f6(0x2a3),'current':a55_0x1ae8f6(0x1eb),'stable':a55_0x1ae8f6(0x23d),'command':a55_0x1ae8f6(0x230)}}};
@@ -0,0 +1 @@
1
+ function a56_0x29bc(_0x1fe89c,_0x4b7324){_0x1fe89c=_0x1fe89c-0xb7;var _0x3e0155=a56_0x3e01();var _0x29bc4e=_0x3e0155[_0x1fe89c];return _0x29bc4e;}var a56_0x339dd2=a56_0x29bc;function a56_0x3e01(){var _0x1e9b5f=['\x0a✓\x20技能包安装成功!共安装\x20{{count}}\x20个目录\x0a','*\x20正在从服务器拉取\x20API\x20配置...\x20(环境:\x20{{env}})','\x0a已取消配置\x0a','全部安装','\x20\x20\x20耗时:\x20{{duration}}ms','❌\x20错误:不再支持位置参数方式','*\x20是否要自动拉取\x20API\x20配置?','包含\x20Backend\x20Function\x20同步工作流','正在获取线上菜单列表...\x20(appCode:\x20{{appCode}})','192285jXFcGW','交互式选择并安装技能包','\x20\x20\x20•\x20{{name}}.ts\x20-\x20模型配置文件','显示帮助信息','\x20\x20正在安装依赖...','创建菜单失败:\x20{{error}}','正在安装技能包...','格式化代码','JS\x20链接无法访问','\x20\x20-\x20IDE\x20特定配置文件\x20(.cursorrules,\x20.windsurf/,\x20.claude/,\x20.cline/,\x20.codex/,\x20.opencode/,\x20.qoder/,\x20.codebuddy/,\x20.trae/)\x0a\x20\x20-\x20.lovrabet/skill/.shared/guides/\x20\x20-\x20开发者技能指南','\x20\x20直接安装指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接安装','√\x20配置文件已创建,可稍后使用\x20\x27lovrabet\x20config\x20set\x20appcode\x20<app-code>\x27\x20配置','创建\x20agents.md\x20文件','*\x20已输入的资源资源','正在预览项目...','\x0a可用命令:','*\x20正在创建项目...','复制\x20agents.md\x20文件失败','!\x20未找到本地页面,请先创建页面','*\x20正在更新\x20package.json\x20的\x20name\x20和\x20description\x20字段','*\x20请选择要同步的菜单:','\x20\x20•\x20Skill:','√\x20成功拉取\x20{{datasetCount}}\x20个数据集,生成\x20{{modelCount}}\x20个模型','633544OnmJCd','-\x20模型配置文件\x20({{count}}\x20个模型)','\x0a📦\x20正在安装\x20{{name}}...\x0a','\x0a✓\x20Cursor\x20MCP\x20配置成功!\x0a','\x0a✓\x20{{ide}}\x20MCP\x20配置成功','已创建\x20{{count}}\x20项','开始批量创建菜单,共\x20{{count}}\x20个','其他\x20IDE\x20配置指引','示例:','\x20\x20✓\x20创建\x20{{path}}/','\x0a请选择要配置\x20MCP\x20的\x20IDE:\x0a','*\x20正在为项目\x20{{name}}\x20配置应用AppCode:\x20{{appCode}}','\x20\x20直接配置指定\x20IDE\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接配置','登录认证','请至少选择一个菜单','✓\x20技能包安装成功!共安装\x20{{count}}\x20个目录','成功在当前目录初始化\x20.lovrabetrc\x20文件','💡\x20如果浏览器没有自动打开,请手动复制上面的登录地址到浏览器中打开','当前目录已存在\x20.lovrabetrc\x20文件','需要先配置\x20appcode','Claude\x20Code','Lovrabet\x20Skill\x20-\x20开发者技能包安装工具','\x20|\x20应用AppCode:\x20','配置信息:','请先通过\x20`lovrabet\x20config\x20set\x20app\x20<value>`\x20配置应用\x20Code','使用指定的\x20appcode','正在从服务器拉取模型列表...\x20(环境:\x20{{env}})','✓\x20MCP\x20服务器配置完成:','正在配置\x20AI\x20助手...','应用AppCode只能包含字母、数字、连字符和下划线,且必须以字母或数字开头','*\x20待更新的菜单&资源链接','*\x20清理失败的项目目录:\x20{{dir}}','√\x20package.json\x20已更新:\x20name={{name}}','*\x20JS\x20链接:\x20','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE','*\x20正在拉取\x20API\x20配置...','*\x20按回车开始登录。','正在初始化配置文件...','\x20\x20\x20当前\x20CLI\x20版本:\x20{{version}}','✗\x20失败:\x20{{fileName}}.md\x20-\x20{{error}}','√\x20{{label}}:\x20','×\x20--params\x20参数必须是一个有效的\x20JSON\x20对象','已安装\x20{{count}}\x20个目录','保存配置失败','Cursor\x20MCP\x20配置成功','*\x20正在创建项目\x20{{name}}...','\x20\x20\x20时间:\x20{{time}}','[{{current}}/{{total}}]\x20正在生成:\x20{{fileName}}.md\x20({{name}})','正在配置\x20MCP\x20服务器...','创建菜单失败,HTTP状态码:\x20{{status}}','生成多个数据集的文档','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','服务端返回空菜单列表','\x0a无效的选择,请输入\x201-{{count}}\x20之间的数字\x0a','跳过登录','\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并配置\x20MCP','拉取\x20API','更新菜单\x20CDN\x20资源','应用AppCode不合法','*\x20共处理\x20{{count}}\x20个数据集','[可选]:\x20','未知的\x20IDE:\x20{{ide}}','指定环境生成文档','\x20\x20$\x20lovrabet\x20mcp\x20install','应用代码长度不能超过\x20100\x20个字符','选项:','项目名不合法','选择要配置的\x20IDE:','配置示例:','93549mZIqfh','√\x20API\x20配置拉取完成','项目名包含非法字符,不允许使用:\x20<\x20>\x20:\x20\x22\x20|\x20?\x20*\x20及控制字符','🚀\x20接下来:','\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出','配置\x20Lovrabet\x20MCP\x20服务器','*\x20正在为项目\x20{{name}}\x20创建配置文件','✓\x20已退出登录','其他\x20IDE','*\x20项目名:\x20','✓\x20Skill\x20安装完成:','生成文档','1614725dKaLBS','启动项目:\x20','2054512HGmcgj','已登录','获取配置项','列出所有配置项','请输入有效的\x20CSS\x20https\x20链接','✅\x20浏览器已自动打开,请在浏览器中完成登录','已选择菜单','不支持的\x20MCP\x20IDE:\x20{{ide}}','输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a','监听模式','正在获取数据集列表...','\x20\x20\x20•\x20{{name}}.ts\x20-\x20客户端实例文件','⚠️\x20配置需要手动完成','配置值无效或过长','Enter\x20默认:\x20是','已写入\x20.cursor/mcp.json','下一步','Cursor\x20Rules\x20文件已存在,跳过','\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a','其他\x20(通用模板)\x20(.agent/skills/)\x20-\x20兜底方案','MCP\x20和\x20Skill','安装所有技能包','\x0a📋\x20其他\x20IDE\x20MCP\x20配置:\x0a','无效的命令,可用命令如下:','\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并配置\x20MCP','\x20\x20包含\x20Backend\x20Function\x20同步工作流\x20\x20\x20-\x20使用\x20--dangerously-bff-save\x20标志','AppCode',',\x20失败\x20{{failCount}}\x20个','登录成功,请返回命令行继续操作。当前窗口将在\x20{{seconds}}\x20秒内关闭。','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','\x20\x20环境:\x20{{env}}','*\x20是否配置\x20Lovrabet\x20MCP\x20和\x20Skill?','成功获取\x20{{count}}\x20个线上菜单','拉取API配置','!\x20请指定一个有效的命令。','CSS\x20链接:\x20','应用代码不能为空','现在您可以使用\x20lovrabet\x20api\x20doc\x20和\x20lovrabet\x20api\x20pull\x20等命令了','创建菜单失败','\x20\x20\x202.\x20配置默认值:\x20lovrabet\x20config\x20set\x20app\x20<app-code>','提示:使用\x20','项目名只能以字母或数字开头,且只包含字母、数字、-\x20和\x20_','获取文档失败\x20({{datasetCode}}),HTTP状态码:\x20{{status}}','\x20直接回车确认,或输入自定义名称','详细配置指南:\x20https://help.yuntoo.com/mcp/config-guide','指定要生成文档的数据集代码(多个用逗号分隔,仅\x20doc\x20命令)','应用代码不合法','\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','\x20\x20\x20稳定版本:\x20{{version}}','•\x20Skill:\x20安装研发最佳实践、Backend\x20Function\x20规范','指定应用代码','6DBFkIV','正在获取日常菜单列表...\x20(appCode:\x20{{appCode}})','支持的\x20IDE:','\x20\x20使用\x20←→\x20选择,回车确认','✓\x20{{scope}}语言配置已设置为:\x20{{value}}','!\x20API\x20配置拉取失败,可稍后手动执行:\x20lovrabet\x20api\x20pull','\x20\x20--dangerously-bff-save\x20\x20\x20\x20包含\x20Backend\x20Function\x20同步工作流指南\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(需要\x20MCP\x20服务器启用相应\x20tools)','\x20\x20√\x20环境配置完成','绑定应用AppCode可自动配置\x20API,如:\x20app-c4c89304\x20(直接回车跳过)','使用配置的应用AppCode:\x20{{appCode}}','获取数据集失败,HTTP状态码:\x20{{status}}','\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Claude\x20Code','\x0a已取消安装\x0a','错误:\x20不支持的命令:\x20{{cmd}}','\x20\x20\x20交互式选择\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20显示\x20IDE\x20列表供选择','请执行以下命令配置\x20Claude\x20Code\x20MCP:','环境:\x20{{env}}','\x0a√\x20项目\x20{{name}}\x20创建成功!','复制\x20Cursor\x20Rules\x20文件失败','*\x20正在配置\x20Lovrabet\x20MCP\x20和\x20Skill...','创建技能包\x20manifest','✓\x20MCP\x20配置完成!','{{count}}\x20个\x20IDE','\x20\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20直接配置\x20Claude\x20Code\x20MCP','未知错误','批量创建菜单完成,共\x20{{count}}\x20个','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a','项目名称:\x20','219qssMSx','Cursor','\x20正在获取线上菜单列表...','响应数据格式错误\x20({{datasetCode}}):缺少\x20data.markdown\x20字段','\x20\x20✗\x20安装\x20{{ide}}\x20失败:\x20{{error}}','登录成功!','更新现有\x20mcp.json\x20配置','使用指定的应用AppCode:\x20{{appCode}}','\x20登录中...','示例:','↪\x20新版本可用','\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor','无法在当前目录创建项目,请检查目录权限','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20Enter:\x20确认','输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)','是否同时配置\x20AI\x20助手?这将:','查看可用命令。','*\x20正在处理\x20{{count}}\x20个数据集...','\x20\x20√\x20项目模板已创建','环境配置值只能是\x20\x22online\x22\x20或\x20\x22daily\x22','菜单名称','\x20\x20\x201.\x20直接指定:\x20lovrabet\x20api\x20pull\x20<app-code>','现在您可以在\x20Cursor\x20中使用\x20Lovrabet\x20数据集\x20MCP\x20工具了。','指定环境拉取\x20API','获取数据集失败:\x20{{error}}','√\x20Lovrabet\x20MCP\x20和\x20Skill\x20配置完成','正在更新菜单资源链接:\x20{{label}}\x20({{path}})','共享技能文件复制成功','正在启动开发服务器...','JS\x20链接','按任意键退出...','项目目录\x20{{name}}\x20已存在,请使用其他项目名','只生成指定数据集的文档','↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20i/r:\x20反选\x20Enter:\x20确认','请选择要配置的\x20IDE:','配置指引已显示','\x20输入项目的\x20JS\x20资源链接(https://...)','指定输出目录','\x20\x20•\x20MCP\x20服务器:','↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20q:\x20退出\x20Enter:\x20确认','*\x20暂无日志记录','配置指南:','\x0a✓\x20MCP\x20配置完成\x20({{successCount}}/{{totalCount}}\x20成功)','登录成功','{{count}}\x20个','*\x20输出目录:\x20','•\x20MCP:\x20让\x20AI\x20直接访问\x20Lovrabet\x20数据集','文档生成失败:\x20{{error}}','用法:','locale\x20配置值无效,支持的值:\x20zh,\x20en,\x20zh-CN,\x20en-US','*\x20选择要配置的\x20IDE:','\x20\x20\x20\x20→\x20交互式选择\x20IDE','\x20\x20✗\x20未知的\x20IDE:\x20{{ide}}','使用示例:','\x0a📦\x20正在配置\x20{{name}}\x20MCP...\x0a','🌐\x20正在尝试自动打开浏览器...','*\x20正在创建菜单...','配置方式:','\x0a没有有效的\x20IDE\x20需要安装\x0a','⚠️\x20以下数据集生成失败:','MCP\x20服务器\x20(AI\x20访问数据集)','{{name}}\x20技能包安装成功','×\x20文件前缀格式不正确。只能包含字母、数字、连字符和下划线,且必须以字母开头。','\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','配置当前项目的\x20App\x20Code','🔗\x20请手动复制登录地址到浏览器:','*\x20CSS\x20链接:\x20','未提供配置值','目录\x20\x22{{name}}\x22\x20已存在','agents.md\x20文件已存在,跳过','查看日志','\x20\x20使用\x20←→\x20返回修改选择,回车确认\x20IDE','项目名过长,最多支持\x20100\x20个字符','\x20资源正在同步中...','生成配置命令','安装技能包','\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Cursor','选项:','√\x20当前为有效会话,无需重新登录。','加载中...','输入项目的\x20JS\x20资源链接(https://...)','*\x20已生成文件:','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包','指定的数据集代码都不存在:\x20{{codes}}','创建新的\x20mcp.json\x20配置','通用模板','项目名不能为空','\x20检查中...','未提供应用AppCode,且配置中也没有默认值','未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','显示此帮助信息','正在生成\x20{{fileName}}.md\x20({{current}}/{{total}})','安装方式:','应用AppCode长度不能超过\x20100\x20个字符','未知的\x20api\x20命令','正在登录...','[Y]\x20是,配置\x20AI\x20助手','✓\x20拉取\x20{{count}}\x20个开发者指南','项目配置','16916AYvJLx','CSS\x20链接','{{name}}\x20技能包安装失败','请选择:\x20','开发者指南位置:','配置AppCode:','*\x20开始生成\x20API\x20配置文件:','\x0a✗\x20{{ide}}\x20MCP\x20配置失败:\x20{{error}}','\x20\x20q.\x20取消\x0a','未设置','*\x20请输入新的资源链接','\x20命令重新登录','!\x20请使用以下方式之一:','\x20\x20\x20升级命令:\x20{{command}}','菜单创建成功:','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','请手动执行:\x20{{command}}','\x20\x20\x20\x20→\x20直接配置\x20Cursor\x20MCP\x20(写入\x20.cursor/mcp.json)','继续更新','230ZULdSE','登录态校验失败,请使用\x20lovrabet\x20auth\x20重新登录','*\x20Lovrabet\x20CLI\x20日志记录:\x0a','CSS\x20链接无法访问','554449sxPEZg','API\x20管理','\x20\x20\x201.\x20配置默认值:\x20lovrabet\x20config\x20set\x20appcode\x20<app-code>','\x20\x20\x202.\x20使用参数:\x20lovrabet\x20api\x20doc\x20--appcode\x20<app-code>','×\x20未配置\x20AppCode','Cursor\x20MCP\x20配置失败','等待\x203\x20秒...\x0a','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20{{error}}','✓\x20{{scope}}环境配置已设置为:\x20{{value}}','请使用\x20--appcode\x20参数,例如:','!\x20API\x20配置拉取异常,项目已创建,可稍后手动执行:\x20lovrabet\x20api\x20pull','\x20\x20\x20当前版本:\x20{{package}}@{{version}}','更新菜单资源失败:\x20{{error}}','请至少选择一个\x20IDE','同步菜单','*\x20使用配置的应用AppCode:\x20{{appCode}}','应用代码只能包含字母、数字、-\x20和\x20_','不支持的\x20IDE:\x20{{ide}}','应用AppCode','安装所有\x20IDE\x20技能包(包括通用模板)','按\x20“q”\x20退出。','重启\x20Claude\x20Code\x20后生效','\x20\x20√\x20package.json\x20已更新','请重启\x20Cursor\x20以加载新的\x20MCP\x20配置。','Claude\x20Code\x20MCP\x20命令已生成','拉取API配置:','启动项目:','正在生成\x20{{count}}\x20个数据集的文档...','开始配置\x20MCP','\x0a错误:\x20配置失败\x20-\x20{{error}}\x0a','上一步','√\x20检测到有效登录状态','\x20正在获取线上菜单资源链接...','正在从\x20CDN\x20拉取开发者指南(含扩展)...','登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','×\x20API\x20配置拉取异常:\x20{{error}}','未找到任何数据集','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认'];a56_0x3e01=function(){return _0x1e9b5f;};return a56_0x3e01();}(function(_0x4b3b68,_0x323f4e){var _0xdcc41a=a56_0x29bc,_0xe15604=_0x4b3b68();while(!![]){try{var _0x5aebe5=-parseInt(_0xdcc41a(0x138))/0x1+parseInt(_0xdcc41a(0xf3))/0x2+parseInt(_0xdcc41a(0x195))/0x3*(parseInt(_0xdcc41a(0x1f9))/0x4)+parseInt(_0xdcc41a(0x144))/0x5*(parseInt(_0xdcc41a(0x179))/0x6)+parseInt(_0xdcc41a(0x210))/0x7+-parseInt(_0xdcc41a(0x146))/0x8+-parseInt(_0xdcc41a(0xdc))/0x9*(parseInt(_0xdcc41a(0x20c))/0xa);if(_0x5aebe5===_0x323f4e)break;else _0xe15604['push'](_0xe15604['shift']());}catch(_0x469e56){_0xe15604['push'](_0xe15604['shift']());}}}(a56_0x3e01,0x2d61b));export default{'common':{'success':'成功','error':'错误','warning':'警告','info':'信息','loading':a56_0x339dd2(0x1e5),'cancel':'取消','confirm':'确认','next':a56_0x339dd2(0x156),'previous':a56_0x339dd2(0xcb),'finish':'完成'},'help':{'invalidCommand':a56_0x339dd2(0x168),'usageHint':'使用','viewCommands':a56_0x339dd2(0x1a6)},'cli':{'usage':'使用','examples':'示例','description':'描述'},'init':{'inputAppCode':'请输入应用代码\x20(AppCode):','appCodeDesc':'应用代码用于标识您的项目,只能包含字母、数字、-\x20和\x20_','fileExists':a56_0x339dd2(0x105),'creating':a56_0x339dd2(0x118),'success':a56_0x339dd2(0x103),'appCodeLabel':a56_0x339dd2(0x160),'nextSteps':a56_0x339dd2(0x16b),'validation':{'required':a56_0x339dd2(0x16a),'tooLong':a56_0x339dd2(0x133),'invalidFormat':a56_0x339dd2(0xbd),'invalidCode':a56_0x339dd2(0x174)}},'create':{'projectNameLabel':'项目名称','appCodeLabel':a56_0x339dd2(0xbf),'validation':{'required':a56_0x339dd2(0x1ec),'invalidChars':a56_0x339dd2(0x13a),'tooLong':a56_0x339dd2(0x1de),'dirExists':a56_0x339dd2(0x1b5),'noPermission':a56_0x339dd2(0x1a1),'projectName':{'tooLong':'项目名长度不能超过\x2050\x20个字符','invalidFormat':a56_0x339dd2(0x16f),'invalid':a56_0x339dd2(0x135),'dirExistsShort':a56_0x339dd2(0x1da)},'appCode':{'tooLong':a56_0x339dd2(0x1f3),'invalidFormat':a56_0x339dd2(0x110),'invalid':a56_0x339dd2(0x12d)},'ide':{'required':a56_0x339dd2(0xba)}},'common':{'yes':'是','no':'否','selectHint':a56_0x339dd2(0x17c)},'steps':{'pullingApi':a56_0x339dd2(0x116),'apiPullSuccess':a56_0x339dd2(0x139),'apiPullFailed':a56_0x339dd2(0x17e),'apiPullError':a56_0x339dd2(0xb7),'updatingPackage':'*\x20正在更新\x20package.json\x20的\x20name\x20和\x20description\x20字段','packageUpdated':a56_0x339dd2(0x113),'configuringAppCode':a56_0x339dd2(0xfe),'creatingConfig':a56_0x339dd2(0x13e),'configCreatedWithAppCode':'√\x20配置文件已创建,应用AppCode:\x20{{appCode}}','configCreated':a56_0x339dd2(0xe7),'configuringMcp':a56_0x339dd2(0x18c),'mcpConfigComplete':a56_0x339dd2(0x1af),'cleaningUp':a56_0x339dd2(0x112),'projectName':{'label':'项目名'},'appCode':{'label':a56_0x339dd2(0xbf),'notSet':a56_0x339dd2(0x202)},'apiPull':{'label':a56_0x339dd2(0x167)},'lovrabetSetup':{'label':a56_0x339dd2(0x15a),'ideCount':a56_0x339dd2(0x18f)},'login':{'label':'登录状态','loggedIn':a56_0x339dd2(0x147),'failed':'登录失败','skipped':a56_0x339dd2(0x129)}},'title':'*\x20创建新项目','completedStep':a56_0x339dd2(0x11b),'input':{'projectName':{'label':a56_0x339dd2(0x141),'hint':a56_0x339dd2(0x171)},'appCode':{'label':'*\x20应用AppCode\x20','optional':a56_0x339dd2(0x12f),'hint':a56_0x339dd2(0x181)}},'login':{'checking':'*\x20正在检查登录状态...','checkingStatus':a56_0x339dd2(0x1ed),'valid':a56_0x339dd2(0xcc),'notDetected':'!\x20未检测到有效登录','prompt':'*\x20是否要先登录以便拉取\x20API\x20配置?','inProgress':'*\x20正在登录,请前往浏览器完成登录...','inProgressStatus':a56_0x339dd2(0x19d)},'apiPull':{'confirm':a56_0x339dd2(0xd9),'recommendation':'\x20\x20推荐选择\x20Yes,可自动配置\x20API\x20接口'},'lovrabetSetup':{'confirm':a56_0x339dd2(0x165),'selectIdeHint':a56_0x339dd2(0x1dd),'selectIdeTitle':a56_0x339dd2(0x136),'keyboardShortcuts':a56_0x339dd2(0x1b7),'inProgress':a56_0x339dd2(0x18c),'mcpCompleted':'✓\x20MCP\x20服务器配置完成:','skillCompleted':a56_0x339dd2(0x142)},'creating':a56_0x339dd2(0xec),'display':{'projectName':a56_0x339dd2(0x194),'appCode':a56_0x339dd2(0x109)},'packageJson':{'updating':a56_0x339dd2(0xef),'updated':'√\x20package.json\x20已更新:\x20name={{name}}'},'config':{'configuringAppCode':a56_0x339dd2(0xfe),'creating':a56_0x339dd2(0x13e),'createdWithAppCode':'√\x20配置文件已创建,应用AppCode:\x20{{appCode}}','createdWithoutAppCode':a56_0x339dd2(0xe7)},'cleanup':{'inProgress':a56_0x339dd2(0x112)},'results':{'mcpComplete':a56_0x339dd2(0x10e),'skillComplete':'✓\x20Skill\x20安装完成:','nextSteps':a56_0x339dd2(0x13b)},'nextSteps':{'configureMcpAndSkill':'1.\x20配置\x20Lovrabet\x20MCP\x20和\x20Skill','skill':a56_0x339dd2(0xf1),'mcp':a56_0x339dd2(0x1bc),'startProject':a56_0x339dd2(0xc7),'pullApi':a56_0x339dd2(0xc6),'configAppCode':a56_0x339dd2(0x1fe)},'errors':{'createFailed':'×\x20项目创建失败:\x20{{error}}','cleanupFailed':'清理项目目录失败','depsInstallFailed':'依赖安装失败:\x20{{error}}'},'nonInteractive':{'creating':a56_0x339dd2(0x120),'templateCreated':a56_0x339dd2(0x1a8),'packageJsonUpdated':a56_0x339dd2(0xc3),'installingDeps':a56_0x339dd2(0xe0),'depsSkipped':'\x20\x20√\x20依赖安装跳过(非交互模式)','codeFormatted':'\x20\x20√\x20代码已格式化','envConfigured':a56_0x339dd2(0x180),'success':a56_0x339dd2(0x18a)},'tasks':{'copyFiles':'复制项目文件','formatCode':a56_0x339dd2(0xe3),'installDependencies':'安装依赖'},'nextStepsAlt':{'startProject':a56_0x339dd2(0x145),'pullApi':'拉取API配置:\x20','configureLovrabet':'1.\x20配置\x20Lovrabet\x20MCP\x20和\x20Skill'}},'config':{'title':a56_0x339dd2(0x1f8),'help':{'invalidCommand':a56_0x339dd2(0x15d),'examples':a56_0x339dd2(0x137),'set':'设置配置项','get':a56_0x339dd2(0x148),'list':a56_0x339dd2(0x149),'exampleApp':a56_0x339dd2(0x1d6),'exampleEnv':'设置环境\x20(online/daily)','exampleLocale':'设置显示语言\x20(zh/en)'},'validation':{'envInvalid':a56_0x339dd2(0x1a9),'localeInvalid':a56_0x339dd2(0x1c7),'valueInvalid':a56_0x339dd2(0x153),'noValue':a56_0x339dd2(0x1d9),'saveFailed':a56_0x339dd2(0x11e)},'success':{'envSet':a56_0x339dd2(0x218),'localeSet':a56_0x339dd2(0x17d)},'scope':{'project':'项目','global':'全局'}},'api':{'title':a56_0x339dd2(0x211),'pull':a56_0x339dd2(0x12b),'doc':a56_0x339dd2(0x143),'help':{'title':'lovrabet\x20api\x20-\x20API\x20相关操作','usage':'用法:','options':a56_0x339dd2(0x1e3),'optAppcode':a56_0x339dd2(0x178),'optOutput':'指定输出目录(pull:\x20./src/api/,doc:\x20./docs)','optEnv':'指定环境(如:daily、online)','optDatasetcode':a56_0x339dd2(0x173),'optHelp':a56_0x339dd2(0x1f0),'examples':a56_0x339dd2(0x19e),'pullDesc':'拉取并生成\x20API\x20配置文件','pullAppcode':a56_0x339dd2(0x10c),'pullOutput':a56_0x339dd2(0x1bb),'pullEnv':a56_0x339dd2(0x1ad),'docDesc':'生成所有数据集的文档','docAppcode':a56_0x339dd2(0x10c),'docOutput':'指定文档输出目录','docEnv':a56_0x339dd2(0x131),'docDataset':a56_0x339dd2(0x1b6),'docDatasets':a56_0x339dd2(0x125),'unknownCommand':a56_0x339dd2(0x1f4),'availableCommands':'可用命令:'},'common':{'noPositionalArgs':a56_0x339dd2(0xd8),'useAppcodeFlag':a56_0x339dd2(0x219),'noAppCode':a56_0x339dd2(0x214),'noAppCodeHint':a56_0x339dd2(0x205),'noAppCodeOption1':a56_0x339dd2(0x212),'noAppCodeOption2Pull':'\x20\x20\x202.\x20使用参数:\x20lovrabet\x20api\x20pull\x20--appcode\x20<app-code>','noAppCodeOption2Doc':a56_0x339dd2(0x213),'usingConfigAppCode':a56_0x339dd2(0xbc),'usingConfigAppCodeHint':'\x20\x20(注:\x20--appcode\x20参数与配置一致,将使用默认配置)','usingSpecifiedAppCode':a56_0x339dd2(0x19c),'usingDefaultAppCode':a56_0x339dd2(0x182),'noAppCodeDefault':a56_0x339dd2(0x1ee),'paramsInvalidJson':a56_0x339dd2(0x11c),'paramsNotJson':'×\x20--params\x20参数不是有效的\x20JSON\x20格式','paramsError':'\x20\x20错误:\x20{{error}}','datasetcodeEmpty':'×\x20--datasetcode\x20参数不能为空','onlyGenerateDatasets':'*\x20仅生成指定数据集的文档:\x20{{codes}}','authExpired':a56_0x339dd2(0xcf),'authRetry':'重新登录后再试','unknownError':a56_0x339dd2(0x191)},'pullUI':{'fetching':'🚀\x20正在从服务器拉取\x20API\x20配置...\x20(环境:\x20{{env}})','successPull':a56_0x339dd2(0xf2),'duplicateInfo':'!\x20原始数据集\x20{{originalCount}}\x20个,过滤重复\x20{{duplicateCount}}\x20个','generatedFiles':a56_0x339dd2(0x1e7),'modelFile':a56_0x339dd2(0xf4),'clientFile':'-\x20客户端实例文件','importHint':'*\x20导入方式:','pullFailed':'拉取\x20API\x20配置失败:\x20{{error}}'},'docUI':{'fetchingDatasets':a56_0x339dd2(0x150),'noDatasets':a56_0x339dd2(0xd1),'datasetsNotFound':'!\x20以下数据集代码不存在:\x20{{codes}}','allDatasetsNotFound':a56_0x339dd2(0x1e9),'filteredDatasets':'*\x20从\x20{{total}}\x20个数据集中筛选出\x20{{count}}\x20个匹配的数据集','generatingDocs':a56_0x339dd2(0xc8),'generatingFile':a56_0x339dd2(0x1f1),'docComplete':'√\x20文档生成完成!成功\x20{{successCount}}\x20个','docFailed':a56_0x339dd2(0x161),'processedDatasets':a56_0x339dd2(0x12e),'outputDir':a56_0x339dd2(0x1c3),'generatedDocs':'*\x20生成的文档文件:','failedDatasets':a56_0x339dd2(0x1d1),'docGenerateFailed':a56_0x339dd2(0x1c5)},'fetchModel':{'fetching':a56_0x339dd2(0x10d),'httpError':a56_0x339dd2(0x183),'fetchError':a56_0x339dd2(0x1ae)},'generateFile':{'noAppCode':a56_0x339dd2(0x10b)},'docBatch':{'totalDatasets':'\x0a共有\x20{{count}}\x20个数据集需要生成文档\x0a','generating':a56_0x339dd2(0x122),'success':'✓\x20成功生成:\x20{{fileName}}.md','failed':a56_0x339dd2(0x11a),'waiting':a56_0x339dd2(0x216),'docFormatError':a56_0x339dd2(0x198),'httpError':a56_0x339dd2(0x170)},'silent':{'invalidPrefix':a56_0x339dd2(0x1d4),'fetching':a56_0x339dd2(0xd4),'generating':a56_0x339dd2(0x1ff),'modelFileName':a56_0x339dd2(0xde),'clientFileName':a56_0x339dd2(0x151),'processing':a56_0x339dd2(0x1a7),'success':a56_0x339dd2(0xf2),'error':a56_0x339dd2(0xd0)}},'auth':{'title':a56_0x339dd2(0x100),'login':{'success':{'title':a56_0x339dd2(0x1c1),'message':a56_0x339dd2(0x162),'manualClose':'无法自动关闭窗口,请手动关闭此标签页或窗口。'},'successCli':a56_0x339dd2(0x19a),'inProgress':a56_0x339dd2(0x1f5),'browserPrompt':'请前往浏览器完成登录。','pressEnter':a56_0x339dd2(0x117),'pressQToExit':a56_0x339dd2(0xc1)},'session':{'valid':a56_0x339dd2(0x1e4)},'server':{'starting':'🔐\x20正在启动登录服务...','loginUrl':'📍\x20登录地址:','openingBrowser':a56_0x339dd2(0x1cd),'manualOpenHint':a56_0x339dd2(0x104),'browserOpened':a56_0x339dd2(0x14b),'browserOpenFailed':'⚠️\x20\x20无法自动打开浏览器','manualCopyUrl':a56_0x339dd2(0x1d7)},'logout':{'success':a56_0x339dd2(0x13f),'notLoggedIn':'!\x20当前未登录'}},'menu':{'sync':a56_0x339dd2(0xbb),'update':a56_0x339dd2(0x12c)},'mcp':{'cursor':a56_0x339dd2(0x196),'claude':a56_0x339dd2(0x107),'error':{'unsupportedCommand':a56_0x339dd2(0x186),'missingAppcode':a56_0x339dd2(0x1ef)},'help':{'title':'Lovrabet\x20MCP\x20-\x20MCP\x20服务器配置工具','availableCommands':a56_0x339dd2(0xeb),'command':{'install':a56_0x339dd2(0x12a),'help':a56_0x339dd2(0x126)},'usage':{'help':a56_0x339dd2(0x1a2),'install':a56_0x339dd2(0x15e),'installCursor':'\x20\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20直接配置\x20Cursor\x20MCP','installClaude':a56_0x339dd2(0x190)},'configMethods':a56_0x339dd2(0x1cf),'configMethodsInteractive':a56_0x339dd2(0x187),'configMethodsInteractiveHint':'\x20\x20\x20\x20→\x20输入编号选择\x20IDE','configMethodsDirect':a56_0x339dd2(0xff),'configMethodsDirectCursor':a56_0x339dd2(0x1e2),'configMethodsDirectClaude':a56_0x339dd2(0x184),'supportedIDEs':a56_0x339dd2(0x17b),'examples':a56_0x339dd2(0xfb),'exampleInstall':a56_0x339dd2(0x132),'exampleInstallHint':'\x20\x20\x20\x20→\x20交互式选择\x20IDE','exampleInstallCursor':a56_0x339dd2(0x1a0),'exampleInstallCursorHint':a56_0x339dd2(0x20a),'configGuide':a56_0x339dd2(0x1bf)},'select':{'chooseIDE':a56_0x339dd2(0xfd),'cancel':a56_0x339dd2(0x201),'enterNumber':'请输入编号选择\x20IDE:\x0a','prompt':a56_0x339dd2(0x1fc),'cancelled':a56_0x339dd2(0xd5),'invalidChoice':a56_0x339dd2(0x128)},'installFlow':{'configuring':a56_0x339dd2(0x1cc),'error':a56_0x339dd2(0xca)},'cursorConfig':{'success':a56_0x339dd2(0xf6),'configInfo':a56_0x339dd2(0x10a),'usageHint':a56_0x339dd2(0x1ac),'restartRequired':a56_0x339dd2(0xc4),'error':a56_0x339dd2(0xca),'rules':{'exists':a56_0x339dd2(0x157),'created':'创建\x20Cursor\x20Rules\x20文件','copyFailed':a56_0x339dd2(0x18b)},'updateExisting':a56_0x339dd2(0x19b),'createNew':a56_0x339dd2(0x1ea),'written':a56_0x339dd2(0x155)},'claudeConfig':{'error':a56_0x339dd2(0xca),'agents':{'exists':a56_0x339dd2(0x1db),'created':a56_0x339dd2(0xe8),'copyFailed':a56_0x339dd2(0xed)},'manualCommand':a56_0x339dd2(0x188),'configInfo':a56_0x339dd2(0x10a),'restartRequired':a56_0x339dd2(0xc2),'commandGenerated':a56_0x339dd2(0x1e0)},'other':{'configInfo':'配置信息:\x20appcode={{appcode}},\x20env={{env}}','configGuide':a56_0x339dd2(0x172),'guideShown':'其他\x20IDE\x20配置指引已显示'},'config':{'env':a56_0x339dd2(0x189)},'install':{'starting':a56_0x339dd2(0xc9),'unknownIDE':'未知的\x20IDE:\x20{{ide}}','otherIDE':a56_0x339dd2(0x140),'success':a56_0x339dd2(0xf7),'failed':a56_0x339dd2(0x200),'completed':a56_0x339dd2(0x1c0),'manualActionRequired':'\x0a注意:部分配置需要手动执行命令,请按照上述说明操作'},'ui':{'otherIDE':'其他\x20IDE','otherIDEDescription':a56_0x339dd2(0xfa),'selectAtLeastOne':a56_0x339dd2(0xba),'selectedIDE':'已选择\x20IDE','count':a56_0x339dd2(0x1c2),'title':a56_0x339dd2(0x13d),'configuring':a56_0x339dd2(0x123),'completed':a56_0x339dd2(0x18e),'partialManual':'⚠️\x20部分配置需要手动完成','failed':'✗\x20配置失败','manualRequired':a56_0x339dd2(0x152),'pressAnyKeyToExit':a56_0x339dd2(0x1b4),'unsupportedIDE':a56_0x339dd2(0xbe)}},'aiSetup':{'error':{'missingAppcode':a56_0x339dd2(0x106)},'mcp':{'cursor':{'success':a56_0x339dd2(0x11f),'written':a56_0x339dd2(0x155),'error':a56_0x339dd2(0x215),'rules':{'created':'创建\x20Cursor\x20Rules\x20文件','copyFailed':a56_0x339dd2(0x18b)}},'claude':{'commandGenerated':a56_0x339dd2(0xc5),'manualCommand':a56_0x339dd2(0x1d5),'configInfo':a56_0x339dd2(0x10a),'env':a56_0x339dd2(0x164),'restartRequired':a56_0x339dd2(0x163),'manualExecute':a56_0x339dd2(0x209),'agents':{'created':a56_0x339dd2(0xe8),'copyFailed':a56_0x339dd2(0xed)}},'other':{'name':'其他','title':a56_0x339dd2(0x15c),'guideShown':a56_0x339dd2(0x1b9)},'unsupportedIDE':a56_0x339dd2(0x14d)},'skill':{'unknownIDE':a56_0x339dd2(0x130),'installSuccess':a56_0x339dd2(0x1d3),'itemsCreated':a56_0x339dd2(0xf8),'installFailed':a56_0x339dd2(0x1fb),'sharedCopied':a56_0x339dd2(0x1b1),'sharedCopyFailed':'共享技能文件复制失败','manifestCreated':a56_0x339dd2(0x18d)},'ui':{'selectAtLeastOne':'请至少选择一个配置项','confirm':{'title':a56_0x339dd2(0x1a5),'mcpDescription':a56_0x339dd2(0x1c4),'skillDescription':a56_0x339dd2(0x177),'yes':a56_0x339dd2(0x1f6),'no':'[N]\x20跳过,稍后手动配置','default':a56_0x339dd2(0x154)},'select':{'title':a56_0x339dd2(0x1c8),'mcpSection':a56_0x339dd2(0x1d2),'skillSection':'技能包\x20(研发规范指南)','controls':a56_0x339dd2(0x1bd)},'installing':a56_0x339dd2(0x10f)}},'appMenu':{'error':{'missingAppCode':a56_0x339dd2(0x1ee),'appCodeHint':{'title':a56_0x339dd2(0x205),'option1':a56_0x339dd2(0x1ab),'option2':a56_0x339dd2(0x16d)},'authExpired':'登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','authValidationFailed':a56_0x339dd2(0x20d),'httpStatus':'获取菜单列表失败,HTTP状态码:\x20{{status}}','fetchFailed':'获取菜单列表失败:\x20{{error}}','createHttpStatus':a56_0x339dd2(0x124),'createFailed':a56_0x339dd2(0xe1)},'info':{'emptyMenuList':a56_0x339dd2(0x127)},'success':{'fetched':a56_0x339dd2(0x166),'created':a56_0x339dd2(0x207)},'fetching':{'online':a56_0x339dd2(0xdb),'daily':a56_0x339dd2(0x17a)},'creating':{'single':'正在创建菜单:\x20{{label}}\x20({{path}})','batch':{'start':a56_0x339dd2(0xf9),'completed':a56_0x339dd2(0x192)}},'sync':{'title':'*\x20同步菜单到\x20Lovrabet\x20平台','table':{'menuName':a56_0x339dd2(0x1aa),'local':'本地','lovrabetPlatform':'Lovrabet平台'},'error':{'noMenuSelected':a56_0x339dd2(0x101),'invalidJsUrl':'请输入有效的\x20JS\x20https\x20链接','jsUrlUnreachable':'JS\x20链接无法访问','invalidCssUrl':a56_0x339dd2(0x14a),'cssUrlUnreachable':a56_0x339dd2(0x20f),'createMenuFailed':a56_0x339dd2(0x16c),'authHint':{'prefix':a56_0x339dd2(0x16e),'suffix':a56_0x339dd2(0x204)},'noLocalPages':a56_0x339dd2(0xee)},'step':{'selectedMenus':a56_0x339dd2(0x14c),'selectedMenusCount':a56_0x339dd2(0x1c2),'jsUrl':a56_0x339dd2(0x1b3),'cssUrl':a56_0x339dd2(0x1fa),'selectMenus':a56_0x339dd2(0xf0),'creating':a56_0x339dd2(0x1ce),'completed':'√\x20菜单创建完成'},'operation':{'update':'更新','create':'新建'},'loading':{'fetchingMenuList':a56_0x339dd2(0x197)},'hotkeys':a56_0x339dd2(0x1a3),'input':{'jsUrl':{'label':a56_0x339dd2(0x114),'placeholder':a56_0x339dd2(0x1ba)},'cssUrl':{'label':a56_0x339dd2(0x1d8),'placeholder':'\x20输入项目的\x20CSS\x20资源链接(https://...)'}}},'updateCdn':{'title':a56_0x339dd2(0x203),'error':{'invalidJsUrl':'请输入有效的\x20JS\x20https\x20链接','jsUrlUnreachable':a56_0x339dd2(0xe4),'invalidCssUrl':a56_0x339dd2(0x14a),'cssUrlUnreachable':a56_0x339dd2(0x20f),'authHint':{'prefix':a56_0x339dd2(0x16e),'suffix':'\x20命令重新登录'},'noCdnLinks':'!\x20未找到菜单资源链接','updateFailed':a56_0x339dd2(0xb9)},'loading':{'fetching':a56_0x339dd2(0xcd),'syncing':a56_0x339dd2(0x1df)},'action':{'continue':a56_0x339dd2(0x20b),'cancel':'取消更新'},'success':{'updated':'√\x20更新成功','synced':'菜单资源同步成功:\x20{{label}}'},'updating':a56_0x339dd2(0x1b0),'preview':{'title':a56_0x339dd2(0x111),'menuList':'待更新的菜单列表:','resourceLinks':'待更新的资源链接:'},'input':{'title':a56_0x339dd2(0xe9),'jsUrl':{'label':'JS\x20链接:\x20','placeholder':a56_0x339dd2(0x1e6)},'cssUrl':{'label':a56_0x339dd2(0x169),'placeholder':'输入项目的\x20CSS\x20资源链接(https://...)'}}}},'skill':{'install':a56_0x339dd2(0x1e1),'error':{'unsupportedCommand':a56_0x339dd2(0x186),'installFailed':a56_0x339dd2(0x199),'unknownPlatform':'⚠️\x20\x20未知的平台:\x20{{ide}},使用通用模板','unknownIDE':a56_0x339dd2(0x1ca),'noValidIDE':a56_0x339dd2(0x1d0),'selectAtLeastOne':a56_0x339dd2(0xba)},'errorHint':{'availableCommands':a56_0x339dd2(0xeb),'installInteractive':a56_0x339dd2(0x1e8),'installDirect':'\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','showHelp':a56_0x339dd2(0x175),'usageExamples':a56_0x339dd2(0x1cb),'exampleInteractive':a56_0x339dd2(0x115),'exampleDirect':a56_0x339dd2(0x193)},'select':{'title':a56_0x339dd2(0x158),'installAll':a56_0x339dd2(0xd6),'cancel':'取消','inputFormat':a56_0x339dd2(0x1a4),'inputHint':a56_0x339dd2(0x14e),'prompt':'请选择:\x20','cancelled':a56_0x339dd2(0x185),'noneSelected':'\x0a未选择任何\x20IDE,安装取消\x0a','selectedIDE':'已选择\x20IDE','count':a56_0x339dd2(0x1c2)},'cdn':{'fetching':'正在从\x20CDN\x20拉取开发者指南...','fetchingExtend':a56_0x339dd2(0xce),'fetchSuccess':a56_0x339dd2(0x1f7),'fetchFailed':a56_0x339dd2(0x217)},'installing':{'title':'安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE','progress':a56_0x339dd2(0xe2),'ide':a56_0x339dd2(0xf5),'installed':a56_0x339dd2(0x11d),'created':'\x20\x20✓\x20创建\x20{{path}}','createdDir':a56_0x339dd2(0xfc),'createdManifest':'✓\x20创建\x20.lovrabet/skill-manifest.json'},'done':{'success':a56_0x339dd2(0xd3),'successInline':a56_0x339dd2(0x102),'guidesLocation':a56_0x339dd2(0x1fd),'guidesPath':'\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20详细开发指南\x0a','guidesPathInline':a56_0x339dd2(0x208),'pressAnyKey':a56_0x339dd2(0x1b4)},'generic':a56_0x339dd2(0x1eb),'help':{'title':a56_0x339dd2(0x108),'usage':a56_0x339dd2(0x1c6),'showHelp':a56_0x339dd2(0xdf),'installInteractive':a56_0x339dd2(0xdd),'installDirect':'直接安装指定\x20IDE\x20的技能包','installAll':a56_0x339dd2(0x15b),'installWithBff':a56_0x339dd2(0xda),'installMethods':a56_0x339dd2(0x1f2),'interactiveSelect':'\x20\x20交互式选择\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20显示\x20IDE\x20列表供选择,支持多选','interactiveKeys':a56_0x339dd2(0x13c),'directInstall':a56_0x339dd2(0xe6),'bffWorkflow':a56_0x339dd2(0x15f),'supportedIDEs':a56_0x339dd2(0x17b),'agentDesc':a56_0x339dd2(0x159),'allDesc':a56_0x339dd2(0xc0),'options':a56_0x339dd2(0x134),'bffOption':a56_0x339dd2(0x17f),'skillContents':'技能包内容包括:','skillContentsList':'\x20\x20-\x20Filter\x20查询构建规范\x20(10\x20种常见错误对照)\x0a\x20\x20-\x20MCP\x20SQL\x20创建工作流\x20(5\x20步强制流程)\x0a\x20\x20-\x20AntD\x20UI\x20开发规范\x20(禁止\x20AI\x20味道)\x0a\x20\x20-\x20API\x20集成指南\x20(lovrabet\x20api\x20pull\x20流程)\x0a\x20\x20-\x20菜单管理指南\x20(menu\x20sync/update\x20流程)\x0a\x20\x20-\x20Backend\x20Function\x20脚本编写规范\x20(权限过滤、数据脱敏、业务逻辑)\x0a\x20\x20-\x20Backend\x20Function\x20同步工作流\x20(需\x20--dangerously-bff-save\x20启用)','examples':a56_0x339dd2(0xfb),'exampleInteractive':a56_0x339dd2(0x1c9),'exampleDirectDesc':'\x20\x20\x20\x20→\x20直接安装\x20Cursor\x20和\x20claude\x20code\x20技能包','exampleBffDesc':'\x20\x20\x20\x20→\x20安装技能包并包含\x20Backend\x20Function\x20同步工作流','exampleAllDesc':'\x20\x20\x20\x20→\x20安装所有\x20IDE\x20技能包','afterInstall':'安装后会在项目中创建:','afterInstallList':a56_0x339dd2(0xe5),'guidesLocationTitle':a56_0x339dd2(0x1fd)}},'logs':{'title':'日志','view':a56_0x339dd2(0x1dc),'clear':'清空日志','noLogs':a56_0x339dd2(0x1be),'header':a56_0x339dd2(0x20e),'time':a56_0x339dd2(0x121),'duration':a56_0x339dd2(0xd7),'details':'\x20\x20\x20详情:\x20{{details}}','cleared':'*\x20日志已清空'},'start':{'starting':a56_0x339dd2(0x1b2)},'build':{'building':'正在构建项目...'},'preview':{'previewing':a56_0x339dd2(0xea),'watchMode':a56_0x339dd2(0x14f)},'ui':{'ideSelector':{'title':a56_0x339dd2(0x1b8),'hotkeys':a56_0x339dd2(0xd2)}},'upgrade':{'cli':{'title':a56_0x339dd2(0x19f),'current':a56_0x339dd2(0x119),'stable':a56_0x339dd2(0x176),'command':a56_0x339dd2(0x206)},'sdk':{'title':'↪\x20SDK\x20版本更新','current':a56_0x339dd2(0xb8),'stable':a56_0x339dd2(0x176),'command':a56_0x339dd2(0x206)}}};
package/lib/init/main.js CHANGED
@@ -1 +1 @@
1
- function a54_0x2b13(_0xd47a83,_0x3bf15f){_0xd47a83=_0xd47a83-0xcf;const _0x2bd2fc=a54_0x2bd2();let _0x2b1370=_0x2bd2fc[_0xd47a83];return _0x2b1370;}(function(_0x5fa100,_0x30b7cc){const _0x1253c4=a54_0x2b13,_0x5d3cae=_0x5fa100();while(!![]){try{const _0x5901b3=parseInt(_0x1253c4(0xcf))/0x1*(-parseInt(_0x1253c4(0xdd))/0x2)+parseInt(_0x1253c4(0xe6))/0x3*(parseInt(_0x1253c4(0xde))/0x4)+-parseInt(_0x1253c4(0xf6))/0x5+parseInt(_0x1253c4(0xdb))/0x6+parseInt(_0x1253c4(0xe4))/0x7+-parseInt(_0x1253c4(0xeb))/0x8+parseInt(_0x1253c4(0xfa))/0x9;if(_0x5901b3===_0x30b7cc)break;else _0x5d3cae['push'](_0x5d3cae['shift']());}catch(_0x567563){_0x5d3cae['push'](_0x5d3cae['shift']());}}}(a54_0x2bd2,0x9c538));import{jsxs as a54_0x4a3373,jsx as a54_0x5f43cb}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Box,Text,useInput}from'ink';import{existsSync,writeFileSync,readFileSync}from'node:fs';import{resolve,join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{logger}from'../utils/logger.js';import{readConfig}from'../utils/config.js';function a54_0x2bd2(){const _0x4e1802=['5171296KuQCXx','version','column','应用代码不合法','error','当前目录已存在\x20.lovrabetrc\x20文件','green','AppCode:\x20','parse','创建配置文件失败','cyan','2672340bWHeuE','test','online','slice','10229184zqAdis','应用代码不能为空','red','utf8','\x20←\x20','toLocaleString','1dabOgx','message','.lovrabetrc','setLogPath','trim','init','backspace','delete','gray','创建配置文件失败:\x20','1.0.0','stringify','4465464FwCaZm','请输入应用代码\x20(AppCode):\x20','1802028vOPqow','4BXFXDg','应用代码只能包含字母、数字、-\x20和\x20_','cwd','应用代码用于标识您的项目,只能包含字母、数字、-\x20和\x20_','env','return','3806824uSnoUt','应用代码长度不能超过\x20100\x20个字符','892662FVqUNN','exit','length','package.json','info'];a54_0x2bd2=function(){return _0x4e1802;};return a54_0x2bd2();}export function Init({appcode:_0x2f42ce,env:_0x36af32}){const _0x537f1f=a54_0x2b13,[_0x14e036,_0xbb154a]=useState(null),[_0x4b2a8b,_0x1f06d1]=useState(![]),[_0x1cb47f,_0x2dab61]=useState(!_0x2f42ce),[_0x137ae6,_0x1ee4b2]=useState(''),[_0x46710f,_0x1260a1]=useState(''),[_0x4eefea,_0x2f9260]=useState(_0x2f42ce||''),[_0x4e25c0]=useState(_0x36af32);function _0x5997a8(_0x7c9d8){const _0x3d539d=a54_0x2b13;if(_0x7c9d8['length']===0x0)return{'valid':![],'message':''};if(_0x7c9d8[_0x3d539d(0xe8)]>0x64)return{'valid':![],'message':_0x3d539d(0xe5)};const _0x521fc2=/^[A-Za-z0-9_-]+$/;if(!_0x521fc2[_0x3d539d(0xf7)](_0x7c9d8))return{'valid':![],'message':_0x3d539d(0xdf)};return{'valid':!![]};}useInput((_0x4962aa,_0x4e7a15)=>{const _0x5e6049=a54_0x2b13;if(!_0x1cb47f)return;if(_0x4e7a15[_0x5e6049(0xe3)]){if(_0x46710f||!_0x137ae6[_0x5e6049(0xd3)]()){_0x1260a1(_0x5e6049(0xfb));return;}const _0x316c55=_0x137ae6[_0x5e6049(0xd3)](),{valid:_0x51e37a,message:_0x3e0e8a}=_0x5997a8(_0x316c55);if(!_0x51e37a){_0x1260a1(_0x3e0e8a||_0x5e6049(0xee));return;}_0x2f9260(_0x316c55),_0x2dab61(![]);}else{if(_0x4e7a15[_0x5e6049(0xd5)]||_0x4e7a15[_0x5e6049(0xd6)])_0x1ee4b2(_0x187f97=>{const _0x2a6592=_0x5e6049,_0x333449=_0x187f97[_0x2a6592(0xf9)](0x0,-0x1);if(_0x333449[_0x2a6592(0xe8)]===0x0)_0x1260a1('');else{const {valid:_0xb94431,message:_0x474d2a}=_0x5997a8(_0x333449);_0x1260a1(_0xb94431?'':_0x474d2a||_0x2a6592(0xee));}return _0x333449;});else _0x4e7a15['ctrl']&&_0x4962aa==='c'?process[_0x5e6049(0xe7)](0x0):_0x1ee4b2(_0x2fbca9=>{const _0x3624d8=_0x5e6049,_0x26e01c=_0x2fbca9+_0x4962aa,{valid:_0x14934d,message:_0x6e2307}=_0x5997a8(_0x26e01c);return _0x1260a1(_0x14934d?'':_0x6e2307||_0x3624d8(0xee)),_0x26e01c;});}},{'isActive':_0x1cb47f}),useEffect(()=>{const _0x2e5387=a54_0x2b13;if(!_0x4eefea||_0x1cb47f)return;const _0xa145d2=resolve(process[_0x2e5387(0xe0)](),_0x2e5387(0xd1));if(existsSync(_0xa145d2)){_0xbb154a(_0x2e5387(0xf0)),setTimeout(()=>process[_0x2e5387(0xe7)](0x1),0x64);return;}try{const _0x21a14f=fileURLToPath(import.meta.url),_0x90fba2=resolve(dirname(_0x21a14f),'../..'),_0x3b7f91=join(_0x90fba2,_0x2e5387(0xe9));let _0x37a4b8=_0x2e5387(0xd9);try{const _0x214ea1=JSON[_0x2e5387(0xf3)](readFileSync(_0x3b7f91,_0x2e5387(0xfd)));_0x37a4b8=_0x214ea1['version']||'1.0.0';}catch(_0x3ee0c2){}const _0x18eb8e=readConfig(),_0x581aff=typeof _0x18eb8e['env']==='string'?_0x18eb8e[_0x2e5387(0xe2)]:undefined,{app:_0x4aecde,appcode:_0x2ffbbd,..._0x37f06b}=_0x18eb8e,_0x3b75e1={..._0x37f06b,'appcode':_0x4eefea,'env':_0x4e25c0||_0x581aff||_0x2e5387(0xf8),'createdAt':new Date()[_0x2e5387(0xff)](),'version':_0x37a4b8};writeFileSync(_0xa145d2,JSON[_0x2e5387(0xda)](_0x3b75e1,null,0x2),{'encoding':_0x2e5387(0xfd),'mode':0x180}),logger[_0x2e5387(0xd2)](process[_0x2e5387(0xe0)]()),logger[_0x2e5387(0xea)](_0x2e5387(0xd4),'初始化项目配置文件成功',{'appcode':_0x4eefea,'env':_0x3b75e1[_0x2e5387(0xe2)],'version':_0x3b75e1[_0x2e5387(0xec)],'configPath':_0xa145d2}),_0x1f06d1(!![]),setTimeout(()=>process[_0x2e5387(0xe7)](0x0),0x64);}catch(_0x501e50){logger[_0x2e5387(0xef)](_0x2e5387(0xd4),_0x2e5387(0xf4),{'error':_0x501e50 instanceof Error?_0x501e50[_0x2e5387(0xd0)]:String(_0x501e50)}),_0xbb154a(_0x2e5387(0xd8)+(_0x501e50 instanceof Error?_0x501e50['message']:String(_0x501e50))),setTimeout(()=>process[_0x2e5387(0xe7)](0x1),0x64);}},[_0x4eefea,_0x1cb47f,_0x4e25c0]);if(_0x14e036)return a54_0x5f43cb(Box,{'flexDirection':_0x537f1f(0xed),'children':a54_0x4a3373(Text,{'color':_0x537f1f(0xfc),'children':['✗\x20',_0x14e036]})});if(_0x1cb47f)return a54_0x4a3373(Box,{'flexDirection':_0x537f1f(0xed),'children':[a54_0x4a3373(Box,{'children':[a54_0x5f43cb(Text,{'color':'cyan','children':_0x537f1f(0xdc)}),_0x137ae6?a54_0x5f43cb(Text,{'color':_0x537f1f(0xf1),'children':_0x137ae6}):a54_0x5f43cb(Text,{'color':_0x537f1f(0xd7),'children':'_'}),_0x46710f&&a54_0x4a3373(Text,{'color':_0x537f1f(0xfc),'children':[_0x537f1f(0xfe),_0x46710f]})]}),!_0x46710f&&!_0x137ae6&&a54_0x5f43cb(Box,{'children':a54_0x5f43cb(Text,{'color':'gray','children':_0x537f1f(0xe1)})})]});if(_0x4b2a8b)return a54_0x4a3373(Box,{'flexDirection':_0x537f1f(0xed),'children':[a54_0x5f43cb(Text,{'color':_0x537f1f(0xf1),'children':'✓\x20成功在当前目录初始化\x20.lovrabetrc\x20文件'}),a54_0x4a3373(Text,{'color':_0x537f1f(0xf5),'children':[_0x537f1f(0xf2),_0x4eefea]}),a54_0x5f43cb(Text,{'children':'现在您可以使用\x20lovrabet\x20api\x20doc\x20和\x20lovrabet\x20api\x20pull\x20等命令了'})]});return a54_0x5f43cb(Box,{'children':a54_0x5f43cb(Text,{'children':'正在初始化配置文件...'})});}
1
+ (function(_0xe99bc6,_0x574dbf){const _0x4ce6d7=a57_0x20aa,_0x25a51b=_0xe99bc6();while(!![]){try{const _0x32b728=parseInt(_0x4ce6d7(0xa6))/0x1*(-parseInt(_0x4ce6d7(0xba))/0x2)+parseInt(_0x4ce6d7(0xa3))/0x3+parseInt(_0x4ce6d7(0xc0))/0x4+-parseInt(_0x4ce6d7(0xb3))/0x5+parseInt(_0x4ce6d7(0xb8))/0x6*(parseInt(_0x4ce6d7(0xcf))/0x7)+parseInt(_0x4ce6d7(0xa2))/0x8*(parseInt(_0x4ce6d7(0xbe))/0x9)+-parseInt(_0x4ce6d7(0xa7))/0xa*(parseInt(_0x4ce6d7(0x9f))/0xb);if(_0x32b728===_0x574dbf)break;else _0x25a51b['push'](_0x25a51b['shift']());}catch(_0x3f2ce9){_0x25a51b['push'](_0x25a51b['shift']());}}}(a57_0x10cd,0xafd7b));import{jsxs as a57_0x3f9ad5,jsx as a57_0x15436b}from'react/jsx-runtime';function a57_0x10cd(){const _0x2df810=['1412274goiwzp','init.appCodeDesc','29914cpsmia','init.nextSteps','trim','backspace','144TTDAiO','green','3989060anhMij','length','init.validation.invalidCode','cwd','创建配置文件失败','env','message','column','init','red','ctrl','cyan','toLocaleString','\x20←\x20','init.appCodeLabel','7iwtotu','12395141qBqABC','1.0.0','package.json','495912LcwEdw','2944491POHLcA','test','init.validation.required','68ySmARx','10lYeKWb','error','init.inputAppCode','stringify','../..','utf8','init.validation.invalidFormat','online','gray','初始化项目配置文件成功','exit','common.error','1709035yVDuSz','parse','init.fileExists','string','slice'];a57_0x10cd=function(){return _0x2df810;};return a57_0x10cd();}import{useState,useEffect}from'react';import{Box,Text,useInput}from'ink';import{existsSync,writeFileSync,readFileSync}from'node:fs';import{resolve,join,dirname}from'node:path';import{fileURLToPath}from'node:url';function a57_0x20aa(_0x1fd054,_0x4a2931){_0x1fd054=_0x1fd054-0x9f;const _0x10cd4d=a57_0x10cd();let _0x20aa2a=_0x10cd4d[_0x1fd054];return _0x20aa2a;}import{logger}from'../utils/logger.js';import{readConfig}from'../utils/config.js';import{useI18n}from'../i18n/hooks.js';export function Init({appcode:_0x4b4ac5,env:_0x53d64c}){const _0x8e8c9d=a57_0x20aa,{t:_0x1ff249}=useI18n(),[_0xba04c0,_0x6ab65b]=useState(null),[_0x39ca17,_0x59496f]=useState(![]),[_0x4edeef,_0x5cfe03]=useState(!_0x4b4ac5),[_0x59914c,_0x590457]=useState(''),[_0x2b0f43,_0x44371f]=useState(''),[_0x15498d,_0x3459bb]=useState(_0x4b4ac5||''),[_0x3fc3a9]=useState(_0x53d64c);function _0x1bd166(_0x159b76){const _0x400831=a57_0x20aa;if(_0x159b76['length']===0x0)return{'valid':![],'message':''};if(_0x159b76['length']>0x64)return{'valid':![],'message':_0x1ff249('init.validation.tooLong')};const _0x175735=/^[A-Za-z0-9_-]+$/;if(!_0x175735[_0x400831(0xa4)](_0x159b76))return{'valid':![],'message':_0x1ff249(_0x400831(0xad))};return{'valid':!![]};}useInput((_0x5a9c01,_0x57e516)=>{const _0xb36c32=a57_0x20aa;if(!_0x4edeef)return;if(_0x57e516['return']){if(_0x2b0f43||!_0x59914c[_0xb36c32(0xbc)]()){_0x44371f(_0x1ff249(_0xb36c32(0xa5)));return;}const _0x534b17=_0x59914c['trim'](),{valid:_0x55ce52,message:_0x11d1d9}=_0x1bd166(_0x534b17);if(!_0x55ce52){_0x44371f(_0x11d1d9||_0x1ff249(_0xb36c32(0xc2)));return;}_0x3459bb(_0x534b17),_0x5cfe03(![]);}else{if(_0x57e516[_0xb36c32(0xbd)]||_0x57e516['delete'])_0x590457(_0x215a70=>{const _0x2dc3a0=_0xb36c32,_0x547b76=_0x215a70[_0x2dc3a0(0xb7)](0x0,-0x1);if(_0x547b76[_0x2dc3a0(0xc1)]===0x0)_0x44371f('');else{const {valid:_0x3292b7,message:_0x229710}=_0x1bd166(_0x547b76);_0x44371f(_0x3292b7?'':_0x229710||_0x1ff249('init.validation.invalidCode'));}return _0x547b76;});else _0x57e516[_0xb36c32(0xca)]&&_0x5a9c01==='c'?process[_0xb36c32(0xb1)](0x0):_0x590457(_0x30da24=>{const _0x2c37bc=_0x30da24+_0x5a9c01,{valid:_0x2303d3,message:_0x36ec78}=_0x1bd166(_0x2c37bc);return _0x44371f(_0x2303d3?'':_0x36ec78||_0x1ff249('init.validation.invalidCode')),_0x2c37bc;});}},{'isActive':_0x4edeef}),useEffect(()=>{const _0x10a32c=a57_0x20aa;if(!_0x15498d||_0x4edeef)return;const _0x3fb2f4=resolve(process[_0x10a32c(0xc3)](),'.lovrabetrc');if(existsSync(_0x3fb2f4)){_0x6ab65b(_0x1ff249(_0x10a32c(0xb5))),setTimeout(()=>process['exit'](0x1),0x64);return;}try{const _0x2ee2f5=fileURLToPath(import.meta.url),_0x3a3787=resolve(dirname(_0x2ee2f5),_0x10a32c(0xab)),_0x3565fc=join(_0x3a3787,_0x10a32c(0xa1));let _0x42a261=_0x10a32c(0xa0);try{const _0x3a14a9=JSON[_0x10a32c(0xb4)](readFileSync(_0x3565fc,'utf8'));_0x42a261=_0x3a14a9['version']||'1.0.0';}catch(_0x21a556){}const _0x14fc43=readConfig(),_0x4b8631=typeof _0x14fc43[_0x10a32c(0xc5)]===_0x10a32c(0xb6)?_0x14fc43['env']:undefined,{app:_0xbab41b,appcode:_0x1b1c32,..._0x4379cb}=_0x14fc43,_0x2f91a5={..._0x4379cb,'appcode':_0x15498d,'env':_0x3fc3a9||_0x4b8631||_0x10a32c(0xae),'createdAt':new Date()[_0x10a32c(0xcc)](),'version':_0x42a261};writeFileSync(_0x3fb2f4,JSON[_0x10a32c(0xaa)](_0x2f91a5,null,0x2),{'encoding':_0x10a32c(0xac),'mode':0x180}),logger['setLogPath'](process[_0x10a32c(0xc3)]()),logger['info'](_0x10a32c(0xc8),_0x10a32c(0xb0),{'appcode':_0x15498d,'env':_0x2f91a5[_0x10a32c(0xc5)],'version':_0x2f91a5['version'],'configPath':_0x3fb2f4}),_0x59496f(!![]),setTimeout(()=>process[_0x10a32c(0xb1)](0x0),0x64);}catch(_0x675998){logger[_0x10a32c(0xa8)]('init',_0x10a32c(0xc4),{'error':_0x675998 instanceof Error?_0x675998['message']:String(_0x675998)}),_0x6ab65b(_0x1ff249(_0x10a32c(0xb2))+':\x20'+(_0x675998 instanceof Error?_0x675998[_0x10a32c(0xc6)]:String(_0x675998))),setTimeout(()=>process[_0x10a32c(0xb1)](0x1),0x64);}},[_0x15498d,_0x4edeef,_0x3fc3a9]);if(_0xba04c0)return a57_0x15436b(Box,{'flexDirection':'column','children':a57_0x3f9ad5(Text,{'color':_0x8e8c9d(0xc9),'children':['✗\x20',_0xba04c0]})});if(_0x4edeef)return a57_0x3f9ad5(Box,{'flexDirection':_0x8e8c9d(0xc7),'children':[a57_0x3f9ad5(Box,{'children':[a57_0x3f9ad5(Text,{'color':_0x8e8c9d(0xcb),'children':[_0x1ff249(_0x8e8c9d(0xa9)),'\x20']}),_0x59914c?a57_0x15436b(Text,{'color':_0x8e8c9d(0xbf),'children':_0x59914c}):a57_0x15436b(Text,{'color':'gray','children':'_'}),_0x2b0f43&&a57_0x3f9ad5(Text,{'color':_0x8e8c9d(0xc9),'children':[_0x8e8c9d(0xcd),_0x2b0f43]})]}),!_0x2b0f43&&!_0x59914c&&a57_0x15436b(Box,{'children':a57_0x15436b(Text,{'color':_0x8e8c9d(0xaf),'children':_0x1ff249(_0x8e8c9d(0xb9))})})]});if(_0x39ca17)return a57_0x3f9ad5(Box,{'flexDirection':_0x8e8c9d(0xc7),'children':[a57_0x3f9ad5(Text,{'color':'green','children':['✓\x20',_0x1ff249('init.success')]}),a57_0x3f9ad5(Text,{'color':'cyan','children':[_0x1ff249(_0x8e8c9d(0xce)),':\x20',_0x15498d]}),a57_0x15436b(Text,{'children':_0x1ff249(_0x8e8c9d(0xbb))})]});return a57_0x15436b(Box,{'children':a57_0x15436b(Text,{'children':_0x1ff249('init.creating')})});}