@lovrabet/lovrabet-cli 2.2.5-beta.1 → 2.2.5-beta.2
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
|
+
const a0_0x571bd6=a0_0xa1d3;(function(_0x915c3c,_0x8743b6){const _0x523bee=a0_0xa1d3,_0x5065b8=_0x915c3c();while(!![]){try{const _0x2756b1=-parseInt(_0x523bee(0x134))/0x1*(parseInt(_0x523bee(0x15a))/0x2)+-parseInt(_0x523bee(0x146))/0x3*(parseInt(_0x523bee(0x149))/0x4)+-parseInt(_0x523bee(0x140))/0x5*(parseInt(_0x523bee(0x137))/0x6)+-parseInt(_0x523bee(0x15c))/0x7+-parseInt(_0x523bee(0x157))/0x8+parseInt(_0x523bee(0x141))/0x9+parseInt(_0x523bee(0x148))/0xa*(parseInt(_0x523bee(0x154))/0xb);if(_0x2756b1===_0x8743b6)break;else _0x5065b8['push'](_0x5065b8['shift']());}catch(_0x3e90b3){_0x5065b8['push'](_0x5065b8['shift']());}}}(a0_0xd591,0x31b28));import{jsx as a0_0x14cb7d}from'react/jsx-runtime';import a0_0x18e1a6 from'meow';import{render}from'ink';function a0_0xd591(){const _0x5c623c=['Hint:\x20','stderr','Unexpected\x20error:','defaultCommand','handler','5797EKbCXQ','ERR_USE_AFTER_CLOSE','code','818872SBwHLi','write','flatMap','562806ihTvcy','error','1531061ylWEfG','ExitPromptError','catch','exit','1GEBZfH','exitCode','unknownCommand','18eJSUOM','flags','args','ERR_STREAM_DESTROYED','original','help','assign','log','cancelled','471075tVzrWb','447183ySZuIT','name','validation','input','message','15lGCvXP','[preparse]\x20','23390YovxFa','154920xxYSOg','./framework/preparse.js','Error:\x20','\x0aCancelled.\x0a','\x20->\x20--','definition'];a0_0xd591=function(){return _0x5c623c;};return a0_0xd591();}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';function a0_0xa1d3(_0x1ee06d,_0x580ded){_0x1ee06d=_0x1ee06d-0x133;const _0xd591b0=a0_0xd591();let _0xa1d39c=_0xd591b0[_0x1ee06d];return _0xa1d39c;}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';import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x18e1a6(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x571bd6(0x15e)](handleError);async function main(){try{await run();}catch(_0x380698){handleError(_0x380698);}}async function run(){const _0x443d9a=a0_0x571bd6;let _0x1994f8=cli[_0x443d9a(0x144)][0x0],_0x5843cc=cli[_0x443d9a(0x144)][0x1];const _0x5cfd62=cli['flags'];try{const {correctFlags:_0x253a2c}=await import(_0x443d9a(0x14a)),_0x3dcf7a=getAllDefinitions()[_0x443d9a(0x159)](_0x308dee=>_0x308dee[_0x443d9a(0x138)]??[]),{flags:_0x2f519d,corrections:_0x4b1e01}=_0x253a2c(_0x5cfd62,_0x3dcf7a);if(_0x4b1e01['length']>0x0){for(const _0x16b341 of _0x4b1e01){process['stderr'][_0x443d9a(0x158)](_0x443d9a(0x147)+_0x16b341[_0x443d9a(0x153)]+':\x20--'+_0x16b341[_0x443d9a(0x13b)]+_0x443d9a(0x14d)+_0x16b341['corrected']+'\x0a');}Object['assign'](_0x5cfd62,_0x2f519d);}}catch{}if(!_0x1994f8){const {waitUntilExit:_0x20f602}=render(a0_0x14cb7d(Help,{}));await _0x20f602();return;}const _0x4ad59d=resolveRemovedCommand(_0x1994f8,_0x5843cc);if(_0x4ad59d)throw CliErrors[_0x443d9a(0x143)](_0x4ad59d[_0x443d9a(0x145)],_0x4ad59d['hint']);if(!isKnownService(_0x1994f8)){const _0x2d3b6b=resolveDynamicServiceCommand(cli['input'],_0x5cfd62);if(_0x2d3b6b){if(_0x5cfd62['help']){console[_0x443d9a(0x13e)](generateCommandHelp(_0x2d3b6b['definition']));return;}Object[_0x443d9a(0x13d)](_0x5cfd62,_0x2d3b6b[_0x443d9a(0x138)]);const _0x232f35=buildConfigFromFlags(_0x5cfd62);await initGlobalEnvironment(_0x232f35);const _0x47a474=createPipelineEnv(_0x232f35,_0x5cfd62);_0x47a474['args']=_0x2d3b6b[_0x443d9a(0x139)],await runCommand(_0x2d3b6b[_0x443d9a(0x14e)],_0x47a474);return;}if(_0x5cfd62[_0x443d9a(0x13c)]){const _0x540822=generateDynamicServiceHelp(_0x1994f8);if(_0x540822){console[_0x443d9a(0x13e)](_0x540822);return;}}const {waitUntilExit:_0x1f35ad}=render(a0_0x14cb7d(Help,{}));await _0x1f35ad();return;}const _0x3ad181=getServiceEntry(_0x1994f8);if(!_0x5843cc){if(_0x5cfd62[_0x443d9a(0x13c)]){console[_0x443d9a(0x13e)](generateServiceHelp(_0x1994f8));return;}if(_0x3ad181[_0x443d9a(0x152)])_0x5843cc=_0x3ad181[_0x443d9a(0x152)];else{console['log'](generateServiceHelp(_0x1994f8));return;}}const _0xe3d67e=findDefinition(_0x1994f8,_0x5843cc);!_0xe3d67e&&(console['log'](generateServiceHelp(_0x1994f8)),handleError(CliErrors[_0x443d9a(0x136)](_0x1994f8+'\x20'+_0x5843cc)));if(_0x5cfd62['help']){console[_0x443d9a(0x13e)](generateCommandHelp(_0xe3d67e));return;}const _0x49a514=buildConfigFromFlags(_0x5cfd62);await initGlobalEnvironment(_0x49a514);const _0x349264=createPipelineEnv(_0x49a514,_0x5cfd62);_0x349264[_0x443d9a(0x139)]=cli[_0x443d9a(0x144)]['slice'](0x2),await runCommand(_0xe3d67e,_0x349264);}function handleError(_0x26f392){const _0x5dce8e=a0_0x571bd6;if(_0x26f392 instanceof CliError){_0x26f392[_0x5dce8e(0x156)]===_0x5dce8e(0x13f)&&(process[_0x5dce8e(0x150)][_0x5dce8e(0x158)](_0x5dce8e(0x14c)),process[_0x5dce8e(0x133)](0x0));console[_0x5dce8e(0x15b)](_0x5dce8e(0x14b)+_0x26f392[_0x5dce8e(0x145)]);if(_0x26f392['hint'])console['error'](_0x5dce8e(0x14f)+_0x26f392['hint']);process[_0x5dce8e(0x133)](_0x26f392[_0x5dce8e(0x135)]);}isUserCancellation(_0x26f392)&&(process[_0x5dce8e(0x150)][_0x5dce8e(0x158)](_0x5dce8e(0x14c)),process[_0x5dce8e(0x133)](0x0)),console[_0x5dce8e(0x15b)](_0x5dce8e(0x151),_0x26f392),process['exit'](0x1);}function isUserCancellation(_0x222868){const _0x574c86=a0_0x571bd6;if(!(_0x222868 instanceof Error))return![];if(_0x222868[_0x574c86(0x142)]===_0x574c86(0x15d))return!![];if(_0x222868[_0x574c86(0x156)]===_0x574c86(0x155))return!![];if(_0x222868[_0x574c86(0x156)]===_0x574c86(0x13a))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a1_0x3f62(_0x3cffc9,_0x7d5f04){_0x3cffc9=_0x3cffc9-0x18e;const _0x161698=a1_0x1616();let _0x3f629c=_0x161698[_0x3cffc9];return _0x3f629c;}function a1_0x1616(){const _0x24f828=['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','category','/api/custom/executeSql','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','/api/dataset/get-dataset-list-by-app-code','bf_execute','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','toLowerCase','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','27oacBvK','{\x22id\x22:123}','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','/api/endpoint/{appCode}/{functionName}','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','1480052iyBzbx','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','map','tableData\x20contains\x20dataset\x20id/code/name','API\x20doc\x20code,\x20for\x20example\x20dataset_list','/api/{appCode}/{datasetCode}/getOne','147OQRIDY','API\x20doc\x20code\x20not\x20found:\x20','join','fields/properties\x20describe\x20data\x20shape','按应用和函数名精确获取\x20BF\x20运行契约','code','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','Execute\x20BF\x20endpoint\x20function','keyword','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','Get\x20one\x20dataset\x20record','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','functionName','read','执行指定\x20BF\x20函数','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','filter','查询单条数据','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','Filter\x20dataset\x20data','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','483546NdByqc','dataset_detail','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','/api/{appCode}/{datasetCode}/aggregate','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','tableData\x20contains\x20records','dataset_list','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','需要向指定数据集新增一条业务数据时使用','summary','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','88314SAJSOu','List\x20datasets','operations\x20describes\x20runtime\x20APIs','dataset_data_get_one','title','Show\x20runtime\x20API\x20documentation\x20by\x20code','result\x20rows\x20contain\x20aggregate\x20aliases','dataset_data_filter','2102945lalqMC','where\x20filters\x20before\x20aggregation','string','path','获取数据集详情','Endpoint\x20function\x20name','trim','##\x20List\x20datasets','whenToUse','##\x20Filter\x20dataset\x20data','detail','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','datasetCode','195376LhTSih','执行自定义\x20SQL','validation','Returns\x20SQL\x20execution\x20payload','dataset','条件过滤查询数据','2688650hlsuwT','api-doc','Returns\x20script\x20business\x20payload','7acnCmc','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','1323585PJqUPs','创建数据','find','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','list','Get\x20BF\x20endpoint\x20function\x20contract','paging\x20contains\x20pagination','custom_sql_execute','GET','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','Current\x20app\x20code','聚合查询数据集数据','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','method','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','dataset_data_create','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','str','Returns\x20one\x20matching\x20business\x20record','paging.totalCount\x20gives\x20total\x20rows','None','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','32-character\x20dataset\x20code','Exact\x20endpoint\x20function\x20name','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','appCode','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','POST'];a1_0x1616=function(){return _0x24f828;};return a1_0x1616();}const a1_0x5cce2d=a1_0x3f62;(function(_0x49e8b4,_0x7c45a1){const _0x2e022c=a1_0x3f62,_0x323397=_0x49e8b4();while(!![]){try{const _0x4f8be3=-parseInt(_0x2e022c(0x1a4))/0x1*(-parseInt(_0x2e022c(0x1fb))/0x2)+-parseInt(_0x2e022c(0x1a6))/0x3+parseInt(_0x2e022c(0x1d4))/0x4+parseInt(_0x2e022c(0x203))/0x5+-parseInt(_0x2e022c(0x1ef))/0x6+-parseInt(_0x2e022c(0x1da))/0x7*(-parseInt(_0x2e022c(0x19b))/0x8)+parseInt(_0x2e022c(0x1cf))/0x9*(-parseInt(_0x2e022c(0x1a1))/0xa);if(_0x4f8be3===_0x7c45a1)break;else _0x323397['push'](_0x323397['shift']());}catch(_0x18e82b){_0x323397['push'](_0x323397['shift']());}}}(a1_0x1616,0x45616));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x5cce2d(0x1c7),'type':a1_0x5cce2d(0x18e),'description':a1_0x5cce2d(0x1b6)},KEYWORD_FLAG={'name':'keyword','type':a1_0x5cce2d(0x18e),'description':'Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text'},DOC_CODE_FLAG={'name':'code','type':a1_0x5cce2d(0x18e),'required':!![],'description':a1_0x5cce2d(0x1d8)},DOCS=[{'code':a1_0x5cce2d(0x1f5),'category':a1_0x5cce2d(0x19f),'title':a1_0x5cce2d(0x1fc),'method':'POST','path':a1_0x5cce2d(0x1ca),'summary':'分页获取数据集列表','whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x5cce2d(0x1b7),'responseHighlights':[a1_0x5cce2d(0x1d7),a1_0x5cce2d(0x1ba)],'examples':[a1_0x5cce2d(0x1c4)],'notes':[a1_0x5cce2d(0x1b2)],'markdown':[a1_0x5cce2d(0x193),'',a1_0x5cce2d(0x199)]['join']('\x0a')},{'code':a1_0x5cce2d(0x1f0),'category':a1_0x5cce2d(0x19f),'title':'Dataset\x20detail','method':'GET','path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x5cce2d(0x190),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':a1_0x5cce2d(0x1df),'description':a1_0x5cce2d(0x1c0)}],'bodySchema':a1_0x5cce2d(0x1bb),'responseHighlights':[a1_0x5cce2d(0x1dd),'relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned',a1_0x5cce2d(0x1fd)],'examples':[a1_0x5cce2d(0x1ce)],'notes':[a1_0x5cce2d(0x1b4)],'markdown':['##\x20Dataset\x20detail','',a1_0x5cce2d(0x1fa)][a1_0x5cce2d(0x1dc)]('\x0a')},{'code':a1_0x5cce2d(0x202),'category':a1_0x5cce2d(0x19f),'title':a1_0x5cce2d(0x1ed),'method':a1_0x5cce2d(0x1c5),'path':'/api/{appCode}/{datasetCode}/filter','summary':a1_0x5cce2d(0x1a0),'whenToUse':a1_0x5cce2d(0x1c2),'pathParams':[{'name':'appCode','description':a1_0x5cce2d(0x1b0)},{'name':a1_0x5cce2d(0x19a),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x5cce2d(0x1af),'responseHighlights':[a1_0x5cce2d(0x1f4),a1_0x5cce2d(0x1ac)],'examples':['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',a1_0x5cce2d(0x1e9)],'notes':[a1_0x5cce2d(0x1ee),a1_0x5cce2d(0x1a5),a1_0x5cce2d(0x1bc),'Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':[a1_0x5cce2d(0x195),'','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.'][a1_0x5cce2d(0x1dc)]('\x0a')},{'code':'dataset_data_aggregate','category':a1_0x5cce2d(0x19f),'title':'Aggregate\x20dataset\x20data','method':'POST','path':a1_0x5cce2d(0x1f2),'summary':a1_0x5cce2d(0x1b1),'whenToUse':a1_0x5cce2d(0x1a9),'pathParams':[{'name':'appCode','description':a1_0x5cce2d(0x1b0)},{'name':a1_0x5cce2d(0x19a),'description':a1_0x5cce2d(0x1c0)}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':[a1_0x5cce2d(0x201),a1_0x5cce2d(0x204)],'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_0x5cce2d(0x1e0),a1_0x5cce2d(0x1ec)],'markdown':['##\x20Aggregate\x20dataset\x20data','',a1_0x5cce2d(0x1f3)][a1_0x5cce2d(0x1dc)]('\x0a')},{'code':a1_0x5cce2d(0x1fe),'category':'dataset','title':a1_0x5cce2d(0x1e4),'method':a1_0x5cce2d(0x1c5),'path':a1_0x5cce2d(0x1d9),'summary':a1_0x5cce2d(0x1eb),'whenToUse':a1_0x5cce2d(0x1f6),'pathParams':[{'name':a1_0x5cce2d(0x1c3),'description':'Current\x20app\x20code'},{'name':'datasetCode','description':a1_0x5cce2d(0x1c0)}],'queryParams':[],'bodySchema':a1_0x5cce2d(0x1d0),'responseHighlights':[a1_0x5cce2d(0x1b9)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':['Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.'],'markdown':a1_0x5cce2d(0x1f9)},{'code':a1_0x5cce2d(0x1b5),'category':a1_0x5cce2d(0x19f),'title':'Create\x20dataset\x20record','method':a1_0x5cce2d(0x1c5),'path':'/api/{appCode}/{datasetCode}/create','summary':a1_0x5cce2d(0x1a7),'whenToUse':a1_0x5cce2d(0x1f7),'pathParams':[{'name':a1_0x5cce2d(0x1c3),'description':'Current\x20app\x20code'},{'name':a1_0x5cce2d(0x19a),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22fieldName\x22:\x22value\x22}','responseHighlights':[a1_0x5cce2d(0x1d3)],'examples':[a1_0x5cce2d(0x1bf)],'notes':[a1_0x5cce2d(0x198)],'markdown':a1_0x5cce2d(0x1bd)},{'code':'bf_detail','category':'bf','title':a1_0x5cce2d(0x1ab),'method':a1_0x5cce2d(0x1ae),'path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0x5cce2d(0x1de),'whenToUse':a1_0x5cce2d(0x1cc),'pathParams':[{'name':a1_0x5cce2d(0x1c3),'description':a1_0x5cce2d(0x1b0)},{'name':a1_0x5cce2d(0x1e6),'description':a1_0x5cce2d(0x1c1)}],'queryParams':[],'bodySchema':a1_0x5cce2d(0x1bb),'responseHighlights':[a1_0x5cce2d(0x1d5)],'examples':[a1_0x5cce2d(0x1f1)],'notes':[a1_0x5cce2d(0x1e3)],'markdown':'##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.'},{'code':a1_0x5cce2d(0x1cb),'category':'bf','title':a1_0x5cce2d(0x1e1),'method':a1_0x5cce2d(0x1c5),'path':a1_0x5cce2d(0x1d2),'summary':a1_0x5cce2d(0x1e8),'whenToUse':a1_0x5cce2d(0x1be),'pathParams':[{'name':'appCode','description':a1_0x5cce2d(0x1b0)},{'name':a1_0x5cce2d(0x1e6),'description':a1_0x5cce2d(0x191)}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x5cce2d(0x1a3)],'examples':[a1_0x5cce2d(0x1c6)],'notes':['Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.'],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':a1_0x5cce2d(0x1ad),'category':'custom_sql','title':'Execute\x20custom\x20SQL','method':a1_0x5cce2d(0x1c5),'path':a1_0x5cce2d(0x1c8),'summary':a1_0x5cce2d(0x19c),'whenToUse':a1_0x5cce2d(0x1c9),'pathParams':[],'queryParams':[],'bodySchema':a1_0x5cce2d(0x1d1),'responseHighlights':[a1_0x5cce2d(0x19e)],'examples':[a1_0x5cce2d(0x197)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x5cce2d(0x1e5)}];function entrySummary(_0x4ffb9b){const _0x3ddc80=a1_0x5cce2d;return{'code':_0x4ffb9b[_0x3ddc80(0x1df)],'category':_0x4ffb9b[_0x3ddc80(0x1c7)],'method':_0x4ffb9b[_0x3ddc80(0x1b3)],'path':_0x4ffb9b[_0x3ddc80(0x18f)],'summary':_0x4ffb9b[_0x3ddc80(0x1f8)],'whenToUse':_0x4ffb9b[_0x3ddc80(0x194)]};}export function listApiDocEntries(_0x5c0929={}){const _0x4e635f=a1_0x5cce2d,_0x12149b=String(_0x5c0929['category']||'')[_0x4e635f(0x192)](),_0x384a88=String(_0x5c0929['keyword']||'')[_0x4e635f(0x192)]()[_0x4e635f(0x1cd)]();return DOCS[_0x4e635f(0x1ea)](_0x297c0b=>{const _0x572d04=_0x4e635f;if(_0x12149b&&_0x297c0b['category']!==_0x12149b)return![];if(!_0x384a88)return!![];return[_0x297c0b[_0x572d04(0x1df)],_0x297c0b[_0x572d04(0x1c7)],_0x297c0b[_0x572d04(0x1b3)],_0x297c0b['path'],_0x297c0b[_0x572d04(0x1f8)],_0x297c0b[_0x572d04(0x194)],_0x297c0b[_0x572d04(0x1ff)]][_0x572d04(0x1dc)]('\x20')['toLowerCase']()['includes'](_0x384a88);})[_0x4e635f(0x1d6)](entrySummary);}export function getApiDocDetail(_0x2b7993){const _0xf96020=a1_0x5cce2d,_0x13a314=DOCS[_0xf96020(0x1a8)](_0x24853e=>_0x24853e['code']===_0x2b7993);if(!_0x13a314)throw CliErrors[_0xf96020(0x19d)](_0xf96020(0x1db)+_0x2b7993);return{..._0x13a314};}const apiDocList={'service':a1_0x5cce2d(0x1a2),'command':a1_0x5cce2d(0x1aa),'description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':a1_0x5cce2d(0x1e7),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x39cc0b){const _0x3e2aaa=a1_0x5cce2d,_0x5deabe=listApiDocEntries({'category':_0x39cc0b[_0x3e2aaa(0x1b8)](_0x3e2aaa(0x1c7)),'keyword':_0x39cc0b[_0x3e2aaa(0x1b8)](_0x3e2aaa(0x1e2))});return{'ok':!![],'data':{'total':_0x5deabe['length'],'items':_0x5deabe}};}},apiDocDetail={'service':a1_0x5cce2d(0x1a2),'command':a1_0x5cce2d(0x196),'description':a1_0x5cce2d(0x200),'risk':'read','requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x3418e6){const _0x4e5a5e=a1_0x5cce2d;return{'ok':!![],'data':getApiDocDetail(_0x3418e6['str'](_0x4e5a5e(0x1df)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
const a1_0x451a29=a1_0x5b2e;(function(_0x7080a8,_0x48d7eb){const _0x4c4911=a1_0x5b2e,_0x4f11d1=_0x7080a8();while(!![]){try{const _0x5b3782=parseInt(_0x4c4911(0x12e))/0x1+parseInt(_0x4c4911(0x11d))/0x2*(parseInt(_0x4c4911(0x124))/0x3)+parseInt(_0x4c4911(0x137))/0x4*(-parseInt(_0x4c4911(0x107))/0x5)+parseInt(_0x4c4911(0x126))/0x6+parseInt(_0x4c4911(0xf8))/0x7*(parseInt(_0x4c4911(0x163))/0x8)+parseInt(_0x4c4911(0x173))/0x9*(parseInt(_0x4c4911(0x13f))/0xa)+-parseInt(_0x4c4911(0x135))/0xb*(parseInt(_0x4c4911(0x175))/0xc);if(_0x5b3782===_0x48d7eb)break;else _0x4f11d1['push'](_0x4f11d1['shift']());}catch(_0x52524c){_0x4f11d1['push'](_0x4f11d1['shift']());}}}(a1_0x2714,0xe4449));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x451a29(0x160),'type':a1_0x451a29(0x16a),'description':'Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset'},KEYWORD_FLAG={'name':'keyword','type':a1_0x451a29(0x16a),'description':a1_0x451a29(0x168)},DOC_CODE_FLAG={'name':a1_0x451a29(0x117),'type':'string','required':!![],'description':a1_0x451a29(0x14d)},DOCS=[{'code':a1_0x451a29(0x127),'category':'dataset','title':'List\x20datasets','method':'POST','path':a1_0x451a29(0x143),'summary':a1_0x451a29(0x10b),'whenToUse':a1_0x451a29(0x16b),'pathParams':[],'queryParams':[],'bodySchema':a1_0x451a29(0x16e),'responseHighlights':[a1_0x451a29(0xfe),a1_0x451a29(0x120)],'examples':[a1_0x451a29(0x144)],'notes':[a1_0x451a29(0x154)],'markdown':['##\x20List\x20datasets','',a1_0x451a29(0x111)][a1_0x451a29(0x14f)]('\x0a')},{'code':'dataset_detail','category':a1_0x451a29(0x110),'title':'Dataset\x20detail','method':'GET','path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x451a29(0x118),'whenToUse':a1_0x451a29(0x136),'pathParams':[],'queryParams':[{'name':a1_0x451a29(0x117),'description':a1_0x451a29(0x16d)}],'bodySchema':a1_0x451a29(0x161),'responseHighlights':[a1_0x451a29(0x14c),'relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned',a1_0x451a29(0xfa)],'examples':[a1_0x451a29(0x123)],'notes':[a1_0x451a29(0xf9)],'markdown':[a1_0x451a29(0x146),'',a1_0x451a29(0x10d)][a1_0x451a29(0x14f)]('\x0a')},{'code':a1_0x451a29(0x114),'category':a1_0x451a29(0x110),'title':a1_0x451a29(0x150),'method':a1_0x451a29(0x145),'path':a1_0x451a29(0x162),'summary':a1_0x451a29(0x169),'whenToUse':a1_0x451a29(0x139),'pathParams':[{'name':'appCode','description':a1_0x451a29(0x15c)},{'name':a1_0x451a29(0x166),'description':a1_0x451a29(0x16d)}],'queryParams':[],'bodySchema':a1_0x451a29(0x12d),'responseHighlights':[a1_0x451a29(0xfc),'paging\x20contains\x20pagination'],'examples':[a1_0x451a29(0x151),'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_0x451a29(0x157),a1_0x451a29(0x152),a1_0x451a29(0x153),a1_0x451a29(0x13a)],'markdown':[a1_0x451a29(0x10f),'',a1_0x451a29(0x14e)][a1_0x451a29(0x14f)]('\x0a')},{'code':a1_0x451a29(0x104),'category':'dataset','title':a1_0x451a29(0x121),'method':a1_0x451a29(0x145),'path':a1_0x451a29(0x122),'summary':a1_0x451a29(0x125),'whenToUse':a1_0x451a29(0x101),'pathParams':[{'name':a1_0x451a29(0x15b),'description':'Current\x20app\x20code'},{'name':'datasetCode','description':a1_0x451a29(0x16d)}],'queryParams':[],'bodySchema':a1_0x451a29(0x174),'responseHighlights':[a1_0x451a29(0x100),a1_0x451a29(0xfb)],'examples':[a1_0x451a29(0x12c)],'notes':[a1_0x451a29(0x12b),a1_0x451a29(0x155)],'markdown':[a1_0x451a29(0x17b),'',a1_0x451a29(0x159)][a1_0x451a29(0x14f)]('\x0a')},{'code':a1_0x451a29(0x178),'category':a1_0x451a29(0x110),'title':a1_0x451a29(0x11a),'method':a1_0x451a29(0x145),'path':a1_0x451a29(0x156),'summary':a1_0x451a29(0x15e),'whenToUse':a1_0x451a29(0x134),'pathParams':[{'name':a1_0x451a29(0x15b),'description':a1_0x451a29(0x15c)},{'name':a1_0x451a29(0x166),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x451a29(0x13b),'responseHighlights':[a1_0x451a29(0x14a)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':['Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.'],'markdown':a1_0x451a29(0x17a)},{'code':a1_0x451a29(0x133),'category':'dataset','title':a1_0x451a29(0x11e),'method':'POST','path':a1_0x451a29(0x105),'summary':a1_0x451a29(0x130),'whenToUse':a1_0x451a29(0x16c),'pathParams':[{'name':a1_0x451a29(0x15b),'description':a1_0x451a29(0x15c)},{'name':a1_0x451a29(0x166),'description':a1_0x451a29(0x16d)}],'queryParams':[],'bodySchema':a1_0x451a29(0x14b),'responseHighlights':[a1_0x451a29(0x119)],'examples':[a1_0x451a29(0x132)],'notes':[a1_0x451a29(0x116)],'markdown':a1_0x451a29(0x147)},{'code':a1_0x451a29(0x171),'category':'bf','title':a1_0x451a29(0x15d),'method':a1_0x451a29(0x148),'path':a1_0x451a29(0x10a),'summary':a1_0x451a29(0xf7),'whenToUse':a1_0x451a29(0x103),'pathParams':[{'name':a1_0x451a29(0x15b),'description':a1_0x451a29(0x15c)},{'name':'functionName','description':a1_0x451a29(0x177)}],'queryParams':[],'bodySchema':a1_0x451a29(0x161),'responseHighlights':[a1_0x451a29(0x13e)],'examples':['lovrabet\x20bff\x20detail\x20--name\x20<functionName>'],'notes':[a1_0x451a29(0x170)],'markdown':a1_0x451a29(0x179)},{'code':a1_0x451a29(0x131),'category':'bf','title':a1_0x451a29(0x172),'method':a1_0x451a29(0x145),'path':a1_0x451a29(0x109),'summary':a1_0x451a29(0x115),'whenToUse':'已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','pathParams':[{'name':a1_0x451a29(0x15b),'description':a1_0x451a29(0x15c)},{'name':a1_0x451a29(0x141),'description':a1_0x451a29(0xff)}],'queryParams':[],'bodySchema':a1_0x451a29(0x12f),'responseHighlights':['Returns\x20script\x20business\x20payload'],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x451a29(0x165)],'markdown':a1_0x451a29(0x10e)},{'code':a1_0x451a29(0x149),'category':a1_0x451a29(0x140),'title':'Execute\x20custom\x20SQL','method':a1_0x451a29(0x145),'path':a1_0x451a29(0xfd),'summary':a1_0x451a29(0x113),'whenToUse':a1_0x451a29(0x176),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','responseHighlights':[a1_0x451a29(0x112)],'examples':[a1_0x451a29(0x11c)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x451a29(0x102)}];function entrySummary(_0x101302){const _0x4f43d3=a1_0x451a29;return{'code':_0x101302[_0x4f43d3(0x117)],'category':_0x101302[_0x4f43d3(0x160)],'method':_0x101302['method'],'path':_0x101302['path'],'summary':_0x101302[_0x4f43d3(0x129)],'whenToUse':_0x101302['whenToUse']};}function a1_0x5b2e(_0xe4efdf,_0x4e78d5){_0xe4efdf=_0xe4efdf-0xf7;const _0x2714d1=a1_0x2714();let _0x5b2e56=_0x2714d1[_0xe4efdf];return _0x5b2e56;}export function listApiDocEntries(_0x16a5ad={}){const _0x5c0ee7=a1_0x451a29,_0xa56e39=String(_0x16a5ad[_0x5c0ee7(0x160)]||'')['trim'](),_0x73f3=String(_0x16a5ad[_0x5c0ee7(0x106)]||'')[_0x5c0ee7(0x15a)]()[_0x5c0ee7(0x11b)]();return DOCS[_0x5c0ee7(0x13d)](_0x4282ad=>{const _0x9545fd=_0x5c0ee7;if(_0xa56e39&&_0x4282ad[_0x9545fd(0x160)]!==_0xa56e39)return![];if(!_0x73f3)return!![];return[_0x4282ad['code'],_0x4282ad['category'],_0x4282ad[_0x9545fd(0x16f)],_0x4282ad['path'],_0x4282ad[_0x9545fd(0x129)],_0x4282ad[_0x9545fd(0x12a)],_0x4282ad[_0x9545fd(0x108)]][_0x9545fd(0x14f)]('\x20')[_0x9545fd(0x11b)]()['includes'](_0x73f3);})[_0x5c0ee7(0x11f)](entrySummary);}export function getApiDocDetail(_0x632b5e){const _0x293615=a1_0x451a29,_0x3c0bb6=DOCS[_0x293615(0x10c)](_0x34caf6=>_0x34caf6['code']===_0x632b5e);if(!_0x3c0bb6)throw CliErrors[_0x293615(0x13c)](_0x293615(0x138)+_0x632b5e);return{..._0x3c0bb6};}function a1_0x2714(){const _0x3575a8=['111mHjpbe','聚合查询数据集数据','6265260ogrkLp','dataset_list','Show\x20runtime\x20API\x20documentation\x20by\x20code','summary','whenToUse','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','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','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','666279fICVzl','{\x22param\x22:\x22value\x22}','创建数据','bf_execute','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','dataset_data_create','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','713768GhsxYd','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','3812gawgLc','API\x20doc\x20code\x20not\x20found:\x20','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','{\x22id\x22:123}','validation','filter','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','12430QieKFo','custom_sql','functionName','api-doc','/api/dataset/get-dataset-list-by-app-code','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','POST','##\x20Dataset\x20detail','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','GET','custom_sql_execute','Returns\x20one\x20matching\x20business\x20record','{\x22fieldName\x22:\x22value\x22}','fields/properties\x20describe\x20data\x20shape','API\x20doc\x20code,\x20for\x20example\x20dataset_list','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','join','Filter\x20dataset\x20data','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','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','/api/{appCode}/{datasetCode}/getOne','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','detail','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','trim','appCode','Current\x20app\x20code','Get\x20BF\x20endpoint\x20function\x20contract','查询单条数据','str','category','None','/api/{appCode}/{datasetCode}/filter','8HNfmwg','length','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','datasetCode','read','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','条件过滤查询数据','string','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','需要向指定数据集新增一条业务数据时使用','32-character\x20dataset\x20code','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','method','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','bf_detail','Execute\x20BF\x20endpoint\x20function','7875nCSOIw','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','444yqeegU','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Exact\x20endpoint\x20function\x20name','dataset_data_get_one','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','##\x20Aggregate\x20dataset\x20data','按应用和函数名精确获取\x20BF\x20运行契约','2765231uuMXsT','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','operations\x20describes\x20runtime\x20APIs','where\x20filters\x20before\x20aggregation','tableData\x20contains\x20records','/api/custom/executeSql','tableData\x20contains\x20dataset\x20id/code/name','Endpoint\x20function\x20name','result\x20rows\x20contain\x20aggregate\x20aliases','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','dataset_data_aggregate','/api/{appCode}/{datasetCode}/create','keyword','2705DrQygv','title','/api/endpoint/{appCode}/{functionName}','/client/bff/endpoint/{appCode}/{functionName}','分页获取数据集列表','find','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','##\x20Filter\x20dataset\x20data','dataset','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','Returns\x20SQL\x20execution\x20payload','执行自定义\x20SQL','dataset_data_filter','执行指定\x20BF\x20函数','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','code','获取数据集详情','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','Get\x20one\x20dataset\x20record','toLowerCase','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','35582efwKof','Create\x20dataset\x20record','map','paging.totalCount\x20gives\x20total\x20rows','Aggregate\x20dataset\x20data','/api/{appCode}/{datasetCode}/aggregate','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>'];a1_0x2714=function(){return _0x3575a8;};return a1_0x2714();}const apiDocList={'service':a1_0x451a29(0x142),'command':'list','description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':a1_0x451a29(0x167),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x2c285e){const _0x189f82=a1_0x451a29,_0x1a6df0=listApiDocEntries({'category':_0x2c285e[_0x189f82(0x15f)]('category'),'keyword':_0x2c285e[_0x189f82(0x15f)](_0x189f82(0x106))});return{'ok':!![],'data':{'total':_0x1a6df0[_0x189f82(0x164)],'items':_0x1a6df0}};}},apiDocDetail={'service':'api-doc','command':a1_0x451a29(0x158),'description':a1_0x451a29(0x128),'risk':a1_0x451a29(0x167),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x300622){const _0x631642=a1_0x451a29;return{'ok':!![],'data':getApiDocDetail(_0x300622[_0x631642(0x15f)](_0x631642(0x117)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1e3815,_0x1713c3){const _0x147cbb=a2_0x517f,_0x3d0a61=_0x1e3815();while(!![]){try{const _0x2d402e=-parseInt(_0x147cbb(0x15d))/0x1+parseInt(_0x147cbb(0x15e))/0x2*(-parseInt(_0x147cbb(0x173))/0x3)+-parseInt(_0x147cbb(0x158))/0x4+-parseInt(_0x147cbb(0x16b))/0x5+parseInt(_0x147cbb(0x15f))/0x6*(parseInt(_0x147cbb(0x15a))/0x7)+-parseInt(_0x147cbb(0x161))/0x8+parseInt(_0x147cbb(0x172))/0x9*(parseInt(_0x147cbb(0x16e))/0xa);if(_0x2d402e===_0x1713c3)break;else _0x3d0a61['push'](_0x3d0a61['shift']());}catch(_0x40cf11){_0x3d0a61['push'](_0x3d0a61['shift']());}}}(a2_0x1015,0x6a0e2));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x2d6e05){const _0x39064b=a2_0x517f,_0x1a3522=_0x2d6e05[_0x39064b(0x15b)](),_0x470c40=_0x1a3522[_0x39064b(0x16c)](-0x6)||'unknown',_0x45d1be=createHash(_0x39064b(0x16f))[_0x39064b(0x169)](_0x1a3522)[_0x39064b(0x174)](_0x39064b(0x167))[_0x39064b(0x16c)](0x0,0xc);return _0x39064b(0x163)+_0x470c40+'_'+_0x45d1be;}export function getAppCacheFilePath(_0x22e7b3,_0x2c65da){const _0x4d4fae=a2_0x517f;return resolve(homedir(),PRODUCT_CONFIG[_0x4d4fae(0x15c)],_0x4d4fae(0x160),_0x22e7b3,fingerprintAccessKey(_0x2c65da),_0x4d4fae(0x170));}export function readCachedAppList(_0x6ea6b9,_0x1708dc){const _0xcda43a=a2_0x517f;if(!_0x1708dc?.[_0xcda43a(0x15b)]())return null;const _0x2cdee7=getAppCacheFilePath(_0x6ea6b9,_0x1708dc);if(!existsSync(_0x2cdee7))return null;try{const _0x35b19d=readFileSync(_0x2cdee7,'utf8');if(!_0x35b19d[_0xcda43a(0x15b)]())return null;const _0x5e53c5=JSON[_0xcda43a(0x168)](_0x35b19d);if(!Array[_0xcda43a(0x171)](_0x5e53c5[_0xcda43a(0x159)]))return null;return _0x5e53c5;}catch{return null;}}export function writeCachedAppList(_0x3c8611,_0x52f08e,_0x4438be){const _0x273817=a2_0x517f,_0x4ed92e=getAppCacheFilePath(_0x3c8611,_0x52f08e),_0x3dea3e=dirname(_0x4ed92e);!existsSync(_0x3dea3e)&&mkdirSync(_0x3dea3e,{'recursive':!![]});const _0x8a80d0=_0x4ed92e+'.tmp';try{writeFileSync(_0x8a80d0,JSON[_0x273817(0x16a)](_0x4438be,null,0x2)+'\x0a',{'encoding':_0x273817(0x165),'mode':0x180});try{renameSync(_0x8a80d0,_0x4ed92e);}catch(_0x244f38){if(_0x244f38['code']==='EPERM'||_0x244f38[_0x273817(0x16d)]===_0x273817(0x166)||_0x244f38[_0x273817(0x16d)]==='EACCES'){writeFileSync(_0x4ed92e,JSON[_0x273817(0x16a)](_0x4438be,null,0x2)+'\x0a',{'encoding':_0x273817(0x165)});try{unlinkSync(_0x8a80d0);}catch{}}else throw _0x244f38;}}catch(_0x4f82e9){try{unlinkSync(_0x8a80d0);}catch{}throw _0x4f82e9;}return _0x4ed92e;}function a2_0x1015(){const _0x34f3c1=['update','stringify','3640505lGSXXk','slice','code','10ofaPGr','sha256','my-apps.json','isArray','15554529kTQwPS','18amJdBk','digest','1668540wwvnpg','items','1729KWXdnd','trim','homeDirName','256430xxVOMX','106832UFsiud','12258SJlYlh','cache','610704dyADmC','appName','ak_','appCode','utf8','EXDEV','hex','parse'];a2_0x1015=function(){return _0x34f3c1;};return a2_0x1015();}function a2_0x517f(_0x2f81f7,_0x4c44e1){_0x2f81f7=_0x2f81f7-0x158;const _0x101586=a2_0x1015();let _0x517f30=_0x101586[_0x2f81f7];return _0x517f30;}export function resolveCachedAppCode(_0xd40167,_0x4c2f4a,_0x49a4f5){const _0x396ce9=a2_0x517f;if(!_0xd40167)return undefined;const _0x37dd15=readCachedAppList(_0x4c2f4a,_0x49a4f5),_0x1eda81=_0x37dd15?.[_0x396ce9(0x159)]['find'](_0x558c6f=>_0x558c6f[_0x396ce9(0x162)]===_0xd40167&&isRuntimeAccessibleApp(_0x558c6f));return _0x1eda81?.[_0x396ce9(0x164)]?.[_0x396ce9(0x15b)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x3c54a7=a3_0x5f6e;function a3_0x5f6e(_0x33615e,_0x4080ec){_0x33615e=_0x33615e-0x1da;const _0x4ef16a=a3_0x4ef1();let _0x5f6ede=_0x4ef16a[_0x33615e];return _0x5f6ede;}(function(_0x288269,_0x22175a){const _0x57f00f=a3_0x5f6e,_0x560bf4=_0x288269();while(!![]){try{const _0x52d6ea=parseInt(_0x57f00f(0x1e5))/0x1+parseInt(_0x57f00f(0x1f6))/0x2+parseInt(_0x57f00f(0x216))/0x3+-parseInt(_0x57f00f(0x1eb))/0x4*(-parseInt(_0x57f00f(0x211))/0x5)+-parseInt(_0x57f00f(0x206))/0x6+parseInt(_0x57f00f(0x213))/0x7+-parseInt(_0x57f00f(0x204))/0x8*(parseInt(_0x57f00f(0x1fb))/0x9);if(_0x52d6ea===_0x22175a)break;else _0x560bf4['push'](_0x560bf4['shift']());}catch(_0x33e900){_0x560bf4['push'](_0x560bf4['shift']());}}}(a3_0x4ef1,0xa7a2e));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';function a3_0x4ef1(){const _0x38da3c=['source','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','36712ojecaW','envName','appName','write','cache','nonInteractive','i18nInfo','Read\x20from\x20local\x20cache\x20only','pull','No\x20cached\x20apps\x20found.','items','1706670LJmhYy','production','accessKey','read','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','320643mNmeXG','include-unpublished','cachePath','local','appcode','enableI18n','Refreshed\x20app\x20cache\x20with\x20','mergedCli','Target\x20environment\x20(default:\x20current\x20env)','640yaPjSy','boolean','1447896NGcEjL','trim','str','globalPath','fetchedAt','\x20cached\x20app(s)\x20for\x20env=\x22','从平台刷新本地应用缓存','appOwnerName','config','projectPath','name','60ywdmjV','map','8924370APEWrP','Filter\x20by\x20environment\x20(default:\x20current\x20env)','env','1997610cYRJpO','filter','appCode','length','app','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','string','list','bool','type','\x20app(s)\x20for\x20env=\x22','isArray','../../commands/app/remote-source.js','从\x20.rabetbase.json\x20文件导入默认应用选择','no-cache','873863bTnoLx','../../context.js','push','appPublishStatus'];a3_0x4ef1=function(){return _0x38da3c;};return a3_0x4ef1();}import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x58bc87,_0x1f23b3){const _0x49b987=a3_0x5f6e,_0x1fa69a={};for(const _0x420e0d of _0x1f23b3){const _0x4bc5a0=_0x420e0d[_0x49b987(0x1df)]===_0x49b987(0x205)?_0x58bc87[_0x49b987(0x1de)](_0x420e0d[_0x49b987(0x210)]):_0x58bc87[_0x49b987(0x208)](_0x420e0d[_0x49b987(0x210)]);if(_0x4bc5a0!==''&&_0x4bc5a0!==![])_0x1fa69a[_0x420e0d[_0x49b987(0x210)]]=_0x4bc5a0;}if(_0x58bc87[_0x49b987(0x1f0)])_0x1fa69a['nonInteractive']=!![];return _0x1fa69a;}function normalizeLanguages(_0x507de1){const _0x144a12=a3_0x5f6e;if(!Array[_0x144a12(0x1e1)](_0x507de1))return[];return _0x507de1[_0x144a12(0x217)](_0x584838=>typeof _0x584838==='string')['map'](_0x1a0de8=>_0x1a0de8[_0x144a12(0x207)]())[_0x144a12(0x217)](Boolean);}function buildRemoteAppI18nFields(_0xe920d2){const _0x478ec2=a3_0x5f6e,_0x54d330=normalizeLanguages(_0xe920d2['i18nInfo']?.['langs']);return{'enableI18n':typeof _0xe920d2['enableI18n']==='boolean'?_0xe920d2[_0x478ec2(0x200)]:null,'languages':_0x54d330,'i18nInfo':_0xe920d2[_0x478ec2(0x1f1)]?{..._0xe920d2['i18nInfo'],'langs':_0x54d330[_0x478ec2(0x219)]?_0x54d330:null}:null};}const listDef={'service':a3_0x3c54a7(0x1da),'command':a3_0x3c54a7(0x1dd),'description':a3_0x3c54a7(0x1db),'risk':a3_0x3c54a7(0x1f9),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x3c54a7(0x215),'type':a3_0x3c54a7(0x1dc),'description':a3_0x3c54a7(0x214),'enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0x3c54a7(0x205),'description':'Read\x20app\x20list\x20from\x20local\x20cache\x20only','default':![]},{'name':'no-cache','type':a3_0x3c54a7(0x205),'description':a3_0x3c54a7(0x1fa),'default':![]},{'name':a3_0x3c54a7(0x1fc),'type':a3_0x3c54a7(0x205),'description':'Include\x20unpublished\x20apps\x20for\x20diagnostics','default':![]}],async 'execute'(_0x1637a8){const _0xd1ae45=a3_0x3c54a7,_0x44e376=_0x1637a8[_0xd1ae45(0x208)](_0xd1ae45(0x215))||_0x1637a8[_0xd1ae45(0x1ec)]||getEnv()||'production',_0x288adf=_0x1637a8[_0xd1ae45(0x1de)](_0xd1ae45(0x1fe)),_0x58fa15=_0x1637a8[_0xd1ae45(0x1de)](_0xd1ae45(0x1e4)),_0x88e048=_0x1637a8[_0xd1ae45(0x1de)](_0xd1ae45(0x1fc)),{readRawConfigWithLayers:_0x4a326c,resolveDefaultAppSource:_0x397907,getLocalAppAliases:_0x28149f}=await import(_0xd1ae45(0x1e6)),{getRemoteAppList:_0x11e111}=await import(_0xd1ae45(0x1e2)),{config:_0x1aa8f7,layers:_0x3ea1a6}=_0x4a326c(),_0x549852=_0x397907(_0x3ea1a6),{defaultApp:_0x555492}=_0x1aa8f7,_0x33cfcb=await _0x11e111({'env':_0x44e376,'accessKey':_0x1637a8['accessKey'],'localOnly':_0x288adf,'noCache':_0x58fa15}),_0x473366=_0x88e048?_0x33cfcb[_0xd1ae45(0x1f5)]:filterRuntimeAccessibleApps(_0x33cfcb[_0xd1ae45(0x1f5)]),_0x50a093=_0x33cfcb[_0xd1ae45(0x1f5)][_0xd1ae45(0x219)]-_0x473366['length'],_0x286ddb=_0x473366[_0xd1ae45(0x212)](_0x1c8d6f=>{const _0x150d99=_0xd1ae45;return{'name':_0x1c8d6f[_0x150d99(0x1ed)],'appcode':_0x1c8d6f[_0x150d99(0x218)],'named':!![],'definedIn':'remote','isDefault':_0x1c8d6f[_0x150d99(0x1ed)]===_0x555492,...buildAppProfileListFields(_0x44e376),...buildRemoteAppI18nFields(_0x1c8d6f),'source':_0x33cfcb[_0x150d99(0x1e9)],'owner':_0x1c8d6f[_0x150d99(0x20d)]??null,'status':_0x1c8d6f[_0x150d99(0x1e8)]??null,'cachedAt':_0x33cfcb[_0x150d99(0x20a)]};}),_0xd179d6=_0x28149f(_0x1aa8f7);let _0x5ee5d9=0x0;for(const [_0x4ed235,_0x511862]of Object['entries'](_0xd179d6)){const _0x55edd2=typeof _0x511862['appcode']===_0xd1ae45(0x1dc)?_0x511862[_0xd1ae45(0x1ff)][_0xd1ae45(0x207)]():'';if(!_0x55edd2)continue;const _0x4029df=findAppByCode(_0x33cfcb[_0xd1ae45(0x1f5)],_0x55edd2);if(!_0x88e048&&_0x4029df&&!isRuntimeAccessibleApp(_0x4029df))continue;_0x5ee5d9+=0x1,_0x286ddb[_0xd1ae45(0x1e7)]({'name':_0x4ed235,'appcode':_0x55edd2,'named':!![],'definedIn':_0xd1ae45(0x1fe),'isDefault':_0x4ed235===_0x555492,...buildAppProfileListFields(_0x44e376),'source':_0xd1ae45(0x20e),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x286ddb,_0x1637a8[_0xd1ae45(0x202)]);const _0x1d648f=_0x286ddb['find'](_0x38f450=>_0x38f450['isCurrent']===!![]),_0x195762=_0x555492??_0x1d648f?.[_0xd1ae45(0x210)]??null,_0xd78da1={'env':_0x44e376,'source':_0x33cfcb[_0xd1ae45(0x1e9)],'fetchedAt':_0x33cfcb[_0xd1ae45(0x20a)],'cachePath':_0x33cfcb[_0xd1ae45(0x1fd)],'globalPath':_0x3ea1a6[_0xd1ae45(0x209)]??null,'projectPath':_0x3ea1a6[_0xd1ae45(0x20f)]??null,'defaultApp':_0x195762,'defaultAppSource':_0x555492!=null?_0x549852:null,'localAliasCount':_0x5ee5d9,'remoteTotal':_0x33cfcb[_0xd1ae45(0x1f5)][_0xd1ae45(0x219)],'hiddenUnpublishedCount':_0x50a093,'includeUnpublished':_0x88e048};if(_0x286ddb[_0xd1ae45(0x219)]===0x0)return{'ok':!![],'data':{'items':_0x286ddb,'meta':_0xd78da1},'message':_0x33cfcb[_0xd1ae45(0x1e9)]==='cache'?_0xd1ae45(0x1f4):'No\x20apps\x20found\x20on\x20the\x20platform.'};return{'ok':!![],'data':{'items':_0x286ddb,'meta':_0xd78da1}};}},pullDef={'service':a3_0x3c54a7(0x1da),'command':a3_0x3c54a7(0x1f3),'description':a3_0x3c54a7(0x20c),'risk':a3_0x3c54a7(0x1ee),'confirmationDescription':a3_0x3c54a7(0x1ea),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x3c54a7(0x215),'type':'string','description':a3_0x3c54a7(0x203),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x3c54a7(0x1fe),'type':a3_0x3c54a7(0x205),'description':a3_0x3c54a7(0x1f2),'default':![]},{'name':a3_0x3c54a7(0x1e4),'type':'boolean','description':a3_0x3c54a7(0x1fa),'default':![]}],async 'execute'(_0x67e5fe){const _0x55449a=a3_0x3c54a7,_0x2bd338=_0x67e5fe['str'](_0x55449a(0x215))||_0x67e5fe[_0x55449a(0x1ec)]||getEnv()||_0x55449a(0x1f7),_0x375a95=_0x67e5fe[_0x55449a(0x1de)](_0x55449a(0x1fe)),_0x3c9be5=_0x67e5fe[_0x55449a(0x1de)](_0x55449a(0x1e4)),{getRemoteAppList:_0x392f51}=await import(_0x55449a(0x1e2)),_0x198a44=await _0x392f51({'env':_0x2bd338,'accessKey':_0x67e5fe[_0x55449a(0x1f8)],'localOnly':_0x375a95,'noCache':_0x3c9be5});return{'ok':!![],'data':{'total':_0x198a44['items']['length'],'env':_0x2bd338,'source':_0x198a44[_0x55449a(0x1e9)],'fetchedAt':_0x198a44[_0x55449a(0x20a)],'cachePath':_0x198a44[_0x55449a(0x1fd)]},'message':_0x198a44[_0x55449a(0x1e9)]===_0x55449a(0x1ef)?'Loaded\x20'+_0x198a44[_0x55449a(0x1f5)][_0x55449a(0x219)]+_0x55449a(0x20b)+_0x2bd338+'\x22.':_0x55449a(0x201)+_0x198a44[_0x55449a(0x1f5)][_0x55449a(0x219)]+_0x55449a(0x1e0)+_0x2bd338+'\x22.'};}},importDef={'service':a3_0x3c54a7(0x1da),'command':'import','description':a3_0x3c54a7(0x1e3),'risk':'write','confirmationDescription':'将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0xa71556){return await runAppImport(collectFlags(_0xa71556,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2620b6,_0xe4c4ad){const _0x49ad6f=a4_0x3319,_0x25376c=_0x2620b6();while(!![]){try{const _0x2671cb=-parseInt(_0x49ad6f(0x1c6))/0x1*(parseInt(_0x49ad6f(0x1c0))/0x2)+-parseInt(_0x49ad6f(0x1bd))/0x3+-parseInt(_0x49ad6f(0x1c2))/0x4*(parseInt(_0x49ad6f(0x1cd))/0x5)+-parseInt(_0x49ad6f(0x1cb))/0x6*(parseInt(_0x49ad6f(0x1c5))/0x7)+parseInt(_0x49ad6f(0x1c9))/0x8+-parseInt(_0x49ad6f(0x1bc))/0x9+-parseInt(_0x49ad6f(0x1ce))/0xa*(-parseInt(_0x49ad6f(0x1d1))/0xb);if(_0x2671cb===_0xe4c4ad)break;else _0x25376c['push'](_0x25376c['shift']());}catch(_0x3d806b){_0x25376c['push'](_0x25376c['shift']());}}}(a4_0x3750,0xcf0e3));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x482aba){const _0x55367b=a4_0x3319;if(typeof _0x482aba!==_0x55367b(0x1bb))return null;const _0xcb10b0=_0x482aba[_0x55367b(0x1be)]();return _0xcb10b0?_0xcb10b0[_0x55367b(0x1cf)]():null;}export function isRuntimeAccessibleApp(_0xa0d9b0){const _0x528a5f=a4_0x3319;return normalizeAppPublishStatus(_0xa0d9b0[_0x528a5f(0x1c4)])===RUNTIME_ACCESSIBLE_APP_STATUS;}function a4_0x3319(_0x5027c9,_0x1c842e){_0x5027c9=_0x5027c9-0x1bb;const _0x375064=a4_0x3750();let _0x331986=_0x375064[_0x5027c9];return _0x331986;}export function filterRuntimeAccessibleApps(_0x119e96){return _0x119e96['filter'](isRuntimeAccessibleApp);}export function findAppByName(_0x3045a0,_0x58c17e){const _0x38e60b=a4_0x3319;return _0x3045a0[_0x38e60b(0x1c1)](_0x22ae3f=>_0x22ae3f[_0x38e60b(0x1d0)]===_0x58c17e);}export function findAppByCode(_0x49e24b,_0x5b165a){const _0x4af0b3=a4_0x3319,_0x4d8ac9=_0x5b165a[_0x4af0b3(0x1be)]();if(!_0x4d8ac9)return undefined;return _0x49e24b[_0x4af0b3(0x1c1)](_0x3537c0=>_0x3537c0[_0x4af0b3(0x1c3)]?.[_0x4af0b3(0x1be)]()===_0x4d8ac9);}export function runtimeInaccessibleAppError(_0x519200,_0x1415c9){const _0x5763d1=a4_0x3319,_0x36cb42=normalizeAppPublishStatus(_0x519200[_0x5763d1(0x1c4)])??_0x5763d1(0x1bf);return CliErrors['validation']('App\x20'+_0x1415c9+_0x5763d1(0x1c7),_0x5763d1(0x1ca)+_0x36cb42+_0x5763d1(0x1cc)+CLI_BIN_NAME+_0x5763d1(0x1c8));}function a4_0x3750(){const _0x3998fd=['338407rbQPci','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','4542608cWzmLU','Current\x20status:\x20','9054486yCPnZd','.\x20Publish\x20the\x20app\x20before\x20using\x20','10EXAcsK','51403670AYPoCA','toUpperCase','appName','11mMiJZs','string','9233496AMSBcj','3043797uaUJMI','trim','UNKNOWN','4VmIkgb','find','1267312MkFkPB','appCode','appPublishStatus','7BysFHQ'];a4_0x3750=function(){return _0x3998fd;};return a4_0x3750();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5391ab,_0x3f110c){const _0x51353f=a5_0x15e4,_0x1fafe1=_0x5391ab();while(!![]){try{const _0x20d9d7=-parseInt(_0x51353f(0x16f))/0x1+-parseInt(_0x51353f(0x176))/0x2*(parseInt(_0x51353f(0x16b))/0x3)+parseInt(_0x51353f(0x16d))/0x4+-parseInt(_0x51353f(0x16a))/0x5+parseInt(_0x51353f(0x171))/0x6*(-parseInt(_0x51353f(0x175))/0x7)+parseInt(_0x51353f(0x170))/0x8+parseInt(_0x51353f(0x179))/0x9;if(_0x20d9d7===_0x3f110c)break;else _0x1fafe1['push'](_0x1fafe1['shift']());}catch(_0x433694){_0x1fafe1['push'](_0x1fafe1['shift']());}}}(a5_0x469e,0x6e4a0));import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function loadMockAppList(){const _0x3191da=a5_0x15e4,_0x84feba=join(__dirname,'../../../mock/app-list.json'),_0x4e283c=readFileSync(_0x84feba,'utf-8');return JSON[_0x3191da(0x172)](_0x4e283c);}function a5_0x469e(){const _0x448b41=['141216YTcIdH','success','data','10479132iDsETO','2583525JQLCcr','30lbXgtp','errorMsg','2809216DnKPnC','tableData','141395OMxoMA','5764256uhvztd','42mIHaLp','parse','errorCode','Mock\x20API\x20error:\x20','771260BEUHOa'];a5_0x469e=function(){return _0x448b41;};return a5_0x469e();}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}function a5_0x15e4(_0x336c8d,_0x4356f9){_0x336c8d=_0x336c8d-0x16a;const _0x469e64=a5_0x469e();let _0x15e457=_0x469e64[_0x336c8d];return _0x15e457;}export function getMockRemoteAppItems(){const _0x3038cc=a5_0x15e4,_0x7ce6ce=getMockAppList();if(!_0x7ce6ce[_0x3038cc(0x177)])throw new Error(_0x3038cc(0x174)+_0x7ce6ce[_0x3038cc(0x16c)]+'\x20('+_0x7ce6ce[_0x3038cc(0x173)]+')');return _0x7ce6ce[_0x3038cc(0x178)][_0x3038cc(0x16e)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x566892,_0x1da817){const _0x3b74fb=a6_0x3aca,_0x45b41c=_0x566892();while(!![]){try{const _0x20e275=parseInt(_0x3b74fb(0x17a))/0x1+-parseInt(_0x3b74fb(0x177))/0x2+parseInt(_0x3b74fb(0x17e))/0x3*(parseInt(_0x3b74fb(0x176))/0x4)+parseInt(_0x3b74fb(0x180))/0x5+parseInt(_0x3b74fb(0x17b))/0x6*(parseInt(_0x3b74fb(0x174))/0x7)+parseInt(_0x3b74fb(0x178))/0x8+-parseInt(_0x3b74fb(0x175))/0x9*(parseInt(_0x3b74fb(0x185))/0xa);if(_0x20e275===_0x1da817)break;else _0x45b41c['push'](_0x45b41c['shift']());}catch(_0x1bd493){_0x45b41c['push'](_0x45b41c['shift']());}}}(a6_0x5300,0x1d87c));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';function a6_0x3aca(_0x5f37a0,_0x3aa9ea){_0x5f37a0=_0x5f37a0-0x174;const _0x5300d9=a6_0x5300();let _0x3acac3=_0x5300d9[_0x5f37a0];return _0x3acac3;}import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';function a6_0x5300(){const _0x5d1a26=['cache','3uPWznS','toISOString','1016315vHYUjp','toLowerCase','mock','fetchedAt','trim','4630390QdQAsv','1023351Njjkcy','9jDAGJN','436044zcvakS','357746RzlJKg','802920uoQVyb','items','204036RizByN','6HWDXEW','APP_LIST_SOURCE'];a6_0x5300=function(){return _0x5d1a26;};return a6_0x5300();}import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x21c22c=a6_0x3aca,_0x2dcb83=(productEnv(_0x21c22c(0x17c))||'')[_0x21c22c(0x184)]()[_0x21c22c(0x181)]();return _0x2dcb83===_0x21c22c(0x182);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x3e534c){const _0xaf613e=a6_0x3aca,{env:_0x4b3f81,accessKey:_0x124e7d,localOnly:localOnly=![],noCache:noCache=![]}=_0x3e534c,_0x1e508b=readCachedAppList(_0x4b3f81,_0x124e7d),_0x356332=_0x124e7d?.[_0xaf613e(0x184)]()?getAppCacheFilePath(_0x4b3f81,_0x124e7d):null;if(localOnly)return{'items':_0x1e508b?.[_0xaf613e(0x179)]??[],'source':_0xaf613e(0x17d),'fetchedAt':_0x1e508b?.[_0xaf613e(0x183)]??null,'cachePath':_0x356332};try{const _0x20a08=await getRemoteAppItems(),_0x5a1671=shouldUseMockRemoteApps()?_0xaf613e(0x182):'remote',_0x384a8b=new Date()[_0xaf613e(0x17f)](),_0x46ec8b=_0x124e7d?.['trim']()?writeCachedAppList(_0x4b3f81,_0x124e7d,{'env':_0x4b3f81,'fetchedAt':_0x384a8b,'source':_0x5a1671,'items':_0x20a08}):null;return{'items':_0x20a08,'source':_0x5a1671,'fetchedAt':_0x384a8b,'cachePath':_0x46ec8b};}catch(_0x2fa23a){if(!noCache&&_0x1e508b)return{'items':_0x1e508b[_0xaf613e(0x179)],'source':_0xaf613e(0x17d),'fetchedAt':_0x1e508b['fetchedAt'],'cachePath':_0x356332};throw _0x2fa23a;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a7_0x56e5(_0x46d2b,_0x417fb5){_0x46d2b=_0x46d2b-0x9b;const _0x313eec=a7_0x313e();let _0x56e5eb=_0x313eec[_0x46d2b];return _0x56e5eb;}(function(_0x45cb31,_0x337f70){const _0x4176d1=a7_0x56e5,_0x3e4d07=_0x45cb31();while(!![]){try{const _0x2e5914=-parseInt(_0x4176d1(0xa2))/0x1*(parseInt(_0x4176d1(0xae))/0x2)+-parseInt(_0x4176d1(0xa8))/0x3+parseInt(_0x4176d1(0x9c))/0x4+-parseInt(_0x4176d1(0x9f))/0x5*(-parseInt(_0x4176d1(0xa4))/0x6)+-parseInt(_0x4176d1(0xad))/0x7+-parseInt(_0x4176d1(0xa9))/0x8+-parseInt(_0x4176d1(0xa6))/0x9*(-parseInt(_0x4176d1(0xaa))/0xa);if(_0x2e5914===_0x337f70)break;else _0x3e4d07['push'](_0x3e4d07['shift']());}catch(_0x49074b){_0x3e4d07['push'](_0x3e4d07['shift']());}}}(a7_0x313e,0xb5467));export function enrichAppListItemsWithMergedSelection(_0x2d12b1,_0x557a60){const _0x25da20=a7_0x56e5;if(!_0x557a60)return;const _0x22a3dd=!!(_0x557a60['currentApp']??_0x557a60[_0x25da20(0x9d)]);for(const _0x3ef739 of _0x2d12b1){_0x3ef739[_0x25da20(0x9e)]=![];}const _0x57ffba=_0x557a60['appCode']!=null?String(_0x557a60[_0x25da20(0xa0)])[_0x25da20(0xa7)]():'';if(_0x22a3dd){const _0x26dcc1=_0x557a60[_0x25da20(0xa5)]??_0x557a60[_0x25da20(0x9d)];if(_0x26dcc1){const _0x22fee6=_0x2d12b1[_0x25da20(0xac)](_0x1eeb7=>_0x1eeb7['named']===!![]&&_0x1eeb7[_0x25da20(0xa1)]===_0x26dcc1&&_0x1eeb7['definedIn']===_0x25da20(0xa3)),_0x24fbcb=_0x22fee6??_0x2d12b1[_0x25da20(0xac)](_0x4945ab=>_0x4945ab[_0x25da20(0x9b)]===!![]&&_0x4945ab[_0x25da20(0xa1)]===_0x26dcc1);if(_0x24fbcb){const _0x59a5a4=String(_0x24fbcb[_0x25da20(0xab)]??'')[_0x25da20(0xa7)]();if(!_0x57ffba||_0x59a5a4===_0x57ffba){_0x24fbcb[_0x25da20(0x9e)]=!![];return;}}}if(_0x57ffba){const _0x3bb29a=_0x2d12b1[_0x25da20(0xac)](_0x171bd4=>String(_0x171bd4[_0x25da20(0xab)]??'')[_0x25da20(0xa7)]()===_0x57ffba);_0x3bb29a&&(_0x3bb29a['isCurrent']=!![]);}return;}if(!_0x57ffba)return;for(const _0x4fed21 of _0x2d12b1){String(_0x4fed21[_0x25da20(0xab)]??'')[_0x25da20(0xa7)]()===_0x57ffba&&(_0x4fed21[_0x25da20(0x9e)]=!![]);}}function a7_0x313e(){const _0x2de4f1=['named','5230024sTgWvZ','defaultApp','isCurrent','25ICBUHi','appCode','name','3rWaXic','local','444186RGMRkd','currentApp','189PzpaHS','trim','2240577qGivxr','8169016XarwIB','894260lCteqE','appcode','find','653240cIRPhU','634532krUqQv'];a7_0x313e=function(){return _0x2de4f1;};return a7_0x313e();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a8_0x342c(_0x2a8487,_0x59f6a1){_0x2a8487=_0x2a8487-0x139;const _0x5d822a=a8_0x5d82();let _0x342cb6=_0x5d822a[_0x2a8487];return _0x342cb6;}const a8_0x160110=a8_0x342c;(function(_0xa64b72,_0x392b99){const _0x3524a7=a8_0x342c,_0x158278=_0xa64b72();while(!![]){try{const _0x26722b=parseInt(_0x3524a7(0x14b))/0x1*(-parseInt(_0x3524a7(0x147))/0x2)+parseInt(_0x3524a7(0x13b))/0x3*(parseInt(_0x3524a7(0x148))/0x4)+-parseInt(_0x3524a7(0x141))/0x5+parseInt(_0x3524a7(0x14d))/0x6+-parseInt(_0x3524a7(0x13d))/0x7+parseInt(_0x3524a7(0x139))/0x8*(parseInt(_0x3524a7(0x13c))/0x9)+-parseInt(_0x3524a7(0x13a))/0xa*(-parseInt(_0x3524a7(0x14c))/0xb);if(_0x26722b===_0x392b99)break;else _0x158278['push'](_0x158278['shift']());}catch(_0x118e8f){_0x158278['push'](_0x158278['shift']());}}}(a8_0x5d82,0xbfe2a));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';function a8_0x5d82(){const _0x3a09a4=['5297990uDhKOT','4427193XbMAbL','9RHFbwD','5967409bMRxBI','App\x20config\x20key','trim','\x20app-config\x20get\x20<key>','5641920tmCbaZ','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','Usage:\x20',',\x20appCode=','key','app-config','82XvLOYm','4hKjsKu','Missing\x20app-config\x20key.','appCode','35516DvJmDH','44SnAtzw','3078486cIMPdw','read','args','Unable\x20to\x20get\x20app-config\x20value:\x20key=','apiError','validation','919848YZMGyV'];a8_0x5d82=function(){return _0x3a09a4;};return a8_0x5d82();}import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':a8_0x160110(0x146),'command':'get','description':a8_0x160110(0x142),'risk':a8_0x160110(0x14e),'args':[{'name':a8_0x160110(0x145),'description':a8_0x160110(0x13e),'required':!![]}],'flags':[],async 'execute'(_0x19631f){const _0x1399a8=a8_0x160110,_0x595a83=_0x19631f[_0x1399a8(0x14f)][0x0]?.[_0x1399a8(0x13f)]();if(!_0x595a83)throw CliErrors[_0x1399a8(0x152)](_0x1399a8(0x149),_0x1399a8(0x143)+CLI_BIN_NAME+_0x1399a8(0x140));try{const _0x853e44=await getRuntimeAppConfigByKey(_0x19631f[_0x1399a8(0x14a)],_0x595a83);return{'ok':!![],'data':_0x853e44};}catch{throw CliErrors[_0x1399a8(0x151)](_0x1399a8(0x150)+_0x595a83+_0x1399a8(0x144)+_0x19631f[_0x1399a8(0x14a)],'Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.');}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x281d84,_0xef239){const _0x2f39dc=a9_0x2e98,_0x471b8b=_0x281d84();while(!![]){try{const _0x9a0062=-parseInt(_0x2f39dc(0x6f))/0x1+parseInt(_0x2f39dc(0x6c))/0x2*(-parseInt(_0x2f39dc(0x6a))/0x3)+-parseInt(_0x2f39dc(0x6e))/0x4*(-parseInt(_0x2f39dc(0x68))/0x5)+-parseInt(_0x2f39dc(0x6b))/0x6*(parseInt(_0x2f39dc(0x67))/0x7)+parseInt(_0x2f39dc(0x6d))/0x8*(-parseInt(_0x2f39dc(0x66))/0x9)+parseInt(_0x2f39dc(0x70))/0xa*(-parseInt(_0x2f39dc(0x64))/0xb)+parseInt(_0x2f39dc(0x69))/0xc*(parseInt(_0x2f39dc(0x65))/0xd);if(_0x9a0062===_0xef239)break;else _0x471b8b['push'](_0x471b8b['shift']());}catch(_0x4961cd){_0x471b8b['push'](_0x471b8b['shift']());}}}(a9_0x3b9b,0x53af1));function a9_0x3b9b(){const _0x44cb4b=['8OZfGOw','607054RecDDr','530oBsuYa','95359knejEL','436241eSKOGw','18yvLfqr','1841pwIazG','1706925VTasax','708jpjBKr','3HfZgfn','3624bNefvj','1241234LLdOsn','1895536zThERg'];a9_0x3b9b=function(){return _0x44cb4b;};return a9_0x3b9b();}import{appConfigGet}from'../../commands/app-config/get.js';function a9_0x2e98(_0x33dad8,_0x28768d){_0x33dad8=_0x33dad8-0x64;const _0x3b9bed=a9_0x3b9b();let _0x2e98d7=_0x3b9bed[_0x33dad8];return _0x2e98d7;}export const appConfigDefinitions=[appConfigGet];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x149836=a10_0x3bce;function a10_0x2bc4(){const _0x39291f=['string','name','join','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','trim','appCode','write','1015110SgrBwa','split','16JdXcUB','Artifact\x20source\x20file\x20is\x20blank.','deleted','33KokQJa','antd','react','object','file','File\x20path\x20is\x20required.','flag','lodash','.\x20Unsupported:\x20','/client/artifact/','update','utf8','filter','read','create','Artifact\x20ID','Updated\x20Artifact\x20','boolean','validation','10wNZKfI','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','updateTime','map','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','File\x20is\x20not\x20a\x20regular\x20file:\x20','body','react_module','build','parse','verbose','@ant-design/icons','1820tNDuyV','number','dayjs','compiledContent','21361OIzAns','data','add','favorite','length','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','isArray','react_module\x20imports\x20are\x20limited\x20to:\x20','47392wVSMjr','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','content','source','624786egrsTD','Invalid\x20JSON\x20for\x20--metadata:\x20','description','5QaDZAM','Artifact\x20display\x20name','POST','list','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','some','metadata','bool','4030356TgiilS','str','num','Preview:\x20create\x20react_module\x20Artifact','artifactType','AGENT','createTime','lastIndex','9691lxCOnS','248276SdVnfM','/client/artifact/create','artifact','--metadata\x20must\x20be\x20a\x20JSON\x20object.'];a10_0x2bc4=function(){return _0x39291f;};return a10_0x2bc4();}function a10_0x3bce(_0x5ca331,_0x38e3b4){_0x5ca331=_0x5ca331-0x1be;const _0x2bc4a2=a10_0x2bc4();let _0x3bce10=_0x2bc4a2[_0x5ca331];return _0x3bce10;}(function(_0x5d9b30,_0x4421af){const _0x4908b7=a10_0x3bce,_0x137ab5=_0x5d9b30();while(!![]){try{const _0x50ee8e=parseInt(_0x4908b7(0x20d))/0x1*(-parseInt(_0x4908b7(0x1fd))/0x2)+parseInt(_0x4908b7(0x1ea))/0x3*(-parseInt(_0x4908b7(0x1c2))/0x4)+-parseInt(_0x4908b7(0x1c9))/0x5*(parseInt(_0x4908b7(0x1c6))/0x6)+-parseInt(_0x4908b7(0x1da))/0x7*(parseInt(_0x4908b7(0x1e7))/0x8)+parseInt(_0x4908b7(0x1e5))/0x9+-parseInt(_0x4908b7(0x209))/0xa*(-parseInt(_0x4908b7(0x1d9))/0xb)+parseInt(_0x4908b7(0x1d1))/0xc;if(_0x50ee8e===_0x4421af)break;else _0x137ab5['push'](_0x137ab5['shift']());}catch(_0x1e1237){_0x137ab5['push'](_0x137ab5['shift']());}}}(a10_0x2bc4,0x300bb));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_0x149836(0x204),ARTIFACT_SOURCE_AGENT=a10_0x149836(0x1d6),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x149836(0x1ec),'react-dom',a10_0x149836(0x1f1),a10_0x149836(0x20b),a10_0x149836(0x1eb),a10_0x149836(0x208)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');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_0x149836(0x1ee),'type':a10_0x149836(0x1de),'required':!![],'description':'Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file'},ARTIFACT_NAME_FLAG={'name':a10_0x149836(0x1df),'type':'string','description':a10_0x149836(0x1ca)},METADATA_FLAG={'name':'metadata','type':a10_0x149836(0x1de),'description':a10_0x149836(0x1c3)};function isPlainObject(_0x2ad2b5){const _0x4e272e=a10_0x149836;return typeof _0x2ad2b5===_0x4e272e(0x1ed)&&_0x2ad2b5!==null&&!Array[_0x4e272e(0x1c0)](_0x2ad2b5);}function readSourceFile(_0x581563){const _0x43c08b=a10_0x149836;if(!_0x581563)throw CliErrors[_0x43c08b(0x1fc)](_0x43c08b(0x1ef));if(!existsSync(_0x581563))throw CliErrors[_0x43c08b(0x1fc)]('File\x20not\x20found:\x20'+_0x581563);if(!statSync(_0x581563)['isFile']())throw CliErrors[_0x43c08b(0x1fc)](_0x43c08b(0x202)+_0x581563);const _0x11182a=readFileSync(_0x581563,_0x43c08b(0x1f5));return validateReactModuleSource(_0x11182a),_0x11182a;}function parseMetadata(_0x305544){const _0x589104=a10_0x149836;if(!_0x305544)return undefined;let _0xa34b1;try{_0xa34b1=JSON[_0x589104(0x206)](_0x305544);}catch{throw CliErrors[_0x589104(0x1fc)](_0x589104(0x1c7)+_0x305544);}if(!isPlainObject(_0xa34b1))throw CliErrors['validation'](_0x589104(0x1dd));const _0x210181={..._0xa34b1};return delete _0x210181['compiledContent'],_0x210181;}function getPackageName(_0x1f116f){const _0x38dc11=a10_0x149836;if(_0x1f116f['startsWith']('@')){const [_0x1bba4a,_0x1ba3a0]=_0x1f116f[_0x38dc11(0x1e6)]('/');return _0x1bba4a&&_0x1ba3a0?_0x1bba4a+'/'+_0x1ba3a0:_0x1f116f;}return _0x1f116f[_0x38dc11(0x1e6)]('/')[0x0]||_0x1f116f;}function validateAllowedImports(_0x5efb54){const _0x4ef5a9=a10_0x149836,_0x16b1af=new Set();for(const _0x12968c of IMPORT_SOURCE_PATTERNS){_0x12968c[_0x4ef5a9(0x1d8)]=0x0;let _0x37ce28;while((_0x37ce28=_0x12968c['exec'](_0x5efb54))!==null){const _0x45c87c=_0x37ce28[0x1]?.[_0x4ef5a9(0x1e2)]();_0x45c87c&&_0x16b1af[_0x4ef5a9(0x20f)](_0x45c87c);}}const _0x54c06f=[..._0x16b1af]['map'](getPackageName)[_0x4ef5a9(0x1f6)](_0x3b7b61=>!ALLOWED_REACT_MODULE_IMPORTS['includes'](_0x3b7b61));if(_0x54c06f[_0x4ef5a9(0x1be)]>0x0)throw CliErrors['validation'](_0x4ef5a9(0x1c1)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4ef5a9(0x1f2)+[...new Set(_0x54c06f)][_0x4ef5a9(0x1e0)](',\x20'));}export function validateReactModuleSource(_0x2c4544){const _0x11e578=a10_0x149836;if(!_0x2c4544[_0x11e578(0x1e2)]())throw CliErrors[_0x11e578(0x1fc)](_0x11e578(0x1e8));if(PAGE_LEVEL_PATTERNS[_0x11e578(0x1ce)](_0x1729a6=>_0x1729a6['test'](_0x2c4544)))throw CliErrors[_0x11e578(0x1fc)](_0x11e578(0x1fe));validateAllowedImports(_0x2c4544);}function buildArtifactInput(_0x27ee5f){const _0x49d516=a10_0x149836,_0x15102f=readSourceFile(_0x27ee5f[_0x49d516(0x1d2)](_0x49d516(0x1ee))),_0x42341a=_0x27ee5f['str'](_0x49d516(0x1df))[_0x49d516(0x1e2)](),_0x524926=parseMetadata(_0x27ee5f['str'](_0x49d516(0x1cf)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x42341a?{'name':_0x42341a}:{},'content':_0x15102f,..._0x524926?{'metadata':_0x524926}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x4433d9){const _0x1885db=a10_0x149836;return{'id':_0x4433d9['id'],'name':_0x4433d9[_0x1885db(0x1df)],'artifactType':_0x4433d9[_0x1885db(0x1d5)],'source':_0x4433d9[_0x1885db(0x1c5)],'favorite':_0x4433d9[_0x1885db(0x210)],'deleted':_0x4433d9[_0x1885db(0x1e9)],'createTime':_0x4433d9[_0x1885db(0x1d7)],'updateTime':_0x4433d9[_0x1885db(0x1ff)]};}function detailArtifact(_0x48b210){const _0x66854=a10_0x149836;return{'id':_0x48b210['id'],'appCode':_0x48b210[_0x66854(0x1e3)],'name':_0x48b210[_0x66854(0x1df)],'artifactType':_0x48b210['artifactType'],'source':_0x48b210[_0x66854(0x1c5)],'favorite':_0x48b210['favorite'],'deleted':_0x48b210[_0x66854(0x1e9)],'content':_0x48b210[_0x66854(0x1c4)]??'','compiledContent':_0x48b210[_0x66854(0x20c)],'metadata':_0x48b210[_0x66854(0x1cf)]??{},'createTime':_0x48b210[_0x66854(0x1d7)],'updateTime':_0x48b210[_0x66854(0x1ff)]};}function readFavoriteFlag(_0x3f2aaa){const _0x5bf45=a10_0x149836,_0x40943b=_0x3f2aaa[_0x5bf45(0x1f0)](_0x5bf45(0x210));return _0x40943b===undefined||_0x40943b===null||_0x40943b===''?undefined:_0x3f2aaa[_0x5bf45(0x1d0)]('favorite');}const artifactList={'service':'artifact','command':a10_0x149836(0x1cc),'description':'List\x20current-app\x20react_module\x20Artifacts','risk':a10_0x149836(0x1f7),'flags':[{'name':a10_0x149836(0x1c5),'type':a10_0x149836(0x1de),'description':a10_0x149836(0x1cd)},{'name':a10_0x149836(0x210),'type':a10_0x149836(0x1fb),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x2ffdfe){const _0x381a8a=a10_0x149836,_0xa0bf=await listRuntimeArtifacts(_0x2ffdfe[_0x381a8a(0x1e3)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2ffdfe['str']('source')?{'source':_0x2ffdfe['str'](_0x381a8a(0x1c5))}:{},...readFavoriteFlag(_0x2ffdfe)!==undefined?{'favorite':readFavoriteFlag(_0x2ffdfe)}:{}});return{'ok':!![],'data':{'total':_0xa0bf['length'],'items':_0x2ffdfe[_0x381a8a(0x1d0)](_0x381a8a(0x207))?_0xa0bf:_0xa0bf[_0x381a8a(0x200)](summarizeArtifact)}};}},artifactDetail={'service':'artifact','command':'detail','description':'Show\x20one\x20Artifact\x20by\x20id','risk':a10_0x149836(0x1f7),'flags':[{...ID_FLAG,'description':a10_0x149836(0x1f9)}],async 'execute'(_0x4660c1){const _0x58afc8=a10_0x149836,_0x1eb1b4=await getRuntimeArtifact(_0x4660c1['num']('id'),_0x4660c1[_0x58afc8(0x1e3)]);return{'ok':!![],'data':detailArtifact(_0x1eb1b4)};}},artifactCreate={'service':a10_0x149836(0x1dc),'command':a10_0x149836(0x1f8),'description':a10_0x149836(0x1bf),'risk':a10_0x149836(0x1e4),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x241e12){const _0x3d3b72=a10_0x149836,_0x1af87d=buildArtifactInput(_0x241e12),_0x34c9c3=await createRuntimeArtifact(_0x241e12[_0x3d3b72(0x1e3)],_0x1af87d);return{'ok':!![],'data':detailArtifact(_0x34c9c3),'message':'Created\x20Artifact\x20'+_0x34c9c3['id']+(_0x34c9c3[_0x3d3b72(0x1df)]?'\x20('+_0x34c9c3['name']+')':'')};},async 'dryRun'(_0x3d004a){const _0x55d3f6=a10_0x149836,_0x4932ac=buildArtifactInput(_0x3d004a);return dryRun('POST',_0x55d3f6(0x1db))[_0x55d3f6(0x203)]({'appCode':_0x3d004a[_0x55d3f6(0x1e3)],..._0x4932ac})[_0x55d3f6(0x1c8)](_0x55d3f6(0x1d4))[_0x55d3f6(0x205)]();},'writeEventSubject'(_0x51194e){const _0xc757ec=a10_0x149836,_0x41e0b8=_0x51194e[_0xc757ec(0x20e)]?.['id'];if(typeof _0x41e0b8!==_0xc757ec(0x1de)&&typeof _0x41e0b8!==_0xc757ec(0x20a))return undefined;return{'kind':'artifact','id':String(_0x41e0b8),'action':_0xc757ec(0x1f8)};}},artifactUpdate={'service':'artifact','command':'update','description':a10_0x149836(0x201),'risk':a10_0x149836(0x1e4),'confirmationDescription':a10_0x149836(0x1e1),'flags':[{...ID_FLAG,'description':a10_0x149836(0x1f9)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x3d2706){const _0x1ab9b8=a10_0x149836,_0x2a93c2=_0x3d2706[_0x1ab9b8(0x1d3)]('id'),_0x2da7ae=buildArtifactInput(_0x3d2706),_0x89801=await updateRuntimeArtifact(_0x2a93c2,_0x3d2706[_0x1ab9b8(0x1e3)],_0x2da7ae);return{'ok':!![],'data':detailArtifact(_0x89801),'message':_0x1ab9b8(0x1fa)+_0x89801['id']+(_0x89801[_0x1ab9b8(0x1df)]?'\x20('+_0x89801[_0x1ab9b8(0x1df)]+')':'')};},async 'dryRun'(_0x3e4bae){const _0xd58bf2=a10_0x149836,_0x5ace26=_0x3e4bae[_0xd58bf2(0x1d3)]('id'),_0x2eeda2=buildArtifactInput(_0x3e4bae);return dryRun(_0xd58bf2(0x1cb),_0xd58bf2(0x1f3)+_0x5ace26+'/update')[_0xd58bf2(0x203)]({'appCode':_0x3e4bae[_0xd58bf2(0x1e3)],..._0x2eeda2})[_0xd58bf2(0x1c8)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x5ace26)[_0xd58bf2(0x205)]();},'writeEventSubject'(_0xd6222b){const _0x316f44=a10_0x149836,_0xaf9f18=_0xd6222b[_0x316f44(0x20e)]?.['id'];if(typeof _0xaf9f18!==_0x316f44(0x1de)&&typeof _0xaf9f18!==_0x316f44(0x20a))return undefined;return{'kind':_0x316f44(0x1dc),'id':String(_0xaf9f18),'action':_0x316f44(0x1f4)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x1511ae=a10_0x105a;(function(_0x2d2391,_0x8610ef){const _0x2037b0=a10_0x105a,_0x45709a=_0x2d2391();while(!![]){try{const _0x4fcf4d=-parseInt(_0x2037b0(0xf5))/0x1+-parseInt(_0x2037b0(0x11e))/0x2*(parseInt(_0x2037b0(0xe5))/0x3)+parseInt(_0x2037b0(0xed))/0x4*(-parseInt(_0x2037b0(0xea))/0x5)+-parseInt(_0x2037b0(0xd7))/0x6*(parseInt(_0x2037b0(0x10b))/0x7)+parseInt(_0x2037b0(0xd6))/0x8+parseInt(_0x2037b0(0xd9))/0x9+parseInt(_0x2037b0(0xda))/0xa*(parseInt(_0x2037b0(0xe0))/0xb);if(_0x4fcf4d===_0x8610ef)break;else _0x45709a['push'](_0x45709a['shift']());}catch(_0x3cee9d){_0x45709a['push'](_0x45709a['shift']());}}}(a10_0x22fd,0x2a0d3));import{existsSync,readFileSync,statSync}from'node:fs';function a10_0x22fd(){const _0x584d3c=['Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','File\x20not\x20found:\x20','str','artifactType','Created\x20Artifact\x20','deleted','favorite','36193lDWjCD','bool','write','split','content','antd','List\x20current-app\x20react_module\x20Artifacts','name','num','join','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','createTime','create','/client/artifact/create','detail','exec','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','utf8','string','update','data','boolean','10997wfLhSs','source','validation','react_module\x20imports\x20are\x20limited\x20to:\x20','length','react-dom','verbose','list','map','isFile','AGENT','--metadata\x20must\x20be\x20a\x20JSON\x20object.','/client/artifact/','File\x20path\x20is\x20required.','react','read','file','updateTime','react_module','506EZGMtv','Updated\x20Artifact\x20','test','/update','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','Artifact\x20ID','some','description','appCode','compiledContent','532872lUvXhG','1128YcayHN','Invalid\x20JSON\x20for\x20--metadata:\x20','554778YzkLfY','2954760QWBVRj','flag','File\x20is\x20not\x20a\x20regular\x20file:\x20','add','Show\x20one\x20Artifact\x20by\x20id','number','22YxMVzF','artifact','build','metadata','Optional\x20favorite-state\x20filter','447VDBCzv','lastIndex','trim','@ant-design/icons','Artifact\x20source\x20file\x20is\x20blank.','888610zvbSRR','includes','Artifact\x20display\x20name','4ycBvcx'];a10_0x22fd=function(){return _0x584d3c;};return a10_0x22fd();}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_0x1511ae(0x11d),ARTIFACT_SOURCE_AGENT=a10_0x1511ae(0x115),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x1511ae(0x119),a10_0x1511ae(0x110),'lodash','dayjs',a10_0x1511ae(0xfa),a10_0x1511ae(0xe8)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');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_0x1511ae(0x11b),'type':a10_0x1511ae(0x107),'required':!![],'description':a10_0x1511ae(0xee)},ARTIFACT_NAME_FLAG={'name':a10_0x1511ae(0xfc),'type':a10_0x1511ae(0x107),'description':a10_0x1511ae(0xec)},METADATA_FLAG={'name':'metadata','type':a10_0x1511ae(0x107),'description':a10_0x1511ae(0x105)};function isPlainObject(_0x584de4){return typeof _0x584de4==='object'&&_0x584de4!==null&&!Array['isArray'](_0x584de4);}function readSourceFile(_0x49232){const _0x4d315f=a10_0x1511ae;if(!_0x49232)throw CliErrors['validation'](_0x4d315f(0x118));if(!existsSync(_0x49232))throw CliErrors[_0x4d315f(0x10d)](_0x4d315f(0xef)+_0x49232);if(!statSync(_0x49232)[_0x4d315f(0x114)]())throw CliErrors[_0x4d315f(0x10d)](_0x4d315f(0xdc)+_0x49232);const _0x58017a=readFileSync(_0x49232,_0x4d315f(0x106));return validateReactModuleSource(_0x58017a),_0x58017a;}function parseMetadata(_0x24d0eb){const _0x3d81e9=a10_0x1511ae;if(!_0x24d0eb)return undefined;let _0x1469e3;try{_0x1469e3=JSON['parse'](_0x24d0eb);}catch{throw CliErrors[_0x3d81e9(0x10d)](_0x3d81e9(0xd8)+_0x24d0eb);}if(!isPlainObject(_0x1469e3))throw CliErrors[_0x3d81e9(0x10d)](_0x3d81e9(0x116));const _0x5cccae={..._0x1469e3};return delete _0x5cccae[_0x3d81e9(0xd5)],_0x5cccae;}function getPackageName(_0x1e3c86){const _0x2f421a=a10_0x1511ae;if(_0x1e3c86['startsWith']('@')){const [_0x13da5b,_0x5cb305]=_0x1e3c86[_0x2f421a(0xf8)]('/');return _0x13da5b&&_0x5cb305?_0x13da5b+'/'+_0x5cb305:_0x1e3c86;}return _0x1e3c86[_0x2f421a(0xf8)]('/')[0x0]||_0x1e3c86;}function validateAllowedImports(_0x5c2276){const _0x25111c=a10_0x1511ae,_0x383942=new Set();for(const _0x32e742 of IMPORT_SOURCE_PATTERNS){_0x32e742[_0x25111c(0xe6)]=0x0;let _0x426d14;while((_0x426d14=_0x32e742[_0x25111c(0x104)](_0x5c2276))!==null){const _0x524d68=_0x426d14[0x1]?.['trim']();_0x524d68&&_0x383942[_0x25111c(0xdd)](_0x524d68);}}const _0x3c2fc7=[..._0x383942][_0x25111c(0x113)](getPackageName)['filter'](_0x24b3bb=>!ALLOWED_REACT_MODULE_IMPORTS[_0x25111c(0xeb)](_0x24b3bb));if(_0x3c2fc7[_0x25111c(0x10f)]>0x0)throw CliErrors[_0x25111c(0x10d)](_0x25111c(0x10e)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+'.\x20Unsupported:\x20'+[...new Set(_0x3c2fc7)][_0x25111c(0xfe)](',\x20'));}export function validateReactModuleSource(_0x5ca46e){const _0x391cef=a10_0x1511ae;if(!_0x5ca46e[_0x391cef(0xe7)]())throw CliErrors[_0x391cef(0x10d)](_0x391cef(0xe9));if(PAGE_LEVEL_PATTERNS[_0x391cef(0x124)](_0x2e124c=>_0x2e124c[_0x391cef(0x120)](_0x5ca46e)))throw CliErrors[_0x391cef(0x10d)]('react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.');validateAllowedImports(_0x5ca46e);}function buildArtifactInput(_0x3b2477){const _0xf983aa=a10_0x1511ae,_0x45a96a=readSourceFile(_0x3b2477['str'](_0xf983aa(0x11b))),_0x2c097f=_0x3b2477[_0xf983aa(0xf0)](_0xf983aa(0xfc))[_0xf983aa(0xe7)](),_0x14af12=parseMetadata(_0x3b2477[_0xf983aa(0xf0)]('metadata'));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2c097f?{'name':_0x2c097f}:{},'content':_0x45a96a,..._0x14af12?{'metadata':_0x14af12}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x13e7a9){const _0x29275b=a10_0x1511ae;return{'id':_0x13e7a9['id'],'name':_0x13e7a9[_0x29275b(0xfc)],'artifactType':_0x13e7a9[_0x29275b(0xf1)],'source':_0x13e7a9['source'],'favorite':_0x13e7a9['favorite'],'deleted':_0x13e7a9[_0x29275b(0xf3)],'createTime':_0x13e7a9[_0x29275b(0x100)],'updateTime':_0x13e7a9[_0x29275b(0x11c)]};}function detailArtifact(_0x408729){const _0x21b7cf=a10_0x1511ae;return{'id':_0x408729['id'],'appCode':_0x408729[_0x21b7cf(0x126)],'name':_0x408729[_0x21b7cf(0xfc)],'artifactType':_0x408729[_0x21b7cf(0xf1)],'source':_0x408729['source'],'favorite':_0x408729[_0x21b7cf(0xf4)],'deleted':_0x408729[_0x21b7cf(0xf3)],'content':_0x408729[_0x21b7cf(0xf9)]??'','compiledContent':_0x408729[_0x21b7cf(0xd5)],'metadata':_0x408729[_0x21b7cf(0xe3)]??{},'createTime':_0x408729[_0x21b7cf(0x100)],'updateTime':_0x408729['updateTime']};}function readFavoriteFlag(_0x1bdbb1){const _0x2f58d1=a10_0x1511ae,_0x21f72d=_0x1bdbb1[_0x2f58d1(0xdb)](_0x2f58d1(0xf4));return _0x21f72d===undefined||_0x21f72d===null||_0x21f72d===''?undefined:_0x1bdbb1[_0x2f58d1(0xf6)](_0x2f58d1(0xf4));}function a10_0x105a(_0x6adb91,_0x1c1d19){_0x6adb91=_0x6adb91-0xd5;const _0x22fd03=a10_0x22fd();let _0x105a32=_0x22fd03[_0x6adb91];return _0x105a32;}const artifactList={'service':'artifact','command':a10_0x1511ae(0x112),'description':a10_0x1511ae(0xfb),'risk':a10_0x1511ae(0x11a),'flags':[{'name':a10_0x1511ae(0x10c),'type':a10_0x1511ae(0x107),'description':a10_0x1511ae(0xff)},{'name':a10_0x1511ae(0xf4),'type':a10_0x1511ae(0x10a),'description':a10_0x1511ae(0xe4)},VERBOSE_FLAG],async 'execute'(_0x3a9dbd){const _0x29b411=a10_0x1511ae,_0x38fa63=await listRuntimeArtifacts(_0x3a9dbd[_0x29b411(0x126)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x3a9dbd[_0x29b411(0xf0)](_0x29b411(0x10c))?{'source':_0x3a9dbd[_0x29b411(0xf0)](_0x29b411(0x10c))}:{},...readFavoriteFlag(_0x3a9dbd)!==undefined?{'favorite':readFavoriteFlag(_0x3a9dbd)}:{}});return{'ok':!![],'data':{'total':_0x38fa63[_0x29b411(0x10f)],'items':_0x3a9dbd[_0x29b411(0xf6)](_0x29b411(0x111))?_0x38fa63:_0x38fa63[_0x29b411(0x113)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x1511ae(0xe1),'command':a10_0x1511ae(0x103),'description':a10_0x1511ae(0xde),'risk':a10_0x1511ae(0x11a),'flags':[{...ID_FLAG,'description':a10_0x1511ae(0x123)}],async 'execute'(_0x418874){const _0x4c10aa=a10_0x1511ae,_0x4352e3=await getRuntimeArtifact(_0x418874[_0x4c10aa(0xfd)]('id'),_0x418874['appCode']);return{'ok':!![],'data':detailArtifact(_0x4352e3)};}},artifactCreate={'service':'artifact','command':a10_0x1511ae(0x101),'description':'根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','risk':a10_0x1511ae(0xf7),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x233bc5){const _0x1583fa=a10_0x1511ae,_0x1ede83=buildArtifactInput(_0x233bc5),_0x115532=await createRuntimeArtifact(_0x233bc5['appCode'],_0x1ede83);return{'ok':!![],'data':detailArtifact(_0x115532),'message':_0x1583fa(0xf2)+_0x115532['id']+(_0x115532[_0x1583fa(0xfc)]?'\x20('+_0x115532[_0x1583fa(0xfc)]+')':'')};},async 'dryRun'(_0x983f52){const _0x40d5d8=a10_0x1511ae,_0x4a623c=buildArtifactInput(_0x983f52);return dryRun('POST',_0x40d5d8(0x102))['body']({'appCode':_0x983f52[_0x40d5d8(0x126)],..._0x4a623c})[_0x40d5d8(0x125)]('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x4926b9){const _0x1c28f6=a10_0x1511ae,_0x966e93=_0x4926b9[_0x1c28f6(0x109)]?.['id'];if(typeof _0x966e93!=='string'&&typeof _0x966e93!=='number')return undefined;return{'kind':_0x1c28f6(0xe1),'id':String(_0x966e93),'action':_0x1c28f6(0x101)};}},artifactUpdate={'service':a10_0x1511ae(0xe1),'command':a10_0x1511ae(0x108),'description':a10_0x1511ae(0x122),'risk':a10_0x1511ae(0xf7),'confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x3c01c3){const _0x5a74c5=a10_0x1511ae,_0x2b8d7d=_0x3c01c3['num']('id'),_0x1f7146=buildArtifactInput(_0x3c01c3),_0x19d9ca=await updateRuntimeArtifact(_0x2b8d7d,_0x3c01c3[_0x5a74c5(0x126)],_0x1f7146);return{'ok':!![],'data':detailArtifact(_0x19d9ca),'message':_0x5a74c5(0x11f)+_0x19d9ca['id']+(_0x19d9ca[_0x5a74c5(0xfc)]?'\x20('+_0x19d9ca[_0x5a74c5(0xfc)]+')':'')};},async 'dryRun'(_0x43fca3){const _0x5b55e9=a10_0x1511ae,_0x534a44=_0x43fca3[_0x5b55e9(0xfd)]('id'),_0x17d077=buildArtifactInput(_0x43fca3);return dryRun('POST',_0x5b55e9(0x117)+_0x534a44+_0x5b55e9(0x121))['body']({'appCode':_0x43fca3[_0x5b55e9(0x126)],..._0x17d077})[_0x5b55e9(0x125)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x534a44)[_0x5b55e9(0xe2)]();},'writeEventSubject'(_0x44f84b){const _0x1ef8fa=a10_0x1511ae,_0x5175bd=_0x44f84b['data']?.['id'];if(typeof _0x5175bd!==_0x1ef8fa(0x107)&&typeof _0x5175bd!==_0x1ef8fa(0xdf))return undefined;return{'kind':_0x1ef8fa(0xe1),'id':String(_0x5175bd),'action':'update'};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x1d4b7b=a11_0x6b65;(function(_0x5c3c8c,_0x413343){const _0x14173d=a11_0x6b65,_0x412bc5=_0x5c3c8c();while(!![]){try{const _0x106db2=parseInt(_0x14173d(0xa5))/0x1+parseInt(_0x14173d(0x84))/0x2*(parseInt(_0x14173d(0xa6))/0x3)+parseInt(_0x14173d(0xaf))/0x4*(-parseInt(_0x14173d(0xa1))/0x5)+-parseInt(_0x14173d(0xb6))/0x6*(-parseInt(_0x14173d(0xa3))/0x7)+parseInt(_0x14173d(0x95))/0x8*(parseInt(_0x14173d(0xba))/0x9)+-parseInt(_0x14173d(0xb8))/0xa+parseInt(_0x14173d(0xa4))/0xb*(-parseInt(_0x14173d(0xa9))/0xc);if(_0x106db2===_0x413343)break;else _0x412bc5['push'](_0x412bc5['shift']());}catch(_0x3bcf7b){_0x412bc5['push'](_0x412bc5['shift']());}}}(a11_0x3a4c,0x4f6f4));function a11_0x3a4c(){const _0x25448b=['App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','AbortError','35dcdsZE','),\x20retrying...','21prVAPW','381447CQMUvM','438585mPQYum','66UghDJG','trim','removeListener','156qTcxHB','lovrabet-cli','json','AccessKey\x20saved\x20to\x20','validation','createdAt','96528tvKAMO','code','/api/device-auth/token','networkError','bool','cancelled','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','239562xFCeBn','Device\x20authorization\x20successful.','4438690zcHVUE','\x20remaining','90ffYsrm','str','nonInteractive','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','padStart','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','\x20auth\x20device','Device\x20auth\x20API\x20returned\x20HTTP\x20','status','floor','parse','SIGINT','Write\x20to\x20project\x20config','apiError','accessKey','Invalid\x20access_key\x20returned\x20by\x20server.','Device\x20authorization\x20cancelled.','abort','stringify','global','signal','url-only','\x20config.','27802kZovjf','Write\x20to\x20global\x20config\x20(default)','string','scope','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','access_key','randomUUID','auth','After\x20authorizing,\x20re-run:\x20','write','project','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','boolean','source','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','device','application/json','419816iPjVPu','Device\x20auth\x20API\x20error\x20(','success','once','aborted','utf8','object','global-default','POST','/.device-auth'];a11_0x3a4c=function(){return _0x25448b;};return a11_0x3a4c();}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';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x2b1d58){const _0x164a4b=a11_0x6b65;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x2b1d58['bool'](_0x164a4b(0xcd)),'explicitProject':_0x2b1d58[_0x164a4b(0xb3)](_0x164a4b(0x8e)),'policy':_0x164a4b(0x9c)}));}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 _0x517677=a11_0x6b65;return crypto[_0x517677(0x8a)]();}export function buildDeviceAuthUrl(_0x32f710,_0x23556b,_0x68adb5=a11_0x1d4b7b(0xaa)){return _0x32f710+'/device-auth?code='+encodeURIComponent(_0x23556b)+'&source='+encodeURIComponent(_0x68adb5);}export function getDeviceCodePath(){const _0x29aecd=a11_0x1d4b7b;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x29aecd(0x9e);}function a11_0x6b65(_0xe80f21,_0x15b197){_0xe80f21=_0xe80f21-0x83;const _0x3a4ca4=a11_0x3a4c();let _0x6b6563=_0x3a4ca4[_0xe80f21];return _0x6b6563;}export function readStoredDeviceCode(){const _0x2b3f7f=a11_0x1d4b7b,_0xf5944b=getDeviceCodePath();if(!existsSync(_0xf5944b))return null;try{const _0x5540c7=readFileSync(_0xf5944b,{'encoding':_0x2b3f7f(0x9a)}),_0x438640=JSON[_0x2b3f7f(0xc4)](_0x5540c7);if(_0x438640&&typeof _0x438640['code']===_0x2b3f7f(0x86)&&typeof _0x438640[_0x2b3f7f(0xae)]===_0x2b3f7f(0x86)&&(_0x438640[_0x2b3f7f(0x87)]===_0x2b3f7f(0xcd)||_0x438640[_0x2b3f7f(0x87)]==='project'))return _0x438640;}catch{}return null;}export function writeStoredDeviceCode(_0x4b79f1,_0x5a1e6c){const _0x40f43c=a11_0x1d4b7b,_0x25a6e9=getDeviceCodePath(),_0x2b0c1a=dirname(_0x25a6e9);!existsSync(_0x2b0c1a)&&mkdirSync(_0x2b0c1a,{'recursive':!![]});const _0x456954={'code':_0x4b79f1,'createdAt':new Date()['toISOString'](),'scope':_0x5a1e6c};writeFileSync(_0x25a6e9,JSON[_0x40f43c(0xcc)](_0x456954),{'encoding':_0x40f43c(0x9a),'mode':0x180});}export function deleteStoredDeviceCode(){const _0xf27e4e=getDeviceCodePath();try{unlinkSync(_0xf27e4e);}catch{}}export function isStoredDeviceCodeExpired(_0x4f463f){const _0x375bc8=a11_0x1d4b7b;return Date['now']()-new Date(_0x4f463f[_0x375bc8(0xae)])['getTime']()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x3df7ac,_0x2099e4){const _0x469a45=a11_0x1d4b7b,_0x5cf889=_0x3df7ac+_0x469a45(0xb1),_0x32384f=new AbortController(),_0x55de7c=setTimeout(()=>_0x32384f[_0x469a45(0xcb)](),0x2710),_0x4e91e0=await fetch(_0x5cf889,{'method':_0x469a45(0x9d),'headers':{'Content-Type':_0x469a45(0x94)},'body':JSON['stringify']({'code':_0x2099e4}),'signal':_0x32384f[_0x469a45(0xce)]});clearTimeout(_0x55de7c);if(!_0x4e91e0['ok'])throw CliErrors[_0x469a45(0xb2)](_0x469a45(0xc1)+_0x4e91e0['status']);const _0x554d72=await _0x4e91e0[_0x469a45(0xab)](),_0x1d7597=_0x554d72['data']&&typeof _0x554d72['data']===_0x469a45(0x9b)?_0x554d72['data']:_0x554d72;if(!_0x1d7597||typeof _0x1d7597[_0x469a45(0xc2)]!==_0x469a45(0x86))throw CliErrors[_0x469a45(0xc7)]('Invalid\x20device\x20auth\x20response');return{'status':_0x1d7597['status'],'access_key':typeof _0x1d7597['access_key']===_0x469a45(0x86)?_0x1d7597[_0x469a45(0x89)]:undefined};}export async function pollDeviceToken(_0x42b151,_0x2b8220,_0x26ae17){const _0x47203c=a11_0x1d4b7b;let _0x580504=0x0;for(let _0x262d4f=0x0;_0x262d4f<MAX_POLLS;_0x262d4f++){if(_0x26ae17[_0x47203c(0x99)])throw CliErrors[_0x47203c(0xb4)](_0x47203c(0xca));let _0x1d1496;try{_0x1d1496=await fetchDeviceToken(_0x42b151,_0x2b8220);}catch(_0x249ade){if(_0x249ade instanceof Error&&_0x249ade['name']===_0x47203c(0xa0))throw CliErrors[_0x47203c(0xb4)](_0x47203c(0xca));_0x580504++;if(_0x580504>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x47203c(0xb2)](_0x47203c(0xbd));writeCliSideChannelLine(_0x47203c(0x96)+_0x580504+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x47203c(0xa2)),await sleep(POLL_INTERVAL_MS);continue;}_0x580504=0x0;if(_0x1d1496[_0x47203c(0xc2)]===_0x47203c(0x97)){if(!_0x1d1496['access_key'])throw CliErrors[_0x47203c(0xc7)](_0x47203c(0xc9));return _0x1d1496[_0x47203c(0x89)];}if(_0x1d1496[_0x47203c(0xc2)]==='expired'){deleteStoredDeviceCode();throw CliErrors[_0x47203c(0xad)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x815bc4=(_0x262d4f+0x1)*POLL_INTERVAL_MS,_0x17187d=DEVICE_CODE_TTL_MS-_0x815bc4,_0x4af1ce=Math[_0x47203c(0xc3)](_0x17187d/0xea60),_0xe33a11=Math[_0x47203c(0xc3)](_0x17187d%0xea60/0x3e8);process['stderr'][_0x47203c(0x8d)]('\x0dWaiting\x20for\x20authorization...\x20'+_0x4af1ce+':'+String(_0xe33a11)[_0x47203c(0xbe)](0x2,'0')+_0x47203c(0xb9)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x47203c(0xad)](_0x47203c(0xb5));}function sleep(_0x211cd6){return new Promise(_0x38a36c=>setTimeout(_0x38a36c,_0x211cd6));}export const authDeviceDefinition={'service':a11_0x1d4b7b(0x8b),'command':a11_0x1d4b7b(0x93),'description':'通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','risk':a11_0x1d4b7b(0x8d),'confirmationDescription':a11_0x1d4b7b(0x8f),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x1d4b7b(0xcd),'type':'boolean','description':a11_0x1d4b7b(0x85),'default':!![]},{'name':a11_0x1d4b7b(0x8e),'type':'boolean','description':a11_0x1d4b7b(0xc6),'default':![]},{'name':a11_0x1d4b7b(0x91),'type':a11_0x1d4b7b(0x86),'description':a11_0x1d4b7b(0x9f),'default':a11_0x1d4b7b(0xaa)},{'name':'url-only','type':a11_0x1d4b7b(0x90),'description':'Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','default':![]}],async 'execute'(_0x3d2b73){const _0x307558=a11_0x1d4b7b,_0xa3237e=resolveAuthScopeFlags(_0x3d2b73),_0x40a781=_0xa3237e[_0x307558(0xcd)]?_0x307558(0xcd):_0x307558(0x8e),_0x2cf976=readScopedConfig(_0xa3237e);if(_0x2cf976[_0x307558(0xc8)])return{'ok':!![],'message':_0x307558(0x88)};const _0x5f5759=(_0x3d2b73[_0x307558(0xbb)](_0x307558(0x91))||'lovrabet-cli')[_0x307558(0xa7)](),_0x3fbb7d=getUserDomain(),_0x5beabc=readStoredDeviceCode(),_0x16d808=_0x5beabc&&!isStoredDeviceCodeExpired(_0x5beabc)?_0x5beabc[_0x307558(0xb0)]:((()=>{const _0x5baf30=generateDeviceCode();return writeStoredDeviceCode(_0x5baf30,_0x40a781),_0x5baf30;})()),_0x170367=buildDeviceAuthUrl(_0x3fbb7d,_0x16d808,_0x5f5759);if(_0x3d2b73[_0x307558(0xb3)](_0x307558(0xcf)))return console['log'](_0x170367),{'ok':!![]};writeCliSideChannelLine(_0x307558(0xbf)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x170367),writeCliSideChannelLine(''),writeCliSideChannelLine('The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.');if(_0x3d2b73[_0x307558(0xbc)])return writeCliSideChannelLine(_0x307558(0x8c)+CLI_BIN_NAME+_0x307558(0xc0)),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine(_0x307558(0x92));const _0x154bc1=new AbortController(),_0x26c778=()=>{const _0x378307=_0x307558;_0x154bc1[_0x378307(0xcb)](),process[_0x378307(0xa8)]('SIGINT',_0x26c778);};process[_0x307558(0x98)](_0x307558(0xc5),_0x26c778);let _0x4aeee8;try{_0x4aeee8=await pollDeviceToken(_0x3fbb7d,_0x16d808,_0x154bc1[_0x307558(0xce)]);}finally{process[_0x307558(0xa8)]('SIGINT',_0x26c778);}if(!ACCESS_KEY_PATTERN['test'](_0x4aeee8))throw CliErrors[_0x307558(0xc7)]('Invalid\x20access_key\x20returned\x20by\x20server.');const _0x4af153=readScopedConfig(_0xa3237e);return _0x4af153[_0x307558(0xc8)]=_0x4aeee8,writeScopedConfig(_0x4af153,_0xa3237e),deleteStoredDeviceCode(),process['stderr'][_0x307558(0x8d)]('\x0a'),writeCliSideChannelLine(_0x307558(0xac)+_0x40a781+_0x307558(0x83)),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':_0x307558(0xb7)};}};
|
|
1
|
+
function a11_0x4572(){const _0xdbdfff=['success','removeListener','floor','application/json','access_key','parse','57805JZPiov','cancelled','expired','Device\x20auth\x20API\x20returned\x20HTTP\x20','Invalid\x20device\x20auth\x20response','boolean','Device\x20authorization\x20cancelled.','Write\x20to\x20project\x20config','code','\x20auth\x20device','scope','/.device-auth','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','string','8623352mJGISp','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','68829miiIex','url-only','networkError','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','396xjZaam','apiError','accessKey','data','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','aborted','device','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','/api/device-auth/token','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','auth','createdAt','write','randomUUID','Device\x20authorization\x20successful.','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','/device-auth?code=','signal','96692vbALEq','global','),\x20retrying...','name','str','\x20auth\x20status','92DUwOxV','SIGINT','project','&source=','AccessKey\x20saved\x20to\x20','124745sfisgA','POST','object','stderr','AbortError','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','json','4315927uqKcRj','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','lovrabet-cli','status','abort','validation','nonInteractive','source','bool','log','stringify','Invalid\x20access_key\x20returned\x20by\x20server.','8109CVVPfP','\x0dWaiting\x20for\x20authorization...\x20','27140qAFRKy','getTime','utf8','toISOString'];a11_0x4572=function(){return _0xdbdfff;};return a11_0x4572();}const a11_0x25cc79=a11_0x185d;(function(_0x273872,_0x589551){const _0x5ac76d=a11_0x185d,_0x4e0f75=_0x273872();while(!![]){try{const _0x2af6e6=parseInt(_0x5ac76d(0xfc))/0x1+parseInt(_0x5ac76d(0x141))/0x2+-parseInt(_0x5ac76d(0x12b))/0x3*(-parseInt(_0x5ac76d(0xf7))/0x4)+parseInt(_0x5ac76d(0x11b))/0x5*(-parseInt(_0x5ac76d(0x12f))/0x6)+-parseInt(_0x5ac76d(0x103))/0x7+-parseInt(_0x5ac76d(0x129))/0x8+parseInt(_0x5ac76d(0x10f))/0x9*(parseInt(_0x5ac76d(0x111))/0xa);if(_0x2af6e6===_0x589551)break;else _0x4e0f75['push'](_0x4e0f75['shift']());}catch(_0x5bcc60){_0x4e0f75['push'](_0x4e0f75['shift']());}}}(a11_0x4572,0xa81cc));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';function a11_0x185d(_0x54112d,_0x4a19c2){_0x54112d=_0x54112d-0xf6;const _0x4572bf=a11_0x4572();let _0x185d21=_0x4572bf[_0x54112d];return _0x185d21;}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';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x23be9c){const _0x20ca2e=a11_0x185d;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x23be9c['bool'](_0x20ca2e(0x142)),'explicitProject':_0x23be9c[_0x20ca2e(0x10b)](_0x20ca2e(0xf9)),'policy':'global-default'}));}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 _0x169f63=a11_0x185d;return crypto[_0x169f63(0x13c)]();}export function buildDeviceAuthUrl(_0x2ca857,_0x4a86e4,_0x4b687e='lovrabet-cli'){const _0x7ffbb0=a11_0x185d;return _0x2ca857+_0x7ffbb0(0x13f)+encodeURIComponent(_0x4a86e4)+_0x7ffbb0(0xfa)+encodeURIComponent(_0x4b687e);}export function getDeviceCodePath(){const _0x5c2ff5=a11_0x185d;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x5c2ff5(0x126);}export function readStoredDeviceCode(){const _0x43daa0=a11_0x185d,_0x1b78cd=getDeviceCodePath();if(!existsSync(_0x1b78cd))return null;try{const _0x48def4=readFileSync(_0x1b78cd,{'encoding':'utf8'}),_0x4d2100=JSON[_0x43daa0(0x11a)](_0x48def4);if(_0x4d2100&&typeof _0x4d2100['code']===_0x43daa0(0x128)&&typeof _0x4d2100[_0x43daa0(0x13a)]==='string'&&(_0x4d2100[_0x43daa0(0x125)]==='global'||_0x4d2100['scope']===_0x43daa0(0xf9)))return _0x4d2100;}catch{}return null;}export function writeStoredDeviceCode(_0x57f79d,_0x309159){const _0x4fb9b2=a11_0x185d,_0xfa6a5a=getDeviceCodePath(),_0x972e91=dirname(_0xfa6a5a);!existsSync(_0x972e91)&&mkdirSync(_0x972e91,{'recursive':!![]});const _0x3ba8af={'code':_0x57f79d,'createdAt':new Date()[_0x4fb9b2(0x114)](),'scope':_0x309159};writeFileSync(_0xfa6a5a,JSON['stringify'](_0x3ba8af),{'encoding':_0x4fb9b2(0x113),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x57a872=getDeviceCodePath();try{unlinkSync(_0x57a872);}catch{}}export function isStoredDeviceCodeExpired(_0x561a2f){const _0x1b76cc=a11_0x185d;return Date['now']()-new Date(_0x561a2f[_0x1b76cc(0x13a)])[_0x1b76cc(0x112)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x36e8fe,_0x51f21a){const _0x5adcb5=a11_0x185d,_0x2d1636=_0x36e8fe+_0x5adcb5(0x137),_0x31dbe5=new AbortController(),_0x45dcd9=setTimeout(()=>_0x31dbe5[_0x5adcb5(0x107)](),0x2710),_0x1bf27e=await fetch(_0x2d1636,{'method':_0x5adcb5(0xfd),'headers':{'Content-Type':_0x5adcb5(0x118)},'body':JSON[_0x5adcb5(0x10d)]({'code':_0x51f21a}),'signal':_0x31dbe5[_0x5adcb5(0x140)]});clearTimeout(_0x45dcd9);if(!_0x1bf27e['ok'])throw CliErrors[_0x5adcb5(0x12d)](_0x5adcb5(0x11e)+_0x1bf27e[_0x5adcb5(0x106)]);const _0x5ce6c9=await _0x1bf27e[_0x5adcb5(0x102)](),_0x108e23=_0x5ce6c9[_0x5adcb5(0x132)]&&typeof _0x5ce6c9[_0x5adcb5(0x132)]===_0x5adcb5(0xfe)?_0x5ce6c9[_0x5adcb5(0x132)]:_0x5ce6c9;if(!_0x108e23||typeof _0x108e23[_0x5adcb5(0x106)]!==_0x5adcb5(0x128))throw CliErrors['apiError'](_0x5adcb5(0x11f));return{'status':_0x108e23['status'],'access_key':typeof _0x108e23[_0x5adcb5(0x119)]==='string'?_0x108e23[_0x5adcb5(0x119)]:undefined};}export async function pollDeviceToken(_0x7fa677,_0x54387c,_0x5daee3){const _0x20fc22=a11_0x185d;let _0x458fb5=0x0;for(let _0x52de2a=0x0;_0x52de2a<MAX_POLLS;_0x52de2a++){if(_0x5daee3[_0x20fc22(0x134)])throw CliErrors[_0x20fc22(0x11c)](_0x20fc22(0x121));let _0x412720;try{_0x412720=await fetchDeviceToken(_0x7fa677,_0x54387c);}catch(_0x24b93a){if(_0x24b93a instanceof Error&&_0x24b93a[_0x20fc22(0x144)]===_0x20fc22(0x100))throw CliErrors[_0x20fc22(0x11c)](_0x20fc22(0x121));_0x458fb5++;if(_0x458fb5>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x20fc22(0x12d)]('Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.');writeCliSideChannelLine('Device\x20auth\x20API\x20error\x20('+_0x458fb5+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x20fc22(0x143)),await sleep(POLL_INTERVAL_MS);continue;}_0x458fb5=0x0;if(_0x412720[_0x20fc22(0x106)]===_0x20fc22(0x115)){if(!_0x412720['access_key'])throw CliErrors[_0x20fc22(0x130)](_0x20fc22(0x10e));return _0x412720[_0x20fc22(0x119)];}if(_0x412720[_0x20fc22(0x106)]===_0x20fc22(0x11d)){deleteStoredDeviceCode();throw CliErrors['validation'](_0x20fc22(0x136));}const _0x4715be=(_0x52de2a+0x1)*POLL_INTERVAL_MS,_0xdc1e3c=DEVICE_CODE_TTL_MS-_0x4715be,_0x41e1ef=Math['floor'](_0xdc1e3c/0xea60),_0x3ff5cf=Math[_0x20fc22(0x117)](_0xdc1e3c%0xea60/0x3e8);process[_0x20fc22(0xff)]['write'](_0x20fc22(0x110)+_0x41e1ef+':'+String(_0x3ff5cf)['padStart'](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x20fc22(0x108)](_0x20fc22(0x12a));}function sleep(_0x2be3cb){return new Promise(_0x5c384f=>setTimeout(_0x5c384f,_0x2be3cb));}export const authDeviceDefinition={'service':a11_0x25cc79(0x139),'command':a11_0x25cc79(0x135),'description':a11_0x25cc79(0x13e),'risk':a11_0x25cc79(0x13b),'confirmationDescription':a11_0x25cc79(0x138),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'global','type':a11_0x25cc79(0x120),'description':'Write\x20to\x20global\x20config\x20(default)','default':!![]},{'name':a11_0x25cc79(0xf9),'type':a11_0x25cc79(0x120),'description':a11_0x25cc79(0x122),'default':![]},{'name':a11_0x25cc79(0x10a),'type':'string','description':a11_0x25cc79(0x12e),'default':a11_0x25cc79(0x105)},{'name':a11_0x25cc79(0x12c),'type':'boolean','description':'Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','default':![]}],async 'execute'(_0x150e65){const _0x5ed39b=a11_0x25cc79,_0x5a46f6=resolveAuthScopeFlags(_0x150e65),_0x395ffa=_0x5a46f6[_0x5ed39b(0x142)]?_0x5ed39b(0x142):_0x5ed39b(0xf9),_0x598233=readScopedConfig(_0x5a46f6);if(_0x598233['accessKey'])return{'ok':!![],'message':_0x5ed39b(0x127)};const _0x5b8d64=(_0x150e65[_0x5ed39b(0x145)](_0x5ed39b(0x10a))||'lovrabet-cli')['trim'](),_0x566a05=getUserDomain(),_0x295c24=readStoredDeviceCode(),_0x10f2a0=_0x295c24&&!isStoredDeviceCodeExpired(_0x295c24)?_0x295c24[_0x5ed39b(0x123)]:((()=>{const _0x5a18cb=generateDeviceCode();return writeStoredDeviceCode(_0x5a18cb,_0x395ffa),_0x5a18cb;})()),_0x544fa2=buildDeviceAuthUrl(_0x566a05,_0x10f2a0,_0x5b8d64);if(_0x150e65[_0x5ed39b(0x10b)](_0x5ed39b(0x12c)))return console[_0x5ed39b(0x10c)](_0x544fa2),{'ok':!![]};writeCliSideChannelLine(_0x5ed39b(0x101)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x544fa2),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x5ed39b(0x133));if(_0x150e65[_0x5ed39b(0x109)])return writeCliSideChannelLine('After\x20authorizing,\x20re-run:\x20'+CLI_BIN_NAME+_0x5ed39b(0x124)),{'ok':!![],'message':_0x5ed39b(0x104)};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0x2dfbb8=new AbortController(),_0x2cd035=()=>{const _0x2be6b3=_0x5ed39b;_0x2dfbb8[_0x2be6b3(0x107)](),process[_0x2be6b3(0x116)](_0x2be6b3(0xf8),_0x2cd035);};process['once'](_0x5ed39b(0xf8),_0x2cd035);let _0x110c9d;try{_0x110c9d=await pollDeviceToken(_0x566a05,_0x10f2a0,_0x2dfbb8[_0x5ed39b(0x140)]);}finally{process[_0x5ed39b(0x116)](_0x5ed39b(0xf8),_0x2cd035);}if(!ACCESS_KEY_PATTERN['test'](_0x110c9d))throw CliErrors[_0x5ed39b(0x130)](_0x5ed39b(0x10e));const _0xc834df=readScopedConfig(_0x5a46f6);return _0xc834df[_0x5ed39b(0x131)]=_0x110c9d,writeScopedConfig(_0xc834df,_0x5a46f6),deleteStoredDeviceCode(),process[_0x5ed39b(0xff)][_0x5ed39b(0x13b)]('\x0a'),writeCliSideChannelLine(_0x5ed39b(0xfb)+_0x395ffa+'\x20config.'),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+_0x5ed39b(0xf6)),{'ok':!![],'message':_0x5ed39b(0x13d)};}};
|