@lovrabet/lovrabet-cli 2.2.6-beta.1 → 2.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/lovrabet/SKILL.md +1 -1
- package/skills/lovrabet.manifest.json +3 -3
package/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
(function(
|
|
2
|
+
(function(_0x25ed0a,_0x347444){const _0x40d8ab=a0_0x5997,_0x53938e=_0x25ed0a();while(!![]){try{const _0xc63fa8=-parseInt(_0x40d8ab(0x199))/0x1+-parseInt(_0x40d8ab(0x19f))/0x2*(parseInt(_0x40d8ab(0x198))/0x3)+-parseInt(_0x40d8ab(0x197))/0x4*(parseInt(_0x40d8ab(0x1b3))/0x5)+parseInt(_0x40d8ab(0x1b4))/0x6+parseInt(_0x40d8ab(0x1a9))/0x7+parseInt(_0x40d8ab(0x1a8))/0x8+parseInt(_0x40d8ab(0x1ac))/0x9;if(_0xc63fa8===_0x347444)break;else _0x53938e['push'](_0x53938e['shift']());}catch(_0x24d29d){_0x53938e['push'](_0x53938e['shift']());}}}(a0_0x2bb4,0x4df9a));import{jsx as a0_0xc1d42c}from'react/jsx-runtime';import a0_0xebb779 from'meow';import{render}from'ink';function a0_0x5997(_0x51e676,_0x3bace2){_0x51e676=_0x51e676-0x18e;const _0x2bb471=a0_0x2bb4();let _0x599772=_0x2bb471[_0x51e676];return _0x599772;}import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';import{runCommand,createPipelineEnv}from'./framework/runner.js';import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';import{buildMeowFlags}from'./constant/cli.js';function a0_0x2bb4(){const _0xe7874a=['validation','assign','error','original','1159464McJmOB','311913oauebk','exitCode','write','4164984znJwaM',':\x20--','slice','log','stderr','defaultCommand','hint','802605hYfmpt','3335076OgDwDP','flatMap','ExitPromptError','exit','unknownCommand','message','ERR_STREAM_DESTROYED','definition','\x0aCancelled.\x0a','code','ERR_USE_AFTER_CLOSE','flags','8aIqUUn','453ynEyeP','519970FJfKTl','input','Hint:\x20','\x20->\x20--','name','args','632dlWWjN','[preparse]\x20','handler','help','corrected'];a0_0x2bb4=function(){return _0xe7874a;};return a0_0x2bb4();}import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0xebb779(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()['catch'](handleError);async function main(){try{await run();}catch(_0x2bae4d){handleError(_0x2bae4d);}}async function run(){const _0x3d71fa=a0_0x5997;let _0x32de8f=cli[_0x3d71fa(0x19a)][0x0],_0x2aac36=cli[_0x3d71fa(0x19a)][0x1];const _0x40ca69=cli[_0x3d71fa(0x196)];try{const {correctFlags:_0x87c2ba}=await import('./framework/preparse.js'),_0x47657b=getAllDefinitions()[_0x3d71fa(0x1b5)](_0x2860ea=>_0x2860ea[_0x3d71fa(0x196)]??[]),{flags:_0xac9277,corrections:_0x48ff19}=_0x87c2ba(_0x40ca69,_0x47657b);if(_0x48ff19['length']>0x0){for(const _0x55dd73 of _0x48ff19){process[_0x3d71fa(0x1b0)][_0x3d71fa(0x1ab)](_0x3d71fa(0x1a0)+_0x55dd73[_0x3d71fa(0x1a1)]+_0x3d71fa(0x1ad)+_0x55dd73[_0x3d71fa(0x1a7)]+_0x3d71fa(0x19c)+_0x55dd73[_0x3d71fa(0x1a3)]+'\x0a');}Object[_0x3d71fa(0x1a5)](_0x40ca69,_0xac9277);}}catch{}if(!_0x32de8f){const {waitUntilExit:_0x3e57f3}=render(a0_0xc1d42c(Help,{}));await _0x3e57f3();return;}const _0x1f11e5=resolveRemovedCommand(_0x32de8f,_0x2aac36);if(_0x1f11e5)throw CliErrors[_0x3d71fa(0x1a4)](_0x1f11e5[_0x3d71fa(0x190)],_0x1f11e5[_0x3d71fa(0x1b2)]);if(!isKnownService(_0x32de8f)){const _0xc48eda=resolveDynamicServiceCommand(cli[_0x3d71fa(0x19a)],_0x40ca69);if(_0xc48eda){if(_0x40ca69[_0x3d71fa(0x1a2)]){console[_0x3d71fa(0x1af)](generateCommandHelp(_0xc48eda[_0x3d71fa(0x192)]));return;}Object[_0x3d71fa(0x1a5)](_0x40ca69,_0xc48eda[_0x3d71fa(0x196)]);const _0x4f512f=buildConfigFromFlags(_0x40ca69);await initGlobalEnvironment(_0x4f512f);const _0xd3c912=createPipelineEnv(_0x4f512f,_0x40ca69);_0xd3c912[_0x3d71fa(0x19e)]=_0xc48eda[_0x3d71fa(0x19e)],await runCommand(_0xc48eda[_0x3d71fa(0x192)],_0xd3c912);return;}if(_0x40ca69['help']){const _0x2131d5=generateDynamicServiceHelp(_0x32de8f);if(_0x2131d5){console['log'](_0x2131d5);return;}}const {waitUntilExit:_0x18762f}=render(a0_0xc1d42c(Help,{}));await _0x18762f();return;}const _0x145885=getServiceEntry(_0x32de8f);if(!_0x2aac36){if(_0x40ca69[_0x3d71fa(0x1a2)]){console['log'](generateServiceHelp(_0x32de8f));return;}if(_0x145885['defaultCommand'])_0x2aac36=_0x145885[_0x3d71fa(0x1b1)];else{console[_0x3d71fa(0x1af)](generateServiceHelp(_0x32de8f));return;}}const _0x2fa57b=findDefinition(_0x32de8f,_0x2aac36);!_0x2fa57b&&(console[_0x3d71fa(0x1af)](generateServiceHelp(_0x32de8f)),handleError(CliErrors[_0x3d71fa(0x18f)](_0x32de8f+'\x20'+_0x2aac36)));if(_0x40ca69[_0x3d71fa(0x1a2)]){console[_0x3d71fa(0x1af)](generateCommandHelp(_0x2fa57b));return;}const _0x22f29f=buildConfigFromFlags(_0x40ca69);await initGlobalEnvironment(_0x22f29f);const _0x55dfdc=createPipelineEnv(_0x22f29f,_0x40ca69);_0x55dfdc['args']=cli[_0x3d71fa(0x19a)][_0x3d71fa(0x1ae)](0x2),await runCommand(_0x2fa57b,_0x55dfdc);}function handleError(_0x5cc6cf){const _0x25a146=a0_0x5997;if(_0x5cc6cf instanceof CliError){_0x5cc6cf['code']==='cancelled'&&(process[_0x25a146(0x1b0)][_0x25a146(0x1ab)](_0x25a146(0x193)),process['exit'](0x0));console[_0x25a146(0x1a6)]('Error:\x20'+_0x5cc6cf[_0x25a146(0x190)]);if(_0x5cc6cf[_0x25a146(0x1b2)])console[_0x25a146(0x1a6)](_0x25a146(0x19b)+_0x5cc6cf[_0x25a146(0x1b2)]);process[_0x25a146(0x18e)](_0x5cc6cf[_0x25a146(0x1aa)]);}isUserCancellation(_0x5cc6cf)&&(process[_0x25a146(0x1b0)][_0x25a146(0x1ab)](_0x25a146(0x193)),process[_0x25a146(0x18e)](0x0)),console[_0x25a146(0x1a6)]('Unexpected\x20error:',_0x5cc6cf),process[_0x25a146(0x18e)](0x1);}function isUserCancellation(_0x2b9b02){const _0x326c8a=a0_0x5997;if(!(_0x2b9b02 instanceof Error))return![];if(_0x2b9b02[_0x326c8a(0x19d)]===_0x326c8a(0x1b6))return!![];if(_0x2b9b02[_0x326c8a(0x194)]===_0x326c8a(0x195))return!![];if(_0x2b9b02[_0x326c8a(0x194)]===_0x326c8a(0x191))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x2cb7c2=a1_0x2253;(function(_0x3a1831,_0x26dd21){const _0x4025a7=a1_0x2253,_0x1435f3=_0x3a1831();while(!![]){try{const _0x2bc015=parseInt(_0x4025a7(0x15c))/0x1*(parseInt(_0x4025a7(0x10f))/0x2)+-parseInt(_0x4025a7(0x134))/0x3+-parseInt(_0x4025a7(0x14b))/0x4+-parseInt(_0x4025a7(0x157))/0x5*(-parseInt(_0x4025a7(0xfe))/0x6)+parseInt(_0x4025a7(0x150))/0x7*(parseInt(_0x4025a7(0x101))/0x8)+parseInt(_0x4025a7(0x130))/0x9*(parseInt(_0x4025a7(0x138))/0xa)+parseInt(_0x4025a7(0x159))/0xb;if(_0x2bc015===_0x26dd21)break;else _0x1435f3['push'](_0x1435f3['shift']());}catch(_0x2fdcfb){_0x1435f3['push'](_0x1435f3['shift']());}}}(a1_0x2e3a,0x72a4f));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x2cb7c2(0x145),'type':a1_0x2cb7c2(0x140),'description':a1_0x2cb7c2(0x111)},KEYWORD_FLAG={'name':'keyword','type':a1_0x2cb7c2(0x140),'description':a1_0x2cb7c2(0xec)},DOC_CODE_FLAG={'name':a1_0x2cb7c2(0x107),'type':a1_0x2cb7c2(0x140),'required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':a1_0x2cb7c2(0x103),'category':a1_0x2cb7c2(0xf0),'title':a1_0x2cb7c2(0x124),'method':a1_0x2cb7c2(0xfd),'path':a1_0x2cb7c2(0x139),'summary':'分页获取数据集列表','whenToUse':a1_0x2cb7c2(0x125),'pathParams':[],'queryParams':[],'bodySchema':a1_0x2cb7c2(0xff),'responseHighlights':[a1_0x2cb7c2(0x115),a1_0x2cb7c2(0xfc)],'examples':[a1_0x2cb7c2(0xf5)],'notes':[a1_0x2cb7c2(0x15d)],'markdown':[a1_0x2cb7c2(0x13b),'',a1_0x2cb7c2(0x12c)][a1_0x2cb7c2(0x121)]('\x0a')},{'code':a1_0x2cb7c2(0x155),'category':'dataset','title':a1_0x2cb7c2(0x13d),'method':a1_0x2cb7c2(0x11c),'path':'/api/dataset/getOneByCode?code={datasetCode}','summary':'获取数据集详情','whenToUse':a1_0x2cb7c2(0x14c),'pathParams':[],'queryParams':[{'name':a1_0x2cb7c2(0x107),'description':a1_0x2cb7c2(0x118)}],'bodySchema':'None','responseHighlights':['fields/properties\x20describe\x20data\x20shape',a1_0x2cb7c2(0xeb),a1_0x2cb7c2(0x10a)],'examples':[a1_0x2cb7c2(0x12f)],'notes':[a1_0x2cb7c2(0x116)],'markdown':[a1_0x2cb7c2(0x15b),'',a1_0x2cb7c2(0x146)]['join']('\x0a')},{'code':a1_0x2cb7c2(0x10d),'category':a1_0x2cb7c2(0xf0),'title':'Filter\x20dataset\x20data','method':'POST','path':a1_0x2cb7c2(0x129),'summary':a1_0x2cb7c2(0xe7),'whenToUse':'需要携带\x20where、orderBy、分页等条件读取业务数据时使用','pathParams':[{'name':'appCode','description':a1_0x2cb7c2(0xf3)},{'name':a1_0x2cb7c2(0x12a),'description':a1_0x2cb7c2(0x118)}],'queryParams':[],'bodySchema':a1_0x2cb7c2(0x104),'responseHighlights':['tableData\x20contains\x20records',a1_0x2cb7c2(0x15a)],'examples':[a1_0x2cb7c2(0x127),'lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27'],'notes':[a1_0x2cb7c2(0x13c),a1_0x2cb7c2(0x10e),a1_0x2cb7c2(0x10b),a1_0x2cb7c2(0x13e)],'markdown':[a1_0x2cb7c2(0x13f),'','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.'][a1_0x2cb7c2(0x121)]('\x0a')},{'code':a1_0x2cb7c2(0x153),'category':a1_0x2cb7c2(0xf0),'title':a1_0x2cb7c2(0xfb),'method':a1_0x2cb7c2(0xfd),'path':a1_0x2cb7c2(0x119),'summary':a1_0x2cb7c2(0x132),'whenToUse':'需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','pathParams':[{'name':a1_0x2cb7c2(0x131),'description':'Current\x20app\x20code'},{'name':a1_0x2cb7c2(0x12a),'description':a1_0x2cb7c2(0x118)}],'queryParams':[],'bodySchema':a1_0x2cb7c2(0x158),'responseHighlights':[a1_0x2cb7c2(0x123),a1_0x2cb7c2(0x13a)],'examples':[a1_0x2cb7c2(0x102)],'notes':[a1_0x2cb7c2(0x14d),a1_0x2cb7c2(0x11e)],'markdown':['##\x20Aggregate\x20dataset\x20data','',a1_0x2cb7c2(0x142)][a1_0x2cb7c2(0x121)]('\x0a')},{'code':a1_0x2cb7c2(0xe6),'category':a1_0x2cb7c2(0xf0),'title':a1_0x2cb7c2(0xe8),'method':a1_0x2cb7c2(0xfd),'path':'/api/{appCode}/{datasetCode}/getOne','summary':a1_0x2cb7c2(0x149),'whenToUse':'已经知道记录\x20id,需要按数据集读取单条业务数据时使用','pathParams':[{'name':a1_0x2cb7c2(0x131),'description':a1_0x2cb7c2(0xf3)},{'name':a1_0x2cb7c2(0x12a),'description':a1_0x2cb7c2(0x118)}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':[a1_0x2cb7c2(0x113)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':[a1_0x2cb7c2(0x110)],'markdown':a1_0x2cb7c2(0x136)},{'code':a1_0x2cb7c2(0xf2),'category':'dataset','title':a1_0x2cb7c2(0xf8),'method':a1_0x2cb7c2(0xfd),'path':'/api/{appCode}/{datasetCode}/create','summary':a1_0x2cb7c2(0x156),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x2cb7c2(0x131),'description':a1_0x2cb7c2(0xf3)},{'name':a1_0x2cb7c2(0x12a),'description':a1_0x2cb7c2(0x118)}],'queryParams':[],'bodySchema':a1_0x2cb7c2(0x135),'responseHighlights':[a1_0x2cb7c2(0x154)],'examples':[a1_0x2cb7c2(0x143)],'notes':[a1_0x2cb7c2(0x128)],'markdown':a1_0x2cb7c2(0x147)},{'code':'bf_detail','category':'bf','title':'Get\x20BF\x20endpoint\x20function\x20contract','method':a1_0x2cb7c2(0x11c),'path':a1_0x2cb7c2(0x108),'summary':a1_0x2cb7c2(0x12b),'whenToUse':'已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','pathParams':[{'name':a1_0x2cb7c2(0x131),'description':'Current\x20app\x20code'},{'name':a1_0x2cb7c2(0x12e),'description':a1_0x2cb7c2(0xf6)}],'queryParams':[],'bodySchema':a1_0x2cb7c2(0x126),'responseHighlights':[a1_0x2cb7c2(0xfa)],'examples':[a1_0x2cb7c2(0xf1)],'notes':['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20Backend\x20Function\x20definitions\x20or\x20expose\x20platform-only\x20fields.'],'markdown':a1_0x2cb7c2(0xf9)},{'code':a1_0x2cb7c2(0x141),'category':'bf','title':'Execute\x20BF\x20endpoint\x20function','method':a1_0x2cb7c2(0xfd),'path':'/api/endpoint/{appCode}/{functionName}','summary':'执行指定\x20BF\x20函数','whenToUse':a1_0x2cb7c2(0x100),'pathParams':[{'name':a1_0x2cb7c2(0x131),'description':a1_0x2cb7c2(0xf3)},{'name':a1_0x2cb7c2(0x12e),'description':a1_0x2cb7c2(0x120)}],'queryParams':[],'bodySchema':a1_0x2cb7c2(0x117),'responseHighlights':['Returns\x20script\x20business\x20payload'],'examples':[a1_0x2cb7c2(0x11f)],'notes':['Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.'],'markdown':a1_0x2cb7c2(0x151)},{'code':a1_0x2cb7c2(0x114),'category':a1_0x2cb7c2(0x14a),'title':'Execute\x20custom\x20SQL','method':a1_0x2cb7c2(0xfd),'path':a1_0x2cb7c2(0x10c),'summary':a1_0x2cb7c2(0x12d),'whenToUse':a1_0x2cb7c2(0xed),'pathParams':[],'queryParams':[],'bodySchema':a1_0x2cb7c2(0x137),'responseHighlights':[a1_0x2cb7c2(0x14f)],'examples':[a1_0x2cb7c2(0x105)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x2cb7c2(0xf7)}];function entrySummary(_0x45bd34){const _0x38c043=a1_0x2cb7c2;return{'code':_0x45bd34[_0x38c043(0x107)],'category':_0x45bd34[_0x38c043(0x145)],'method':_0x45bd34['method'],'path':_0x45bd34[_0x38c043(0x133)],'summary':_0x45bd34[_0x38c043(0xee)],'whenToUse':_0x45bd34[_0x38c043(0x144)]};}export function listApiDocEntries(_0x184a76={}){const _0x28bae1=a1_0x2cb7c2,_0x5335e2=String(_0x184a76[_0x28bae1(0x145)]||'')[_0x28bae1(0x148)](),_0x5f0de1=String(_0x184a76[_0x28bae1(0xf4)]||'')[_0x28bae1(0x148)]()[_0x28bae1(0x109)]();return DOCS['filter'](_0x2a58eb=>{const _0x409722=_0x28bae1;if(_0x5335e2&&_0x2a58eb[_0x409722(0x145)]!==_0x5335e2)return![];if(!_0x5f0de1)return!![];return[_0x2a58eb['code'],_0x2a58eb[_0x409722(0x145)],_0x2a58eb[_0x409722(0x11a)],_0x2a58eb[_0x409722(0x133)],_0x2a58eb['summary'],_0x2a58eb[_0x409722(0x144)],_0x2a58eb[_0x409722(0x122)]]['join']('\x20')['toLowerCase']()[_0x409722(0x11d)](_0x5f0de1);})['map'](entrySummary);}export function getApiDocDetail(_0x545d5d){const _0xa055f6=a1_0x2cb7c2,_0x2e54b6=DOCS[_0xa055f6(0x11b)](_0x1001f0=>_0x1001f0[_0xa055f6(0x107)]===_0x545d5d);if(!_0x2e54b6)throw CliErrors[_0xa055f6(0xef)]('API\x20doc\x20code\x20not\x20found:\x20'+_0x545d5d);return{..._0x2e54b6};}const apiDocList={'service':a1_0x2cb7c2(0xea),'command':a1_0x2cb7c2(0x14e),'description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':a1_0x2cb7c2(0x152),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x53ce3c){const _0x34c3a6=a1_0x2cb7c2,_0x270f8e=listApiDocEntries({'category':_0x53ce3c['str'](_0x34c3a6(0x145)),'keyword':_0x53ce3c['str']('keyword')});return{'ok':!![],'data':{'total':_0x270f8e[_0x34c3a6(0x106)],'items':_0x270f8e}};}},apiDocDetail={'service':a1_0x2cb7c2(0xea),'command':a1_0x2cb7c2(0xe9),'description':a1_0x2cb7c2(0x112),'risk':'read','requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0xa699ec){const _0x26be45=a1_0x2cb7c2;return{'ok':!![],'data':getApiDocDetail(_0xa699ec['str'](_0x26be45(0x107)))};}};function a1_0x2253(_0x5d3703,_0x126968){_0x5d3703=_0x5d3703-0xe6;const _0x2e3abf=a1_0x2e3a();let _0x2253e4=_0x2e3abf[_0x5d3703];return _0x2253e4;}function a1_0x2e3a(){const _0x458540=['##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','read','dataset_data_aggregate','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','dataset_detail','创建数据','3200560OXiBFP','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','2359852AqkRtR','paging\x20contains\x20pagination','##\x20Dataset\x20detail','8pOqjSW','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','dataset_data_get_one','条件过滤查询数据','Get\x20one\x20dataset\x20record','detail','api-doc','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','summary','validation','dataset','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','dataset_data_create','Current\x20app\x20code','keyword','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','Exact\x20endpoint\x20function\x20name','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','Create\x20dataset\x20record','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','Aggregate\x20dataset\x20data','paging.totalCount\x20gives\x20total\x20rows','POST','6tWdCMm','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','992aMzAzb','lovrabet\x20data\x20aggregate\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22aggregate\x22:[{\x22column\x22:\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}]}\x27','dataset_list','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','length','code','/client/bff/endpoint/{appCode}/{functionName}','toLowerCase','operations\x20describes\x20runtime\x20APIs','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','/api/custom/executeSql','dataset_data_filter','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','638gsxRyM','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','Show\x20runtime\x20API\x20documentation\x20by\x20code','Returns\x20one\x20matching\x20business\x20record','custom_sql_execute','tableData\x20contains\x20dataset\x20id/code/name','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','{\x22param\x22:\x22value\x22}','32-character\x20dataset\x20code','/api/{appCode}/{datasetCode}/aggregate','method','find','GET','includes','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','Endpoint\x20function\x20name','join','title','result\x20rows\x20contain\x20aggregate\x20aliases','List\x20datasets','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','None','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:1,\x22pageSize\x22:20}\x27','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','/api/{appCode}/{datasetCode}/filter','datasetCode','按应用和函数名精确获取\x20BF\x20运行契约','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','执行自定义\x20SQL','functionName','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','162927dJZXAA','appCode','聚合查询数据集数据','path','2494218zHfpwf','{\x22fieldName\x22:\x22value\x22}','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','340kSgWDx','/api/dataset/get-dataset-list-by-app-code','where\x20filters\x20before\x20aggregation','##\x20List\x20datasets','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','Dataset\x20detail','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','##\x20Filter\x20dataset\x20data','string','bf_execute','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','whenToUse','category','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','trim','查询单条数据','custom_sql','1224500LVrJLr','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','list','Returns\x20SQL\x20execution\x20payload','7588dbIAOW'];a1_0x2e3a=function(){return _0x458540;};return a1_0x2e3a();}export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
const a1_0x20ffdd=a1_0x4cee;function a1_0x4cee(_0x47b1bd,_0x13e375){_0x47b1bd=_0x47b1bd-0x18b;const _0x488edb=a1_0x488e();let _0x4ceefb=_0x488edb[_0x47b1bd];return _0x4ceefb;}(function(_0x5d446a,_0x3a0780){const _0xaf87=a1_0x4cee,_0x106dbf=_0x5d446a();while(!![]){try{const _0x3fe5c1=-parseInt(_0xaf87(0x204))/0x1*(-parseInt(_0xaf87(0x1fc))/0x2)+-parseInt(_0xaf87(0x206))/0x3*(parseInt(_0xaf87(0x1a8))/0x4)+-parseInt(_0xaf87(0x1e6))/0x5+parseInt(_0xaf87(0x201))/0x6+-parseInt(_0xaf87(0x1e8))/0x7+-parseInt(_0xaf87(0x1fa))/0x8*(parseInt(_0xaf87(0x1f7))/0x9)+parseInt(_0xaf87(0x19d))/0xa*(parseInt(_0xaf87(0x19e))/0xb);if(_0x3fe5c1===_0x3a0780)break;else _0x106dbf['push'](_0x106dbf['shift']());}catch(_0x14299a){_0x106dbf['push'](_0x106dbf['shift']());}}}(a1_0x488e,0x99e24));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x20ffdd(0x1ed),'type':a1_0x20ffdd(0x1c9),'description':a1_0x20ffdd(0x18e)},KEYWORD_FLAG={'name':'keyword','type':a1_0x20ffdd(0x1c9),'description':a1_0x20ffdd(0x1cb)},DOC_CODE_FLAG={'name':a1_0x20ffdd(0x1af),'type':a1_0x20ffdd(0x1c9),'required':!![],'description':a1_0x20ffdd(0x19b)},DOCS=[{'code':a1_0x20ffdd(0x1da),'category':'dataset','title':a1_0x20ffdd(0x1d0),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1ec),'summary':a1_0x20ffdd(0x1ff),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name',a1_0x20ffdd(0x1d7)],'examples':[a1_0x20ffdd(0x1d2)],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x20ffdd(0x1d3),'',a1_0x20ffdd(0x1e4)][a1_0x20ffdd(0x1db)]('\x0a')},{'code':'dataset_detail','category':a1_0x20ffdd(0x1e1),'title':a1_0x20ffdd(0x19a),'method':'GET','path':a1_0x20ffdd(0x1de),'summary':a1_0x20ffdd(0x1a2),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':a1_0x20ffdd(0x1af),'description':a1_0x20ffdd(0x202)}],'bodySchema':a1_0x20ffdd(0x1cc),'responseHighlights':[a1_0x20ffdd(0x19c),a1_0x20ffdd(0x1c0),a1_0x20ffdd(0x1fe)],'examples':[a1_0x20ffdd(0x1c2)],'notes':[a1_0x20ffdd(0x1d9)],'markdown':[a1_0x20ffdd(0x194),'',a1_0x20ffdd(0x1e9)][a1_0x20ffdd(0x1db)]('\x0a')},{'code':a1_0x20ffdd(0x1f4),'category':a1_0x20ffdd(0x1e1),'title':a1_0x20ffdd(0x1f6),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1b0),'summary':a1_0x20ffdd(0x18b),'whenToUse':a1_0x20ffdd(0x1f8),'pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':'datasetCode','description':a1_0x20ffdd(0x202)}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':[a1_0x20ffdd(0x196),a1_0x20ffdd(0x1b9)],'examples':[a1_0x20ffdd(0x1e2),a1_0x20ffdd(0x192)],'notes':[a1_0x20ffdd(0x195),a1_0x20ffdd(0x1b1),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x20ffdd(0x1b7)],'markdown':[a1_0x20ffdd(0x1ae),'',a1_0x20ffdd(0x1ce)][a1_0x20ffdd(0x1db)]('\x0a')},{'code':a1_0x20ffdd(0x205),'category':a1_0x20ffdd(0x1e1),'title':'Aggregate\x20dataset\x20data','method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1a3),'summary':a1_0x20ffdd(0x1d5),'whenToUse':a1_0x20ffdd(0x1fd),'pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':'datasetCode','description':a1_0x20ffdd(0x202)}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1ad),'responseHighlights':[a1_0x20ffdd(0x1e0),'where\x20filters\x20before\x20aggregation'],'examples':['lovrabet\x20data\x20aggregate\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22aggregate\x22:[{\x22column\x22:\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}]}\x27'],'notes':[a1_0x20ffdd(0x1b5),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0x20ffdd(0x1f9),'','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.']['join']('\x0a')},{'code':a1_0x20ffdd(0x1bb),'category':a1_0x20ffdd(0x1e1),'title':a1_0x20ffdd(0x1ea),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1c4),'summary':a1_0x20ffdd(0x1a6),'whenToUse':a1_0x20ffdd(0x200),'pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':a1_0x20ffdd(0x1ab),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':['Returns\x20one\x20matching\x20business\x20record'],'examples':[a1_0x20ffdd(0x191)],'notes':[a1_0x20ffdd(0x199)],'markdown':a1_0x20ffdd(0x1d8)},{'code':'dataset_data_create','category':a1_0x20ffdd(0x1e1),'title':'Create\x20dataset\x20record','method':'POST','path':a1_0x20ffdd(0x1bc),'summary':a1_0x20ffdd(0x198),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':a1_0x20ffdd(0x1ab),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1e5),'responseHighlights':[a1_0x20ffdd(0x1ac)],'examples':[a1_0x20ffdd(0x1c5)],'notes':[a1_0x20ffdd(0x18c)],'markdown':a1_0x20ffdd(0x1b4)},{'code':a1_0x20ffdd(0x1f1),'category':'bf','title':a1_0x20ffdd(0x1d6),'method':'GET','path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0x20ffdd(0x1c6),'whenToUse':a1_0x20ffdd(0x1e3),'pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':a1_0x20ffdd(0x197),'description':a1_0x20ffdd(0x1b6)}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1cc),'responseHighlights':[a1_0x20ffdd(0x1eb)],'examples':[a1_0x20ffdd(0x1b3)],'notes':['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20Backend\x20Function\x20definitions\x20or\x20expose\x20platform-only\x20fields.'],'markdown':a1_0x20ffdd(0x1cf)},{'code':a1_0x20ffdd(0x1bf),'category':'bf','title':a1_0x20ffdd(0x1c7),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1dc),'summary':a1_0x20ffdd(0x1fb),'whenToUse':a1_0x20ffdd(0x1ca),'pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':a1_0x20ffdd(0x197),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1be),'responseHighlights':[a1_0x20ffdd(0x18f)],'examples':[a1_0x20ffdd(0x1a0)],'notes':[a1_0x20ffdd(0x1a9)],'markdown':a1_0x20ffdd(0x1f2)},{'code':a1_0x20ffdd(0x1f0),'category':a1_0x20ffdd(0x1c8),'title':a1_0x20ffdd(0x1bd),'method':a1_0x20ffdd(0x1d4),'path':'/api/custom/executeSql','summary':a1_0x20ffdd(0x1a1),'whenToUse':a1_0x20ffdd(0x1d1),'pathParams':[],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1ee),'responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':[a1_0x20ffdd(0x1a5)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x20ffdd(0x1dd)}];function entrySummary(_0x3002c7){const _0xce26f6=a1_0x20ffdd;return{'code':_0x3002c7[_0xce26f6(0x1af)],'category':_0x3002c7[_0xce26f6(0x1ed)],'method':_0x3002c7[_0xce26f6(0x1c3)],'path':_0x3002c7['path'],'summary':_0x3002c7[_0xce26f6(0x1aa)],'whenToUse':_0x3002c7[_0xce26f6(0x1df)]};}export function listApiDocEntries(_0x85518c={}){const _0x5d0f65=a1_0x20ffdd,_0x5706ce=String(_0x85518c[_0x5d0f65(0x1ed)]||'')[_0x5d0f65(0x1b2)](),_0x2d42bc=String(_0x85518c['keyword']||'')[_0x5d0f65(0x1b2)]()[_0x5d0f65(0x190)]();return DOCS[_0x5d0f65(0x1b8)](_0x5b3114=>{const _0x5017ff=_0x5d0f65;if(_0x5706ce&&_0x5b3114['category']!==_0x5706ce)return![];if(!_0x2d42bc)return!![];return[_0x5b3114[_0x5017ff(0x1af)],_0x5b3114[_0x5017ff(0x1ed)],_0x5b3114['method'],_0x5b3114[_0x5017ff(0x1e7)],_0x5b3114[_0x5017ff(0x1aa)],_0x5b3114[_0x5017ff(0x1df)],_0x5b3114[_0x5017ff(0x1ef)]][_0x5017ff(0x1db)]('\x20')['toLowerCase']()[_0x5017ff(0x1a7)](_0x2d42bc);})['map'](entrySummary);}function a1_0x488e(){const _0x3ad77b=['str','dataset_data_get_one','/api/{appCode}/{datasetCode}/create','Execute\x20custom\x20SQL','{\x22param\x22:\x22value\x22}','bf_execute','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','list','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','method','/api/{appCode}/{datasetCode}/getOne','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','按应用和函数名精确获取\x20BF\x20运行契约','Execute\x20BF\x20endpoint\x20function','custom_sql','string','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','None','detail','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','List\x20datasets','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','##\x20List\x20datasets','POST','聚合查询数据集数据','Get\x20BF\x20endpoint\x20function\x20contract','paging.totalCount\x20gives\x20total\x20rows','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','dataset_list','join','/api/endpoint/{appCode}/{functionName}','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','/api/dataset/getOneByCode?code={datasetCode}','whenToUse','result\x20rows\x20contain\x20aggregate\x20aliases','dataset','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:1,\x22pageSize\x22:20}\x27','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','{\x22fieldName\x22:\x22value\x22}','6197535ftVzpv','path','711137mRouGp','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','Get\x20one\x20dataset\x20record','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','/api/dataset/get-dataset-list-by-app-code','category','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','title','custom_sql_execute','bf_detail','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','appCode','dataset_data_filter','length','Filter\x20dataset\x20data','85707sPCsZY','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','##\x20Aggregate\x20dataset\x20data','736YcDNST','执行指定\x20BF\x20函数','1156922VvFUkr','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','operations\x20describes\x20runtime\x20APIs','分页获取数据集列表','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','3392862bUhPOn','32-character\x20dataset\x20code','Current\x20app\x20code','1mDFuGb','dataset_data_aggregate','507hQjTBf','条件过滤查询数据','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','api-doc','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','Returns\x20script\x20business\x20payload','toLowerCase','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27','List\x20available\x20runtime\x20API\x20documentation\x20entries','##\x20Dataset\x20detail','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','tableData\x20contains\x20records','functionName','创建数据','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','Dataset\x20detail','API\x20doc\x20code,\x20for\x20example\x20dataset_list','fields/properties\x20describe\x20data\x20shape','24612110tImnLI','11REUwNl','Show\x20runtime\x20API\x20documentation\x20by\x20code','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','执行自定义\x20SQL','获取数据集详情','/api/{appCode}/{datasetCode}/aggregate','API\x20doc\x20code\x20not\x20found:\x20','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','查询单条数据','includes','17932EdSdWy','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','summary','datasetCode','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','##\x20Filter\x20dataset\x20data','code','/api/{appCode}/{datasetCode}/filter','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','trim','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','Exact\x20endpoint\x20function\x20name','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','filter','paging\x20contains\x20pagination'];a1_0x488e=function(){return _0x3ad77b;};return a1_0x488e();}export function getApiDocDetail(_0x4b9268){const _0xd703e0=a1_0x20ffdd,_0xae0e5c=DOCS['find'](_0x118400=>_0x118400[_0xd703e0(0x1af)]===_0x4b9268);if(!_0xae0e5c)throw CliErrors['validation'](_0xd703e0(0x1a4)+_0x4b9268);return{..._0xae0e5c};}const apiDocList={'service':a1_0x20ffdd(0x18d),'command':a1_0x20ffdd(0x1c1),'description':a1_0x20ffdd(0x193),'risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x1e6354){const _0x28ce1=a1_0x20ffdd,_0xe49ca8=listApiDocEntries({'category':_0x1e6354[_0x28ce1(0x1ba)](_0x28ce1(0x1ed)),'keyword':_0x1e6354[_0x28ce1(0x1ba)]('keyword')});return{'ok':!![],'data':{'total':_0xe49ca8[_0x28ce1(0x1f5)],'items':_0xe49ca8}};}},apiDocDetail={'service':a1_0x20ffdd(0x18d),'command':a1_0x20ffdd(0x1cd),'description':a1_0x20ffdd(0x19f),'risk':'read','requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x46ed16){const _0x436346=a1_0x20ffdd;return{'ok':!![],'data':getApiDocDetail(_0x46ed16[_0x436346(0x1ba)](_0x436346(0x1af)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1f45c4,_0x3d25ec){const _0xad23be=a2_0x5266,_0x483971=_0x1f45c4();while(!![]){try{const _0x1875cb=parseInt(_0xad23be(0x171))/0x1+-parseInt(_0xad23be(0x17f))/0x2+parseInt(_0xad23be(0x189))/0x3*(-parseInt(_0xad23be(0x180))/0x4)+-parseInt(_0xad23be(0x188))/0x5*(-parseInt(_0xad23be(0x184))/0x6)+parseInt(_0xad23be(0x182))/0x7*(-parseInt(_0xad23be(0x16f))/0x8)+-parseInt(_0xad23be(0x179))/0x9*(parseInt(_0xad23be(0x18a))/0xa)+-parseInt(_0xad23be(0x177))/0xb*(-parseInt(_0xad23be(0x17d))/0xc);if(_0x1875cb===_0x3d25ec)break;else _0x483971['push'](_0x483971['shift']());}catch(_0x52622f){_0x483971['push'](_0x483971['shift']());}}}(a2_0x2d8b,0x8b040));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a2_0x2d8b(){const _0x5d390e=['appName','utf8','hex','32mqBWjN','update','552047otBftm','my-apps.json','code','ak_','find','EXDEV','407xbSHOS','slice','234xuTkKL','EACCES','EPERM','.tmp','459912JtNTMp','isArray','937350dAkUnm','580oDzcIR','homeDirName','477953BLPuEG','appCode','3218268HINzNO','cache','stringify','trim','5vVwDRk','11958moghgQ','237430fpqRuL'];a2_0x2d8b=function(){return _0x5d390e;};return a2_0x2d8b();}import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x24811d){const _0x2cc58c=a2_0x5266,_0x251fdf=_0x24811d[_0x2cc58c(0x187)](),_0x328295=_0x251fdf['slice'](-0x6)||'unknown',_0x23ca9e=createHash('sha256')[_0x2cc58c(0x170)](_0x251fdf)['digest'](_0x2cc58c(0x18d))[_0x2cc58c(0x178)](0x0,0xc);return _0x2cc58c(0x174)+_0x328295+'_'+_0x23ca9e;}export function getAppCacheFilePath(_0x320176,_0x56ac05){const _0x31aabc=a2_0x5266;return resolve(homedir(),PRODUCT_CONFIG[_0x31aabc(0x181)],_0x31aabc(0x185),_0x320176,fingerprintAccessKey(_0x56ac05),_0x31aabc(0x172));}export function readCachedAppList(_0xb3a7bb,_0x18ff10){const _0x58e46f=a2_0x5266;if(!_0x18ff10?.[_0x58e46f(0x187)]())return null;const _0x4378=getAppCacheFilePath(_0xb3a7bb,_0x18ff10);if(!existsSync(_0x4378))return null;try{const _0x207ba4=readFileSync(_0x4378,'utf8');if(!_0x207ba4[_0x58e46f(0x187)]())return null;const _0x4fafa1=JSON['parse'](_0x207ba4);if(!Array[_0x58e46f(0x17e)](_0x4fafa1['items']))return null;return _0x4fafa1;}catch{return null;}}export function writeCachedAppList(_0x5c4cfc,_0x1647f0,_0x2cbf87){const _0x38e359=a2_0x5266,_0x1c9b51=getAppCacheFilePath(_0x5c4cfc,_0x1647f0),_0x7f243e=dirname(_0x1c9b51);!existsSync(_0x7f243e)&&mkdirSync(_0x7f243e,{'recursive':!![]});const _0x240209=_0x1c9b51+_0x38e359(0x17c);try{writeFileSync(_0x240209,JSON[_0x38e359(0x186)](_0x2cbf87,null,0x2)+'\x0a',{'encoding':_0x38e359(0x18c),'mode':0x180});try{renameSync(_0x240209,_0x1c9b51);}catch(_0x1479cd){if(_0x1479cd[_0x38e359(0x173)]===_0x38e359(0x17b)||_0x1479cd['code']===_0x38e359(0x176)||_0x1479cd['code']===_0x38e359(0x17a)){writeFileSync(_0x1c9b51,JSON[_0x38e359(0x186)](_0x2cbf87,null,0x2)+'\x0a',{'encoding':_0x38e359(0x18c)});try{unlinkSync(_0x240209);}catch{}}else throw _0x1479cd;}}catch(_0x2aa097){try{unlinkSync(_0x240209);}catch{}throw _0x2aa097;}return _0x1c9b51;}function a2_0x5266(_0x5bddcf,_0x16b7c3){_0x5bddcf=_0x5bddcf-0x16f;const _0x2d8b99=a2_0x2d8b();let _0x526669=_0x2d8b99[_0x5bddcf];return _0x526669;}export function resolveCachedAppCode(_0x4c73f0,_0x1569a2,_0x5ecd8e){const _0x411080=a2_0x5266;if(!_0x4c73f0)return undefined;const _0x1cb983=readCachedAppList(_0x1569a2,_0x5ecd8e),_0x1e1d5d=_0x1cb983?.['items'][_0x411080(0x175)](_0x314f7a=>_0x314f7a[_0x411080(0x18b)]===_0x4c73f0&&isRuntimeAccessibleApp(_0x314f7a));return _0x1e1d5d?.[_0x411080(0x183)]?.[_0x411080(0x187)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x352d77=a3_0x4c22;(function(_0x57c2ca,_0x46093e){const _0x5410ac=a3_0x4c22,_0x1dd3b2=_0x57c2ca();while(!![]){try{const _0x144c82=parseInt(_0x5410ac(0x1a0))/0x1+-parseInt(_0x5410ac(0x1b6))/0x2+parseInt(_0x5410ac(0x1b0))/0x3*(-parseInt(_0x5410ac(0x19f))/0x4)+parseInt(_0x5410ac(0x1ab))/0x5*(parseInt(_0x5410ac(0x1c1))/0x6)+parseInt(_0x5410ac(0x1b7))/0x7+-parseInt(_0x5410ac(0x19e))/0x8+-parseInt(_0x5410ac(0x188))/0x9*(parseInt(_0x5410ac(0x192))/0xa);if(_0x144c82===_0x46093e)break;else _0x1dd3b2['push'](_0x1dd3b2['shift']());}catch(_0x475124){_0x1dd3b2['push'](_0x1dd3b2['shift']());}}}(a3_0x5a26,0x2fdcf));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';function a3_0x4c22(_0x538941,_0x150fb0){_0x538941=_0x538941-0x188;const _0x5a2618=a3_0x5a26();let _0x4c2221=_0x5a2618[_0x538941];return _0x4c2221;}import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x5cf8c3,_0x491475){const _0xfb446b=a3_0x4c22,_0x5c5eb8={};for(const _0x3cdf78 of _0x491475){const _0x4a1c41=_0x3cdf78[_0xfb446b(0x1a5)]==='boolean'?_0x5cf8c3[_0xfb446b(0x1a6)](_0x3cdf78['name']):_0x5cf8c3[_0xfb446b(0x18d)](_0x3cdf78[_0xfb446b(0x196)]);if(_0x4a1c41!==''&&_0x4a1c41!==![])_0x5c5eb8[_0x3cdf78[_0xfb446b(0x196)]]=_0x4a1c41;}if(_0x5cf8c3['nonInteractive'])_0x5c5eb8[_0xfb446b(0x198)]=!![];return _0x5c5eb8;}function normalizeLanguages(_0x553c09){const _0x380100=a3_0x4c22;if(!Array['isArray'](_0x553c09))return[];return _0x553c09[_0x380100(0x1b1)](_0x5f4fc3=>typeof _0x5f4fc3==='string')[_0x380100(0x18b)](_0x2f87c8=>_0x2f87c8['trim']())[_0x380100(0x1b1)](Boolean);}function buildRemoteAppI18nFields(_0x57282f){const _0x3bc74d=a3_0x4c22,_0x16af97=normalizeLanguages(_0x57282f[_0x3bc74d(0x1bb)]?.[_0x3bc74d(0x194)]);return{'enableI18n':typeof _0x57282f[_0x3bc74d(0x191)]===_0x3bc74d(0x1ad)?_0x57282f['enableI18n']:null,'languages':_0x16af97,'i18nInfo':_0x57282f[_0x3bc74d(0x1bb)]?{..._0x57282f[_0x3bc74d(0x1bb)],'langs':_0x16af97['length']?_0x16af97:null}:null};}const listDef={'service':a3_0x352d77(0x1b8),'command':a3_0x352d77(0x1c2),'description':'List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','risk':a3_0x352d77(0x190),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x352d77(0x197),'type':a3_0x352d77(0x1c3),'description':a3_0x352d77(0x19d),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x352d77(0x1c0),'type':a3_0x352d77(0x1ad),'description':a3_0x352d77(0x1a4),'default':![]},{'name':'no-cache','type':a3_0x352d77(0x1ad),'description':a3_0x352d77(0x193),'default':![]},{'name':'include-unpublished','type':a3_0x352d77(0x1ad),'description':'Include\x20unpublished\x20apps\x20for\x20diagnostics','default':![]}],async 'execute'(_0x311174){const _0x5de232=a3_0x352d77,_0xd34fba=_0x311174['str'](_0x5de232(0x197))||_0x311174[_0x5de232(0x18e)]||getEnv()||'production',_0x2298a5=_0x311174[_0x5de232(0x1a6)](_0x5de232(0x1c0)),_0x4813a6=_0x311174[_0x5de232(0x1a6)]('no-cache'),_0x529f66=_0x311174['bool'](_0x5de232(0x1b9)),{readRawConfigWithLayers:_0x249c33,resolveDefaultAppSource:_0x44e760,getLocalAppAliases:_0x58e3c3}=await import(_0x5de232(0x19a)),{getRemoteAppList:_0x5f3d9f}=await import(_0x5de232(0x1a1)),{config:_0x55bbcc,layers:_0x4b5040}=_0x249c33(),_0x10c595=_0x44e760(_0x4b5040),{defaultApp:_0x2940a6}=_0x55bbcc,_0x23b3cc=await _0x5f3d9f({'env':_0xd34fba,'accessKey':_0x311174['accessKey'],'localOnly':_0x2298a5,'noCache':_0x4813a6}),_0x289a78=_0x529f66?_0x23b3cc[_0x5de232(0x1b5)]:filterRuntimeAccessibleApps(_0x23b3cc['items']),_0x37ec26=_0x23b3cc[_0x5de232(0x1b5)]['length']-_0x289a78[_0x5de232(0x19c)],_0xf8fec7=_0x289a78['map'](_0x30185d=>{const _0x581976=_0x5de232;return{'name':_0x30185d[_0x581976(0x1ba)],'appcode':_0x30185d['appCode'],'named':!![],'definedIn':_0x581976(0x195),'isDefault':_0x30185d[_0x581976(0x1ba)]===_0x2940a6,...buildAppProfileListFields(_0xd34fba),...buildRemoteAppI18nFields(_0x30185d),'source':_0x23b3cc[_0x581976(0x19b)],'owner':_0x30185d['appOwnerName']??null,'status':_0x30185d[_0x581976(0x1af)]??null,'cachedAt':_0x23b3cc[_0x581976(0x1b2)]};}),_0x25d389=_0x58e3c3(_0x55bbcc);let _0x288201=0x0;for(const [_0x17aed2,_0x33bf01]of Object['entries'](_0x25d389)){const _0x587f5e=typeof _0x33bf01[_0x5de232(0x1ae)]===_0x5de232(0x1c3)?_0x33bf01[_0x5de232(0x1ae)][_0x5de232(0x1c4)]():'';if(!_0x587f5e)continue;const _0xc7ab88=findAppByCode(_0x23b3cc['items'],_0x587f5e);if(!_0x529f66&&_0xc7ab88&&!isRuntimeAccessibleApp(_0xc7ab88))continue;_0x288201+=0x1,_0xf8fec7[_0x5de232(0x18a)]({'name':_0x17aed2,'appcode':_0x587f5e,'named':!![],'definedIn':_0x5de232(0x1c0),'isDefault':_0x17aed2===_0x2940a6,...buildAppProfileListFields(_0xd34fba),'source':'config','owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0xf8fec7,_0x311174[_0x5de232(0x1be)]);const _0x314b83=_0xf8fec7['find'](_0x3f66a1=>_0x3f66a1[_0x5de232(0x1bd)]===!![]),_0x577d4c=_0x2940a6??_0x314b83?.[_0x5de232(0x196)]??null,_0x270e39={'env':_0xd34fba,'source':_0x23b3cc[_0x5de232(0x19b)],'fetchedAt':_0x23b3cc['fetchedAt'],'cachePath':_0x23b3cc[_0x5de232(0x1ac)],'globalPath':_0x4b5040['globalPath']??null,'projectPath':_0x4b5040[_0x5de232(0x1bc)]??null,'defaultApp':_0x577d4c,'defaultAppSource':_0x2940a6!=null?_0x10c595:null,'localAliasCount':_0x288201,'remoteTotal':_0x23b3cc[_0x5de232(0x1b5)][_0x5de232(0x19c)],'hiddenUnpublishedCount':_0x37ec26,'includeUnpublished':_0x529f66};if(_0xf8fec7['length']===0x0)return{'ok':!![],'data':{'items':_0xf8fec7,'meta':_0x270e39},'message':_0x23b3cc[_0x5de232(0x19b)]===_0x5de232(0x189)?'No\x20cached\x20apps\x20found.':_0x5de232(0x1b3)};return{'ok':!![],'data':{'items':_0xf8fec7,'meta':_0x270e39}};}},pullDef={'service':a3_0x352d77(0x1b8),'command':a3_0x352d77(0x18c),'description':a3_0x352d77(0x1bf),'risk':a3_0x352d77(0x1b4),'confirmationDescription':a3_0x352d77(0x199),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x352d77(0x197),'type':a3_0x352d77(0x1c3),'description':a3_0x352d77(0x1aa),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x352d77(0x1c0),'type':a3_0x352d77(0x1ad),'description':'Read\x20from\x20local\x20cache\x20only','default':![]},{'name':a3_0x352d77(0x1a3),'type':a3_0x352d77(0x1ad),'description':a3_0x352d77(0x193),'default':![]}],async 'execute'(_0x53bf09){const _0x214913=a3_0x352d77,_0x413bb5=_0x53bf09[_0x214913(0x18d)](_0x214913(0x197))||_0x53bf09['envName']||getEnv()||_0x214913(0x1a9),_0x1ff826=_0x53bf09[_0x214913(0x1a6)](_0x214913(0x1c0)),_0x6154aa=_0x53bf09[_0x214913(0x1a6)](_0x214913(0x1a3)),{getRemoteAppList:_0x44de04}=await import(_0x214913(0x1a1)),_0x3420f8=await _0x44de04({'env':_0x413bb5,'accessKey':_0x53bf09['accessKey'],'localOnly':_0x1ff826,'noCache':_0x6154aa});return{'ok':!![],'data':{'total':_0x3420f8[_0x214913(0x1b5)][_0x214913(0x19c)],'env':_0x413bb5,'source':_0x3420f8[_0x214913(0x19b)],'fetchedAt':_0x3420f8[_0x214913(0x1b2)],'cachePath':_0x3420f8[_0x214913(0x1ac)]},'message':_0x3420f8[_0x214913(0x19b)]===_0x214913(0x189)?'Loaded\x20'+_0x3420f8[_0x214913(0x1b5)][_0x214913(0x19c)]+_0x214913(0x1a2)+_0x413bb5+'\x22.':_0x214913(0x1a7)+_0x3420f8[_0x214913(0x1b5)][_0x214913(0x19c)]+_0x214913(0x18f)+_0x413bb5+'\x22.'};}},importDef={'service':a3_0x352d77(0x1b8),'command':'import','description':a3_0x352d77(0x1a8),'risk':'write','confirmationDescription':'将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x3e8e11){return await runAppImport(collectFlags(_0x3e8e11,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];function a3_0x5a26(){const _0x4c4053=['fetchedAt','No\x20apps\x20found\x20on\x20the\x20platform.','write','items','722838MMXhiW','2715776dNgKoO','app','include-unpublished','appName','i18nInfo','projectPath','isCurrent','mergedCli','从平台刷新本地应用缓存','local','1656YfTEFr','list','string','trim','739026SRsGkm','cache','push','map','pull','str','envName','\x20app(s)\x20for\x20env=\x22','read','enableI18n','10BOZiZJ','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','langs','remote','name','env','nonInteractive','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','../../context.js','source','length','Filter\x20by\x20environment\x20(default:\x20current\x20env)','1052992vOFTEw','41804VRHlTK','379278jmkZrb','../../commands/app/remote-source.js','\x20cached\x20app(s)\x20for\x20env=\x22','no-cache','Read\x20app\x20list\x20from\x20local\x20cache\x20only','type','bool','Refreshed\x20app\x20cache\x20with\x20','从\x20.rabetbase.json\x20文件导入默认应用选择','production','Target\x20environment\x20(default:\x20current\x20env)','1965qVjmEo','cachePath','boolean','appcode','appPublishStatus','30bknDHZ','filter'];a3_0x5a26=function(){return _0x4c4053;};return a3_0x5a26();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x53add,_0x2bb1ca){const _0x2ed415=a4_0x3ba7,_0x3a939c=_0x53add();while(!![]){try{const _0x436dbf=parseInt(_0x2ed415(0x1bd))/0x1+parseInt(_0x2ed415(0x1b7))/0x2+parseInt(_0x2ed415(0x1b4))/0x3+parseInt(_0x2ed415(0x1bc))/0x4+parseInt(_0x2ed415(0x1b9))/0x5*(parseInt(_0x2ed415(0x1c7))/0x6)+-parseInt(_0x2ed415(0x1bf))/0x7+-parseInt(_0x2ed415(0x1c8))/0x8*(parseInt(_0x2ed415(0x1c0))/0x9);if(_0x436dbf===_0x2bb1ca)break;else _0x3a939c['push'](_0x3a939c['shift']());}catch(_0x1b9b4f){_0x3a939c['push'](_0x3a939c['shift']());}}}(a4_0x2152,0x34481));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';function a4_0x3ba7(_0x19444a,_0x54e7a5){_0x19444a=_0x19444a-0x1b4;const _0x215295=a4_0x2152();let _0x3ba781=_0x215295[_0x19444a];return _0x3ba781;}import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x43e19a){const _0x16e15b=a4_0x3ba7;if(typeof _0x43e19a!==_0x16e15b(0x1c1))return null;const _0x38af35=_0x43e19a[_0x16e15b(0x1c5)]();return _0x38af35?_0x38af35[_0x16e15b(0x1b5)]():null;}function a4_0x2152(){const _0x443a4e=['string','Current\x20status:\x20','validation','UNKNOWN','trim','appName','1115502yZOLoB','8ceJYoG','918309UqMKlj','toUpperCase','appCode','118296XcHAXm','find','5IDKymG','App\x20','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','989784CaCoqj','77262DsRyiN','filter','66115mGuEju','5870574BZlogI'];a4_0x2152=function(){return _0x443a4e;};return a4_0x2152();}export function isRuntimeAccessibleApp(_0x1bbd28){return normalizeAppPublishStatus(_0x1bbd28['appPublishStatus'])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x3aaee4){const _0xbd3f2c=a4_0x3ba7;return _0x3aaee4[_0xbd3f2c(0x1be)](isRuntimeAccessibleApp);}export function findAppByName(_0x9d1136,_0x1dc510){const _0x12487c=a4_0x3ba7;return _0x9d1136[_0x12487c(0x1b8)](_0x4759ed=>_0x4759ed[_0x12487c(0x1c6)]===_0x1dc510);}export function findAppByCode(_0x23af1b,_0x5a7348){const _0x36647b=a4_0x3ba7,_0x19e51d=_0x5a7348[_0x36647b(0x1c5)]();if(!_0x19e51d)return undefined;return _0x23af1b[_0x36647b(0x1b8)](_0xbcb6f3=>_0xbcb6f3[_0x36647b(0x1b6)]?.['trim']()===_0x19e51d);}export function runtimeInaccessibleAppError(_0x157cc3,_0x3b99e4){const _0x11c985=a4_0x3ba7,_0x43c77c=normalizeAppPublishStatus(_0x157cc3['appPublishStatus'])??_0x11c985(0x1c4);return CliErrors[_0x11c985(0x1c3)](_0x11c985(0x1ba)+_0x3b99e4+_0x11c985(0x1bb),_0x11c985(0x1c2)+_0x43c77c+'.\x20Publish\x20the\x20app\x20before\x20using\x20'+CLI_BIN_NAME+'\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x317d85,_0x5a3f11){const _0x558dae=a5_0x5164,_0x515488=_0x317d85();while(!![]){try{const _0x20ecb1=parseInt(_0x558dae(0x1f3))/0x1+parseInt(_0x558dae(0x1fc))/0x2+-parseInt(_0x558dae(0x1fa))/0x3+parseInt(_0x558dae(0x1f8))/0x4+parseInt(_0x558dae(0x1fb))/0x5+-parseInt(_0x558dae(0x1f1))/0x6*(parseInt(_0x558dae(0x1fd))/0x7)+-parseInt(_0x558dae(0x1f4))/0x8;if(_0x20ecb1===_0x5a3f11)break;else _0x515488['push'](_0x515488['shift']());}catch(_0x1fd13c){_0x515488['push'](_0x515488['shift']());}}}(a5_0x5235,0xda516));import{fileURLToPath}from'url';function a5_0x5235(){const _0x49d4f0=['2857898nzvPCk','7147yYovaa','tableData','3630JXcrGr','success','1382981eUJqCj','25784784AMKtll','errorCode','../../../mock/app-list.json','utf-8','5710176WtPvML','parse','1193475cKNUgw','4466920lcjFtt'];a5_0x5235=function(){return _0x49d4f0;};return a5_0x5235();}import{dirname,join}from'path';function a5_0x5164(_0x10c012,_0x4a337a){_0x10c012=_0x10c012-0x1f0;const _0x523550=a5_0x5235();let _0x516459=_0x523550[_0x10c012];return _0x516459;}import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function loadMockAppList(){const _0x230fb1=a5_0x5164,_0x3ef5c9=join(__dirname,_0x230fb1(0x1f6)),_0x58b788=readFileSync(_0x3ef5c9,_0x230fb1(0x1f7));return JSON[_0x230fb1(0x1f9)](_0x58b788);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x371e5f=a5_0x5164,_0x3f10ec=getMockAppList();if(!_0x3f10ec[_0x371e5f(0x1f2)])throw new Error('Mock\x20API\x20error:\x20'+_0x3f10ec['errorMsg']+'\x20('+_0x3f10ec[_0x371e5f(0x1f5)]+')');return _0x3f10ec['data'][_0x371e5f(0x1f0)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x55ebc2,_0xf3c6d8){const _0x4e59ad=a6_0x2e3b,_0x43ab4a=_0x55ebc2();while(!![]){try{const _0x19f863=parseInt(_0x4e59ad(0x1cb))/0x1+parseInt(_0x4e59ad(0x1d0))/0x2*(-parseInt(_0x4e59ad(0x1d7))/0x3)+-parseInt(_0x4e59ad(0x1c9))/0x4+parseInt(_0x4e59ad(0x1cc))/0x5+parseInt(_0x4e59ad(0x1d6))/0x6*(parseInt(_0x4e59ad(0x1c7))/0x7)+parseInt(_0x4e59ad(0x1d2))/0x8+-parseInt(_0x4e59ad(0x1ce))/0x9*(-parseInt(_0x4e59ad(0x1cf))/0xa);if(_0x19f863===_0xf3c6d8)break;else _0x43ab4a['push'](_0x43ab4a['shift']());}catch(_0x23f367){_0x43ab4a['push'](_0x43ab4a['shift']());}}}(a6_0x2e58,0x34993));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';function a6_0x2e58(){const _0x21cb50=['fetchedAt','212118cFyilZ','1298790SnHWPo','cache','18WYKePG','124390laYLUL','9232tRDzIH','items','981560dydjAB','remote','toISOString','trim','6SaiUCS','216bUotPM','1173347HNgsDW','toLowerCase','957100jcfTJF'];a6_0x2e58=function(){return _0x21cb50;};return a6_0x2e58();}function a6_0x2e3b(_0x227a25,_0x5c789e){_0x227a25=_0x227a25-0x1c7;const _0x2e58e0=a6_0x2e58();let _0x2e3bd3=_0x2e58e0[_0x227a25];return _0x2e3bd3;}export function shouldUseMockRemoteApps(){const _0x2672f0=a6_0x2e3b,_0x43abf0=(productEnv('APP_LIST_SOURCE')||'')['trim']()[_0x2672f0(0x1c8)]();return _0x43abf0==='mock';}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x2e5e71){const _0x4a5d47=a6_0x2e3b,{env:_0x2a4f9f,accessKey:_0x71a8fc,localOnly:localOnly=![],noCache:noCache=![]}=_0x2e5e71,_0xfba0da=readCachedAppList(_0x2a4f9f,_0x71a8fc),_0x486e44=_0x71a8fc?.[_0x4a5d47(0x1d5)]()?getAppCacheFilePath(_0x2a4f9f,_0x71a8fc):null;if(localOnly)return{'items':_0xfba0da?.[_0x4a5d47(0x1d1)]??[],'source':_0x4a5d47(0x1cd),'fetchedAt':_0xfba0da?.['fetchedAt']??null,'cachePath':_0x486e44};try{const _0x1ec489=await getRemoteAppItems(),_0x4c314d=shouldUseMockRemoteApps()?'mock':_0x4a5d47(0x1d3),_0x48cd24=new Date()[_0x4a5d47(0x1d4)](),_0x1a416f=_0x71a8fc?.[_0x4a5d47(0x1d5)]()?writeCachedAppList(_0x2a4f9f,_0x71a8fc,{'env':_0x2a4f9f,'fetchedAt':_0x48cd24,'source':_0x4c314d,'items':_0x1ec489}):null;return{'items':_0x1ec489,'source':_0x4c314d,'fetchedAt':_0x48cd24,'cachePath':_0x1a416f};}catch(_0x16626b){if(!noCache&&_0xfba0da)return{'items':_0xfba0da[_0x4a5d47(0x1d1)],'source':_0x4a5d47(0x1cd),'fetchedAt':_0xfba0da[_0x4a5d47(0x1ca)],'cachePath':_0x486e44};throw _0x16626b;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x14a5e8,_0x4eaed4){const _0x171952=a7_0x23ff,_0x4348c8=_0x14a5e8();while(!![]){try{const _0x1ec42b=parseInt(_0x171952(0x11d))/0x1+parseInt(_0x171952(0x11b))/0x2*(-parseInt(_0x171952(0x115))/0x3)+-parseInt(_0x171952(0x10f))/0x4+parseInt(_0x171952(0x113))/0x5*(-parseInt(_0x171952(0x120))/0x6)+-parseInt(_0x171952(0x119))/0x7*(-parseInt(_0x171952(0x11a))/0x8)+parseInt(_0x171952(0x11c))/0x9+-parseInt(_0x171952(0x114))/0xa*(-parseInt(_0x171952(0x116))/0xb);if(_0x1ec42b===_0x4eaed4)break;else _0x4348c8['push'](_0x4348c8['shift']());}catch(_0x3e2b07){_0x4348c8['push'](_0x4348c8['shift']());}}}(a7_0x2f20,0xaa3f6));function a7_0x2f20(){const _0x507f17=['1738EzDEcT','appCode','defaultApp','1226673ryjwWd','48eZRBoN','48754nIgWmI','3908691qECwrh','695338JPdEUf','appcode','find','16068vHChfY','local','trim','definedIn','4310160yqCCpn','isCurrent','currentApp','named','1405zoJWYQ','103690nsKrXW','159TpXZTF'];a7_0x2f20=function(){return _0x507f17;};return a7_0x2f20();}function a7_0x23ff(_0x4cea03,_0x572d85){_0x4cea03=_0x4cea03-0x10e;const _0x2f2015=a7_0x2f20();let _0x23ff70=_0x2f2015[_0x4cea03];return _0x23ff70;}export function enrichAppListItemsWithMergedSelection(_0xbdbac3,_0x46e270){const _0x7dc3b3=a7_0x23ff;if(!_0x46e270)return;const _0x3c1173=!!(_0x46e270[_0x7dc3b3(0x111)]??_0x46e270[_0x7dc3b3(0x118)]);for(const _0x2f186c of _0xbdbac3){_0x2f186c[_0x7dc3b3(0x110)]=![];}const _0x20ff5a=_0x46e270[_0x7dc3b3(0x117)]!=null?String(_0x46e270['appCode'])[_0x7dc3b3(0x122)]():'';if(_0x3c1173){const _0x5b0c66=_0x46e270[_0x7dc3b3(0x111)]??_0x46e270[_0x7dc3b3(0x118)];if(_0x5b0c66){const _0x214013=_0xbdbac3[_0x7dc3b3(0x11f)](_0x306194=>_0x306194[_0x7dc3b3(0x112)]===!![]&&_0x306194['name']===_0x5b0c66&&_0x306194[_0x7dc3b3(0x10e)]===_0x7dc3b3(0x121)),_0x16b85d=_0x214013??_0xbdbac3[_0x7dc3b3(0x11f)](_0x483446=>_0x483446['named']===!![]&&_0x483446['name']===_0x5b0c66);if(_0x16b85d){const _0x23a8c5=String(_0x16b85d['appcode']??'')[_0x7dc3b3(0x122)]();if(!_0x20ff5a||_0x23a8c5===_0x20ff5a){_0x16b85d[_0x7dc3b3(0x110)]=!![];return;}}}if(_0x20ff5a){const _0x43c250=_0xbdbac3['find'](_0x32bc48=>String(_0x32bc48['appcode']??'')[_0x7dc3b3(0x122)]()===_0x20ff5a);_0x43c250&&(_0x43c250[_0x7dc3b3(0x110)]=!![]);}return;}if(!_0x20ff5a)return;for(const _0x831f35 of _0xbdbac3){String(_0x831f35[_0x7dc3b3(0x11e)]??'')[_0x7dc3b3(0x122)]()===_0x20ff5a&&(_0x831f35[_0x7dc3b3(0x110)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a8_0x253ad1=a8_0x1155;(function(_0x1e276e,_0x26f802){const _0x59cd11=a8_0x1155,_0x5c1adc=_0x1e276e();while(!![]){try{const _0x2b3a52=-parseInt(_0x59cd11(0x1ef))/0x1*(parseInt(_0x59cd11(0x1f2))/0x2)+parseInt(_0x59cd11(0x1df))/0x3*(-parseInt(_0x59cd11(0x1eb))/0x4)+parseInt(_0x59cd11(0x1e4))/0x5*(parseInt(_0x59cd11(0x1e6))/0x6)+-parseInt(_0x59cd11(0x1d9))/0x7*(parseInt(_0x59cd11(0x1ee))/0x8)+parseInt(_0x59cd11(0x1de))/0x9*(-parseInt(_0x59cd11(0x1ed))/0xa)+parseInt(_0x59cd11(0x1dd))/0xb+parseInt(_0x59cd11(0x1ea))/0xc*(parseInt(_0x59cd11(0x1db))/0xd);if(_0x2b3a52===_0x26f802)break;else _0x5c1adc['push'](_0x5c1adc['shift']());}catch(_0x316280){_0x5c1adc['push'](_0x5c1adc['shift']());}}}(a8_0x2a79,0xe5718));function a8_0x1155(_0x2295c3,_0x4b1d1d){_0x2295c3=_0x2295c3-0x1d7;const _0x2a79a0=a8_0x2a79();let _0x11551d=_0x2a79a0[_0x2295c3];return _0x11551d;}import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a8_0x2a79(){const _0x21756=['12167270KOJFPg','24AJIXfj','36889AlDpWM','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','94pbZJLd','Usage:\x20','Missing\x20app-config\x20key.','appCode','2338798lNULTY','validation','67106XpJFWe',',\x20appCode=','12881484ePqWya','9uTUJAg','7623HEZawJ','args','apiError','get','App\x20config\x20key','8653285AEPSRW','key','6RsuNbj','read','trim','\x20app-config\x20get\x20<key>','4776GkvtDo','100PnKCud','Unable\x20to\x20get\x20app-config\x20value:\x20key='];a8_0x2a79=function(){return _0x21756;};return a8_0x2a79();}export const appConfigGet={'service':'app-config','command':a8_0x253ad1(0x1e2),'description':a8_0x253ad1(0x1f1),'risk':a8_0x253ad1(0x1e7),'args':[{'name':a8_0x253ad1(0x1e5),'description':a8_0x253ad1(0x1e3),'required':!![]}],'flags':[],async 'execute'(_0x207101){const _0x1733fa=a8_0x253ad1,_0x4f764b=_0x207101[_0x1733fa(0x1e0)][0x0]?.[_0x1733fa(0x1e8)]();if(!_0x4f764b)throw CliErrors[_0x1733fa(0x1da)](_0x1733fa(0x1d7),_0x1733fa(0x1f3)+CLI_BIN_NAME+_0x1733fa(0x1e9));try{const _0x3233fb=await getRuntimeAppConfigByKey(_0x207101[_0x1733fa(0x1d8)],_0x4f764b);return{'ok':!![],'data':_0x3233fb};}catch{throw CliErrors[_0x1733fa(0x1e1)](_0x1733fa(0x1ec)+_0x4f764b+_0x1733fa(0x1dc)+_0x207101[_0x1733fa(0x1d8)],_0x1733fa(0x1f0));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x23afa3,_0xf93dda){const _0x13da42=a9_0x1967,_0x4b0be8=_0x23afa3();while(!![]){try{const _0x46e4b0=-parseInt(_0x13da42(0xe9))/0x1+parseInt(_0x13da42(0xed))/0x2*(parseInt(_0x13da42(0xec))/0x3)+parseInt(_0x13da42(0xe7))/0x4+parseInt(_0x13da42(0xe5))/0x5*(-parseInt(_0x13da42(0xe4))/0x6)+-parseInt(_0x13da42(0xea))/0x7*(parseInt(_0x13da42(0xe6))/0x8)+parseInt(_0x13da42(0xee))/0x9*(-parseInt(_0x13da42(0xe8))/0xa)+-parseInt(_0x13da42(0xeb))/0xb;if(_0x46e4b0===_0xf93dda)break;else _0x4b0be8['push'](_0x4b0be8['shift']());}catch(_0x500c50){_0x4b0be8['push'](_0x4b0be8['shift']());}}}(a9_0x5758,0xa6b43));import{appConfigGet}from'../../commands/app-config/get.js';function a9_0x1967(_0x52043,_0x39d956){_0x52043=_0x52043-0xe4;const _0x5758ac=a9_0x5758();let _0x19679c=_0x5758ac[_0x52043];return _0x19679c;}function a9_0x5758(){const _0x1714e2=['425810PIWxJe','20454tuNQoW','314AZDyYM','269307SrKsrI','36fqfHRB','227510LKwejP','8248CoxkIL','4790764lHJhWr','230vCwfEz','384302bQjHcA','1365vZLzhz'];a9_0x5758=function(){return _0x1714e2;};return a9_0x5758();}export const appConfigDefinitions=[appConfigGet];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x298ce6=a10_0x4c3e;(function(_0x26c5ac,_0x2eb8c3){const _0x4021f0=a10_0x4c3e,_0x32504e=_0x26c5ac();while(!![]){try{const _0x4a9e06=parseInt(_0x4021f0(0x16b))/0x1+parseInt(_0x4021f0(0x158))/0x2+-parseInt(_0x4021f0(0x18d))/0x3*(parseInt(_0x4021f0(0x190))/0x4)+-parseInt(_0x4021f0(0x179))/0x5+parseInt(_0x4021f0(0x1a2))/0x6*(parseInt(_0x4021f0(0x16f))/0x7)+-parseInt(_0x4021f0(0x168))/0x8*(parseInt(_0x4021f0(0x178))/0x9)+parseInt(_0x4021f0(0x18e))/0xa*(parseInt(_0x4021f0(0x16e))/0xb);if(_0x4a9e06===_0x2eb8c3)break;else _0x32504e['push'](_0x32504e['shift']());}catch(_0x505147){_0x32504e['push'](_0x32504e['shift']());}}}(a10_0xf798,0x674ef));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x298ce6(0x182),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x298ce6(0x195),'react-dom',a10_0x298ce6(0x166),a10_0x298ce6(0x17f),a10_0x298ce6(0x164),a10_0x298ce6(0x18b)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x298ce6(0x17e)](',\x20');function a10_0x4c3e(_0x13baf6,_0x308edb){_0x13baf6=_0x13baf6-0x152;const _0xf798a5=a10_0xf798();let _0x4c3e7c=_0xf798a5[_0x13baf6];return _0x4c3e7c;}const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x298ce6(0x199),'type':a10_0x298ce6(0x171),'required':!![],'description':'Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file'},ARTIFACT_NAME_FLAG={'name':a10_0x298ce6(0x1a6),'type':a10_0x298ce6(0x171),'description':a10_0x298ce6(0x18f)},METADATA_FLAG={'name':a10_0x298ce6(0x17c),'type':a10_0x298ce6(0x171),'description':a10_0x298ce6(0x15d)};function isPlainObject(_0x22eed3){const _0x11631f=a10_0x298ce6;return typeof _0x22eed3===_0x11631f(0x159)&&_0x22eed3!==null&&!Array[_0x11631f(0x19a)](_0x22eed3);}function readSourceFile(_0x53c116){const _0x692ded=a10_0x298ce6;if(!_0x53c116)throw CliErrors['validation'](_0x692ded(0x180));if(!existsSync(_0x53c116))throw CliErrors[_0x692ded(0x155)](_0x692ded(0x157)+_0x53c116);if(!statSync(_0x53c116)[_0x692ded(0x16d)]())throw CliErrors['validation'](_0x692ded(0x160)+_0x53c116);const _0x4fb37a=readFileSync(_0x53c116,_0x692ded(0x19d));return validateReactModuleSource(_0x4fb37a),_0x4fb37a;}function parseMetadata(_0x91d831){const _0x3d8ba9=a10_0x298ce6;if(!_0x91d831)return undefined;let _0x546207;try{_0x546207=JSON[_0x3d8ba9(0x153)](_0x91d831);}catch{throw CliErrors['validation'](_0x3d8ba9(0x16c)+_0x91d831);}if(!isPlainObject(_0x546207))throw CliErrors[_0x3d8ba9(0x155)](_0x3d8ba9(0x165));const _0x2caef5={..._0x546207};return delete _0x2caef5[_0x3d8ba9(0x1a8)],_0x2caef5;}function getPackageName(_0x3a6856){const _0x100e8c=a10_0x298ce6;if(_0x3a6856[_0x100e8c(0x1a1)]('@')){const [_0x333909,_0x54b40a]=_0x3a6856[_0x100e8c(0x15a)]('/');return _0x333909&&_0x54b40a?_0x333909+'/'+_0x54b40a:_0x3a6856;}return _0x3a6856[_0x100e8c(0x15a)]('/')[0x0]||_0x3a6856;}function a10_0xf798(){const _0x17761b=['isFile','2113573ZGuIgv','101465InsIpc','createTime','string','str','update','artifact','Created\x20Artifact\x20','appCode','updateTime','29583XmZNag','746260eKEEtv','includes','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','metadata','/update','join','dayjs','File\x20path\x20is\x20required.','/client/artifact/create','react_module','lastIndex','POST','trim','length','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','add','description','Updated\x20Artifact\x20','@ant-design/icons','artifactType','39yJrfgk','20DjEgtf','Artifact\x20display\x20name','216148FAhwYF','num','favorite','.\x20Unsupported:\x20','number','react','Show\x20one\x20Artifact\x20by\x20id','filter','map','file','isArray','react_module\x20imports\x20are\x20limited\x20to:\x20','some','utf8','bool','write','boolean','startsWith','138ndabNo','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','Preview:\x20create\x20react_module\x20Artifact','deleted','name','test','compiledContent','build','parse','Artifact\x20source\x20file\x20is\x20blank.','validation','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','File\x20not\x20found:\x20','1258868yQsHNE','object','split','data','list','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','content','source','File\x20is\x20not\x20a\x20regular\x20file:\x20','Optional\x20favorite-state\x20filter','List\x20current-app\x20react_module\x20Artifacts','/client/artifact/','antd','--metadata\x20must\x20be\x20a\x20JSON\x20object.','lodash','create','1816RLRIjv','flag','read','673928eWBNpg','Invalid\x20JSON\x20for\x20--metadata:\x20'];a10_0xf798=function(){return _0x17761b;};return a10_0xf798();}function validateAllowedImports(_0x503675){const _0x14d729=a10_0x298ce6,_0x34a061=new Set();for(const _0x163090 of IMPORT_SOURCE_PATTERNS){_0x163090[_0x14d729(0x183)]=0x0;let _0x3e96fd;while((_0x3e96fd=_0x163090['exec'](_0x503675))!==null){const _0x3a909c=_0x3e96fd[0x1]?.[_0x14d729(0x185)]();_0x3a909c&&_0x34a061[_0x14d729(0x188)](_0x3a909c);}}const _0x2e27dc=[..._0x34a061]['map'](getPackageName)[_0x14d729(0x197)](_0x16a531=>!ALLOWED_REACT_MODULE_IMPORTS[_0x14d729(0x17a)](_0x16a531));if(_0x2e27dc[_0x14d729(0x186)]>0x0)throw CliErrors[_0x14d729(0x155)](_0x14d729(0x19b)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x14d729(0x193)+[...new Set(_0x2e27dc)][_0x14d729(0x17e)](',\x20'));}export function validateReactModuleSource(_0x593cf4){const _0x3d936b=a10_0x298ce6;if(!_0x593cf4[_0x3d936b(0x185)]())throw CliErrors[_0x3d936b(0x155)](_0x3d936b(0x154));if(PAGE_LEVEL_PATTERNS[_0x3d936b(0x19c)](_0x3846d0=>_0x3846d0[_0x3d936b(0x1a7)](_0x593cf4)))throw CliErrors[_0x3d936b(0x155)]('react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.');validateAllowedImports(_0x593cf4);}function buildArtifactInput(_0xaf5e3){const _0x267d06=a10_0x298ce6,_0x3a9b18=readSourceFile(_0xaf5e3[_0x267d06(0x172)](_0x267d06(0x199))),_0x1d472c=_0xaf5e3[_0x267d06(0x172)](_0x267d06(0x1a6))[_0x267d06(0x185)](),_0x3cc33b=parseMetadata(_0xaf5e3[_0x267d06(0x172)]('metadata'));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x1d472c?{'name':_0x1d472c}:{},'content':_0x3a9b18,..._0x3cc33b?{'metadata':_0x3cc33b}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x26d65a){const _0x4e7a1a=a10_0x298ce6;return{'id':_0x26d65a['id'],'name':_0x26d65a['name'],'artifactType':_0x26d65a['artifactType'],'source':_0x26d65a[_0x4e7a1a(0x15f)],'favorite':_0x26d65a[_0x4e7a1a(0x192)],'deleted':_0x26d65a[_0x4e7a1a(0x1a5)],'createTime':_0x26d65a[_0x4e7a1a(0x170)],'updateTime':_0x26d65a[_0x4e7a1a(0x177)]};}function detailArtifact(_0x1c2f91){const _0x45b371=a10_0x298ce6;return{'id':_0x1c2f91['id'],'appCode':_0x1c2f91[_0x45b371(0x176)],'name':_0x1c2f91['name'],'artifactType':_0x1c2f91[_0x45b371(0x18c)],'source':_0x1c2f91[_0x45b371(0x15f)],'favorite':_0x1c2f91[_0x45b371(0x192)],'deleted':_0x1c2f91[_0x45b371(0x1a5)],'content':_0x1c2f91[_0x45b371(0x15e)]??'','compiledContent':_0x1c2f91[_0x45b371(0x1a8)],'metadata':_0x1c2f91[_0x45b371(0x17c)]??{},'createTime':_0x1c2f91[_0x45b371(0x170)],'updateTime':_0x1c2f91[_0x45b371(0x177)]};}function readFavoriteFlag(_0x1fb2d8){const _0x3c7110=a10_0x298ce6,_0x7e05bd=_0x1fb2d8[_0x3c7110(0x169)](_0x3c7110(0x192));return _0x7e05bd===undefined||_0x7e05bd===null||_0x7e05bd===''?undefined:_0x1fb2d8[_0x3c7110(0x19e)]('favorite');}const artifactList={'service':a10_0x298ce6(0x174),'command':a10_0x298ce6(0x15c),'description':a10_0x298ce6(0x162),'risk':a10_0x298ce6(0x16a),'flags':[{'name':a10_0x298ce6(0x15f),'type':a10_0x298ce6(0x171),'description':a10_0x298ce6(0x1a3)},{'name':a10_0x298ce6(0x192),'type':a10_0x298ce6(0x1a0),'description':a10_0x298ce6(0x161)},VERBOSE_FLAG],async 'execute'(_0x4fbae4){const _0x645a0d=a10_0x298ce6,_0x5bc4d2=await listRuntimeArtifacts(_0x4fbae4[_0x645a0d(0x176)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x4fbae4[_0x645a0d(0x172)](_0x645a0d(0x15f))?{'source':_0x4fbae4[_0x645a0d(0x172)](_0x645a0d(0x15f))}:{},...readFavoriteFlag(_0x4fbae4)!==undefined?{'favorite':readFavoriteFlag(_0x4fbae4)}:{}});return{'ok':!![],'data':{'total':_0x5bc4d2[_0x645a0d(0x186)],'items':_0x4fbae4['bool']('verbose')?_0x5bc4d2:_0x5bc4d2[_0x645a0d(0x198)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x298ce6(0x174),'command':'detail','description':a10_0x298ce6(0x196),'risk':a10_0x298ce6(0x16a),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'}],async 'execute'(_0x4551bf){const _0x26adcd=a10_0x298ce6,_0x536e45=await getRuntimeArtifact(_0x4551bf[_0x26adcd(0x191)]('id'),_0x4551bf['appCode']);return{'ok':!![],'data':detailArtifact(_0x536e45)};}},artifactCreate={'service':'artifact','command':a10_0x298ce6(0x167),'description':a10_0x298ce6(0x187),'risk':a10_0x298ce6(0x19f),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2c88a7){const _0x3ec0d8=a10_0x298ce6,_0x16e60b=buildArtifactInput(_0x2c88a7),_0x33c973=await createRuntimeArtifact(_0x2c88a7[_0x3ec0d8(0x176)],_0x16e60b);return{'ok':!![],'data':detailArtifact(_0x33c973),'message':_0x3ec0d8(0x175)+_0x33c973['id']+(_0x33c973[_0x3ec0d8(0x1a6)]?'\x20('+_0x33c973[_0x3ec0d8(0x1a6)]+')':'')};},async 'dryRun'(_0x36f73c){const _0x4e1543=a10_0x298ce6,_0x11b151=buildArtifactInput(_0x36f73c);return dryRun(_0x4e1543(0x184),_0x4e1543(0x181))['body']({'appCode':_0x36f73c['appCode'],..._0x11b151})[_0x4e1543(0x189)](_0x4e1543(0x1a4))[_0x4e1543(0x152)]();},'writeEventSubject'(_0x554565){const _0x3f2c89=a10_0x298ce6,_0x3bcb72=_0x554565['data']?.['id'];if(typeof _0x3bcb72!==_0x3f2c89(0x171)&&typeof _0x3bcb72!==_0x3f2c89(0x194))return undefined;return{'kind':_0x3f2c89(0x174),'id':String(_0x3bcb72),'action':'create'};}},artifactUpdate={'service':a10_0x298ce6(0x174),'command':a10_0x298ce6(0x173),'description':a10_0x298ce6(0x17b),'risk':a10_0x298ce6(0x19f),'confirmationDescription':a10_0x298ce6(0x156),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0xc535af){const _0x52d0b0=a10_0x298ce6,_0x5a1788=_0xc535af[_0x52d0b0(0x191)]('id'),_0x46861f=buildArtifactInput(_0xc535af),_0x1bf9ef=await updateRuntimeArtifact(_0x5a1788,_0xc535af[_0x52d0b0(0x176)],_0x46861f);return{'ok':!![],'data':detailArtifact(_0x1bf9ef),'message':_0x52d0b0(0x18a)+_0x1bf9ef['id']+(_0x1bf9ef['name']?'\x20('+_0x1bf9ef[_0x52d0b0(0x1a6)]+')':'')};},async 'dryRun'(_0x4e5cd7){const _0x2159d0=a10_0x298ce6,_0x3df950=_0x4e5cd7[_0x2159d0(0x191)]('id'),_0x19ac5f=buildArtifactInput(_0x4e5cd7);return dryRun(_0x2159d0(0x184),_0x2159d0(0x163)+_0x3df950+_0x2159d0(0x17d))['body']({'appCode':_0x4e5cd7[_0x2159d0(0x176)],..._0x19ac5f})[_0x2159d0(0x189)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x3df950)[_0x2159d0(0x152)]();},'writeEventSubject'(_0x370935){const _0x472497=a10_0x298ce6,_0x5efff8=_0x370935[_0x472497(0x15b)]?.['id'];if(typeof _0x5efff8!==_0x472497(0x171)&&typeof _0x5efff8!==_0x472497(0x194))return undefined;return{'kind':_0x472497(0x174),'id':String(_0x5efff8),'action':_0x472497(0x173)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x5d1f4f=a10_0x2218;(function(_0x1496ee,_0x17f781){const _0x3154c4=a10_0x2218,_0x5d1eab=_0x1496ee();while(!![]){try{const _0xe87d21=-parseInt(_0x3154c4(0x11d))/0x1+parseInt(_0x3154c4(0x115))/0x2*(parseInt(_0x3154c4(0x106))/0x3)+parseInt(_0x3154c4(0x137))/0x4+-parseInt(_0x3154c4(0x13d))/0x5+-parseInt(_0x3154c4(0x102))/0x6*(parseInt(_0x3154c4(0x107))/0x7)+-parseInt(_0x3154c4(0x104))/0x8*(-parseInt(_0x3154c4(0xf5))/0x9)+parseInt(_0x3154c4(0xfe))/0xa*(parseInt(_0x3154c4(0x120))/0xb);if(_0xe87d21===_0x17f781)break;else _0x5d1eab['push'](_0x5d1eab['shift']());}catch(_0x42cadf){_0x5d1eab['push'](_0x5d1eab['shift']());}}}(a10_0x28bf,0xe21dd));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x5d1f4f(0x10e),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x5d1f4f(0x118),a10_0x5d1f4f(0x132),a10_0x5d1f4f(0x12a),a10_0x5d1f4f(0x134),a10_0x5d1f4f(0xf7),a10_0x5d1f4f(0x126)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');function a10_0x28bf(){const _0x355dec=['artifact','deleted','test','trim','File\x20not\x20found:\x20','str','/client/artifact/','File\x20path\x20is\x20required.','updateTime','appCode','9UpbPPR','File\x20is\x20not\x20a\x20regular\x20file:\x20','antd','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','split','utf8','validation','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','source','342730OsjBzd','isFile','parse','filter','42hRMhzF','description','6794488JIwlSl','Invalid\x20JSON\x20for\x20--metadata:\x20','4451115Bspral','1584996AVUMJH','exec','create','write','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','/client/artifact/create','Show\x20one\x20Artifact\x20by\x20id','react_module','content','data','--metadata\x20must\x20be\x20a\x20JSON\x20object.','Preview:\x20update\x20react_module\x20Artifact\x20','read','favorite','2CmcuqM','Artifact\x20ID','boolean','react','file','num','react_module\x20imports\x20are\x20limited\x20to:\x20','bool','1490826AMdrIJ','build','Artifact\x20display\x20name','572yXynKV','string','map','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','Updated\x20Artifact\x20','name','@ant-design/icons','metadata','compiledContent','lastIndex','lodash','.\x20Unsupported:\x20','Optional\x20favorite-state\x20filter','artifactType','number','object','update','POST','react-dom','createTime','dayjs','Created\x20Artifact\x20','body','4999488tTtpfL','isArray','join','flag','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','length','6815445eLYMGi','list','/update'];a10_0x28bf=function(){return _0x355dec;};return a10_0x28bf();}const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x5d1f4f(0x119),'type':a10_0x5d1f4f(0x121),'required':!![],'description':a10_0x5d1f4f(0xfc)},ARTIFACT_NAME_FLAG={'name':a10_0x5d1f4f(0x125),'type':'string','description':a10_0x5d1f4f(0x11f)},METADATA_FLAG={'name':a10_0x5d1f4f(0x127),'type':a10_0x5d1f4f(0x121),'description':a10_0x5d1f4f(0x13b)};function isPlainObject(_0x110010){const _0x546e13=a10_0x5d1f4f;return typeof _0x110010===_0x546e13(0x12f)&&_0x110010!==null&&!Array[_0x546e13(0x138)](_0x110010);}function a10_0x2218(_0xa9c829,_0x3bc75a){_0xa9c829=_0xa9c829-0xec;const _0x28bf76=a10_0x28bf();let _0x221880=_0x28bf76[_0xa9c829];return _0x221880;}function readSourceFile(_0x1ef5df){const _0x5b8df1=a10_0x5d1f4f;if(!_0x1ef5df)throw CliErrors[_0x5b8df1(0xfb)](_0x5b8df1(0xf2));if(!existsSync(_0x1ef5df))throw CliErrors[_0x5b8df1(0xfb)](_0x5b8df1(0xef)+_0x1ef5df);if(!statSync(_0x1ef5df)[_0x5b8df1(0xff)]())throw CliErrors[_0x5b8df1(0xfb)](_0x5b8df1(0xf6)+_0x1ef5df);const _0x5e4ed2=readFileSync(_0x1ef5df,_0x5b8df1(0xfa));return validateReactModuleSource(_0x5e4ed2),_0x5e4ed2;}function parseMetadata(_0x1af685){const _0x3f6320=a10_0x5d1f4f;if(!_0x1af685)return undefined;let _0x2c5e9d;try{_0x2c5e9d=JSON[_0x3f6320(0x100)](_0x1af685);}catch{throw CliErrors[_0x3f6320(0xfb)](_0x3f6320(0x105)+_0x1af685);}if(!isPlainObject(_0x2c5e9d))throw CliErrors[_0x3f6320(0xfb)](_0x3f6320(0x111));const _0x46b08c={..._0x2c5e9d};return delete _0x46b08c[_0x3f6320(0x128)],_0x46b08c;}function getPackageName(_0xaa4cff){const _0x1a5baa=a10_0x5d1f4f;if(_0xaa4cff['startsWith']('@')){const [_0x450a28,_0x2716f5]=_0xaa4cff[_0x1a5baa(0xf9)]('/');return _0x450a28&&_0x2716f5?_0x450a28+'/'+_0x2716f5:_0xaa4cff;}return _0xaa4cff[_0x1a5baa(0xf9)]('/')[0x0]||_0xaa4cff;}function validateAllowedImports(_0x4c7787){const _0x583fc4=a10_0x5d1f4f,_0x351241=new Set();for(const _0x5efa21 of IMPORT_SOURCE_PATTERNS){_0x5efa21[_0x583fc4(0x129)]=0x0;let _0x243a5f;while((_0x243a5f=_0x5efa21[_0x583fc4(0x108)](_0x4c7787))!==null){const _0x2f2836=_0x243a5f[0x1]?.[_0x583fc4(0xee)]();_0x2f2836&&_0x351241['add'](_0x2f2836);}}const _0x2d2253=[..._0x351241][_0x583fc4(0x122)](getPackageName)[_0x583fc4(0x101)](_0x62affe=>!ALLOWED_REACT_MODULE_IMPORTS['includes'](_0x62affe));if(_0x2d2253[_0x583fc4(0x13c)]>0x0)throw CliErrors[_0x583fc4(0xfb)](_0x583fc4(0x11b)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x583fc4(0x12b)+[...new Set(_0x2d2253)][_0x583fc4(0x139)](',\x20'));}export function validateReactModuleSource(_0x50b6f0){const _0x148c27=a10_0x5d1f4f;if(!_0x50b6f0[_0x148c27(0xee)]())throw CliErrors[_0x148c27(0xfb)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS['some'](_0xb7b439=>_0xb7b439[_0x148c27(0xed)](_0x50b6f0)))throw CliErrors[_0x148c27(0xfb)](_0x148c27(0x123));validateAllowedImports(_0x50b6f0);}function buildArtifactInput(_0x3ce45a){const _0x160fb7=a10_0x5d1f4f,_0x449822=readSourceFile(_0x3ce45a['str'](_0x160fb7(0x119))),_0x598aab=_0x3ce45a[_0x160fb7(0xf0)]('name')[_0x160fb7(0xee)](),_0x417a87=parseMetadata(_0x3ce45a[_0x160fb7(0xf0)](_0x160fb7(0x127)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x598aab?{'name':_0x598aab}:{},'content':_0x449822,..._0x417a87?{'metadata':_0x417a87}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x21addf){const _0x27a31f=a10_0x5d1f4f;return{'id':_0x21addf['id'],'name':_0x21addf[_0x27a31f(0x125)],'artifactType':_0x21addf[_0x27a31f(0x12d)],'source':_0x21addf[_0x27a31f(0xfd)],'favorite':_0x21addf[_0x27a31f(0x114)],'deleted':_0x21addf['deleted'],'createTime':_0x21addf[_0x27a31f(0x133)],'updateTime':_0x21addf[_0x27a31f(0xf3)]};}function detailArtifact(_0x3cc6ac){const _0x23b7d4=a10_0x5d1f4f;return{'id':_0x3cc6ac['id'],'appCode':_0x3cc6ac[_0x23b7d4(0xf4)],'name':_0x3cc6ac['name'],'artifactType':_0x3cc6ac[_0x23b7d4(0x12d)],'source':_0x3cc6ac[_0x23b7d4(0xfd)],'favorite':_0x3cc6ac[_0x23b7d4(0x114)],'deleted':_0x3cc6ac[_0x23b7d4(0xec)],'content':_0x3cc6ac[_0x23b7d4(0x10f)]??'','compiledContent':_0x3cc6ac[_0x23b7d4(0x128)],'metadata':_0x3cc6ac[_0x23b7d4(0x127)]??{},'createTime':_0x3cc6ac[_0x23b7d4(0x133)],'updateTime':_0x3cc6ac[_0x23b7d4(0xf3)]};}function readFavoriteFlag(_0x5b98a6){const _0x24ff8d=a10_0x5d1f4f,_0xc6d442=_0x5b98a6[_0x24ff8d(0x13a)](_0x24ff8d(0x114));return _0xc6d442===undefined||_0xc6d442===null||_0xc6d442===''?undefined:_0x5b98a6[_0x24ff8d(0x11c)]('favorite');}const artifactList={'service':a10_0x5d1f4f(0x140),'command':a10_0x5d1f4f(0x13e),'description':'List\x20current-app\x20react_module\x20Artifacts','risk':a10_0x5d1f4f(0x113),'flags':[{'name':'source','type':a10_0x5d1f4f(0x121),'description':'Optional\x20source\x20filter,\x20for\x20example\x20AGENT'},{'name':'favorite','type':a10_0x5d1f4f(0x117),'description':a10_0x5d1f4f(0x12c)},VERBOSE_FLAG],async 'execute'(_0x325b36){const _0x53bdef=a10_0x5d1f4f,_0x312627=await listRuntimeArtifacts(_0x325b36[_0x53bdef(0xf4)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x325b36[_0x53bdef(0xf0)]('source')?{'source':_0x325b36['str']('source')}:{},...readFavoriteFlag(_0x325b36)!==undefined?{'favorite':readFavoriteFlag(_0x325b36)}:{}});return{'ok':!![],'data':{'total':_0x312627[_0x53bdef(0x13c)],'items':_0x325b36[_0x53bdef(0x11c)]('verbose')?_0x312627:_0x312627[_0x53bdef(0x122)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x5d1f4f(0x140),'command':'detail','description':a10_0x5d1f4f(0x10d),'risk':a10_0x5d1f4f(0x113),'flags':[{...ID_FLAG,'description':a10_0x5d1f4f(0x116)}],async 'execute'(_0x32cb6c){const _0x30e8b5=a10_0x5d1f4f,_0x52e7a2=await getRuntimeArtifact(_0x32cb6c[_0x30e8b5(0x11a)]('id'),_0x32cb6c['appCode']);return{'ok':!![],'data':detailArtifact(_0x52e7a2)};}},artifactCreate={'service':'artifact','command':a10_0x5d1f4f(0x109),'description':a10_0x5d1f4f(0x10b),'risk':a10_0x5d1f4f(0x10a),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5806ca){const _0x45bb87=a10_0x5d1f4f,_0x5654ca=buildArtifactInput(_0x5806ca),_0x47353d=await createRuntimeArtifact(_0x5806ca['appCode'],_0x5654ca);return{'ok':!![],'data':detailArtifact(_0x47353d),'message':_0x45bb87(0x135)+_0x47353d['id']+(_0x47353d[_0x45bb87(0x125)]?'\x20('+_0x47353d[_0x45bb87(0x125)]+')':'')};},async 'dryRun'(_0x5919ba){const _0xdf59a1=a10_0x5d1f4f,_0x783405=buildArtifactInput(_0x5919ba);return dryRun(_0xdf59a1(0x131),_0xdf59a1(0x10c))[_0xdf59a1(0x136)]({'appCode':_0x5919ba[_0xdf59a1(0xf4)],..._0x783405})[_0xdf59a1(0x103)]('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x37efb6){const _0x520a3d=a10_0x5d1f4f,_0x3f8fc4=_0x37efb6['data']?.['id'];if(typeof _0x3f8fc4!==_0x520a3d(0x121)&&typeof _0x3f8fc4!=='number')return undefined;return{'kind':_0x520a3d(0x140),'id':String(_0x3f8fc4),'action':_0x520a3d(0x109)};}},artifactUpdate={'service':a10_0x5d1f4f(0x140),'command':a10_0x5d1f4f(0x130),'description':a10_0x5d1f4f(0xf8),'risk':a10_0x5d1f4f(0x10a),'confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':a10_0x5d1f4f(0x116)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x49ec57){const _0x11b180=a10_0x5d1f4f,_0x5db355=_0x49ec57[_0x11b180(0x11a)]('id'),_0x1f6c46=buildArtifactInput(_0x49ec57),_0x4f7bf2=await updateRuntimeArtifact(_0x5db355,_0x49ec57['appCode'],_0x1f6c46);return{'ok':!![],'data':detailArtifact(_0x4f7bf2),'message':_0x11b180(0x124)+_0x4f7bf2['id']+(_0x4f7bf2[_0x11b180(0x125)]?'\x20('+_0x4f7bf2[_0x11b180(0x125)]+')':'')};},async 'dryRun'(_0xd90036){const _0x192031=a10_0x5d1f4f,_0x311763=_0xd90036['num']('id'),_0x44c3bf=buildArtifactInput(_0xd90036);return dryRun('POST',_0x192031(0xf1)+_0x311763+_0x192031(0x13f))[_0x192031(0x136)]({'appCode':_0xd90036[_0x192031(0xf4)],..._0x44c3bf})[_0x192031(0x103)](_0x192031(0x112)+_0x311763)[_0x192031(0x11e)]();},'writeEventSubject'(_0x455a27){const _0x2f5b7d=a10_0x5d1f4f,_0x4a42a1=_0x455a27[_0x2f5b7d(0x110)]?.['id'];if(typeof _0x4a42a1!==_0x2f5b7d(0x121)&&typeof _0x4a42a1!==_0x2f5b7d(0x12e))return undefined;return{'kind':'artifact','id':String(_0x4a42a1),'action':'update'};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x5f3886=a11_0x4a53;(function(_0x485ea2,_0x4ab332){const _0x48d525=a11_0x4a53,_0x23d566=_0x485ea2();while(!![]){try{const _0x3c115e=parseInt(_0x48d525(0xe7))/0x1*(-parseInt(_0x48d525(0xcf))/0x2)+parseInt(_0x48d525(0xe9))/0x3*(-parseInt(_0x48d525(0x104))/0x4)+-parseInt(_0x48d525(0xf5))/0x5*(-parseInt(_0x48d525(0xe3))/0x6)+-parseInt(_0x48d525(0xe4))/0x7+parseInt(_0x48d525(0xf8))/0x8*(parseInt(_0x48d525(0xca))/0x9)+-parseInt(_0x48d525(0xfa))/0xa*(-parseInt(_0x48d525(0xd2))/0xb)+parseInt(_0x48d525(0xd7))/0xc*(parseInt(_0x48d525(0xc8))/0xd);if(_0x3c115e===_0x4ab332)break;else _0x23d566['push'](_0x23d566['shift']());}catch(_0x43beb5){_0x23d566['push'](_0x23d566['shift']());}}}(a11_0x1a86,0xb0f84));function a11_0x4a53(_0x2360e7,_0x5ecf99){_0x2360e7=_0x2360e7-0xbe;const _0x1a868f=a11_0x1a86();let _0x4a53b4=_0x1a868f[_0x2360e7];return _0x4a53b4;}import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';function a11_0x1a86(){const _0x13ea98=['nonInteractive','name','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','48066PvqZwS','3253131XCZUVz','padStart','Invalid\x20access_key\x20returned\x20by\x20server.','25073FuDXuJ','/device-auth?code=','3fOzINF','access_key','toISOString','log','aborted','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','Device\x20authorization\x20cancelled.','\x0dWaiting\x20for\x20authorization...\x20','\x20config.','),\x20retrying...','device','Device\x20auth\x20API\x20error\x20(','265dLeNau','Invalid\x20device\x20auth\x20response','object','3105160qUkqIS','/api/device-auth/token','100lGrvhc','createdAt','lovrabet-cli','once','string','randomUUID','floor','cancelled','signal','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','5420164oTVXAh','validation','accessKey','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','scope','now','test','stderr','boolean','\x20auth\x20status','Write\x20to\x20project\x20config','utf8','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','auth','bool','Device\x20authorization\x20successful.','write','url-only','Verify:\x20','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','project','global','success','SIGINT','13dnEgzA','apiError','18oCZxaO','abort','homeDirName','removeListener','status','106MAdnjr','parse','data','277552myJbqh','source','networkError','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','code','29043816UsGCtl','\x20auth\x20device','Write\x20to\x20global\x20config\x20(default)','stringify','trim','expired','After\x20authorizing,\x20re-run:\x20','global-default','getTime'];a11_0x1a86=function(){return _0x13ea98;};return a11_0x1a86();}import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x1f2cf7){const _0x47d768=a11_0x4a53;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x1f2cf7[_0x47d768(0xbe)](_0x47d768(0xc5)),'explicitProject':_0x1f2cf7[_0x47d768(0xbe)](_0x47d768(0xc4)),'policy':_0x47d768(0xde)}));}const ACCESS_KEY_PATTERN=/^ak_[A-Za-z0-9]{16,}$/,DEVICE_CODE_TTL_MS=0x927c0,POLL_INTERVAL_MS=0xbb8,MAX_POLLS=0xc8,MAX_CONSECUTIVE_NETWORK_ERRORS=0x5;export function generateDeviceCode(){const _0x99c65b=a11_0x4a53;return crypto[_0x99c65b(0xff)]();}export function buildDeviceAuthUrl(_0x3332a4,_0x28f1bf,_0x136148=a11_0x5f3886(0xfc)){const _0x443de7=a11_0x5f3886;return _0x3332a4+_0x443de7(0xe8)+encodeURIComponent(_0x28f1bf)+'&source='+encodeURIComponent(_0x136148);}export function getDeviceCodePath(){const _0x2dd37e=a11_0x5f3886;return homedir()+'/'+PRODUCT_CONFIG[_0x2dd37e(0xcc)]+'/.device-auth';}export function readStoredDeviceCode(){const _0x3e01bc=a11_0x5f3886,_0x2a4860=getDeviceCodePath();if(!existsSync(_0x2a4860))return null;try{const _0x1f1009=readFileSync(_0x2a4860,{'encoding':'utf8'}),_0x2f731f=JSON[_0x3e01bc(0xd0)](_0x1f1009);if(_0x2f731f&&typeof _0x2f731f[_0x3e01bc(0xd6)]==='string'&&typeof _0x2f731f[_0x3e01bc(0xfb)]==='string'&&(_0x2f731f['scope']===_0x3e01bc(0xc5)||_0x2f731f[_0x3e01bc(0x108)]===_0x3e01bc(0xc4)))return _0x2f731f;}catch{}return null;}export function writeStoredDeviceCode(_0x2a130b,_0x1aedb6){const _0x298401=a11_0x5f3886,_0xd174a6=getDeviceCodePath(),_0x3119bf=dirname(_0xd174a6);!existsSync(_0x3119bf)&&mkdirSync(_0x3119bf,{'recursive':!![]});const _0x4412b6={'code':_0x2a130b,'createdAt':new Date()[_0x298401(0xeb)](),'scope':_0x1aedb6};writeFileSync(_0xd174a6,JSON[_0x298401(0xda)](_0x4412b6),{'encoding':_0x298401(0x10f),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x4edbbd=getDeviceCodePath();try{unlinkSync(_0x4edbbd);}catch{}}export function isStoredDeviceCodeExpired(_0x3ad9c2){const _0x2c1a27=a11_0x5f3886;return Date[_0x2c1a27(0x109)]()-new Date(_0x3ad9c2[_0x2c1a27(0xfb)])[_0x2c1a27(0xdf)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x1a127d,_0x3ff850){const _0xa19995=a11_0x5f3886,_0x1ff0de=_0x1a127d+_0xa19995(0xf9),_0x3e638f=new AbortController(),_0x180bba=setTimeout(()=>_0x3e638f[_0xa19995(0xcb)](),0x2710),_0x3db3af=await fetch(_0x1ff0de,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'code':_0x3ff850}),'signal':_0x3e638f[_0xa19995(0x102)]});clearTimeout(_0x180bba);if(!_0x3db3af['ok'])throw CliErrors['networkError']('Device\x20auth\x20API\x20returned\x20HTTP\x20'+_0x3db3af[_0xa19995(0xce)]);const _0x4adfe0=await _0x3db3af['json'](),_0x497d7b=_0x4adfe0['data']&&typeof _0x4adfe0[_0xa19995(0xd1)]===_0xa19995(0xf7)?_0x4adfe0[_0xa19995(0xd1)]:_0x4adfe0;if(!_0x497d7b||typeof _0x497d7b[_0xa19995(0xce)]!==_0xa19995(0xfe))throw CliErrors[_0xa19995(0xc9)](_0xa19995(0xf6));return{'status':_0x497d7b[_0xa19995(0xce)],'access_key':typeof _0x497d7b[_0xa19995(0xea)]==='string'?_0x497d7b['access_key']:undefined};}export async function pollDeviceToken(_0x1e564b,_0x357e2a,_0x2cd69a){const _0x358059=a11_0x5f3886;let _0x178dea=0x0;for(let _0x292935=0x0;_0x292935<MAX_POLLS;_0x292935++){if(_0x2cd69a[_0x358059(0xed)])throw CliErrors[_0x358059(0x101)](_0x358059(0xef));let _0x333dc9;try{_0x333dc9=await fetchDeviceToken(_0x1e564b,_0x357e2a);}catch(_0x2c54e1){if(_0x2c54e1 instanceof Error&&_0x2c54e1[_0x358059(0xe1)]==='AbortError')throw CliErrors['cancelled'](_0x358059(0xef));_0x178dea++;if(_0x178dea>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x358059(0xd4)](_0x358059(0xe2));writeCliSideChannelLine(_0x358059(0xf4)+_0x178dea+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x358059(0xf2)),await sleep(POLL_INTERVAL_MS);continue;}_0x178dea=0x0;if(_0x333dc9[_0x358059(0xce)]===_0x358059(0xc6)){if(!_0x333dc9[_0x358059(0xea)])throw CliErrors[_0x358059(0xc9)](_0x358059(0xe6));return _0x333dc9['access_key'];}if(_0x333dc9[_0x358059(0xce)]===_0x358059(0xdc)){deleteStoredDeviceCode();throw CliErrors[_0x358059(0x105)](_0x358059(0xee));}const _0x2ee315=(_0x292935+0x1)*POLL_INTERVAL_MS,_0x55619d=DEVICE_CODE_TTL_MS-_0x2ee315,_0x46a0d2=Math[_0x358059(0x100)](_0x55619d/0xea60),_0x162528=Math[_0x358059(0x100)](_0x55619d%0xea60/0x3e8);process['stderr'][_0x358059(0xc0)](_0x358059(0xf0)+_0x46a0d2+':'+String(_0x162528)[_0x358059(0xe5)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x358059(0x105)](_0x358059(0xd5));}function sleep(_0x136e42){return new Promise(_0x5e18fd=>setTimeout(_0x5e18fd,_0x136e42));}export const authDeviceDefinition={'service':a11_0x5f3886(0x111),'command':a11_0x5f3886(0xf3),'description':a11_0x5f3886(0x110),'risk':a11_0x5f3886(0xc0),'confirmationDescription':a11_0x5f3886(0x107),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x5f3886(0xc5),'type':a11_0x5f3886(0x10c),'description':a11_0x5f3886(0xd9),'default':!![]},{'name':a11_0x5f3886(0xc4),'type':'boolean','description':a11_0x5f3886(0x10e),'default':![]},{'name':a11_0x5f3886(0xd3),'type':'string','description':'App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','default':a11_0x5f3886(0xfc)},{'name':a11_0x5f3886(0xc1),'type':a11_0x5f3886(0x10c),'description':'Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','default':![]}],async 'execute'(_0x70e54c){const _0x63d0be=a11_0x5f3886,_0x593c7d=resolveAuthScopeFlags(_0x70e54c),_0x333247=_0x593c7d[_0x63d0be(0xc5)]?_0x63d0be(0xc5):'project',_0x1f4c15=readScopedConfig(_0x593c7d);if(_0x1f4c15['accessKey'])return{'ok':!![],'message':'Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.'};const _0x285c7f=(_0x70e54c['str'](_0x63d0be(0xd3))||_0x63d0be(0xfc))[_0x63d0be(0xdb)](),_0x3ba6c8=getUserDomain(),_0x4ccd0e=readStoredDeviceCode(),_0x1c555c=_0x4ccd0e&&!isStoredDeviceCodeExpired(_0x4ccd0e)?_0x4ccd0e[_0x63d0be(0xd6)]:((()=>{const _0x4dc110=generateDeviceCode();return writeStoredDeviceCode(_0x4dc110,_0x333247),_0x4dc110;})()),_0x55cde2=buildDeviceAuthUrl(_0x3ba6c8,_0x1c555c,_0x285c7f);if(_0x70e54c[_0x63d0be(0xbe)]('url-only'))return console[_0x63d0be(0xec)](_0x55cde2),{'ok':!![]};writeCliSideChannelLine(_0x63d0be(0xc3)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x55cde2),writeCliSideChannelLine(''),writeCliSideChannelLine('The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.');if(_0x70e54c[_0x63d0be(0xe0)])return writeCliSideChannelLine(_0x63d0be(0xdd)+CLI_BIN_NAME+_0x63d0be(0xd8)),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine(_0x63d0be(0x103));const _0x5acdb2=new AbortController(),_0x2285ee=()=>{const _0x34036f=_0x63d0be;_0x5acdb2[_0x34036f(0xcb)](),process[_0x34036f(0xcd)](_0x34036f(0xc7),_0x2285ee);};process[_0x63d0be(0xfd)]('SIGINT',_0x2285ee);let _0x1cd7a9;try{_0x1cd7a9=await pollDeviceToken(_0x3ba6c8,_0x1c555c,_0x5acdb2[_0x63d0be(0x102)]);}finally{process[_0x63d0be(0xcd)](_0x63d0be(0xc7),_0x2285ee);}if(!ACCESS_KEY_PATTERN[_0x63d0be(0x10a)](_0x1cd7a9))throw CliErrors[_0x63d0be(0xc9)](_0x63d0be(0xe6));const _0x2c6d40=readScopedConfig(_0x593c7d);return _0x2c6d40[_0x63d0be(0x106)]=_0x1cd7a9,writeScopedConfig(_0x2c6d40,_0x593c7d),deleteStoredDeviceCode(),process[_0x63d0be(0x10b)][_0x63d0be(0xc0)]('\x0a'),writeCliSideChannelLine('AccessKey\x20saved\x20to\x20'+_0x333247+_0x63d0be(0xf1)),writeCliSideChannelLine(_0x63d0be(0xc2)+CLI_BIN_NAME+_0x63d0be(0x10d)),{'ok':!![],'message':_0x63d0be(0xbf)};}};
|
|
1
|
+
const a11_0x2ff205=a11_0x2b88;(function(_0x5df87f,_0x464a40){const _0x119d79=a11_0x2b88,_0x4d9901=_0x5df87f();while(!![]){try{const _0xb7d79d=-parseInt(_0x119d79(0x190))/0x1+-parseInt(_0x119d79(0x172))/0x2+parseInt(_0x119d79(0x16f))/0x3*(-parseInt(_0x119d79(0x17a))/0x4)+-parseInt(_0x119d79(0x175))/0x5*(parseInt(_0x119d79(0x178))/0x6)+parseInt(_0x119d79(0x184))/0x7*(-parseInt(_0x119d79(0x17b))/0x8)+-parseInt(_0x119d79(0x1a4))/0x9*(-parseInt(_0x119d79(0x187))/0xa)+parseInt(_0x119d79(0x186))/0xb;if(_0xb7d79d===_0x464a40)break;else _0x4d9901['push'](_0x4d9901['shift']());}catch(_0x4a2e6e){_0x4d9901['push'](_0x4d9901['shift']());}}}(a11_0x40d3,0x1d4b1));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';function a11_0x40d3(){const _0x4c6b94=['signal','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','91eRVURj','expired','4787519emvDVh','20ThIwIX','networkError','/api/device-auth/token','write','getTime','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','\x20auth\x20device','padStart','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','32844HkZKSW','once','global','Device\x20auth\x20API\x20returned\x20HTTP\x20','/device-auth?code=','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','&source=','SIGINT','object','now','parse','device','Device\x20authorization\x20successful.','bool','source','utf8','trim','\x0dWaiting\x20for\x20authorization...\x20','string','Invalid\x20device\x20auth\x20response','3609tNFlvt','scope','url-only','randomUUID','Write\x20to\x20project\x20config','success','code','access_key','project','),\x20retrying...','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','apiError','cancelled','POST','createdAt','lovrabet-cli','accessKey','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','log','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','test','Device\x20auth\x20API\x20error\x20(','Invalid\x20access_key\x20returned\x20by\x20server.','auth','stderr','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','toISOString','177273bordrx','data','boolean','187866BjrYjg','/.device-auth','validation','9515PcRKPd','abort','After\x20authorizing,\x20re-run:\x20','198eWTIiv','str','4tTnkWS','41464QmIYWN','status','Device\x20authorization\x20cancelled.','floor','removeListener','global-default','\x20auth\x20status'];a11_0x40d3=function(){return _0x4c6b94;};return a11_0x40d3();}import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x144838){const _0x46431a=a11_0x2b88;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x144838[_0x46431a(0x19d)]('global'),'explicitProject':_0x144838['bool'](_0x46431a(0x1ac)),'policy':_0x46431a(0x180)}));}const ACCESS_KEY_PATTERN=/^ak_[A-Za-z0-9]{16,}$/,DEVICE_CODE_TTL_MS=0x927c0,POLL_INTERVAL_MS=0xbb8,MAX_POLLS=0xc8,MAX_CONSECUTIVE_NETWORK_ERRORS=0x5;export function generateDeviceCode(){const _0x20a920=a11_0x2b88;return crypto[_0x20a920(0x1a7)]();}export function buildDeviceAuthUrl(_0x51abdc,_0x285673,_0x21922e=a11_0x2ff205(0x163)){const _0x5635b2=a11_0x2ff205;return _0x51abdc+_0x5635b2(0x194)+encodeURIComponent(_0x285673)+_0x5635b2(0x196)+encodeURIComponent(_0x21922e);}export function getDeviceCodePath(){const _0xa8adf0=a11_0x2ff205;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0xa8adf0(0x173);}export function readStoredDeviceCode(){const _0x91dc5e=a11_0x2ff205,_0x29c0b5=getDeviceCodePath();if(!existsSync(_0x29c0b5))return null;try{const _0x1c0436=readFileSync(_0x29c0b5,{'encoding':_0x91dc5e(0x19f)}),_0x316f4c=JSON[_0x91dc5e(0x19a)](_0x1c0436);if(_0x316f4c&&typeof _0x316f4c[_0x91dc5e(0x1aa)]===_0x91dc5e(0x1a2)&&typeof _0x316f4c[_0x91dc5e(0x162)]===_0x91dc5e(0x1a2)&&(_0x316f4c[_0x91dc5e(0x1a5)]===_0x91dc5e(0x192)||_0x316f4c[_0x91dc5e(0x1a5)]===_0x91dc5e(0x1ac)))return _0x316f4c;}catch{}return null;}export function writeStoredDeviceCode(_0x493afe,_0x582ed9){const _0x1b1edb=a11_0x2ff205,_0x45b96a=getDeviceCodePath(),_0x2d2fb9=dirname(_0x45b96a);!existsSync(_0x2d2fb9)&&mkdirSync(_0x2d2fb9,{'recursive':!![]});const _0x3c509b={'code':_0x493afe,'createdAt':new Date()[_0x1b1edb(0x16e)](),'scope':_0x582ed9};writeFileSync(_0x45b96a,JSON['stringify'](_0x3c509b),{'encoding':'utf8','mode':0x180});}export function deleteStoredDeviceCode(){const _0x9fe97f=getDeviceCodePath();try{unlinkSync(_0x9fe97f);}catch{}}export function isStoredDeviceCodeExpired(_0x9b1ba1){const _0x59528c=a11_0x2ff205;return Date[_0x59528c(0x199)]()-new Date(_0x9b1ba1['createdAt'])[_0x59528c(0x18b)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x4991a9,_0x5324fa){const _0x4d2809=a11_0x2ff205,_0x3924f7=_0x4991a9+_0x4d2809(0x189),_0x3beb2f=new AbortController(),_0x252477=setTimeout(()=>_0x3beb2f[_0x4d2809(0x176)](),0x2710),_0x31c3ae=await fetch(_0x3924f7,{'method':_0x4d2809(0x161),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'code':_0x5324fa}),'signal':_0x3beb2f[_0x4d2809(0x182)]});clearTimeout(_0x252477);if(!_0x31c3ae['ok'])throw CliErrors['networkError'](_0x4d2809(0x193)+_0x31c3ae[_0x4d2809(0x17c)]);const _0x192d1f=await _0x31c3ae['json'](),_0x311a59=_0x192d1f['data']&&typeof _0x192d1f[_0x4d2809(0x170)]===_0x4d2809(0x198)?_0x192d1f[_0x4d2809(0x170)]:_0x192d1f;if(!_0x311a59||typeof _0x311a59[_0x4d2809(0x17c)]!==_0x4d2809(0x1a2))throw CliErrors['apiError'](_0x4d2809(0x1a3));return{'status':_0x311a59[_0x4d2809(0x17c)],'access_key':typeof _0x311a59[_0x4d2809(0x1ab)]===_0x4d2809(0x1a2)?_0x311a59[_0x4d2809(0x1ab)]:undefined};}function a11_0x2b88(_0x542bd5,_0x4cbfd9){_0x542bd5=_0x542bd5-0x15f;const _0x40d39b=a11_0x40d3();let _0x2b8820=_0x40d39b[_0x542bd5];return _0x2b8820;}export async function pollDeviceToken(_0x1c4d02,_0xc00180,_0x4d041b){const _0x578143=a11_0x2ff205;let _0x3e3543=0x0;for(let _0x3c87da=0x0;_0x3c87da<MAX_POLLS;_0x3c87da++){if(_0x4d041b['aborted'])throw CliErrors[_0x578143(0x160)]('Device\x20authorization\x20cancelled.');let _0x4a2458;try{_0x4a2458=await fetchDeviceToken(_0x1c4d02,_0xc00180);}catch(_0x35bc04){if(_0x35bc04 instanceof Error&&_0x35bc04['name']==='AbortError')throw CliErrors[_0x578143(0x160)](_0x578143(0x17d));_0x3e3543++;if(_0x3e3543>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x578143(0x188)](_0x578143(0x183));writeCliSideChannelLine(_0x578143(0x169)+_0x3e3543+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x578143(0x1ad)),await sleep(POLL_INTERVAL_MS);continue;}_0x3e3543=0x0;if(_0x4a2458[_0x578143(0x17c)]===_0x578143(0x1a9)){if(!_0x4a2458[_0x578143(0x1ab)])throw CliErrors[_0x578143(0x15f)]('Invalid\x20access_key\x20returned\x20by\x20server.');return _0x4a2458['access_key'];}if(_0x4a2458[_0x578143(0x17c)]===_0x578143(0x185)){deleteStoredDeviceCode();throw CliErrors[_0x578143(0x174)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x116ad0=(_0x3c87da+0x1)*POLL_INTERVAL_MS,_0x25c7d0=DEVICE_CODE_TTL_MS-_0x116ad0,_0x5b6d2c=Math['floor'](_0x25c7d0/0xea60),_0x187755=Math[_0x578143(0x17e)](_0x25c7d0%0xea60/0x3e8);process['stderr'][_0x578143(0x18a)](_0x578143(0x1a1)+_0x5b6d2c+':'+String(_0x187755)[_0x578143(0x18e)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x578143(0x174)](_0x578143(0x165));}function sleep(_0x25a075){return new Promise(_0x5de379=>setTimeout(_0x5de379,_0x25a075));}export const authDeviceDefinition={'service':a11_0x2ff205(0x16b),'command':a11_0x2ff205(0x19b),'description':a11_0x2ff205(0x1ae),'risk':a11_0x2ff205(0x18a),'confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x2ff205(0x192),'type':a11_0x2ff205(0x171),'description':'Write\x20to\x20global\x20config\x20(default)','default':!![]},{'name':'project','type':a11_0x2ff205(0x171),'description':a11_0x2ff205(0x1a8),'default':![]},{'name':a11_0x2ff205(0x19e),'type':a11_0x2ff205(0x1a2),'description':'App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','default':'lovrabet-cli'},{'name':a11_0x2ff205(0x1a6),'type':a11_0x2ff205(0x171),'description':a11_0x2ff205(0x16d),'default':![]}],async 'execute'(_0x494f76){const _0x43b786=a11_0x2ff205,_0x1c5fd3=resolveAuthScopeFlags(_0x494f76),_0x208e9e=_0x1c5fd3[_0x43b786(0x192)]?_0x43b786(0x192):_0x43b786(0x1ac),_0x148dc5=readScopedConfig(_0x1c5fd3);if(_0x148dc5[_0x43b786(0x164)])return{'ok':!![],'message':_0x43b786(0x195)};const _0x10301b=(_0x494f76[_0x43b786(0x179)]('source')||_0x43b786(0x163))[_0x43b786(0x1a0)](),_0x26e34f=getUserDomain(),_0x7df86e=readStoredDeviceCode(),_0xc5a89b=_0x7df86e&&!isStoredDeviceCodeExpired(_0x7df86e)?_0x7df86e['code']:((()=>{const _0x40ce35=generateDeviceCode();return writeStoredDeviceCode(_0x40ce35,_0x208e9e),_0x40ce35;})()),_0xef2a5e=buildDeviceAuthUrl(_0x26e34f,_0xc5a89b,_0x10301b);if(_0x494f76[_0x43b786(0x19d)]('url-only'))return console[_0x43b786(0x166)](_0xef2a5e),{'ok':!![]};writeCliSideChannelLine(_0x43b786(0x18c)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0xef2a5e),writeCliSideChannelLine(''),writeCliSideChannelLine('The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.');if(_0x494f76['nonInteractive'])return writeCliSideChannelLine(_0x43b786(0x177)+CLI_BIN_NAME+_0x43b786(0x18d)),{'ok':!![],'message':_0x43b786(0x18f)};writeCliSideChannelLine(_0x43b786(0x167));const _0x7584d6=new AbortController(),_0x32cd9b=()=>{const _0x539d46=_0x43b786;_0x7584d6[_0x539d46(0x176)](),process[_0x539d46(0x17f)](_0x539d46(0x197),_0x32cd9b);};process[_0x43b786(0x191)]('SIGINT',_0x32cd9b);let _0x2616ad;try{_0x2616ad=await pollDeviceToken(_0x26e34f,_0xc5a89b,_0x7584d6[_0x43b786(0x182)]);}finally{process['removeListener'](_0x43b786(0x197),_0x32cd9b);}if(!ACCESS_KEY_PATTERN[_0x43b786(0x168)](_0x2616ad))throw CliErrors[_0x43b786(0x15f)](_0x43b786(0x16a));const _0x19c86c=readScopedConfig(_0x1c5fd3);return _0x19c86c[_0x43b786(0x164)]=_0x2616ad,writeScopedConfig(_0x19c86c,_0x1c5fd3),deleteStoredDeviceCode(),process[_0x43b786(0x16c)][_0x43b786(0x18a)]('\x0a'),writeCliSideChannelLine('AccessKey\x20saved\x20to\x20'+_0x208e9e+'\x20config.'),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+_0x43b786(0x181)),{'ok':!![],'message':_0x43b786(0x19c)};}};
|