@lovrabet/lovrabet-cli 2.2.1 → 2.2.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/ocr/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -1
- package/skills/lovrabet/SKILL.md +1 -1
- package/skills/lovrabet.manifest.json +3 -3
package/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const a0_0x583fad=a0_0x32e4;(function(_0x52c476,_0x446b42){const _0x4bf2dc=a0_0x32e4,_0x2e5259=_0x52c476();while(!![]){try{const _0x52d549=parseInt(_0x4bf2dc(0x1a1))/0x1*(-parseInt(_0x4bf2dc(0x195))/0x2)+-parseInt(_0x4bf2dc(0x1a6))/0x3+-parseInt(_0x4bf2dc(0x1a2))/0x4*(-parseInt(_0x4bf2dc(0x194))/0x5)+-parseInt(_0x4bf2dc(0x1af))/0x6+parseInt(_0x4bf2dc(0x1a4))/0x7*(parseInt(_0x4bf2dc(0x18c))/0x8)+-parseInt(_0x4bf2dc(0x19f))/0x9+parseInt(_0x4bf2dc(0x19d))/0xa*(parseInt(_0x4bf2dc(0x1a0))/0xb);if(_0x52d549===_0x446b42)break;else _0x2e5259['push'](_0x2e5259['shift']());}catch(_0x107183){_0x2e5259['push'](_0x2e5259['shift']());}}}(a0_0x26c5,0x90c94));import{jsx as a0_0x56d3e0}from'react/jsx-runtime';function a0_0x32e4(_0x534bb7,_0x571963){_0x534bb7=_0x534bb7-0x185;const _0x26c5dd=a0_0x26c5();let _0x32e4f3=_0x26c5dd[_0x534bb7];return _0x32e4f3;}import a0_0x10d175 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';function a0_0x26c5(){const _0x4164b6=['54886HTYOGS','Unexpected\x20error:','exit','error','./framework/preparse.js','catch','slice','help','233810tIbFup','Error:\x20','2693754BBtiZq','583jxpgYQ','16QoXFgB','4kpeJPP','ERR_USE_AFTER_CLOSE','35ObSQMC','Hint:\x20','433986gMrktV','corrected','write','input','code','exitCode','definition','\x20->\x20--','name','1667436AOgKWk','hint','ExitPromptError','message','assign','flags','original','args','log','cancelled','[preparse]\x20','438584pPqaus','unknownCommand','validation','handler','stderr',':\x20--','defaultCommand','length','1203490jULSAd'];a0_0x26c5=function(){return _0x4164b6;};return a0_0x26c5();}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_0x10d175(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x583fad(0x19a)](handleError);async function main(){try{await run();}catch(_0x4b4dea){handleError(_0x4b4dea);}}async function run(){const _0x141e03=a0_0x583fad;let _0x20cac0=cli['input'][0x0],_0x254121=cli['input'][0x1];const _0x404f15=cli[_0x141e03(0x186)];try{const {correctFlags:_0x4ce822}=await import(_0x141e03(0x199)),_0x124cbb=getAllDefinitions()['flatMap'](_0xc64d28=>_0xc64d28[_0x141e03(0x186)]??[]),{flags:_0x25dc64,corrections:_0x3c59e0}=_0x4ce822(_0x404f15,_0x124cbb);if(_0x3c59e0[_0x141e03(0x193)]>0x0){for(const _0x10fdab of _0x3c59e0){process[_0x141e03(0x190)][_0x141e03(0x1a8)](_0x141e03(0x18b)+_0x10fdab[_0x141e03(0x18f)]+_0x141e03(0x191)+_0x10fdab[_0x141e03(0x187)]+_0x141e03(0x1ad)+_0x10fdab[_0x141e03(0x1a7)]+'\x0a');}Object[_0x141e03(0x185)](_0x404f15,_0x25dc64);}}catch{}if(!_0x20cac0){const {waitUntilExit:_0x8c610c}=render(a0_0x56d3e0(Help,{}));await _0x8c610c();return;}const _0x2d484d=resolveRemovedCommand(_0x20cac0,_0x254121);if(_0x2d484d)throw CliErrors[_0x141e03(0x18e)](_0x2d484d[_0x141e03(0x1b2)],_0x2d484d[_0x141e03(0x1b0)]);if(!isKnownService(_0x20cac0)){const _0x4ed79e=resolveDynamicServiceCommand(cli[_0x141e03(0x1a9)],_0x404f15);if(_0x4ed79e){if(_0x404f15[_0x141e03(0x19c)]){console[_0x141e03(0x189)](generateCommandHelp(_0x4ed79e[_0x141e03(0x1ac)]));return;}Object[_0x141e03(0x185)](_0x404f15,_0x4ed79e['flags']);const _0x4d3900=buildConfigFromFlags(_0x404f15);await initGlobalEnvironment(_0x4d3900);const _0xead2f3=createPipelineEnv(_0x4d3900,_0x404f15);_0xead2f3[_0x141e03(0x188)]=_0x4ed79e[_0x141e03(0x188)],await runCommand(_0x4ed79e[_0x141e03(0x1ac)],_0xead2f3);return;}if(_0x404f15[_0x141e03(0x19c)]){const _0x327d1f=generateDynamicServiceHelp(_0x20cac0);if(_0x327d1f){console['log'](_0x327d1f);return;}}const {waitUntilExit:_0x3daf2f}=render(a0_0x56d3e0(Help,{}));await _0x3daf2f();return;}const _0x36748e=getServiceEntry(_0x20cac0);if(!_0x254121){if(_0x404f15[_0x141e03(0x19c)]){console['log'](generateServiceHelp(_0x20cac0));return;}if(_0x36748e[_0x141e03(0x192)])_0x254121=_0x36748e[_0x141e03(0x192)];else{console['log'](generateServiceHelp(_0x20cac0));return;}}const _0x5e5e1d=findDefinition(_0x20cac0,_0x254121);!_0x5e5e1d&&(console[_0x141e03(0x189)](generateServiceHelp(_0x20cac0)),handleError(CliErrors[_0x141e03(0x18d)](_0x20cac0+'\x20'+_0x254121)));if(_0x404f15[_0x141e03(0x19c)]){console['log'](generateCommandHelp(_0x5e5e1d));return;}const _0x1b0d06=buildConfigFromFlags(_0x404f15);await initGlobalEnvironment(_0x1b0d06);const _0x549207=createPipelineEnv(_0x1b0d06,_0x404f15);_0x549207[_0x141e03(0x188)]=cli[_0x141e03(0x1a9)][_0x141e03(0x19b)](0x2),await runCommand(_0x5e5e1d,_0x549207);}function handleError(_0x464039){const _0x126dc5=a0_0x583fad;if(_0x464039 instanceof CliError){_0x464039[_0x126dc5(0x1aa)]===_0x126dc5(0x18a)&&(process['stderr']['write']('\x0aCancelled.\x0a'),process[_0x126dc5(0x197)](0x0));console['error'](_0x126dc5(0x19e)+_0x464039[_0x126dc5(0x1b2)]);if(_0x464039[_0x126dc5(0x1b0)])console[_0x126dc5(0x198)](_0x126dc5(0x1a5)+_0x464039[_0x126dc5(0x1b0)]);process[_0x126dc5(0x197)](_0x464039[_0x126dc5(0x1ab)]);}isUserCancellation(_0x464039)&&(process[_0x126dc5(0x190)]['write']('\x0aCancelled.\x0a'),process[_0x126dc5(0x197)](0x0)),console[_0x126dc5(0x198)](_0x126dc5(0x196),_0x464039),process[_0x126dc5(0x197)](0x1);}function isUserCancellation(_0x375c71){const _0x4d6505=a0_0x583fad;if(!(_0x375c71 instanceof Error))return![];if(_0x375c71[_0x4d6505(0x1ae)]===_0x4d6505(0x1b1))return!![];if(_0x375c71[_0x4d6505(0x1aa)]===_0x4d6505(0x1a3))return!![];if(_0x375c71[_0x4d6505(0x1aa)]==='ERR_STREAM_DESTROYED')return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a1_0x44dd(_0x100727,_0x51a6c8){_0x100727=_0x100727-0xc8;const _0x397392=a1_0x3973();let _0x44dd5e=_0x397392[_0x100727];return _0x44dd5e;}const a1_0x904cbe=a1_0x44dd;(function(_0x2ad4fc,_0x22dfbc){const _0x684023=a1_0x44dd,_0xc5e6d4=_0x2ad4fc();while(!![]){try{const _0x107630=parseInt(_0x684023(0x11f))/0x1*(-parseInt(_0x684023(0x104))/0x2)+-parseInt(_0x684023(0xca))/0x3*(-parseInt(_0x684023(0x145))/0x4)+parseInt(_0x684023(0xcc))/0x5*(parseInt(_0x684023(0xd7))/0x6)+parseInt(_0x684023(0x13c))/0x7*(-parseInt(_0x684023(0x114))/0x8)+parseInt(_0x684023(0x108))/0x9*(-parseInt(_0x684023(0xcf))/0xa)+-parseInt(_0x684023(0x102))/0xb*(-parseInt(_0x684023(0x135))/0xc)+-parseInt(_0x684023(0x147))/0xd*(-parseInt(_0x684023(0xcd))/0xe);if(_0x107630===_0x22dfbc)break;else _0xc5e6d4['push'](_0xc5e6d4['shift']());}catch(_0x21502e){_0xc5e6d4['push'](_0xc5e6d4['shift']());}}}(a1_0x3973,0x5dd43));import{CliErrors}from'../../errors.js';function a1_0x3973(){const _0x51d538=['path','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','{\x22id\x22:123}','查询单条数据','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','List\x20available\x20runtime\x20API\x20documentation\x20entries','Filter\x20dataset\x20data','paging\x20contains\x20pagination','获取数据集详情','length','custom_sql_execute','method','bf_execute','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','/api/endpoint/{appCode}/{functionName}','result\x20rows\x20contain\x20aggregate\x20aliases','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','180763waoSEW','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','9770VSQqQr','/api/{appCode}/{datasetCode}/create','appCode','执行自定义\x20SQL','9AXqDXC','None','tableData\x20contains\x20records','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','api-doc','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','dataset_detail','trim','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','Dataset\x20detail','##\x20Dataset\x20detail','list','8umOppb','需要向指定数据集新增一条业务数据时使用','/client/bff/endpoint/{appCode}/{functionName}','map','32-character\x20dataset\x20code','dataset_data_create','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','List\x20datasets','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','code','Returns\x20script\x20business\x20payload','49ueCCJO','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','string','datasetCode','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','join','filter','Execute\x20custom\x20SQL','toLowerCase','str','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','dataset','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','Current\x20app\x20code','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','Show\x20runtime\x20API\x20documentation\x20by\x20code','Get\x20one\x20dataset\x20record','custom_sql','API\x20doc\x20code\x20not\x20found:\x20','168YTJulR','POST','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','##\x20List\x20datasets','/api/{appCode}/{datasetCode}/getOne','Create\x20dataset\x20record','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','3459897YFODjN','Returns\x20one\x20matching\x20business\x20record','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','bf_detail','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','Execute\x20BF\x20endpoint\x20function','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:1,\x22pageSize\x22:20}\x27','API\x20doc\x20code,\x20for\x20example\x20dataset_list','318004FVoHVS','Endpoint\x20function\x20name','12592385OEwGLZ','Get\x20BF\x20endpoint\x20function\x20contract','按应用和函数名精确获取\x20BF\x20运行契约','category','3vMnoaz','分页获取数据集列表','5BVSWlG','14VfnfgK','聚合查询数据集数据','1780670iTgPaV','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','Returns\x20SQL\x20execution\x20payload','where\x20filters\x20before\x20aggregation','GET','read','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','106908dOykLU','includes','Exact\x20endpoint\x20function\x20name','创建数据','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','whenToUse','summary','dataset_list','functionName','validation','keyword','detail','/api/dataset/get-dataset-list-by-app-code','条件过滤查询数据','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','/api/{appCode}/{datasetCode}/filter','Aggregate\x20dataset\x20data','/api/{appCode}/{datasetCode}/aggregate','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','dataset_data_get_one','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','dataset_data_aggregate','lovrabet\x20data\x20aggregate\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22aggregate\x22:[{\x22column\x22:\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}]}\x27','title'];a1_0x3973=function(){return _0x51d538;};return a1_0x3973();}const CATEGORY_FLAG={'name':a1_0x904cbe(0xc9),'type':'string','description':a1_0x904cbe(0xd1)},KEYWORD_FLAG={'name':a1_0x904cbe(0xe1),'type':'string','description':a1_0x904cbe(0xe5)},DOC_CODE_FLAG={'name':a1_0x904cbe(0x11d),'type':a1_0x904cbe(0x121),'required':!![],'description':a1_0x904cbe(0x144)},DOCS=[{'code':a1_0x904cbe(0xde),'category':'dataset','title':a1_0x904cbe(0x11b),'method':'POST','path':a1_0x904cbe(0xe3),'summary':a1_0x904cbe(0xcb),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x904cbe(0x123),'responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name','paging.totalCount\x20gives\x20total\x20rows'],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x904cbe(0x138),'',a1_0x904cbe(0xf0)][a1_0x904cbe(0x126)]('\x0a')},{'code':a1_0x904cbe(0x10e),'category':'dataset','title':a1_0x904cbe(0x111),'method':a1_0x904cbe(0xd4),'path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x904cbe(0xf7),'whenToUse':a1_0x904cbe(0xd0),'pathParams':[],'queryParams':[{'name':'code','description':a1_0x904cbe(0x118)}],'bodySchema':a1_0x904cbe(0x109),'responseHighlights':['fields/properties\x20describe\x20data\x20shape','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','operations\x20describes\x20runtime\x20APIs'],'examples':['lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>'],'notes':[a1_0x904cbe(0xd6)],'markdown':[a1_0x904cbe(0x112),'','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.']['join']('\x0a')},{'code':'dataset_data_filter','category':'dataset','title':a1_0x904cbe(0xf5),'method':a1_0x904cbe(0x136),'path':a1_0x904cbe(0xe6),'summary':a1_0x904cbe(0xe4),'whenToUse':a1_0x904cbe(0x137),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':'datasetCode','description':a1_0x904cbe(0x118)}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':[a1_0x904cbe(0x10a),a1_0x904cbe(0xf6)],'examples':[a1_0x904cbe(0x143),'lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27'],'notes':['where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x904cbe(0x120)],'markdown':['##\x20Filter\x20dataset\x20data','',a1_0x904cbe(0xdb)]['join']('\x0a')},{'code':a1_0x904cbe(0xec),'category':a1_0x904cbe(0x12d),'title':a1_0x904cbe(0xe7),'method':a1_0x904cbe(0x136),'path':a1_0x904cbe(0xe8),'summary':a1_0x904cbe(0xce),'whenToUse':a1_0x904cbe(0x101),'pathParams':[{'name':'appCode','description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0x122),'description':a1_0x904cbe(0x118)}],'queryParams':[],'bodySchema':a1_0x904cbe(0xfc),'responseHighlights':[a1_0x904cbe(0xff),a1_0x904cbe(0xd3)],'examples':[a1_0x904cbe(0xed)],'notes':[a1_0x904cbe(0xeb),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':['##\x20Aggregate\x20dataset\x20data','',a1_0x904cbe(0x12c)][a1_0x904cbe(0x126)]('\x0a')},{'code':a1_0x904cbe(0xea),'category':a1_0x904cbe(0x12d),'title':a1_0x904cbe(0x132),'method':'POST','path':a1_0x904cbe(0x139),'summary':a1_0x904cbe(0xf2),'whenToUse':a1_0x904cbe(0x12b),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0x122),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x904cbe(0xf1),'responseHighlights':[a1_0x904cbe(0x13d)],'examples':[a1_0x904cbe(0xe9)],'notes':[a1_0x904cbe(0x10d)],'markdown':a1_0x904cbe(0xfd)},{'code':a1_0x904cbe(0x119),'category':'dataset','title':a1_0x904cbe(0x13a),'method':'POST','path':a1_0x904cbe(0x105),'summary':a1_0x904cbe(0xda),'whenToUse':a1_0x904cbe(0x115),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0x122),'description':a1_0x904cbe(0x118)}],'queryParams':[],'bodySchema':'{\x22fieldName\x22:\x22value\x22}','responseHighlights':[a1_0x904cbe(0x110)],'examples':['lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27'],'notes':[a1_0x904cbe(0x100)],'markdown':a1_0x904cbe(0x124)},{'code':a1_0x904cbe(0x140),'category':'bf','title':a1_0x904cbe(0x148),'method':a1_0x904cbe(0xd4),'path':a1_0x904cbe(0x116),'summary':a1_0x904cbe(0xc8),'whenToUse':a1_0x904cbe(0x130),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':'functionName','description':a1_0x904cbe(0xd9)}],'queryParams':[],'bodySchema':a1_0x904cbe(0x109),'responseHighlights':[a1_0x904cbe(0x103)],'examples':[a1_0x904cbe(0x10b)],'notes':['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.'],'markdown':a1_0x904cbe(0x11c)},{'code':a1_0x904cbe(0xfb),'category':'bf','title':a1_0x904cbe(0x142),'method':'POST','path':a1_0x904cbe(0xfe),'summary':'执行指定\x20BF\x20函数','whenToUse':a1_0x904cbe(0x13e),'pathParams':[{'name':a1_0x904cbe(0x106),'description':a1_0x904cbe(0x12f)},{'name':a1_0x904cbe(0xdf),'description':a1_0x904cbe(0x146)}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x904cbe(0x11e)],'examples':[a1_0x904cbe(0x12e)],'notes':[a1_0x904cbe(0x13b)],'markdown':a1_0x904cbe(0x141)},{'code':a1_0x904cbe(0xf9),'category':a1_0x904cbe(0x133),'title':a1_0x904cbe(0x128),'method':a1_0x904cbe(0x136),'path':'/api/custom/executeSql','summary':a1_0x904cbe(0x107),'whenToUse':a1_0x904cbe(0x13f),'pathParams':[],'queryParams':[],'bodySchema':a1_0x904cbe(0xf3),'responseHighlights':[a1_0x904cbe(0xd2)],'examples':[a1_0x904cbe(0x125)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x904cbe(0x11a)}];function entrySummary(_0xa888bf){const _0xd520ff=a1_0x904cbe;return{'code':_0xa888bf[_0xd520ff(0x11d)],'category':_0xa888bf[_0xd520ff(0xc9)],'method':_0xa888bf[_0xd520ff(0xfa)],'path':_0xa888bf['path'],'summary':_0xa888bf[_0xd520ff(0xdd)],'whenToUse':_0xa888bf['whenToUse']};}export function listApiDocEntries(_0x167d8d={}){const _0xa708c=a1_0x904cbe,_0x240ddd=String(_0x167d8d[_0xa708c(0xc9)]||'')[_0xa708c(0x10f)](),_0x5b2506=String(_0x167d8d[_0xa708c(0xe1)]||'')['trim']()[_0xa708c(0x129)]();return DOCS[_0xa708c(0x127)](_0x1bcf2b=>{const _0x3fb36b=_0xa708c;if(_0x240ddd&&_0x1bcf2b[_0x3fb36b(0xc9)]!==_0x240ddd)return![];if(!_0x5b2506)return!![];return[_0x1bcf2b[_0x3fb36b(0x11d)],_0x1bcf2b[_0x3fb36b(0xc9)],_0x1bcf2b[_0x3fb36b(0xfa)],_0x1bcf2b[_0x3fb36b(0xef)],_0x1bcf2b[_0x3fb36b(0xdd)],_0x1bcf2b[_0x3fb36b(0xdc)],_0x1bcf2b[_0x3fb36b(0xee)]][_0x3fb36b(0x126)]('\x20')[_0x3fb36b(0x129)]()[_0x3fb36b(0xd8)](_0x5b2506);})[_0xa708c(0x117)](entrySummary);}export function getApiDocDetail(_0x2af8bc){const _0x281209=a1_0x904cbe,_0x2cfcdc=DOCS['find'](_0x2e757e=>_0x2e757e[_0x281209(0x11d)]===_0x2af8bc);if(!_0x2cfcdc)throw CliErrors[_0x281209(0xe0)](_0x281209(0x134)+_0x2af8bc);return{..._0x2cfcdc};}const apiDocList={'service':a1_0x904cbe(0x10c),'command':a1_0x904cbe(0x113),'description':a1_0x904cbe(0xf4),'risk':a1_0x904cbe(0xd5),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x4af9d0){const _0x5c8981=a1_0x904cbe,_0x12f4ec=listApiDocEntries({'category':_0x4af9d0[_0x5c8981(0x12a)](_0x5c8981(0xc9)),'keyword':_0x4af9d0[_0x5c8981(0x12a)](_0x5c8981(0xe1))});return{'ok':!![],'data':{'total':_0x12f4ec[_0x5c8981(0xf8)],'items':_0x12f4ec}};}},apiDocDetail={'service':a1_0x904cbe(0x10c),'command':a1_0x904cbe(0xe2),'description':a1_0x904cbe(0x131),'risk':a1_0x904cbe(0xd5),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x53be4c){const _0x7dd749=a1_0x904cbe;return{'ok':!![],'data':getApiDocDetail(_0x53be4c[_0x7dd749(0x12a)]('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
function a1_0x8911(){const _0x1883e8=['Get\x20BF\x20endpoint\x20function\x20contract','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','##\x20Dataset\x20detail','Exact\x20endpoint\x20function\x20name','聚合查询数据集数据','dataset_data_create','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','dataset_data_aggregate','执行自定义\x20SQL','find','join','fields/properties\x20describe\x20data\x20shape','keyword','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','length','detail','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','Returns\x20one\x20matching\x20business\x20record','dataset_list','None','32-character\x20dataset\x20code','code','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','api-doc','8MDDkIW','dataset_data_filter','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','984732ezsFxQ','paging\x20contains\x20pagination','/api/endpoint/{appCode}/{functionName}','List\x20available\x20runtime\x20API\x20documentation\x20entries','获取数据集详情','##\x20Filter\x20dataset\x20data','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','1382232ERkAlM','bf_execute','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','path','title','whenToUse','3787bEVSnD','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','map','创建数据','/client/bff/endpoint/{appCode}/{functionName}','6576777QYZamq','GET','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','tableData\x20contains\x20dataset\x20id/code/name','validation','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','functionName','string','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','/api/{appCode}/{datasetCode}/filter','Filter\x20dataset\x20data','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','POST','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','按应用和函数名精确获取\x20BF\x20运行契约','filter','appCode','tableData\x20contains\x20records','{\x22fieldName\x22:\x22value\x22}','Show\x20runtime\x20API\x20documentation\x20by\x20code','346YrKFSy','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','1922850XhyLfq','121528jvxpWa','bf_detail','1450smIzLE','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','Create\x20dataset\x20record','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','result\x20rows\x20contain\x20aggregate\x20aliases','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','str','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','dataset_data_get_one','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','dataset','category','/api/{appCode}/{datasetCode}/create','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','Execute\x20BF\x20endpoint\x20function','trim','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','Get\x20one\x20dataset\x20record','List\x20datasets','分页获取数据集列表','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','datasetCode','where\x20filters\x20before\x20aggregation','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','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','{\x22id\x22:123}','Aggregate\x20dataset\x20data','method','includes','Current\x20app\x20code','operations\x20describes\x20runtime\x20APIs','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','toLowerCase','##\x20Aggregate\x20dataset\x20data','/api/custom/executeSql','summary','read','paging.totalCount\x20gives\x20total\x20rows','Returns\x20script\x20business\x20payload','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','1602080mOZZxe','15XjfTrj','/api/dataset/get-dataset-list-by-app-code','/api/dataset/getOneByCode?code={datasetCode}','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','Endpoint\x20function\x20name'];a1_0x8911=function(){return _0x1883e8;};return a1_0x8911();}function a1_0x32c5(_0x133aa5,_0x2f0ecb){_0x133aa5=_0x133aa5-0xac;const _0x89114e=a1_0x8911();let _0x32c56d=_0x89114e[_0x133aa5];return _0x32c56d;}const a1_0x1f9e01=a1_0x32c5;(function(_0x542f8c,_0x30f223){const _0x5659ed=a1_0x32c5,_0x1f1fdc=_0x542f8c();while(!![]){try{const _0x2b419d=parseInt(_0x5659ed(0xd3))/0x1*(-parseInt(_0x5659ed(0xed))/0x2)+parseInt(_0x5659ed(0xef))/0x3+parseInt(_0x5659ed(0x11d))/0x4+-parseInt(_0x5659ed(0x11e))/0x5*(parseInt(_0x5659ed(0xcd))/0x6)+-parseInt(_0x5659ed(0xc6))/0x7+-parseInt(_0x5659ed(0xc3))/0x8*(parseInt(_0x5659ed(0xd8))/0x9)+parseInt(_0x5659ed(0xf2))/0xa*(parseInt(_0x5659ed(0xf0))/0xb);if(_0x2b419d===_0x30f223)break;else _0x1f1fdc['push'](_0x1f1fdc['shift']());}catch(_0x282c35){_0x1f1fdc['push'](_0x1f1fdc['shift']());}}}(a1_0x8911,0x67f06));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x1f9e01(0xfe),'type':'string','description':'Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset'},KEYWORD_FLAG={'name':a1_0x1f9e01(0xb6),'type':a1_0x1f9e01(0xdf),'description':a1_0x1f9e01(0x100)},DOC_CODE_FLAG={'name':a1_0x1f9e01(0xc0),'type':'string','required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':a1_0x1f9e01(0xbd),'category':a1_0x1f9e01(0xfd),'title':a1_0x1f9e01(0x107),'method':a1_0x1f9e01(0xe4),'path':a1_0x1f9e01(0x11f),'summary':a1_0x1f9e01(0x108),'whenToUse':a1_0x1f9e01(0xe6),'pathParams':[],'queryParams':[],'bodySchema':a1_0x1f9e01(0xee),'responseHighlights':[a1_0x1f9e01(0xdb),a1_0x1f9e01(0x11a)],'examples':[a1_0x1f9e01(0xdd)],'notes':[a1_0x1f9e01(0xe5)],'markdown':['##\x20List\x20datasets','','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.']['join']('\x0a')},{'code':'dataset_detail','category':a1_0x1f9e01(0xfd),'title':'Dataset\x20detail','method':a1_0x1f9e01(0xd9),'path':a1_0x1f9e01(0x120),'summary':a1_0x1f9e01(0xca),'whenToUse':a1_0x1f9e01(0xaf),'pathParams':[],'queryParams':[{'name':a1_0x1f9e01(0xc0),'description':a1_0x1f9e01(0xbf)}],'bodySchema':a1_0x1f9e01(0xbe),'responseHighlights':[a1_0x1f9e01(0xb5),'relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned',a1_0x1f9e01(0x113)],'examples':['lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>'],'notes':['If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.'],'markdown':[a1_0x1f9e01(0x126),'','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.'][a1_0x1f9e01(0xb4)]('\x0a')},{'code':a1_0x1f9e01(0xc4),'category':'dataset','title':a1_0x1f9e01(0xe2),'method':a1_0x1f9e01(0xe4),'path':a1_0x1f9e01(0xe1),'summary':'条件过滤查询数据','whenToUse':a1_0x1f9e01(0x121),'pathParams':[{'name':a1_0x1f9e01(0xe9),'description':a1_0x1f9e01(0x112)},{'name':a1_0x1f9e01(0x10a),'description':a1_0x1f9e01(0xbf)}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':[a1_0x1f9e01(0xea),a1_0x1f9e01(0xc7)],'examples':[a1_0x1f9e01(0x10d),a1_0x1f9e01(0xba)],'notes':['where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.',a1_0x1f9e01(0x101),a1_0x1f9e01(0xcf),a1_0x1f9e01(0xbb)],'markdown':[a1_0x1f9e01(0xcb),'',a1_0x1f9e01(0xf8)][a1_0x1f9e01(0xb4)]('\x0a')},{'code':a1_0x1f9e01(0xb1),'category':a1_0x1f9e01(0xfd),'title':a1_0x1f9e01(0x10f),'method':'POST','path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0x1f9e01(0xad),'whenToUse':a1_0x1f9e01(0xc5),'pathParams':[{'name':'appCode','description':a1_0x1f9e01(0x112)},{'name':a1_0x1f9e01(0x10a),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x1f9e01(0xf6),'responseHighlights':[a1_0x1f9e01(0xf7),a1_0x1f9e01(0x10b)],'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_0x1f9e01(0xcc),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0x1f9e01(0x116),'',a1_0x1f9e01(0x125)][a1_0x1f9e01(0xb4)]('\x0a')},{'code':a1_0x1f9e01(0xfb),'category':'dataset','title':a1_0x1f9e01(0x106),'method':'POST','path':'/api/{appCode}/{datasetCode}/getOne','summary':'查询单条数据','whenToUse':a1_0x1f9e01(0xfc),'pathParams':[{'name':a1_0x1f9e01(0xe9),'description':a1_0x1f9e01(0x112)},{'name':a1_0x1f9e01(0x10a),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x1f9e01(0x10e),'responseHighlights':[a1_0x1f9e01(0xbc)],'examples':[a1_0x1f9e01(0x104)],'notes':[a1_0x1f9e01(0xf3)],'markdown':a1_0x1f9e01(0xb0)},{'code':a1_0x1f9e01(0xae),'category':a1_0x1f9e01(0xfd),'title':a1_0x1f9e01(0xf4),'method':a1_0x1f9e01(0xe4),'path':a1_0x1f9e01(0xff),'summary':a1_0x1f9e01(0xd6),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x1f9e01(0xe9),'description':a1_0x1f9e01(0x112)},{'name':'datasetCode','description':a1_0x1f9e01(0xbf)}],'queryParams':[],'bodySchema':a1_0x1f9e01(0xeb),'responseHighlights':[a1_0x1f9e01(0xc1)],'examples':[a1_0x1f9e01(0x114)],'notes':[a1_0x1f9e01(0x11c)],'markdown':a1_0x1f9e01(0x105)},{'code':a1_0x1f9e01(0xf1),'category':'bf','title':a1_0x1f9e01(0x123),'method':a1_0x1f9e01(0xd9),'path':a1_0x1f9e01(0xd7),'summary':a1_0x1f9e01(0xe7),'whenToUse':'已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','pathParams':[{'name':a1_0x1f9e01(0xe9),'description':a1_0x1f9e01(0x112)},{'name':a1_0x1f9e01(0xde),'description':a1_0x1f9e01(0xac)}],'queryParams':[],'bodySchema':a1_0x1f9e01(0xbe),'responseHighlights':[a1_0x1f9e01(0x124)],'examples':[a1_0x1f9e01(0xe3)],'notes':[a1_0x1f9e01(0x10c)],'markdown':'##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.'},{'code':a1_0x1f9e01(0xce),'category':'bf','title':a1_0x1f9e01(0x102),'method':'POST','path':a1_0x1f9e01(0xc8),'summary':'执行指定\x20BF\x20函数','whenToUse':a1_0x1f9e01(0xd4),'pathParams':[{'name':a1_0x1f9e01(0xe9),'description':'Current\x20app\x20code'},{'name':'functionName','description':a1_0x1f9e01(0x122)}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x1f9e01(0x11b)],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x1f9e01(0x109)],'markdown':a1_0x1f9e01(0xe0)},{'code':'custom_sql_execute','category':'custom_sql','title':'Execute\x20custom\x20SQL','method':'POST','path':a1_0x1f9e01(0x117),'summary':a1_0x1f9e01(0xb2),'whenToUse':a1_0x1f9e01(0xb7),'pathParams':[],'queryParams':[],'bodySchema':a1_0x1f9e01(0xfa),'responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':['lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27'],'notes':[a1_0x1f9e01(0xf5)],'markdown':a1_0x1f9e01(0xda)}];function entrySummary(_0x27ceff){const _0x39480c=a1_0x1f9e01;return{'code':_0x27ceff[_0x39480c(0xc0)],'category':_0x27ceff[_0x39480c(0xfe)],'method':_0x27ceff[_0x39480c(0x110)],'path':_0x27ceff[_0x39480c(0xd0)],'summary':_0x27ceff[_0x39480c(0x118)],'whenToUse':_0x27ceff[_0x39480c(0xd2)]};}export function listApiDocEntries(_0x4d6b02={}){const _0xd107eb=a1_0x1f9e01,_0x343509=String(_0x4d6b02[_0xd107eb(0xfe)]||'')[_0xd107eb(0x103)](),_0x5d0d36=String(_0x4d6b02[_0xd107eb(0xb6)]||'')[_0xd107eb(0x103)]()[_0xd107eb(0x115)]();return DOCS[_0xd107eb(0xe8)](_0x3f90e8=>{const _0x5c54fa=_0xd107eb;if(_0x343509&&_0x3f90e8[_0x5c54fa(0xfe)]!==_0x343509)return![];if(!_0x5d0d36)return!![];return[_0x3f90e8[_0x5c54fa(0xc0)],_0x3f90e8[_0x5c54fa(0xfe)],_0x3f90e8[_0x5c54fa(0x110)],_0x3f90e8['path'],_0x3f90e8['summary'],_0x3f90e8[_0x5c54fa(0xd2)],_0x3f90e8[_0x5c54fa(0xd1)]]['join']('\x20')['toLowerCase']()[_0x5c54fa(0x111)](_0x5d0d36);})[_0xd107eb(0xd5)](entrySummary);}export function getApiDocDetail(_0x54597b){const _0x5485c7=a1_0x1f9e01,_0x372346=DOCS[_0x5485c7(0xb3)](_0xf9a8f7=>_0xf9a8f7[_0x5485c7(0xc0)]===_0x54597b);if(!_0x372346)throw CliErrors[_0x5485c7(0xdc)]('API\x20doc\x20code\x20not\x20found:\x20'+_0x54597b);return{..._0x372346};}const apiDocList={'service':a1_0x1f9e01(0xc2),'command':'list','description':a1_0x1f9e01(0xc9),'risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x5f3025){const _0x14df61=a1_0x1f9e01,_0x457604=listApiDocEntries({'category':_0x5f3025[_0x14df61(0xf9)](_0x14df61(0xfe)),'keyword':_0x5f3025[_0x14df61(0xf9)](_0x14df61(0xb6))});return{'ok':!![],'data':{'total':_0x457604[_0x14df61(0xb8)],'items':_0x457604}};}},apiDocDetail={'service':a1_0x1f9e01(0xc2),'command':a1_0x1f9e01(0xb9),'description':a1_0x1f9e01(0xec),'risk':a1_0x1f9e01(0x119),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x56ea85){return{'ok':!![],'data':getApiDocDetail(_0x56ea85['str']('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5546e1,_0xcc72bd){const _0x2de16c=a2_0x3c95,_0x423ed5=_0x5546e1();while(!![]){try{const _0x1187ad=-parseInt(_0x2de16c(0xcb))/0x1*(parseInt(_0x2de16c(0xe6))/0x2)+-parseInt(_0x2de16c(0xe4))/0x3+parseInt(_0x2de16c(0xd7))/0x4*(-parseInt(_0x2de16c(0xe5))/0x5)+-parseInt(_0x2de16c(0xd8))/0x6+-parseInt(_0x2de16c(0xd2))/0x7*(parseInt(_0x2de16c(0xd9))/0x8)+-parseInt(_0x2de16c(0xe8))/0x9*(-parseInt(_0x2de16c(0xd3))/0xa)+parseInt(_0x2de16c(0xce))/0xb;if(_0x1187ad===_0xcc72bd)break;else _0x423ed5['push'](_0x423ed5['shift']());}catch(_0x56afc7){_0x423ed5['push'](_0x423ed5['shift']());}}}(a2_0x911f,0xca245));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x15094d){const _0x182c86=a2_0x3c95,_0x2ce0eb=_0x15094d[_0x182c86(0xdc)](),_0x1b323a=_0x2ce0eb[_0x182c86(0xcf)](-0x6)||_0x182c86(0xe2),_0x20f9a8=createHash(_0x182c86(0xdd))[_0x182c86(0xdf)](_0x2ce0eb)[_0x182c86(0xdb)]('hex')[_0x182c86(0xcf)](0x0,0xc);return _0x182c86(0xe1)+_0x1b323a+'_'+_0x20f9a8;}export function getAppCacheFilePath(_0x3f421c,_0x429056){const _0x579088=a2_0x3c95;return resolve(homedir(),PRODUCT_CONFIG[_0x579088(0xd4)],'cache',_0x3f421c,fingerprintAccessKey(_0x429056),_0x579088(0xde));}function a2_0x911f(){const _0x77aa6=['9416WzzPfG','code','digest','trim','sha256','my-apps.json','update','EXDEV','ak_','unknown','stringify','1827600mYCKQk','155290oRLpTY','38730mTuxgO','.tmp','2700081hQcdAh','23VDKVrd','parse','isArray','24901657IdxCXj','slice','find','EACCES','126WZUmbV','10KiVraK','homeDirName','items','utf8','28ideCZE','2655816KMKNvh'];a2_0x911f=function(){return _0x77aa6;};return a2_0x911f();}function a2_0x3c95(_0x18be14,_0x15ed10){_0x18be14=_0x18be14-0xcb;const _0x911f25=a2_0x911f();let _0x3c955d=_0x911f25[_0x18be14];return _0x3c955d;}export function readCachedAppList(_0x57a73d,_0x4bca33){const _0x3293c8=a2_0x3c95;if(!_0x4bca33?.['trim']())return null;const _0x490735=getAppCacheFilePath(_0x57a73d,_0x4bca33);if(!existsSync(_0x490735))return null;try{const _0x4e11f=readFileSync(_0x490735,_0x3293c8(0xd6));if(!_0x4e11f[_0x3293c8(0xdc)]())return null;const _0x13688a=JSON[_0x3293c8(0xcc)](_0x4e11f);if(!Array[_0x3293c8(0xcd)](_0x13688a[_0x3293c8(0xd5)]))return null;return _0x13688a;}catch{return null;}}export function writeCachedAppList(_0x2d3d67,_0x59795f,_0x4fb1c0){const _0x58f60f=a2_0x3c95,_0x22138b=getAppCacheFilePath(_0x2d3d67,_0x59795f),_0x5d548e=dirname(_0x22138b);!existsSync(_0x5d548e)&&mkdirSync(_0x5d548e,{'recursive':!![]});const _0xc91119=_0x22138b+_0x58f60f(0xe7);try{writeFileSync(_0xc91119,JSON[_0x58f60f(0xe3)](_0x4fb1c0,null,0x2)+'\x0a',{'encoding':_0x58f60f(0xd6),'mode':0x180});try{renameSync(_0xc91119,_0x22138b);}catch(_0x4b8e8f){if(_0x4b8e8f[_0x58f60f(0xda)]==='EPERM'||_0x4b8e8f[_0x58f60f(0xda)]===_0x58f60f(0xe0)||_0x4b8e8f[_0x58f60f(0xda)]===_0x58f60f(0xd1)){writeFileSync(_0x22138b,JSON[_0x58f60f(0xe3)](_0x4fb1c0,null,0x2)+'\x0a',{'encoding':_0x58f60f(0xd6)});try{unlinkSync(_0xc91119);}catch{}}else throw _0x4b8e8f;}}catch(_0x294b86){try{unlinkSync(_0xc91119);}catch{}throw _0x294b86;}return _0x22138b;}export function resolveCachedAppCode(_0x33f4f5,_0x5f525b,_0x472f09){const _0x43de63=a2_0x3c95;if(!_0x33f4f5)return undefined;const _0x5e0346=readCachedAppList(_0x5f525b,_0x472f09),_0x64386a=_0x5e0346?.[_0x43de63(0xd5)][_0x43de63(0xd0)](_0x351ca4=>_0x351ca4['appName']===_0x33f4f5&&isRuntimeAccessibleApp(_0x351ca4));return _0x64386a?.['appCode']?.[_0x43de63(0xdc)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a3_0xe821c9=a3_0x4dc0;function a3_0x4dc0(_0x38d70f,_0x21c46c){_0x38d70f=_0x38d70f-0x1bc;const _0x44852a=a3_0x4485();let _0x4dc001=_0x44852a[_0x38d70f];return _0x4dc001;}(function(_0x33c08c,_0xa9d3fd){const _0x3da5d9=a3_0x4dc0,_0x31744a=_0x33c08c();while(!![]){try{const _0x3ee528=-parseInt(_0x3da5d9(0x1e7))/0x1*(parseInt(_0x3da5d9(0x1db))/0x2)+-parseInt(_0x3da5d9(0x1dc))/0x3*(parseInt(_0x3da5d9(0x1ed))/0x4)+parseInt(_0x3da5d9(0x1be))/0x5+-parseInt(_0x3da5d9(0x1da))/0x6+parseInt(_0x3da5d9(0x1c2))/0x7*(parseInt(_0x3da5d9(0x1f4))/0x8)+-parseInt(_0x3da5d9(0x1c8))/0x9+parseInt(_0x3da5d9(0x1f2))/0xa;if(_0x3ee528===_0xa9d3fd)break;else _0x31744a['push'](_0x31744a['shift']());}catch(_0xfc84f3){_0x31744a['push'](_0x31744a['shift']());}}}(a3_0x4485,0x96335));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x17a72d,_0x4b3229){const _0x1d48a2=a3_0x4dc0,_0x41d4f9={};for(const _0x2ac546 of _0x4b3229){const _0x2e50df=_0x2ac546[_0x1d48a2(0x1ce)]===_0x1d48a2(0x1d2)?_0x17a72d[_0x1d48a2(0x1ef)](_0x2ac546['name']):_0x17a72d[_0x1d48a2(0x1c7)](_0x2ac546['name']);if(_0x2e50df!==''&&_0x2e50df!==![])_0x41d4f9[_0x2ac546['name']]=_0x2e50df;}if(_0x17a72d[_0x1d48a2(0x1f6)])_0x41d4f9['nonInteractive']=!![];return _0x41d4f9;}function normalizeLanguages(_0x43dd8d){const _0x4868ff=a3_0x4dc0;if(!Array[_0x4868ff(0x1cb)](_0x43dd8d))return[];return _0x43dd8d[_0x4868ff(0x1f8)](_0x3c55eb=>typeof _0x3c55eb===_0x4868ff(0x1d8))[_0x4868ff(0x1f3)](_0x3b2e95=>_0x3b2e95[_0x4868ff(0x1f7)]())[_0x4868ff(0x1f8)](Boolean);}function buildRemoteAppI18nFields(_0x1e4088){const _0x5754b2=a3_0x4dc0,_0x4139b5=normalizeLanguages(_0x1e4088[_0x5754b2(0x1d3)]?.[_0x5754b2(0x1ea)]);return{'enableI18n':typeof _0x1e4088['enableI18n']==='boolean'?_0x1e4088[_0x5754b2(0x1c5)]:null,'languages':_0x4139b5,'i18nInfo':_0x1e4088[_0x5754b2(0x1d3)]?{..._0x1e4088[_0x5754b2(0x1d3)],'langs':_0x4139b5[_0x5754b2(0x1c3)]?_0x4139b5:null}:null};}const listDef={'service':a3_0xe821c9(0x1d7),'command':a3_0xe821c9(0x1bf),'description':a3_0xe821c9(0x1d0),'risk':'read','requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0xe821c9(0x1ee),'type':a3_0xe821c9(0x1d8),'description':'Filter\x20by\x20environment\x20(default:\x20current\x20env)','enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0xe821c9(0x1f9),'type':a3_0xe821c9(0x1d2),'description':'Read\x20app\x20list\x20from\x20local\x20cache\x20only','default':![]},{'name':a3_0xe821c9(0x1cd),'type':a3_0xe821c9(0x1d2),'description':a3_0xe821c9(0x1e8),'default':![]},{'name':a3_0xe821c9(0x1d6),'type':a3_0xe821c9(0x1d2),'description':a3_0xe821c9(0x1c1),'default':![]}],async 'execute'(_0x547e39){const _0xe305e6=a3_0xe821c9,_0x44b8c6=_0x547e39['str'](_0xe305e6(0x1ee))||_0x547e39[_0xe305e6(0x1d4)]||getEnv()||_0xe305e6(0x1de),_0x29e570=_0x547e39[_0xe305e6(0x1ef)](_0xe305e6(0x1f9)),_0xa194ce=_0x547e39['bool'](_0xe305e6(0x1cd)),_0x538117=_0x547e39['bool'](_0xe305e6(0x1d6)),{readRawConfigWithLayers:_0x428504,resolveDefaultAppSource:_0x109485,getLocalAppAliases:_0x4d32be}=await import(_0xe305e6(0x1c9)),{getRemoteAppList:_0xd7ecc6}=await import(_0xe305e6(0x1fa)),{config:_0x239601,layers:_0xf4603f}=_0x428504(),_0x2499f8=_0x109485(_0xf4603f),{defaultApp:_0x346dfa}=_0x239601,_0x4b7d10=await _0xd7ecc6({'env':_0x44b8c6,'accessKey':_0x547e39[_0xe305e6(0x1c0)],'localOnly':_0x29e570,'noCache':_0xa194ce}),_0x48a620=_0x538117?_0x4b7d10[_0xe305e6(0x1c6)]:filterRuntimeAccessibleApps(_0x4b7d10['items']),_0x51001c=_0x4b7d10[_0xe305e6(0x1c6)][_0xe305e6(0x1c3)]-_0x48a620[_0xe305e6(0x1c3)],_0x1efa2a=_0x48a620[_0xe305e6(0x1f3)](_0x189962=>{const _0x5620d5=_0xe305e6;return{'name':_0x189962[_0x5620d5(0x1d1)],'appcode':_0x189962[_0x5620d5(0x1d5)],'named':!![],'definedIn':_0x5620d5(0x1e3),'isDefault':_0x189962[_0x5620d5(0x1d1)]===_0x346dfa,...buildAppProfileListFields(_0x44b8c6),...buildRemoteAppI18nFields(_0x189962),'source':_0x4b7d10[_0x5620d5(0x1cc)],'owner':_0x189962[_0x5620d5(0x1bc)]??null,'status':_0x189962['appPublishStatus']??null,'cachedAt':_0x4b7d10['fetchedAt']};}),_0x3a3b99=_0x4d32be(_0x239601);let _0x3098c9=0x0;for(const [_0x1fd8ad,_0x23ec6a]of Object['entries'](_0x3a3b99)){const _0x42c2dd=typeof _0x23ec6a['appcode']===_0xe305e6(0x1d8)?_0x23ec6a[_0xe305e6(0x1bd)][_0xe305e6(0x1f7)]():'';if(!_0x42c2dd)continue;const _0x36406c=findAppByCode(_0x4b7d10[_0xe305e6(0x1c6)],_0x42c2dd);if(!_0x538117&&_0x36406c&&!isRuntimeAccessibleApp(_0x36406c))continue;_0x3098c9+=0x1,_0x1efa2a['push']({'name':_0x1fd8ad,'appcode':_0x42c2dd,'named':!![],'definedIn':_0xe305e6(0x1f9),'isDefault':_0x1fd8ad===_0x346dfa,...buildAppProfileListFields(_0x44b8c6),'source':_0xe305e6(0x1d9),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x1efa2a,_0x547e39['mergedCli']);const _0x1ef37c=_0x1efa2a[_0xe305e6(0x1e5)](_0x599cfc=>_0x599cfc[_0xe305e6(0x1e9)]===!![]),_0x3fb8de=_0x346dfa??_0x1ef37c?.[_0xe305e6(0x1c4)]??null,_0x4399d0={'env':_0x44b8c6,'source':_0x4b7d10['source'],'fetchedAt':_0x4b7d10[_0xe305e6(0x1f0)],'cachePath':_0x4b7d10['cachePath'],'globalPath':_0xf4603f[_0xe305e6(0x1dd)]??null,'projectPath':_0xf4603f[_0xe305e6(0x1df)]??null,'defaultApp':_0x3fb8de,'defaultAppSource':_0x346dfa!=null?_0x2499f8:null,'localAliasCount':_0x3098c9,'remoteTotal':_0x4b7d10[_0xe305e6(0x1c6)][_0xe305e6(0x1c3)],'hiddenUnpublishedCount':_0x51001c,'includeUnpublished':_0x538117};if(_0x1efa2a[_0xe305e6(0x1c3)]===0x0)return{'ok':!![],'data':{'items':_0x1efa2a,'meta':_0x4399d0},'message':_0x4b7d10['source']===_0xe305e6(0x1e1)?_0xe305e6(0x1e0):'No\x20apps\x20found\x20on\x20the\x20platform.'};return{'ok':!![],'data':{'items':_0x1efa2a,'meta':_0x4399d0}};}},pullDef={'service':a3_0xe821c9(0x1d7),'command':a3_0xe821c9(0x1eb),'description':a3_0xe821c9(0x1e2),'risk':'write','confirmationDescription':a3_0xe821c9(0x1ca),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0xe821c9(0x1ee),'type':a3_0xe821c9(0x1d8),'description':a3_0xe821c9(0x1cf),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0xe821c9(0x1f9),'type':'boolean','description':a3_0xe821c9(0x1e4),'default':![]},{'name':a3_0xe821c9(0x1cd),'type':'boolean','description':a3_0xe821c9(0x1e8),'default':![]}],async 'execute'(_0x1fed5a){const _0x24f4bb=a3_0xe821c9,_0x1bb088=_0x1fed5a[_0x24f4bb(0x1c7)](_0x24f4bb(0x1ee))||_0x1fed5a[_0x24f4bb(0x1d4)]||getEnv()||'production',_0x58dc24=_0x1fed5a[_0x24f4bb(0x1ef)](_0x24f4bb(0x1f9)),_0x6a272a=_0x1fed5a['bool'](_0x24f4bb(0x1cd)),{getRemoteAppList:_0x64f722}=await import(_0x24f4bb(0x1fa)),_0x5498eb=await _0x64f722({'env':_0x1bb088,'accessKey':_0x1fed5a[_0x24f4bb(0x1c0)],'localOnly':_0x58dc24,'noCache':_0x6a272a});return{'ok':!![],'data':{'total':_0x5498eb[_0x24f4bb(0x1c6)][_0x24f4bb(0x1c3)],'env':_0x1bb088,'source':_0x5498eb[_0x24f4bb(0x1cc)],'fetchedAt':_0x5498eb['fetchedAt'],'cachePath':_0x5498eb['cachePath']},'message':_0x5498eb[_0x24f4bb(0x1cc)]==='cache'?_0x24f4bb(0x1ec)+_0x5498eb[_0x24f4bb(0x1c6)][_0x24f4bb(0x1c3)]+'\x20cached\x20app(s)\x20for\x20env=\x22'+_0x1bb088+'\x22.':_0x24f4bb(0x1f5)+_0x5498eb['items'][_0x24f4bb(0x1c3)]+'\x20app(s)\x20for\x20env=\x22'+_0x1bb088+'\x22.'};}},importDef={'service':a3_0xe821c9(0x1d7),'command':a3_0xe821c9(0x1f1),'description':'从\x20.rabetbase.json\x20文件导入默认应用选择','risk':a3_0xe821c9(0x1e6),'confirmationDescription':'将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x479ea4){return await runAppImport(collectFlags(_0x479ea4,appImportFlagDefs)),{'ok':!![]};}};function a3_0x4485(){const _0x21dc57=['map','19608IEcKIJ','Refreshed\x20app\x20cache\x20with\x20','nonInteractive','trim','filter','local','../../commands/app/remote-source.js','appOwnerName','appcode','5201020rwxajD','list','accessKey','Include\x20unpublished\x20apps\x20for\x20diagnostics','959SxnQir','length','name','enableI18n','items','str','8403255yreWPq','../../context.js','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','isArray','source','no-cache','type','Target\x20environment\x20(default:\x20current\x20env)','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','appName','boolean','i18nInfo','envName','appCode','include-unpublished','app','string','config','1216188HgIPVf','3842ofNWgF','769572VUyPwq','globalPath','production','projectPath','No\x20cached\x20apps\x20found.','cache','从平台刷新本地应用缓存','remote','Read\x20from\x20local\x20cache\x20only','find','write','337ZWECRx','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','isCurrent','langs','pull','Loaded\x20','8hHWkqt','env','bool','fetchedAt','import','15360480pdevgQ'];a3_0x4485=function(){return _0x21dc57;};return a3_0x4485();}export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a4_0x9adc(_0x29ca3d,_0x3a492b){_0x29ca3d=_0x29ca3d-0x1ba;const _0xf9dc1f=a4_0xf9dc();let _0x9adcd5=_0xf9dc1f[_0x29ca3d];return _0x9adcd5;}(function(_0x40f174,_0x26f081){const _0x22416c=a4_0x9adc,_0xc615a9=_0x40f174();while(!![]){try{const _0x3e7f5c=-parseInt(_0x22416c(0x1cb))/0x1*(-parseInt(_0x22416c(0x1cf))/0x2)+-parseInt(_0x22416c(0x1bf))/0x3+-parseInt(_0x22416c(0x1be))/0x4+parseInt(_0x22416c(0x1c2))/0x5*(parseInt(_0x22416c(0x1cc))/0x6)+parseInt(_0x22416c(0x1c8))/0x7*(parseInt(_0x22416c(0x1cd))/0x8)+-parseInt(_0x22416c(0x1c0))/0x9+parseInt(_0x22416c(0x1c4))/0xa;if(_0x3e7f5c===_0x26f081)break;else _0xc615a9['push'](_0xc615a9['shift']());}catch(_0x432f45){_0xc615a9['push'](_0xc615a9['shift']());}}}(a4_0xf9dc,0x737d0));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(_0xe55fdd){const _0x1fed57=a4_0x9adc;if(typeof _0xe55fdd!=='string')return null;const _0x97d672=_0xe55fdd[_0x1fed57(0x1c9)]();return _0x97d672?_0x97d672[_0x1fed57(0x1d0)]():null;}export function isRuntimeAccessibleApp(_0x473530){const _0x145038=a4_0x9adc;return normalizeAppPublishStatus(_0x473530[_0x145038(0x1bc)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x14d1f4){const _0x99aa1=a4_0x9adc;return _0x14d1f4[_0x99aa1(0x1bd)](isRuntimeAccessibleApp);}export function findAppByName(_0x461aa9,_0x433571){const _0x7ddd0=a4_0x9adc;return _0x461aa9[_0x7ddd0(0x1c1)](_0x12861f=>_0x12861f[_0x7ddd0(0x1ca)]===_0x433571);}export function findAppByCode(_0x2972e9,_0x2f15a2){const _0x1ecd58=a4_0x9adc,_0x17221c=_0x2f15a2[_0x1ecd58(0x1c9)]();if(!_0x17221c)return undefined;return _0x2972e9['find'](_0x23cd0b=>_0x23cd0b[_0x1ecd58(0x1c7)]?.[_0x1ecd58(0x1c9)]()===_0x17221c);}function a4_0xf9dc(){const _0x2de834=['UNKNOWN','20515060tBjzaY','App\x20','.\x20Publish\x20the\x20app\x20before\x20using\x20','appCode','235361fiIYQy','trim','appName','18loPqmY','6108nJJdxP','16hOmarm','Current\x20status:\x20','11906quoUTB','toUpperCase','validation','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','appPublishStatus','filter','3271452ekEiHs','2146980AMgKVY','5034195JnkYmt','find','1670kUzrqv'];a4_0xf9dc=function(){return _0x2de834;};return a4_0xf9dc();}export function runtimeInaccessibleAppError(_0x32d860,_0x35a305){const _0x14653c=a4_0x9adc,_0x5046ee=normalizeAppPublishStatus(_0x32d860['appPublishStatus'])??_0x14653c(0x1c3);return CliErrors[_0x14653c(0x1ba)](_0x14653c(0x1c5)+_0x35a305+_0x14653c(0x1bb),_0x14653c(0x1ce)+_0x5046ee+_0x14653c(0x1c6)+CLI_BIN_NAME+'\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x42ef4b,_0x56acc9){const _0x1f8dad=a5_0xd3bf,_0x589c4b=_0x42ef4b();while(!![]){try{const _0x52c431=parseInt(_0x1f8dad(0x14a))/0x1+-parseInt(_0x1f8dad(0x142))/0x2+parseInt(_0x1f8dad(0x147))/0x3+parseInt(_0x1f8dad(0x14e))/0x4+-parseInt(_0x1f8dad(0x14d))/0x5+-parseInt(_0x1f8dad(0x149))/0x6*(parseInt(_0x1f8dad(0x14b))/0x7)+parseInt(_0x1f8dad(0x14c))/0x8;if(_0x52c431===_0x56acc9)break;else _0x589c4b['push'](_0x589c4b['shift']());}catch(_0x4ea411){_0x589c4b['push'](_0x589c4b['shift']());}}}(a5_0x10db,0x1a168));import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function loadMockAppList(){const _0x298e0f=a5_0xd3bf,_0x1340f2=join(__dirname,_0x298e0f(0x145)),_0x40697c=readFileSync(_0x1340f2,_0x298e0f(0x140));return JSON['parse'](_0x40697c);}let _cached=null;function a5_0xd3bf(_0x5b041b,_0x107159){_0x5b041b=_0x5b041b-0x140;const _0x10dbc8=a5_0x10db();let _0xd3bfb6=_0x10dbc8[_0x5b041b];return _0xd3bfb6;}export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}function a5_0x10db(){const _0x2eb640=['1895272pujuJm','798390DoZhMY','23564MzfJXK','utf-8','errorCode','374670bTAUnb','Mock\x20API\x20error:\x20','errorMsg','../../../mock/app-list.json','tableData','562212MmQHkL','success','27354qVUNNO','201466xvGmoj','273mAxQdU'];a5_0x10db=function(){return _0x2eb640;};return a5_0x10db();}export function getMockRemoteAppItems(){const _0x41c2f4=a5_0xd3bf,_0x560833=getMockAppList();if(!_0x560833[_0x41c2f4(0x148)])throw new Error(_0x41c2f4(0x143)+_0x560833[_0x41c2f4(0x144)]+'\x20('+_0x560833[_0x41c2f4(0x141)]+')');return _0x560833['data'][_0x41c2f4(0x146)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2e2ab6,_0x2e75d4){const _0x5b833e=a6_0x33e0,_0x22bbde=_0x2e2ab6();while(!![]){try{const _0x1cd8f6=-parseInt(_0x5b833e(0x1bd))/0x1+parseInt(_0x5b833e(0x1c0))/0x2*(-parseInt(_0x5b833e(0x1bb))/0x3)+-parseInt(_0x5b833e(0x1c3))/0x4*(parseInt(_0x5b833e(0x1b7))/0x5)+parseInt(_0x5b833e(0x1c5))/0x6+parseInt(_0x5b833e(0x1c2))/0x7+-parseInt(_0x5b833e(0x1b9))/0x8+parseInt(_0x5b833e(0x1c4))/0x9;if(_0x1cd8f6===_0x2e75d4)break;else _0x22bbde['push'](_0x22bbde['shift']());}catch(_0x394cee){_0x22bbde['push'](_0x22bbde['shift']());}}}(a6_0x7d9d,0xa23fa));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0xacb2ac=a6_0x33e0,_0x1e0f91=(productEnv('APP_LIST_SOURCE')||'')[_0xacb2ac(0x1c1)]()[_0xacb2ac(0x1be)]();return _0x1e0f91==='mock';}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}function a6_0x33e0(_0x5d420b,_0x2600d2){_0x5d420b=_0x5d420b-0x1b6;const _0x7d9d6c=a6_0x7d9d();let _0x33e0e8=_0x7d9d6c[_0x5d420b];return _0x33e0e8;}function a6_0x7d9d(){const _0x3c3a73=['13392072oBShRo','4289850xJFPHc','remote','1923080wZhduk','items','7338352hALNqi','fetchedAt','3bJoxMV','mock','159917RwAnMA','toLowerCase','cache','2092758MyVCfG','trim','6788551AJEpvu','4QuaStm'];a6_0x7d9d=function(){return _0x3c3a73;};return a6_0x7d9d();}export async function getRemoteAppList(_0x402ab5){const _0x1ab04a=a6_0x33e0,{env:_0x300b3b,accessKey:_0x496266,localOnly:localOnly=![],noCache:noCache=![]}=_0x402ab5,_0x403630=readCachedAppList(_0x300b3b,_0x496266),_0x5f24e0=_0x496266?.['trim']()?getAppCacheFilePath(_0x300b3b,_0x496266):null;if(localOnly)return{'items':_0x403630?.[_0x1ab04a(0x1b8)]??[],'source':'cache','fetchedAt':_0x403630?.[_0x1ab04a(0x1ba)]??null,'cachePath':_0x5f24e0};try{const _0x1480d6=await getRemoteAppItems(),_0x2f653d=shouldUseMockRemoteApps()?_0x1ab04a(0x1bc):_0x1ab04a(0x1b6),_0x247247=new Date()['toISOString'](),_0x4c942e=_0x496266?.['trim']()?writeCachedAppList(_0x300b3b,_0x496266,{'env':_0x300b3b,'fetchedAt':_0x247247,'source':_0x2f653d,'items':_0x1480d6}):null;return{'items':_0x1480d6,'source':_0x2f653d,'fetchedAt':_0x247247,'cachePath':_0x4c942e};}catch(_0x3e10a3){if(!noCache&&_0x403630)return{'items':_0x403630[_0x1ab04a(0x1b8)],'source':_0x1ab04a(0x1bf),'fetchedAt':_0x403630['fetchedAt'],'cachePath':_0x5f24e0};throw _0x3e10a3;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a7_0x3e25(_0x3ac08a,_0x56b87d){_0x3ac08a=_0x3ac08a-0xb6;const _0x3b5e46=a7_0x3b5e();let _0x3e25f0=_0x3b5e46[_0x3ac08a];return _0x3e25f0;}function a7_0x3b5e(){const _0x3d5f29=['appcode','name','2196440kWGmkK','definedIn','4362470bnzXhQ','1797699zCiaTQ','333vJsCSi','currentApp','8478NVuytC','named','find','36bJywuH','local','204zZUfdm','defaultApp','24170NlHyiK','trim','appCode','77bvTmXV','isCurrent','239352EJRaZb','1453410nniZqm'];a7_0x3b5e=function(){return _0x3d5f29;};return a7_0x3b5e();}(function(_0x4b8935,_0x250eae){const _0x1ed68b=a7_0x3e25,_0x25fc1b=_0x4b8935();while(!![]){try{const _0x4549fd=-parseInt(_0x1ed68b(0xbc))/0x1*(-parseInt(_0x1ed68b(0xb9))/0x2)+parseInt(_0x1ed68b(0xb6))/0x3+-parseInt(_0x1ed68b(0xbe))/0x4*(parseInt(_0x1ed68b(0xc0))/0x5)+parseInt(_0x1ed68b(0xc6))/0x6+-parseInt(_0x1ed68b(0xcb))/0x7+-parseInt(_0x1ed68b(0xc5))/0x8*(parseInt(_0x1ed68b(0xb7))/0x9)+parseInt(_0x1ed68b(0xc9))/0xa*(parseInt(_0x1ed68b(0xc3))/0xb);if(_0x4549fd===_0x250eae)break;else _0x25fc1b['push'](_0x25fc1b['shift']());}catch(_0x1684a2){_0x25fc1b['push'](_0x25fc1b['shift']());}}}(a7_0x3b5e,0x87751));export function enrichAppListItemsWithMergedSelection(_0x28ba45,_0x349934){const _0x5745c7=a7_0x3e25;if(!_0x349934)return;const _0x1af12a=!!(_0x349934[_0x5745c7(0xb8)]??_0x349934[_0x5745c7(0xbf)]);for(const _0x4c0ccd of _0x28ba45){_0x4c0ccd[_0x5745c7(0xc4)]=![];}const _0x254a9d=_0x349934[_0x5745c7(0xc2)]!=null?String(_0x349934['appCode'])[_0x5745c7(0xc1)]():'';if(_0x1af12a){const _0x3bd2b1=_0x349934[_0x5745c7(0xb8)]??_0x349934[_0x5745c7(0xbf)];if(_0x3bd2b1){const _0x53c0be=_0x28ba45[_0x5745c7(0xbb)](_0x555834=>_0x555834[_0x5745c7(0xba)]===!![]&&_0x555834[_0x5745c7(0xc8)]===_0x3bd2b1&&_0x555834[_0x5745c7(0xca)]===_0x5745c7(0xbd)),_0x5c15aa=_0x53c0be??_0x28ba45[_0x5745c7(0xbb)](_0x188ccc=>_0x188ccc[_0x5745c7(0xba)]===!![]&&_0x188ccc[_0x5745c7(0xc8)]===_0x3bd2b1);if(_0x5c15aa){const _0x39ca0c=String(_0x5c15aa[_0x5745c7(0xc7)]??'')['trim']();if(!_0x254a9d||_0x39ca0c===_0x254a9d){_0x5c15aa['isCurrent']=!![];return;}}}if(_0x254a9d){const _0x5ae03f=_0x28ba45[_0x5745c7(0xbb)](_0x27ded3=>String(_0x27ded3[_0x5745c7(0xc7)]??'')[_0x5745c7(0xc1)]()===_0x254a9d);_0x5ae03f&&(_0x5ae03f[_0x5745c7(0xc4)]=!![]);}return;}if(!_0x254a9d)return;for(const _0x4c471d of _0x28ba45){String(_0x4c471d[_0x5745c7(0xc7)]??'')['trim']()===_0x254a9d&&(_0x4c471d[_0x5745c7(0xc4)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a8_0x314c(_0x40e5d2,_0x368e10){_0x40e5d2=_0x40e5d2-0x1f0;const _0x497572=a8_0x4975();let _0x314c67=_0x497572[_0x40e5d2];return _0x314c67;}const a8_0x3e50fa=a8_0x314c;(function(_0x4ed219,_0x4b2412){const _0xbda607=a8_0x314c,_0x359b4c=_0x4ed219();while(!![]){try{const _0x56b468=-parseInt(_0xbda607(0x1fe))/0x1*(-parseInt(_0xbda607(0x1f7))/0x2)+parseInt(_0xbda607(0x1f8))/0x3*(-parseInt(_0xbda607(0x1ff))/0x4)+parseInt(_0xbda607(0x1f3))/0x5+-parseInt(_0xbda607(0x203))/0x6+parseInt(_0xbda607(0x205))/0x7*(parseInt(_0xbda607(0x1fc))/0x8)+-parseInt(_0xbda607(0x1f5))/0x9*(-parseInt(_0xbda607(0x200))/0xa)+parseInt(_0xbda607(0x1fa))/0xb*(-parseInt(_0xbda607(0x1f9))/0xc);if(_0x56b468===_0x4b2412)break;else _0x359b4c['push'](_0x359b4c['shift']());}catch(_0x42351a){_0x359b4c['push'](_0x359b4c['shift']());}}}(a8_0x4975,0x3ac19));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a8_0x4975(){const _0x5dd83e=['args','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','1303360oGuGZC','Missing\x20app-config\x20key.','27HxJEni','key','15998kVdsgo','8763vnijqX','221316lacKRV','44sDnqju','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','1448BQCUEO','App\x20config\x20key','54QCMoXC','428ijQHlN','84310fTpPmi','validation','get','670452cfCsuW','\x20app-config\x20get\x20<key>','805hMaRdq','apiError','appCode','Unable\x20to\x20get\x20app-config\x20value:\x20key='];a8_0x4975=function(){return _0x5dd83e;};return a8_0x4975();}import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':'app-config','command':a8_0x3e50fa(0x202),'description':a8_0x3e50fa(0x1f2),'risk':'read','args':[{'name':a8_0x3e50fa(0x1f6),'description':a8_0x3e50fa(0x1fd),'required':!![]}],'flags':[],async 'execute'(_0x55517f){const _0x5703f8=a8_0x3e50fa,_0x23dec6=_0x55517f[_0x5703f8(0x1f1)][0x0]?.['trim']();if(!_0x23dec6)throw CliErrors[_0x5703f8(0x201)](_0x5703f8(0x1f4),'Usage:\x20'+CLI_BIN_NAME+_0x5703f8(0x204));try{const _0x2ccb7c=await getRuntimeAppConfigByKey(_0x55517f['appCode'],_0x23dec6);return{'ok':!![],'data':_0x2ccb7c};}catch{throw CliErrors[_0x5703f8(0x206)](_0x5703f8(0x1f0)+_0x23dec6+',\x20appCode='+_0x55517f[_0x5703f8(0x207)],_0x5703f8(0x1fb));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a9_0x2ce7(_0x566410,_0x2dbbd6){_0x566410=_0x566410-0x12f;const _0x145d0b=a9_0x145d();let _0x2ce78d=_0x145d0b[_0x566410];return _0x2ce78d;}(function(_0x24e057,_0x1bb80f){const _0x5dd604=a9_0x2ce7,_0x119929=_0x24e057();while(!![]){try{const _0x402f40=parseInt(_0x5dd604(0x135))/0x1+-parseInt(_0x5dd604(0x12f))/0x2+-parseInt(_0x5dd604(0x132))/0x3+-parseInt(_0x5dd604(0x130))/0x4+parseInt(_0x5dd604(0x134))/0x5+-parseInt(_0x5dd604(0x133))/0x6+parseInt(_0x5dd604(0x131))/0x7;if(_0x402f40===_0x1bb80f)break;else _0x119929['push'](_0x119929['shift']());}catch(_0xac0c73){_0x119929['push'](_0x119929['shift']());}}}(a9_0x145d,0xd9b12));import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];function a9_0x145d(){const _0x1bdeb5=['952314XAUQlM','762648umHbVO','464200yQFnVW','6056547CVZWpI','1246173RZLzqx','9909456vyJzDV','8192360qfrfYZ'];a9_0x145d=function(){return _0x1bdeb5;};return a9_0x145d();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x34d20d=a10_0x3128;(function(_0x34384e,_0x24daa9){const _0x14dd11=a10_0x3128,_0x261f17=_0x34384e();while(!![]){try{const _0x3b281c=parseInt(_0x14dd11(0x224))/0x1+-parseInt(_0x14dd11(0x1e6))/0x2*(-parseInt(_0x14dd11(0x1f2))/0x3)+parseInt(_0x14dd11(0x205))/0x4+parseInt(_0x14dd11(0x1e2))/0x5*(-parseInt(_0x14dd11(0x208))/0x6)+parseInt(_0x14dd11(0x21e))/0x7*(-parseInt(_0x14dd11(0x210))/0x8)+-parseInt(_0x14dd11(0x21a))/0x9*(parseInt(_0x14dd11(0x1dd))/0xa)+-parseInt(_0x14dd11(0x220))/0xb*(parseInt(_0x14dd11(0x1e8))/0xc);if(_0x3b281c===_0x24daa9)break;else _0x261f17['push'](_0x261f17['shift']());}catch(_0x387c85){_0x261f17['push'](_0x261f17['shift']());}}}(a10_0x2bda,0x2aa67));import{existsSync,readFileSync,statSync}from'node:fs';function a10_0x2bda(){const _0x48ffb4=['@ant-design/icons','test','update','boolean','antd','verbose','compiledContent','artifact','artifactType','includes','bool','file','filter','map','1171608WFsXoN','name','validation','6JCYjNu','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','description','react-dom','deleted','metadata','Optional\x20favorite-state\x20filter','parse','16vHJjoZ','List\x20current-app\x20react_module\x20Artifacts','write','Preview:\x20update\x20react_module\x20Artifact\x20','startsWith','str','/client/artifact/create','num','object','length','1972053ezCvRO','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','react','appCode','308546TBfdyR','number','11SkTTvL','detail','Artifact\x20display\x20name','string','273602ymBSmw','POST','isArray','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','Artifact\x20ID','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','react_module\x20imports\x20are\x20limited\x20to:\x20','10ACEKfF','.\x20Unsupported:\x20','updateTime','list','content','26915aOzHMt','favorite','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','3246IjpBPK','File\x20path\x20is\x20required.','2819532VJpKRm','trim','add','data','source','Created\x20Artifact\x20','build','join','/client/artifact/','Preview:\x20create\x20react_module\x20Artifact','288vXwcGt','body','isFile','File\x20is\x20not\x20a\x20regular\x20file:\x20','some'];a10_0x2bda=function(){return _0x48ffb4;};return a10_0x2bda();}import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';function a10_0x3128(_0x52cb03,_0x434fae){_0x52cb03=_0x52cb03-0x1d9;const _0x2bda80=a10_0x2bda();let _0x3128d4=_0x2bda80[_0x52cb03];return _0x3128d4;}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE='react_module',ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x34d20d(0x21c),a10_0x34d20d(0x20b),'lodash','dayjs',a10_0x34d20d(0x1fb),a10_0x34d20d(0x1f7)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x34d20d(0x1ef)](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x34d20d(0x202),'type':a10_0x34d20d(0x223),'required':!![],'description':a10_0x34d20d(0x1e5)},ARTIFACT_NAME_FLAG={'name':a10_0x34d20d(0x206),'type':a10_0x34d20d(0x223),'description':a10_0x34d20d(0x222)},METADATA_FLAG={'name':a10_0x34d20d(0x20d),'type':'string','description':a10_0x34d20d(0x1d9)};function isPlainObject(_0x4455d2){const _0x9b869a=a10_0x34d20d;return typeof _0x4455d2===_0x9b869a(0x218)&&_0x4455d2!==null&&!Array[_0x9b869a(0x226)](_0x4455d2);}function readSourceFile(_0x2e5859){const _0x2b1a9c=a10_0x34d20d;if(!_0x2e5859)throw CliErrors[_0x2b1a9c(0x207)](_0x2b1a9c(0x1e7));if(!existsSync(_0x2e5859))throw CliErrors[_0x2b1a9c(0x207)]('File\x20not\x20found:\x20'+_0x2e5859);if(!statSync(_0x2e5859)[_0x2b1a9c(0x1f4)]())throw CliErrors[_0x2b1a9c(0x207)](_0x2b1a9c(0x1f5)+_0x2e5859);const _0x5dff09=readFileSync(_0x2e5859,'utf8');return validateReactModuleSource(_0x5dff09),_0x5dff09;}function parseMetadata(_0x2b29bd){const _0x3df361=a10_0x34d20d;if(!_0x2b29bd)return undefined;let _0x310385;try{_0x310385=JSON[_0x3df361(0x20f)](_0x2b29bd);}catch{throw CliErrors[_0x3df361(0x207)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x2b29bd);}if(!isPlainObject(_0x310385))throw CliErrors[_0x3df361(0x207)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x4bb6b9={..._0x310385};return delete _0x4bb6b9[_0x3df361(0x1fd)],_0x4bb6b9;}function getPackageName(_0x2240d9){const _0x3a95e6=a10_0x34d20d;if(_0x2240d9[_0x3a95e6(0x214)]('@')){const [_0x173126,_0x147b5f]=_0x2240d9['split']('/');return _0x173126&&_0x147b5f?_0x173126+'/'+_0x147b5f:_0x2240d9;}return _0x2240d9['split']('/')[0x0]||_0x2240d9;}function validateAllowedImports(_0x230c29){const _0x3cff59=a10_0x34d20d,_0x5adcac=new Set();for(const _0x56d36d of IMPORT_SOURCE_PATTERNS){_0x56d36d['lastIndex']=0x0;let _0x211c34;while((_0x211c34=_0x56d36d['exec'](_0x230c29))!==null){const _0x53be6a=_0x211c34[0x1]?.[_0x3cff59(0x1e9)]();_0x53be6a&&_0x5adcac[_0x3cff59(0x1ea)](_0x53be6a);}}const _0x4f9141=[..._0x5adcac][_0x3cff59(0x204)](getPackageName)[_0x3cff59(0x203)](_0x4b3965=>!ALLOWED_REACT_MODULE_IMPORTS[_0x3cff59(0x200)](_0x4b3965));if(_0x4f9141[_0x3cff59(0x219)]>0x0)throw CliErrors[_0x3cff59(0x207)](_0x3cff59(0x1dc)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x3cff59(0x1de)+[...new Set(_0x4f9141)][_0x3cff59(0x1ef)](',\x20'));}export function validateReactModuleSource(_0x237499){const _0x4522c2=a10_0x34d20d;if(!_0x237499[_0x4522c2(0x1e9)]())throw CliErrors[_0x4522c2(0x207)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS[_0x4522c2(0x1f6)](_0x543e35=>_0x543e35[_0x4522c2(0x1f8)](_0x237499)))throw CliErrors[_0x4522c2(0x207)](_0x4522c2(0x1e4));validateAllowedImports(_0x237499);}function buildArtifactInput(_0xad617b){const _0x113444=a10_0x34d20d,_0x1fce31=readSourceFile(_0xad617b[_0x113444(0x215)]('file')),_0x52f3ec=_0xad617b[_0x113444(0x215)](_0x113444(0x206))[_0x113444(0x1e9)](),_0x4c7b89=parseMetadata(_0xad617b['str'](_0x113444(0x20d)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x52f3ec?{'name':_0x52f3ec}:{},'content':_0x1fce31,..._0x4c7b89?{'metadata':_0x4c7b89}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x20036e){const _0x225675=a10_0x34d20d;return{'id':_0x20036e['id'],'name':_0x20036e[_0x225675(0x206)],'artifactType':_0x20036e[_0x225675(0x1ff)],'source':_0x20036e[_0x225675(0x1ec)],'favorite':_0x20036e['favorite'],'deleted':_0x20036e[_0x225675(0x20c)],'createTime':_0x20036e['createTime'],'updateTime':_0x20036e[_0x225675(0x1df)]};}function detailArtifact(_0x1f6315){const _0x2eca44=a10_0x34d20d;return{'id':_0x1f6315['id'],'appCode':_0x1f6315[_0x2eca44(0x21d)],'name':_0x1f6315['name'],'artifactType':_0x1f6315[_0x2eca44(0x1ff)],'source':_0x1f6315[_0x2eca44(0x1ec)],'favorite':_0x1f6315[_0x2eca44(0x1e3)],'deleted':_0x1f6315[_0x2eca44(0x20c)],'content':_0x1f6315[_0x2eca44(0x1e1)]??'','compiledContent':_0x1f6315[_0x2eca44(0x1fd)],'metadata':_0x1f6315[_0x2eca44(0x20d)]??{},'createTime':_0x1f6315['createTime'],'updateTime':_0x1f6315[_0x2eca44(0x1df)]};}function readFavoriteFlag(_0x425dd7){const _0x5c01c6=a10_0x34d20d,_0x171d96=_0x425dd7['flag'](_0x5c01c6(0x1e3));return _0x171d96===undefined||_0x171d96===null||_0x171d96===''?undefined:_0x425dd7[_0x5c01c6(0x201)](_0x5c01c6(0x1e3));}const artifactList={'service':a10_0x34d20d(0x1fe),'command':a10_0x34d20d(0x1e0),'description':a10_0x34d20d(0x211),'risk':'read','flags':[{'name':'source','type':a10_0x34d20d(0x223),'description':a10_0x34d20d(0x21b)},{'name':a10_0x34d20d(0x1e3),'type':a10_0x34d20d(0x1fa),'description':a10_0x34d20d(0x20e)},VERBOSE_FLAG],async 'execute'(_0x2a9818){const _0x5af074=a10_0x34d20d,_0x53f559=await listRuntimeArtifacts(_0x2a9818[_0x5af074(0x21d)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2a9818[_0x5af074(0x215)]('source')?{'source':_0x2a9818[_0x5af074(0x215)]('source')}:{},...readFavoriteFlag(_0x2a9818)!==undefined?{'favorite':readFavoriteFlag(_0x2a9818)}:{}});return{'ok':!![],'data':{'total':_0x53f559[_0x5af074(0x219)],'items':_0x2a9818['bool'](_0x5af074(0x1fc))?_0x53f559:_0x53f559[_0x5af074(0x204)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x34d20d(0x1fe),'command':a10_0x34d20d(0x221),'description':'Show\x20one\x20Artifact\x20by\x20id','risk':'read','flags':[{...ID_FLAG,'description':a10_0x34d20d(0x1da)}],async 'execute'(_0x504182){const _0xe02542=a10_0x34d20d,_0x3fac48=await getRuntimeArtifact(_0x504182[_0xe02542(0x217)]('id'),_0x504182[_0xe02542(0x21d)]);return{'ok':!![],'data':detailArtifact(_0x3fac48)};}},artifactCreate={'service':a10_0x34d20d(0x1fe),'command':'create','description':a10_0x34d20d(0x1db),'risk':a10_0x34d20d(0x212),'confirmationDescription':a10_0x34d20d(0x209),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x1d3ebf){const _0x5ad365=a10_0x34d20d,_0x19eb07=buildArtifactInput(_0x1d3ebf),_0x13726b=await createRuntimeArtifact(_0x1d3ebf[_0x5ad365(0x21d)],_0x19eb07);return{'ok':!![],'data':detailArtifact(_0x13726b),'message':_0x5ad365(0x1ed)+_0x13726b['id']+(_0x13726b['name']?'\x20('+_0x13726b[_0x5ad365(0x206)]+')':'')};},async 'dryRun'(_0x411c62){const _0x414830=a10_0x34d20d,_0x2d7546=buildArtifactInput(_0x411c62);return dryRun(_0x414830(0x225),_0x414830(0x216))[_0x414830(0x1f3)]({'appCode':_0x411c62['appCode'],..._0x2d7546})[_0x414830(0x20a)](_0x414830(0x1f1))[_0x414830(0x1ee)]();},'writeEventSubject'(_0x4e509d){const _0x567077=a10_0x34d20d,_0x1a585e=_0x4e509d[_0x567077(0x1eb)]?.['id'];if(typeof _0x1a585e!=='string'&&typeof _0x1a585e!=='number')return undefined;return{'kind':_0x567077(0x1fe),'id':String(_0x1a585e),'action':'create'};}},artifactUpdate={'service':'artifact','command':a10_0x34d20d(0x1f9),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':'write','confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2a7288){const _0x963575=a10_0x34d20d,_0x513e30=_0x2a7288[_0x963575(0x217)]('id'),_0x28e396=buildArtifactInput(_0x2a7288),_0x5608e9=await updateRuntimeArtifact(_0x513e30,_0x2a7288['appCode'],_0x28e396);return{'ok':!![],'data':detailArtifact(_0x5608e9),'message':'Updated\x20Artifact\x20'+_0x5608e9['id']+(_0x5608e9['name']?'\x20('+_0x5608e9[_0x963575(0x206)]+')':'')};},async 'dryRun'(_0x1519a5){const _0x5100f4=a10_0x34d20d,_0x442bc7=_0x1519a5[_0x5100f4(0x217)]('id'),_0x319e5b=buildArtifactInput(_0x1519a5);return dryRun(_0x5100f4(0x225),_0x5100f4(0x1f0)+_0x442bc7+'/update')['body']({'appCode':_0x1519a5[_0x5100f4(0x21d)],..._0x319e5b})[_0x5100f4(0x20a)](_0x5100f4(0x213)+_0x442bc7)[_0x5100f4(0x1ee)]();},'writeEventSubject'(_0x5ba265){const _0x5d0939=a10_0x34d20d,_0x142425=_0x5ba265['data']?.['id'];if(typeof _0x142425!==_0x5d0939(0x223)&&typeof _0x142425!==_0x5d0939(0x21f))return undefined;return{'kind':_0x5d0939(0x1fe),'id':String(_0x142425),'action':_0x5d0939(0x1f9)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x1edf68=a10_0x3cb8;(function(_0x54f5f5,_0x2b8ca8){const _0x3e4ead=a10_0x3cb8,_0x300c9f=_0x54f5f5();while(!![]){try{const _0x3adb58=parseInt(_0x3e4ead(0x165))/0x1+parseInt(_0x3e4ead(0x141))/0x2*(parseInt(_0x3e4ead(0x170))/0x3)+parseInt(_0x3e4ead(0x153))/0x4*(parseInt(_0x3e4ead(0x16a))/0x5)+parseInt(_0x3e4ead(0x132))/0x6*(-parseInt(_0x3e4ead(0x166))/0x7)+-parseInt(_0x3e4ead(0x13e))/0x8*(-parseInt(_0x3e4ead(0x14d))/0x9)+parseInt(_0x3e4ead(0x147))/0xa+-parseInt(_0x3e4ead(0x128))/0xb;if(_0x3adb58===_0x2b8ca8)break;else _0x300c9f['push'](_0x300c9f['shift']());}catch(_0x57e470){_0x300c9f['push'](_0x300c9f['shift']());}}}(a10_0x17ae,0x91020));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';function a10_0x17ae(){const _0x12092b=['@ant-design/icons','verbose','isArray','Artifact\x20display\x20name','boolean','filter','source','/update','react_module','365734lRDljl','221494cswkpv','test','trim','/client/artifact/','5nIUJUg','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','body','dayjs','num','add','35583XIXjjm','split','name','file','exec','metadata','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','update','data','updateTime','Created\x20Artifact\x20','antd','isFile','19192800FQLqRq','build','detail','favorite','File\x20path\x20is\x20required.','List\x20current-app\x20react_module\x20Artifacts','startsWith','parse','Optional\x20favorite-state\x20filter','object','18dyjWYf','createTime','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','some','write','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','artifactType','length','compiledContent','content','map','read','1024248xVvQBv','validation','artifact','78SHrXwG','File\x20not\x20found:\x20','AGENT','POST','Artifact\x20ID','Updated\x20Artifact\x20','9563120PsCsXC','/client/artifact/create','utf8','File\x20is\x20not\x20a\x20regular\x20file:\x20','str','create','45YYJzHS','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','Preview:\x20create\x20react_module\x20Artifact','includes','deleted','Artifact\x20source\x20file\x20is\x20blank.','35592rEugXM','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','react_module\x20imports\x20are\x20limited\x20to:\x20','appCode','join','Show\x20one\x20Artifact\x20by\x20id','description','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','string'];a10_0x17ae=function(){return _0x12092b;};return a10_0x17ae();}function a10_0x3cb8(_0x387be1,_0x56062f){_0x387be1=_0x387be1-0x128;const _0x17ae26=a10_0x17ae();let _0x3cb882=_0x17ae26[_0x387be1];return _0x3cb882;}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x1edf68(0x164),ARTIFACT_SOURCE_AGENT=a10_0x1edf68(0x143),ALLOWED_REACT_MODULE_IMPORTS=['react','react-dom','lodash',a10_0x1edf68(0x16d),a10_0x1edf68(0x17b),a10_0x1edf68(0x15c)];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':'file','type':'string','required':!![],'description':a10_0x1edf68(0x16b)},ARTIFACT_NAME_FLAG={'name':a10_0x1edf68(0x172),'type':a10_0x1edf68(0x15b),'description':a10_0x1edf68(0x15f)},METADATA_FLAG={'name':a10_0x1edf68(0x175),'type':a10_0x1edf68(0x15b),'description':a10_0x1edf68(0x176)};function isPlainObject(_0x2d423d){const _0x42c96e=a10_0x1edf68;return typeof _0x2d423d===_0x42c96e(0x131)&&_0x2d423d!==null&&!Array[_0x42c96e(0x15e)](_0x2d423d);}function readSourceFile(_0x5de640){const _0x5f10fb=a10_0x1edf68;if(!_0x5de640)throw CliErrors['validation'](_0x5f10fb(0x12c));if(!existsSync(_0x5de640))throw CliErrors['validation'](_0x5f10fb(0x142)+_0x5de640);if(!statSync(_0x5de640)[_0x5f10fb(0x17c)]())throw CliErrors[_0x5f10fb(0x13f)](_0x5f10fb(0x14a)+_0x5de640);const _0x2e6135=readFileSync(_0x5de640,_0x5f10fb(0x149));return validateReactModuleSource(_0x2e6135),_0x2e6135;}function parseMetadata(_0xee98f9){const _0x30b15b=a10_0x1edf68;if(!_0xee98f9)return undefined;let _0x2e4cf1;try{_0x2e4cf1=JSON[_0x30b15b(0x12f)](_0xee98f9);}catch{throw CliErrors['validation']('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0xee98f9);}if(!isPlainObject(_0x2e4cf1))throw CliErrors[_0x30b15b(0x13f)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x150d14={..._0x2e4cf1};return delete _0x150d14[_0x30b15b(0x13a)],_0x150d14;}function getPackageName(_0x1ab4cf){const _0x25a44f=a10_0x1edf68;if(_0x1ab4cf[_0x25a44f(0x12e)]('@')){const [_0x1d2373,_0x30627e]=_0x1ab4cf['split']('/');return _0x1d2373&&_0x30627e?_0x1d2373+'/'+_0x30627e:_0x1ab4cf;}return _0x1ab4cf[_0x25a44f(0x171)]('/')[0x0]||_0x1ab4cf;}function validateAllowedImports(_0x58f2ba){const _0x133467=a10_0x1edf68,_0x20a098=new Set();for(const _0x3a11c3 of IMPORT_SOURCE_PATTERNS){_0x3a11c3['lastIndex']=0x0;let _0x55186b;while((_0x55186b=_0x3a11c3[_0x133467(0x174)](_0x58f2ba))!==null){const _0x169c6d=_0x55186b[0x1]?.[_0x133467(0x168)]();_0x169c6d&&_0x20a098[_0x133467(0x16f)](_0x169c6d);}}const _0x350fb6=[..._0x20a098][_0x133467(0x13c)](getPackageName)[_0x133467(0x161)](_0x5cc33e=>!ALLOWED_REACT_MODULE_IMPORTS[_0x133467(0x150)](_0x5cc33e));if(_0x350fb6[_0x133467(0x139)]>0x0)throw CliErrors['validation'](_0x133467(0x155)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+'.\x20Unsupported:\x20'+[...new Set(_0x350fb6)][_0x133467(0x157)](',\x20'));}export function validateReactModuleSource(_0x584677){const _0x19d8a6=a10_0x1edf68;if(!_0x584677[_0x19d8a6(0x168)]())throw CliErrors[_0x19d8a6(0x13f)](_0x19d8a6(0x152));if(PAGE_LEVEL_PATTERNS[_0x19d8a6(0x135)](_0x34889e=>_0x34889e[_0x19d8a6(0x167)](_0x584677)))throw CliErrors[_0x19d8a6(0x13f)](_0x19d8a6(0x137));validateAllowedImports(_0x584677);}function buildArtifactInput(_0x5582fb){const _0x39a50d=a10_0x1edf68,_0x1503dd=readSourceFile(_0x5582fb[_0x39a50d(0x14b)](_0x39a50d(0x173))),_0x346823=_0x5582fb[_0x39a50d(0x14b)]('name')[_0x39a50d(0x168)](),_0x5907c5=parseMetadata(_0x5582fb[_0x39a50d(0x14b)](_0x39a50d(0x175)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x346823?{'name':_0x346823}:{},'content':_0x1503dd,..._0x5907c5?{'metadata':_0x5907c5}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0xf4f27b){const _0x32babd=a10_0x1edf68;return{'id':_0xf4f27b['id'],'name':_0xf4f27b['name'],'artifactType':_0xf4f27b[_0x32babd(0x138)],'source':_0xf4f27b['source'],'favorite':_0xf4f27b[_0x32babd(0x12b)],'deleted':_0xf4f27b[_0x32babd(0x151)],'createTime':_0xf4f27b[_0x32babd(0x133)],'updateTime':_0xf4f27b[_0x32babd(0x179)]};}function detailArtifact(_0x4bd420){const _0x1b5258=a10_0x1edf68;return{'id':_0x4bd420['id'],'appCode':_0x4bd420[_0x1b5258(0x156)],'name':_0x4bd420['name'],'artifactType':_0x4bd420[_0x1b5258(0x138)],'source':_0x4bd420[_0x1b5258(0x162)],'favorite':_0x4bd420[_0x1b5258(0x12b)],'deleted':_0x4bd420['deleted'],'content':_0x4bd420[_0x1b5258(0x13b)]??'','compiledContent':_0x4bd420[_0x1b5258(0x13a)],'metadata':_0x4bd420[_0x1b5258(0x175)]??{},'createTime':_0x4bd420['createTime'],'updateTime':_0x4bd420[_0x1b5258(0x179)]};}function readFavoriteFlag(_0x5e26de){const _0x3afe97=a10_0x1edf68,_0x327188=_0x5e26de['flag'](_0x3afe97(0x12b));return _0x327188===undefined||_0x327188===null||_0x327188===''?undefined:_0x5e26de['bool'](_0x3afe97(0x12b));}const artifactList={'service':a10_0x1edf68(0x140),'command':'list','description':a10_0x1edf68(0x12d),'risk':a10_0x1edf68(0x13d),'flags':[{'name':'source','type':a10_0x1edf68(0x15b),'description':a10_0x1edf68(0x15a)},{'name':a10_0x1edf68(0x12b),'type':a10_0x1edf68(0x160),'description':a10_0x1edf68(0x130)},VERBOSE_FLAG],async 'execute'(_0x21856a){const _0x5a8407=a10_0x1edf68,_0x2a394c=await listRuntimeArtifacts(_0x21856a[_0x5a8407(0x156)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x21856a['str']('source')?{'source':_0x21856a['str']('source')}:{},...readFavoriteFlag(_0x21856a)!==undefined?{'favorite':readFavoriteFlag(_0x21856a)}:{}});return{'ok':!![],'data':{'total':_0x2a394c['length'],'items':_0x21856a['bool'](_0x5a8407(0x15d))?_0x2a394c:_0x2a394c[_0x5a8407(0x13c)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x1edf68(0x140),'command':a10_0x1edf68(0x12a),'description':a10_0x1edf68(0x158),'risk':'read','flags':[{...ID_FLAG,'description':a10_0x1edf68(0x145)}],async 'execute'(_0x5052c7){const _0x381088=a10_0x1edf68,_0x65c599=await getRuntimeArtifact(_0x5052c7[_0x381088(0x16e)]('id'),_0x5052c7['appCode']);return{'ok':!![],'data':detailArtifact(_0x65c599)};}},artifactCreate={'service':a10_0x1edf68(0x140),'command':a10_0x1edf68(0x14c),'description':a10_0x1edf68(0x134),'risk':a10_0x1edf68(0x136),'confirmationDescription':a10_0x1edf68(0x14e),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x351669){const _0x238979=a10_0x1edf68,_0x415145=buildArtifactInput(_0x351669),_0x445808=await createRuntimeArtifact(_0x351669[_0x238979(0x156)],_0x415145);return{'ok':!![],'data':detailArtifact(_0x445808),'message':_0x238979(0x17a)+_0x445808['id']+(_0x445808[_0x238979(0x172)]?'\x20('+_0x445808['name']+')':'')};},async 'dryRun'(_0x4908eb){const _0x12ab87=a10_0x1edf68,_0x2dac76=buildArtifactInput(_0x4908eb);return dryRun(_0x12ab87(0x144),_0x12ab87(0x148))[_0x12ab87(0x16c)]({'appCode':_0x4908eb[_0x12ab87(0x156)],..._0x2dac76})[_0x12ab87(0x159)](_0x12ab87(0x14f))[_0x12ab87(0x129)]();},'writeEventSubject'(_0x540002){const _0xc1555f=a10_0x1edf68,_0x57626e=_0x540002[_0xc1555f(0x178)]?.['id'];if(typeof _0x57626e!==_0xc1555f(0x15b)&&typeof _0x57626e!=='number')return undefined;return{'kind':_0xc1555f(0x140),'id':String(_0x57626e),'action':'create'};}},artifactUpdate={'service':a10_0x1edf68(0x140),'command':a10_0x1edf68(0x177),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x1edf68(0x136),'confirmationDescription':a10_0x1edf68(0x154),'flags':[{...ID_FLAG,'description':a10_0x1edf68(0x145)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2aeb29){const _0x502e27=a10_0x1edf68,_0x1dd996=_0x2aeb29[_0x502e27(0x16e)]('id'),_0x5d98f7=buildArtifactInput(_0x2aeb29),_0x49f037=await updateRuntimeArtifact(_0x1dd996,_0x2aeb29[_0x502e27(0x156)],_0x5d98f7);return{'ok':!![],'data':detailArtifact(_0x49f037),'message':_0x502e27(0x146)+_0x49f037['id']+(_0x49f037[_0x502e27(0x172)]?'\x20('+_0x49f037[_0x502e27(0x172)]+')':'')};},async 'dryRun'(_0x3170f2){const _0x246d39=a10_0x1edf68,_0x3f8c2a=_0x3170f2['num']('id'),_0xc40913=buildArtifactInput(_0x3170f2);return dryRun(_0x246d39(0x144),_0x246d39(0x169)+_0x3f8c2a+_0x246d39(0x163))[_0x246d39(0x16c)]({'appCode':_0x3170f2[_0x246d39(0x156)],..._0xc40913})['description']('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x3f8c2a)['build']();},'writeEventSubject'(_0x26199b){const _0x371f0d=a10_0x1edf68,_0x339667=_0x26199b['data']?.['id'];if(typeof _0x339667!==_0x371f0d(0x15b)&&typeof _0x339667!=='number')return undefined;return{'kind':_0x371f0d(0x140),'id':String(_0x339667),'action':_0x371f0d(0x177)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x69099b=a11_0xc9b7;(function(_0x109c26,_0x3bd6e9){const _0x31e3b3=a11_0xc9b7,_0x4ad0ba=_0x109c26();while(!![]){try{const _0x1dfc61=-parseInt(_0x31e3b3(0x1a5))/0x1*(-parseInt(_0x31e3b3(0x19b))/0x2)+parseInt(_0x31e3b3(0x192))/0x3+-parseInt(_0x31e3b3(0x190))/0x4*(-parseInt(_0x31e3b3(0x1d3))/0x5)+-parseInt(_0x31e3b3(0x1b4))/0x6*(-parseInt(_0x31e3b3(0x1b3))/0x7)+-parseInt(_0x31e3b3(0x1c2))/0x8+-parseInt(_0x31e3b3(0x1a2))/0x9+-parseInt(_0x31e3b3(0x1bb))/0xa;if(_0x1dfc61===_0x3bd6e9)break;else _0x4ad0ba['push'](_0x4ad0ba['shift']());}catch(_0x4f9f1d){_0x4ad0ba['push'](_0x4ad0ba['shift']());}}}(a11_0x25ce,0x5d189));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';function a11_0x25ce(){const _0xf9bb63=['accessKey','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','code','abort','bool','apiError','Device\x20auth\x20API\x20returned\x20HTTP\x20','source','parse','\x20config.','Write\x20to\x20global\x20config\x20(default)','7nqDNJT','709770zYnLuo','AbortError','cancelled','utf8','lovrabet-cli','once','status','12482550lDYOGW','validation','Verify:\x20','name','/device-auth?code=','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','1808496ABhUjR','object','Device\x20authorization\x20successful.','createdAt','nonInteractive','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','Device\x20auth\x20API\x20error\x20(','&source=','Device\x20authorization\x20cancelled.','project','scope','aborted','write','Write\x20to\x20project\x20config','global-default','\x20auth\x20device','floor','70WHyDBc','str','expired','json','homeDirName','boolean','getTime','AccessKey\x20saved\x20to\x20','Invalid\x20access_key\x20returned\x20by\x20server.','test','trim','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','global','191240YpWHQq','After\x20authorizing,\x20re-run:\x20','2123400FHHXps','/api/device-auth/token','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','stringify','networkError','data','SIGINT','string','\x20auth\x20status','6CjHkkR','stderr','randomUUID','url-only','removeListener','toISOString','signal','963045JJOvkW','auth','device','155736CtqfQF','\x0dWaiting\x20for\x20authorization...\x20','access_key'];a11_0x25ce=function(){return _0xf9bb63;};return a11_0x25ce();}import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x1f9906){const _0x43a79a=a11_0xc9b7;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x1f9906[_0x43a79a(0x1ac)](_0x43a79a(0x18f)),'explicitProject':_0x1f9906[_0x43a79a(0x1ac)](_0x43a79a(0x1cb)),'policy':_0x43a79a(0x1d0)}));}const ACCESS_KEY_PATTERN=/^ak_[A-Za-z0-9]{16,}$/,DEVICE_CODE_TTL_MS=0x927c0,POLL_INTERVAL_MS=0xbb8,MAX_POLLS=0xc8,MAX_CONSECUTIVE_NETWORK_ERRORS=0x5;export function generateDeviceCode(){const _0x1acce0=a11_0xc9b7;return crypto[_0x1acce0(0x19d)]();}export function buildDeviceAuthUrl(_0x16158e,_0x510fc4,_0xf7afe4='lovrabet-cli'){const _0x251e54=a11_0xc9b7;return _0x16158e+_0x251e54(0x1bf)+encodeURIComponent(_0x510fc4)+_0x251e54(0x1c9)+encodeURIComponent(_0xf7afe4);}export function getDeviceCodePath(){const _0xecab88=a11_0xc9b7;return homedir()+'/'+PRODUCT_CONFIG[_0xecab88(0x187)]+'/.device-auth';}export function readStoredDeviceCode(){const _0xd1a714=a11_0xc9b7,_0x1344db=getDeviceCodePath();if(!existsSync(_0x1344db))return null;try{const _0x1b6752=readFileSync(_0x1344db,{'encoding':_0xd1a714(0x1b7)}),_0x1d79f6=JSON[_0xd1a714(0x1b0)](_0x1b6752);if(_0x1d79f6&&typeof _0x1d79f6['code']==='string'&&typeof _0x1d79f6[_0xd1a714(0x1c5)]===_0xd1a714(0x199)&&(_0x1d79f6[_0xd1a714(0x1cc)]===_0xd1a714(0x18f)||_0x1d79f6[_0xd1a714(0x1cc)]===_0xd1a714(0x1cb)))return _0x1d79f6;}catch{}return null;}export function writeStoredDeviceCode(_0x2e99fa,_0x32cbb6){const _0x3e8240=a11_0xc9b7,_0x3b0c0c=getDeviceCodePath(),_0x87aeca=dirname(_0x3b0c0c);!existsSync(_0x87aeca)&&mkdirSync(_0x87aeca,{'recursive':!![]});const _0x511694={'code':_0x2e99fa,'createdAt':new Date()[_0x3e8240(0x1a0)](),'scope':_0x32cbb6};writeFileSync(_0x3b0c0c,JSON[_0x3e8240(0x195)](_0x511694),{'encoding':_0x3e8240(0x1b7),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x59d635=getDeviceCodePath();try{unlinkSync(_0x59d635);}catch{}}export function isStoredDeviceCodeExpired(_0x4b6172){const _0x32416f=a11_0xc9b7;return Date['now']()-new Date(_0x4b6172[_0x32416f(0x1c5)])[_0x32416f(0x189)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x45840d,_0x2f4882){const _0x3b5ebc=a11_0xc9b7,_0x359123=_0x45840d+_0x3b5ebc(0x193),_0x2c57d3=new AbortController(),_0x43110a=setTimeout(()=>_0x2c57d3[_0x3b5ebc(0x1ab)](),0x2710),_0x4d90a5=await fetch(_0x359123,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON[_0x3b5ebc(0x195)]({'code':_0x2f4882}),'signal':_0x2c57d3[_0x3b5ebc(0x1a1)]});clearTimeout(_0x43110a);if(!_0x4d90a5['ok'])throw CliErrors[_0x3b5ebc(0x196)](_0x3b5ebc(0x1ae)+_0x4d90a5[_0x3b5ebc(0x1ba)]);const _0x2637b5=await _0x4d90a5[_0x3b5ebc(0x186)](),_0x1c0e61=_0x2637b5['data']&&typeof _0x2637b5[_0x3b5ebc(0x197)]===_0x3b5ebc(0x1c3)?_0x2637b5[_0x3b5ebc(0x197)]:_0x2637b5;if(!_0x1c0e61||typeof _0x1c0e61['status']!==_0x3b5ebc(0x199))throw CliErrors[_0x3b5ebc(0x1ad)]('Invalid\x20device\x20auth\x20response');return{'status':_0x1c0e61['status'],'access_key':typeof _0x1c0e61[_0x3b5ebc(0x1a7)]==='string'?_0x1c0e61[_0x3b5ebc(0x1a7)]:undefined};}function a11_0xc9b7(_0x3a45d9,_0x1ca212){_0x3a45d9=_0x3a45d9-0x186;const _0x25ce09=a11_0x25ce();let _0xc9b7ac=_0x25ce09[_0x3a45d9];return _0xc9b7ac;}export async function pollDeviceToken(_0x4a92ac,_0x259966,_0xe988cc){const _0x2cf7b8=a11_0xc9b7;let _0xbf9f8c=0x0;for(let _0xd44d9a=0x0;_0xd44d9a<MAX_POLLS;_0xd44d9a++){if(_0xe988cc[_0x2cf7b8(0x1cd)])throw CliErrors[_0x2cf7b8(0x1b6)](_0x2cf7b8(0x1ca));let _0x54d52d;try{_0x54d52d=await fetchDeviceToken(_0x4a92ac,_0x259966);}catch(_0x4dbab2){if(_0x4dbab2 instanceof Error&&_0x4dbab2[_0x2cf7b8(0x1be)]===_0x2cf7b8(0x1b5))throw CliErrors[_0x2cf7b8(0x1b6)](_0x2cf7b8(0x1ca));_0xbf9f8c++;if(_0xbf9f8c>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x2cf7b8(0x196)](_0x2cf7b8(0x1c1));writeCliSideChannelLine(_0x2cf7b8(0x1c8)+_0xbf9f8c+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0xbf9f8c=0x0;if(_0x54d52d[_0x2cf7b8(0x1ba)]==='success'){if(!_0x54d52d[_0x2cf7b8(0x1a7)])throw CliErrors[_0x2cf7b8(0x1ad)](_0x2cf7b8(0x18b));return _0x54d52d[_0x2cf7b8(0x1a7)];}if(_0x54d52d['status']===_0x2cf7b8(0x1d5)){deleteStoredDeviceCode();throw CliErrors[_0x2cf7b8(0x1bc)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0xa24725=(_0xd44d9a+0x1)*POLL_INTERVAL_MS,_0x58a1ec=DEVICE_CODE_TTL_MS-_0xa24725,_0x25dd57=Math[_0x2cf7b8(0x1d2)](_0x58a1ec/0xea60),_0xe6c26b=Math['floor'](_0x58a1ec%0xea60/0x3e8);process[_0x2cf7b8(0x19c)]['write'](_0x2cf7b8(0x1a6)+_0x25dd57+':'+String(_0xe6c26b)['padStart'](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x2cf7b8(0x1bc)]('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function sleep(_0x1b475a){return new Promise(_0x169dcd=>setTimeout(_0x169dcd,_0x1b475a));}export const authDeviceDefinition={'service':a11_0x69099b(0x1a3),'command':a11_0x69099b(0x1a4),'description':'通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','risk':a11_0x69099b(0x1ce),'confirmationDescription':a11_0x69099b(0x194),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'global','type':'boolean','description':a11_0x69099b(0x1b2),'default':!![]},{'name':'project','type':a11_0x69099b(0x188),'description':a11_0x69099b(0x1cf),'default':![]},{'name':a11_0x69099b(0x1af),'type':a11_0x69099b(0x199),'description':a11_0x69099b(0x1c7),'default':a11_0x69099b(0x1b8)},{'name':a11_0x69099b(0x19e),'type':'boolean','description':a11_0x69099b(0x1a9),'default':![]}],async 'execute'(_0x2d17c7){const _0x2db19b=a11_0x69099b,_0x41b553=resolveAuthScopeFlags(_0x2d17c7),_0x1d41f9=_0x41b553[_0x2db19b(0x18f)]?_0x2db19b(0x18f):_0x2db19b(0x1cb),_0x3572ca=readScopedConfig(_0x41b553);if(_0x3572ca['accessKey'])return{'ok':!![],'message':'Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.'};const _0x53b918=(_0x2d17c7[_0x2db19b(0x1d4)](_0x2db19b(0x1af))||'lovrabet-cli')[_0x2db19b(0x18d)](),_0x37a656=getUserDomain(),_0x4fa8a2=readStoredDeviceCode(),_0x2fe5e8=_0x4fa8a2&&!isStoredDeviceCodeExpired(_0x4fa8a2)?_0x4fa8a2[_0x2db19b(0x1aa)]:((()=>{const _0x57b260=generateDeviceCode();return writeStoredDeviceCode(_0x57b260,_0x1d41f9),_0x57b260;})()),_0x310115=buildDeviceAuthUrl(_0x37a656,_0x2fe5e8,_0x53b918);if(_0x2d17c7[_0x2db19b(0x1ac)](_0x2db19b(0x19e)))return console['log'](_0x310115),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x310115),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x2db19b(0x1c0));if(_0x2d17c7[_0x2db19b(0x1c6)])return writeCliSideChannelLine(_0x2db19b(0x191)+CLI_BIN_NAME+_0x2db19b(0x1d1)),{'ok':!![],'message':_0x2db19b(0x18e)};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0x39d853=new AbortController(),_0x44ee58=()=>{const _0x140334=_0x2db19b;_0x39d853[_0x140334(0x1ab)](),process[_0x140334(0x19f)](_0x140334(0x198),_0x44ee58);};process[_0x2db19b(0x1b9)](_0x2db19b(0x198),_0x44ee58);let _0x4d40e7;try{_0x4d40e7=await pollDeviceToken(_0x37a656,_0x2fe5e8,_0x39d853[_0x2db19b(0x1a1)]);}finally{process['removeListener'](_0x2db19b(0x198),_0x44ee58);}if(!ACCESS_KEY_PATTERN[_0x2db19b(0x18c)](_0x4d40e7))throw CliErrors[_0x2db19b(0x1ad)](_0x2db19b(0x18b));const _0x4b3908=readScopedConfig(_0x41b553);return _0x4b3908[_0x2db19b(0x1a8)]=_0x4d40e7,writeScopedConfig(_0x4b3908,_0x41b553),deleteStoredDeviceCode(),process[_0x2db19b(0x19c)][_0x2db19b(0x1ce)]('\x0a'),writeCliSideChannelLine(_0x2db19b(0x18a)+_0x1d41f9+_0x2db19b(0x1b1)),writeCliSideChannelLine(_0x2db19b(0x1bd)+CLI_BIN_NAME+_0x2db19b(0x19a)),{'ok':!![],'message':_0x2db19b(0x1c4)};}};
|
|
1
|
+
const a11_0x313270=a11_0x4ce9;(function(_0x12700a,_0x1d7c46){const _0x55512d=a11_0x4ce9,_0x1a5b68=_0x12700a();while(!![]){try{const _0x2b7b03=-parseInt(_0x55512d(0x1a2))/0x1+-parseInt(_0x55512d(0x17c))/0x2+-parseInt(_0x55512d(0x164))/0x3*(-parseInt(_0x55512d(0x182))/0x4)+parseInt(_0x55512d(0x17a))/0x5+parseInt(_0x55512d(0x17b))/0x6+parseInt(_0x55512d(0x1a0))/0x7*(-parseInt(_0x55512d(0x167))/0x8)+parseInt(_0x55512d(0x196))/0x9;if(_0x2b7b03===_0x1d7c46)break;else _0x1a5b68['push'](_0x1a5b68['shift']());}catch(_0x3523e2){_0x1a5b68['push'](_0x1a5b68['shift']());}}}(a11_0xafba,0x2512e));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';function a11_0x4ce9(_0x3ac66b,_0x45dd63){_0x3ac66b=_0x3ac66b-0x161;const _0xafbae6=a11_0xafba();let _0x4ce9a0=_0xafbae6[_0x3ac66b];return _0x4ce9a0;}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_0xafba(){const _0x25723e=['project','\x20auth\x20device','cancelled','test','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','AbortError','auth','parse','access_key','str','apiError','createdAt','nonInteractive','source','864507nOlGFI','Write\x20to\x20project\x20config','),\x20retrying...','77160DotshV','\x20config.','SIGINT','code','stderr','padStart','name','Write\x20to\x20global\x20config\x20(default)','boolean','aborted','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','/device-auth?code=','abort','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','write','removeListener','AccessKey\x20saved\x20to\x20','After\x20authorizing,\x20re-run:\x20','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','9035WVhZdI','149898gQHsCB','577760JKsUlt','scope','Verify:\x20','Invalid\x20device\x20auth\x20response','success','url-only','4iqwGzf','data','accessKey','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','global-default','\x0dWaiting\x20for\x20authorization...\x20','bool','utf8','application/json','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','&source=','now','lovrabet-cli','stringify','\x20auth\x20status','once','json','global','Device\x20auth\x20API\x20error\x20(','3849129wZaQQJ','Device\x20auth\x20API\x20returned\x20HTTP\x20','POST','Device\x20authorization\x20cancelled.','\x20remaining','randomUUID','networkError','Invalid\x20access_key\x20returned\x20by\x20server.','device','status','119XNDHLN','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','137941MIcRqb','signal','validation','string'];a11_0xafba=function(){return _0x25723e;};return a11_0xafba();}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(_0x50091e){const _0x200fb9=a11_0x4ce9;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x50091e[_0x200fb9(0x189)](_0x200fb9(0x194)),'explicitProject':_0x50091e[_0x200fb9(0x189)](_0x200fb9(0x1a6)),'policy':_0x200fb9(0x187)}));}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 _0x1c5fee=a11_0x4ce9;return crypto[_0x1c5fee(0x19b)]();}export function buildDeviceAuthUrl(_0x369808,_0x18ade5,_0x8a5df4=a11_0x313270(0x18f)){const _0xd02047=a11_0x313270;return _0x369808+_0xd02047(0x172)+encodeURIComponent(_0x18ade5)+_0xd02047(0x18d)+encodeURIComponent(_0x8a5df4);}export function getDeviceCodePath(){return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+'/.device-auth';}export function readStoredDeviceCode(){const _0x15f536=a11_0x313270,_0x365055=getDeviceCodePath();if(!existsSync(_0x365055))return null;try{const _0x4593de=readFileSync(_0x365055,{'encoding':_0x15f536(0x18a)}),_0x109a92=JSON[_0x15f536(0x1ae)](_0x4593de);if(_0x109a92&&typeof _0x109a92['code']===_0x15f536(0x1a5)&&typeof _0x109a92[_0x15f536(0x161)]===_0x15f536(0x1a5)&&(_0x109a92[_0x15f536(0x17d)]==='global'||_0x109a92['scope']==='project'))return _0x109a92;}catch{}return null;}export function writeStoredDeviceCode(_0x30ab58,_0x4d4611){const _0x192dda=a11_0x313270,_0xb56145=getDeviceCodePath(),_0x3267d3=dirname(_0xb56145);!existsSync(_0x3267d3)&&mkdirSync(_0x3267d3,{'recursive':!![]});const _0x37eca7={'code':_0x30ab58,'createdAt':new Date()['toISOString'](),'scope':_0x4d4611};writeFileSync(_0xb56145,JSON[_0x192dda(0x190)](_0x37eca7),{'encoding':_0x192dda(0x18a),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x50a751=getDeviceCodePath();try{unlinkSync(_0x50a751);}catch{}}export function isStoredDeviceCodeExpired(_0xe03f90){const _0x26b080=a11_0x313270;return Date[_0x26b080(0x18e)]()-new Date(_0xe03f90[_0x26b080(0x161)])['getTime']()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x228629,_0x13e9a4){const _0x2fa6b4=a11_0x313270,_0x29d849=_0x228629+'/api/device-auth/token',_0x3d4b87=new AbortController(),_0x266a4d=setTimeout(()=>_0x3d4b87[_0x2fa6b4(0x173)](),0x2710),_0x2b84b3=await fetch(_0x29d849,{'method':_0x2fa6b4(0x198),'headers':{'Content-Type':_0x2fa6b4(0x18b)},'body':JSON[_0x2fa6b4(0x190)]({'code':_0x13e9a4}),'signal':_0x3d4b87['signal']});clearTimeout(_0x266a4d);if(!_0x2b84b3['ok'])throw CliErrors[_0x2fa6b4(0x19c)](_0x2fa6b4(0x197)+_0x2b84b3[_0x2fa6b4(0x19f)]);const _0x424741=await _0x2b84b3[_0x2fa6b4(0x193)](),_0x3a2956=_0x424741['data']&&typeof _0x424741[_0x2fa6b4(0x183)]==='object'?_0x424741['data']:_0x424741;if(!_0x3a2956||typeof _0x3a2956[_0x2fa6b4(0x19f)]!==_0x2fa6b4(0x1a5))throw CliErrors[_0x2fa6b4(0x1b1)](_0x2fa6b4(0x17f));return{'status':_0x3a2956['status'],'access_key':typeof _0x3a2956['access_key']===_0x2fa6b4(0x1a5)?_0x3a2956[_0x2fa6b4(0x1af)]:undefined};}export async function pollDeviceToken(_0x1e056c,_0x5272ae,_0xad50ff){const _0x22d179=a11_0x313270;let _0x6d140b=0x0;for(let _0x45b7a3=0x0;_0x45b7a3<MAX_POLLS;_0x45b7a3++){if(_0xad50ff[_0x22d179(0x170)])throw CliErrors[_0x22d179(0x1a8)](_0x22d179(0x199));let _0x1db6ca;try{_0x1db6ca=await fetchDeviceToken(_0x1e056c,_0x5272ae);}catch(_0x357525){if(_0x357525 instanceof Error&&_0x357525[_0x22d179(0x16d)]===_0x22d179(0x1ac))throw CliErrors[_0x22d179(0x1a8)](_0x22d179(0x199));_0x6d140b++;if(_0x6d140b>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x22d179(0x19c)](_0x22d179(0x18c));writeCliSideChannelLine(_0x22d179(0x195)+_0x6d140b+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x22d179(0x166)),await sleep(POLL_INTERVAL_MS);continue;}_0x6d140b=0x0;if(_0x1db6ca[_0x22d179(0x19f)]===_0x22d179(0x180)){if(!_0x1db6ca[_0x22d179(0x1af)])throw CliErrors['apiError'](_0x22d179(0x19d));return _0x1db6ca[_0x22d179(0x1af)];}if(_0x1db6ca[_0x22d179(0x19f)]==='expired'){deleteStoredDeviceCode();throw CliErrors['validation'](_0x22d179(0x185));}const _0x466604=(_0x45b7a3+0x1)*POLL_INTERVAL_MS,_0x1ef4c5=DEVICE_CODE_TTL_MS-_0x466604,_0x2a61ed=Math['floor'](_0x1ef4c5/0xea60),_0x261802=Math['floor'](_0x1ef4c5%0xea60/0x3e8);process['stderr']['write'](_0x22d179(0x188)+_0x2a61ed+':'+String(_0x261802)[_0x22d179(0x16c)](0x2,'0')+_0x22d179(0x19a)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x22d179(0x1a4)](_0x22d179(0x179));}function sleep(_0x5791cc){return new Promise(_0x4da9f6=>setTimeout(_0x4da9f6,_0x5791cc));}export const authDeviceDefinition={'service':a11_0x313270(0x1ad),'command':a11_0x313270(0x19e),'description':a11_0x313270(0x174),'risk':a11_0x313270(0x175),'confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x313270(0x194),'type':a11_0x313270(0x16f),'description':a11_0x313270(0x16e),'default':!![]},{'name':a11_0x313270(0x1a6),'type':a11_0x313270(0x16f),'description':a11_0x313270(0x165),'default':![]},{'name':a11_0x313270(0x163),'type':a11_0x313270(0x1a5),'description':a11_0x313270(0x171),'default':a11_0x313270(0x18f)},{'name':a11_0x313270(0x181),'type':a11_0x313270(0x16f),'description':a11_0x313270(0x1aa),'default':![]}],async 'execute'(_0x1841fc){const _0x2801bb=a11_0x313270,_0x392db3=resolveAuthScopeFlags(_0x1841fc),_0xec75f2=_0x392db3[_0x2801bb(0x194)]?_0x2801bb(0x194):_0x2801bb(0x1a6),_0x1db16d=readScopedConfig(_0x392db3);if(_0x1db16d[_0x2801bb(0x184)])return{'ok':!![],'message':'Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.'};const _0x434ba2=(_0x1841fc[_0x2801bb(0x1b0)](_0x2801bb(0x163))||_0x2801bb(0x18f))['trim'](),_0x445d7c=getUserDomain(),_0x581d2c=readStoredDeviceCode(),_0x393bfd=_0x581d2c&&!isStoredDeviceCodeExpired(_0x581d2c)?_0x581d2c[_0x2801bb(0x16a)]:((()=>{const _0x2f175d=generateDeviceCode();return writeStoredDeviceCode(_0x2f175d,_0xec75f2),_0x2f175d;})()),_0x3dae54=buildDeviceAuthUrl(_0x445d7c,_0x393bfd,_0x434ba2);if(_0x1841fc['bool'](_0x2801bb(0x181)))return console['log'](_0x3dae54),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x3dae54),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x2801bb(0x186));if(_0x1841fc[_0x2801bb(0x162)])return writeCliSideChannelLine(_0x2801bb(0x178)+CLI_BIN_NAME+_0x2801bb(0x1a7)),{'ok':!![],'message':_0x2801bb(0x1a1)};writeCliSideChannelLine(_0x2801bb(0x1ab));const _0x2c8d58=new AbortController(),_0x4ad881=()=>{const _0x437d7b=_0x2801bb;_0x2c8d58['abort'](),process[_0x437d7b(0x176)](_0x437d7b(0x169),_0x4ad881);};process[_0x2801bb(0x192)]('SIGINT',_0x4ad881);let _0xa83307;try{_0xa83307=await pollDeviceToken(_0x445d7c,_0x393bfd,_0x2c8d58[_0x2801bb(0x1a3)]);}finally{process[_0x2801bb(0x176)](_0x2801bb(0x169),_0x4ad881);}if(!ACCESS_KEY_PATTERN[_0x2801bb(0x1a9)](_0xa83307))throw CliErrors['apiError'](_0x2801bb(0x19d));const _0x3b61f1=readScopedConfig(_0x392db3);return _0x3b61f1['accessKey']=_0xa83307,writeScopedConfig(_0x3b61f1,_0x392db3),deleteStoredDeviceCode(),process[_0x2801bb(0x16b)][_0x2801bb(0x175)]('\x0a'),writeCliSideChannelLine(_0x2801bb(0x177)+_0xec75f2+_0x2801bb(0x168)),writeCliSideChannelLine(_0x2801bb(0x17e)+CLI_BIN_NAME+_0x2801bb(0x191)),{'ok':!![],'message':'Device\x20authorization\x20successful.'};}};
|