@lovrabet/lovrabet-cli 2.2.0 → 2.2.1
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/ocr/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.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/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 +2 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/lovrabet/SKILL.md +4 -2
- package/skills/lovrabet/references/lovrabet-schedule-workflow.md +10 -4
- 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_0x980ec=a0_0x438c;(function(_0x4c8416,_0x588880){const _0xdf9739=a0_0x438c,_0x4b0950=_0x4c8416();while(!![]){try{const _0x47eea8=-parseInt(_0xdf9739(0x1b6))/0x1*(parseInt(_0xdf9739(0x197))/0x2)+parseInt(_0xdf9739(0x1a2))/0x3+-parseInt(_0xdf9739(0x1a3))/0x4*(-parseInt(_0xdf9739(0x1ac))/0x5)+-parseInt(_0xdf9739(0x19d))/0x6+parseInt(_0xdf9739(0x196))/0x7+parseInt(_0xdf9739(0x1a1))/0x8*(parseInt(_0xdf9739(0x1b4))/0x9)+-parseInt(_0xdf9739(0x1aa))/0xa*(-parseInt(_0xdf9739(0x1bf))/0xb);if(_0x47eea8===_0x588880)break;else _0x4b0950['push'](_0x4b0950['shift']());}catch(_0x2a79f3){_0x4b0950['push'](_0x4b0950['shift']());}}}(a0_0xcbed,0x5fc91));import{jsx as a0_0x1e1cd7}from'react/jsx-runtime';import a0_0x4c5ba0 from'meow';import{render}from'ink';function a0_0xcbed(){const _0x59d834=['name','ExitPromptError','flags','cancelled','exitCode','4134924zUPgmS','code','assign','Error:\x20','198856MPqdLf','643278yyLsEY','711488DeZNIc','original','length','error','args','hint','\x20->\x20--','220310DGXxry','\x0aCancelled.\x0a','20GaQqsi','Hint:\x20','log','input','flatMap','write','catch','corrected','18SZiReO','defaultCommand','71RfzXue','slice','help','ERR_USE_AFTER_CLOSE','exit','definition','stderr','message','validation','22hbeGaj','617988qVMRsn','746dIwTTI'];a0_0xcbed=function(){return _0x59d834;};return a0_0xcbed();}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_0x438c(_0x408c17,_0x41c84a){_0x408c17=_0x408c17-0x196;const _0xcbed85=a0_0xcbed();let _0x438c0c=_0xcbed85[_0x408c17];return _0x438c0c;}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_0x4c5ba0(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x980ec(0x1b2)](handleError);async function main(){try{await run();}catch(_0x57a76d){handleError(_0x57a76d);}}async function run(){const _0x581655=a0_0x980ec;let _0x37407b=cli[_0x581655(0x1af)][0x0],_0x32fc53=cli['input'][0x1];const _0x4ea97f=cli[_0x581655(0x19a)];try{const {correctFlags:_0x1f72f2}=await import('./framework/preparse.js'),_0x85f783=getAllDefinitions()[_0x581655(0x1b0)](_0x553448=>_0x553448['flags']??[]),{flags:_0x3e28e6,corrections:_0x6a911b}=_0x1f72f2(_0x4ea97f,_0x85f783);if(_0x6a911b[_0x581655(0x1a5)]>0x0){for(const _0x2bfee3 of _0x6a911b){process['stderr']['write']('[preparse]\x20'+_0x2bfee3['handler']+':\x20--'+_0x2bfee3[_0x581655(0x1a4)]+_0x581655(0x1a9)+_0x2bfee3[_0x581655(0x1b3)]+'\x0a');}Object[_0x581655(0x19f)](_0x4ea97f,_0x3e28e6);}}catch{}if(!_0x37407b){const {waitUntilExit:_0x37b175}=render(a0_0x1e1cd7(Help,{}));await _0x37b175();return;}const _0x1cd05a=resolveRemovedCommand(_0x37407b,_0x32fc53);if(_0x1cd05a)throw CliErrors[_0x581655(0x1be)](_0x1cd05a[_0x581655(0x1bd)],_0x1cd05a['hint']);if(!isKnownService(_0x37407b)){const _0x410c86=resolveDynamicServiceCommand(cli[_0x581655(0x1af)],_0x4ea97f);if(_0x410c86){if(_0x4ea97f[_0x581655(0x1b8)]){console['log'](generateCommandHelp(_0x410c86[_0x581655(0x1bb)]));return;}Object['assign'](_0x4ea97f,_0x410c86[_0x581655(0x19a)]);const _0x3832de=buildConfigFromFlags(_0x4ea97f);await initGlobalEnvironment(_0x3832de);const _0x3f16c4=createPipelineEnv(_0x3832de,_0x4ea97f);_0x3f16c4['args']=_0x410c86[_0x581655(0x1a7)],await runCommand(_0x410c86[_0x581655(0x1bb)],_0x3f16c4);return;}if(_0x4ea97f['help']){const _0x3be398=generateDynamicServiceHelp(_0x37407b);if(_0x3be398){console[_0x581655(0x1ae)](_0x3be398);return;}}const {waitUntilExit:_0x2dc917}=render(a0_0x1e1cd7(Help,{}));await _0x2dc917();return;}const _0x1a614d=getServiceEntry(_0x37407b);if(!_0x32fc53){if(_0x4ea97f[_0x581655(0x1b8)]){console[_0x581655(0x1ae)](generateServiceHelp(_0x37407b));return;}if(_0x1a614d[_0x581655(0x1b5)])_0x32fc53=_0x1a614d[_0x581655(0x1b5)];else{console['log'](generateServiceHelp(_0x37407b));return;}}const _0x2cfcb5=findDefinition(_0x37407b,_0x32fc53);!_0x2cfcb5&&(console['log'](generateServiceHelp(_0x37407b)),handleError(CliErrors['unknownCommand'](_0x37407b+'\x20'+_0x32fc53)));if(_0x4ea97f[_0x581655(0x1b8)]){console[_0x581655(0x1ae)](generateCommandHelp(_0x2cfcb5));return;}const _0x2bce49=buildConfigFromFlags(_0x4ea97f);await initGlobalEnvironment(_0x2bce49);const _0x116980=createPipelineEnv(_0x2bce49,_0x4ea97f);_0x116980[_0x581655(0x1a7)]=cli[_0x581655(0x1af)][_0x581655(0x1b7)](0x2),await runCommand(_0x2cfcb5,_0x116980);}function handleError(_0x5b6459){const _0xca2488=a0_0x980ec;if(_0x5b6459 instanceof CliError){_0x5b6459[_0xca2488(0x19e)]===_0xca2488(0x19b)&&(process[_0xca2488(0x1bc)][_0xca2488(0x1b1)](_0xca2488(0x1ab)),process[_0xca2488(0x1ba)](0x0));console[_0xca2488(0x1a6)](_0xca2488(0x1a0)+_0x5b6459['message']);if(_0x5b6459[_0xca2488(0x1a8)])console['error'](_0xca2488(0x1ad)+_0x5b6459[_0xca2488(0x1a8)]);process['exit'](_0x5b6459[_0xca2488(0x19c)]);}isUserCancellation(_0x5b6459)&&(process[_0xca2488(0x1bc)]['write'](_0xca2488(0x1ab)),process[_0xca2488(0x1ba)](0x0)),console[_0xca2488(0x1a6)]('Unexpected\x20error:',_0x5b6459),process[_0xca2488(0x1ba)](0x1);}function isUserCancellation(_0x53aaf0){const _0xb62114=a0_0x980ec;if(!(_0x53aaf0 instanceof Error))return![];if(_0x53aaf0[_0xb62114(0x198)]===_0xb62114(0x199))return!![];if(_0x53aaf0[_0xb62114(0x19e)]===_0xb62114(0x1b9))return!![];if(_0x53aaf0[_0xb62114(0x19e)]==='ERR_STREAM_DESTROYED')return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x44fe7e=a1_0x135a;function a1_0x135a(_0x38e43f,_0x2a17b7){_0x38e43f=_0x38e43f-0x6e;const _0x319eb9=a1_0x319e();let _0x135a8e=_0x319eb9[_0x38e43f];return _0x135a8e;}(function(_0x207c1d,_0x21a951){const _0x29c5c2=a1_0x135a,_0x5e547d=_0x207c1d();while(!![]){try{const _0x388004=-parseInt(_0x29c5c2(0xe1))/0x1+parseInt(_0x29c5c2(0xc1))/0x2*(-parseInt(_0x29c5c2(0x7b))/0x3)+-parseInt(_0x29c5c2(0x86))/0x4+parseInt(_0x29c5c2(0xdf))/0x5*(parseInt(_0x29c5c2(0x9b))/0x6)+parseInt(_0x29c5c2(0x7a))/0x7*(parseInt(_0x29c5c2(0xb6))/0x8)+-parseInt(_0x29c5c2(0xc0))/0x9*(-parseInt(_0x29c5c2(0xc9))/0xa)+parseInt(_0x29c5c2(0xa4))/0xb;if(_0x388004===_0x21a951)break;else _0x5e547d['push'](_0x5e547d['shift']());}catch(_0x2c05bf){_0x5e547d['push'](_0x5e547d['shift']());}}}(a1_0x319e,0x32348));function a1_0x319e(){const _0x4a1b68=['32575gXuEEC','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','167828zrmDWB','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','paging.totalCount\x20gives\x20total\x20rows','获取数据集详情','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','method','Execute\x20BF\x20endpoint\x20function','appCode','str','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','7InYwAH','17889HmRsTa','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','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','查询单条数据','datasetCode','/api/{appCode}/{datasetCode}/getOne','执行自定义\x20SQL','/api/dataset/get-dataset-list-by-app-code','Get\x20BF\x20endpoint\x20function\x20contract','List\x20available\x20runtime\x20API\x20documentation\x20entries','##\x20Dataset\x20detail','55672uTxwKN','whenToUse','List\x20datasets','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','tableData\x20contains\x20dataset\x20id/code/name','32-character\x20dataset\x20code','validation','bf_execute','dataset_data_aggregate','code','filter','custom_sql','dataset_data_filter','Returns\x20script\x20business\x20payload','Returns\x20one\x20matching\x20business\x20record','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','join','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','Returns\x20SQL\x20execution\x20payload','##\x20Aggregate\x20dataset\x20data','tableData\x20contains\x20records','156evoVVl','/api/endpoint/{appCode}/{functionName}','{\x22fieldName\x22:\x22value\x22}','POST','Dataset\x20detail','##\x20List\x20datasets','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','title','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','893926xAJGKy','toLowerCase','聚合查询数据集数据','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','按应用和函数名精确获取\x20BF\x20运行契约','detail','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','keyword','Current\x20app\x20code','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','Exact\x20endpoint\x20function\x20name','path','分页获取数据集列表','创建数据','{\x22id\x22:123}','/api/custom/executeSql','paging\x20contains\x20pagination','383312Makvsi','find','operations\x20describes\x20runtime\x20APIs','API\x20doc\x20code\x20not\x20found:\x20','GET','dataset_data_get_one','string','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','18HGsrrx','4bSvTeD','where\x20filters\x20before\x20aggregation','API\x20doc\x20code,\x20for\x20example\x20dataset_list','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','functionName','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','category','503710suExZB','/api/{appCode}/{datasetCode}/create','dataset','Execute\x20custom\x20SQL','执行指定\x20BF\x20函数','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','api-doc','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','summary','map','None','read','trim','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','dataset_detail','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_0x319e=function(){return _0x4a1b68;};return a1_0x319e();}import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x44fe7e(0xc8),'type':a1_0x44fe7e(0xbc),'description':'Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset'},KEYWORD_FLAG={'name':a1_0x44fe7e(0xac),'type':'string','description':a1_0x44fe7e(0xc5)},DOC_CODE_FLAG={'name':a1_0x44fe7e(0x8f),'type':a1_0x44fe7e(0xbc),'required':!![],'description':a1_0x44fe7e(0xc3)},DOCS=[{'code':'dataset_list','category':a1_0x44fe7e(0xcb),'title':a1_0x44fe7e(0x88),'method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0x82),'summary':a1_0x44fe7e(0xb1),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x44fe7e(0xbf),'responseHighlights':[a1_0x44fe7e(0x8a),a1_0x44fe7e(0x71)],'examples':[a1_0x44fe7e(0xce)],'notes':[a1_0x44fe7e(0xd1)],'markdown':[a1_0x44fe7e(0xa0),'',a1_0x44fe7e(0xa7)]['join']('\x0a')},{'code':a1_0x44fe7e(0xdd),'category':a1_0x44fe7e(0xcb),'title':a1_0x44fe7e(0x9f),'method':a1_0x44fe7e(0xba),'path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x44fe7e(0x72),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':a1_0x44fe7e(0x8f),'description':a1_0x44fe7e(0x8b)}],'bodySchema':a1_0x44fe7e(0xd5),'responseHighlights':['fields/properties\x20describe\x20data\x20shape',a1_0x44fe7e(0xa1),a1_0x44fe7e(0xb8)],'examples':[a1_0x44fe7e(0x78)],'notes':[a1_0x44fe7e(0x6f)],'markdown':[a1_0x44fe7e(0x85),'',a1_0x44fe7e(0x95)][a1_0x44fe7e(0x96)]('\x0a')},{'code':a1_0x44fe7e(0x92),'category':'dataset','title':'Filter\x20dataset\x20data','method':a1_0x44fe7e(0x9e),'path':'/api/{appCode}/{datasetCode}/filter','summary':'条件过滤查询数据','whenToUse':a1_0x44fe7e(0xaa),'pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0x7f),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x44fe7e(0x70),'responseHighlights':[a1_0x44fe7e(0x9a),a1_0x44fe7e(0xb5)],'examples':[a1_0x44fe7e(0xde),a1_0x44fe7e(0x7d)],'notes':[a1_0x44fe7e(0xbd),a1_0x44fe7e(0xab),a1_0x44fe7e(0xdc),'Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':['##\x20Filter\x20dataset\x20data','',a1_0x44fe7e(0x73)][a1_0x44fe7e(0x96)]('\x0a')},{'code':a1_0x44fe7e(0x8e),'category':'dataset','title':'Aggregate\x20dataset\x20data','method':a1_0x44fe7e(0x9e),'path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0x44fe7e(0xa6),'whenToUse':'需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','pathParams':[{'name':'appCode','description':a1_0x44fe7e(0xad)},{'name':'datasetCode','description':a1_0x44fe7e(0x8b)}],'queryParams':[],'bodySchema':a1_0x44fe7e(0xe3),'responseHighlights':['result\x20rows\x20contain\x20aggregate\x20aliases',a1_0x44fe7e(0xc2)],'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_0x44fe7e(0xd9),a1_0x44fe7e(0xc7)],'markdown':[a1_0x44fe7e(0x99),'',a1_0x44fe7e(0xbe)][a1_0x44fe7e(0x96)]('\x0a')},{'code':a1_0x44fe7e(0xbb),'category':'dataset','title':'Get\x20one\x20dataset\x20record','method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0x80),'summary':a1_0x44fe7e(0x7e),'whenToUse':'已经知道记录\x20id,需要按数据集读取单条业务数据时使用','pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0x7f),'description':a1_0x44fe7e(0x8b)}],'queryParams':[],'bodySchema':a1_0x44fe7e(0xb3),'responseHighlights':[a1_0x44fe7e(0x94)],'examples':[a1_0x44fe7e(0xe2)],'notes':[a1_0x44fe7e(0xd2)],'markdown':a1_0x44fe7e(0x7c)},{'code':'dataset_data_create','category':'dataset','title':'Create\x20dataset\x20record','method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0xca),'summary':a1_0x44fe7e(0xb2),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0x7f),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x44fe7e(0x9d),'responseHighlights':[a1_0x44fe7e(0xc4)],'examples':['lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27'],'notes':[a1_0x44fe7e(0x89)],'markdown':a1_0x44fe7e(0x79)},{'code':'bf_detail','category':'bf','title':a1_0x44fe7e(0x83),'method':'GET','path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0x44fe7e(0xa8),'whenToUse':a1_0x44fe7e(0xcf),'pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':'functionName','description':a1_0x44fe7e(0xaf)}],'queryParams':[],'bodySchema':a1_0x44fe7e(0xd5),'responseHighlights':['CLI\x20returns\x20appCode/functionName/description/version/gmtModified'],'examples':[a1_0x44fe7e(0xd8)],'notes':[a1_0x44fe7e(0x6e)],'markdown':a1_0x44fe7e(0xda)},{'code':a1_0x44fe7e(0x8d),'category':'bf','title':a1_0x44fe7e(0x75),'method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0x9c),'summary':a1_0x44fe7e(0xcd),'whenToUse':a1_0x44fe7e(0xe0),'pathParams':[{'name':'appCode','description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0xc6),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x44fe7e(0x93)],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x44fe7e(0x97)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':'custom_sql_execute','category':a1_0x44fe7e(0x91),'title':a1_0x44fe7e(0xcc),'method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0xb4),'summary':a1_0x44fe7e(0x81),'whenToUse':a1_0x44fe7e(0xdb),'pathParams':[],'queryParams':[],'bodySchema':a1_0x44fe7e(0xa3),'responseHighlights':[a1_0x44fe7e(0x98)],'examples':[a1_0x44fe7e(0xae)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x257248){const _0x48bf33=a1_0x44fe7e;return{'code':_0x257248[_0x48bf33(0x8f)],'category':_0x257248['category'],'method':_0x257248[_0x48bf33(0x74)],'path':_0x257248[_0x48bf33(0xb0)],'summary':_0x257248[_0x48bf33(0xd3)],'whenToUse':_0x257248[_0x48bf33(0x87)]};}export function listApiDocEntries(_0x4cdd9c={}){const _0x37c230=a1_0x44fe7e,_0x5df399=String(_0x4cdd9c[_0x37c230(0xc8)]||'')[_0x37c230(0xd7)](),_0x1c8bfb=String(_0x4cdd9c[_0x37c230(0xac)]||'')[_0x37c230(0xd7)]()[_0x37c230(0xa5)]();return DOCS[_0x37c230(0x90)](_0x1d727a=>{const _0x442b76=_0x37c230;if(_0x5df399&&_0x1d727a['category']!==_0x5df399)return![];if(!_0x1c8bfb)return!![];return[_0x1d727a['code'],_0x1d727a[_0x442b76(0xc8)],_0x1d727a[_0x442b76(0x74)],_0x1d727a[_0x442b76(0xb0)],_0x1d727a['summary'],_0x1d727a[_0x442b76(0x87)],_0x1d727a[_0x442b76(0xa2)]][_0x442b76(0x96)]('\x20')['toLowerCase']()['includes'](_0x1c8bfb);})[_0x37c230(0xd4)](entrySummary);}export function getApiDocDetail(_0x5a323a){const _0x263263=a1_0x44fe7e,_0x436b00=DOCS[_0x263263(0xb7)](_0x1ff97c=>_0x1ff97c[_0x263263(0x8f)]===_0x5a323a);if(!_0x436b00)throw CliErrors[_0x263263(0x8c)](_0x263263(0xb9)+_0x5a323a);return{..._0x436b00};}const apiDocList={'service':'api-doc','command':'list','description':a1_0x44fe7e(0x84),'risk':a1_0x44fe7e(0xd6),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0xa1ff50){const _0x16bc2b=a1_0x44fe7e,_0x4a71ca=listApiDocEntries({'category':_0xa1ff50['str'](_0x16bc2b(0xc8)),'keyword':_0xa1ff50[_0x16bc2b(0x77)](_0x16bc2b(0xac))});return{'ok':!![],'data':{'total':_0x4a71ca['length'],'items':_0x4a71ca}};}},apiDocDetail={'service':a1_0x44fe7e(0xd0),'command':a1_0x44fe7e(0xa9),'description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0x44fe7e(0xd6),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x5c9d6a){const _0x55ee30=a1_0x44fe7e;return{'ok':!![],'data':getApiDocDetail(_0x5c9d6a['str'](_0x55ee30(0x8f)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
function a1_0x44dd(_0x100727,_0x51a6c8){_0x100727=_0x100727-0xc8;const _0x397392=a1_0x3973();let _0x44dd5e=_0x397392[_0x100727];return _0x44dd5e;}const a1_0x904cbe=a1_0x44dd;(function(_0x2ad4fc,_0x22dfbc){const _0x684023=a1_0x44dd,_0xc5e6d4=_0x2ad4fc();while(!![]){try{const _0x107630=parseInt(_0x684023(0x11f))/0x1*(-parseInt(_0x684023(0x104))/0x2)+-parseInt(_0x684023(0xca))/0x3*(-parseInt(_0x684023(0x145))/0x4)+parseInt(_0x684023(0xcc))/0x5*(parseInt(_0x684023(0xd7))/0x6)+parseInt(_0x684023(0x13c))/0x7*(-parseInt(_0x684023(0x114))/0x8)+parseInt(_0x684023(0x108))/0x9*(-parseInt(_0x684023(0xcf))/0xa)+-parseInt(_0x684023(0x102))/0xb*(-parseInt(_0x684023(0x135))/0xc)+-parseInt(_0x684023(0x147))/0xd*(-parseInt(_0x684023(0xcd))/0xe);if(_0x107630===_0x22dfbc)break;else _0xc5e6d4['push'](_0xc5e6d4['shift']());}catch(_0x21502e){_0xc5e6d4['push'](_0xc5e6d4['shift']());}}}(a1_0x3973,0x5dd43));import{CliErrors}from'../../errors.js';function a1_0x3973(){const _0x51d538=['path','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','{\x22id\x22:123}','查询单条数据','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','List\x20available\x20runtime\x20API\x20documentation\x20entries','Filter\x20dataset\x20data','paging\x20contains\x20pagination','获取数据集详情','length','custom_sql_execute','method','bf_execute','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','/api/endpoint/{appCode}/{functionName}','result\x20rows\x20contain\x20aggregate\x20aliases','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','180763waoSEW','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','9770VSQqQr','/api/{appCode}/{datasetCode}/create','appCode','执行自定义\x20SQL','9AXqDXC','None','tableData\x20contains\x20records','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','api-doc','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','dataset_detail','trim','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','Dataset\x20detail','##\x20Dataset\x20detail','list','8umOppb','需要向指定数据集新增一条业务数据时使用','/client/bff/endpoint/{appCode}/{functionName}','map','32-character\x20dataset\x20code','dataset_data_create','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','List\x20datasets','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','code','Returns\x20script\x20business\x20payload','49ueCCJO','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','string','datasetCode','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','join','filter','Execute\x20custom\x20SQL','toLowerCase','str','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','dataset','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','Current\x20app\x20code','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','Show\x20runtime\x20API\x20documentation\x20by\x20code','Get\x20one\x20dataset\x20record','custom_sql','API\x20doc\x20code\x20not\x20found:\x20','168YTJulR','POST','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','##\x20List\x20datasets','/api/{appCode}/{datasetCode}/getOne','Create\x20dataset\x20record','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','3459897YFODjN','Returns\x20one\x20matching\x20business\x20record','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','bf_detail','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','Execute\x20BF\x20endpoint\x20function','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','API\x20doc\x20code,\x20for\x20example\x20dataset_list','318004FVoHVS','Endpoint\x20function\x20name','12592385OEwGLZ','Get\x20BF\x20endpoint\x20function\x20contract','按应用和函数名精确获取\x20BF\x20运行契约','category','3vMnoaz','分页获取数据集列表','5BVSWlG','14VfnfgK','聚合查询数据集数据','1780670iTgPaV','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','Returns\x20SQL\x20execution\x20payload','where\x20filters\x20before\x20aggregation','GET','read','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','106908dOykLU','includes','Exact\x20endpoint\x20function\x20name','创建数据','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','whenToUse','summary','dataset_list','functionName','validation','keyword','detail','/api/dataset/get-dataset-list-by-app-code','条件过滤查询数据','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','/api/{appCode}/{datasetCode}/filter','Aggregate\x20dataset\x20data','/api/{appCode}/{datasetCode}/aggregate','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','dataset_data_get_one','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','dataset_data_aggregate','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','title'];a1_0x3973=function(){return _0x51d538;};return a1_0x3973();}const CATEGORY_FLAG={'name':a1_0x904cbe(0xc9),'type':'string','description':a1_0x904cbe(0xd1)},KEYWORD_FLAG={'name':a1_0x904cbe(0xe1),'type':'string','description':a1_0x904cbe(0xe5)},DOC_CODE_FLAG={'name':a1_0x904cbe(0x11d),'type':a1_0x904cbe(0x121),'required':!![],'description':a1_0x904cbe(0x144)},DOCS=[{'code':a1_0x904cbe(0xde),'category':'dataset','title':a1_0x904cbe(0x11b),'method':'POST','path':a1_0x904cbe(0xe3),'summary':a1_0x904cbe(0xcb),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x904cbe(0x123),'responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name','paging.totalCount\x20gives\x20total\x20rows'],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x904cbe(0x138),'',a1_0x904cbe(0xf0)][a1_0x904cbe(0x126)]('\x0a')},{'code':a1_0x904cbe(0x10e),'category':'dataset','title':a1_0x904cbe(0x111),'method':a1_0x904cbe(0xd4),'path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x904cbe(0xf7),'whenToUse':a1_0x904cbe(0xd0),'pathParams':[],'queryParams':[{'name':'code','description':a1_0x904cbe(0x118)}],'bodySchema':a1_0x904cbe(0x109),'responseHighlights':['fields/properties\x20describe\x20data\x20shape','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','operations\x20describes\x20runtime\x20APIs'],'examples':['lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>'],'notes':[a1_0x904cbe(0xd6)],'markdown':[a1_0x904cbe(0x112),'','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.']['join']('\x0a')},{'code':'dataset_data_filter','category':'dataset','title':a1_0x904cbe(0xf5),'method':a1_0x904cbe(0x136),'path':a1_0x904cbe(0xe6),'summary':a1_0x904cbe(0xe4),'whenToUse':a1_0x904cbe(0x137),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':'datasetCode','description':a1_0x904cbe(0x118)}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':[a1_0x904cbe(0x10a),a1_0x904cbe(0xf6)],'examples':[a1_0x904cbe(0x143),'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':['where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x904cbe(0x120)],'markdown':['##\x20Filter\x20dataset\x20data','',a1_0x904cbe(0xdb)]['join']('\x0a')},{'code':a1_0x904cbe(0xec),'category':a1_0x904cbe(0x12d),'title':a1_0x904cbe(0xe7),'method':a1_0x904cbe(0x136),'path':a1_0x904cbe(0xe8),'summary':a1_0x904cbe(0xce),'whenToUse':a1_0x904cbe(0x101),'pathParams':[{'name':'appCode','description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0x122),'description':a1_0x904cbe(0x118)}],'queryParams':[],'bodySchema':a1_0x904cbe(0xfc),'responseHighlights':[a1_0x904cbe(0xff),a1_0x904cbe(0xd3)],'examples':[a1_0x904cbe(0xed)],'notes':[a1_0x904cbe(0xeb),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':['##\x20Aggregate\x20dataset\x20data','',a1_0x904cbe(0x12c)][a1_0x904cbe(0x126)]('\x0a')},{'code':a1_0x904cbe(0xea),'category':a1_0x904cbe(0x12d),'title':a1_0x904cbe(0x132),'method':'POST','path':a1_0x904cbe(0x139),'summary':a1_0x904cbe(0xf2),'whenToUse':a1_0x904cbe(0x12b),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0x122),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x904cbe(0xf1),'responseHighlights':[a1_0x904cbe(0x13d)],'examples':[a1_0x904cbe(0xe9)],'notes':[a1_0x904cbe(0x10d)],'markdown':a1_0x904cbe(0xfd)},{'code':a1_0x904cbe(0x119),'category':'dataset','title':a1_0x904cbe(0x13a),'method':'POST','path':a1_0x904cbe(0x105),'summary':a1_0x904cbe(0xda),'whenToUse':a1_0x904cbe(0x115),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0x122),'description':a1_0x904cbe(0x118)}],'queryParams':[],'bodySchema':'{\x22fieldName\x22:\x22value\x22}','responseHighlights':[a1_0x904cbe(0x110)],'examples':['lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27'],'notes':[a1_0x904cbe(0x100)],'markdown':a1_0x904cbe(0x124)},{'code':a1_0x904cbe(0x140),'category':'bf','title':a1_0x904cbe(0x148),'method':a1_0x904cbe(0xd4),'path':a1_0x904cbe(0x116),'summary':a1_0x904cbe(0xc8),'whenToUse':a1_0x904cbe(0x130),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':'functionName','description':a1_0x904cbe(0xd9)}],'queryParams':[],'bodySchema':a1_0x904cbe(0x109),'responseHighlights':[a1_0x904cbe(0x103)],'examples':[a1_0x904cbe(0x10b)],'notes':['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.'],'markdown':a1_0x904cbe(0x11c)},{'code':a1_0x904cbe(0xfb),'category':'bf','title':a1_0x904cbe(0x142),'method':'POST','path':a1_0x904cbe(0xfe),'summary':'执行指定\x20BF\x20函数','whenToUse':a1_0x904cbe(0x13e),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0xdf),'description':a1_0x904cbe(0x146)}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x904cbe(0x11e)],'examples':[a1_0x904cbe(0x12e)],'notes':[a1_0x904cbe(0x13b)],'markdown':a1_0x904cbe(0x141)},{'code':a1_0x904cbe(0xf9),'category':a1_0x904cbe(0x133),'title':a1_0x904cbe(0x128),'method':a1_0x904cbe(0x136),'path':'/api/custom/executeSql','summary':a1_0x904cbe(0x107),'whenToUse':a1_0x904cbe(0x13f),'pathParams':[],'queryParams':[],'bodySchema':a1_0x904cbe(0xf3),'responseHighlights':[a1_0x904cbe(0xd2)],'examples':[a1_0x904cbe(0x125)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x904cbe(0x11a)}];function entrySummary(_0xa888bf){const _0xd520ff=a1_0x904cbe;return{'code':_0xa888bf[_0xd520ff(0x11d)],'category':_0xa888bf[_0xd520ff(0xc9)],'method':_0xa888bf[_0xd520ff(0xfa)],'path':_0xa888bf['path'],'summary':_0xa888bf[_0xd520ff(0xdd)],'whenToUse':_0xa888bf['whenToUse']};}export function listApiDocEntries(_0x167d8d={}){const _0xa708c=a1_0x904cbe,_0x240ddd=String(_0x167d8d[_0xa708c(0xc9)]||'')[_0xa708c(0x10f)](),_0x5b2506=String(_0x167d8d[_0xa708c(0xe1)]||'')['trim']()[_0xa708c(0x129)]();return DOCS[_0xa708c(0x127)](_0x1bcf2b=>{const _0x3fb36b=_0xa708c;if(_0x240ddd&&_0x1bcf2b[_0x3fb36b(0xc9)]!==_0x240ddd)return![];if(!_0x5b2506)return!![];return[_0x1bcf2b[_0x3fb36b(0x11d)],_0x1bcf2b[_0x3fb36b(0xc9)],_0x1bcf2b[_0x3fb36b(0xfa)],_0x1bcf2b[_0x3fb36b(0xef)],_0x1bcf2b[_0x3fb36b(0xdd)],_0x1bcf2b[_0x3fb36b(0xdc)],_0x1bcf2b[_0x3fb36b(0xee)]][_0x3fb36b(0x126)]('\x20')[_0x3fb36b(0x129)]()[_0x3fb36b(0xd8)](_0x5b2506);})[_0xa708c(0x117)](entrySummary);}export function getApiDocDetail(_0x2af8bc){const _0x281209=a1_0x904cbe,_0x2cfcdc=DOCS['find'](_0x2e757e=>_0x2e757e[_0x281209(0x11d)]===_0x2af8bc);if(!_0x2cfcdc)throw CliErrors[_0x281209(0xe0)](_0x281209(0x134)+_0x2af8bc);return{..._0x2cfcdc};}const apiDocList={'service':a1_0x904cbe(0x10c),'command':a1_0x904cbe(0x113),'description':a1_0x904cbe(0xf4),'risk':a1_0x904cbe(0xd5),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x4af9d0){const _0x5c8981=a1_0x904cbe,_0x12f4ec=listApiDocEntries({'category':_0x4af9d0[_0x5c8981(0x12a)](_0x5c8981(0xc9)),'keyword':_0x4af9d0[_0x5c8981(0x12a)](_0x5c8981(0xe1))});return{'ok':!![],'data':{'total':_0x12f4ec[_0x5c8981(0xf8)],'items':_0x12f4ec}};}},apiDocDetail={'service':a1_0x904cbe(0x10c),'command':a1_0x904cbe(0xe2),'description':a1_0x904cbe(0x131),'risk':a1_0x904cbe(0xd5),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x53be4c){const _0x7dd749=a1_0x904cbe;return{'ok':!![],'data':getApiDocDetail(_0x53be4c[_0x7dd749(0x12a)]('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x34f7ff,_0x3106be){const _0x2a7045=a2_0x50ed,_0x32e9cd=_0x34f7ff();while(!![]){try{const _0x324634=-parseInt(_0x2a7045(0x115))/0x1+-parseInt(_0x2a7045(0x12b))/0x2+parseInt(_0x2a7045(0x12c))/0x3*(-parseInt(_0x2a7045(0x121))/0x4)+-parseInt(_0x2a7045(0x117))/0x5+parseInt(_0x2a7045(0x11c))/0x6+-parseInt(_0x2a7045(0x11e))/0x7+parseInt(_0x2a7045(0x11f))/0x8*(parseInt(_0x2a7045(0x114))/0x9);if(_0x324634===_0x3106be)break;else _0x32e9cd['push'](_0x32e9cd['shift']());}catch(_0x36bad9){_0x32e9cd['push'](_0x32e9cd['shift']());}}}(a2_0x3327,0x2c4bc));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a2_0x50ed(_0x15fbd4,_0x7bdc52){_0x15fbd4=_0x15fbd4-0x113;const _0x3327e3=a2_0x3327();let _0x50edfb=_0x3327e3[_0x15fbd4];return _0x50edfb;}import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x5a65d3){const _0x426982=a2_0x50ed,_0x2ed29a=_0x5a65d3['trim'](),_0x38d994=_0x2ed29a[_0x426982(0x12e)](-0x6)||_0x426982(0x122),_0x3b5220=createHash(_0x426982(0x124))['update'](_0x2ed29a)[_0x426982(0x113)]('hex')[_0x426982(0x12e)](0x0,0xc);return _0x426982(0x126)+_0x38d994+'_'+_0x3b5220;}function a2_0x3327(){const _0x37a056=['231295kPIOXr','code','1808345kwTWBA','appName','homeDirName','trim','.tmp','1655352rMLzvy','find','788466AyhNIt','8dcrqlh','items','8LvbAHZ','unknown','utf8','sha256','EPERM','ak_','EXDEV','appCode','my-apps.json','cache','158054LrKBLl','526488eDWrtw','isArray','slice','digest','9370485yOtccf'];a2_0x3327=function(){return _0x37a056;};return a2_0x3327();}export function getAppCacheFilePath(_0x405818,_0x3c94ee){const _0x1baa51=a2_0x50ed;return resolve(homedir(),PRODUCT_CONFIG[_0x1baa51(0x119)],_0x1baa51(0x12a),_0x405818,fingerprintAccessKey(_0x3c94ee),_0x1baa51(0x129));}export function readCachedAppList(_0x15f569,_0x18fafa){const _0x1ec328=a2_0x50ed;if(!_0x18fafa?.[_0x1ec328(0x11a)]())return null;const _0x3710ba=getAppCacheFilePath(_0x15f569,_0x18fafa);if(!existsSync(_0x3710ba))return null;try{const _0x2ec54e=readFileSync(_0x3710ba,_0x1ec328(0x123));if(!_0x2ec54e[_0x1ec328(0x11a)]())return null;const _0x768345=JSON['parse'](_0x2ec54e);if(!Array[_0x1ec328(0x12d)](_0x768345[_0x1ec328(0x120)]))return null;return _0x768345;}catch{return null;}}export function writeCachedAppList(_0x3a5f49,_0x235039,_0x459152){const _0x1df000=a2_0x50ed,_0x3f25b0=getAppCacheFilePath(_0x3a5f49,_0x235039),_0x3fbe10=dirname(_0x3f25b0);!existsSync(_0x3fbe10)&&mkdirSync(_0x3fbe10,{'recursive':!![]});const _0x5978f0=_0x3f25b0+_0x1df000(0x11b);try{writeFileSync(_0x5978f0,JSON['stringify'](_0x459152,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180});try{renameSync(_0x5978f0,_0x3f25b0);}catch(_0x400d3b){if(_0x400d3b[_0x1df000(0x116)]===_0x1df000(0x125)||_0x400d3b[_0x1df000(0x116)]===_0x1df000(0x127)||_0x400d3b[_0x1df000(0x116)]==='EACCES'){writeFileSync(_0x3f25b0,JSON['stringify'](_0x459152,null,0x2)+'\x0a',{'encoding':_0x1df000(0x123)});try{unlinkSync(_0x5978f0);}catch{}}else throw _0x400d3b;}}catch(_0x4782ca){try{unlinkSync(_0x5978f0);}catch{}throw _0x4782ca;}return _0x3f25b0;}export function resolveCachedAppCode(_0x45b618,_0x2c059a,_0x387c28){const _0x595d7f=a2_0x50ed;if(!_0x45b618)return undefined;const _0x2ba682=readCachedAppList(_0x2c059a,_0x387c28),_0x8887ac=_0x2ba682?.['items'][_0x595d7f(0x11d)](_0x4bb709=>_0x4bb709[_0x595d7f(0x118)]===_0x45b618&&isRuntimeAccessibleApp(_0x4bb709));return _0x8887ac?.[_0x595d7f(0x128)]?.[_0x595d7f(0x11a)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a3_0x4278(_0x5a1dfd,_0x5e2eb9){_0x5a1dfd=_0x5a1dfd-0xec;const _0x20d72c=a3_0x20d7();let _0x4278a5=_0x20d72c[_0x5a1dfd];return _0x4278a5;}const a3_0xec8c3f=a3_0x4278;(function(_0x5e049f,_0x183075){const _0x3afff8=a3_0x4278,_0x337712=_0x5e049f();while(!![]){try{const _0x253d67=parseInt(_0x3afff8(0xfb))/0x1*(parseInt(_0x3afff8(0x124))/0x2)+parseInt(_0x3afff8(0x12b))/0x3+-parseInt(_0x3afff8(0xf7))/0x4+-parseInt(_0x3afff8(0xf1))/0x5+-parseInt(_0x3afff8(0x119))/0x6*(parseInt(_0x3afff8(0x118))/0x7)+parseInt(_0x3afff8(0x123))/0x8*(-parseInt(_0x3afff8(0xf4))/0x9)+parseInt(_0x3afff8(0x11b))/0xa;if(_0x253d67===_0x183075)break;else _0x337712['push'](_0x337712['shift']());}catch(_0x3b6e42){_0x337712['push'](_0x337712['shift']());}}}(a3_0x20d7,0x24d8c));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';function a3_0x20d7(){const _0x135ea7=['config','从\x20.rabetbase.json\x20文件导入默认应用选择','string','598959aMxgMl','production','remote','../../commands/app/remote-source.js','cache','source','1324335uqPFKW','write','Target\x20environment\x20(default:\x20current\x20env)','9RHRhQD','length','enableI18n','650956NzqUIC','globalPath','../../context.js','env','2117sUVIVm','accessKey','trim','envName','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','boolean','Loaded\x20','bool','map','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','list','filter','str','local','Read\x20from\x20local\x20cache\x20only','Read\x20app\x20list\x20from\x20local\x20cache\x20only','i18nInfo','Refreshed\x20app\x20cache\x20with\x20','appName','appCode','nonInteractive','entries','type','projectPath','include-unpublished','fetchedAt','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','find','cachePath','14gBELWV','372858lnDzck','No\x20cached\x20apps\x20found.','3844020tsnRNd','pull','items','Include\x20unpublished\x20apps\x20for\x20diagnostics','appcode','appPublishStatus','import','no-cache','252368sAYjnI','142AByMRk','从平台刷新本地应用缓存','\x20cached\x20app(s)\x20for\x20env=\x22','name'];a3_0x20d7=function(){return _0x135ea7;};return a3_0x20d7();}import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x28895a,_0x664df6){const _0x293a37=a3_0x4278,_0x259835={};for(const _0x93485e of _0x664df6){const _0x979282=_0x93485e[_0x293a37(0x111)]===_0x293a37(0x100)?_0x28895a[_0x293a37(0x102)](_0x93485e[_0x293a37(0x127)]):_0x28895a['str'](_0x93485e['name']);if(_0x979282!==''&&_0x979282!==![])_0x259835[_0x93485e['name']]=_0x979282;}if(_0x28895a[_0x293a37(0x10f)])_0x259835[_0x293a37(0x10f)]=!![];return _0x259835;}function normalizeLanguages(_0x5aa610){const _0x93d735=a3_0x4278;if(!Array['isArray'](_0x5aa610))return[];return _0x5aa610[_0x93d735(0x106)](_0x12115b=>typeof _0x12115b===_0x93d735(0x12a))[_0x93d735(0x103)](_0x5ce93a=>_0x5ce93a[_0x93d735(0xfd)]())[_0x93d735(0x106)](Boolean);}function buildRemoteAppI18nFields(_0x58f4d5){const _0x23fda3=a3_0x4278,_0x5daf24=normalizeLanguages(_0x58f4d5['i18nInfo']?.['langs']);return{'enableI18n':typeof _0x58f4d5[_0x23fda3(0xf6)]==='boolean'?_0x58f4d5[_0x23fda3(0xf6)]:null,'languages':_0x5daf24,'i18nInfo':_0x58f4d5['i18nInfo']?{..._0x58f4d5[_0x23fda3(0x10b)],'langs':_0x5daf24[_0x23fda3(0xf5)]?_0x5daf24:null}:null};}const listDef={'service':'app','command':a3_0xec8c3f(0x105),'description':a3_0xec8c3f(0x115),'risk':'read','requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0xec8c3f(0xfa),'type':a3_0xec8c3f(0x12a),'description':'Filter\x20by\x20environment\x20(default:\x20current\x20env)','enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':'boolean','description':a3_0xec8c3f(0x10a),'default':![]},{'name':a3_0xec8c3f(0x122),'type':a3_0xec8c3f(0x100),'description':'Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','default':![]},{'name':'include-unpublished','type':a3_0xec8c3f(0x100),'description':a3_0xec8c3f(0x11e),'default':![]}],async 'execute'(_0xbc2fa5){const _0xa3703a=a3_0xec8c3f,_0x453e14=_0xbc2fa5['str'](_0xa3703a(0xfa))||_0xbc2fa5[_0xa3703a(0xfe)]||getEnv()||_0xa3703a(0xec),_0x55d385=_0xbc2fa5['bool'](_0xa3703a(0x108)),_0x1f3fcd=_0xbc2fa5['bool'](_0xa3703a(0x122)),_0x2ab3c2=_0xbc2fa5[_0xa3703a(0x102)](_0xa3703a(0x113)),{readRawConfigWithLayers:_0x34180a,resolveDefaultAppSource:_0x342009,getLocalAppAliases:_0x40235a}=await import(_0xa3703a(0xf9)),{getRemoteAppList:_0x38431b}=await import(_0xa3703a(0xee)),{config:_0x15c203,layers:_0x22f6e0}=_0x34180a(),_0x459241=_0x342009(_0x22f6e0),{defaultApp:_0x1ba3e8}=_0x15c203,_0x4b70b8=await _0x38431b({'env':_0x453e14,'accessKey':_0xbc2fa5[_0xa3703a(0xfc)],'localOnly':_0x55d385,'noCache':_0x1f3fcd}),_0x381da8=_0x2ab3c2?_0x4b70b8[_0xa3703a(0x11d)]:filterRuntimeAccessibleApps(_0x4b70b8[_0xa3703a(0x11d)]),_0x199553=_0x4b70b8[_0xa3703a(0x11d)][_0xa3703a(0xf5)]-_0x381da8[_0xa3703a(0xf5)],_0x25ada8=_0x381da8['map'](_0xc3d879=>{const _0x5015de=_0xa3703a;return{'name':_0xc3d879[_0x5015de(0x10d)],'appcode':_0xc3d879[_0x5015de(0x10e)],'named':!![],'definedIn':_0x5015de(0xed),'isDefault':_0xc3d879['appName']===_0x1ba3e8,...buildAppProfileListFields(_0x453e14),...buildRemoteAppI18nFields(_0xc3d879),'source':_0x4b70b8[_0x5015de(0xf0)],'owner':_0xc3d879['appOwnerName']??null,'status':_0xc3d879[_0x5015de(0x120)]??null,'cachedAt':_0x4b70b8[_0x5015de(0x114)]};}),_0x428e28=_0x40235a(_0x15c203);let _0x111371=0x0;for(const [_0x276d14,_0x49a813]of Object[_0xa3703a(0x110)](_0x428e28)){const _0x5d5420=typeof _0x49a813[_0xa3703a(0x11f)]===_0xa3703a(0x12a)?_0x49a813[_0xa3703a(0x11f)][_0xa3703a(0xfd)]():'';if(!_0x5d5420)continue;const _0x107f82=findAppByCode(_0x4b70b8[_0xa3703a(0x11d)],_0x5d5420);if(!_0x2ab3c2&&_0x107f82&&!isRuntimeAccessibleApp(_0x107f82))continue;_0x111371+=0x1,_0x25ada8['push']({'name':_0x276d14,'appcode':_0x5d5420,'named':!![],'definedIn':'local','isDefault':_0x276d14===_0x1ba3e8,...buildAppProfileListFields(_0x453e14),'source':_0xa3703a(0x128),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x25ada8,_0xbc2fa5['mergedCli']);const _0x505527=_0x25ada8[_0xa3703a(0x116)](_0x1bc232=>_0x1bc232['isCurrent']===!![]),_0x2c78b2=_0x1ba3e8??_0x505527?.[_0xa3703a(0x127)]??null,_0x3e5f91={'env':_0x453e14,'source':_0x4b70b8['source'],'fetchedAt':_0x4b70b8[_0xa3703a(0x114)],'cachePath':_0x4b70b8[_0xa3703a(0x117)],'globalPath':_0x22f6e0[_0xa3703a(0xf8)]??null,'projectPath':_0x22f6e0[_0xa3703a(0x112)]??null,'defaultApp':_0x2c78b2,'defaultAppSource':_0x1ba3e8!=null?_0x459241:null,'localAliasCount':_0x111371,'remoteTotal':_0x4b70b8[_0xa3703a(0x11d)]['length'],'hiddenUnpublishedCount':_0x199553,'includeUnpublished':_0x2ab3c2};if(_0x25ada8[_0xa3703a(0xf5)]===0x0)return{'ok':!![],'data':{'items':_0x25ada8,'meta':_0x3e5f91},'message':_0x4b70b8[_0xa3703a(0xf0)]==='cache'?_0xa3703a(0x11a):'No\x20apps\x20found\x20on\x20the\x20platform.'};return{'ok':!![],'data':{'items':_0x25ada8,'meta':_0x3e5f91}};}},pullDef={'service':'app','command':a3_0xec8c3f(0x11c),'description':a3_0xec8c3f(0x125),'risk':a3_0xec8c3f(0xf2),'confirmationDescription':a3_0xec8c3f(0x104),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0xec8c3f(0xfa),'type':a3_0xec8c3f(0x12a),'description':a3_0xec8c3f(0xf3),'enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0xec8c3f(0x100),'description':a3_0xec8c3f(0x109),'default':![]},{'name':a3_0xec8c3f(0x122),'type':a3_0xec8c3f(0x100),'description':'Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','default':![]}],async 'execute'(_0x555d25){const _0x3cea16=a3_0xec8c3f,_0xcb4ebc=_0x555d25[_0x3cea16(0x107)](_0x3cea16(0xfa))||_0x555d25[_0x3cea16(0xfe)]||getEnv()||_0x3cea16(0xec),_0x30b70e=_0x555d25[_0x3cea16(0x102)]('local'),_0x4826cb=_0x555d25[_0x3cea16(0x102)](_0x3cea16(0x122)),{getRemoteAppList:_0x7e4194}=await import('../../commands/app/remote-source.js'),_0x49240c=await _0x7e4194({'env':_0xcb4ebc,'accessKey':_0x555d25[_0x3cea16(0xfc)],'localOnly':_0x30b70e,'noCache':_0x4826cb});return{'ok':!![],'data':{'total':_0x49240c[_0x3cea16(0x11d)]['length'],'env':_0xcb4ebc,'source':_0x49240c[_0x3cea16(0xf0)],'fetchedAt':_0x49240c[_0x3cea16(0x114)],'cachePath':_0x49240c[_0x3cea16(0x117)]},'message':_0x49240c[_0x3cea16(0xf0)]===_0x3cea16(0xef)?_0x3cea16(0x101)+_0x49240c[_0x3cea16(0x11d)]['length']+_0x3cea16(0x126)+_0xcb4ebc+'\x22.':_0x3cea16(0x10c)+_0x49240c[_0x3cea16(0x11d)]['length']+'\x20app(s)\x20for\x20env=\x22'+_0xcb4ebc+'\x22.'};}},importDef={'service':'app','command':a3_0xec8c3f(0x121),'description':a3_0xec8c3f(0x129),'risk':a3_0xec8c3f(0xf2),'confirmationDescription':a3_0xec8c3f(0xff),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x21ac73){return await runAppImport(collectFlags(_0x21ac73,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x33545f,_0x251ba0){const _0x337682=a4_0x8e41,_0x58a51e=_0x33545f();while(!![]){try{const _0x208961=-parseInt(_0x337682(0x1e3))/0x1*(-parseInt(_0x337682(0x1eb))/0x2)+parseInt(_0x337682(0x1e2))/0x3*(parseInt(_0x337682(0x1e9))/0x4)+-parseInt(_0x337682(0x1f0))/0x5*(-parseInt(_0x337682(0x1f5))/0x6)+-parseInt(_0x337682(0x1e6))/0x7*(-parseInt(_0x337682(0x1e4))/0x8)+-parseInt(_0x337682(0x1f4))/0x9+parseInt(_0x337682(0x1ea))/0xa*(parseInt(_0x337682(0x1f3))/0xb)+-parseInt(_0x337682(0x1ed))/0xc;if(_0x208961===_0x251ba0)break;else _0x58a51e['push'](_0x58a51e['shift']());}catch(_0xc68e45){_0x58a51e['push'](_0x58a51e['shift']());}}}(a4_0x5c1d,0x8c33e));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';function a4_0x8e41(_0x323ddc,_0x529db5){_0x323ddc=_0x323ddc-0x1e2;const _0x5c1de9=a4_0x5c1d();let _0x8e4193=_0x5c1de9[_0x323ddc];return _0x8e4193;}import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x1b337f){const _0x64eceb=a4_0x8e41;if(typeof _0x1b337f!=='string')return null;const _0x25268a=_0x1b337f[_0x64eceb(0x1f2)]();return _0x25268a?_0x25268a['toUpperCase']():null;}export function isRuntimeAccessibleApp(_0x2bb0a0){const _0x55a9d0=a4_0x8e41;return normalizeAppPublishStatus(_0x2bb0a0[_0x55a9d0(0x1f6)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0xaa5b5f){const _0x43d500=a4_0x8e41;return _0xaa5b5f[_0x43d500(0x1e5)](isRuntimeAccessibleApp);}export function findAppByName(_0x5ab26c,_0x1c4fb4){const _0x4eaf17=a4_0x8e41;return _0x5ab26c[_0x4eaf17(0x1ee)](_0xc68822=>_0xc68822[_0x4eaf17(0x1f1)]===_0x1c4fb4);}export function findAppByCode(_0x1a8a2d,_0x454572){const _0xd1b0e0=a4_0x8e41,_0x146dfc=_0x454572['trim']();if(!_0x146dfc)return undefined;return _0x1a8a2d[_0xd1b0e0(0x1ee)](_0x2e5622=>_0x2e5622['appCode']?.['trim']()===_0x146dfc);}function a4_0x5c1d(){const _0x8d9b1d=['263010BIVKKz','2UgXNvU','UNKNOWN','18646548osAilH','find','validation','10sPZAIj','appName','trim','319LjNhrO','4600431BBehZl','3116742DFbsWK','appPublishStatus','4701NaoSHV','75758xfYkhp','1736jKTfEj','filter','18158HeGGjR','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','Current\x20status:\x20','508KnIxdN'];a4_0x5c1d=function(){return _0x8d9b1d;};return a4_0x5c1d();}export function runtimeInaccessibleAppError(_0x346047,_0x811631){const _0x15e82b=a4_0x8e41,_0x5d7a59=normalizeAppPublishStatus(_0x346047['appPublishStatus'])??_0x15e82b(0x1ec);return CliErrors[_0x15e82b(0x1ef)]('App\x20'+_0x811631+_0x15e82b(0x1e7),_0x15e82b(0x1e8)+_0x5d7a59+'.\x20Publish\x20the\x20app\x20before\x20using\x20'+CLI_BIN_NAME+'\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3a4dba,_0x3ebdca){const _0x3caa05=a5_0xe5d3,_0x52d91f=_0x3a4dba();while(!![]){try{const _0x448e05=parseInt(_0x3caa05(0x92))/0x1+-parseInt(_0x3caa05(0x8e))/0x2+parseInt(_0x3caa05(0x83))/0x3*(parseInt(_0x3caa05(0x85))/0x4)+parseInt(_0x3caa05(0x86))/0x5*(parseInt(_0x3caa05(0x7f))/0x6)+-parseInt(_0x3caa05(0x81))/0x7*(parseInt(_0x3caa05(0x88))/0x8)+-parseInt(_0x3caa05(0x8b))/0x9+parseInt(_0x3caa05(0x8c))/0xa*(parseInt(_0x3caa05(0x80))/0xb);if(_0x448e05===_0x3ebdca)break;else _0x52d91f['push'](_0x52d91f['shift']());}catch(_0x1d0d95){_0x52d91f['push'](_0x52d91f['shift']());}}}(a5_0x2682,0xdf16c));import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a5_0x2682(){const _0x2b222f=['44zpdlFF','146695PyksEl','errorCode','593424mKlccc','../../../mock/app-list.json','tableData','8322111HDxePn','1268410KSbHLP','data','230916IAaqJt','Mock\x20API\x20error:\x20','errorMsg','parse','268898MDGHmR','240BONNTt','11WvuwXl','7AZYeNd','utf-8','125124vVGiqc','success'];a5_0x2682=function(){return _0x2b222f;};return a5_0x2682();}function loadMockAppList(){const _0x5c8f72=a5_0xe5d3,_0x1baae0=join(__dirname,_0x5c8f72(0x89)),_0x45ecc4=readFileSync(_0x1baae0,_0x5c8f72(0x82));return JSON[_0x5c8f72(0x91)](_0x45ecc4);}let _cached=null;function a5_0xe5d3(_0x33880b,_0x377002){_0x33880b=_0x33880b-0x7f;const _0x26829c=a5_0x2682();let _0xe5d336=_0x26829c[_0x33880b];return _0xe5d336;}export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x20d6a0=a5_0xe5d3,_0xe5c622=getMockAppList();if(!_0xe5c622[_0x20d6a0(0x84)])throw new Error(_0x20d6a0(0x8f)+_0xe5c622[_0x20d6a0(0x90)]+'\x20('+_0xe5c622[_0x20d6a0(0x87)]+')');return _0xe5c622[_0x20d6a0(0x8d)][_0x20d6a0(0x8a)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x268bc0,_0x167550){const _0x2e5cc5=a6_0x2bc6,_0x3efafb=_0x268bc0();while(!![]){try{const _0xe333ff=-parseInt(_0x2e5cc5(0x1e2))/0x1+-parseInt(_0x2e5cc5(0x1ed))/0x2+parseInt(_0x2e5cc5(0x1ea))/0x3+-parseInt(_0x2e5cc5(0x1e3))/0x4+-parseInt(_0x2e5cc5(0x1e8))/0x5+parseInt(_0x2e5cc5(0x1ec))/0x6+parseInt(_0x2e5cc5(0x1ee))/0x7;if(_0xe333ff===_0x167550)break;else _0x3efafb['push'](_0x3efafb['shift']());}catch(_0x399ccb){_0x3efafb['push'](_0x3efafb['shift']());}}}(a6_0x630b,0xb9676));function a6_0x2bc6(_0x5dd0a3,_0x9ff833){_0x5dd0a3=_0x5dd0a3-0x1e1;const _0x630b3f=a6_0x630b();let _0x2bc6f5=_0x630b3f[_0x5dd0a3];return _0x2bc6f5;}import{getMyApps}from'../../core/api-client.js';function a6_0x630b(){const _0x5c675e=['1935560BmxRqm','remote','3797052hXtoYz','APP_LIST_SOURCE','4193166KcWGJE','2320782WgaRRg','7675822bXFIXv','toLowerCase','mock','cache','282432gPuycG','1886968VtXegM','toISOString','trim','items','fetchedAt'];a6_0x630b=function(){return _0x5c675e;};return a6_0x630b();}import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x4c9ee0=a6_0x2bc6,_0x27d13c=(productEnv(_0x4c9ee0(0x1eb))||'')[_0x4c9ee0(0x1e5)]()[_0x4c9ee0(0x1ef)]();return _0x27d13c===_0x4c9ee0(0x1f0);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x53ab19){const _0x5c2160=a6_0x2bc6,{env:_0x3bd89d,accessKey:_0x35e79c,localOnly:localOnly=![],noCache:noCache=![]}=_0x53ab19,_0x2c956d=readCachedAppList(_0x3bd89d,_0x35e79c),_0x47c0bf=_0x35e79c?.['trim']()?getAppCacheFilePath(_0x3bd89d,_0x35e79c):null;if(localOnly)return{'items':_0x2c956d?.[_0x5c2160(0x1e6)]??[],'source':'cache','fetchedAt':_0x2c956d?.['fetchedAt']??null,'cachePath':_0x47c0bf};try{const _0x246e9a=await getRemoteAppItems(),_0x104c72=shouldUseMockRemoteApps()?_0x5c2160(0x1f0):_0x5c2160(0x1e9),_0x1ed2d4=new Date()[_0x5c2160(0x1e4)](),_0x2a2747=_0x35e79c?.['trim']()?writeCachedAppList(_0x3bd89d,_0x35e79c,{'env':_0x3bd89d,'fetchedAt':_0x1ed2d4,'source':_0x104c72,'items':_0x246e9a}):null;return{'items':_0x246e9a,'source':_0x104c72,'fetchedAt':_0x1ed2d4,'cachePath':_0x2a2747};}catch(_0x17dac8){if(!noCache&&_0x2c956d)return{'items':_0x2c956d[_0x5c2160(0x1e6)],'source':_0x5c2160(0x1e1),'fetchedAt':_0x2c956d[_0x5c2160(0x1e7)],'cachePath':_0x47c0bf};throw _0x17dac8;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a7_0x2d2e(){const _0x4391b9=['appcode','defaultApp','currentApp','find','trim','appCode','3406893mHIiCh','isCurrent','558456ZNIcNX','744834rAflta','6621776YGWcyl','236432VdjkZJ','local','3461845nunRUO','name','definedIn','467238xmpGyL'];a7_0x2d2e=function(){return _0x4391b9;};return a7_0x2d2e();}function a7_0x3d15(_0x540c26,_0x290f62){_0x540c26=_0x540c26-0xf9;const _0x2d2eba=a7_0x2d2e();let _0x3d15f4=_0x2d2eba[_0x540c26];return _0x3d15f4;}(function(_0x3ecb96,_0x1bd0dc){const _0x33f90b=a7_0x3d15,_0x3d6efd=_0x3ecb96();while(!![]){try{const _0x9cdc5b=-parseInt(_0x33f90b(0x108))/0x1+-parseInt(_0x33f90b(0xff))/0x2+parseInt(_0x33f90b(0x106))/0x3+-parseInt(_0x33f90b(0xfa))/0x4+-parseInt(_0x33f90b(0xfc))/0x5+parseInt(_0x33f90b(0x109))/0x6+parseInt(_0x33f90b(0xf9))/0x7;if(_0x9cdc5b===_0x1bd0dc)break;else _0x3d6efd['push'](_0x3d6efd['shift']());}catch(_0x5bb439){_0x3d6efd['push'](_0x3d6efd['shift']());}}}(a7_0x2d2e,0xa1aaa));export function enrichAppListItemsWithMergedSelection(_0x50c3d9,_0x55c5b1){const _0x4ae6d8=a7_0x3d15;if(!_0x55c5b1)return;const _0xe0b8b7=!!(_0x55c5b1[_0x4ae6d8(0x102)]??_0x55c5b1[_0x4ae6d8(0x101)]);for(const _0x505b15 of _0x50c3d9){_0x505b15[_0x4ae6d8(0x107)]=![];}const _0x5a11f5=_0x55c5b1[_0x4ae6d8(0x105)]!=null?String(_0x55c5b1[_0x4ae6d8(0x105)])[_0x4ae6d8(0x104)]():'';if(_0xe0b8b7){const _0x330194=_0x55c5b1['currentApp']??_0x55c5b1['defaultApp'];if(_0x330194){const _0x338010=_0x50c3d9[_0x4ae6d8(0x103)](_0xea6f4c=>_0xea6f4c['named']===!![]&&_0xea6f4c['name']===_0x330194&&_0xea6f4c[_0x4ae6d8(0xfe)]===_0x4ae6d8(0xfb)),_0x2c26cf=_0x338010??_0x50c3d9[_0x4ae6d8(0x103)](_0x2667d1=>_0x2667d1['named']===!![]&&_0x2667d1[_0x4ae6d8(0xfd)]===_0x330194);if(_0x2c26cf){const _0x1e9629=String(_0x2c26cf[_0x4ae6d8(0x100)]??'')[_0x4ae6d8(0x104)]();if(!_0x5a11f5||_0x1e9629===_0x5a11f5){_0x2c26cf[_0x4ae6d8(0x107)]=!![];return;}}}if(_0x5a11f5){const _0x46d8cd=_0x50c3d9[_0x4ae6d8(0x103)](_0x5b3f91=>String(_0x5b3f91[_0x4ae6d8(0x100)]??'')[_0x4ae6d8(0x104)]()===_0x5a11f5);_0x46d8cd&&(_0x46d8cd[_0x4ae6d8(0x107)]=!![]);}return;}if(!_0x5a11f5)return;for(const _0xd347d7 of _0x50c3d9){String(_0xd347d7[_0x4ae6d8(0x100)]??'')[_0x4ae6d8(0x104)]()===_0x5a11f5&&(_0xd347d7[_0x4ae6d8(0x107)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a8_0x1c6cf9=a8_0xae4e;(function(_0x1170ad,_0x445695){const _0x550d2f=a8_0xae4e,_0x34e0ab=_0x1170ad();while(!![]){try{const _0x3747c2=parseInt(_0x550d2f(0xe9))/0x1+-parseInt(_0x550d2f(0xd2))/0x2+-parseInt(_0x550d2f(0xd3))/0x3*(-parseInt(_0x550d2f(0xe5))/0x4)+parseInt(_0x550d2f(0xd5))/0x5+-parseInt(_0x550d2f(0xe3))/0x6*(-parseInt(_0x550d2f(0xd9))/0x7)+parseInt(_0x550d2f(0xda))/0x8+-parseInt(_0x550d2f(0xdf))/0x9;if(_0x3747c2===_0x445695)break;else _0x34e0ab['push'](_0x34e0ab['shift']());}catch(_0x4e0cde){_0x34e0ab['push'](_0x34e0ab['shift']());}}}(a8_0x28f8,0x9693e));function a8_0xae4e(_0x232807,_0x573833){_0x232807=_0x232807-0xd2;const _0x28f8be=a8_0x28f8();let _0xae4e2b=_0x28f8be[_0x232807];return _0xae4e2b;}import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a8_0x28f8(){const _0x2f2401=['Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','98poygDH','1433040ELNTez','appCode','Usage:\x20','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.',',\x20appCode=','18383778gJzhiM','apiError','read','get','512826tuxuvY','App\x20config\x20key','2464244arPcAp','\x20app-config\x20get\x20<key>','args','key','89716xTuHYC','21850yJHlpx','3gaRlqx','trim','2944160gKwqYr','app-config','Missing\x20app-config\x20key.'];a8_0x28f8=function(){return _0x2f2401;};return a8_0x28f8();}import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':a8_0x1c6cf9(0xd6),'command':a8_0x1c6cf9(0xe2),'description':a8_0x1c6cf9(0xd8),'risk':a8_0x1c6cf9(0xe1),'args':[{'name':a8_0x1c6cf9(0xe8),'description':a8_0x1c6cf9(0xe4),'required':!![]}],'flags':[],async 'execute'(_0x13e5f0){const _0xacce55=a8_0x1c6cf9,_0x3b51c2=_0x13e5f0[_0xacce55(0xe7)][0x0]?.[_0xacce55(0xd4)]();if(!_0x3b51c2)throw CliErrors['validation'](_0xacce55(0xd7),_0xacce55(0xdc)+CLI_BIN_NAME+_0xacce55(0xe6));try{const _0xba8764=await getRuntimeAppConfigByKey(_0x13e5f0['appCode'],_0x3b51c2);return{'ok':!![],'data':_0xba8764};}catch{throw CliErrors[_0xacce55(0xe0)]('Unable\x20to\x20get\x20app-config\x20value:\x20key='+_0x3b51c2+_0xacce55(0xde)+_0x13e5f0[_0xacce55(0xdb)],_0xacce55(0xdd));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a9_0x3a91(){const _0x328629=['1551174IVMIrq','38315GBTMyS','13452230wcgors','2PAwRfy','7GUJUjR','534oajbCc','221305kZmeqC','132744ifPzjA','2580561aYgFib','258808kOgWmv'];a9_0x3a91=function(){return _0x328629;};return a9_0x3a91();}(function(_0x4f9721,_0x861a8c){const _0x205978=a9_0x3934,_0x319660=_0x4f9721();while(!![]){try{const _0xe07a55=parseInt(_0x205978(0x14a))/0x1+parseInt(_0x205978(0x147))/0x2*(parseInt(_0x205978(0x144))/0x3)+-parseInt(_0x205978(0x14b))/0x4+-parseInt(_0x205978(0x145))/0x5*(-parseInt(_0x205978(0x149))/0x6)+-parseInt(_0x205978(0x148))/0x7*(-parseInt(_0x205978(0x143))/0x8)+parseInt(_0x205978(0x142))/0x9+-parseInt(_0x205978(0x146))/0xa;if(_0xe07a55===_0x861a8c)break;else _0x319660['push'](_0x319660['shift']());}catch(_0x2e56d2){_0x319660['push'](_0x319660['shift']());}}}(a9_0x3a91,0x58251));function a9_0x3934(_0x570dda,_0x383f1f){_0x570dda=_0x570dda-0x142;const _0x3a912a=a9_0x3a91();let _0x39344b=_0x3a912a[_0x570dda];return _0x39344b;}import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x2f2ff1=a10_0x120b;(function(_0x69f0bb,_0x1cfd7a){const _0x345bef=a10_0x120b,_0x52facb=_0x69f0bb();while(!![]){try{const _0x26ed84=parseInt(_0x345bef(0x219))/0x1+parseInt(_0x345bef(0x1f4))/0x2+parseInt(_0x345bef(0x209))/0x3*(parseInt(_0x345bef(0x1da))/0x4)+parseInt(_0x345bef(0x1f6))/0x5+parseInt(_0x345bef(0x212))/0x6+parseInt(_0x345bef(0x221))/0x7+parseInt(_0x345bef(0x1e3))/0x8*(-parseInt(_0x345bef(0x21e))/0x9);if(_0x26ed84===_0x1cfd7a)break;else _0x52facb['push'](_0x52facb['shift']());}catch(_0x29ee0d){_0x52facb['push'](_0x52facb['shift']());}}}(a10_0x575a,0xbdcab));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';function a10_0x575a(){const _0x2e7007=['object','POST','build','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','list','dayjs','File\x20not\x20found:\x20','808qcxEBK','updateTime','body','content','data','createTime','File\x20is\x20not\x20a\x20regular\x20file:\x20','utf8','some','.\x20Unsupported:\x20','Artifact\x20display\x20name','@ant-design/icons','trim','metadata','Created\x20Artifact\x20','bool','update','2404900fEoGOo','Optional\x20favorite-state\x20filter','1608220lieiqE','Artifact\x20ID','artifactType','react','react_module','favorite','Preview:\x20create\x20react_module\x20Artifact','string','str','includes','detail','flag','length','validation','write','lodash','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','number','create','1299dMfznj','react_module\x20imports\x20are\x20limited\x20to:\x20','/update','read','source','verbose','boolean','description','name','1652676YIbYmO','isFile','add','file','compiledContent','react-dom','artifact','154842xsDJVx','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','num','--metadata\x20must\x20be\x20a\x20JSON\x20object.','split','213957kNrYav','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','join','5813367eEDrGC','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','antd','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','List\x20current-app\x20react_module\x20Artifacts','deleted','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','parse','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','3636cGZhEw','appCode'];a10_0x575a=function(){return _0x2e7007;};return a10_0x575a();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x2f2ff1(0x1fa),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x2f2ff1(0x1f9),a10_0x2f2ff1(0x217),a10_0x2f2ff1(0x205),a10_0x2f2ff1(0x1e1),a10_0x2f2ff1(0x223),a10_0x2f2ff1(0x1ee)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x2f2ff1(0x220)](',\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_0x2f2ff1(0x215),'type':a10_0x2f2ff1(0x1fd),'required':!![],'description':a10_0x2f2ff1(0x224)},ARTIFACT_NAME_FLAG={'name':'name','type':'string','description':a10_0x2f2ff1(0x1ed)},METADATA_FLAG={'name':a10_0x2f2ff1(0x1f0),'type':a10_0x2f2ff1(0x1fd),'description':a10_0x2f2ff1(0x21f)};function isPlainObject(_0x35108b){const _0x3407ae=a10_0x2f2ff1;return typeof _0x35108b===_0x3407ae(0x1dc)&&_0x35108b!==null&&!Array['isArray'](_0x35108b);}function readSourceFile(_0x13157b){const _0x2bda03=a10_0x2f2ff1;if(!_0x13157b)throw CliErrors[_0x2bda03(0x203)]('File\x20path\x20is\x20required.');if(!existsSync(_0x13157b))throw CliErrors[_0x2bda03(0x203)](_0x2bda03(0x1e2)+_0x13157b);if(!statSync(_0x13157b)[_0x2bda03(0x213)]())throw CliErrors['validation'](_0x2bda03(0x1e9)+_0x13157b);const _0x696647=readFileSync(_0x13157b,_0x2bda03(0x1ea));return validateReactModuleSource(_0x696647),_0x696647;}function parseMetadata(_0x361722){const _0x49fe01=a10_0x2f2ff1;if(!_0x361722)return undefined;let _0x16bb95;try{_0x16bb95=JSON[_0x49fe01(0x1d8)](_0x361722);}catch{throw CliErrors[_0x49fe01(0x203)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x361722);}if(!isPlainObject(_0x16bb95))throw CliErrors[_0x49fe01(0x203)](_0x49fe01(0x21c));const _0x406c7d={..._0x16bb95};return delete _0x406c7d[_0x49fe01(0x216)],_0x406c7d;}function a10_0x120b(_0x4fea16,_0x480585){_0x4fea16=_0x4fea16-0x1d7;const _0x575a82=a10_0x575a();let _0x120baf=_0x575a82[_0x4fea16];return _0x120baf;}function getPackageName(_0x36834a){const _0x1a3337=a10_0x2f2ff1;if(_0x36834a['startsWith']('@')){const [_0x48e4b3,_0x4bcad2]=_0x36834a[_0x1a3337(0x21d)]('/');return _0x48e4b3&&_0x4bcad2?_0x48e4b3+'/'+_0x4bcad2:_0x36834a;}return _0x36834a['split']('/')[0x0]||_0x36834a;}function validateAllowedImports(_0x2107b5){const _0x4b14e7=a10_0x2f2ff1,_0x38a21a=new Set();for(const _0x128bfe of IMPORT_SOURCE_PATTERNS){_0x128bfe['lastIndex']=0x0;let _0x472087;while((_0x472087=_0x128bfe['exec'](_0x2107b5))!==null){const _0x46449d=_0x472087[0x1]?.['trim']();_0x46449d&&_0x38a21a[_0x4b14e7(0x214)](_0x46449d);}}const _0x3d00a6=[..._0x38a21a]['map'](getPackageName)['filter'](_0x35c63c=>!ALLOWED_REACT_MODULE_IMPORTS[_0x4b14e7(0x1ff)](_0x35c63c));if(_0x3d00a6[_0x4b14e7(0x202)]>0x0)throw CliErrors[_0x4b14e7(0x203)](_0x4b14e7(0x20a)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4b14e7(0x1ec)+[...new Set(_0x3d00a6)][_0x4b14e7(0x220)](',\x20'));}export function validateReactModuleSource(_0x184615){const _0x347a3a=a10_0x2f2ff1;if(!_0x184615[_0x347a3a(0x1ef)]())throw CliErrors[_0x347a3a(0x203)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS[_0x347a3a(0x1eb)](_0x135790=>_0x135790['test'](_0x184615)))throw CliErrors[_0x347a3a(0x203)](_0x347a3a(0x1d7));validateAllowedImports(_0x184615);}function buildArtifactInput(_0x2ebb16){const _0x5108f5=a10_0x2f2ff1,_0x309bb7=readSourceFile(_0x2ebb16[_0x5108f5(0x1fe)](_0x5108f5(0x215))),_0x5b7c08=_0x2ebb16[_0x5108f5(0x1fe)](_0x5108f5(0x211))[_0x5108f5(0x1ef)](),_0x5080ec=parseMetadata(_0x2ebb16[_0x5108f5(0x1fe)](_0x5108f5(0x1f0)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x5b7c08?{'name':_0x5b7c08}:{},'content':_0x309bb7,..._0x5080ec?{'metadata':_0x5080ec}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x43765b){const _0x34448d=a10_0x2f2ff1;return{'id':_0x43765b['id'],'name':_0x43765b[_0x34448d(0x211)],'artifactType':_0x43765b[_0x34448d(0x1f8)],'source':_0x43765b[_0x34448d(0x20d)],'favorite':_0x43765b['favorite'],'deleted':_0x43765b[_0x34448d(0x226)],'createTime':_0x43765b[_0x34448d(0x1e8)],'updateTime':_0x43765b[_0x34448d(0x1e4)]};}function detailArtifact(_0x32675e){const _0x196f8b=a10_0x2f2ff1;return{'id':_0x32675e['id'],'appCode':_0x32675e['appCode'],'name':_0x32675e[_0x196f8b(0x211)],'artifactType':_0x32675e[_0x196f8b(0x1f8)],'source':_0x32675e[_0x196f8b(0x20d)],'favorite':_0x32675e[_0x196f8b(0x1fb)],'deleted':_0x32675e[_0x196f8b(0x226)],'content':_0x32675e[_0x196f8b(0x1e6)]??'','compiledContent':_0x32675e[_0x196f8b(0x216)],'metadata':_0x32675e[_0x196f8b(0x1f0)]??{},'createTime':_0x32675e[_0x196f8b(0x1e8)],'updateTime':_0x32675e[_0x196f8b(0x1e4)]};}function readFavoriteFlag(_0x941bb1){const _0x1bd5a4=a10_0x2f2ff1,_0x106036=_0x941bb1[_0x1bd5a4(0x201)](_0x1bd5a4(0x1fb));return _0x106036===undefined||_0x106036===null||_0x106036===''?undefined:_0x941bb1[_0x1bd5a4(0x1f2)](_0x1bd5a4(0x1fb));}const artifactList={'service':'artifact','command':a10_0x2f2ff1(0x1e0),'description':a10_0x2f2ff1(0x225),'risk':'read','flags':[{'name':a10_0x2f2ff1(0x20d),'type':a10_0x2f2ff1(0x1fd),'description':a10_0x2f2ff1(0x1df)},{'name':a10_0x2f2ff1(0x1fb),'type':a10_0x2f2ff1(0x20f),'description':a10_0x2f2ff1(0x1f5)},VERBOSE_FLAG],async 'execute'(_0x556ab3){const _0x33dc12=a10_0x2f2ff1,_0x1a2c6f=await listRuntimeArtifacts(_0x556ab3[_0x33dc12(0x1db)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x556ab3[_0x33dc12(0x1fe)](_0x33dc12(0x20d))?{'source':_0x556ab3['str'](_0x33dc12(0x20d))}:{},...readFavoriteFlag(_0x556ab3)!==undefined?{'favorite':readFavoriteFlag(_0x556ab3)}:{}});return{'ok':!![],'data':{'total':_0x1a2c6f[_0x33dc12(0x202)],'items':_0x556ab3[_0x33dc12(0x1f2)](_0x33dc12(0x20e))?_0x1a2c6f:_0x1a2c6f['map'](summarizeArtifact)}};}},artifactDetail={'service':a10_0x2f2ff1(0x218),'command':a10_0x2f2ff1(0x200),'description':'Show\x20one\x20Artifact\x20by\x20id','risk':a10_0x2f2ff1(0x20c),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'}],async 'execute'(_0x516a0c){const _0x5cdc20=a10_0x2f2ff1,_0x540d0a=await getRuntimeArtifact(_0x516a0c[_0x5cdc20(0x21b)]('id'),_0x516a0c[_0x5cdc20(0x1db)]);return{'ok':!![],'data':detailArtifact(_0x540d0a)};}},artifactCreate={'service':a10_0x2f2ff1(0x218),'command':'create','description':a10_0x2f2ff1(0x206),'risk':a10_0x2f2ff1(0x204),'confirmationDescription':a10_0x2f2ff1(0x21a),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5e9554){const _0x5aad1f=a10_0x2f2ff1,_0x5245b9=buildArtifactInput(_0x5e9554),_0x195971=await createRuntimeArtifact(_0x5e9554[_0x5aad1f(0x1db)],_0x5245b9);return{'ok':!![],'data':detailArtifact(_0x195971),'message':_0x5aad1f(0x1f1)+_0x195971['id']+(_0x195971[_0x5aad1f(0x211)]?'\x20('+_0x195971[_0x5aad1f(0x211)]+')':'')};},async 'dryRun'(_0x10c095){const _0x1c2396=a10_0x2f2ff1,_0x5985e7=buildArtifactInput(_0x10c095);return dryRun(_0x1c2396(0x1dd),'/client/artifact/create')[_0x1c2396(0x1e5)]({'appCode':_0x10c095[_0x1c2396(0x1db)],..._0x5985e7})['description'](_0x1c2396(0x1fc))['build']();},'writeEventSubject'(_0x285ddd){const _0xfa571c=a10_0x2f2ff1,_0x35b36e=_0x285ddd[_0xfa571c(0x1e7)]?.['id'];if(typeof _0x35b36e!==_0xfa571c(0x1fd)&&typeof _0x35b36e!=='number')return undefined;return{'kind':'artifact','id':String(_0x35b36e),'action':_0xfa571c(0x208)};}},artifactUpdate={'service':a10_0x2f2ff1(0x218),'command':'update','description':a10_0x2f2ff1(0x222),'risk':'write','confirmationDescription':a10_0x2f2ff1(0x1d9),'flags':[{...ID_FLAG,'description':a10_0x2f2ff1(0x1f7)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5a9473){const _0xa0c99d=a10_0x2f2ff1,_0x479c73=_0x5a9473[_0xa0c99d(0x21b)]('id'),_0x5d4fda=buildArtifactInput(_0x5a9473),_0x4fb938=await updateRuntimeArtifact(_0x479c73,_0x5a9473[_0xa0c99d(0x1db)],_0x5d4fda);return{'ok':!![],'data':detailArtifact(_0x4fb938),'message':'Updated\x20Artifact\x20'+_0x4fb938['id']+(_0x4fb938[_0xa0c99d(0x211)]?'\x20('+_0x4fb938[_0xa0c99d(0x211)]+')':'')};},async 'dryRun'(_0x1b0fa9){const _0x5b6444=a10_0x2f2ff1,_0x57abd7=_0x1b0fa9[_0x5b6444(0x21b)]('id'),_0xc64cdf=buildArtifactInput(_0x1b0fa9);return dryRun('POST','/client/artifact/'+_0x57abd7+_0x5b6444(0x20b))[_0x5b6444(0x1e5)]({'appCode':_0x1b0fa9[_0x5b6444(0x1db)],..._0xc64cdf})[_0x5b6444(0x210)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x57abd7)[_0x5b6444(0x1de)]();},'writeEventSubject'(_0x49e093){const _0x48a44e=a10_0x2f2ff1,_0x51630a=_0x49e093[_0x48a44e(0x1e7)]?.['id'];if(typeof _0x51630a!==_0x48a44e(0x1fd)&&typeof _0x51630a!==_0x48a44e(0x207))return undefined;return{'kind':_0x48a44e(0x218),'id':String(_0x51630a),'action':_0x48a44e(0x1f3)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x34d20d=a10_0x3128;(function(_0x34384e,_0x24daa9){const _0x14dd11=a10_0x3128,_0x261f17=_0x34384e();while(!![]){try{const _0x3b281c=parseInt(_0x14dd11(0x224))/0x1+-parseInt(_0x14dd11(0x1e6))/0x2*(-parseInt(_0x14dd11(0x1f2))/0x3)+parseInt(_0x14dd11(0x205))/0x4+parseInt(_0x14dd11(0x1e2))/0x5*(-parseInt(_0x14dd11(0x208))/0x6)+parseInt(_0x14dd11(0x21e))/0x7*(-parseInt(_0x14dd11(0x210))/0x8)+-parseInt(_0x14dd11(0x21a))/0x9*(parseInt(_0x14dd11(0x1dd))/0xa)+-parseInt(_0x14dd11(0x220))/0xb*(parseInt(_0x14dd11(0x1e8))/0xc);if(_0x3b281c===_0x24daa9)break;else _0x261f17['push'](_0x261f17['shift']());}catch(_0x387c85){_0x261f17['push'](_0x261f17['shift']());}}}(a10_0x2bda,0x2aa67));import{existsSync,readFileSync,statSync}from'node:fs';function a10_0x2bda(){const _0x48ffb4=['@ant-design/icons','test','update','boolean','antd','verbose','compiledContent','artifact','artifactType','includes','bool','file','filter','map','1171608WFsXoN','name','validation','6JCYjNu','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','description','react-dom','deleted','metadata','Optional\x20favorite-state\x20filter','parse','16vHJjoZ','List\x20current-app\x20react_module\x20Artifacts','write','Preview:\x20update\x20react_module\x20Artifact\x20','startsWith','str','/client/artifact/create','num','object','length','1972053ezCvRO','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','react','appCode','308546TBfdyR','number','11SkTTvL','detail','Artifact\x20display\x20name','string','273602ymBSmw','POST','isArray','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','Artifact\x20ID','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','react_module\x20imports\x20are\x20limited\x20to:\x20','10ACEKfF','.\x20Unsupported:\x20','updateTime','list','content','26915aOzHMt','favorite','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','3246IjpBPK','File\x20path\x20is\x20required.','2819532VJpKRm','trim','add','data','source','Created\x20Artifact\x20','build','join','/client/artifact/','Preview:\x20create\x20react_module\x20Artifact','288vXwcGt','body','isFile','File\x20is\x20not\x20a\x20regular\x20file:\x20','some'];a10_0x2bda=function(){return _0x48ffb4;};return a10_0x2bda();}import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';function a10_0x3128(_0x52cb03,_0x434fae){_0x52cb03=_0x52cb03-0x1d9;const _0x2bda80=a10_0x2bda();let _0x3128d4=_0x2bda80[_0x52cb03];return _0x3128d4;}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE='react_module',ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x34d20d(0x21c),a10_0x34d20d(0x20b),'lodash','dayjs',a10_0x34d20d(0x1fb),a10_0x34d20d(0x1f7)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x34d20d(0x1ef)](',\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_0x34d20d(0x202),'type':a10_0x34d20d(0x223),'required':!![],'description':a10_0x34d20d(0x1e5)},ARTIFACT_NAME_FLAG={'name':a10_0x34d20d(0x206),'type':a10_0x34d20d(0x223),'description':a10_0x34d20d(0x222)},METADATA_FLAG={'name':a10_0x34d20d(0x20d),'type':'string','description':a10_0x34d20d(0x1d9)};function isPlainObject(_0x4455d2){const _0x9b869a=a10_0x34d20d;return typeof _0x4455d2===_0x9b869a(0x218)&&_0x4455d2!==null&&!Array[_0x9b869a(0x226)](_0x4455d2);}function readSourceFile(_0x2e5859){const _0x2b1a9c=a10_0x34d20d;if(!_0x2e5859)throw CliErrors[_0x2b1a9c(0x207)](_0x2b1a9c(0x1e7));if(!existsSync(_0x2e5859))throw CliErrors[_0x2b1a9c(0x207)]('File\x20not\x20found:\x20'+_0x2e5859);if(!statSync(_0x2e5859)[_0x2b1a9c(0x1f4)]())throw CliErrors[_0x2b1a9c(0x207)](_0x2b1a9c(0x1f5)+_0x2e5859);const _0x5dff09=readFileSync(_0x2e5859,'utf8');return validateReactModuleSource(_0x5dff09),_0x5dff09;}function parseMetadata(_0x2b29bd){const _0x3df361=a10_0x34d20d;if(!_0x2b29bd)return undefined;let _0x310385;try{_0x310385=JSON[_0x3df361(0x20f)](_0x2b29bd);}catch{throw CliErrors[_0x3df361(0x207)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x2b29bd);}if(!isPlainObject(_0x310385))throw CliErrors[_0x3df361(0x207)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x4bb6b9={..._0x310385};return delete _0x4bb6b9[_0x3df361(0x1fd)],_0x4bb6b9;}function getPackageName(_0x2240d9){const _0x3a95e6=a10_0x34d20d;if(_0x2240d9[_0x3a95e6(0x214)]('@')){const [_0x173126,_0x147b5f]=_0x2240d9['split']('/');return _0x173126&&_0x147b5f?_0x173126+'/'+_0x147b5f:_0x2240d9;}return _0x2240d9['split']('/')[0x0]||_0x2240d9;}function validateAllowedImports(_0x230c29){const _0x3cff59=a10_0x34d20d,_0x5adcac=new Set();for(const _0x56d36d of IMPORT_SOURCE_PATTERNS){_0x56d36d['lastIndex']=0x0;let _0x211c34;while((_0x211c34=_0x56d36d['exec'](_0x230c29))!==null){const _0x53be6a=_0x211c34[0x1]?.[_0x3cff59(0x1e9)]();_0x53be6a&&_0x5adcac[_0x3cff59(0x1ea)](_0x53be6a);}}const _0x4f9141=[..._0x5adcac][_0x3cff59(0x204)](getPackageName)[_0x3cff59(0x203)](_0x4b3965=>!ALLOWED_REACT_MODULE_IMPORTS[_0x3cff59(0x200)](_0x4b3965));if(_0x4f9141[_0x3cff59(0x219)]>0x0)throw CliErrors[_0x3cff59(0x207)](_0x3cff59(0x1dc)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x3cff59(0x1de)+[...new Set(_0x4f9141)][_0x3cff59(0x1ef)](',\x20'));}export function validateReactModuleSource(_0x237499){const _0x4522c2=a10_0x34d20d;if(!_0x237499[_0x4522c2(0x1e9)]())throw CliErrors[_0x4522c2(0x207)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS[_0x4522c2(0x1f6)](_0x543e35=>_0x543e35[_0x4522c2(0x1f8)](_0x237499)))throw CliErrors[_0x4522c2(0x207)](_0x4522c2(0x1e4));validateAllowedImports(_0x237499);}function buildArtifactInput(_0xad617b){const _0x113444=a10_0x34d20d,_0x1fce31=readSourceFile(_0xad617b[_0x113444(0x215)]('file')),_0x52f3ec=_0xad617b[_0x113444(0x215)](_0x113444(0x206))[_0x113444(0x1e9)](),_0x4c7b89=parseMetadata(_0xad617b['str'](_0x113444(0x20d)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x52f3ec?{'name':_0x52f3ec}:{},'content':_0x1fce31,..._0x4c7b89?{'metadata':_0x4c7b89}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x20036e){const _0x225675=a10_0x34d20d;return{'id':_0x20036e['id'],'name':_0x20036e[_0x225675(0x206)],'artifactType':_0x20036e[_0x225675(0x1ff)],'source':_0x20036e[_0x225675(0x1ec)],'favorite':_0x20036e['favorite'],'deleted':_0x20036e[_0x225675(0x20c)],'createTime':_0x20036e['createTime'],'updateTime':_0x20036e[_0x225675(0x1df)]};}function detailArtifact(_0x1f6315){const _0x2eca44=a10_0x34d20d;return{'id':_0x1f6315['id'],'appCode':_0x1f6315[_0x2eca44(0x21d)],'name':_0x1f6315['name'],'artifactType':_0x1f6315[_0x2eca44(0x1ff)],'source':_0x1f6315[_0x2eca44(0x1ec)],'favorite':_0x1f6315[_0x2eca44(0x1e3)],'deleted':_0x1f6315[_0x2eca44(0x20c)],'content':_0x1f6315[_0x2eca44(0x1e1)]??'','compiledContent':_0x1f6315[_0x2eca44(0x1fd)],'metadata':_0x1f6315[_0x2eca44(0x20d)]??{},'createTime':_0x1f6315['createTime'],'updateTime':_0x1f6315[_0x2eca44(0x1df)]};}function readFavoriteFlag(_0x425dd7){const _0x5c01c6=a10_0x34d20d,_0x171d96=_0x425dd7['flag'](_0x5c01c6(0x1e3));return _0x171d96===undefined||_0x171d96===null||_0x171d96===''?undefined:_0x425dd7[_0x5c01c6(0x201)](_0x5c01c6(0x1e3));}const artifactList={'service':a10_0x34d20d(0x1fe),'command':a10_0x34d20d(0x1e0),'description':a10_0x34d20d(0x211),'risk':'read','flags':[{'name':'source','type':a10_0x34d20d(0x223),'description':a10_0x34d20d(0x21b)},{'name':a10_0x34d20d(0x1e3),'type':a10_0x34d20d(0x1fa),'description':a10_0x34d20d(0x20e)},VERBOSE_FLAG],async 'execute'(_0x2a9818){const _0x5af074=a10_0x34d20d,_0x53f559=await listRuntimeArtifacts(_0x2a9818[_0x5af074(0x21d)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2a9818[_0x5af074(0x215)]('source')?{'source':_0x2a9818[_0x5af074(0x215)]('source')}:{},...readFavoriteFlag(_0x2a9818)!==undefined?{'favorite':readFavoriteFlag(_0x2a9818)}:{}});return{'ok':!![],'data':{'total':_0x53f559[_0x5af074(0x219)],'items':_0x2a9818['bool'](_0x5af074(0x1fc))?_0x53f559:_0x53f559[_0x5af074(0x204)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x34d20d(0x1fe),'command':a10_0x34d20d(0x221),'description':'Show\x20one\x20Artifact\x20by\x20id','risk':'read','flags':[{...ID_FLAG,'description':a10_0x34d20d(0x1da)}],async 'execute'(_0x504182){const _0xe02542=a10_0x34d20d,_0x3fac48=await getRuntimeArtifact(_0x504182[_0xe02542(0x217)]('id'),_0x504182[_0xe02542(0x21d)]);return{'ok':!![],'data':detailArtifact(_0x3fac48)};}},artifactCreate={'service':a10_0x34d20d(0x1fe),'command':'create','description':a10_0x34d20d(0x1db),'risk':a10_0x34d20d(0x212),'confirmationDescription':a10_0x34d20d(0x209),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x1d3ebf){const _0x5ad365=a10_0x34d20d,_0x19eb07=buildArtifactInput(_0x1d3ebf),_0x13726b=await createRuntimeArtifact(_0x1d3ebf[_0x5ad365(0x21d)],_0x19eb07);return{'ok':!![],'data':detailArtifact(_0x13726b),'message':_0x5ad365(0x1ed)+_0x13726b['id']+(_0x13726b['name']?'\x20('+_0x13726b[_0x5ad365(0x206)]+')':'')};},async 'dryRun'(_0x411c62){const _0x414830=a10_0x34d20d,_0x2d7546=buildArtifactInput(_0x411c62);return dryRun(_0x414830(0x225),_0x414830(0x216))[_0x414830(0x1f3)]({'appCode':_0x411c62['appCode'],..._0x2d7546})[_0x414830(0x20a)](_0x414830(0x1f1))[_0x414830(0x1ee)]();},'writeEventSubject'(_0x4e509d){const _0x567077=a10_0x34d20d,_0x1a585e=_0x4e509d[_0x567077(0x1eb)]?.['id'];if(typeof _0x1a585e!=='string'&&typeof _0x1a585e!=='number')return undefined;return{'kind':_0x567077(0x1fe),'id':String(_0x1a585e),'action':'create'};}},artifactUpdate={'service':'artifact','command':a10_0x34d20d(0x1f9),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':'write','confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2a7288){const _0x963575=a10_0x34d20d,_0x513e30=_0x2a7288[_0x963575(0x217)]('id'),_0x28e396=buildArtifactInput(_0x2a7288),_0x5608e9=await updateRuntimeArtifact(_0x513e30,_0x2a7288['appCode'],_0x28e396);return{'ok':!![],'data':detailArtifact(_0x5608e9),'message':'Updated\x20Artifact\x20'+_0x5608e9['id']+(_0x5608e9['name']?'\x20('+_0x5608e9[_0x963575(0x206)]+')':'')};},async 'dryRun'(_0x1519a5){const _0x5100f4=a10_0x34d20d,_0x442bc7=_0x1519a5[_0x5100f4(0x217)]('id'),_0x319e5b=buildArtifactInput(_0x1519a5);return dryRun(_0x5100f4(0x225),_0x5100f4(0x1f0)+_0x442bc7+'/update')['body']({'appCode':_0x1519a5[_0x5100f4(0x21d)],..._0x319e5b})[_0x5100f4(0x20a)](_0x5100f4(0x213)+_0x442bc7)[_0x5100f4(0x1ee)]();},'writeEventSubject'(_0x5ba265){const _0x5d0939=a10_0x34d20d,_0x142425=_0x5ba265['data']?.['id'];if(typeof _0x142425!==_0x5d0939(0x223)&&typeof _0x142425!==_0x5d0939(0x21f))return undefined;return{'kind':_0x5d0939(0x1fe),'id':String(_0x142425),'action':_0x5d0939(0x1f9)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x3e0177=a11_0x5adb;(function(_0x211f65,_0x309c8e){const _0x26432a=a11_0x5adb,_0x2196c8=_0x211f65();while(!![]){try{const _0x1b9ea6=-parseInt(_0x26432a(0xa6))/0x1*(-parseInt(_0x26432a(0xe3))/0x2)+parseInt(_0x26432a(0xaf))/0x3*(parseInt(_0x26432a(0xab))/0x4)+-parseInt(_0x26432a(0xce))/0x5+-parseInt(_0x26432a(0xd6))/0x6+parseInt(_0x26432a(0xd4))/0x7+-parseInt(_0x26432a(0xe5))/0x8+parseInt(_0x26432a(0xd0))/0x9;if(_0x1b9ea6===_0x309c8e)break;else _0x2196c8['push'](_0x2196c8['shift']());}catch(_0x792234){_0x2196c8['push'](_0x2196c8['shift']());}}}(a11_0x5cb1,0x3639a));function a11_0x5adb(_0x5b90eb,_0x2cedc2){_0x5b90eb=_0x5b90eb-0xa2;const _0x5cb105=a11_0x5cb1();let _0x5adb49=_0x5cb105[_0x5b90eb];return _0x5adb49;}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(_0x384244){const _0x2db07f=a11_0x5adb;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x384244[_0x2db07f(0xbb)]('global'),'explicitProject':_0x384244[_0x2db07f(0xbb)]('project'),'policy':_0x2db07f(0xcd)}));}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(){return crypto['randomUUID']();}export function buildDeviceAuthUrl(_0x2a94dc,_0x58cc52,_0x5f0b42=a11_0x3e0177(0xa4)){const _0x3d93c5=a11_0x3e0177;return _0x2a94dc+_0x3d93c5(0xdc)+encodeURIComponent(_0x58cc52)+_0x3d93c5(0xea)+encodeURIComponent(_0x5f0b42);}export function getDeviceCodePath(){const _0x5722e6=a11_0x3e0177;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x5722e6(0xa2);}export function readStoredDeviceCode(){const _0x5a5255=a11_0x3e0177,_0x4fc614=getDeviceCodePath();if(!existsSync(_0x4fc614))return null;try{const _0x1394c6=readFileSync(_0x4fc614,{'encoding':_0x5a5255(0xe1)}),_0xe0967=JSON[_0x5a5255(0xbc)](_0x1394c6);if(_0xe0967&&typeof _0xe0967['code']===_0x5a5255(0xb4)&&typeof _0xe0967[_0x5a5255(0xbe)]===_0x5a5255(0xb4)&&(_0xe0967[_0x5a5255(0xee)]==='global'||_0xe0967[_0x5a5255(0xee)]===_0x5a5255(0xe4)))return _0xe0967;}catch{}return null;}export function writeStoredDeviceCode(_0x1dece7,_0x170eab){const _0x20a32d=a11_0x3e0177,_0x3aba0c=getDeviceCodePath(),_0x4d0cd8=dirname(_0x3aba0c);!existsSync(_0x4d0cd8)&&mkdirSync(_0x4d0cd8,{'recursive':!![]});const _0x581cc7={'code':_0x1dece7,'createdAt':new Date()['toISOString'](),'scope':_0x170eab};writeFileSync(_0x3aba0c,JSON[_0x20a32d(0xc2)](_0x581cc7),{'encoding':_0x20a32d(0xe1),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x183cd8=getDeviceCodePath();try{unlinkSync(_0x183cd8);}catch{}}export function isStoredDeviceCodeExpired(_0x521f8a){const _0x239389=a11_0x3e0177;return Date[_0x239389(0xe2)]()-new Date(_0x521f8a[_0x239389(0xbe)])['getTime']()>DEVICE_CODE_TTL_MS;}function a11_0x5cb1(){const _0x56cb6a=['trim','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','/api/device-auth/token','status','global','AbortError','data','auth','url-only','global-default','1497770RmKQIp','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','3408687CoOLBg','Invalid\x20access_key\x20returned\x20by\x20server.','Write\x20to\x20project\x20config','expired','224861RpWcUk','str','997344iueUSe','padStart','signal','),\x20retrying...','code','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','/device-auth?code=','After\x20authorizing,\x20re-run:\x20','accessKey','source','abort','utf8','now','2FFMOLD','project','81320DxuIbo','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','write','log','POST','&source=','Device\x20auth\x20API\x20returned\x20HTTP\x20','test','floor','scope','access_key','/.device-auth','success','lovrabet-cli','\x20config.','228584NkGuKc','AccessKey\x20saved\x20to\x20','nonInteractive','aborted','Device\x20auth\x20API\x20error\x20(','4596KfpyNv','device','apiError','removeListener','153paIzlV','Device\x20authorization\x20cancelled.','stderr','\x20remaining','json','string','validation','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','networkError','SIGINT','boolean','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','bool','parse','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','createdAt','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','Verify:\x20','\x0dWaiting\x20for\x20authorization...\x20','stringify','Device\x20authorization\x20successful.'];a11_0x5cb1=function(){return _0x56cb6a;};return a11_0x5cb1();}export async function fetchDeviceToken(_0x3552c5,_0x168384){const _0x288e28=a11_0x3e0177,_0x2a6687=_0x3552c5+_0x288e28(0xc6),_0xaf7ba5=new AbortController(),_0x291dcf=setTimeout(()=>_0xaf7ba5[_0x288e28(0xe0)](),0x2710),_0x1c84dd=await fetch(_0x2a6687,{'method':_0x288e28(0xe9),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'code':_0x168384}),'signal':_0xaf7ba5[_0x288e28(0xd8)]});clearTimeout(_0x291dcf);if(!_0x1c84dd['ok'])throw CliErrors[_0x288e28(0xb7)](_0x288e28(0xeb)+_0x1c84dd[_0x288e28(0xc7)]);const _0x3ea19a=await _0x1c84dd[_0x288e28(0xb3)](),_0x487841=_0x3ea19a[_0x288e28(0xca)]&&typeof _0x3ea19a[_0x288e28(0xca)]==='object'?_0x3ea19a['data']:_0x3ea19a;if(!_0x487841||typeof _0x487841['status']!==_0x288e28(0xb4))throw CliErrors['apiError']('Invalid\x20device\x20auth\x20response');return{'status':_0x487841[_0x288e28(0xc7)],'access_key':typeof _0x487841[_0x288e28(0xef)]===_0x288e28(0xb4)?_0x487841['access_key']:undefined};}export async function pollDeviceToken(_0x43cb10,_0x444408,_0x5f1ae2){const _0x31a2fe=a11_0x3e0177;let _0x2ab74b=0x0;for(let _0x56b5e4=0x0;_0x56b5e4<MAX_POLLS;_0x56b5e4++){if(_0x5f1ae2[_0x31a2fe(0xa9)])throw CliErrors['cancelled'](_0x31a2fe(0xb0));let _0xd08b05;try{_0xd08b05=await fetchDeviceToken(_0x43cb10,_0x444408);}catch(_0x1cb4c2){if(_0x1cb4c2 instanceof Error&&_0x1cb4c2['name']===_0x31a2fe(0xc9))throw CliErrors['cancelled'](_0x31a2fe(0xb0));_0x2ab74b++;if(_0x2ab74b>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x31a2fe(0xb7)]('Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.');writeCliSideChannelLine(_0x31a2fe(0xaa)+_0x2ab74b+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x31a2fe(0xd9)),await sleep(POLL_INTERVAL_MS);continue;}_0x2ab74b=0x0;if(_0xd08b05[_0x31a2fe(0xc7)]===_0x31a2fe(0xa3)){if(!_0xd08b05[_0x31a2fe(0xef)])throw CliErrors[_0x31a2fe(0xad)](_0x31a2fe(0xd1));return _0xd08b05['access_key'];}if(_0xd08b05[_0x31a2fe(0xc7)]===_0x31a2fe(0xd3)){deleteStoredDeviceCode();throw CliErrors[_0x31a2fe(0xb5)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x3046e4=(_0x56b5e4+0x1)*POLL_INTERVAL_MS,_0x449340=DEVICE_CODE_TTL_MS-_0x3046e4,_0x498325=Math[_0x31a2fe(0xed)](_0x449340/0xea60),_0x36252b=Math[_0x31a2fe(0xed)](_0x449340%0xea60/0x3e8);process[_0x31a2fe(0xb1)][_0x31a2fe(0xe7)](_0x31a2fe(0xc1)+_0x498325+':'+String(_0x36252b)[_0x31a2fe(0xd7)](0x2,'0')+_0x31a2fe(0xb2)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors['validation']('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function sleep(_0x33fec0){return new Promise(_0x1ef625=>setTimeout(_0x1ef625,_0x33fec0));}export const authDeviceDefinition={'service':a11_0x3e0177(0xcb),'command':a11_0x3e0177(0xac),'description':a11_0x3e0177(0xba),'risk':'write','confirmationDescription':a11_0x3e0177(0xe6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x3e0177(0xc8),'type':a11_0x3e0177(0xb9),'description':'Write\x20to\x20global\x20config\x20(default)','default':!![]},{'name':a11_0x3e0177(0xe4),'type':a11_0x3e0177(0xb9),'description':a11_0x3e0177(0xd2),'default':![]},{'name':'source','type':a11_0x3e0177(0xb4),'description':a11_0x3e0177(0xb6),'default':a11_0x3e0177(0xa4)},{'name':a11_0x3e0177(0xcc),'type':a11_0x3e0177(0xb9),'description':a11_0x3e0177(0xc5),'default':![]}],async 'execute'(_0x4cf2c3){const _0x32ce4e=a11_0x3e0177,_0x192bb8=resolveAuthScopeFlags(_0x4cf2c3),_0x2be0f0=_0x192bb8[_0x32ce4e(0xc8)]?'global':_0x32ce4e(0xe4),_0x59cf94=readScopedConfig(_0x192bb8);if(_0x59cf94[_0x32ce4e(0xde)])return{'ok':!![],'message':_0x32ce4e(0xcf)};const _0x5c8187=(_0x4cf2c3[_0x32ce4e(0xd5)](_0x32ce4e(0xdf))||_0x32ce4e(0xa4))[_0x32ce4e(0xc4)](),_0x412aa9=getUserDomain(),_0x25acfe=readStoredDeviceCode(),_0x315dad=_0x25acfe&&!isStoredDeviceCodeExpired(_0x25acfe)?_0x25acfe[_0x32ce4e(0xda)]:((()=>{const _0x3c3388=generateDeviceCode();return writeStoredDeviceCode(_0x3c3388,_0x2be0f0),_0x3c3388;})()),_0x95dc33=buildDeviceAuthUrl(_0x412aa9,_0x315dad,_0x5c8187);if(_0x4cf2c3[_0x32ce4e(0xbb)](_0x32ce4e(0xcc)))return console[_0x32ce4e(0xe8)](_0x95dc33),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x95dc33),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x32ce4e(0xbf));if(_0x4cf2c3[_0x32ce4e(0xa8)])return writeCliSideChannelLine(_0x32ce4e(0xdd)+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x32ce4e(0xdb)};writeCliSideChannelLine(_0x32ce4e(0xbd));const _0x1b96b4=new AbortController(),_0x25bc1d=()=>{const _0x4185d1=_0x32ce4e;_0x1b96b4[_0x4185d1(0xe0)](),process[_0x4185d1(0xae)](_0x4185d1(0xb8),_0x25bc1d);};process['once'](_0x32ce4e(0xb8),_0x25bc1d);let _0x4c0447;try{_0x4c0447=await pollDeviceToken(_0x412aa9,_0x315dad,_0x1b96b4[_0x32ce4e(0xd8)]);}finally{process[_0x32ce4e(0xae)](_0x32ce4e(0xb8),_0x25bc1d);}if(!ACCESS_KEY_PATTERN[_0x32ce4e(0xec)](_0x4c0447))throw CliErrors[_0x32ce4e(0xad)]('Invalid\x20access_key\x20returned\x20by\x20server.');const _0x16a8c4=readScopedConfig(_0x192bb8);return _0x16a8c4['accessKey']=_0x4c0447,writeScopedConfig(_0x16a8c4,_0x192bb8),deleteStoredDeviceCode(),process['stderr'][_0x32ce4e(0xe7)]('\x0a'),writeCliSideChannelLine(_0x32ce4e(0xa7)+_0x2be0f0+_0x32ce4e(0xa5)),writeCliSideChannelLine(_0x32ce4e(0xc0)+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':_0x32ce4e(0xc3)};}};
|
|
1
|
+
const a11_0x69099b=a11_0xc9b7;(function(_0x109c26,_0x3bd6e9){const _0x31e3b3=a11_0xc9b7,_0x4ad0ba=_0x109c26();while(!![]){try{const _0x1dfc61=-parseInt(_0x31e3b3(0x1a5))/0x1*(-parseInt(_0x31e3b3(0x19b))/0x2)+parseInt(_0x31e3b3(0x192))/0x3+-parseInt(_0x31e3b3(0x190))/0x4*(-parseInt(_0x31e3b3(0x1d3))/0x5)+-parseInt(_0x31e3b3(0x1b4))/0x6*(-parseInt(_0x31e3b3(0x1b3))/0x7)+-parseInt(_0x31e3b3(0x1c2))/0x8+-parseInt(_0x31e3b3(0x1a2))/0x9+-parseInt(_0x31e3b3(0x1bb))/0xa;if(_0x1dfc61===_0x3bd6e9)break;else _0x4ad0ba['push'](_0x4ad0ba['shift']());}catch(_0x4f9f1d){_0x4ad0ba['push'](_0x4ad0ba['shift']());}}}(a11_0x25ce,0x5d189));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';function a11_0x25ce(){const _0xf9bb63=['accessKey','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','code','abort','bool','apiError','Device\x20auth\x20API\x20returned\x20HTTP\x20','source','parse','\x20config.','Write\x20to\x20global\x20config\x20(default)','7nqDNJT','709770zYnLuo','AbortError','cancelled','utf8','lovrabet-cli','once','status','12482550lDYOGW','validation','Verify:\x20','name','/device-auth?code=','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','1808496ABhUjR','object','Device\x20authorization\x20successful.','createdAt','nonInteractive','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','Device\x20auth\x20API\x20error\x20(','&source=','Device\x20authorization\x20cancelled.','project','scope','aborted','write','Write\x20to\x20project\x20config','global-default','\x20auth\x20device','floor','70WHyDBc','str','expired','json','homeDirName','boolean','getTime','AccessKey\x20saved\x20to\x20','Invalid\x20access_key\x20returned\x20by\x20server.','test','trim','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','global','191240YpWHQq','After\x20authorizing,\x20re-run:\x20','2123400FHHXps','/api/device-auth/token','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','stringify','networkError','data','SIGINT','string','\x20auth\x20status','6CjHkkR','stderr','randomUUID','url-only','removeListener','toISOString','signal','963045JJOvkW','auth','device','155736CtqfQF','\x0dWaiting\x20for\x20authorization...\x20','access_key'];a11_0x25ce=function(){return _0xf9bb63;};return a11_0x25ce();}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(_0x1f9906){const _0x43a79a=a11_0xc9b7;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x1f9906[_0x43a79a(0x1ac)](_0x43a79a(0x18f)),'explicitProject':_0x1f9906[_0x43a79a(0x1ac)](_0x43a79a(0x1cb)),'policy':_0x43a79a(0x1d0)}));}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 _0x1acce0=a11_0xc9b7;return crypto[_0x1acce0(0x19d)]();}export function buildDeviceAuthUrl(_0x16158e,_0x510fc4,_0xf7afe4='lovrabet-cli'){const _0x251e54=a11_0xc9b7;return _0x16158e+_0x251e54(0x1bf)+encodeURIComponent(_0x510fc4)+_0x251e54(0x1c9)+encodeURIComponent(_0xf7afe4);}export function getDeviceCodePath(){const _0xecab88=a11_0xc9b7;return homedir()+'/'+PRODUCT_CONFIG[_0xecab88(0x187)]+'/.device-auth';}export function readStoredDeviceCode(){const _0xd1a714=a11_0xc9b7,_0x1344db=getDeviceCodePath();if(!existsSync(_0x1344db))return null;try{const _0x1b6752=readFileSync(_0x1344db,{'encoding':_0xd1a714(0x1b7)}),_0x1d79f6=JSON[_0xd1a714(0x1b0)](_0x1b6752);if(_0x1d79f6&&typeof _0x1d79f6['code']==='string'&&typeof _0x1d79f6[_0xd1a714(0x1c5)]===_0xd1a714(0x199)&&(_0x1d79f6[_0xd1a714(0x1cc)]===_0xd1a714(0x18f)||_0x1d79f6[_0xd1a714(0x1cc)]===_0xd1a714(0x1cb)))return _0x1d79f6;}catch{}return null;}export function writeStoredDeviceCode(_0x2e99fa,_0x32cbb6){const _0x3e8240=a11_0xc9b7,_0x3b0c0c=getDeviceCodePath(),_0x87aeca=dirname(_0x3b0c0c);!existsSync(_0x87aeca)&&mkdirSync(_0x87aeca,{'recursive':!![]});const _0x511694={'code':_0x2e99fa,'createdAt':new Date()[_0x3e8240(0x1a0)](),'scope':_0x32cbb6};writeFileSync(_0x3b0c0c,JSON[_0x3e8240(0x195)](_0x511694),{'encoding':_0x3e8240(0x1b7),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x59d635=getDeviceCodePath();try{unlinkSync(_0x59d635);}catch{}}export function isStoredDeviceCodeExpired(_0x4b6172){const _0x32416f=a11_0xc9b7;return Date['now']()-new Date(_0x4b6172[_0x32416f(0x1c5)])[_0x32416f(0x189)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x45840d,_0x2f4882){const _0x3b5ebc=a11_0xc9b7,_0x359123=_0x45840d+_0x3b5ebc(0x193),_0x2c57d3=new AbortController(),_0x43110a=setTimeout(()=>_0x2c57d3[_0x3b5ebc(0x1ab)](),0x2710),_0x4d90a5=await fetch(_0x359123,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON[_0x3b5ebc(0x195)]({'code':_0x2f4882}),'signal':_0x2c57d3[_0x3b5ebc(0x1a1)]});clearTimeout(_0x43110a);if(!_0x4d90a5['ok'])throw CliErrors[_0x3b5ebc(0x196)](_0x3b5ebc(0x1ae)+_0x4d90a5[_0x3b5ebc(0x1ba)]);const _0x2637b5=await _0x4d90a5[_0x3b5ebc(0x186)](),_0x1c0e61=_0x2637b5['data']&&typeof _0x2637b5[_0x3b5ebc(0x197)]===_0x3b5ebc(0x1c3)?_0x2637b5[_0x3b5ebc(0x197)]:_0x2637b5;if(!_0x1c0e61||typeof _0x1c0e61['status']!==_0x3b5ebc(0x199))throw CliErrors[_0x3b5ebc(0x1ad)]('Invalid\x20device\x20auth\x20response');return{'status':_0x1c0e61['status'],'access_key':typeof _0x1c0e61[_0x3b5ebc(0x1a7)]==='string'?_0x1c0e61[_0x3b5ebc(0x1a7)]:undefined};}function a11_0xc9b7(_0x3a45d9,_0x1ca212){_0x3a45d9=_0x3a45d9-0x186;const _0x25ce09=a11_0x25ce();let _0xc9b7ac=_0x25ce09[_0x3a45d9];return _0xc9b7ac;}export async function pollDeviceToken(_0x4a92ac,_0x259966,_0xe988cc){const _0x2cf7b8=a11_0xc9b7;let _0xbf9f8c=0x0;for(let _0xd44d9a=0x0;_0xd44d9a<MAX_POLLS;_0xd44d9a++){if(_0xe988cc[_0x2cf7b8(0x1cd)])throw CliErrors[_0x2cf7b8(0x1b6)](_0x2cf7b8(0x1ca));let _0x54d52d;try{_0x54d52d=await fetchDeviceToken(_0x4a92ac,_0x259966);}catch(_0x4dbab2){if(_0x4dbab2 instanceof Error&&_0x4dbab2[_0x2cf7b8(0x1be)]===_0x2cf7b8(0x1b5))throw CliErrors[_0x2cf7b8(0x1b6)](_0x2cf7b8(0x1ca));_0xbf9f8c++;if(_0xbf9f8c>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x2cf7b8(0x196)](_0x2cf7b8(0x1c1));writeCliSideChannelLine(_0x2cf7b8(0x1c8)+_0xbf9f8c+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0xbf9f8c=0x0;if(_0x54d52d[_0x2cf7b8(0x1ba)]==='success'){if(!_0x54d52d[_0x2cf7b8(0x1a7)])throw CliErrors[_0x2cf7b8(0x1ad)](_0x2cf7b8(0x18b));return _0x54d52d[_0x2cf7b8(0x1a7)];}if(_0x54d52d['status']===_0x2cf7b8(0x1d5)){deleteStoredDeviceCode();throw CliErrors[_0x2cf7b8(0x1bc)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0xa24725=(_0xd44d9a+0x1)*POLL_INTERVAL_MS,_0x58a1ec=DEVICE_CODE_TTL_MS-_0xa24725,_0x25dd57=Math[_0x2cf7b8(0x1d2)](_0x58a1ec/0xea60),_0xe6c26b=Math['floor'](_0x58a1ec%0xea60/0x3e8);process[_0x2cf7b8(0x19c)]['write'](_0x2cf7b8(0x1a6)+_0x25dd57+':'+String(_0xe6c26b)['padStart'](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x2cf7b8(0x1bc)]('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function sleep(_0x1b475a){return new Promise(_0x169dcd=>setTimeout(_0x169dcd,_0x1b475a));}export const authDeviceDefinition={'service':a11_0x69099b(0x1a3),'command':a11_0x69099b(0x1a4),'description':'通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','risk':a11_0x69099b(0x1ce),'confirmationDescription':a11_0x69099b(0x194),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'global','type':'boolean','description':a11_0x69099b(0x1b2),'default':!![]},{'name':'project','type':a11_0x69099b(0x188),'description':a11_0x69099b(0x1cf),'default':![]},{'name':a11_0x69099b(0x1af),'type':a11_0x69099b(0x199),'description':a11_0x69099b(0x1c7),'default':a11_0x69099b(0x1b8)},{'name':a11_0x69099b(0x19e),'type':'boolean','description':a11_0x69099b(0x1a9),'default':![]}],async 'execute'(_0x2d17c7){const _0x2db19b=a11_0x69099b,_0x41b553=resolveAuthScopeFlags(_0x2d17c7),_0x1d41f9=_0x41b553[_0x2db19b(0x18f)]?_0x2db19b(0x18f):_0x2db19b(0x1cb),_0x3572ca=readScopedConfig(_0x41b553);if(_0x3572ca['accessKey'])return{'ok':!![],'message':'Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.'};const _0x53b918=(_0x2d17c7[_0x2db19b(0x1d4)](_0x2db19b(0x1af))||'lovrabet-cli')[_0x2db19b(0x18d)](),_0x37a656=getUserDomain(),_0x4fa8a2=readStoredDeviceCode(),_0x2fe5e8=_0x4fa8a2&&!isStoredDeviceCodeExpired(_0x4fa8a2)?_0x4fa8a2[_0x2db19b(0x1aa)]:((()=>{const _0x57b260=generateDeviceCode();return writeStoredDeviceCode(_0x57b260,_0x1d41f9),_0x57b260;})()),_0x310115=buildDeviceAuthUrl(_0x37a656,_0x2fe5e8,_0x53b918);if(_0x2d17c7[_0x2db19b(0x1ac)](_0x2db19b(0x19e)))return console['log'](_0x310115),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x310115),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x2db19b(0x1c0));if(_0x2d17c7[_0x2db19b(0x1c6)])return writeCliSideChannelLine(_0x2db19b(0x191)+CLI_BIN_NAME+_0x2db19b(0x1d1)),{'ok':!![],'message':_0x2db19b(0x18e)};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0x39d853=new AbortController(),_0x44ee58=()=>{const _0x140334=_0x2db19b;_0x39d853[_0x140334(0x1ab)](),process[_0x140334(0x19f)](_0x140334(0x198),_0x44ee58);};process[_0x2db19b(0x1b9)](_0x2db19b(0x198),_0x44ee58);let _0x4d40e7;try{_0x4d40e7=await pollDeviceToken(_0x37a656,_0x2fe5e8,_0x39d853[_0x2db19b(0x1a1)]);}finally{process['removeListener'](_0x2db19b(0x198),_0x44ee58);}if(!ACCESS_KEY_PATTERN[_0x2db19b(0x18c)](_0x4d40e7))throw CliErrors[_0x2db19b(0x1ad)](_0x2db19b(0x18b));const _0x4b3908=readScopedConfig(_0x41b553);return _0x4b3908[_0x2db19b(0x1a8)]=_0x4d40e7,writeScopedConfig(_0x4b3908,_0x41b553),deleteStoredDeviceCode(),process[_0x2db19b(0x19c)][_0x2db19b(0x1ce)]('\x0a'),writeCliSideChannelLine(_0x2db19b(0x18a)+_0x1d41f9+_0x2db19b(0x1b1)),writeCliSideChannelLine(_0x2db19b(0x1bd)+CLI_BIN_NAME+_0x2db19b(0x19a)),{'ok':!![],'message':_0x2db19b(0x1c4)};}};
|