@lovrabet/lovrabet-cli 2.2.3 → 2.2.4-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.d.ts +2 -0
- package/lib/commands/notification/config-list.js +1 -0
- package/lib/commands/notification/index.d.ts +2 -0
- package/lib/commands/notification/index.js +1 -0
- package/lib/commands/notification/shared.d.ts +13 -0
- package/lib/commands/notification/shared.js +1 -0
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.d.ts +2 -0
- package/lib/commands/permit/dataset-get.js +1 -0
- package/lib/commands/permit/dataset-set.d.ts +2 -0
- package/lib/commands/permit/dataset-set.js +1 -0
- package/lib/commands/permit/index.d.ts +2 -0
- package/lib/commands/permit/index.js +1 -0
- package/lib/commands/permit/page-get.d.ts +2 -0
- package/lib/commands/permit/page-get.js +1 -0
- package/lib/commands/permit/page-set.d.ts +2 -0
- package/lib/commands/permit/page-set.js +1 -0
- package/lib/commands/permit/role-menus-set.d.ts +2 -0
- package/lib/commands/permit/role-menus-set.js +1 -0
- package/lib/commands/permit/role-menus.d.ts +2 -0
- package/lib/commands/permit/role-menus.js +1 -0
- package/lib/commands/permit/shared.d.ts +52 -0
- package/lib/commands/permit/shared.js +1 -0
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.d.ts +2 -0
- package/lib/commands/role/create.js +1 -0
- package/lib/commands/role/delete.d.ts +2 -0
- package/lib/commands/role/delete.js +1 -0
- package/lib/commands/role/detail.d.ts +2 -0
- package/lib/commands/role/detail.js +1 -0
- package/lib/commands/role/index.d.ts +2 -0
- package/lib/commands/role/index.js +1 -0
- package/lib/commands/role/list.d.ts +2 -0
- package/lib/commands/role/list.js +1 -0
- package/lib/commands/role/shared.d.ts +33 -0
- package/lib/commands/role/shared.js +1 -0
- package/lib/commands/role/update.d.ts +2 -0
- package/lib/commands/role/update.js +1 -0
- package/lib/commands/role/user-add.d.ts +2 -0
- package/lib/commands/role/user-add.js +1 -0
- package/lib/commands/role/user-remove.d.ts +2 -0
- package/lib/commands/role/user-remove.js +1 -0
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +161 -0
- 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/types.d.ts +1 -0
- 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 +20 -7
- package/skills/lovrabet/guides/role-and-permission-workflow.md +139 -0
- package/skills/lovrabet/references/lovrabet-auth.md +1 -5
- package/skills/lovrabet/references/lovrabet-notification-config-list.md +81 -0
- package/skills/lovrabet/references/lovrabet-skill-authoring.md +5 -4
- package/skills/lovrabet.manifest.json +5 -3
package/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
(function(
|
|
2
|
+
(function(_0x1eac70,_0xcb4d52){const _0x237ee4=a0_0x2ddd,_0x3ae8f9=_0x1eac70();while(!![]){try{const _0x353f10=-parseInt(_0x237ee4(0x1e4))/0x1+parseInt(_0x237ee4(0x1d7))/0x2+parseInt(_0x237ee4(0x1cf))/0x3*(parseInt(_0x237ee4(0x1d6))/0x4)+-parseInt(_0x237ee4(0x1d5))/0x5*(parseInt(_0x237ee4(0x1c9))/0x6)+parseInt(_0x237ee4(0x1df))/0x7+parseInt(_0x237ee4(0x1e2))/0x8+-parseInt(_0x237ee4(0x1cc))/0x9;if(_0x353f10===_0xcb4d52)break;else _0x3ae8f9['push'](_0x3ae8f9['shift']());}catch(_0x33c5c9){_0x3ae8f9['push'](_0x3ae8f9['shift']());}}}(a0_0x88f0,0xb5a1b));import{jsx as a0_0x57b8cb}from'react/jsx-runtime';import a0_0x4383fd from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';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_0x4383fd(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});function a0_0x2ddd(_0x3f5030,_0x245c44){_0x3f5030=_0x3f5030-0x1c9;const _0x88f0=a0_0x88f0();let _0x2ddd52=_0x88f0[_0x3f5030];return _0x2ddd52;}void main()['catch'](handleError);async function main(){try{await run();}catch(_0x1293cb){handleError(_0x1293cb);}}function a0_0x88f0(){const _0x344f74=['1542068XJiLui','log','\x20->\x20--','flatMap','flags','exit','Error:\x20','definition','2424065NilECf','hint','stderr','10016544waKdsy','input','90105rJThBF','original','validation','Hint:\x20','exitCode','assign','message','ERR_USE_AFTER_CLOSE','388848ZLQsuB','defaultCommand','help','13715271qIiMDf','args','./framework/preparse.js','1052217FPsoYz','name','handler','error','code',':\x20--','55wigsGm','8TFrFKT'];a0_0x88f0=function(){return _0x344f74;};return a0_0x88f0();}async function run(){const _0x43f0c5=a0_0x2ddd;let _0x3e2508=cli[_0x43f0c5(0x1e3)][0x0],_0x55619a=cli['input'][0x1];const _0x3a71f5=cli[_0x43f0c5(0x1db)];try{const {correctFlags:_0x18981c}=await import(_0x43f0c5(0x1ce)),_0x9bb1ac=getAllDefinitions()[_0x43f0c5(0x1da)](_0x127041=>_0x127041['flags']??[]),{flags:_0x2d38ff,corrections:_0x42f97f}=_0x18981c(_0x3a71f5,_0x9bb1ac);if(_0x42f97f['length']>0x0){for(const _0x125212 of _0x42f97f){process[_0x43f0c5(0x1e1)]['write']('[preparse]\x20'+_0x125212[_0x43f0c5(0x1d1)]+_0x43f0c5(0x1d4)+_0x125212[_0x43f0c5(0x1e5)]+_0x43f0c5(0x1d9)+_0x125212['corrected']+'\x0a');}Object['assign'](_0x3a71f5,_0x2d38ff);}}catch{}if(!_0x3e2508){const {waitUntilExit:_0x81b280}=render(a0_0x57b8cb(Help,{}));await _0x81b280();return;}const _0xca87fa=resolveRemovedCommand(_0x3e2508,_0x55619a);if(_0xca87fa)throw CliErrors[_0x43f0c5(0x1e6)](_0xca87fa[_0x43f0c5(0x1ea)],_0xca87fa[_0x43f0c5(0x1e0)]);if(!isKnownService(_0x3e2508)){const _0x19990d=resolveDynamicServiceCommand(cli['input'],_0x3a71f5);if(_0x19990d){if(_0x3a71f5[_0x43f0c5(0x1cb)]){console[_0x43f0c5(0x1d8)](generateCommandHelp(_0x19990d[_0x43f0c5(0x1de)]));return;}Object[_0x43f0c5(0x1e9)](_0x3a71f5,_0x19990d['flags']);const _0x26aea6=buildConfigFromFlags(_0x3a71f5);await initGlobalEnvironment(_0x26aea6);const _0x2e3916=createPipelineEnv(_0x26aea6,_0x3a71f5);_0x2e3916[_0x43f0c5(0x1cd)]=_0x19990d['args'],await runCommand(_0x19990d[_0x43f0c5(0x1de)],_0x2e3916);return;}if(_0x3a71f5[_0x43f0c5(0x1cb)]){const _0x1ddd07=generateDynamicServiceHelp(_0x3e2508);if(_0x1ddd07){console['log'](_0x1ddd07);return;}}const {waitUntilExit:_0xbcd7bd}=render(a0_0x57b8cb(Help,{}));await _0xbcd7bd();return;}const _0x171947=getServiceEntry(_0x3e2508);if(!_0x55619a){if(_0x3a71f5['help']){console[_0x43f0c5(0x1d8)](generateServiceHelp(_0x3e2508));return;}if(_0x171947[_0x43f0c5(0x1ca)])_0x55619a=_0x171947['defaultCommand'];else{console[_0x43f0c5(0x1d8)](generateServiceHelp(_0x3e2508));return;}}const _0x42054a=findDefinition(_0x3e2508,_0x55619a);!_0x42054a&&(console[_0x43f0c5(0x1d8)](generateServiceHelp(_0x3e2508)),handleError(CliErrors['unknownCommand'](_0x3e2508+'\x20'+_0x55619a)));if(_0x3a71f5[_0x43f0c5(0x1cb)]){console[_0x43f0c5(0x1d8)](generateCommandHelp(_0x42054a));return;}const _0x3cda3a=buildConfigFromFlags(_0x3a71f5);await initGlobalEnvironment(_0x3cda3a);const _0x2d1ab4=createPipelineEnv(_0x3cda3a,_0x3a71f5);_0x2d1ab4[_0x43f0c5(0x1cd)]=cli[_0x43f0c5(0x1e3)]['slice'](0x2),await runCommand(_0x42054a,_0x2d1ab4);}function handleError(_0x442507){const _0x56a2c5=a0_0x2ddd;if(_0x442507 instanceof CliError){_0x442507[_0x56a2c5(0x1d3)]==='cancelled'&&(process['stderr']['write']('\x0aCancelled.\x0a'),process[_0x56a2c5(0x1dc)](0x0));console['error'](_0x56a2c5(0x1dd)+_0x442507['message']);if(_0x442507[_0x56a2c5(0x1e0)])console['error'](_0x56a2c5(0x1e7)+_0x442507['hint']);process['exit'](_0x442507[_0x56a2c5(0x1e8)]);}isUserCancellation(_0x442507)&&(process[_0x56a2c5(0x1e1)]['write']('\x0aCancelled.\x0a'),process[_0x56a2c5(0x1dc)](0x0)),console[_0x56a2c5(0x1d2)]('Unexpected\x20error:',_0x442507),process[_0x56a2c5(0x1dc)](0x1);}function isUserCancellation(_0x4d084c){const _0x356de2=a0_0x2ddd;if(!(_0x4d084c instanceof Error))return![];if(_0x4d084c[_0x356de2(0x1d0)]==='ExitPromptError')return!![];if(_0x4d084c['code']===_0x356de2(0x1eb))return!![];if(_0x4d084c[_0x356de2(0x1d3)]==='ERR_STREAM_DESTROYED')return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0xac7a4b=a1_0x2206;function a1_0x37e1(){const _0x5de62c=['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','15612296DsZAZg','dataset_data_aggregate','1828720MbREXz','bf_detail','tableData\x20contains\x20dataset\x20id/code/name','Filter\x20dataset\x20data','查询单条数据','detail','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','dataset','按应用和函数名精确获取\x20BF\x20运行契约','str','Get\x20BF\x20endpoint\x20function\x20contract','paging.totalCount\x20gives\x20total\x20rows','2191737zOOrnU','operations\x20describes\x20runtime\x20APIs','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','/api/{appCode}/{datasetCode}/filter','toLowerCase','619280HRMpie','paging\x20contains\x20pagination','summary','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','tableData\x20contains\x20records','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','custom_sql_execute','Execute\x20custom\x20SQL','map','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','bf_execute','API\x20doc\x20code\x20not\x20found:\x20','where\x20filters\x20before\x20aggregation','Current\x20app\x20code','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','Returns\x20one\x20matching\x20business\x20record','32-character\x20dataset\x20code','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','method','GET','dataset_data_filter','条件过滤查询数据','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','code','7zDVxBa','None','聚合查询数据集数据','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','title','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','Returns\x20SQL\x20execution\x20payload','Aggregate\x20dataset\x20data','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','{\x22id\x22:123}','api-doc','category','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','custom_sql','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','Exact\x20endpoint\x20function\x20name','string','keyword','6048738EZOUgX','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/dataset/getOneByCode?code={datasetCode}','Get\x20one\x20dataset\x20record','Returns\x20script\x20business\x20payload','创建数据','fields/properties\x20describe\x20data\x20shape','trim','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','Create\x20dataset\x20record','whenToUse','执行自定义\x20SQL','/api/endpoint/{appCode}/{functionName}','includes','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','{\x22fieldName\x22:\x22value\x22}','/api/{appCode}/{datasetCode}/getOne','/api/dataset/get-dataset-list-by-app-code','1305948fnPKDb','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','filter','Execute\x20BF\x20endpoint\x20function','57884mfAvgl','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','##\x20Aggregate\x20dataset\x20data','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','read','/api/{appCode}/{datasetCode}/create','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','appCode','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','需要向指定数据集新增一条业务数据时使用','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','functionName','##\x20List\x20datasets','join','datasetCode','length','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','POST','path','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','dataset_detail','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','##\x20Filter\x20dataset\x20data'];a1_0x37e1=function(){return _0x5de62c;};return a1_0x37e1();}(function(_0x23ff97,_0xd83473){const _0x47ffc0=a1_0x2206,_0x3db83d=_0x23ff97();while(!![]){try{const _0x38ec0b=parseInt(_0x47ffc0(0x11a))/0x1+-parseInt(_0x47ffc0(0x15c))/0x2+-parseInt(_0x47ffc0(0x113))/0x3+-parseInt(_0x47ffc0(0x161))/0x4+parseInt(_0x47ffc0(0x107))/0x5+-parseInt(_0x47ffc0(0x149))/0x6+-parseInt(_0x47ffc0(0x134))/0x7*(-parseInt(_0x47ffc0(0x105))/0x8);if(_0x38ec0b===_0xd83473)break;else _0x3db83d['push'](_0x3db83d['shift']());}catch(_0x3a7a89){_0x3db83d['push'](_0x3db83d['shift']());}}}(a1_0x37e1,0x817ee));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0xac7a4b(0x142),'type':a1_0xac7a4b(0x147),'description':a1_0xac7a4b(0x10d)},KEYWORD_FLAG={'name':'keyword','type':'string','description':a1_0xac7a4b(0x167)},DOC_CODE_FLAG={'name':a1_0xac7a4b(0x133),'type':a1_0xac7a4b(0x147),'required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':'dataset_list','category':a1_0xac7a4b(0x10e),'title':'List\x20datasets','method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x15b),'summary':'分页获取数据集列表','whenToUse':a1_0xac7a4b(0x115),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':[a1_0xac7a4b(0x109),a1_0xac7a4b(0x112)],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':[a1_0xac7a4b(0x16c)],'markdown':[a1_0xac7a4b(0x16e),'',a1_0xac7a4b(0x102)]['join']('\x0a')},{'code':a1_0xac7a4b(0x101),'category':a1_0xac7a4b(0x10e),'title':'Dataset\x20detail','method':'GET','path':a1_0xac7a4b(0x14b),'summary':'获取数据集详情','whenToUse':a1_0xac7a4b(0x12c),'pathParams':[],'queryParams':[{'name':a1_0xac7a4b(0x133),'description':a1_0xac7a4b(0x12b)}],'bodySchema':a1_0xac7a4b(0x135),'responseHighlights':[a1_0xac7a4b(0x14f),a1_0xac7a4b(0x145),a1_0xac7a4b(0x114)],'examples':[a1_0xac7a4b(0x151)],'notes':[a1_0xac7a4b(0x11d)],'markdown':['##\x20Dataset\x20detail','',a1_0xac7a4b(0xfc)][a1_0xac7a4b(0x16f)]('\x0a')},{'code':a1_0xac7a4b(0x130),'category':a1_0xac7a4b(0x10e),'title':a1_0xac7a4b(0x10a),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x118),'summary':a1_0xac7a4b(0x131),'whenToUse':a1_0xac7a4b(0xff),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':'Current\x20app\x20code'},{'name':'datasetCode','description':a1_0xac7a4b(0x12b)}],'queryParams':[],'bodySchema':a1_0xac7a4b(0x124),'responseHighlights':[a1_0xac7a4b(0x11e),a1_0xac7a4b(0x11b)],'examples':[a1_0xac7a4b(0x14a),'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.',a1_0xac7a4b(0x15d),a1_0xac7a4b(0x12d),a1_0xac7a4b(0x143)],'markdown':[a1_0xac7a4b(0x103),'',a1_0xac7a4b(0x132)][a1_0xac7a4b(0x16f)]('\x0a')},{'code':a1_0xac7a4b(0x106),'category':'dataset','title':a1_0xac7a4b(0x13d),'method':a1_0xac7a4b(0xfd),'path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0xac7a4b(0x136),'whenToUse':a1_0xac7a4b(0x13e),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':'Current\x20app\x20code'},{'name':a1_0xac7a4b(0x170),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':['result\x20rows\x20contain\x20aggregate\x20aliases',a1_0xac7a4b(0x127)],'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_0xac7a4b(0x162),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0xac7a4b(0x163),'',a1_0xac7a4b(0x164)][a1_0xac7a4b(0x16f)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0xac7a4b(0x10e),'title':a1_0xac7a4b(0x14c),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x15a),'summary':a1_0xac7a4b(0x10b),'whenToUse':'已经知道记录\x20id,需要按数据集读取单条业务数据时使用','pathParams':[{'name':'appCode','description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x170),'description':a1_0xac7a4b(0x12b)}],'queryParams':[],'bodySchema':a1_0xac7a4b(0x140),'responseHighlights':[a1_0xac7a4b(0x12a)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':[a1_0xac7a4b(0x138)],'markdown':a1_0xac7a4b(0x15e)},{'code':'dataset_data_create','category':a1_0xac7a4b(0x10e),'title':a1_0xac7a4b(0x152),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x166),'summary':a1_0xac7a4b(0x14e),'whenToUse':a1_0xac7a4b(0x16b),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x170),'description':a1_0xac7a4b(0x12b)}],'queryParams':[],'bodySchema':a1_0xac7a4b(0x159),'responseHighlights':[a1_0xac7a4b(0x116)],'examples':[a1_0xac7a4b(0x13b)],'notes':[a1_0xac7a4b(0x157)],'markdown':a1_0xac7a4b(0x117)},{'code':a1_0xac7a4b(0x108),'category':'bf','title':a1_0xac7a4b(0x111),'method':a1_0xac7a4b(0x12f),'path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0xac7a4b(0x10f),'whenToUse':a1_0xac7a4b(0x120),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x16d),'description':a1_0xac7a4b(0x146)}],'queryParams':[],'bodySchema':'None','responseHighlights':[a1_0xac7a4b(0x137)],'examples':[a1_0xac7a4b(0x13a)],'notes':[a1_0xac7a4b(0x104)],'markdown':a1_0xac7a4b(0x168)},{'code':a1_0xac7a4b(0x125),'category':'bf','title':a1_0xac7a4b(0x160),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x155),'summary':'执行指定\x20BF\x20函数','whenToUse':'已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','pathParams':[{'name':a1_0xac7a4b(0x169),'description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x16d),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0xac7a4b(0x14d)],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0xac7a4b(0x100)],'markdown':a1_0xac7a4b(0x11f)},{'code':a1_0xac7a4b(0x121),'category':a1_0xac7a4b(0x144),'title':a1_0xac7a4b(0x122),'method':a1_0xac7a4b(0xfd),'path':'/api/custom/executeSql','summary':a1_0xac7a4b(0x154),'whenToUse':a1_0xac7a4b(0x16a),'pathParams':[],'queryParams':[],'bodySchema':a1_0xac7a4b(0x158),'responseHighlights':[a1_0xac7a4b(0x13c)],'examples':[a1_0xac7a4b(0x13f)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0xac7a4b(0x129)}];function entrySummary(_0xe7fb3f){const _0x591841=a1_0xac7a4b;return{'code':_0xe7fb3f['code'],'category':_0xe7fb3f['category'],'method':_0xe7fb3f[_0x591841(0x12e)],'path':_0xe7fb3f[_0x591841(0xfe)],'summary':_0xe7fb3f[_0x591841(0x11c)],'whenToUse':_0xe7fb3f[_0x591841(0x153)]};}export function listApiDocEntries(_0x1ea081={}){const _0x2741fd=a1_0xac7a4b,_0x3f935b=String(_0x1ea081[_0x2741fd(0x142)]||'')[_0x2741fd(0x150)](),_0x2863f0=String(_0x1ea081[_0x2741fd(0x148)]||'')['trim']()['toLowerCase']();return DOCS[_0x2741fd(0x15f)](_0x12f2a1=>{const _0x13d0a8=_0x2741fd;if(_0x3f935b&&_0x12f2a1[_0x13d0a8(0x142)]!==_0x3f935b)return![];if(!_0x2863f0)return!![];return[_0x12f2a1[_0x13d0a8(0x133)],_0x12f2a1[_0x13d0a8(0x142)],_0x12f2a1[_0x13d0a8(0x12e)],_0x12f2a1[_0x13d0a8(0xfe)],_0x12f2a1[_0x13d0a8(0x11c)],_0x12f2a1[_0x13d0a8(0x153)],_0x12f2a1[_0x13d0a8(0x139)]][_0x13d0a8(0x16f)]('\x20')[_0x13d0a8(0x119)]()[_0x13d0a8(0x156)](_0x2863f0);})[_0x2741fd(0x123)](entrySummary);}export function getApiDocDetail(_0xed4f9b){const _0x527a69=a1_0xac7a4b,_0x35c5f5=DOCS['find'](_0x2b8ff9=>_0x2b8ff9[_0x527a69(0x133)]===_0xed4f9b);if(!_0x35c5f5)throw CliErrors['validation'](_0x527a69(0x126)+_0xed4f9b);return{..._0x35c5f5};}function a1_0x2206(_0xc2b52a,_0x272c76){_0xc2b52a=_0xc2b52a-0xfb;const _0x37e162=a1_0x37e1();let _0x22063a=_0x37e162[_0xc2b52a];return _0x22063a;}const apiDocList={'service':a1_0xac7a4b(0x141),'command':'list','description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x507c54){const _0xd0d3b7=a1_0xac7a4b,_0x1c0104=listApiDocEntries({'category':_0x507c54[_0xd0d3b7(0x110)](_0xd0d3b7(0x142)),'keyword':_0x507c54['str']('keyword')});return{'ok':!![],'data':{'total':_0x1c0104[_0xd0d3b7(0xfb)],'items':_0x1c0104}};}},apiDocDetail={'service':'api-doc','command':a1_0xac7a4b(0x10c),'description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0xac7a4b(0x165),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x447f9a){const _0x1bde05=a1_0xac7a4b;return{'ok':!![],'data':getApiDocDetail(_0x447f9a[_0x1bde05(0x110)](_0x1bde05(0x133)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
const a1_0x145fa5=a1_0x1de0;(function(_0x1cffa6,_0x2675c9){const _0x39573b=a1_0x1de0,_0x524167=_0x1cffa6();while(!![]){try{const _0x284a70=parseInt(_0x39573b(0xeb))/0x1+parseInt(_0x39573b(0x14b))/0x2+-parseInt(_0x39573b(0x13c))/0x3*(parseInt(_0x39573b(0xfe))/0x4)+-parseInt(_0x39573b(0x10e))/0x5+parseInt(_0x39573b(0xe3))/0x6*(parseInt(_0x39573b(0x133))/0x7)+-parseInt(_0x39573b(0x13d))/0x8+parseInt(_0x39573b(0x134))/0x9*(parseInt(_0x39573b(0x118))/0xa);if(_0x284a70===_0x2675c9)break;else _0x524167['push'](_0x524167['shift']());}catch(_0x311b6c){_0x524167['push'](_0x524167['shift']());}}}(a1_0x51d5,0x5f3b1));function a1_0x1de0(_0x1c40d2,_0x22e76e){_0x1c40d2=_0x1c40d2-0xe0;const _0x51d53f=a1_0x51d5();let _0x1de097=_0x51d53f[_0x1c40d2];return _0x1de097;}import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x145fa5(0x106),'type':a1_0x145fa5(0xf7),'description':a1_0x145fa5(0x149)},KEYWORD_FLAG={'name':a1_0x145fa5(0xf9),'type':a1_0x145fa5(0xf7),'description':a1_0x145fa5(0x111)},DOC_CODE_FLAG={'name':'code','type':a1_0x145fa5(0xf7),'required':!![],'description':a1_0x145fa5(0x12e)},DOCS=[{'code':'dataset_list','category':a1_0x145fa5(0x11a),'title':a1_0x145fa5(0x124),'method':a1_0x145fa5(0xf0),'path':'/api/dataset/get-dataset-list-by-app-code','summary':'分页获取数据集列表','whenToUse':a1_0x145fa5(0xe5),'pathParams':[],'queryParams':[],'bodySchema':a1_0x145fa5(0x117),'responseHighlights':[a1_0x145fa5(0x156),a1_0x145fa5(0x11b)],'examples':[a1_0x145fa5(0x138)],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x145fa5(0xee),'',a1_0x145fa5(0xe7)][a1_0x145fa5(0x119)]('\x0a')},{'code':'dataset_detail','category':a1_0x145fa5(0x11a),'title':a1_0x145fa5(0x143),'method':a1_0x145fa5(0x121),'path':a1_0x145fa5(0xe1),'summary':a1_0x145fa5(0x103),'whenToUse':a1_0x145fa5(0x140),'pathParams':[],'queryParams':[{'name':a1_0x145fa5(0x122),'description':a1_0x145fa5(0x15a)}],'bodySchema':a1_0x145fa5(0x147),'responseHighlights':[a1_0x145fa5(0x144),a1_0x145fa5(0x112),a1_0x145fa5(0x11d)],'examples':[a1_0x145fa5(0x13e)],'notes':['If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.'],'markdown':[a1_0x145fa5(0x154),'',a1_0x145fa5(0x11c)][a1_0x145fa5(0x119)]('\x0a')},{'code':a1_0x145fa5(0xf6),'category':a1_0x145fa5(0x11a),'title':a1_0x145fa5(0x131),'method':a1_0x145fa5(0xf0),'path':'/api/{appCode}/{datasetCode}/filter','summary':a1_0x145fa5(0xe6),'whenToUse':a1_0x145fa5(0x10b),'pathParams':[{'name':'appCode','description':a1_0x145fa5(0x132)},{'name':a1_0x145fa5(0x152),'description':a1_0x145fa5(0x15a)}],'queryParams':[],'bodySchema':a1_0x145fa5(0x145),'responseHighlights':[a1_0x145fa5(0xe4),'paging\x20contains\x20pagination'],'examples':[a1_0x145fa5(0x155),a1_0x145fa5(0xfd)],'notes':[a1_0x145fa5(0x12f),a1_0x145fa5(0x11e),a1_0x145fa5(0x110),'Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':[a1_0x145fa5(0xf2),'',a1_0x145fa5(0x128)][a1_0x145fa5(0x119)]('\x0a')},{'code':a1_0x145fa5(0xf3),'category':a1_0x145fa5(0x11a),'title':a1_0x145fa5(0x146),'method':'POST','path':a1_0x145fa5(0x148),'summary':'聚合查询数据集数据','whenToUse':a1_0x145fa5(0x108),'pathParams':[{'name':a1_0x145fa5(0x14e),'description':a1_0x145fa5(0x132)},{'name':'datasetCode','description':a1_0x145fa5(0x15a)}],'queryParams':[],'bodySchema':a1_0x145fa5(0x10f),'responseHighlights':[a1_0x145fa5(0xe2),a1_0x145fa5(0x150)],'examples':[a1_0x145fa5(0xef)],'notes':[a1_0x145fa5(0x14d),a1_0x145fa5(0x105)],'markdown':[a1_0x145fa5(0x129),'',a1_0x145fa5(0x130)][a1_0x145fa5(0x119)]('\x0a')},{'code':a1_0x145fa5(0x10c),'category':a1_0x145fa5(0x11a),'title':a1_0x145fa5(0x157),'method':a1_0x145fa5(0xf0),'path':a1_0x145fa5(0x10a),'summary':a1_0x145fa5(0x113),'whenToUse':a1_0x145fa5(0x12c),'pathParams':[{'name':a1_0x145fa5(0x14e),'description':a1_0x145fa5(0x132)},{'name':a1_0x145fa5(0x152),'description':a1_0x145fa5(0x15a)}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':['Returns\x20one\x20matching\x20business\x20record'],'examples':[a1_0x145fa5(0xe0)],'notes':[a1_0x145fa5(0x15b)],'markdown':'##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.'},{'code':a1_0x145fa5(0x102),'category':a1_0x145fa5(0x11a),'title':a1_0x145fa5(0xe9),'method':a1_0x145fa5(0xf0),'path':a1_0x145fa5(0x14c),'summary':a1_0x145fa5(0xfc),'whenToUse':a1_0x145fa5(0x12b),'pathParams':[{'name':a1_0x145fa5(0x14e),'description':'Current\x20app\x20code'},{'name':a1_0x145fa5(0x152),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x145fa5(0x136),'responseHighlights':[a1_0x145fa5(0xec)],'examples':[a1_0x145fa5(0x114)],'notes':['This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.'],'markdown':a1_0x145fa5(0x101)},{'code':a1_0x145fa5(0xea),'category':'bf','title':a1_0x145fa5(0x116),'method':a1_0x145fa5(0x121),'path':a1_0x145fa5(0xff),'summary':a1_0x145fa5(0x14f),'whenToUse':a1_0x145fa5(0xed),'pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':a1_0x145fa5(0x100),'description':a1_0x145fa5(0x11f)}],'queryParams':[],'bodySchema':'None','responseHighlights':['CLI\x20returns\x20appCode/functionName/description/version/gmtModified'],'examples':[a1_0x145fa5(0x120)],'notes':[a1_0x145fa5(0xf5)],'markdown':a1_0x145fa5(0x104)},{'code':a1_0x145fa5(0x14a),'category':'bf','title':'Execute\x20BF\x20endpoint\x20function','method':a1_0x145fa5(0xf0),'path':a1_0x145fa5(0xe8),'summary':a1_0x145fa5(0x151),'whenToUse':a1_0x145fa5(0x13b),'pathParams':[{'name':'appCode','description':a1_0x145fa5(0x132)},{'name':a1_0x145fa5(0x100),'description':a1_0x145fa5(0x12d)}],'queryParams':[],'bodySchema':a1_0x145fa5(0x137),'responseHighlights':['Returns\x20script\x20business\x20payload'],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x145fa5(0xfa)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':a1_0x145fa5(0x139),'category':a1_0x145fa5(0x109),'title':a1_0x145fa5(0xf4),'method':a1_0x145fa5(0xf0),'path':'/api/custom/executeSql','summary':a1_0x145fa5(0xf1),'whenToUse':a1_0x145fa5(0x127),'pathParams':[],'queryParams':[],'bodySchema':a1_0x145fa5(0x123),'responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':['lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27'],'notes':[a1_0x145fa5(0x159)],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x4e2898){const _0x4da2b2=a1_0x145fa5;return{'code':_0x4e2898[_0x4da2b2(0x122)],'category':_0x4e2898['category'],'method':_0x4e2898[_0x4da2b2(0x153)],'path':_0x4e2898[_0x4da2b2(0x126)],'summary':_0x4e2898[_0x4da2b2(0x141)],'whenToUse':_0x4e2898[_0x4da2b2(0x135)]};}export function listApiDocEntries(_0x523941={}){const _0x129c4e=a1_0x145fa5,_0x33dabf=String(_0x523941[_0x129c4e(0x106)]||'')[_0x129c4e(0x10d)](),_0x3585a6=String(_0x523941['keyword']||'')[_0x129c4e(0x10d)]()[_0x129c4e(0x125)]();return DOCS[_0x129c4e(0x13a)](_0x412f26=>{const _0x4600b7=_0x129c4e;if(_0x33dabf&&_0x412f26[_0x4600b7(0x106)]!==_0x33dabf)return![];if(!_0x3585a6)return!![];return[_0x412f26[_0x4600b7(0x122)],_0x412f26[_0x4600b7(0x106)],_0x412f26[_0x4600b7(0x153)],_0x412f26[_0x4600b7(0x126)],_0x412f26[_0x4600b7(0x141)],_0x412f26[_0x4600b7(0x135)],_0x412f26['title']][_0x4600b7(0x119)]('\x20')['toLowerCase']()['includes'](_0x3585a6);})[_0x129c4e(0xf8)](entrySummary);}export function getApiDocDetail(_0x4cc630){const _0x396985=a1_0x145fa5,_0xe003a3=DOCS[_0x396985(0xfb)](_0x44c970=>_0x44c970[_0x396985(0x122)]===_0x4cc630);if(!_0xe003a3)throw CliErrors['validation'](_0x396985(0x13f)+_0x4cc630);return{..._0xe003a3};}const apiDocList={'service':a1_0x145fa5(0x115),'command':a1_0x145fa5(0x107),'description':a1_0x145fa5(0x12a),'risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x2ecea4){const _0x969fbc=a1_0x145fa5,_0x4cc72b=listApiDocEntries({'category':_0x2ecea4[_0x969fbc(0x142)](_0x969fbc(0x106)),'keyword':_0x2ecea4[_0x969fbc(0x142)]('keyword')});return{'ok':!![],'data':{'total':_0x4cc72b[_0x969fbc(0x158)],'items':_0x4cc72b}};}},apiDocDetail={'service':a1_0x145fa5(0x115),'command':'detail','description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':'read','requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x20d908){const _0x421bae=a1_0x145fa5;return{'ok':!![],'data':getApiDocDetail(_0x20d908[_0x421bae(0x142)](_0x421bae(0x122)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];function a1_0x51d5(){const _0x3cc8ca=['Create\x20dataset\x20record','bf_detail','644171QieVix','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','##\x20List\x20datasets','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','POST','执行自定义\x20SQL','##\x20Filter\x20dataset\x20data','dataset_data_aggregate','Execute\x20custom\x20SQL','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','dataset_data_filter','string','map','keyword','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','find','创建数据','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','140vmVrtj','/client/bff/endpoint/{appCode}/{functionName}','functionName','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','dataset_data_create','获取数据集详情','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','category','list','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','custom_sql','/api/{appCode}/{datasetCode}/getOne','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','dataset_data_get_one','trim','1282700eHUrTV','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','查询单条数据','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','api-doc','Get\x20BF\x20endpoint\x20function\x20contract','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','291730LCXItX','join','dataset','paging.totalCount\x20gives\x20total\x20rows','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','operations\x20describes\x20runtime\x20APIs','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','Exact\x20endpoint\x20function\x20name','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','GET','code','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','List\x20datasets','toLowerCase','path','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','##\x20Aggregate\x20dataset\x20data','List\x20available\x20runtime\x20API\x20documentation\x20entries','需要向指定数据集新增一条业务数据时使用','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','Endpoint\x20function\x20name','API\x20doc\x20code,\x20for\x20example\x20dataset_list','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.','Filter\x20dataset\x20data','Current\x20app\x20code','84rPSDpY','171WIcEZx','whenToUse','{\x22fieldName\x22:\x22value\x22}','{\x22param\x22:\x22value\x22}','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','custom_sql_execute','filter','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','63471FqGyKO','3381552lfSKjW','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','API\x20doc\x20code\x20not\x20found:\x20','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','summary','str','Dataset\x20detail','fields/properties\x20describe\x20data\x20shape','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','Aggregate\x20dataset\x20data','None','/api/{appCode}/{datasetCode}/aggregate','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','bf_execute','1079464fbBkBu','/api/{appCode}/{datasetCode}/create','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','appCode','按应用和函数名精确获取\x20BF\x20运行契约','where\x20filters\x20before\x20aggregation','执行指定\x20BF\x20函数','datasetCode','method','##\x20Dataset\x20detail','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','tableData\x20contains\x20dataset\x20id/code/name','Get\x20one\x20dataset\x20record','length','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','32-character\x20dataset\x20code','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','/api/dataset/getOneByCode?code={datasetCode}','result\x20rows\x20contain\x20aggregate\x20aliases','35802Vkcpnt','tableData\x20contains\x20records','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','条件过滤查询数据','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','/api/endpoint/{appCode}/{functionName}'];a1_0x51d5=function(){return _0x3cc8ca;};return a1_0x51d5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x942d3,_0x32fcfc){const _0x3f2bfe=a2_0x1567,_0x5f4679=_0x942d3();while(!![]){try{const _0x1579c5=-parseInt(_0x3f2bfe(0x6e))/0x1+-parseInt(_0x3f2bfe(0x77))/0x2*(-parseInt(_0x3f2bfe(0x80))/0x3)+-parseInt(_0x3f2bfe(0x72))/0x4+parseInt(_0x3f2bfe(0x70))/0x5+-parseInt(_0x3f2bfe(0x71))/0x6+parseInt(_0x3f2bfe(0x86))/0x7+-parseInt(_0x3f2bfe(0x82))/0x8*(-parseInt(_0x3f2bfe(0x79))/0x9);if(_0x1579c5===_0x32fcfc)break;else _0x5f4679['push'](_0x5f4679['shift']());}catch(_0x32ccee){_0x5f4679['push'](_0x5f4679['shift']());}}}(a2_0x5a9d,0x76388));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a2_0x1567(_0x5f554a,_0x3fa3c7){_0x5f554a=_0x5f554a-0x6d;const _0x5a9d40=a2_0x5a9d();let _0x1567d4=_0x5a9d40[_0x5f554a];return _0x1567d4;}import{PRODUCT_CONFIG}from'../../constant/product.js';function a2_0x5a9d(){const _0x302995=['stringify','hex','5302738WDcyho','find','appCode','440899btsLpk','my-apps.json','4538905RqHrEi','4421748xybwMo','3217592sdzeEH','cache','EACCES','unknown','update','1505494zCZOMp','utf8','87165rpNFbu','code','parse','trim','items','homeDirName','ak_','3rVcSkM','slice','40KkvXoS','EPERM'];a2_0x5a9d=function(){return _0x302995;};return a2_0x5a9d();}import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x3dbc8b){const _0xf18285=a2_0x1567,_0x826e05=_0x3dbc8b['trim'](),_0x269a9d=_0x826e05[_0xf18285(0x81)](-0x6)||_0xf18285(0x75),_0x4b7982=createHash('sha256')[_0xf18285(0x76)](_0x826e05)['digest'](_0xf18285(0x85))[_0xf18285(0x81)](0x0,0xc);return _0xf18285(0x7f)+_0x269a9d+'_'+_0x4b7982;}export function getAppCacheFilePath(_0x5dd679,_0x430710){const _0x5ee7d6=a2_0x1567;return resolve(homedir(),PRODUCT_CONFIG[_0x5ee7d6(0x7e)],_0x5ee7d6(0x73),_0x5dd679,fingerprintAccessKey(_0x430710),_0x5ee7d6(0x6f));}export function readCachedAppList(_0x3ea449,_0x1aa8bc){const _0x59e35c=a2_0x1567;if(!_0x1aa8bc?.[_0x59e35c(0x7c)]())return null;const _0x1de7ef=getAppCacheFilePath(_0x3ea449,_0x1aa8bc);if(!existsSync(_0x1de7ef))return null;try{const _0x2bf451=readFileSync(_0x1de7ef,_0x59e35c(0x78));if(!_0x2bf451[_0x59e35c(0x7c)]())return null;const _0x31757a=JSON[_0x59e35c(0x7b)](_0x2bf451);if(!Array['isArray'](_0x31757a[_0x59e35c(0x7d)]))return null;return _0x31757a;}catch{return null;}}export function writeCachedAppList(_0x50f826,_0x2c52f6,_0xec604c){const _0xd91220=a2_0x1567,_0x1133bf=getAppCacheFilePath(_0x50f826,_0x2c52f6),_0x3ac673=dirname(_0x1133bf);!existsSync(_0x3ac673)&&mkdirSync(_0x3ac673,{'recursive':!![]});const _0x1a998b=_0x1133bf+'.tmp';try{writeFileSync(_0x1a998b,JSON[_0xd91220(0x84)](_0xec604c,null,0x2)+'\x0a',{'encoding':_0xd91220(0x78),'mode':0x180});try{renameSync(_0x1a998b,_0x1133bf);}catch(_0x5b63fd){if(_0x5b63fd['code']===_0xd91220(0x83)||_0x5b63fd[_0xd91220(0x7a)]==='EXDEV'||_0x5b63fd['code']===_0xd91220(0x74)){writeFileSync(_0x1133bf,JSON[_0xd91220(0x84)](_0xec604c,null,0x2)+'\x0a',{'encoding':'utf8'});try{unlinkSync(_0x1a998b);}catch{}}else throw _0x5b63fd;}}catch(_0x40367b){try{unlinkSync(_0x1a998b);}catch{}throw _0x40367b;}return _0x1133bf;}export function resolveCachedAppCode(_0x572681,_0x5ef8e0,_0x1aa79f){const _0x1aec7c=a2_0x1567;if(!_0x572681)return undefined;const _0x34a337=readCachedAppList(_0x5ef8e0,_0x1aa79f),_0x35b6f9=_0x34a337?.[_0x1aec7c(0x7d)][_0x1aec7c(0x87)](_0x21231a=>_0x21231a['appName']===_0x572681&&isRuntimeAccessibleApp(_0x21231a));return _0x35b6f9?.[_0x1aec7c(0x6d)]?.['trim']()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x5ab342=a3_0x180f;(function(_0x425178,_0x215893){const _0x4195db=a3_0x180f,_0x52f2e9=_0x425178();while(!![]){try{const _0x49ad08=-parseInt(_0x4195db(0x1cc))/0x1+parseInt(_0x4195db(0x1c3))/0x2*(-parseInt(_0x4195db(0x1c7))/0x3)+-parseInt(_0x4195db(0x1e4))/0x4*(-parseInt(_0x4195db(0x1ca))/0x5)+parseInt(_0x4195db(0x1e7))/0x6*(-parseInt(_0x4195db(0x1c2))/0x7)+-parseInt(_0x4195db(0x1cf))/0x8+-parseInt(_0x4195db(0x1e1))/0x9*(-parseInt(_0x4195db(0x1c1))/0xa)+parseInt(_0x4195db(0x1c6))/0xb;if(_0x49ad08===_0x215893)break;else _0x52f2e9['push'](_0x52f2e9['shift']());}catch(_0x496545){_0x52f2e9['push'](_0x52f2e9['shift']());}}}(a3_0x21b0,0xc1a91));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';function a3_0x180f(_0x344c95,_0x2d8043){_0x344c95=_0x344c95-0x1b1;const _0x21b0fc=a3_0x21b0();let _0x180fd5=_0x21b0fc[_0x344c95];return _0x180fd5;}import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x51b5d8,_0x4d20db){const _0x56c643=a3_0x180f,_0x2c651e={};for(const _0x151cb4 of _0x4d20db){const _0x9a1208=_0x151cb4['type']==='boolean'?_0x51b5d8[_0x56c643(0x1d0)](_0x151cb4[_0x56c643(0x1bb)]):_0x51b5d8[_0x56c643(0x1df)](_0x151cb4['name']);if(_0x9a1208!==''&&_0x9a1208!==![])_0x2c651e[_0x151cb4[_0x56c643(0x1bb)]]=_0x9a1208;}if(_0x51b5d8[_0x56c643(0x1ce)])_0x2c651e['nonInteractive']=!![];return _0x2c651e;}function normalizeLanguages(_0x38de05){const _0x562b63=a3_0x180f;if(!Array[_0x562b63(0x1c9)](_0x38de05))return[];return _0x38de05[_0x562b63(0x1ef)](_0x2b4012=>typeof _0x2b4012===_0x562b63(0x1b8))['map'](_0x2528f8=>_0x2528f8['trim']())[_0x562b63(0x1ef)](Boolean);}function a3_0x21b0(){const _0x4dc1d2=['../../commands/app/remote-source.js','app','remote','local','Filter\x20by\x20environment\x20(default:\x20current\x20env)','filter','appcode','No\x20apps\x20found\x20on\x20the\x20platform.','boolean','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','cache','langs','enableI18n','string','Read\x20from\x20local\x20cache\x20only','include-unpublished','name','env','isCurrent','../../context.js','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','No\x20cached\x20apps\x20found.','10IFWZWh','7bCbUlu','2QIjrTU','find','fetchedAt','12250370BApCEb','161418qBOtwe','从平台刷新本地应用缓存','isArray','10CYDhKy','envName','1046632emQSZa','projectPath','nonInteractive','8849432lrtwiT','bool','Loaded\x20','production','config','Read\x20app\x20list\x20from\x20local\x20cache\x20only','push','source','mergedCli','list','items','map','appPublishStatus','length','appOwnerName','i18nInfo','str','cachePath','6315588qXFNUk','write','Refreshed\x20app\x20cache\x20with\x20','2961828iPOIUO','no-cache','import','1778796ElxqFB','accessKey','\x20app(s)\x20for\x20env=\x22'];a3_0x21b0=function(){return _0x4dc1d2;};return a3_0x21b0();}function buildRemoteAppI18nFields(_0x52ad5a){const _0x22ab76=a3_0x180f,_0x5a732=normalizeLanguages(_0x52ad5a['i18nInfo']?.[_0x22ab76(0x1b6)]);return{'enableI18n':typeof _0x52ad5a['enableI18n']===_0x22ab76(0x1b3)?_0x52ad5a[_0x22ab76(0x1b7)]:null,'languages':_0x5a732,'i18nInfo':_0x52ad5a[_0x22ab76(0x1de)]?{..._0x52ad5a['i18nInfo'],'langs':_0x5a732[_0x22ab76(0x1dc)]?_0x5a732:null}:null};}const listDef={'service':a3_0x5ab342(0x1eb),'command':a3_0x5ab342(0x1d8),'description':'List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','risk':'read','requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x5ab342(0x1bc),'type':a3_0x5ab342(0x1b8),'description':a3_0x5ab342(0x1ee),'enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0x5ab342(0x1b3),'description':a3_0x5ab342(0x1d4),'default':![]},{'name':a3_0x5ab342(0x1e5),'type':'boolean','description':a3_0x5ab342(0x1bf),'default':![]},{'name':a3_0x5ab342(0x1ba),'type':'boolean','description':'Include\x20unpublished\x20apps\x20for\x20diagnostics','default':![]}],async 'execute'(_0x1c4df6){const _0x118192=a3_0x5ab342,_0xdc89ad=_0x1c4df6['str'](_0x118192(0x1bc))||_0x1c4df6[_0x118192(0x1cb)]||getEnv()||_0x118192(0x1d2),_0x456b26=_0x1c4df6['bool'](_0x118192(0x1ed)),_0x5bdcfc=_0x1c4df6[_0x118192(0x1d0)]('no-cache'),_0x5a7976=_0x1c4df6[_0x118192(0x1d0)](_0x118192(0x1ba)),{readRawConfigWithLayers:_0x3bfe14,resolveDefaultAppSource:_0x5ee447,getLocalAppAliases:_0x268e0a}=await import(_0x118192(0x1be)),{getRemoteAppList:_0x2d4fe2}=await import(_0x118192(0x1ea)),{config:_0x52d3f7,layers:_0x523094}=_0x3bfe14(),_0x4ce107=_0x5ee447(_0x523094),{defaultApp:_0x13301a}=_0x52d3f7,_0x286459=await _0x2d4fe2({'env':_0xdc89ad,'accessKey':_0x1c4df6['accessKey'],'localOnly':_0x456b26,'noCache':_0x5bdcfc}),_0x36bcf5=_0x5a7976?_0x286459[_0x118192(0x1d9)]:filterRuntimeAccessibleApps(_0x286459[_0x118192(0x1d9)]),_0x5d6a63=_0x286459[_0x118192(0x1d9)]['length']-_0x36bcf5[_0x118192(0x1dc)],_0xcf738a=_0x36bcf5[_0x118192(0x1da)](_0x2310fb=>{const _0x379fd5=_0x118192;return{'name':_0x2310fb['appName'],'appcode':_0x2310fb['appCode'],'named':!![],'definedIn':_0x379fd5(0x1ec),'isDefault':_0x2310fb['appName']===_0x13301a,...buildAppProfileListFields(_0xdc89ad),...buildRemoteAppI18nFields(_0x2310fb),'source':_0x286459[_0x379fd5(0x1d6)],'owner':_0x2310fb[_0x379fd5(0x1dd)]??null,'status':_0x2310fb[_0x379fd5(0x1db)]??null,'cachedAt':_0x286459['fetchedAt']};}),_0x10038b=_0x268e0a(_0x52d3f7);let _0x19dee4=0x0;for(const [_0x20fd78,_0x6ef3fc]of Object['entries'](_0x10038b)){const _0x11cd19=typeof _0x6ef3fc[_0x118192(0x1b1)]==='string'?_0x6ef3fc[_0x118192(0x1b1)]['trim']():'';if(!_0x11cd19)continue;const _0x5e9438=findAppByCode(_0x286459[_0x118192(0x1d9)],_0x11cd19);if(!_0x5a7976&&_0x5e9438&&!isRuntimeAccessibleApp(_0x5e9438))continue;_0x19dee4+=0x1,_0xcf738a[_0x118192(0x1d5)]({'name':_0x20fd78,'appcode':_0x11cd19,'named':!![],'definedIn':_0x118192(0x1ed),'isDefault':_0x20fd78===_0x13301a,...buildAppProfileListFields(_0xdc89ad),'source':_0x118192(0x1d3),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0xcf738a,_0x1c4df6[_0x118192(0x1d7)]);const _0x183c85=_0xcf738a[_0x118192(0x1c4)](_0x2e8b63=>_0x2e8b63[_0x118192(0x1bd)]===!![]),_0x4d87f9=_0x13301a??_0x183c85?.[_0x118192(0x1bb)]??null,_0x200928={'env':_0xdc89ad,'source':_0x286459['source'],'fetchedAt':_0x286459[_0x118192(0x1c5)],'cachePath':_0x286459[_0x118192(0x1e0)],'globalPath':_0x523094['globalPath']??null,'projectPath':_0x523094[_0x118192(0x1cd)]??null,'defaultApp':_0x4d87f9,'defaultAppSource':_0x13301a!=null?_0x4ce107:null,'localAliasCount':_0x19dee4,'remoteTotal':_0x286459[_0x118192(0x1d9)]['length'],'hiddenUnpublishedCount':_0x5d6a63,'includeUnpublished':_0x5a7976};if(_0xcf738a[_0x118192(0x1dc)]===0x0)return{'ok':!![],'data':{'items':_0xcf738a,'meta':_0x200928},'message':_0x286459['source']===_0x118192(0x1b5)?_0x118192(0x1c0):_0x118192(0x1b2)};return{'ok':!![],'data':{'items':_0xcf738a,'meta':_0x200928}};}},pullDef={'service':a3_0x5ab342(0x1eb),'command':'pull','description':a3_0x5ab342(0x1c8),'risk':a3_0x5ab342(0x1e2),'confirmationDescription':a3_0x5ab342(0x1b4),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x5ab342(0x1bc),'type':a3_0x5ab342(0x1b8),'description':'Target\x20environment\x20(default:\x20current\x20env)','enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0x5ab342(0x1b3),'description':a3_0x5ab342(0x1b9),'default':![]},{'name':a3_0x5ab342(0x1e5),'type':a3_0x5ab342(0x1b3),'description':a3_0x5ab342(0x1bf),'default':![]}],async 'execute'(_0x3fbaac){const _0x11d65f=a3_0x5ab342,_0x5ee145=_0x3fbaac[_0x11d65f(0x1df)](_0x11d65f(0x1bc))||_0x3fbaac[_0x11d65f(0x1cb)]||getEnv()||'production',_0x17655e=_0x3fbaac[_0x11d65f(0x1d0)](_0x11d65f(0x1ed)),_0x437d8a=_0x3fbaac[_0x11d65f(0x1d0)](_0x11d65f(0x1e5)),{getRemoteAppList:_0x1b0333}=await import(_0x11d65f(0x1ea)),_0x18bd20=await _0x1b0333({'env':_0x5ee145,'accessKey':_0x3fbaac[_0x11d65f(0x1e8)],'localOnly':_0x17655e,'noCache':_0x437d8a});return{'ok':!![],'data':{'total':_0x18bd20[_0x11d65f(0x1d9)][_0x11d65f(0x1dc)],'env':_0x5ee145,'source':_0x18bd20[_0x11d65f(0x1d6)],'fetchedAt':_0x18bd20[_0x11d65f(0x1c5)],'cachePath':_0x18bd20[_0x11d65f(0x1e0)]},'message':_0x18bd20[_0x11d65f(0x1d6)]==='cache'?_0x11d65f(0x1d1)+_0x18bd20['items'][_0x11d65f(0x1dc)]+'\x20cached\x20app(s)\x20for\x20env=\x22'+_0x5ee145+'\x22.':_0x11d65f(0x1e3)+_0x18bd20[_0x11d65f(0x1d9)][_0x11d65f(0x1dc)]+_0x11d65f(0x1e9)+_0x5ee145+'\x22.'};}},importDef={'service':a3_0x5ab342(0x1eb),'command':a3_0x5ab342(0x1e6),'description':'从\x20.rabetbase.json\x20文件导入默认应用选择','risk':a3_0x5ab342(0x1e2),'confirmationDescription':'将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x28853b){return await runAppImport(collectFlags(_0x28853b,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a4_0x898f(_0x1c3a82,_0x5db83e){_0x1c3a82=_0x1c3a82-0x7d;const _0xd917f9=a4_0xd917();let _0x898fc1=_0xd917f9[_0x1c3a82];return _0x898fc1;}(function(_0x4808b8,_0x149293){const _0x3730c7=a4_0x898f,_0x233296=_0x4808b8();while(!![]){try{const _0x462a28=parseInt(_0x3730c7(0x87))/0x1*(-parseInt(_0x3730c7(0x89))/0x2)+-parseInt(_0x3730c7(0x7e))/0x3*(parseInt(_0x3730c7(0x8c))/0x4)+-parseInt(_0x3730c7(0x8d))/0x5+-parseInt(_0x3730c7(0x7f))/0x6+parseInt(_0x3730c7(0x7d))/0x7*(-parseInt(_0x3730c7(0x88))/0x8)+-parseInt(_0x3730c7(0x8a))/0x9*(-parseInt(_0x3730c7(0x85))/0xa)+parseInt(_0x3730c7(0x84))/0xb;if(_0x462a28===_0x149293)break;else _0x233296['push'](_0x233296['shift']());}catch(_0x1bb58d){_0x233296['push'](_0x233296['shift']());}}}(a4_0xd917,0x80423));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x3c91c4){const _0x5cfc05=a4_0x898f;if(typeof _0x3c91c4!=='string')return null;const _0x14a342=_0x3c91c4[_0x5cfc05(0x82)]();return _0x14a342?_0x14a342[_0x5cfc05(0x8e)]():null;}export function isRuntimeAccessibleApp(_0x4edc49){const _0x271c35=a4_0x898f;return normalizeAppPublishStatus(_0x4edc49[_0x271c35(0x8b)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x2241c8){const _0x1964a5=a4_0x898f;return _0x2241c8[_0x1964a5(0x86)](isRuntimeAccessibleApp);}function a4_0xd917(){const _0x5a034f=['Current\x20status:\x20','.\x20Publish\x20the\x20app\x20before\x20using\x20','trim','appName','27584502EgdBEd','30hPYIeQ','filter','1ysPNtn','32880KewTaF','1276468pdasfw','3079359HHIGIU','appPublishStatus','1544908CswcfM','4323150VdLVeK','toUpperCase','UNKNOWN','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','175VTqBKg','6eaByCr','3784320XCWJaV'];a4_0xd917=function(){return _0x5a034f;};return a4_0xd917();}export function findAppByName(_0x3ef41b,_0x1decc0){const _0x3dd3f0=a4_0x898f;return _0x3ef41b['find'](_0x211ebc=>_0x211ebc[_0x3dd3f0(0x83)]===_0x1decc0);}export function findAppByCode(_0x2474bd,_0x21b2a9){const _0xd69b7a=a4_0x898f,_0x18c5cb=_0x21b2a9[_0xd69b7a(0x82)]();if(!_0x18c5cb)return undefined;return _0x2474bd['find'](_0x2b067d=>_0x2b067d['appCode']?.[_0xd69b7a(0x82)]()===_0x18c5cb);}export function runtimeInaccessibleAppError(_0x278504,_0x38e469){const _0x3f0431=a4_0x898f,_0x58da4f=normalizeAppPublishStatus(_0x278504[_0x3f0431(0x8b)])??_0x3f0431(0x8f);return CliErrors['validation']('App\x20'+_0x38e469+'\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.',_0x3f0431(0x80)+_0x58da4f+_0x3f0431(0x81)+CLI_BIN_NAME+_0x3f0431(0x90));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x117a1e,_0x59c7ad){const _0x3192ee=a5_0x3dba,_0x2742e3=_0x117a1e();while(!![]){try{const _0x11b98e=-parseInt(_0x3192ee(0x110))/0x1*(parseInt(_0x3192ee(0x10f))/0x2)+-parseInt(_0x3192ee(0x105))/0x3+-parseInt(_0x3192ee(0x10a))/0x4+-parseInt(_0x3192ee(0x113))/0x5+parseInt(_0x3192ee(0x109))/0x6*(parseInt(_0x3192ee(0x114))/0x7)+-parseInt(_0x3192ee(0x10c))/0x8+-parseInt(_0x3192ee(0x111))/0x9*(-parseInt(_0x3192ee(0x10b))/0xa);if(_0x11b98e===_0x59c7ad)break;else _0x2742e3['push'](_0x2742e3['shift']());}catch(_0x90c78e){_0x2742e3['push'](_0x2742e3['shift']());}}}(a5_0x3cda,0xd5b7e));import{fileURLToPath}from'url';function a5_0x3cda(){const _0x36737a=['parse','errorCode','66aRmFiZ','5343960XDIjLs','510cCsQwP','8025016eMPfNV','errorMsg','tableData','1211752PYZPaU','1VDRzik','732681XtXkYn','data','1458790poywkt','326095mKdSqO','1656459LjZIDF','Mock\x20API\x20error:\x20'];a5_0x3cda=function(){return _0x36737a;};return a5_0x3cda();}function a5_0x3dba(_0x550f6d,_0x5183cd){_0x550f6d=_0x550f6d-0x105;const _0x3cda31=a5_0x3cda();let _0x3dbaf9=_0x3cda31[_0x550f6d];return _0x3dbaf9;}import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function loadMockAppList(){const _0xb2dcf2=a5_0x3dba,_0x128088=join(__dirname,'../../../mock/app-list.json'),_0xf4b65a=readFileSync(_0x128088,'utf-8');return JSON[_0xb2dcf2(0x107)](_0xf4b65a);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x33f5ef=a5_0x3dba,_0x390a68=getMockAppList();if(!_0x390a68['success'])throw new Error(_0x33f5ef(0x106)+_0x390a68[_0x33f5ef(0x10d)]+'\x20('+_0x390a68[_0x33f5ef(0x108)]+')');return _0x390a68[_0x33f5ef(0x112)][_0x33f5ef(0x10e)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x88b2a9,_0x51245c){const _0x4e4924=a6_0xdca5,_0xf8c6c3=_0x88b2a9();while(!![]){try{const _0x4436c3=parseInt(_0x4e4924(0x96))/0x1*(-parseInt(_0x4e4924(0x87))/0x2)+parseInt(_0x4e4924(0x8b))/0x3+-parseInt(_0x4e4924(0x8f))/0x4+parseInt(_0x4e4924(0x94))/0x5*(-parseInt(_0x4e4924(0x92))/0x6)+parseInt(_0x4e4924(0x8d))/0x7+-parseInt(_0x4e4924(0x99))/0x8*(parseInt(_0x4e4924(0x98))/0x9)+parseInt(_0x4e4924(0x88))/0xa;if(_0x4436c3===_0x51245c)break;else _0xf8c6c3['push'](_0xf8c6c3['shift']());}catch(_0x4fd1d4){_0xf8c6c3['push'](_0xf8c6c3['shift']());}}}(a6_0xda29,0x7089a));function a6_0xda29(){const _0x1d5450=['APP_LIST_SOURCE','1062yJjDyM','53808RNpBBc','2GVmOpr','25941080MfpJdF','items','fetchedAt','2453745KWvclZ','cache','308266RaKExg','trim','3638688WjQGWA','mock','toISOString','156oZsDNY','remote','137105kwqKpN','toLowerCase','578821oNAAJP'];a6_0xda29=function(){return _0x1d5450;};return a6_0xda29();}import{getMyApps}from'../../core/api-client.js';function a6_0xdca5(_0xb54a1d,_0x192459){_0xb54a1d=_0xb54a1d-0x87;const _0xda29de=a6_0xda29();let _0xdca514=_0xda29de[_0xb54a1d];return _0xdca514;}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 _0x5d2fa8=a6_0xdca5,_0x44fd72=(productEnv(_0x5d2fa8(0x97))||'')['trim']()[_0x5d2fa8(0x95)]();return _0x44fd72===_0x5d2fa8(0x90);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x436d12){const _0xc2dc84=a6_0xdca5,{env:_0x409c43,accessKey:_0x307fcb,localOnly:localOnly=![],noCache:noCache=![]}=_0x436d12,_0x53b373=readCachedAppList(_0x409c43,_0x307fcb),_0x3a6f49=_0x307fcb?.[_0xc2dc84(0x8e)]()?getAppCacheFilePath(_0x409c43,_0x307fcb):null;if(localOnly)return{'items':_0x53b373?.[_0xc2dc84(0x89)]??[],'source':_0xc2dc84(0x8c),'fetchedAt':_0x53b373?.[_0xc2dc84(0x8a)]??null,'cachePath':_0x3a6f49};try{const _0x1593d8=await getRemoteAppItems(),_0x37004a=shouldUseMockRemoteApps()?_0xc2dc84(0x90):_0xc2dc84(0x93),_0x105d71=new Date()[_0xc2dc84(0x91)](),_0x50c498=_0x307fcb?.['trim']()?writeCachedAppList(_0x409c43,_0x307fcb,{'env':_0x409c43,'fetchedAt':_0x105d71,'source':_0x37004a,'items':_0x1593d8}):null;return{'items':_0x1593d8,'source':_0x37004a,'fetchedAt':_0x105d71,'cachePath':_0x50c498};}catch(_0x51dee2){if(!noCache&&_0x53b373)return{'items':_0x53b373['items'],'source':'cache','fetchedAt':_0x53b373[_0xc2dc84(0x8a)],'cachePath':_0x3a6f49};throw _0x51dee2;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a7_0x3dfd(_0x467027,_0x7cf42){_0x467027=_0x467027-0x1a6;const _0x33c4d4=a7_0x33c4();let _0x3dfdfb=_0x33c4d4[_0x467027];return _0x3dfdfb;}(function(_0x4f64dd,_0x1b6815){const _0x49d02d=a7_0x3dfd,_0x37f864=_0x4f64dd();while(!![]){try{const _0x3105f0=-parseInt(_0x49d02d(0x1b5))/0x1*(-parseInt(_0x49d02d(0x1a7))/0x2)+-parseInt(_0x49d02d(0x1af))/0x3+-parseInt(_0x49d02d(0x1ae))/0x4*(parseInt(_0x49d02d(0x1b3))/0x5)+parseInt(_0x49d02d(0x1ad))/0x6*(-parseInt(_0x49d02d(0x1b6))/0x7)+parseInt(_0x49d02d(0x1b7))/0x8*(parseInt(_0x49d02d(0x1a8))/0x9)+parseInt(_0x49d02d(0x1bb))/0xa*(-parseInt(_0x49d02d(0x1b9))/0xb)+parseInt(_0x49d02d(0x1b8))/0xc;if(_0x3105f0===_0x1b6815)break;else _0x37f864['push'](_0x37f864['shift']());}catch(_0x1b0963){_0x37f864['push'](_0x37f864['shift']());}}}(a7_0x33c4,0x715fc));export function enrichAppListItemsWithMergedSelection(_0x3bec9b,_0x3d206d){const _0x40f73c=a7_0x3dfd;if(!_0x3d206d)return;const _0x123cc4=!!(_0x3d206d['currentApp']??_0x3d206d[_0x40f73c(0x1ac)]);for(const _0x3045ae of _0x3bec9b){_0x3045ae[_0x40f73c(0x1ba)]=![];}const _0x5f5da6=_0x3d206d[_0x40f73c(0x1bc)]!=null?String(_0x3d206d['appCode'])[_0x40f73c(0x1a9)]():'';if(_0x123cc4){const _0x505706=_0x3d206d[_0x40f73c(0x1b4)]??_0x3d206d[_0x40f73c(0x1ac)];if(_0x505706){const _0x27befe=_0x3bec9b[_0x40f73c(0x1b1)](_0x29ead5=>_0x29ead5['named']===!![]&&_0x29ead5['name']===_0x505706&&_0x29ead5[_0x40f73c(0x1b0)]===_0x40f73c(0x1ab)),_0x16e85e=_0x27befe??_0x3bec9b[_0x40f73c(0x1b1)](_0x2bd788=>_0x2bd788[_0x40f73c(0x1a6)]===!![]&&_0x2bd788[_0x40f73c(0x1b2)]===_0x505706);if(_0x16e85e){const _0x42f1e0=String(_0x16e85e[_0x40f73c(0x1aa)]??'')[_0x40f73c(0x1a9)]();if(!_0x5f5da6||_0x42f1e0===_0x5f5da6){_0x16e85e[_0x40f73c(0x1ba)]=!![];return;}}}if(_0x5f5da6){const _0x1ff176=_0x3bec9b[_0x40f73c(0x1b1)](_0xfa715f=>String(_0xfa715f[_0x40f73c(0x1aa)]??'')[_0x40f73c(0x1a9)]()===_0x5f5da6);_0x1ff176&&(_0x1ff176['isCurrent']=!![]);}return;}if(!_0x5f5da6)return;for(const _0x451dd9 of _0x3bec9b){String(_0x451dd9[_0x40f73c(0x1aa)]??'')[_0x40f73c(0x1a9)]()===_0x5f5da6&&(_0x451dd9[_0x40f73c(0x1ba)]=!![]);}}function a7_0x33c4(){const _0x4e6d2f=['1555108YHMmqo','4761UFAJbi','trim','appcode','local','defaultApp','54uwwEKF','79916lTqwpx','2037498djjJWk','definedIn','find','name','70IOGEGZ','currentApp','1IDBMTT','193102zLxIvK','4256Deqvpk','10512048VBCGkY','33vDUxcm','isCurrent','878200iMfYKv','appCode','named'];a7_0x33c4=function(){return _0x4e6d2f;};return a7_0x33c4();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a8_0x376219=a8_0x4e04;function a8_0x136a(){const _0x2ddd77=['3083817eXhFJd','\x20app-config\x20get\x20<key>',',\x20appCode=','240NzwjRt','118678IVirlk','3568804hhtdsG','app-config','4978300kBBjGP','read','Usage:\x20','args','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','63542YEnSZH','key','validation','798472mmyVls','1396938moVfPl','Missing\x20app-config\x20key.','apiError','appCode','App\x20config\x20key','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','get'];a8_0x136a=function(){return _0x2ddd77;};return a8_0x136a();}(function(_0xd0c06d,_0x1670bf){const _0x50c34c=a8_0x4e04,_0x58fae3=_0xd0c06d();while(!![]){try{const _0x4321bd=-parseInt(_0x50c34c(0x91))/0x1+parseInt(_0x50c34c(0x7d))/0x2+-parseInt(_0x50c34c(0x85))/0x3+parseInt(_0x50c34c(0x8a))/0x4+parseInt(_0x50c34c(0x8c))/0x5+parseInt(_0x50c34c(0x7e))/0x6+-parseInt(_0x50c34c(0x89))/0x7*(parseInt(_0x50c34c(0x88))/0x8);if(_0x4321bd===_0x1670bf)break;else _0x58fae3['push'](_0x58fae3['shift']());}catch(_0x264af5){_0x58fae3['push'](_0x58fae3['shift']());}}}(a8_0x136a,0xe090b));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a8_0x4e04(_0x2e842e,_0x200b65){_0x2e842e=_0x2e842e-0x7c;const _0x136ad4=a8_0x136a();let _0x4e04ef=_0x136ad4[_0x2e842e];return _0x4e04ef;}export const appConfigGet={'service':a8_0x376219(0x8b),'command':a8_0x376219(0x84),'description':a8_0x376219(0x90),'risk':a8_0x376219(0x8d),'args':[{'name':a8_0x376219(0x92),'description':a8_0x376219(0x82),'required':!![]}],'flags':[],async 'execute'(_0x459b0e){const _0x1978b8=a8_0x376219,_0x32fa76=_0x459b0e[_0x1978b8(0x8f)][0x0]?.['trim']();if(!_0x32fa76)throw CliErrors[_0x1978b8(0x7c)](_0x1978b8(0x7f),_0x1978b8(0x8e)+CLI_BIN_NAME+_0x1978b8(0x86));try{const _0x375e35=await getRuntimeAppConfigByKey(_0x459b0e[_0x1978b8(0x81)],_0x32fa76);return{'ok':!![],'data':_0x375e35};}catch{throw CliErrors[_0x1978b8(0x80)]('Unable\x20to\x20get\x20app-config\x20value:\x20key='+_0x32fa76+_0x1978b8(0x87)+_0x459b0e[_0x1978b8(0x81)],_0x1978b8(0x83));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a9_0x1b35(){const _0x25dfd2=['235907uMKKds','1554765bKeXqb','763fxMtiV','184578HjUQGn','820taPHZL','12OIYenY','28TZCTjj','6xirmnh','9XkSHAi','2798970jABIkL','689872rVEvyu','6645650buSGlZ'];a9_0x1b35=function(){return _0x25dfd2;};return a9_0x1b35();}function a9_0x2d0a(_0x57a29c,_0x37f263){_0x57a29c=_0x57a29c-0x128;const _0x1b35c8=a9_0x1b35();let _0x2d0a35=_0x1b35c8[_0x57a29c];return _0x2d0a35;}(function(_0x460846,_0x3b065f){const _0x5cb2eb=a9_0x2d0a,_0x38c817=_0x460846();while(!![]){try{const _0x5bd16d=parseInt(_0x5cb2eb(0x12b))/0x1*(parseInt(_0x5cb2eb(0x12d))/0x2)+-parseInt(_0x5cb2eb(0x12c))/0x3*(parseInt(_0x5cb2eb(0x12f))/0x4)+parseInt(_0x5cb2eb(0x12a))/0x5*(parseInt(_0x5cb2eb(0x130))/0x6)+parseInt(_0x5cb2eb(0x129))/0x7+parseInt(_0x5cb2eb(0x133))/0x8*(-parseInt(_0x5cb2eb(0x131))/0x9)+-parseInt(_0x5cb2eb(0x132))/0xa+-parseInt(_0x5cb2eb(0x128))/0xb*(-parseInt(_0x5cb2eb(0x12e))/0xc);if(_0x5bd16d===_0x3b065f)break;else _0x38c817['push'](_0x38c817['shift']());}catch(_0x339451){_0x38c817['push'](_0x38c817['shift']());}}}(a9_0x1b35,0x717b5));import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a10_0x335d(_0x267d81,_0x41412e){_0x267d81=_0x267d81-0x98;const _0x3677b8=a10_0x3677();let _0x335d45=_0x3677b8[_0x267d81];return _0x335d45;}const a10_0x43d681=a10_0x335d;(function(_0x5d7b1e,_0x375303){const _0x4f7f1f=a10_0x335d,_0x4b603e=_0x5d7b1e();while(!![]){try{const _0x37b595=-parseInt(_0x4f7f1f(0xd8))/0x1*(-parseInt(_0x4f7f1f(0xdf))/0x2)+parseInt(_0x4f7f1f(0xd1))/0x3+-parseInt(_0x4f7f1f(0xbc))/0x4+-parseInt(_0x4f7f1f(0xdb))/0x5+parseInt(_0x4f7f1f(0xaa))/0x6+parseInt(_0x4f7f1f(0x9d))/0x7+-parseInt(_0x4f7f1f(0xac))/0x8;if(_0x37b595===_0x375303)break;else _0x4b603e['push'](_0x4b603e['shift']());}catch(_0x35f45e){_0x4b603e['push'](_0x4b603e['shift']());}}}(a10_0x3677,0xa227c));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x43d681(0xb8),ARTIFACT_SOURCE_AGENT=a10_0x43d681(0xba),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x43d681(0xc8),'react-dom',a10_0x43d681(0xda),'dayjs','antd',a10_0x43d681(0xe0)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x43d681(0xbb),'type':a10_0x43d681(0xcd),'required':!![],'description':a10_0x43d681(0xaf)},ARTIFACT_NAME_FLAG={'name':a10_0x43d681(0xe7),'type':a10_0x43d681(0xcd),'description':a10_0x43d681(0xab)},METADATA_FLAG={'name':a10_0x43d681(0xcf),'type':a10_0x43d681(0xcd),'description':a10_0x43d681(0xc6)};function isPlainObject(_0x40bc2a){const _0xcb26be=a10_0x43d681;return typeof _0x40bc2a===_0xcb26be(0x9a)&&_0x40bc2a!==null&&!Array[_0xcb26be(0xa6)](_0x40bc2a);}function readSourceFile(_0x23456b){const _0x123952=a10_0x43d681;if(!_0x23456b)throw CliErrors[_0x123952(0xa5)]('File\x20path\x20is\x20required.');if(!existsSync(_0x23456b))throw CliErrors[_0x123952(0xa5)](_0x123952(0xd3)+_0x23456b);if(!statSync(_0x23456b)[_0x123952(0xb9)]())throw CliErrors[_0x123952(0xa5)](_0x123952(0xb2)+_0x23456b);const _0x4ba664=readFileSync(_0x23456b,'utf8');return validateReactModuleSource(_0x4ba664),_0x4ba664;}function parseMetadata(_0x3b1d16){const _0x38c373=a10_0x43d681;if(!_0x3b1d16)return undefined;let _0x463a28;try{_0x463a28=JSON['parse'](_0x3b1d16);}catch{throw CliErrors[_0x38c373(0xa5)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x3b1d16);}if(!isPlainObject(_0x463a28))throw CliErrors[_0x38c373(0xa5)](_0x38c373(0xc3));const _0x44d3f2={..._0x463a28};return delete _0x44d3f2[_0x38c373(0xbf)],_0x44d3f2;}function getPackageName(_0x122ced){const _0x41f69f=a10_0x43d681;if(_0x122ced[_0x41f69f(0xa2)]('@')){const [_0x189d4f,_0x4b04bc]=_0x122ced[_0x41f69f(0x9e)]('/');return _0x189d4f&&_0x4b04bc?_0x189d4f+'/'+_0x4b04bc:_0x122ced;}return _0x122ced['split']('/')[0x0]||_0x122ced;}function validateAllowedImports(_0x1a6722){const _0x4713a5=a10_0x43d681,_0x3d4cb9=new Set();for(const _0x16f30a of IMPORT_SOURCE_PATTERNS){_0x16f30a[_0x4713a5(0xa9)]=0x0;let _0x35c290;while((_0x35c290=_0x16f30a[_0x4713a5(0xce)](_0x1a6722))!==null){const _0x549654=_0x35c290[0x1]?.[_0x4713a5(0xc1)]();_0x549654&&_0x3d4cb9['add'](_0x549654);}}const _0x34a96f=[..._0x3d4cb9][_0x4713a5(0xa7)](getPackageName)['filter'](_0x560f2c=>!ALLOWED_REACT_MODULE_IMPORTS[_0x4713a5(0xc5)](_0x560f2c));if(_0x34a96f[_0x4713a5(0xa3)]>0x0)throw CliErrors[_0x4713a5(0xa5)](_0x4713a5(0xd5)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4713a5(0x98)+[...new Set(_0x34a96f)][_0x4713a5(0xd6)](',\x20'));}export function validateReactModuleSource(_0x3f9936){const _0x1d0f7e=a10_0x43d681;if(!_0x3f9936[_0x1d0f7e(0xc1)]())throw CliErrors[_0x1d0f7e(0xa5)](_0x1d0f7e(0xc7));if(PAGE_LEVEL_PATTERNS[_0x1d0f7e(0xa0)](_0x15e2dc=>_0x15e2dc['test'](_0x3f9936)))throw CliErrors[_0x1d0f7e(0xa5)](_0x1d0f7e(0xa8));validateAllowedImports(_0x3f9936);}function buildArtifactInput(_0x1875de){const _0x3ca10c=a10_0x43d681,_0x4443a8=readSourceFile(_0x1875de[_0x3ca10c(0x9b)](_0x3ca10c(0xbb))),_0x456d22=_0x1875de[_0x3ca10c(0x9b)]('name')[_0x3ca10c(0xc1)](),_0x1d5e27=parseMetadata(_0x1875de['str'](_0x3ca10c(0xcf)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x456d22?{'name':_0x456d22}:{},'content':_0x4443a8,..._0x1d5e27?{'metadata':_0x1d5e27}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x378c0c){const _0x989387=a10_0x43d681;return{'id':_0x378c0c['id'],'name':_0x378c0c[_0x989387(0xe7)],'artifactType':_0x378c0c[_0x989387(0xe1)],'source':_0x378c0c['source'],'favorite':_0x378c0c[_0x989387(0xa4)],'deleted':_0x378c0c[_0x989387(0xc4)],'createTime':_0x378c0c['createTime'],'updateTime':_0x378c0c['updateTime']};}function detailArtifact(_0xad510c){const _0x11d269=a10_0x43d681;return{'id':_0xad510c['id'],'appCode':_0xad510c[_0x11d269(0xb4)],'name':_0xad510c[_0x11d269(0xe7)],'artifactType':_0xad510c[_0x11d269(0xe1)],'source':_0xad510c[_0x11d269(0x9c)],'favorite':_0xad510c[_0x11d269(0xa4)],'deleted':_0xad510c[_0x11d269(0xc4)],'content':_0xad510c[_0x11d269(0xb1)]??'','compiledContent':_0xad510c[_0x11d269(0xbf)],'metadata':_0xad510c['metadata']??{},'createTime':_0xad510c['createTime'],'updateTime':_0xad510c[_0x11d269(0xb5)]};}function readFavoriteFlag(_0x3e1997){const _0x346107=a10_0x43d681,_0x46ff5f=_0x3e1997['flag']('favorite');return _0x46ff5f===undefined||_0x46ff5f===null||_0x46ff5f===''?undefined:_0x3e1997['bool'](_0x346107(0xa4));}function a10_0x3677(){const _0x2347bb=['Show\x20one\x20Artifact\x20by\x20id','2775000HtiXzF','/update','File\x20not\x20found:\x20','data','react_module\x20imports\x20are\x20limited\x20to:\x20','join','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','2kLdUMH','list','lodash','6615470ucVKQo','create','build','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','1203220kWPeit','@ant-design/icons','artifactType','read','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','number','List\x20current-app\x20react_module\x20Artifacts','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','name','.\x20Unsupported:\x20','description','object','str','source','8808009pXXRcq','split','POST','some','update','startsWith','length','favorite','validation','isArray','map','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','lastIndex','7555992TFRUFD','Artifact\x20display\x20name','17289184fFZjiV','detail','boolean','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','num','content','File\x20is\x20not\x20a\x20regular\x20file:\x20','Artifact\x20ID','appCode','updateTime','/client/artifact/create','artifact','react_module','isFile','AGENT','file','1989636cryOiy','verbose','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','compiledContent','Updated\x20Artifact\x20','trim','body','--metadata\x20must\x20be\x20a\x20JSON\x20object.','deleted','includes','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','Artifact\x20source\x20file\x20is\x20blank.','react','write','Preview:\x20update\x20react_module\x20Artifact\x20','/client/artifact/','Preview:\x20create\x20react_module\x20Artifact','string','exec','metadata'];a10_0x3677=function(){return _0x2347bb;};return a10_0x3677();}const artifactList={'service':a10_0x43d681(0xb7),'command':a10_0x43d681(0xd9),'description':a10_0x43d681(0xe5),'risk':a10_0x43d681(0xe2),'flags':[{'name':a10_0x43d681(0x9c),'type':a10_0x43d681(0xcd),'description':a10_0x43d681(0xe6)},{'name':'favorite','type':a10_0x43d681(0xae),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x88fe23){const _0x390b75=a10_0x43d681,_0x323bdf=await listRuntimeArtifacts(_0x88fe23['appCode'],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x88fe23['str'](_0x390b75(0x9c))?{'source':_0x88fe23[_0x390b75(0x9b)](_0x390b75(0x9c))}:{},...readFavoriteFlag(_0x88fe23)!==undefined?{'favorite':readFavoriteFlag(_0x88fe23)}:{}});return{'ok':!![],'data':{'total':_0x323bdf['length'],'items':_0x88fe23['bool'](_0x390b75(0xbd))?_0x323bdf:_0x323bdf[_0x390b75(0xa7)](summarizeArtifact)}};}},artifactDetail={'service':'artifact','command':a10_0x43d681(0xad),'description':a10_0x43d681(0xd0),'risk':a10_0x43d681(0xe2),'flags':[{...ID_FLAG,'description':a10_0x43d681(0xb3)}],async 'execute'(_0x769aab){const _0xcc34dd=a10_0x43d681,_0x39e09f=await getRuntimeArtifact(_0x769aab['num']('id'),_0x769aab[_0xcc34dd(0xb4)]);return{'ok':!![],'data':detailArtifact(_0x39e09f)};}},artifactCreate={'service':'artifact','command':a10_0x43d681(0xdc),'description':a10_0x43d681(0xde),'risk':a10_0x43d681(0xc9),'confirmationDescription':a10_0x43d681(0xbe),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x3b581a){const _0x136e02=a10_0x43d681,_0x35d525=buildArtifactInput(_0x3b581a),_0x38880f=await createRuntimeArtifact(_0x3b581a['appCode'],_0x35d525);return{'ok':!![],'data':detailArtifact(_0x38880f),'message':'Created\x20Artifact\x20'+_0x38880f['id']+(_0x38880f[_0x136e02(0xe7)]?'\x20('+_0x38880f[_0x136e02(0xe7)]+')':'')};},async 'dryRun'(_0x37e3a0){const _0x504774=a10_0x43d681,_0x3776b6=buildArtifactInput(_0x37e3a0);return dryRun(_0x504774(0x9f),_0x504774(0xb6))[_0x504774(0xc2)]({'appCode':_0x37e3a0[_0x504774(0xb4)],..._0x3776b6})['description'](_0x504774(0xcc))['build']();},'writeEventSubject'(_0x5da53d){const _0x388590=a10_0x43d681,_0x282618=_0x5da53d[_0x388590(0xd4)]?.['id'];if(typeof _0x282618!==_0x388590(0xcd)&&typeof _0x282618!==_0x388590(0xe4))return undefined;return{'kind':_0x388590(0xb7),'id':String(_0x282618),'action':'create'};}},artifactUpdate={'service':a10_0x43d681(0xb7),'command':'update','description':a10_0x43d681(0xd7),'risk':a10_0x43d681(0xc9),'confirmationDescription':a10_0x43d681(0xe3),'flags':[{...ID_FLAG,'description':a10_0x43d681(0xb3)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2bbd37){const _0x4fce6c=a10_0x43d681,_0xbf3d9b=_0x2bbd37[_0x4fce6c(0xb0)]('id'),_0x6df7c7=buildArtifactInput(_0x2bbd37),_0x37b7de=await updateRuntimeArtifact(_0xbf3d9b,_0x2bbd37['appCode'],_0x6df7c7);return{'ok':!![],'data':detailArtifact(_0x37b7de),'message':_0x4fce6c(0xc0)+_0x37b7de['id']+(_0x37b7de[_0x4fce6c(0xe7)]?'\x20('+_0x37b7de[_0x4fce6c(0xe7)]+')':'')};},async 'dryRun'(_0x30deff){const _0x4198e5=a10_0x43d681,_0x247daa=_0x30deff[_0x4198e5(0xb0)]('id'),_0x1f62d9=buildArtifactInput(_0x30deff);return dryRun(_0x4198e5(0x9f),_0x4198e5(0xcb)+_0x247daa+_0x4198e5(0xd2))[_0x4198e5(0xc2)]({'appCode':_0x30deff['appCode'],..._0x1f62d9})[_0x4198e5(0x99)](_0x4198e5(0xca)+_0x247daa)[_0x4198e5(0xdd)]();},'writeEventSubject'(_0x22556c){const _0x2813e=a10_0x43d681,_0xde1461=_0x22556c[_0x2813e(0xd4)]?.['id'];if(typeof _0xde1461!==_0x2813e(0xcd)&&typeof _0xde1461!==_0x2813e(0xe4))return undefined;return{'kind':'artifact','id':String(_0xde1461),'action':_0x2813e(0xa1)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x1cf555=a10_0x4c4a;(function(_0x104497,_0x4d1a34){const _0x422dc5=a10_0x4c4a,_0x5bfc4b=_0x104497();while(!![]){try{const _0x41e861=-parseInt(_0x422dc5(0x208))/0x1+parseInt(_0x422dc5(0x201))/0x2*(parseInt(_0x422dc5(0x1df))/0x3)+-parseInt(_0x422dc5(0x1ea))/0x4*(-parseInt(_0x422dc5(0x1f3))/0x5)+-parseInt(_0x422dc5(0x200))/0x6+-parseInt(_0x422dc5(0x1f0))/0x7*(parseInt(_0x422dc5(0x20f))/0x8)+-parseInt(_0x422dc5(0x21f))/0x9+parseInt(_0x422dc5(0x227))/0xa;if(_0x41e861===_0x4d1a34)break;else _0x5bfc4b['push'](_0x5bfc4b['shift']());}catch(_0x3f6afb){_0x5bfc4b['push'](_0x5bfc4b['shift']());}}}(a10_0x77e4,0x22cc4));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';function a10_0x77e4(){const _0x118362=['utf8','21052oIotSd','exec','/client/artifact/create','Artifact\x20ID','data','metadata','56LLoKIj','filter','create','175YQlMpu','str','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','compiledContent','Artifact\x20source\x20file\x20is\x20blank.','Artifact\x20display\x20name','lodash','deleted','Show\x20one\x20Artifact\x20by\x20id','name','Preview:\x20create\x20react_module\x20Artifact','favorite','535038uheCUu','1706UGNVNU','object','body','some','antd','@ant-design/icons','number','205279lJATqL','react_module\x20imports\x20are\x20limited\x20to:\x20','bool','parse','map','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','AGENT','131784xGsRAZ','num','join','updateTime','/client/artifact/','artifact','trim','description','createTime','add','detail','string','validation','write','update','length','1589220xVLYzd','list','react','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','artifactType','Invalid\x20JSON\x20for\x20--metadata:\x20','boolean','Updated\x20Artifact\x20','4280750qzojhH','file','Optional\x20favorite-state\x20filter','appCode','.\x20Unsupported:\x20','POST','468UJXcoe','Preview:\x20update\x20react_module\x20Artifact\x20','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','File\x20is\x20not\x20a\x20regular\x20file:\x20','read','List\x20current-app\x20react_module\x20Artifacts','source','content','File\x20path\x20is\x20required.','verbose'];a10_0x77e4=function(){return _0x118362;};return a10_0x77e4();}import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE='react_module',ARTIFACT_SOURCE_AGENT=a10_0x1cf555(0x20e),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x1cf555(0x221),'react-dom',a10_0x1cf555(0x1fa),'dayjs',a10_0x1cf555(0x205),a10_0x1cf555(0x206)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x1cf555(0x211)](',\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':'file','type':a10_0x1cf555(0x21a),'required':!![],'description':'Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file'},ARTIFACT_NAME_FLAG={'name':'name','type':a10_0x1cf555(0x21a),'description':a10_0x1cf555(0x1f9)},METADATA_FLAG={'name':a10_0x1cf555(0x1ef),'type':a10_0x1cf555(0x21a),'description':a10_0x1cf555(0x222)};function isPlainObject(_0x1e8327){const _0x55dc5b=a10_0x1cf555;return typeof _0x1e8327===_0x55dc5b(0x202)&&_0x1e8327!==null&&!Array['isArray'](_0x1e8327);}function readSourceFile(_0x372b54){const _0xae82b6=a10_0x1cf555;if(!_0x372b54)throw CliErrors[_0xae82b6(0x21b)](_0xae82b6(0x1e7));if(!existsSync(_0x372b54))throw CliErrors['validation']('File\x20not\x20found:\x20'+_0x372b54);if(!statSync(_0x372b54)['isFile']())throw CliErrors['validation'](_0xae82b6(0x1e2)+_0x372b54);const _0x380184=readFileSync(_0x372b54,_0xae82b6(0x1e9));return validateReactModuleSource(_0x380184),_0x380184;}function parseMetadata(_0x11ad9c){const _0x39a75e=a10_0x1cf555;if(!_0x11ad9c)return undefined;let _0x56b2db;try{_0x56b2db=JSON[_0x39a75e(0x20b)](_0x11ad9c);}catch{throw CliErrors['validation'](_0x39a75e(0x224)+_0x11ad9c);}if(!isPlainObject(_0x56b2db))throw CliErrors[_0x39a75e(0x21b)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x3e0a66={..._0x56b2db};return delete _0x3e0a66[_0x39a75e(0x1f7)],_0x3e0a66;}function getPackageName(_0x35a416){if(_0x35a416['startsWith']('@')){const [_0x1b0984,_0x436481]=_0x35a416['split']('/');return _0x1b0984&&_0x436481?_0x1b0984+'/'+_0x436481:_0x35a416;}return _0x35a416['split']('/')[0x0]||_0x35a416;}function a10_0x4c4a(_0x4fbc98,_0x1f38b2){_0x4fbc98=_0x4fbc98-0x1dc;const _0x77e45d=a10_0x77e4();let _0x4c4a4c=_0x77e45d[_0x4fbc98];return _0x4c4a4c;}function validateAllowedImports(_0x26d548){const _0x1170ec=a10_0x1cf555,_0x328a66=new Set();for(const _0x2d5efa of IMPORT_SOURCE_PATTERNS){_0x2d5efa['lastIndex']=0x0;let _0x2da96a;while((_0x2da96a=_0x2d5efa[_0x1170ec(0x1eb)](_0x26d548))!==null){const _0x5a06d0=_0x2da96a[0x1]?.[_0x1170ec(0x215)]();_0x5a06d0&&_0x328a66[_0x1170ec(0x218)](_0x5a06d0);}}const _0x601315=[..._0x328a66][_0x1170ec(0x20c)](getPackageName)[_0x1170ec(0x1f1)](_0xea77b9=>!ALLOWED_REACT_MODULE_IMPORTS['includes'](_0xea77b9));if(_0x601315[_0x1170ec(0x21e)]>0x0)throw CliErrors[_0x1170ec(0x21b)](_0x1170ec(0x209)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x1170ec(0x1dd)+[...new Set(_0x601315)][_0x1170ec(0x211)](',\x20'));}export function validateReactModuleSource(_0x4e85a7){const _0x5d99b9=a10_0x1cf555;if(!_0x4e85a7[_0x5d99b9(0x215)]())throw CliErrors['validation'](_0x5d99b9(0x1f8));if(PAGE_LEVEL_PATTERNS[_0x5d99b9(0x204)](_0x4ab9cc=>_0x4ab9cc['test'](_0x4e85a7)))throw CliErrors[_0x5d99b9(0x21b)](_0x5d99b9(0x1f5));validateAllowedImports(_0x4e85a7);}function buildArtifactInput(_0x3b707e){const _0x53f9cb=a10_0x1cf555,_0x186258=readSourceFile(_0x3b707e['str'](_0x53f9cb(0x228))),_0x5f1ab4=_0x3b707e[_0x53f9cb(0x1f4)](_0x53f9cb(0x1fd))['trim'](),_0x3a8e96=parseMetadata(_0x3b707e[_0x53f9cb(0x1f4)](_0x53f9cb(0x1ef)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x5f1ab4?{'name':_0x5f1ab4}:{},'content':_0x186258,..._0x3a8e96?{'metadata':_0x3a8e96}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x4f42ff){const _0x3d713d=a10_0x1cf555;return{'id':_0x4f42ff['id'],'name':_0x4f42ff[_0x3d713d(0x1fd)],'artifactType':_0x4f42ff[_0x3d713d(0x223)],'source':_0x4f42ff['source'],'favorite':_0x4f42ff['favorite'],'deleted':_0x4f42ff[_0x3d713d(0x1fb)],'createTime':_0x4f42ff['createTime'],'updateTime':_0x4f42ff['updateTime']};}function detailArtifact(_0x583711){const _0x467aa8=a10_0x1cf555;return{'id':_0x583711['id'],'appCode':_0x583711[_0x467aa8(0x1dc)],'name':_0x583711[_0x467aa8(0x1fd)],'artifactType':_0x583711['artifactType'],'source':_0x583711[_0x467aa8(0x1e5)],'favorite':_0x583711['favorite'],'deleted':_0x583711['deleted'],'content':_0x583711[_0x467aa8(0x1e6)]??'','compiledContent':_0x583711[_0x467aa8(0x1f7)],'metadata':_0x583711[_0x467aa8(0x1ef)]??{},'createTime':_0x583711[_0x467aa8(0x217)],'updateTime':_0x583711[_0x467aa8(0x212)]};}function readFavoriteFlag(_0x3bdaaf){const _0x14514e=a10_0x1cf555,_0x72752d=_0x3bdaaf['flag'](_0x14514e(0x1ff));return _0x72752d===undefined||_0x72752d===null||_0x72752d===''?undefined:_0x3bdaaf[_0x14514e(0x20a)](_0x14514e(0x1ff));}const artifactList={'service':a10_0x1cf555(0x214),'command':a10_0x1cf555(0x220),'description':a10_0x1cf555(0x1e4),'risk':a10_0x1cf555(0x1e3),'flags':[{'name':a10_0x1cf555(0x1e5),'type':a10_0x1cf555(0x21a),'description':'Optional\x20source\x20filter,\x20for\x20example\x20AGENT'},{'name':a10_0x1cf555(0x1ff),'type':a10_0x1cf555(0x225),'description':a10_0x1cf555(0x229)},VERBOSE_FLAG],async 'execute'(_0x54745b){const _0x4e00f1=a10_0x1cf555,_0x556619=await listRuntimeArtifacts(_0x54745b[_0x4e00f1(0x1dc)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x54745b[_0x4e00f1(0x1f4)](_0x4e00f1(0x1e5))?{'source':_0x54745b[_0x4e00f1(0x1f4)]('source')}:{},...readFavoriteFlag(_0x54745b)!==undefined?{'favorite':readFavoriteFlag(_0x54745b)}:{}});return{'ok':!![],'data':{'total':_0x556619[_0x4e00f1(0x21e)],'items':_0x54745b[_0x4e00f1(0x20a)](_0x4e00f1(0x1e8))?_0x556619:_0x556619[_0x4e00f1(0x20c)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x1cf555(0x214),'command':a10_0x1cf555(0x219),'description':a10_0x1cf555(0x1fc),'risk':'read','flags':[{...ID_FLAG,'description':'Artifact\x20ID'}],async 'execute'(_0x5dd64d){const _0x35c57f=a10_0x1cf555,_0xbfcb94=await getRuntimeArtifact(_0x5dd64d[_0x35c57f(0x210)]('id'),_0x5dd64d[_0x35c57f(0x1dc)]);return{'ok':!![],'data':detailArtifact(_0xbfcb94)};}},artifactCreate={'service':'artifact','command':a10_0x1cf555(0x1f2),'description':a10_0x1cf555(0x1f6),'risk':a10_0x1cf555(0x21c),'confirmationDescription':a10_0x1cf555(0x1e1),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x4a075c){const _0x223b9d=a10_0x1cf555,_0xe35f06=buildArtifactInput(_0x4a075c),_0x4a0c97=await createRuntimeArtifact(_0x4a075c['appCode'],_0xe35f06);return{'ok':!![],'data':detailArtifact(_0x4a0c97),'message':'Created\x20Artifact\x20'+_0x4a0c97['id']+(_0x4a0c97['name']?'\x20('+_0x4a0c97[_0x223b9d(0x1fd)]+')':'')};},async 'dryRun'(_0x130561){const _0x58951f=a10_0x1cf555,_0x361d24=buildArtifactInput(_0x130561);return dryRun(_0x58951f(0x1de),_0x58951f(0x1ec))[_0x58951f(0x203)]({'appCode':_0x130561[_0x58951f(0x1dc)],..._0x361d24})['description'](_0x58951f(0x1fe))['build']();},'writeEventSubject'(_0x5979c3){const _0x2389ed=a10_0x1cf555,_0x419caf=_0x5979c3[_0x2389ed(0x1ee)]?.['id'];if(typeof _0x419caf!==_0x2389ed(0x21a)&&typeof _0x419caf!==_0x2389ed(0x207))return undefined;return{'kind':_0x2389ed(0x214),'id':String(_0x419caf),'action':_0x2389ed(0x1f2)};}},artifactUpdate={'service':a10_0x1cf555(0x214),'command':a10_0x1cf555(0x21d),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x1cf555(0x21c),'confirmationDescription':a10_0x1cf555(0x20d),'flags':[{...ID_FLAG,'description':a10_0x1cf555(0x1ed)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2e7813){const _0x1f909e=a10_0x1cf555,_0x3f57ff=_0x2e7813['num']('id'),_0x3f9d07=buildArtifactInput(_0x2e7813),_0x18f3ed=await updateRuntimeArtifact(_0x3f57ff,_0x2e7813['appCode'],_0x3f9d07);return{'ok':!![],'data':detailArtifact(_0x18f3ed),'message':_0x1f909e(0x226)+_0x18f3ed['id']+(_0x18f3ed[_0x1f909e(0x1fd)]?'\x20('+_0x18f3ed[_0x1f909e(0x1fd)]+')':'')};},async 'dryRun'(_0x451de9){const _0x3886cb=a10_0x1cf555,_0x477869=_0x451de9[_0x3886cb(0x210)]('id'),_0x105d89=buildArtifactInput(_0x451de9);return dryRun('POST',_0x3886cb(0x213)+_0x477869+'/update')['body']({'appCode':_0x451de9[_0x3886cb(0x1dc)],..._0x105d89})[_0x3886cb(0x216)](_0x3886cb(0x1e0)+_0x477869)['build']();},'writeEventSubject'(_0x51843f){const _0x252696=a10_0x1cf555,_0xacbc62=_0x51843f[_0x252696(0x1ee)]?.['id'];if(typeof _0xacbc62!==_0x252696(0x21a)&&typeof _0xacbc62!==_0x252696(0x207))return undefined;return{'kind':_0x252696(0x214),'id':String(_0xacbc62),'action':_0x252696(0x21d)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x35761e=a11_0x12e9;(function(_0x4138fd,_0x301184){const _0x5718fa=a11_0x12e9,_0xa6c990=_0x4138fd();while(!![]){try{const _0x4a89c8=-parseInt(_0x5718fa(0xa2))/0x1+parseInt(_0x5718fa(0xc4))/0x2*(-parseInt(_0x5718fa(0xcd))/0x3)+-parseInt(_0x5718fa(0xd8))/0x4+parseInt(_0x5718fa(0xda))/0x5*(-parseInt(_0x5718fa(0xc3))/0x6)+-parseInt(_0x5718fa(0x98))/0x7+-parseInt(_0x5718fa(0xa7))/0x8+parseInt(_0x5718fa(0xcf))/0x9;if(_0x4a89c8===_0x301184)break;else _0xa6c990['push'](_0xa6c990['shift']());}catch(_0x39a846){_0xa6c990['push'](_0xa6c990['shift']());}}}(a11_0x42d5,0xca82b));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';function a11_0x12e9(_0x48f803,_0x41d189){_0x48f803=_0x48f803-0x91;const _0x42d571=a11_0x42d5();let _0x12e9bf=_0x42d571[_0x48f803];return _0x12e9bf;}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(_0x85d42b){const _0x539f6f=a11_0x12e9;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x85d42b[_0x539f6f(0xdd)](_0x539f6f(0xa4)),'explicitProject':_0x85d42b[_0x539f6f(0xdd)]('project'),'policy':_0x539f6f(0xcb)}));}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 _0x54095b=a11_0x12e9;return crypto[_0x54095b(0xb3)]();}export function buildDeviceAuthUrl(_0x103b90,_0x1feb83,_0x1460f5=a11_0x35761e(0xbd)){const _0x4241f0=a11_0x35761e;return _0x103b90+_0x4241f0(0xc6)+encodeURIComponent(_0x1feb83)+_0x4241f0(0xca)+encodeURIComponent(_0x1460f5);}export function getDeviceCodePath(){const _0x511c04=a11_0x35761e;return homedir()+'/'+PRODUCT_CONFIG[_0x511c04(0x93)]+_0x511c04(0xbf);}function a11_0x42d5(){const _0x22388a=['将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','bool','device','Device\x20auth\x20API\x20returned\x20HTTP\x20','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','str','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','expired','removeListener','homeDirName','\x20config.','Device\x20authorization\x20cancelled.','data','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','7838565OdtYIP','source','json','url-only','stringify','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','validation','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','SIGINT','nonInteractive','179545miiyVZ','AccessKey\x20saved\x20to\x20','global','cancelled','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','841456tBkATX','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','aborted','toISOString','code','accessKey','networkError','stderr','test','AbortError','padStart','utf8','randomUUID','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','trim','status','\x0dWaiting\x20for\x20authorization...\x20','Device\x20auth\x20API\x20error\x20(','apiError','Verify:\x20','signal','POST','lovrabet-cli','Invalid\x20device\x20auth\x20response','/.device-auth','string','success','Write\x20to\x20project\x20config','708666QyjvwQ','158734HBsAsG','Device\x20authorization\x20successful.','/device-auth?code=','\x20auth\x20status','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','boolean','&source=','global-default','/api/device-auth/token','39FfDmTw','access_key','55910673zbGEtE','project','object','Invalid\x20access_key\x20returned\x20by\x20server.','scope','Write\x20to\x20global\x20config\x20(default)','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','floor','name','5171868vjUQah','abort','70LzYpad','createdAt'];a11_0x42d5=function(){return _0x22388a;};return a11_0x42d5();}export function readStoredDeviceCode(){const _0x28536e=a11_0x35761e,_0x12a288=getDeviceCodePath();if(!existsSync(_0x12a288))return null;try{const _0x29c26f=readFileSync(_0x12a288,{'encoding':_0x28536e(0xb2)}),_0x56726c=JSON['parse'](_0x29c26f);if(_0x56726c&&typeof _0x56726c[_0x28536e(0xab)]===_0x28536e(0xc0)&&typeof _0x56726c['createdAt']===_0x28536e(0xc0)&&(_0x56726c[_0x28536e(0xd3)]==='global'||_0x56726c[_0x28536e(0xd3)]===_0x28536e(0xd0)))return _0x56726c;}catch{}return null;}export function writeStoredDeviceCode(_0x3aa1fc,_0x132b04){const _0x2e9d64=a11_0x35761e,_0x32f0ad=getDeviceCodePath(),_0x438e98=dirname(_0x32f0ad);!existsSync(_0x438e98)&&mkdirSync(_0x438e98,{'recursive':!![]});const _0x41abfc={'code':_0x3aa1fc,'createdAt':new Date()[_0x2e9d64(0xaa)](),'scope':_0x132b04};writeFileSync(_0x32f0ad,JSON[_0x2e9d64(0x9c)](_0x41abfc),{'encoding':'utf8','mode':0x180});}export function deleteStoredDeviceCode(){const _0x14cbf3=getDeviceCodePath();try{unlinkSync(_0x14cbf3);}catch{}}export function isStoredDeviceCodeExpired(_0x7f9886){const _0x39bc1e=a11_0x35761e;return Date['now']()-new Date(_0x7f9886[_0x39bc1e(0xdb)])['getTime']()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x50aee9,_0x4947a6){const _0x5e8dbd=a11_0x35761e,_0x27e8f1=_0x50aee9+_0x5e8dbd(0xcc),_0xb1caca=new AbortController(),_0x2d13e3=setTimeout(()=>_0xb1caca[_0x5e8dbd(0xd9)](),0x2710),_0x13b4be=await fetch(_0x27e8f1,{'method':_0x5e8dbd(0xbc),'headers':{'Content-Type':'application/json'},'body':JSON[_0x5e8dbd(0x9c)]({'code':_0x4947a6}),'signal':_0xb1caca[_0x5e8dbd(0xbb)]});clearTimeout(_0x2d13e3);if(!_0x13b4be['ok'])throw CliErrors['networkError'](_0x5e8dbd(0xdf)+_0x13b4be[_0x5e8dbd(0xb6)]);const _0x464048=await _0x13b4be[_0x5e8dbd(0x9a)](),_0x2a26d6=_0x464048[_0x5e8dbd(0x96)]&&typeof _0x464048[_0x5e8dbd(0x96)]===_0x5e8dbd(0xd1)?_0x464048[_0x5e8dbd(0x96)]:_0x464048;if(!_0x2a26d6||typeof _0x2a26d6['status']!==_0x5e8dbd(0xc0))throw CliErrors[_0x5e8dbd(0xb9)](_0x5e8dbd(0xbe));return{'status':_0x2a26d6[_0x5e8dbd(0xb6)],'access_key':typeof _0x2a26d6[_0x5e8dbd(0xce)]===_0x5e8dbd(0xc0)?_0x2a26d6['access_key']:undefined};}export async function pollDeviceToken(_0x2c02c9,_0x28e839,_0x448477){const _0x2b006b=a11_0x35761e;let _0x2d9b8e=0x0;for(let _0x4ee41d=0x0;_0x4ee41d<MAX_POLLS;_0x4ee41d++){if(_0x448477[_0x2b006b(0xa9)])throw CliErrors[_0x2b006b(0xa5)](_0x2b006b(0x95));let _0x52ac8b;try{_0x52ac8b=await fetchDeviceToken(_0x2c02c9,_0x28e839);}catch(_0x1ae196){if(_0x1ae196 instanceof Error&&_0x1ae196[_0x2b006b(0xd7)]===_0x2b006b(0xb0))throw CliErrors[_0x2b006b(0xa5)](_0x2b006b(0x95));_0x2d9b8e++;if(_0x2d9b8e>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x2b006b(0xad)](_0x2b006b(0xa6));writeCliSideChannelLine(_0x2b006b(0xb8)+_0x2d9b8e+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0x2d9b8e=0x0;if(_0x52ac8b[_0x2b006b(0xb6)]===_0x2b006b(0xc1)){if(!_0x52ac8b[_0x2b006b(0xce)])throw CliErrors[_0x2b006b(0xb9)](_0x2b006b(0xd2));return _0x52ac8b[_0x2b006b(0xce)];}if(_0x52ac8b['status']===_0x2b006b(0x91)){deleteStoredDeviceCode();throw CliErrors[_0x2b006b(0x9e)](_0x2b006b(0xc8));}const _0x52f208=(_0x4ee41d+0x1)*POLL_INTERVAL_MS,_0x4e586b=DEVICE_CODE_TTL_MS-_0x52f208,_0x2977d4=Math[_0x2b006b(0xd6)](_0x4e586b/0xea60),_0x311b61=Math[_0x2b006b(0xd6)](_0x4e586b%0xea60/0x3e8);process[_0x2b006b(0xae)]['write'](_0x2b006b(0xb7)+_0x2977d4+':'+String(_0x311b61)[_0x2b006b(0xb1)](0x2,'0')+'\x20remaining'),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(_0x553268){return new Promise(_0x119058=>setTimeout(_0x119058,_0x553268));}export const authDeviceDefinition={'service':'auth','command':a11_0x35761e(0xde),'description':a11_0x35761e(0x9d),'risk':'write','confirmationDescription':a11_0x35761e(0xdc),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'global','type':'boolean','description':a11_0x35761e(0xd4),'default':!![]},{'name':a11_0x35761e(0xd0),'type':'boolean','description':a11_0x35761e(0xc2),'default':![]},{'name':'source','type':a11_0x35761e(0xc0),'description':a11_0x35761e(0xe2),'default':a11_0x35761e(0xbd)},{'name':a11_0x35761e(0x9b),'type':a11_0x35761e(0xc9),'description':a11_0x35761e(0x9f),'default':![]}],async 'execute'(_0x234fa4){const _0x108bd9=a11_0x35761e,_0xaec553=resolveAuthScopeFlags(_0x234fa4),_0x331f10=_0xaec553[_0x108bd9(0xa4)]?_0x108bd9(0xa4):'project',_0x84d756=readScopedConfig(_0xaec553);if(_0x84d756['accessKey'])return{'ok':!![],'message':_0x108bd9(0xe0)};const _0x4ce1e7=(_0x234fa4[_0x108bd9(0xe1)](_0x108bd9(0x99))||'lovrabet-cli')[_0x108bd9(0xb5)](),_0x26aabe=getUserDomain(),_0x28361d=readStoredDeviceCode(),_0xfeef7e=_0x28361d&&!isStoredDeviceCodeExpired(_0x28361d)?_0x28361d[_0x108bd9(0xab)]:((()=>{const _0x676183=generateDeviceCode();return writeStoredDeviceCode(_0x676183,_0x331f10),_0x676183;})()),_0x3f32c8=buildDeviceAuthUrl(_0x26aabe,_0xfeef7e,_0x4ce1e7);if(_0x234fa4[_0x108bd9(0xdd)](_0x108bd9(0x9b)))return console['log'](_0x3f32c8),{'ok':!![]};writeCliSideChannelLine(_0x108bd9(0xd5)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x3f32c8),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x108bd9(0xa8));if(_0x234fa4[_0x108bd9(0xa1)])return writeCliSideChannelLine('After\x20authorizing,\x20re-run:\x20'+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x108bd9(0xb4)};writeCliSideChannelLine(_0x108bd9(0x97));const _0x436c2b=new AbortController(),_0x41a805=()=>{const _0x3e8255=_0x108bd9;_0x436c2b['abort'](),process['removeListener'](_0x3e8255(0xa0),_0x41a805);};process['once'](_0x108bd9(0xa0),_0x41a805);let _0x5c5370;try{_0x5c5370=await pollDeviceToken(_0x26aabe,_0xfeef7e,_0x436c2b['signal']);}finally{process[_0x108bd9(0x92)]('SIGINT',_0x41a805);}if(!ACCESS_KEY_PATTERN[_0x108bd9(0xaf)](_0x5c5370))throw CliErrors[_0x108bd9(0xb9)](_0x108bd9(0xd2));const _0x1c562c=readScopedConfig(_0xaec553);return _0x1c562c[_0x108bd9(0xac)]=_0x5c5370,writeScopedConfig(_0x1c562c,_0xaec553),deleteStoredDeviceCode(),process[_0x108bd9(0xae)]['write']('\x0a'),writeCliSideChannelLine(_0x108bd9(0xa3)+_0x331f10+_0x108bd9(0x94)),writeCliSideChannelLine(_0x108bd9(0xba)+CLI_BIN_NAME+_0x108bd9(0xc7)),{'ok':!![],'message':_0x108bd9(0xc5)};}};
|
|
1
|
+
const a11_0xef8cc5=a11_0x2551;(function(_0x56cd3a,_0x4ec227){const _0x419398=a11_0x2551,_0x5791e6=_0x56cd3a();while(!![]){try{const _0x50781e=parseInt(_0x419398(0x1dd))/0x1*(parseInt(_0x419398(0x1bc))/0x2)+-parseInt(_0x419398(0x1c9))/0x3*(parseInt(_0x419398(0x1ca))/0x4)+parseInt(_0x419398(0x1ce))/0x5*(-parseInt(_0x419398(0x198))/0x6)+-parseInt(_0x419398(0x1d8))/0x7*(parseInt(_0x419398(0x1d1))/0x8)+parseInt(_0x419398(0x1c1))/0x9*(parseInt(_0x419398(0x1cf))/0xa)+parseInt(_0x419398(0x1aa))/0xb+parseInt(_0x419398(0x1c8))/0xc;if(_0x50781e===_0x4ec227)break;else _0x5791e6['push'](_0x5791e6['shift']());}catch(_0x398041){_0x5791e6['push'](_0x5791e6['shift']());}}}(a11_0x3124,0xaebef));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';function a11_0x3124(){const _0x3e3d86=['padStart','1572960OwRmpN','560946zlaWXB','8VuiZST','utf8','randomUUID','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','2300905nneuSS','13474410EurVQl','str','8CzwTMF','access_key','log','POST','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','nonInteractive','5035037eLIaMb','project','url-only','Device\x20authorization\x20cancelled.','trim','2RfIXDM','\x20auth\x20status','now','test','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','stderr','write','parse','signal','source','6wDEgnR','stringify','string','aborted','AccessKey\x20saved\x20to\x20','Write\x20to\x20global\x20config\x20(default)','removeListener','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','cancelled','data','validation','code','json','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','bool','scope','8358526vYBiQy','toISOString','abort','global-default','\x0dWaiting\x20for\x20authorization...\x20','lovrabet-cli','/.device-auth','Write\x20to\x20project\x20config','boolean','global','application/json','status','once','createdAt','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','SIGINT','Device\x20auth\x20API\x20returned\x20HTTP\x20','getTime','30808SCWTyB','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','auth','apiError','networkError','9lwVACv','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','\x20remaining','\x20config.','device','AbortError'];a11_0x3124=function(){return _0x3e3d86;};return a11_0x3124();}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(_0x15883e){const _0x2fbef3=a11_0x2551;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x15883e['bool'](_0x2fbef3(0x1b3)),'explicitProject':_0x15883e['bool'](_0x2fbef3(0x1d9)),'policy':_0x2fbef3(0x1ad)}));}function a11_0x2551(_0x4ff464,_0xc1a8e4){_0x4ff464=_0x4ff464-0x192;const _0x312485=a11_0x3124();let _0x25516a=_0x312485[_0x4ff464];return _0x25516a;}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 _0x27679d=a11_0x2551;return crypto[_0x27679d(0x1cc)]();}export function buildDeviceAuthUrl(_0x36dd34,_0x1e1975,_0x3b07dc=a11_0xef8cc5(0x1af)){return _0x36dd34+'/device-auth?code='+encodeURIComponent(_0x1e1975)+'&source='+encodeURIComponent(_0x3b07dc);}export function getDeviceCodePath(){const _0x41f804=a11_0xef8cc5;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x41f804(0x1b0);}export function readStoredDeviceCode(){const _0x150541=a11_0xef8cc5,_0x712a61=getDeviceCodePath();if(!existsSync(_0x712a61))return null;try{const _0x4967d1=readFileSync(_0x712a61,{'encoding':'utf8'}),_0x39b25b=JSON[_0x150541(0x195)](_0x4967d1);if(_0x39b25b&&typeof _0x39b25b[_0x150541(0x1a4)]==='string'&&typeof _0x39b25b[_0x150541(0x1b7)]===_0x150541(0x19a)&&(_0x39b25b[_0x150541(0x1a9)]===_0x150541(0x1b3)||_0x39b25b['scope']==='project'))return _0x39b25b;}catch{}return null;}export function writeStoredDeviceCode(_0x3edd31,_0x2706e0){const _0x27e207=a11_0xef8cc5,_0xcd34a=getDeviceCodePath(),_0x2ebe72=dirname(_0xcd34a);!existsSync(_0x2ebe72)&&mkdirSync(_0x2ebe72,{'recursive':!![]});const _0x97346b={'code':_0x3edd31,'createdAt':new Date()[_0x27e207(0x1ab)](),'scope':_0x2706e0};writeFileSync(_0xcd34a,JSON[_0x27e207(0x199)](_0x97346b),{'encoding':_0x27e207(0x1cb),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x1d7ced=getDeviceCodePath();try{unlinkSync(_0x1d7ced);}catch{}}export function isStoredDeviceCodeExpired(_0x119467){const _0x4cd38f=a11_0xef8cc5;return Date[_0x4cd38f(0x1df)]()-new Date(_0x119467[_0x4cd38f(0x1b7)])[_0x4cd38f(0x1bb)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x1a41c7,_0x5d2384){const _0x5b2923=a11_0xef8cc5,_0x523d77=_0x1a41c7+'/api/device-auth/token',_0x1ab13e=new AbortController(),_0x27dfed=setTimeout(()=>_0x1ab13e[_0x5b2923(0x1ac)](),0x2710),_0x5e03d9=await fetch(_0x523d77,{'method':_0x5b2923(0x1d4),'headers':{'Content-Type':_0x5b2923(0x1b4)},'body':JSON[_0x5b2923(0x199)]({'code':_0x5d2384}),'signal':_0x1ab13e[_0x5b2923(0x196)]});clearTimeout(_0x27dfed);if(!_0x5e03d9['ok'])throw CliErrors[_0x5b2923(0x1c0)](_0x5b2923(0x1ba)+_0x5e03d9[_0x5b2923(0x1b5)]);const _0x38dd00=await _0x5e03d9[_0x5b2923(0x1a5)](),_0x55e022=_0x38dd00[_0x5b2923(0x1a2)]&&typeof _0x38dd00[_0x5b2923(0x1a2)]==='object'?_0x38dd00[_0x5b2923(0x1a2)]:_0x38dd00;if(!_0x55e022||typeof _0x55e022[_0x5b2923(0x1b5)]!==_0x5b2923(0x19a))throw CliErrors['apiError']('Invalid\x20device\x20auth\x20response');return{'status':_0x55e022[_0x5b2923(0x1b5)],'access_key':typeof _0x55e022[_0x5b2923(0x1d2)]===_0x5b2923(0x19a)?_0x55e022[_0x5b2923(0x1d2)]:undefined};}export async function pollDeviceToken(_0x3e9ca4,_0x1cf5cc,_0x14dbd2){const _0x42a9c7=a11_0xef8cc5;let _0x1ecd14=0x0;for(let _0x5ef6da=0x0;_0x5ef6da<MAX_POLLS;_0x5ef6da++){if(_0x14dbd2[_0x42a9c7(0x19b)])throw CliErrors[_0x42a9c7(0x1a1)](_0x42a9c7(0x1db));let _0x5c8ee3;try{_0x5c8ee3=await fetchDeviceToken(_0x3e9ca4,_0x1cf5cc);}catch(_0x5d9a5b){if(_0x5d9a5b instanceof Error&&_0x5d9a5b['name']===_0x42a9c7(0x1c6))throw CliErrors[_0x42a9c7(0x1a1)](_0x42a9c7(0x1db));_0x1ecd14++;if(_0x1ecd14>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x42a9c7(0x1c0)](_0x42a9c7(0x192));writeCliSideChannelLine('Device\x20auth\x20API\x20error\x20('+_0x1ecd14+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0x1ecd14=0x0;if(_0x5c8ee3['status']==='success'){if(!_0x5c8ee3[_0x42a9c7(0x1d2)])throw CliErrors['apiError']('Invalid\x20access_key\x20returned\x20by\x20server.');return _0x5c8ee3[_0x42a9c7(0x1d2)];}if(_0x5c8ee3[_0x42a9c7(0x1b5)]==='expired'){deleteStoredDeviceCode();throw CliErrors[_0x42a9c7(0x1a3)](_0x42a9c7(0x1a6));}const _0x1a44b4=(_0x5ef6da+0x1)*POLL_INTERVAL_MS,_0x46bd62=DEVICE_CODE_TTL_MS-_0x1a44b4,_0x538603=Math['floor'](_0x46bd62/0xea60),_0x168fd9=Math['floor'](_0x46bd62%0xea60/0x3e8);process[_0x42a9c7(0x193)][_0x42a9c7(0x194)](_0x42a9c7(0x1ae)+_0x538603+':'+String(_0x168fd9)[_0x42a9c7(0x1c7)](0x2,'0')+_0x42a9c7(0x1c3)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x42a9c7(0x1a3)](_0x42a9c7(0x1bd));}function sleep(_0x16686b){return new Promise(_0x1f079f=>setTimeout(_0x1f079f,_0x16686b));}export const authDeviceDefinition={'service':a11_0xef8cc5(0x1be),'command':a11_0xef8cc5(0x1c5),'description':a11_0xef8cc5(0x19f),'risk':a11_0xef8cc5(0x194),'confirmationDescription':a11_0xef8cc5(0x1a7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0xef8cc5(0x1b3),'type':a11_0xef8cc5(0x1b2),'description':a11_0xef8cc5(0x19d),'default':!![]},{'name':a11_0xef8cc5(0x1d9),'type':a11_0xef8cc5(0x1b2),'description':a11_0xef8cc5(0x1b1),'default':![]},{'name':a11_0xef8cc5(0x197),'type':a11_0xef8cc5(0x19a),'description':a11_0xef8cc5(0x1d5),'default':a11_0xef8cc5(0x1af)},{'name':'url-only','type':a11_0xef8cc5(0x1b2),'description':a11_0xef8cc5(0x1b8),'default':![]}],async 'execute'(_0xf01244){const _0x2096b3=a11_0xef8cc5,_0x347b0e=resolveAuthScopeFlags(_0xf01244),_0x4ae036=_0x347b0e['global']?_0x2096b3(0x1b3):_0x2096b3(0x1d9),_0x32b0b5=readScopedConfig(_0x347b0e);if(_0x32b0b5['accessKey'])return{'ok':!![],'message':_0x2096b3(0x1c2)};const _0x498481=(_0xf01244[_0x2096b3(0x1d0)](_0x2096b3(0x197))||_0x2096b3(0x1af))[_0x2096b3(0x1dc)](),_0x28ceb4=getUserDomain(),_0x10e747=readStoredDeviceCode(),_0x223d50=_0x10e747&&!isStoredDeviceCodeExpired(_0x10e747)?_0x10e747['code']:((()=>{const _0x9e1187=generateDeviceCode();return writeStoredDeviceCode(_0x9e1187,_0x4ae036),_0x9e1187;})()),_0x23db7f=buildDeviceAuthUrl(_0x28ceb4,_0x223d50,_0x498481);if(_0xf01244[_0x2096b3(0x1a8)](_0x2096b3(0x1da)))return console[_0x2096b3(0x1d3)](_0x23db7f),{'ok':!![]};writeCliSideChannelLine(_0x2096b3(0x1d6)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x23db7f),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x2096b3(0x1a0));if(_0xf01244[_0x2096b3(0x1d7)])return writeCliSideChannelLine('After\x20authorizing,\x20re-run:\x20'+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x2096b3(0x1cd)};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0x3d1517=new AbortController(),_0x537c5b=()=>{const _0x3a868c=_0x2096b3;_0x3d1517[_0x3a868c(0x1ac)](),process[_0x3a868c(0x19e)](_0x3a868c(0x1b9),_0x537c5b);};process[_0x2096b3(0x1b6)](_0x2096b3(0x1b9),_0x537c5b);let _0x5d4f92;try{_0x5d4f92=await pollDeviceToken(_0x28ceb4,_0x223d50,_0x3d1517['signal']);}finally{process['removeListener'](_0x2096b3(0x1b9),_0x537c5b);}if(!ACCESS_KEY_PATTERN[_0x2096b3(0x1e0)](_0x5d4f92))throw CliErrors[_0x2096b3(0x1bf)]('Invalid\x20access_key\x20returned\x20by\x20server.');const _0x425f20=readScopedConfig(_0x347b0e);return _0x425f20['accessKey']=_0x5d4f92,writeScopedConfig(_0x425f20,_0x347b0e),deleteStoredDeviceCode(),process[_0x2096b3(0x193)][_0x2096b3(0x194)]('\x0a'),writeCliSideChannelLine(_0x2096b3(0x19c)+_0x4ae036+_0x2096b3(0x1c4)),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+_0x2096b3(0x1de)),{'ok':!![],'message':'Device\x20authorization\x20successful.'};}};
|