@lovrabet/lovrabet-cli 2.2.5-beta.1 → 2.2.5
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.d.ts +3 -3
- 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 +4 -4
- package/skills/lovrabet/references/lovrabet-schedule-workflow.md +7 -6
- 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_0x3331e0=a0_0x151d;function a0_0x151d(_0x5771ca,_0x395ba8){_0x5771ca=_0x5771ca-0xa5;const _0xee57e7=a0_0xee57();let _0x151da2=_0xee57e7[_0x5771ca];return _0x151da2;}(function(_0x6e7404,_0x4c044a){const _0x371bf9=a0_0x151d,_0x585d0a=_0x6e7404();while(!![]){try{const _0x26d727=parseInt(_0x371bf9(0xce))/0x1*(-parseInt(_0x371bf9(0xb8))/0x2)+parseInt(_0x371bf9(0xcc))/0x3+-parseInt(_0x371bf9(0xc2))/0x4+parseInt(_0x371bf9(0xc3))/0x5*(parseInt(_0x371bf9(0xad))/0x6)+parseInt(_0x371bf9(0xca))/0x7*(-parseInt(_0x371bf9(0xa5))/0x8)+-parseInt(_0x371bf9(0xc8))/0x9*(-parseInt(_0x371bf9(0xc0))/0xa)+-parseInt(_0x371bf9(0xa6))/0xb*(-parseInt(_0x371bf9(0xb2))/0xc);if(_0x26d727===_0x4c044a)break;else _0x585d0a['push'](_0x585d0a['shift']());}catch(_0x4c3239){_0x585d0a['push'](_0x585d0a['shift']());}}}(a0_0xee57,0x4709c));import{jsx as a0_0x4456ce}from'react/jsx-runtime';import a0_0x4f824a from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';function a0_0xee57(){const _0x145fe0=['\x20->\x20--','assign','587403woefup','corrected','3115LyeKPQ','catch','360321auhJPW','code','3244WQKfAs','4976bAWQdV','11dkrxHC','name','Unexpected\x20error:','validation','Hint:\x20','help','cancelled','6186agmpZU','definition','message','ERR_USE_AFTER_CLOSE','flatMap','14022636pQIxPo','exitCode','error','log','hint','flags','340DyRXjj','input','unknownCommand','ERR_STREAM_DESTROYED','exit','original','defaultCommand','args','30rNaoCB',':\x20--','1489744gbUYgF','35zLtwIM','write','./framework/preparse.js'];a0_0xee57=function(){return _0x145fe0;};return a0_0xee57();}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_0x4f824a(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x3331e0(0xcb)](handleError);async function main(){try{await run();}catch(_0xfa089d){handleError(_0xfa089d);}}async function run(){const _0x34c5c=a0_0x3331e0;let _0x3069bc=cli[_0x34c5c(0xb9)][0x0],_0x36e245=cli[_0x34c5c(0xb9)][0x1];const _0x1d4d3e=cli[_0x34c5c(0xb7)];try{const {correctFlags:_0x4e316d}=await import(_0x34c5c(0xc5)),_0x34808a=getAllDefinitions()[_0x34c5c(0xb1)](_0x39dbef=>_0x39dbef['flags']??[]),{flags:_0x2cf353,corrections:_0x220831}=_0x4e316d(_0x1d4d3e,_0x34808a);if(_0x220831['length']>0x0){for(const _0x2e9b3a of _0x220831){process['stderr']['write']('[preparse]\x20'+_0x2e9b3a['handler']+_0x34c5c(0xc1)+_0x2e9b3a[_0x34c5c(0xbd)]+_0x34c5c(0xc6)+_0x2e9b3a[_0x34c5c(0xc9)]+'\x0a');}Object['assign'](_0x1d4d3e,_0x2cf353);}}catch{}if(!_0x3069bc){const {waitUntilExit:_0x172032}=render(a0_0x4456ce(Help,{}));await _0x172032();return;}const _0x379c28=resolveRemovedCommand(_0x3069bc,_0x36e245);if(_0x379c28)throw CliErrors[_0x34c5c(0xa9)](_0x379c28['message'],_0x379c28['hint']);if(!isKnownService(_0x3069bc)){const _0x4fb479=resolveDynamicServiceCommand(cli['input'],_0x1d4d3e);if(_0x4fb479){if(_0x1d4d3e['help']){console[_0x34c5c(0xb5)](generateCommandHelp(_0x4fb479['definition']));return;}Object[_0x34c5c(0xc7)](_0x1d4d3e,_0x4fb479[_0x34c5c(0xb7)]);const _0x21ec6b=buildConfigFromFlags(_0x1d4d3e);await initGlobalEnvironment(_0x21ec6b);const _0x3d1cdd=createPipelineEnv(_0x21ec6b,_0x1d4d3e);_0x3d1cdd['args']=_0x4fb479['args'],await runCommand(_0x4fb479[_0x34c5c(0xae)],_0x3d1cdd);return;}if(_0x1d4d3e[_0x34c5c(0xab)]){const _0x32ddcf=generateDynamicServiceHelp(_0x3069bc);if(_0x32ddcf){console[_0x34c5c(0xb5)](_0x32ddcf);return;}}const {waitUntilExit:_0x1effe6}=render(a0_0x4456ce(Help,{}));await _0x1effe6();return;}const _0x30ae7c=getServiceEntry(_0x3069bc);if(!_0x36e245){if(_0x1d4d3e[_0x34c5c(0xab)]){console[_0x34c5c(0xb5)](generateServiceHelp(_0x3069bc));return;}if(_0x30ae7c[_0x34c5c(0xbe)])_0x36e245=_0x30ae7c[_0x34c5c(0xbe)];else{console['log'](generateServiceHelp(_0x3069bc));return;}}const _0x623294=findDefinition(_0x3069bc,_0x36e245);!_0x623294&&(console[_0x34c5c(0xb5)](generateServiceHelp(_0x3069bc)),handleError(CliErrors[_0x34c5c(0xba)](_0x3069bc+'\x20'+_0x36e245)));if(_0x1d4d3e['help']){console[_0x34c5c(0xb5)](generateCommandHelp(_0x623294));return;}const _0x221c98=buildConfigFromFlags(_0x1d4d3e);await initGlobalEnvironment(_0x221c98);const _0x1a9920=createPipelineEnv(_0x221c98,_0x1d4d3e);_0x1a9920[_0x34c5c(0xbf)]=cli[_0x34c5c(0xb9)]['slice'](0x2),await runCommand(_0x623294,_0x1a9920);}function handleError(_0x38ce7e){const _0x55feb1=a0_0x3331e0;if(_0x38ce7e instanceof CliError){_0x38ce7e[_0x55feb1(0xcd)]===_0x55feb1(0xac)&&(process['stderr'][_0x55feb1(0xc4)]('\x0aCancelled.\x0a'),process[_0x55feb1(0xbc)](0x0));console[_0x55feb1(0xb4)]('Error:\x20'+_0x38ce7e[_0x55feb1(0xaf)]);if(_0x38ce7e[_0x55feb1(0xb6)])console[_0x55feb1(0xb4)](_0x55feb1(0xaa)+_0x38ce7e[_0x55feb1(0xb6)]);process[_0x55feb1(0xbc)](_0x38ce7e[_0x55feb1(0xb3)]);}isUserCancellation(_0x38ce7e)&&(process['stderr'][_0x55feb1(0xc4)]('\x0aCancelled.\x0a'),process[_0x55feb1(0xbc)](0x0)),console[_0x55feb1(0xb4)](_0x55feb1(0xa8),_0x38ce7e),process[_0x55feb1(0xbc)](0x1);}function isUserCancellation(_0x1a039e){const _0x5a23c7=a0_0x3331e0;if(!(_0x1a039e instanceof Error))return![];if(_0x1a039e[_0x5a23c7(0xa7)]==='ExitPromptError')return!![];if(_0x1a039e[_0x5a23c7(0xcd)]===_0x5a23c7(0xb0))return!![];if(_0x1a039e[_0x5a23c7(0xcd)]===_0x5a23c7(0xbb))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_0x94e421=a1_0xfeeb;(function(_0xfb9345,_0x2e1ba5){const _0x559926=a1_0xfeeb,_0x2f165d=_0xfb9345();while(!![]){try{const _0xf40ed5=-parseInt(_0x559926(0x14a))/0x1*(-parseInt(_0x559926(0x145))/0x2)+-parseInt(_0x559926(0x13f))/0x3+parseInt(_0x559926(0x165))/0x4*(-parseInt(_0x559926(0x18a))/0x5)+-parseInt(_0x559926(0x152))/0x6*(parseInt(_0x559926(0x18e))/0x7)+parseInt(_0x559926(0x158))/0x8+-parseInt(_0x559926(0x196))/0x9+parseInt(_0x559926(0x183))/0xa;if(_0xf40ed5===_0x2e1ba5)break;else _0x2f165d['push'](_0x2f165d['shift']());}catch(_0x1d2aae){_0x2f165d['push'](_0x2f165d['shift']());}}}(a1_0x1e19,0x60747));import{CliErrors}from'../../errors.js';function a1_0xfeeb(_0x442be3,_0xb6912a){_0x442be3=_0x442be3-0x127;const _0x1e1949=a1_0x1e19();let _0xfeeba0=_0x1e1949[_0x442be3];return _0xfeeba0;}const CATEGORY_FLAG={'name':'category','type':'string','description':a1_0x94e421(0x127)},KEYWORD_FLAG={'name':a1_0x94e421(0x154),'type':a1_0x94e421(0x133),'description':a1_0x94e421(0x135)},DOC_CODE_FLAG={'name':a1_0x94e421(0x15a),'type':'string','required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':a1_0x94e421(0x137),'category':a1_0x94e421(0x149),'title':a1_0x94e421(0x153),'method':a1_0x94e421(0x17c),'path':'/api/dataset/get-dataset-list-by-app-code','summary':a1_0x94e421(0x13a),'whenToUse':a1_0x94e421(0x187),'pathParams':[],'queryParams':[],'bodySchema':a1_0x94e421(0x15b),'responseHighlights':[a1_0x94e421(0x150),a1_0x94e421(0x177)],'examples':[a1_0x94e421(0x178)],'notes':[a1_0x94e421(0x173)],'markdown':[a1_0x94e421(0x189),'','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.'][a1_0x94e421(0x12a)]('\x0a')},{'code':a1_0x94e421(0x192),'category':a1_0x94e421(0x149),'title':a1_0x94e421(0x12f),'method':a1_0x94e421(0x172),'path':a1_0x94e421(0x17d),'summary':a1_0x94e421(0x18c),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':'code','description':'32-character\x20dataset\x20code'}],'bodySchema':'None','responseHighlights':[a1_0x94e421(0x19e),'relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned',a1_0x94e421(0x195)],'examples':[a1_0x94e421(0x140)],'notes':[a1_0x94e421(0x185)],'markdown':[a1_0x94e421(0x19b),'',a1_0x94e421(0x146)][a1_0x94e421(0x12a)]('\x0a')},{'code':a1_0x94e421(0x159),'category':'dataset','title':a1_0x94e421(0x17f),'method':a1_0x94e421(0x17c),'path':'/api/{appCode}/{datasetCode}/filter','summary':a1_0x94e421(0x188),'whenToUse':a1_0x94e421(0x139),'pathParams':[{'name':a1_0x94e421(0x162),'description':'Current\x20app\x20code'},{'name':a1_0x94e421(0x17b),'description':a1_0x94e421(0x16e)}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':[a1_0x94e421(0x156),'paging\x20contains\x20pagination'],'examples':[a1_0x94e421(0x131),'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_0x94e421(0x18f),a1_0x94e421(0x199),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x94e421(0x15c)],'markdown':[a1_0x94e421(0x129),'','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.'][a1_0x94e421(0x12a)]('\x0a')},{'code':a1_0x94e421(0x128),'category':a1_0x94e421(0x149),'title':a1_0x94e421(0x144),'method':a1_0x94e421(0x17c),'path':a1_0x94e421(0x175),'summary':'聚合查询数据集数据','whenToUse':a1_0x94e421(0x164),'pathParams':[{'name':a1_0x94e421(0x162),'description':'Current\x20app\x20code'},{'name':a1_0x94e421(0x17b),'description':a1_0x94e421(0x16e)}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':[a1_0x94e421(0x167),a1_0x94e421(0x18d)],'examples':[a1_0x94e421(0x14f)],'notes':[a1_0x94e421(0x142),a1_0x94e421(0x16d)],'markdown':[a1_0x94e421(0x19a),'',a1_0x94e421(0x14b)][a1_0x94e421(0x12a)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0x94e421(0x149),'title':'Get\x20one\x20dataset\x20record','method':a1_0x94e421(0x17c),'path':a1_0x94e421(0x14d),'summary':a1_0x94e421(0x155),'whenToUse':a1_0x94e421(0x16f),'pathParams':[{'name':'appCode','description':a1_0x94e421(0x134)},{'name':a1_0x94e421(0x17b),'description':a1_0x94e421(0x16e)}],'queryParams':[],'bodySchema':a1_0x94e421(0x16b),'responseHighlights':[a1_0x94e421(0x18b)],'examples':[a1_0x94e421(0x194)],'notes':['Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.'],'markdown':a1_0x94e421(0x151)},{'code':a1_0x94e421(0x170),'category':a1_0x94e421(0x149),'title':'Create\x20dataset\x20record','method':a1_0x94e421(0x17c),'path':a1_0x94e421(0x160),'summary':'创建数据','whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x94e421(0x162),'description':a1_0x94e421(0x134)},{'name':'datasetCode','description':a1_0x94e421(0x16e)}],'queryParams':[],'bodySchema':a1_0x94e421(0x13b),'responseHighlights':[a1_0x94e421(0x19c)],'examples':[a1_0x94e421(0x13e)],'notes':['This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.'],'markdown':'##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.'},{'code':a1_0x94e421(0x12e),'category':'bf','title':a1_0x94e421(0x13c),'method':a1_0x94e421(0x172),'path':a1_0x94e421(0x132),'summary':a1_0x94e421(0x171),'whenToUse':'已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','pathParams':[{'name':a1_0x94e421(0x162),'description':a1_0x94e421(0x134)},{'name':'functionName','description':a1_0x94e421(0x19d)}],'queryParams':[],'bodySchema':'None','responseHighlights':['CLI\x20returns\x20appCode/functionName/description/version/gmtModified'],'examples':[a1_0x94e421(0x176)],'notes':[a1_0x94e421(0x169)],'markdown':a1_0x94e421(0x190)},{'code':a1_0x94e421(0x193),'category':'bf','title':a1_0x94e421(0x12d),'method':a1_0x94e421(0x17c),'path':'/api/endpoint/{appCode}/{functionName}','summary':a1_0x94e421(0x14c),'whenToUse':a1_0x94e421(0x15d),'pathParams':[{'name':a1_0x94e421(0x162),'description':a1_0x94e421(0x134)},{'name':'functionName','description':a1_0x94e421(0x157)}],'queryParams':[],'bodySchema':a1_0x94e421(0x16c),'responseHighlights':[a1_0x94e421(0x186)],'examples':[a1_0x94e421(0x19f)],'notes':[a1_0x94e421(0x191)],'markdown':a1_0x94e421(0x12b)},{'code':a1_0x94e421(0x166),'category':a1_0x94e421(0x197),'title':a1_0x94e421(0x148),'method':a1_0x94e421(0x17c),'path':a1_0x94e421(0x16a),'summary':a1_0x94e421(0x130),'whenToUse':a1_0x94e421(0x168),'pathParams':[],'queryParams':[],'bodySchema':a1_0x94e421(0x182),'responseHighlights':[a1_0x94e421(0x181)],'examples':['lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27'],'notes':[a1_0x94e421(0x180)],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x34bae3){const _0x27e065=a1_0x94e421;return{'code':_0x34bae3[_0x27e065(0x15a)],'category':_0x34bae3['category'],'method':_0x34bae3[_0x27e065(0x17e)],'path':_0x34bae3['path'],'summary':_0x34bae3[_0x27e065(0x163)],'whenToUse':_0x34bae3[_0x27e065(0x136)]};}export function listApiDocEntries(_0x335d76={}){const _0x57a177=a1_0x94e421,_0x4e18c7=String(_0x335d76[_0x57a177(0x14e)]||'')[_0x57a177(0x138)](),_0x31b35d=String(_0x335d76['keyword']||'')[_0x57a177(0x138)]()[_0x57a177(0x17a)]();return DOCS[_0x57a177(0x198)](_0xe75b74=>{const _0x2f1768=_0x57a177;if(_0x4e18c7&&_0xe75b74[_0x2f1768(0x14e)]!==_0x4e18c7)return![];if(!_0x31b35d)return!![];return[_0xe75b74[_0x2f1768(0x15a)],_0xe75b74['category'],_0xe75b74[_0x2f1768(0x17e)],_0xe75b74['path'],_0xe75b74[_0x2f1768(0x163)],_0xe75b74['whenToUse'],_0xe75b74['title']][_0x2f1768(0x12a)]('\x20')[_0x2f1768(0x17a)]()[_0x2f1768(0x161)](_0x31b35d);})[_0x57a177(0x179)](entrySummary);}export function getApiDocDetail(_0x2a7364){const _0x5d9c1b=a1_0x94e421,_0xca8333=DOCS[_0x5d9c1b(0x13d)](_0x521ef=>_0x521ef[_0x5d9c1b(0x15a)]===_0x2a7364);if(!_0xca8333)throw CliErrors['validation'](_0x5d9c1b(0x15f)+_0x2a7364);return{..._0xca8333};}const apiDocList={'service':a1_0x94e421(0x174),'command':a1_0x94e421(0x143),'description':a1_0x94e421(0x15e),'risk':a1_0x94e421(0x12c),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x579a87){const _0x6b9011=a1_0x94e421,_0x5a5bc1=listApiDocEntries({'category':_0x579a87['str'](_0x6b9011(0x14e)),'keyword':_0x579a87['str']('keyword')});return{'ok':!![],'data':{'total':_0x5a5bc1[_0x6b9011(0x184)],'items':_0x5a5bc1}};}},apiDocDetail={'service':'api-doc','command':a1_0x94e421(0x141),'description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0x94e421(0x12c),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x40e5f0){const _0x34257e=a1_0x94e421;return{'ok':!![],'data':getApiDocDetail(_0x40e5f0[_0x34257e(0x147)](_0x34257e(0x15a)))};}};function a1_0x1e19(){const _0x35c839=['Endpoint\x20function\x20name','4512256LDlZsI','dataset_data_filter','code','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','List\x20available\x20runtime\x20API\x20documentation\x20entries','API\x20doc\x20code\x20not\x20found:\x20','/api/{appCode}/{datasetCode}/create','includes','appCode','summary','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','63436xAaxJP','custom_sql_execute','result\x20rows\x20contain\x20aggregate\x20aliases','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','/api/custom/executeSql','{\x22id\x22:123}','{\x22param\x22:\x22value\x22}','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','32-character\x20dataset\x20code','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','dataset_data_create','按应用和函数名精确获取\x20BF\x20运行契约','GET','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','api-doc','/api/{appCode}/{datasetCode}/aggregate','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','paging.totalCount\x20gives\x20total\x20rows','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','map','toLowerCase','datasetCode','POST','/api/dataset/getOneByCode?code={datasetCode}','method','Filter\x20dataset\x20data','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','Returns\x20SQL\x20execution\x20payload','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','18822020uOqAMX','length','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','Returns\x20script\x20business\x20payload','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','条件过滤查询数据','##\x20List\x20datasets','145mLYflI','Returns\x20one\x20matching\x20business\x20record','获取数据集详情','where\x20filters\x20before\x20aggregation','1096620ixdnWH','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','dataset_detail','bf_execute','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','operations\x20describes\x20runtime\x20APIs','4379094wxwsJX','custom_sql','filter','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','##\x20Aggregate\x20dataset\x20data','##\x20Dataset\x20detail','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','Exact\x20endpoint\x20function\x20name','fields/properties\x20describe\x20data\x20shape','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','dataset_data_aggregate','##\x20Filter\x20dataset\x20data','join','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','read','Execute\x20BF\x20endpoint\x20function','bf_detail','Dataset\x20detail','执行自定义\x20SQL','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','/client/bff/endpoint/{appCode}/{functionName}','string','Current\x20app\x20code','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','whenToUse','dataset_list','trim','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','分页获取数据集列表','{\x22fieldName\x22:\x22value\x22}','Get\x20BF\x20endpoint\x20function\x20contract','find','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','1648800dmBngy','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','detail','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','list','Aggregate\x20dataset\x20data','12BAqrvT','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','str','Execute\x20custom\x20SQL','dataset','38037CGGiRu','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','执行指定\x20BF\x20函数','/api/{appCode}/{datasetCode}/getOne','category','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','tableData\x20contains\x20dataset\x20id/code/name','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','30rUdIWU','List\x20datasets','keyword','查询单条数据','tableData\x20contains\x20records'];a1_0x1e19=function(){return _0x35c839;};return a1_0x1e19();}export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x451c32,_0x11a46c){const _0x5e8f0f=a2_0x4251,_0x5e6511=_0x451c32();while(!![]){try{const _0x4bc15a=-parseInt(_0x5e8f0f(0x11a))/0x1+parseInt(_0x5e8f0f(0x12c))/0x2*(-parseInt(_0x5e8f0f(0x110))/0x3)+-parseInt(_0x5e8f0f(0x118))/0x4+-parseInt(_0x5e8f0f(0x114))/0x5+-parseInt(_0x5e8f0f(0x112))/0x6*(-parseInt(_0x5e8f0f(0x115))/0x7)+parseInt(_0x5e8f0f(0x12b))/0x8+parseInt(_0x5e8f0f(0x11b))/0x9*(parseInt(_0x5e8f0f(0x11e))/0xa);if(_0x4bc15a===_0x11a46c)break;else _0x5e6511['push'](_0x5e6511['shift']());}catch(_0x446083){_0x5e6511['push'](_0x5e6511['shift']());}}}(a2_0x2dfd,0xdd0f5));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(_0x2acfb8){const _0x531494=a2_0x4251,_0x5a93a9=_0x2acfb8['trim'](),_0x482f50=_0x5a93a9[_0x531494(0x119)](-0x6)||_0x531494(0x113),_0x41229b=createHash(_0x531494(0x11c))['update'](_0x5a93a9)[_0x531494(0x121)](_0x531494(0x117))[_0x531494(0x119)](0x0,0xc);return _0x531494(0x12e)+_0x482f50+'_'+_0x41229b;}export function getAppCacheFilePath(_0x178154,_0x1ff617){const _0x421a12=a2_0x4251;return resolve(homedir(),PRODUCT_CONFIG[_0x421a12(0x128)],_0x421a12(0x123),_0x178154,fingerprintAccessKey(_0x1ff617),'my-apps.json');}export function readCachedAppList(_0x81ffb2,_0x34298e){const _0x4e9b9a=a2_0x4251;if(!_0x34298e?.[_0x4e9b9a(0x125)]())return null;const _0x2af679=getAppCacheFilePath(_0x81ffb2,_0x34298e);if(!existsSync(_0x2af679))return null;try{const _0x238ada=readFileSync(_0x2af679,'utf8');if(!_0x238ada[_0x4e9b9a(0x125)]())return null;const _0x351875=JSON[_0x4e9b9a(0x127)](_0x238ada);if(!Array[_0x4e9b9a(0x111)](_0x351875[_0x4e9b9a(0x11d)]))return null;return _0x351875;}catch{return null;}}export function writeCachedAppList(_0x562ccf,_0x1d8244,_0x45b18c){const _0x237904=a2_0x4251,_0x53af50=getAppCacheFilePath(_0x562ccf,_0x1d8244),_0x18f1ce=dirname(_0x53af50);!existsSync(_0x18f1ce)&&mkdirSync(_0x18f1ce,{'recursive':!![]});const _0x5e7966=_0x53af50+'.tmp';try{writeFileSync(_0x5e7966,JSON[_0x237904(0x116)](_0x45b18c,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180});try{renameSync(_0x5e7966,_0x53af50);}catch(_0xe69933){if(_0xe69933['code']===_0x237904(0x12a)||_0xe69933[_0x237904(0x129)]===_0x237904(0x12d)||_0xe69933[_0x237904(0x129)]===_0x237904(0x120)){writeFileSync(_0x53af50,JSON[_0x237904(0x116)](_0x45b18c,null,0x2)+'\x0a',{'encoding':_0x237904(0x11f)});try{unlinkSync(_0x5e7966);}catch{}}else throw _0xe69933;}}catch(_0x489911){try{unlinkSync(_0x5e7966);}catch{}throw _0x489911;}return _0x53af50;}function a2_0x4251(_0x40023c,_0x276ef3){_0x40023c=_0x40023c-0x110;const _0x2dfd74=a2_0x2dfd();let _0x4251df=_0x2dfd74[_0x40023c];return _0x4251df;}function a2_0x2dfd(){const _0x18f44d=['appName','parse','homeDirName','code','EPERM','8625080USvFPm','54Rxbuak','EXDEV','ak_','70245Vldtrg','isArray','12FoSXjw','unknown','6411755sOSUMz','5681263neTgza','stringify','hex','4514632KZfIZW','slice','548708Ahfjax','45hUMQlN','sha256','items','3592060sgYfTM','utf8','EACCES','digest','find','cache','appCode','trim'];a2_0x2dfd=function(){return _0x18f44d;};return a2_0x2dfd();}export function resolveCachedAppCode(_0x3dc997,_0xe39634,_0x408e7e){const _0x4652ed=a2_0x4251;if(!_0x3dc997)return undefined;const _0x514cc9=readCachedAppList(_0xe39634,_0x408e7e),_0x127a54=_0x514cc9?.[_0x4652ed(0x11d)][_0x4652ed(0x122)](_0x3c2096=>_0x3c2096[_0x4652ed(0x126)]===_0x3dc997&&isRuntimeAccessibleApp(_0x3c2096));return _0x127a54?.[_0x4652ed(0x124)]?.['trim']()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x105a6d=a3_0xe7b6;(function(_0x58a7b7,_0x1e863f){const _0x5b9f40=a3_0xe7b6,_0x5bbbca=_0x58a7b7();while(!![]){try{const _0x13c609=-parseInt(_0x5b9f40(0x15a))/0x1*(parseInt(_0x5b9f40(0x150))/0x2)+-parseInt(_0x5b9f40(0x170))/0x3*(-parseInt(_0x5b9f40(0x156))/0x4)+-parseInt(_0x5b9f40(0x159))/0x5*(-parseInt(_0x5b9f40(0x15e))/0x6)+parseInt(_0x5b9f40(0x12a))/0x7*(-parseInt(_0x5b9f40(0x13d))/0x8)+parseInt(_0x5b9f40(0x136))/0x9*(-parseInt(_0x5b9f40(0x14a))/0xa)+parseInt(_0x5b9f40(0x158))/0xb+parseInt(_0x5b9f40(0x152))/0xc;if(_0x13c609===_0x1e863f)break;else _0x5bbbca['push'](_0x5bbbca['shift']());}catch(_0x57afd3){_0x5bbbca['push'](_0x5bbbca['shift']());}}}(a3_0x43a2,0xc99d2));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';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function a3_0xe7b6(_0x8c4efc,_0x39063b){_0x8c4efc=_0x8c4efc-0x129;const _0x43a27c=a3_0x43a2();let _0xe7b622=_0x43a27c[_0x8c4efc];return _0xe7b622;}function collectFlags(_0x4c754e,_0x542014){const _0x18e2b6=a3_0xe7b6,_0x43ba2e={};for(const _0x2bf460 of _0x542014){const _0x2d6c4a=_0x2bf460[_0x18e2b6(0x166)]==='boolean'?_0x4c754e[_0x18e2b6(0x14b)](_0x2bf460[_0x18e2b6(0x13e)]):_0x4c754e[_0x18e2b6(0x16c)](_0x2bf460[_0x18e2b6(0x13e)]);if(_0x2d6c4a!==''&&_0x2d6c4a!==![])_0x43ba2e[_0x2bf460[_0x18e2b6(0x13e)]]=_0x2d6c4a;}if(_0x4c754e[_0x18e2b6(0x149)])_0x43ba2e['nonInteractive']=!![];return _0x43ba2e;}function a3_0x43a2(){const _0x539da4=['bool','../../context.js','appCode','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','map','1403098eoGAYf','isCurrent','12085368xNyCRA','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','globalPath','../../commands/app/remote-source.js','4axxsIe','boolean','2461855tMXWEW','1410CzeZVj','1malXBF','filter','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','i18nInfo','30936ccLxiB','enableI18n','length','write','Target\x20environment\x20(default:\x20current\x20env)','list','isArray','fetchedAt','type','source','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','No\x20cached\x20apps\x20found.','app','local','str','Read\x20app\x20list\x20from\x20local\x20cache\x20only','Refreshed\x20app\x20cache\x20with\x20','从平台刷新本地应用缓存','2715339jFLfcv','push','406eZgbPT','include-unpublished','projectPath','no-cache','read','entries','trim','accessKey','appPublishStatus','find','string','items','9KFHZix','cache','appcode','appOwnerName','production','\x20app(s)\x20for\x20env=\x22','Include\x20unpublished\x20apps\x20for\x20diagnostics','66064YTqMmm','name','import','No\x20apps\x20found\x20on\x20the\x20platform.','envName','Read\x20from\x20local\x20cache\x20only','从\x20.rabetbase.json\x20文件导入默认应用选择','cachePath','env','Filter\x20by\x20environment\x20(default:\x20current\x20env)','remote','Loaded\x20','nonInteractive','15837010nULNNj'];a3_0x43a2=function(){return _0x539da4;};return a3_0x43a2();}function normalizeLanguages(_0x100470){const _0x1aad5d=a3_0xe7b6;if(!Array[_0x1aad5d(0x164)](_0x100470))return[];return _0x100470[_0x1aad5d(0x15b)](_0x53900=>typeof _0x53900===_0x1aad5d(0x134))[_0x1aad5d(0x14f)](_0x3969a4=>_0x3969a4[_0x1aad5d(0x130)]())[_0x1aad5d(0x15b)](Boolean);}function buildRemoteAppI18nFields(_0x2ac3de){const _0x5da9ac=a3_0xe7b6,_0x566ff0=normalizeLanguages(_0x2ac3de[_0x5da9ac(0x15d)]?.['langs']);return{'enableI18n':typeof _0x2ac3de[_0x5da9ac(0x15f)]===_0x5da9ac(0x157)?_0x2ac3de[_0x5da9ac(0x15f)]:null,'languages':_0x566ff0,'i18nInfo':_0x2ac3de['i18nInfo']?{..._0x2ac3de[_0x5da9ac(0x15d)],'langs':_0x566ff0['length']?_0x566ff0:null}:null};}const listDef={'service':'app','command':a3_0x105a6d(0x163),'description':a3_0x105a6d(0x14e),'risk':a3_0x105a6d(0x12e),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x105a6d(0x145),'type':'string','description':a3_0x105a6d(0x146),'enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0x105a6d(0x157),'description':a3_0x105a6d(0x16d),'default':![]},{'name':a3_0x105a6d(0x12d),'type':a3_0x105a6d(0x157),'description':a3_0x105a6d(0x15c),'default':![]},{'name':a3_0x105a6d(0x12b),'type':'boolean','description':a3_0x105a6d(0x13c),'default':![]}],async 'execute'(_0x296171){const _0x4f1f22=a3_0x105a6d,_0x5d41d7=_0x296171['str']('env')||_0x296171['envName']||getEnv()||_0x4f1f22(0x13a),_0x40de81=_0x296171[_0x4f1f22(0x14b)]('local'),_0x39f239=_0x296171[_0x4f1f22(0x14b)]('no-cache'),_0x48b9fd=_0x296171['bool'](_0x4f1f22(0x12b)),{readRawConfigWithLayers:_0x9ee360,resolveDefaultAppSource:_0xfa6eb2,getLocalAppAliases:_0x59ff26}=await import(_0x4f1f22(0x14c)),{getRemoteAppList:_0x4e963a}=await import(_0x4f1f22(0x155)),{config:_0x3b8ef3,layers:_0x57cfe3}=_0x9ee360(),_0x494ec1=_0xfa6eb2(_0x57cfe3),{defaultApp:_0xb9ed5d}=_0x3b8ef3,_0x32ae45=await _0x4e963a({'env':_0x5d41d7,'accessKey':_0x296171[_0x4f1f22(0x131)],'localOnly':_0x40de81,'noCache':_0x39f239}),_0x7f98f8=_0x48b9fd?_0x32ae45[_0x4f1f22(0x135)]:filterRuntimeAccessibleApps(_0x32ae45[_0x4f1f22(0x135)]),_0x12e5d1=_0x32ae45[_0x4f1f22(0x135)][_0x4f1f22(0x160)]-_0x7f98f8[_0x4f1f22(0x160)],_0x5ce8da=_0x7f98f8[_0x4f1f22(0x14f)](_0x24d8ff=>{const _0x2e5a96=_0x4f1f22;return{'name':_0x24d8ff['appName'],'appcode':_0x24d8ff[_0x2e5a96(0x14d)],'named':!![],'definedIn':_0x2e5a96(0x147),'isDefault':_0x24d8ff['appName']===_0xb9ed5d,...buildAppProfileListFields(_0x5d41d7),...buildRemoteAppI18nFields(_0x24d8ff),'source':_0x32ae45['source'],'owner':_0x24d8ff[_0x2e5a96(0x139)]??null,'status':_0x24d8ff[_0x2e5a96(0x132)]??null,'cachedAt':_0x32ae45[_0x2e5a96(0x165)]};}),_0x4857ac=_0x59ff26(_0x3b8ef3);let _0x347312=0x0;for(const [_0x3bc436,_0xe5278c]of Object[_0x4f1f22(0x12f)](_0x4857ac)){const _0x3b3283=typeof _0xe5278c[_0x4f1f22(0x138)]===_0x4f1f22(0x134)?_0xe5278c[_0x4f1f22(0x138)][_0x4f1f22(0x130)]():'';if(!_0x3b3283)continue;const _0x4b14ec=findAppByCode(_0x32ae45['items'],_0x3b3283);if(!_0x48b9fd&&_0x4b14ec&&!isRuntimeAccessibleApp(_0x4b14ec))continue;_0x347312+=0x1,_0x5ce8da[_0x4f1f22(0x129)]({'name':_0x3bc436,'appcode':_0x3b3283,'named':!![],'definedIn':'local','isDefault':_0x3bc436===_0xb9ed5d,...buildAppProfileListFields(_0x5d41d7),'source':'config','owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x5ce8da,_0x296171['mergedCli']);const _0x5e7cae=_0x5ce8da[_0x4f1f22(0x133)](_0x1c4cb7=>_0x1c4cb7[_0x4f1f22(0x151)]===!![]),_0xa377b7=_0xb9ed5d??_0x5e7cae?.[_0x4f1f22(0x13e)]??null,_0x5a9da7={'env':_0x5d41d7,'source':_0x32ae45['source'],'fetchedAt':_0x32ae45[_0x4f1f22(0x165)],'cachePath':_0x32ae45[_0x4f1f22(0x144)],'globalPath':_0x57cfe3[_0x4f1f22(0x154)]??null,'projectPath':_0x57cfe3[_0x4f1f22(0x12c)]??null,'defaultApp':_0xa377b7,'defaultAppSource':_0xb9ed5d!=null?_0x494ec1:null,'localAliasCount':_0x347312,'remoteTotal':_0x32ae45[_0x4f1f22(0x135)][_0x4f1f22(0x160)],'hiddenUnpublishedCount':_0x12e5d1,'includeUnpublished':_0x48b9fd};if(_0x5ce8da[_0x4f1f22(0x160)]===0x0)return{'ok':!![],'data':{'items':_0x5ce8da,'meta':_0x5a9da7},'message':_0x32ae45[_0x4f1f22(0x167)]===_0x4f1f22(0x137)?_0x4f1f22(0x169):_0x4f1f22(0x140)};return{'ok':!![],'data':{'items':_0x5ce8da,'meta':_0x5a9da7}};}},pullDef={'service':a3_0x105a6d(0x16a),'command':'pull','description':a3_0x105a6d(0x16f),'risk':a3_0x105a6d(0x161),'confirmationDescription':a3_0x105a6d(0x153),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x105a6d(0x145),'type':'string','description':a3_0x105a6d(0x162),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x105a6d(0x16b),'type':'boolean','description':a3_0x105a6d(0x142),'default':![]},{'name':a3_0x105a6d(0x12d),'type':'boolean','description':a3_0x105a6d(0x15c),'default':![]}],async 'execute'(_0xd33148){const _0x2d765d=a3_0x105a6d,_0x343e67=_0xd33148[_0x2d765d(0x16c)](_0x2d765d(0x145))||_0xd33148[_0x2d765d(0x141)]||getEnv()||'production',_0x4ab5da=_0xd33148[_0x2d765d(0x14b)](_0x2d765d(0x16b)),_0x109b92=_0xd33148['bool'](_0x2d765d(0x12d)),{getRemoteAppList:_0x11c8f6}=await import(_0x2d765d(0x155)),_0x349bbc=await _0x11c8f6({'env':_0x343e67,'accessKey':_0xd33148['accessKey'],'localOnly':_0x4ab5da,'noCache':_0x109b92});return{'ok':!![],'data':{'total':_0x349bbc[_0x2d765d(0x135)][_0x2d765d(0x160)],'env':_0x343e67,'source':_0x349bbc['source'],'fetchedAt':_0x349bbc[_0x2d765d(0x165)],'cachePath':_0x349bbc[_0x2d765d(0x144)]},'message':_0x349bbc[_0x2d765d(0x167)]===_0x2d765d(0x137)?_0x2d765d(0x148)+_0x349bbc['items'][_0x2d765d(0x160)]+'\x20cached\x20app(s)\x20for\x20env=\x22'+_0x343e67+'\x22.':_0x2d765d(0x16e)+_0x349bbc[_0x2d765d(0x135)][_0x2d765d(0x160)]+_0x2d765d(0x13b)+_0x343e67+'\x22.'};}},importDef={'service':a3_0x105a6d(0x16a),'command':a3_0x105a6d(0x13f),'description':a3_0x105a6d(0x143),'risk':a3_0x105a6d(0x161),'confirmationDescription':a3_0x105a6d(0x168),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x2f9221){return await runAppImport(collectFlags(_0x2f9221,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1bcf89,_0x564535){const _0xe219f6=a4_0x366e,_0x41fb9c=_0x1bcf89();while(!![]){try{const _0x4ddc62=parseInt(_0xe219f6(0x15d))/0x1*(-parseInt(_0xe219f6(0x15b))/0x2)+parseInt(_0xe219f6(0x14f))/0x3+parseInt(_0xe219f6(0x158))/0x4+parseInt(_0xe219f6(0x14e))/0x5+parseInt(_0xe219f6(0x155))/0x6+parseInt(_0xe219f6(0x150))/0x7+-parseInt(_0xe219f6(0x15f))/0x8;if(_0x4ddc62===_0x564535)break;else _0x41fb9c['push'](_0x41fb9c['shift']());}catch(_0x42d4a){_0x41fb9c['push'](_0x41fb9c['shift']());}}}(a4_0x4a5c,0x381f8));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(_0xa5db46){const _0x455dc5=a4_0x366e;if(typeof _0xa5db46!=='string')return null;const _0x6fe803=_0xa5db46['trim']();return _0x6fe803?_0x6fe803[_0x455dc5(0x154)]():null;}export function isRuntimeAccessibleApp(_0x1e9e27){const _0x39aad3=a4_0x366e;return normalizeAppPublishStatus(_0x1e9e27[_0x39aad3(0x15c)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x489353){const _0x3fbbd2=a4_0x366e;return _0x489353[_0x3fbbd2(0x15a)](isRuntimeAccessibleApp);}export function findAppByName(_0x3b97d3,_0x5a6678){const _0x17db41=a4_0x366e;return _0x3b97d3[_0x17db41(0x162)](_0x12ce47=>_0x12ce47[_0x17db41(0x157)]===_0x5a6678);}function a4_0x4a5c(){const _0x1172de=['appCode','.\x20Publish\x20the\x20app\x20before\x20using\x20','App\x20','toUpperCase','2157018RChYTQ','UNKNOWN','appName','13228ddfnfK','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','filter','85418KWFfel','appPublishStatus','1uowNYX','Current\x20status:\x20','7382152PNWenL','validation','trim','find','1874050QQznDQ','901398YzAaTt','1100904CELKja'];a4_0x4a5c=function(){return _0x1172de;};return a4_0x4a5c();}export function findAppByCode(_0x22f716,_0x461bcf){const _0x1f314d=a4_0x366e,_0x2476b7=_0x461bcf[_0x1f314d(0x161)]();if(!_0x2476b7)return undefined;return _0x22f716[_0x1f314d(0x162)](_0x13e3b1=>_0x13e3b1[_0x1f314d(0x151)]?.[_0x1f314d(0x161)]()===_0x2476b7);}function a4_0x366e(_0x46cba6,_0x4fd3c0){_0x46cba6=_0x46cba6-0x14e;const _0x4a5c67=a4_0x4a5c();let _0x366e6d=_0x4a5c67[_0x46cba6];return _0x366e6d;}export function runtimeInaccessibleAppError(_0x36a221,_0x19e813){const _0x1a63ca=a4_0x366e,_0x3f5b3a=normalizeAppPublishStatus(_0x36a221[_0x1a63ca(0x15c)])??_0x1a63ca(0x156);return CliErrors[_0x1a63ca(0x160)](_0x1a63ca(0x153)+_0x19e813+'\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.',_0x1a63ca(0x15e)+_0x3f5b3a+_0x1a63ca(0x152)+CLI_BIN_NAME+_0x1a63ca(0x159));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2c5fc2,_0x480825){const _0x160f5e=a5_0x584c,_0x1b01b3=_0x2c5fc2();while(!![]){try{const _0x3b71f8=parseInt(_0x160f5e(0x145))/0x1*(-parseInt(_0x160f5e(0x149))/0x2)+-parseInt(_0x160f5e(0x13c))/0x3+-parseInt(_0x160f5e(0x140))/0x4+parseInt(_0x160f5e(0x139))/0x5*(parseInt(_0x160f5e(0x137))/0x6)+-parseInt(_0x160f5e(0x13d))/0x7*(parseInt(_0x160f5e(0x146))/0x8)+-parseInt(_0x160f5e(0x148))/0x9*(parseInt(_0x160f5e(0x141))/0xa)+-parseInt(_0x160f5e(0x13e))/0xb*(-parseInt(_0x160f5e(0x13f))/0xc);if(_0x3b71f8===_0x480825)break;else _0x1b01b3['push'](_0x1b01b3['shift']());}catch(_0x30dfe5){_0x1b01b3['push'](_0x1b01b3['shift']());}}}(a5_0x16fd,0x3d8de));function a5_0x584c(_0x51fc71,_0xba2f4e){_0x51fc71=_0x51fc71-0x137;const _0x16fd16=a5_0x16fd();let _0x584cb3=_0x16fd16[_0x51fc71];return _0x584cb3;}function a5_0x16fd(){const _0x5cef0d=['data','success','1014447yafped','35ZptITl','2926AfetHx','49692zbWYNF','332236PdYYoP','370TyHyBp','tableData','errorMsg','../../../mock/app-list.json','23OEToJw','381440Zlbaqs','Mock\x20API\x20error:\x20','84015jeBGfn','3666Nnvciz','78IwJpoT','utf-8','76070UTWkRq'];a5_0x16fd=function(){return _0x5cef0d;};return a5_0x16fd();}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 _0x558df9=a5_0x584c,_0xd8cb70=join(__dirname,_0x558df9(0x144)),_0x3e245c=readFileSync(_0xd8cb70,_0x558df9(0x138));return JSON['parse'](_0x3e245c);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x3691b4=a5_0x584c,_0x29c120=getMockAppList();if(!_0x29c120[_0x3691b4(0x13b)])throw new Error(_0x3691b4(0x147)+_0x29c120[_0x3691b4(0x143)]+'\x20('+_0x29c120['errorCode']+')');return _0x29c120[_0x3691b4(0x13a)][_0x3691b4(0x142)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a6_0x1581(_0x1c3f87,_0xa995bb){_0x1c3f87=_0x1c3f87-0x86;const _0x456043=a6_0x4560();let _0x1581e4=_0x456043[_0x1c3f87];return _0x1581e4;}(function(_0x54bfed,_0x2719ac){const _0x5a0896=a6_0x1581,_0x1afeaa=_0x54bfed();while(!![]){try{const _0x36ae2f=-parseInt(_0x5a0896(0x95))/0x1+-parseInt(_0x5a0896(0x89))/0x2*(parseInt(_0x5a0896(0x91))/0x3)+-parseInt(_0x5a0896(0x98))/0x4+parseInt(_0x5a0896(0x93))/0x5*(parseInt(_0x5a0896(0x94))/0x6)+-parseInt(_0x5a0896(0x86))/0x7*(parseInt(_0x5a0896(0x87))/0x8)+parseInt(_0x5a0896(0x8b))/0x9*(-parseInt(_0x5a0896(0x8d))/0xa)+parseInt(_0x5a0896(0x88))/0xb;if(_0x36ae2f===_0x2719ac)break;else _0x1afeaa['push'](_0x1afeaa['shift']());}catch(_0x469a7d){_0x1afeaa['push'](_0x1afeaa['shift']());}}}(a6_0x4560,0x7edd6));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';function a6_0x4560(){const _0x393da7=['35112374MVwYuv','262206LRizxN','toLowerCase','1665aPUaMm','cache','21110YzjQsE','fetchedAt','mock','APP_LIST_SOURCE','21XNbBYT','items','688195zoChph','42PsfryW','758322awSsTH','trim','toISOString','2828648tEmwJr','7hzTRTG','6897032OMzqiR'];a6_0x4560=function(){return _0x393da7;};return a6_0x4560();}export function shouldUseMockRemoteApps(){const _0x965467=a6_0x1581,_0x57eccd=(productEnv(_0x965467(0x90))||'')[_0x965467(0x96)]()[_0x965467(0x8a)]();return _0x57eccd==='mock';}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x56fe38){const _0x199a6a=a6_0x1581,{env:_0x437999,accessKey:_0x5eb74a,localOnly:localOnly=![],noCache:noCache=![]}=_0x56fe38,_0x92ca29=readCachedAppList(_0x437999,_0x5eb74a),_0x3db469=_0x5eb74a?.['trim']()?getAppCacheFilePath(_0x437999,_0x5eb74a):null;if(localOnly)return{'items':_0x92ca29?.[_0x199a6a(0x92)]??[],'source':_0x199a6a(0x8c),'fetchedAt':_0x92ca29?.[_0x199a6a(0x8e)]??null,'cachePath':_0x3db469};try{const _0x5dc8fb=await getRemoteAppItems(),_0x11a943=shouldUseMockRemoteApps()?_0x199a6a(0x8f):'remote',_0x473467=new Date()[_0x199a6a(0x97)](),_0x32e0b9=_0x5eb74a?.[_0x199a6a(0x96)]()?writeCachedAppList(_0x437999,_0x5eb74a,{'env':_0x437999,'fetchedAt':_0x473467,'source':_0x11a943,'items':_0x5dc8fb}):null;return{'items':_0x5dc8fb,'source':_0x11a943,'fetchedAt':_0x473467,'cachePath':_0x32e0b9};}catch(_0x36a43a){if(!noCache&&_0x92ca29)return{'items':_0x92ca29['items'],'source':_0x199a6a(0x8c),'fetchedAt':_0x92ca29[_0x199a6a(0x8e)],'cachePath':_0x3db469};throw _0x36a43a;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x114444,_0x50a3dd){const _0x2ce18f=a7_0x1962,_0x3211d2=_0x114444();while(!![]){try{const _0x13b916=-parseInt(_0x2ce18f(0x9b))/0x1+parseInt(_0x2ce18f(0x95))/0x2+parseInt(_0x2ce18f(0x8c))/0x3*(-parseInt(_0x2ce18f(0x9c))/0x4)+-parseInt(_0x2ce18f(0x8b))/0x5*(-parseInt(_0x2ce18f(0x98))/0x6)+parseInt(_0x2ce18f(0x97))/0x7*(parseInt(_0x2ce18f(0x92))/0x8)+parseInt(_0x2ce18f(0x94))/0x9+-parseInt(_0x2ce18f(0x9a))/0xa;if(_0x13b916===_0x50a3dd)break;else _0x3211d2['push'](_0x3211d2['shift']());}catch(_0x3ffee9){_0x3211d2['push'](_0x3211d2['shift']());}}}(a7_0x4727,0xd42a0));function a7_0x1962(_0x49ba80,_0x5c315e){_0x49ba80=_0x49ba80-0x89;const _0x4727d2=a7_0x4727();let _0x196237=_0x4727d2[_0x49ba80];return _0x196237;}export function enrichAppListItemsWithMergedSelection(_0x358963,_0x92b749){const _0x97a303=a7_0x1962;if(!_0x92b749)return;const _0x165791=!!(_0x92b749[_0x97a303(0x91)]??_0x92b749[_0x97a303(0x90)]);for(const _0x26015a of _0x358963){_0x26015a['isCurrent']=![];}const _0x28a376=_0x92b749[_0x97a303(0x99)]!=null?String(_0x92b749[_0x97a303(0x99)])[_0x97a303(0x96)]():'';if(_0x165791){const _0x14f576=_0x92b749[_0x97a303(0x91)]??_0x92b749[_0x97a303(0x90)];if(_0x14f576){const _0x3046ff=_0x358963[_0x97a303(0x8a)](_0x15c0d7=>_0x15c0d7['named']===!![]&&_0x15c0d7[_0x97a303(0x89)]===_0x14f576&&_0x15c0d7['definedIn']===_0x97a303(0x93)),_0x2e856d=_0x3046ff??_0x358963['find'](_0x5ad431=>_0x5ad431[_0x97a303(0x8d)]===!![]&&_0x5ad431[_0x97a303(0x89)]===_0x14f576);if(_0x2e856d){const _0x39bc67=String(_0x2e856d[_0x97a303(0x8f)]??'')[_0x97a303(0x96)]();if(!_0x28a376||_0x39bc67===_0x28a376){_0x2e856d['isCurrent']=!![];return;}}}if(_0x28a376){const _0x1deae3=_0x358963['find'](_0x39ab0c=>String(_0x39ab0c[_0x97a303(0x8f)]??'')[_0x97a303(0x96)]()===_0x28a376);_0x1deae3&&(_0x1deae3[_0x97a303(0x8e)]=!![]);}return;}if(!_0x28a376)return;for(const _0x1b25c8 of _0x358963){String(_0x1b25c8['appcode']??'')[_0x97a303(0x96)]()===_0x28a376&&(_0x1b25c8[_0x97a303(0x8e)]=!![]);}}function a7_0x4727(){const _0xa121e7=['942009DtrpBc','921244CtXahK','name','find','7046555aBlDsf','3UUWhWy','named','isCurrent','appcode','defaultApp','currentApp','1539248lLsopj','local','8122293yRrooQ','2584550WYhynY','trim','21uMHPdG','6vlwRpw','appCode','21399370ZjQArm'];a7_0x4727=function(){return _0xa121e7;};return a7_0x4727();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a8_0x23e9(){const _0x9b71e0=['Usage:\x20','Missing\x20app-config\x20key.','7349952BYnpIK','8LfjLdd','Unable\x20to\x20get\x20app-config\x20value:\x20key=','32017743JfdbCf','appCode','3185028yrYvAV','args','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key',',\x20appCode=','app-config','key','9957031VBDciY','92TOrNlM','\x20app-config\x20get\x20<key>','validation','apiError','4450964sEQNbz','3421935uAfJiJ','12689JBQIvg'];a8_0x23e9=function(){return _0x9b71e0;};return a8_0x23e9();}const a8_0x5cb48a=a8_0x3636;(function(_0x23ae9e,_0x18f3cc){const _0x4aae2b=a8_0x3636,_0x21b587=_0x23ae9e();while(!![]){try{const _0xdced14=-parseInt(_0x4aae2b(0xe0))/0x1*(-parseInt(_0x4aae2b(0xda))/0x2)+parseInt(_0x4aae2b(0xe8))/0x3+-parseInt(_0x4aae2b(0xde))/0x4+-parseInt(_0x4aae2b(0xdf))/0x5+-parseInt(_0x4aae2b(0xe3))/0x6+-parseInt(_0x4aae2b(0xd9))/0x7*(parseInt(_0x4aae2b(0xe4))/0x8)+parseInt(_0x4aae2b(0xe6))/0x9;if(_0xdced14===_0x18f3cc)break;else _0x21b587['push'](_0x21b587['shift']());}catch(_0x4dafb4){_0x21b587['push'](_0x21b587['shift']());}}}(a8_0x23e9,0xb9248));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';function a8_0x3636(_0x2b2e20,_0x198e51){_0x2b2e20=_0x2b2e20-0xd7;const _0x23e9fa=a8_0x23e9();let _0x363663=_0x23e9fa[_0x2b2e20];return _0x363663;}import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':a8_0x5cb48a(0xd7),'command':'get','description':a8_0x5cb48a(0xea),'risk':'read','args':[{'name':a8_0x5cb48a(0xd8),'description':'App\x20config\x20key','required':!![]}],'flags':[],async 'execute'(_0x3631f7){const _0x5a5ff2=a8_0x5cb48a,_0x40dec2=_0x3631f7[_0x5a5ff2(0xe9)][0x0]?.['trim']();if(!_0x40dec2)throw CliErrors[_0x5a5ff2(0xdc)](_0x5a5ff2(0xe2),_0x5a5ff2(0xe1)+CLI_BIN_NAME+_0x5a5ff2(0xdb));try{const _0x275974=await getRuntimeAppConfigByKey(_0x3631f7[_0x5a5ff2(0xe7)],_0x40dec2);return{'ok':!![],'data':_0x275974};}catch{throw CliErrors[_0x5a5ff2(0xdd)](_0x5a5ff2(0xe5)+_0x40dec2+_0x5a5ff2(0xeb)+_0x3631f7[_0x5a5ff2(0xe7)],'Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.');}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x14b277,_0x4a3028){const _0x4623e5=a9_0x5769,_0x5ce5b7=_0x14b277();while(!![]){try{const _0x1076eb=-parseInt(_0x4623e5(0x7d))/0x1*(-parseInt(_0x4623e5(0x80))/0x2)+parseInt(_0x4623e5(0x7e))/0x3+parseInt(_0x4623e5(0x81))/0x4+parseInt(_0x4623e5(0x79))/0x5*(-parseInt(_0x4623e5(0x7f))/0x6)+-parseInt(_0x4623e5(0x7c))/0x7+parseInt(_0x4623e5(0x78))/0x8*(-parseInt(_0x4623e5(0x7b))/0x9)+-parseInt(_0x4623e5(0x7a))/0xa*(parseInt(_0x4623e5(0x82))/0xb);if(_0x1076eb===_0x4a3028)break;else _0x5ce5b7['push'](_0x5ce5b7['shift']());}catch(_0x187c88){_0x5ce5b7['push'](_0x5ce5b7['shift']());}}}(a9_0x6daf,0x8dd0a));import{appConfigGet}from'../../commands/app-config/get.js';function a9_0x6daf(){const _0xbd745f=['4350302aFybFY','24vQMyJe','12305zCILkq','20YqPtmA','2366244ftmhuB','5113437nofMCp','1072238fGbMTf','3417084bMcAaJ','600LpQRSS','2BkabIC','3703644kCTjgP'];a9_0x6daf=function(){return _0xbd745f;};return a9_0x6daf();}function a9_0x5769(_0x30df37,_0x3e59fa){_0x30df37=_0x30df37-0x78;const _0x6dafa=a9_0x6daf();let _0x57690b=_0x6dafa[_0x30df37];return _0x57690b;}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_0x5d18a5=a10_0x1df9;function a10_0x1df9(_0x5cfa79,_0xe981a7){_0x5cfa79=_0x5cfa79-0x79;const _0xe884a0=a10_0xe884();let _0x1df9af=_0xe884a0[_0x5cfa79];return _0x1df9af;}(function(_0x168a5f,_0x112cde){const _0x5ebd1a=a10_0x1df9,_0x2e0c16=_0x168a5f();while(!![]){try{const _0x41b1c1=parseInt(_0x5ebd1a(0xca))/0x1+-parseInt(_0x5ebd1a(0xa8))/0x2*(-parseInt(_0x5ebd1a(0xba))/0x3)+parseInt(_0x5ebd1a(0xa4))/0x4*(parseInt(_0x5ebd1a(0x90))/0x5)+parseInt(_0x5ebd1a(0x81))/0x6*(parseInt(_0x5ebd1a(0xc0))/0x7)+parseInt(_0x5ebd1a(0xbe))/0x8+-parseInt(_0x5ebd1a(0xb8))/0x9+parseInt(_0x5ebd1a(0x84))/0xa*(-parseInt(_0x5ebd1a(0xc7))/0xb);if(_0x41b1c1===_0x112cde)break;else _0x2e0c16['push'](_0x2e0c16['shift']());}catch(_0x2780fd){_0x2e0c16['push'](_0x2e0c16['shift']());}}}(a10_0xe884,0xdb4bd));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_0x5d18a5(0x98),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x5d18a5(0x7c),a10_0x5d18a5(0xb3),'lodash',a10_0x5d18a5(0x99),a10_0x5d18a5(0x8f),a10_0x5d18a5(0xaf)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');function a10_0xe884(){const _0xccdd41=['File\x20path\x20is\x20required.','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','favorite','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','read','/update','deleted','Artifact\x20display\x20name','appCode','str','antd','2165UBkMEX','react_module\x20imports\x20are\x20limited\x20to:\x20','metadata','source','some','map','includes','build','react_module','dayjs','list','update','name','utf8','flag','test','create','Artifact\x20ID','trim','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','1648rIJHcO','bool','number','/client/artifact/create','346756gtTRBz','validation','Preview:\x20update\x20react_module\x20Artifact\x20','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','Show\x20one\x20Artifact\x20by\x20id','add','List\x20current-app\x20react_module\x20Artifacts','@ant-design/icons','isFile','parse','string','react-dom','compiledContent','content','createTime','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','14051232nepchX','detail','6JhJUYX','filter','num','exec','5702616kdUGbt','boolean','21tyVJNC','split','file','File\x20not\x20found:\x20','length','description','startsWith','3868887YDoXmP','Created\x20Artifact\x20','lastIndex','1570595lsuuSR','Optional\x20favorite-state\x20filter','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','isArray','.\x20Unsupported:\x20','react','body','updateTime','POST','data','708690pgkCHo','write','artifact','20PbVqah'];a10_0xe884=function(){return _0xccdd41;};return a10_0xe884();}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_0x5d18a5(0xc2),'type':a10_0x5d18a5(0xb2),'required':!![],'description':a10_0x5d18a5(0xa3)},ARTIFACT_NAME_FLAG={'name':a10_0x5d18a5(0x9c),'type':a10_0x5d18a5(0xb2),'description':a10_0x5d18a5(0x8c)},METADATA_FLAG={'name':a10_0x5d18a5(0x92),'type':a10_0x5d18a5(0xb2),'description':a10_0x5d18a5(0xb7)};function isPlainObject(_0x1cb6c4){const _0x1af847=a10_0x5d18a5;return typeof _0x1cb6c4==='object'&&_0x1cb6c4!==null&&!Array[_0x1af847(0x7a)](_0x1cb6c4);}function readSourceFile(_0x26d451){const _0x131a23=a10_0x5d18a5;if(!_0x26d451)throw CliErrors[_0x131a23(0xa9)](_0x131a23(0x85));if(!existsSync(_0x26d451))throw CliErrors[_0x131a23(0xa9)](_0x131a23(0xc3)+_0x26d451);if(!statSync(_0x26d451)[_0x131a23(0xb0)]())throw CliErrors[_0x131a23(0xa9)]('File\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x26d451);const _0x4e3d9e=readFileSync(_0x26d451,_0x131a23(0x9d));return validateReactModuleSource(_0x4e3d9e),_0x4e3d9e;}function parseMetadata(_0x13c130){const _0x4f61a3=a10_0x5d18a5;if(!_0x13c130)return undefined;let _0x2c4845;try{_0x2c4845=JSON[_0x4f61a3(0xb1)](_0x13c130);}catch{throw CliErrors[_0x4f61a3(0xa9)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x13c130);}if(!isPlainObject(_0x2c4845))throw CliErrors['validation']('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x33a84c={..._0x2c4845};return delete _0x33a84c['compiledContent'],_0x33a84c;}function getPackageName(_0x159db7){const _0x136c34=a10_0x5d18a5;if(_0x159db7[_0x136c34(0xc6)]('@')){const [_0x5f2f0d,_0x58494a]=_0x159db7[_0x136c34(0xc1)]('/');return _0x5f2f0d&&_0x58494a?_0x5f2f0d+'/'+_0x58494a:_0x159db7;}return _0x159db7[_0x136c34(0xc1)]('/')[0x0]||_0x159db7;}function validateAllowedImports(_0x111c63){const _0x5295da=a10_0x5d18a5,_0x4b1ae5=new Set();for(const _0x964630 of IMPORT_SOURCE_PATTERNS){_0x964630[_0x5295da(0xc9)]=0x0;let _0x1a1fce;while((_0x1a1fce=_0x964630[_0x5295da(0xbd)](_0x111c63))!==null){const _0x3642c6=_0x1a1fce[0x1]?.[_0x5295da(0xa2)]();_0x3642c6&&_0x4b1ae5[_0x5295da(0xad)](_0x3642c6);}}const _0x36d1d4=[..._0x4b1ae5][_0x5295da(0x95)](getPackageName)[_0x5295da(0xbb)](_0x10da13=>!ALLOWED_REACT_MODULE_IMPORTS[_0x5295da(0x96)](_0x10da13));if(_0x36d1d4[_0x5295da(0xc4)]>0x0)throw CliErrors[_0x5295da(0xa9)](_0x5295da(0x91)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x5295da(0x7b)+[...new Set(_0x36d1d4)]['join'](',\x20'));}export function validateReactModuleSource(_0x446371){const _0x266eed=a10_0x5d18a5;if(!_0x446371[_0x266eed(0xa2)]())throw CliErrors['validation']('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS[_0x266eed(0x94)](_0x148d1b=>_0x148d1b[_0x266eed(0x9f)](_0x446371)))throw CliErrors[_0x266eed(0xa9)](_0x266eed(0x88));validateAllowedImports(_0x446371);}function buildArtifactInput(_0x358932){const _0x14a7c1=a10_0x5d18a5,_0xd2b7fe=readSourceFile(_0x358932[_0x14a7c1(0x8e)](_0x14a7c1(0xc2))),_0x5ae3ae=_0x358932[_0x14a7c1(0x8e)](_0x14a7c1(0x9c))[_0x14a7c1(0xa2)](),_0x5afa61=parseMetadata(_0x358932[_0x14a7c1(0x8e)](_0x14a7c1(0x92)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x5ae3ae?{'name':_0x5ae3ae}:{},'content':_0xd2b7fe,..._0x5afa61?{'metadata':_0x5afa61}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x379612){const _0x37178d=a10_0x5d18a5;return{'id':_0x379612['id'],'name':_0x379612[_0x37178d(0x9c)],'artifactType':_0x379612['artifactType'],'source':_0x379612['source'],'favorite':_0x379612[_0x37178d(0x87)],'deleted':_0x379612['deleted'],'createTime':_0x379612[_0x37178d(0xb6)],'updateTime':_0x379612[_0x37178d(0x7e)]};}function detailArtifact(_0x117936){const _0x1666e8=a10_0x5d18a5;return{'id':_0x117936['id'],'appCode':_0x117936[_0x1666e8(0x8d)],'name':_0x117936[_0x1666e8(0x9c)],'artifactType':_0x117936['artifactType'],'source':_0x117936[_0x1666e8(0x93)],'favorite':_0x117936['favorite'],'deleted':_0x117936[_0x1666e8(0x8b)],'content':_0x117936[_0x1666e8(0xb5)]??'','compiledContent':_0x117936[_0x1666e8(0xb4)],'metadata':_0x117936['metadata']??{},'createTime':_0x117936['createTime'],'updateTime':_0x117936['updateTime']};}function readFavoriteFlag(_0xdf20ec){const _0x445a37=a10_0x5d18a5,_0x379d4e=_0xdf20ec[_0x445a37(0x9e)](_0x445a37(0x87));return _0x379d4e===undefined||_0x379d4e===null||_0x379d4e===''?undefined:_0xdf20ec[_0x445a37(0xa5)](_0x445a37(0x87));}const artifactList={'service':a10_0x5d18a5(0x83),'command':a10_0x5d18a5(0x9a),'description':a10_0x5d18a5(0xae),'risk':a10_0x5d18a5(0x89),'flags':[{'name':a10_0x5d18a5(0x93),'type':'string','description':a10_0x5d18a5(0x79)},{'name':a10_0x5d18a5(0x87),'type':a10_0x5d18a5(0xbf),'description':a10_0x5d18a5(0xcb)},VERBOSE_FLAG],async 'execute'(_0x565a4c){const _0x48cdd8=a10_0x5d18a5,_0x5d66e6=await listRuntimeArtifacts(_0x565a4c[_0x48cdd8(0x8d)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x565a4c[_0x48cdd8(0x8e)](_0x48cdd8(0x93))?{'source':_0x565a4c['str'](_0x48cdd8(0x93))}:{},...readFavoriteFlag(_0x565a4c)!==undefined?{'favorite':readFavoriteFlag(_0x565a4c)}:{}});return{'ok':!![],'data':{'total':_0x5d66e6[_0x48cdd8(0xc4)],'items':_0x565a4c['bool']('verbose')?_0x5d66e6:_0x5d66e6[_0x48cdd8(0x95)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x5d18a5(0x83),'command':a10_0x5d18a5(0xb9),'description':a10_0x5d18a5(0xac),'risk':a10_0x5d18a5(0x89),'flags':[{...ID_FLAG,'description':a10_0x5d18a5(0xa1)}],async 'execute'(_0x4560a6){const _0x3d4ddb=a10_0x5d18a5,_0x25866e=await getRuntimeArtifact(_0x4560a6['num']('id'),_0x4560a6[_0x3d4ddb(0x8d)]);return{'ok':!![],'data':detailArtifact(_0x25866e)};}},artifactCreate={'service':a10_0x5d18a5(0x83),'command':a10_0x5d18a5(0xa0),'description':'根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','risk':a10_0x5d18a5(0x82),'confirmationDescription':a10_0x5d18a5(0x86),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5b3f63){const _0x921f69=a10_0x5d18a5,_0x40ff33=buildArtifactInput(_0x5b3f63),_0x2a111e=await createRuntimeArtifact(_0x5b3f63[_0x921f69(0x8d)],_0x40ff33);return{'ok':!![],'data':detailArtifact(_0x2a111e),'message':_0x921f69(0xc8)+_0x2a111e['id']+(_0x2a111e[_0x921f69(0x9c)]?'\x20('+_0x2a111e[_0x921f69(0x9c)]+')':'')};},async 'dryRun'(_0xdd1818){const _0x203b01=a10_0x5d18a5,_0x29e29f=buildArtifactInput(_0xdd1818);return dryRun(_0x203b01(0x7f),_0x203b01(0xa7))['body']({'appCode':_0xdd1818[_0x203b01(0x8d)],..._0x29e29f})['description']('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x125b94){const _0x21c360=a10_0x5d18a5,_0x5160e7=_0x125b94[_0x21c360(0x80)]?.['id'];if(typeof _0x5160e7!==_0x21c360(0xb2)&&typeof _0x5160e7!==_0x21c360(0xa6))return undefined;return{'kind':'artifact','id':String(_0x5160e7),'action':_0x21c360(0xa0)};}},artifactUpdate={'service':a10_0x5d18a5(0x83),'command':a10_0x5d18a5(0x9b),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x5d18a5(0x82),'confirmationDescription':a10_0x5d18a5(0xab),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2d66b9){const _0x44e193=a10_0x5d18a5,_0x4d4d00=_0x2d66b9[_0x44e193(0xbc)]('id'),_0x49a3f2=buildArtifactInput(_0x2d66b9),_0x520296=await updateRuntimeArtifact(_0x4d4d00,_0x2d66b9['appCode'],_0x49a3f2);return{'ok':!![],'data':detailArtifact(_0x520296),'message':'Updated\x20Artifact\x20'+_0x520296['id']+(_0x520296['name']?'\x20('+_0x520296[_0x44e193(0x9c)]+')':'')};},async 'dryRun'(_0x102abb){const _0x559a40=a10_0x5d18a5,_0x57e892=_0x102abb[_0x559a40(0xbc)]('id'),_0x8b56ef=buildArtifactInput(_0x102abb);return dryRun(_0x559a40(0x7f),'/client/artifact/'+_0x57e892+_0x559a40(0x8a))[_0x559a40(0x7d)]({'appCode':_0x102abb[_0x559a40(0x8d)],..._0x8b56ef})[_0x559a40(0xc5)](_0x559a40(0xaa)+_0x57e892)[_0x559a40(0x97)]();},'writeEventSubject'(_0x449cc9){const _0x457c92=a10_0x5d18a5,_0x38eb4f=_0x449cc9[_0x457c92(0x80)]?.['id'];if(typeof _0x38eb4f!==_0x457c92(0xb2)&&typeof _0x38eb4f!==_0x457c92(0xa6))return undefined;return{'kind':_0x457c92(0x83),'id':String(_0x38eb4f),'action':_0x457c92(0x9b)};}};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_0x5aa5(){const _0xd4863f=['device','global-default','homeDirName','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','After\x20authorizing,\x20re-run:\x20','Write\x20to\x20global\x20config\x20(default)','scope','json','removeListener','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','str','5352GgFWgp','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','493340tXMkxF','project','/api/device-auth/token','string','parse','once','createdAt','\x20auth\x20device','443109rqAYAh','utf8','log','randomUUID','),\x20retrying...','data','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','now','success','Device\x20auth\x20API\x20error\x20(','3899UuBppG','nonInteractive','getTime','Device\x20authorization\x20successful.','Verify:\x20','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','url-only','access_key','1265906nUOham','application/json','write','2740975QVElwH','floor','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','global','1215543QpfFYF','&source=','signal','boolean','trim','status','lovrabet-cli','code','abort','1808940LsUhYj','\x20config.','aborted','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','bool','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','Invalid\x20access_key\x20returned\x20by\x20server.','cancelled','expired','stringify','test','name','source','networkError','validation','object','/.device-auth','padStart','Device\x20authorization\x20cancelled.','Write\x20to\x20project\x20config','\x20auth\x20status','accessKey','SIGINT','apiError','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','stderr'];a11_0x5aa5=function(){return _0xd4863f;};return a11_0x5aa5();}function a11_0x4aa2(_0x40ae34,_0xa54909){_0x40ae34=_0x40ae34-0x11e;const _0x5aa57f=a11_0x5aa5();let _0x4aa2f9=_0x5aa57f[_0x40ae34];return _0x4aa2f9;}const a11_0x38f4ae=a11_0x4aa2;(function(_0x37a1ee,_0xb8b7d7){const _0x263ab0=a11_0x4aa2,_0x4ea542=_0x37a1ee();while(!![]){try{const _0x525bbc=-parseInt(_0x263ab0(0x134))/0x1+parseInt(_0x263ab0(0x146))/0x2+-parseInt(_0x263ab0(0x14d))/0x3+parseInt(_0x263ab0(0x12c))/0x4+parseInt(_0x263ab0(0x149))/0x5+parseInt(_0x263ab0(0x156))/0x6+parseInt(_0x263ab0(0x13e))/0x7*(-parseInt(_0x263ab0(0x12a))/0x8);if(_0x525bbc===_0xb8b7d7)break;else _0x4ea542['push'](_0x4ea542['shift']());}catch(_0x2a18d5){_0x4ea542['push'](_0x4ea542['shift']());}}}(a11_0x5aa5,0x5e01a));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(_0x3f87e3){const _0x5a026b=a11_0x4aa2;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x3f87e3['bool']('global'),'explicitProject':_0x3f87e3[_0x5a026b(0x15a)](_0x5a026b(0x12d)),'policy':_0x5a026b(0x120)}));}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 _0x250a52=a11_0x4aa2;return crypto[_0x250a52(0x137)]();}export function buildDeviceAuthUrl(_0x52fee7,_0x42dc6b,_0x2f5a2e=a11_0x38f4ae(0x153)){const _0xc06109=a11_0x38f4ae;return _0x52fee7+'/device-auth?code='+encodeURIComponent(_0x42dc6b)+_0xc06109(0x14e)+encodeURIComponent(_0x2f5a2e);}export function getDeviceCodePath(){const _0x5b5aa0=a11_0x38f4ae;return homedir()+'/'+PRODUCT_CONFIG[_0x5b5aa0(0x121)]+_0x5b5aa0(0x166);}export function readStoredDeviceCode(){const _0x3a7084=a11_0x38f4ae,_0x5b4ef2=getDeviceCodePath();if(!existsSync(_0x5b4ef2))return null;try{const _0x379aa3=readFileSync(_0x5b4ef2,{'encoding':_0x3a7084(0x135)}),_0x2f24c3=JSON[_0x3a7084(0x130)](_0x379aa3);if(_0x2f24c3&&typeof _0x2f24c3[_0x3a7084(0x154)]==='string'&&typeof _0x2f24c3[_0x3a7084(0x132)]===_0x3a7084(0x12f)&&(_0x2f24c3['scope']===_0x3a7084(0x14c)||_0x2f24c3[_0x3a7084(0x125)]===_0x3a7084(0x12d)))return _0x2f24c3;}catch{}return null;}export function writeStoredDeviceCode(_0x59097b,_0x3bf5d8){const _0x12ef78=a11_0x38f4ae,_0x17a713=getDeviceCodePath(),_0x189a31=dirname(_0x17a713);!existsSync(_0x189a31)&&mkdirSync(_0x189a31,{'recursive':!![]});const _0x709a9c={'code':_0x59097b,'createdAt':new Date()['toISOString'](),'scope':_0x3bf5d8};writeFileSync(_0x17a713,JSON[_0x12ef78(0x15f)](_0x709a9c),{'encoding':_0x12ef78(0x135),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x36150c=getDeviceCodePath();try{unlinkSync(_0x36150c);}catch{}}export function isStoredDeviceCodeExpired(_0x29ee18){const _0x4fb485=a11_0x38f4ae;return Date[_0x4fb485(0x13b)]()-new Date(_0x29ee18[_0x4fb485(0x132)])[_0x4fb485(0x140)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x442f44,_0x23cae9){const _0x420140=a11_0x38f4ae,_0x3bb7c2=_0x442f44+_0x420140(0x12e),_0x173ffd=new AbortController(),_0x3a6c22=setTimeout(()=>_0x173ffd[_0x420140(0x155)](),0x2710),_0x3db61e=await fetch(_0x3bb7c2,{'method':'POST','headers':{'Content-Type':_0x420140(0x147)},'body':JSON[_0x420140(0x15f)]({'code':_0x23cae9}),'signal':_0x173ffd[_0x420140(0x14f)]});clearTimeout(_0x3a6c22);if(!_0x3db61e['ok'])throw CliErrors[_0x420140(0x163)]('Device\x20auth\x20API\x20returned\x20HTTP\x20'+_0x3db61e[_0x420140(0x152)]);const _0x180ab0=await _0x3db61e[_0x420140(0x126)](),_0x2d12b7=_0x180ab0['data']&&typeof _0x180ab0[_0x420140(0x139)]===_0x420140(0x165)?_0x180ab0[_0x420140(0x139)]:_0x180ab0;if(!_0x2d12b7||typeof _0x2d12b7[_0x420140(0x152)]!==_0x420140(0x12f))throw CliErrors[_0x420140(0x16d)]('Invalid\x20device\x20auth\x20response');return{'status':_0x2d12b7['status'],'access_key':typeof _0x2d12b7[_0x420140(0x145)]===_0x420140(0x12f)?_0x2d12b7[_0x420140(0x145)]:undefined};}export async function pollDeviceToken(_0xbc15ed,_0x3b4bee,_0x201bfd){const _0x2da744=a11_0x38f4ae;let _0x4a852c=0x0;for(let _0x582dd6=0x0;_0x582dd6<MAX_POLLS;_0x582dd6++){if(_0x201bfd[_0x2da744(0x158)])throw CliErrors[_0x2da744(0x15d)](_0x2da744(0x168));let _0x2b4d2e;try{_0x2b4d2e=await fetchDeviceToken(_0xbc15ed,_0x3b4bee);}catch(_0x2829db){if(_0x2829db instanceof Error&&_0x2829db[_0x2da744(0x161)]==='AbortError')throw CliErrors[_0x2da744(0x15d)](_0x2da744(0x168));_0x4a852c++;if(_0x4a852c>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x2da744(0x163)](_0x2da744(0x14b));writeCliSideChannelLine(_0x2da744(0x13d)+_0x4a852c+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x2da744(0x138)),await sleep(POLL_INTERVAL_MS);continue;}_0x4a852c=0x0;if(_0x2b4d2e[_0x2da744(0x152)]===_0x2da744(0x13c)){if(!_0x2b4d2e[_0x2da744(0x145)])throw CliErrors['apiError'](_0x2da744(0x15c));return _0x2b4d2e[_0x2da744(0x145)];}if(_0x2b4d2e[_0x2da744(0x152)]===_0x2da744(0x15e)){deleteStoredDeviceCode();throw CliErrors[_0x2da744(0x164)](_0x2da744(0x122));}const _0xb5fe13=(_0x582dd6+0x1)*POLL_INTERVAL_MS,_0x29fc63=DEVICE_CODE_TTL_MS-_0xb5fe13,_0x11e5af=Math[_0x2da744(0x14a)](_0x29fc63/0xea60),_0xec4953=Math['floor'](_0x29fc63%0xea60/0x3e8);process[_0x2da744(0x11e)]['write']('\x0dWaiting\x20for\x20authorization...\x20'+_0x11e5af+':'+String(_0xec4953)[_0x2da744(0x167)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x2da744(0x164)](_0x2da744(0x159));}function sleep(_0xdd6a03){return new Promise(_0x7eca88=>setTimeout(_0x7eca88,_0xdd6a03));}export const authDeviceDefinition={'service':'auth','command':a11_0x38f4ae(0x11f),'description':a11_0x38f4ae(0x12b),'risk':a11_0x38f4ae(0x148),'confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'global','type':'boolean','description':a11_0x38f4ae(0x124),'default':!![]},{'name':a11_0x38f4ae(0x12d),'type':a11_0x38f4ae(0x150),'description':a11_0x38f4ae(0x169),'default':![]},{'name':a11_0x38f4ae(0x162),'type':a11_0x38f4ae(0x12f),'description':a11_0x38f4ae(0x15b),'default':a11_0x38f4ae(0x153)},{'name':'url-only','type':a11_0x38f4ae(0x150),'description':a11_0x38f4ae(0x128),'default':![]}],async 'execute'(_0x5ce465){const _0x25b27d=a11_0x38f4ae,_0x2ac14a=resolveAuthScopeFlags(_0x5ce465),_0x5a0dcc=_0x2ac14a[_0x25b27d(0x14c)]?_0x25b27d(0x14c):_0x25b27d(0x12d),_0x5c9b33=readScopedConfig(_0x2ac14a);if(_0x5c9b33[_0x25b27d(0x16b)])return{'ok':!![],'message':_0x25b27d(0x16e)};const _0x3cc0a4=(_0x5ce465[_0x25b27d(0x129)]('source')||_0x25b27d(0x153))[_0x25b27d(0x151)](),_0x271d84=getUserDomain(),_0x533288=readStoredDeviceCode(),_0xf550c=_0x533288&&!isStoredDeviceCodeExpired(_0x533288)?_0x533288[_0x25b27d(0x154)]:((()=>{const _0x4c540d=generateDeviceCode();return writeStoredDeviceCode(_0x4c540d,_0x5a0dcc),_0x4c540d;})()),_0x7fb9eb=buildDeviceAuthUrl(_0x271d84,_0xf550c,_0x3cc0a4);if(_0x5ce465[_0x25b27d(0x15a)](_0x25b27d(0x144)))return console[_0x25b27d(0x136)](_0x7fb9eb),{'ok':!![]};writeCliSideChannelLine(_0x25b27d(0x143)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x7fb9eb),writeCliSideChannelLine(''),writeCliSideChannelLine('The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.');if(_0x5ce465[_0x25b27d(0x13f)])return writeCliSideChannelLine(_0x25b27d(0x123)+CLI_BIN_NAME+_0x25b27d(0x133)),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine(_0x25b27d(0x13a));const _0x3540ff=new AbortController(),_0xce1f90=()=>{const _0x56f854=_0x25b27d;_0x3540ff['abort'](),process[_0x56f854(0x127)](_0x56f854(0x16c),_0xce1f90);};process[_0x25b27d(0x131)](_0x25b27d(0x16c),_0xce1f90);let _0x13ab76;try{_0x13ab76=await pollDeviceToken(_0x271d84,_0xf550c,_0x3540ff[_0x25b27d(0x14f)]);}finally{process['removeListener'](_0x25b27d(0x16c),_0xce1f90);}if(!ACCESS_KEY_PATTERN[_0x25b27d(0x160)](_0x13ab76))throw CliErrors[_0x25b27d(0x16d)](_0x25b27d(0x15c));const _0x5d0c41=readScopedConfig(_0x2ac14a);return _0x5d0c41[_0x25b27d(0x16b)]=_0x13ab76,writeScopedConfig(_0x5d0c41,_0x2ac14a),deleteStoredDeviceCode(),process[_0x25b27d(0x11e)][_0x25b27d(0x148)]('\x0a'),writeCliSideChannelLine('AccessKey\x20saved\x20to\x20'+_0x5a0dcc+_0x25b27d(0x157)),writeCliSideChannelLine(_0x25b27d(0x142)+CLI_BIN_NAME+_0x25b27d(0x16a)),{'ok':!![],'message':_0x25b27d(0x141)};}};
|