@lovrabet/lovrabet-cli 2.2.1-beta.1 → 2.2.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.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
|
-
(function(
|
|
2
|
+
const a0_0xb100f9=a0_0x3bc5;function a0_0xe5fc(){const _0x28e511=['600589QpNGER','Error:\x20','42BKQNip','cancelled','1622964SDwkUk','9409480PALJiM','2TbNRQA','definition','ERR_STREAM_DESTROYED','message','ERR_USE_AFTER_CLOSE','Unexpected\x20error:','Hint:\x20','assign','input','catch','code','\x20->\x20--','original','name','1013277iJQhlt','exit','log','hint','73145nyOLTY','exitCode','flags','stderr','[preparse]\x20','\x0aCancelled.\x0a','slice',':\x20--','2668230ltswcH','write','error','args','length','4382651yZXuOP','defaultCommand','130wJluZb','ExitPromptError','./framework/preparse.js','help'];a0_0xe5fc=function(){return _0x28e511;};return a0_0xe5fc();}(function(_0x420e2a,_0x5baf98){const _0x4d79b2=a0_0x3bc5,_0x43ff1f=_0x420e2a();while(!![]){try{const _0x11e402=-parseInt(_0x4d79b2(0x119))/0x1*(parseInt(_0x4d79b2(0x11f))/0x2)+-parseInt(_0x4d79b2(0x12d))/0x3+-parseInt(_0x4d79b2(0x11d))/0x4+-parseInt(_0x4d79b2(0x131))/0x5*(parseInt(_0x4d79b2(0x11b))/0x6)+-parseInt(_0x4d79b2(0x113))/0x7+-parseInt(_0x4d79b2(0x11e))/0x8+parseInt(_0x4d79b2(0x10e))/0x9*(parseInt(_0x4d79b2(0x115))/0xa);if(_0x11e402===_0x5baf98)break;else _0x43ff1f['push'](_0x43ff1f['shift']());}catch(_0x5ae861){_0x43ff1f['push'](_0x43ff1f['shift']());}}}(a0_0xe5fc,0x93c9c));import{jsx as a0_0x50db8d}from'react/jsx-runtime';import a0_0x5b6c49 from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';import{runCommand,createPipelineEnv}from'./framework/runner.js';import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';import{buildMeowFlags}from'./constant/cli.js';import{getCliVersionDisplay}from'./utils/version.js';function a0_0x3bc5(_0x2713d5,_0x1a2dcd){_0x2713d5=_0x2713d5-0x10a;const _0xe5fc03=a0_0xe5fc();let _0x3bc569=_0xe5fc03[_0x2713d5];return _0x3bc569;}const helpText=generateFullHelp(),cli=a0_0x5b6c49(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0xb100f9(0x128)](handleError);async function main(){try{await run();}catch(_0x518e1e){handleError(_0x518e1e);}}async function run(){const _0x16a0b6=a0_0xb100f9;let _0x5870c1=cli[_0x16a0b6(0x127)][0x0],_0x18db07=cli[_0x16a0b6(0x127)][0x1];const _0x395fdb=cli['flags'];try{const {correctFlags:_0x11c2b9}=await import(_0x16a0b6(0x117)),_0x2f60b5=getAllDefinitions()['flatMap'](_0x3f4000=>_0x3f4000[_0x16a0b6(0x133)]??[]),{flags:_0x27cd85,corrections:_0xca7f55}=_0x11c2b9(_0x395fdb,_0x2f60b5);if(_0xca7f55[_0x16a0b6(0x112)]>0x0){for(const _0x11d12d of _0xca7f55){process[_0x16a0b6(0x134)][_0x16a0b6(0x10f)](_0x16a0b6(0x10a)+_0x11d12d['handler']+_0x16a0b6(0x10d)+_0x11d12d[_0x16a0b6(0x12b)]+_0x16a0b6(0x12a)+_0x11d12d['corrected']+'\x0a');}Object[_0x16a0b6(0x126)](_0x395fdb,_0x27cd85);}}catch{}if(!_0x5870c1){const {waitUntilExit:_0xa31da9}=render(a0_0x50db8d(Help,{}));await _0xa31da9();return;}const _0x5f39b0=resolveRemovedCommand(_0x5870c1,_0x18db07);if(_0x5f39b0)throw CliErrors['validation'](_0x5f39b0[_0x16a0b6(0x122)],_0x5f39b0[_0x16a0b6(0x130)]);if(!isKnownService(_0x5870c1)){const _0x25828a=resolveDynamicServiceCommand(cli[_0x16a0b6(0x127)],_0x395fdb);if(_0x25828a){if(_0x395fdb[_0x16a0b6(0x118)]){console[_0x16a0b6(0x12f)](generateCommandHelp(_0x25828a[_0x16a0b6(0x120)]));return;}Object[_0x16a0b6(0x126)](_0x395fdb,_0x25828a[_0x16a0b6(0x133)]);const _0x1e9d48=buildConfigFromFlags(_0x395fdb);await initGlobalEnvironment(_0x1e9d48);const _0x3f455c=createPipelineEnv(_0x1e9d48,_0x395fdb);_0x3f455c[_0x16a0b6(0x111)]=_0x25828a[_0x16a0b6(0x111)],await runCommand(_0x25828a[_0x16a0b6(0x120)],_0x3f455c);return;}if(_0x395fdb[_0x16a0b6(0x118)]){const _0xd76787=generateDynamicServiceHelp(_0x5870c1);if(_0xd76787){console[_0x16a0b6(0x12f)](_0xd76787);return;}}const {waitUntilExit:_0x5323f9}=render(a0_0x50db8d(Help,{}));await _0x5323f9();return;}const _0x3ec305=getServiceEntry(_0x5870c1);if(!_0x18db07){if(_0x395fdb['help']){console[_0x16a0b6(0x12f)](generateServiceHelp(_0x5870c1));return;}if(_0x3ec305[_0x16a0b6(0x114)])_0x18db07=_0x3ec305['defaultCommand'];else{console['log'](generateServiceHelp(_0x5870c1));return;}}const _0x3c685=findDefinition(_0x5870c1,_0x18db07);!_0x3c685&&(console[_0x16a0b6(0x12f)](generateServiceHelp(_0x5870c1)),handleError(CliErrors['unknownCommand'](_0x5870c1+'\x20'+_0x18db07)));if(_0x395fdb[_0x16a0b6(0x118)]){console['log'](generateCommandHelp(_0x3c685));return;}const _0x1f077b=buildConfigFromFlags(_0x395fdb);await initGlobalEnvironment(_0x1f077b);const _0x3fb719=createPipelineEnv(_0x1f077b,_0x395fdb);_0x3fb719[_0x16a0b6(0x111)]=cli[_0x16a0b6(0x127)][_0x16a0b6(0x10c)](0x2),await runCommand(_0x3c685,_0x3fb719);}function handleError(_0x47b6c3){const _0xfe8648=a0_0xb100f9;if(_0x47b6c3 instanceof CliError){_0x47b6c3[_0xfe8648(0x129)]===_0xfe8648(0x11c)&&(process[_0xfe8648(0x134)][_0xfe8648(0x10f)]('\x0aCancelled.\x0a'),process[_0xfe8648(0x12e)](0x0));console[_0xfe8648(0x110)](_0xfe8648(0x11a)+_0x47b6c3['message']);if(_0x47b6c3[_0xfe8648(0x130)])console['error'](_0xfe8648(0x125)+_0x47b6c3[_0xfe8648(0x130)]);process[_0xfe8648(0x12e)](_0x47b6c3[_0xfe8648(0x132)]);}isUserCancellation(_0x47b6c3)&&(process[_0xfe8648(0x134)][_0xfe8648(0x10f)](_0xfe8648(0x10b)),process[_0xfe8648(0x12e)](0x0)),console[_0xfe8648(0x110)](_0xfe8648(0x124),_0x47b6c3),process['exit'](0x1);}function isUserCancellation(_0x1eb1fe){const _0x5b25d5=a0_0xb100f9;if(!(_0x1eb1fe instanceof Error))return![];if(_0x1eb1fe[_0x5b25d5(0x12c)]===_0x5b25d5(0x116))return!![];if(_0x1eb1fe['code']===_0x5b25d5(0x123))return!![];if(_0x1eb1fe[_0x5b25d5(0x129)]===_0x5b25d5(0x121))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x3f04cd=a1_0xe0f9;(function(_0x13c2ea,_0x23e468){const _0x29d2d7=a1_0xe0f9,_0x1e2602=_0x13c2ea();while(!![]){try{const _0x401679=parseInt(_0x29d2d7(0x176))/0x1+parseInt(_0x29d2d7(0x18d))/0x2+parseInt(_0x29d2d7(0x197))/0x3+parseInt(_0x29d2d7(0x189))/0x4+-parseInt(_0x29d2d7(0x19a))/0x5*(-parseInt(_0x29d2d7(0x187))/0x6)+-parseInt(_0x29d2d7(0x15d))/0x7*(parseInt(_0x29d2d7(0x148))/0x8)+-parseInt(_0x29d2d7(0x199))/0x9;if(_0x401679===_0x23e468)break;else _0x1e2602['push'](_0x1e2602['shift']());}catch(_0x16beaa){_0x1e2602['push'](_0x1e2602['shift']());}}}(a1_0x4aeb,0x21633));function a1_0xe0f9(_0x1c8fe9,_0x22b3e7){_0x1c8fe9=_0x1c8fe9-0x138;const _0x4aeb35=a1_0x4aeb();let _0xe0f952=_0x4aeb35[_0x1c8fe9];return _0xe0f952;}function a1_0x4aeb(){const _0x48708c=['tableData\x20contains\x20records','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','7Cxlojn','创建数据','where\x20filters\x20before\x20aggregation','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','/api/endpoint/{appCode}/{functionName}','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','/api/dataset/getOneByCode?code={datasetCode}','string','custom_sql','includes','/api/{appCode}/{datasetCode}/filter','read','whenToUse','{\x22param\x22:\x22value\x22}','dataset_data_get_one','validation','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','条件过滤查询数据','dataset_data_create','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','dataset_list','paging.totalCount\x20gives\x20total\x20rows','None','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','1195cfeHIy','category','List\x20available\x20runtime\x20API\x20documentation\x20entries','Execute\x20custom\x20SQL','/api/{appCode}/{datasetCode}/getOne','Dataset\x20detail','执行指定\x20BF\x20函数','api-doc','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','{\x22id\x22:123}','bf_detail','trim','POST','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','/api/custom/executeSql','dataset_data_filter','##\x20Filter\x20dataset\x20data','6exvlMh','获取数据集详情','971300SChXbz','dataset_detail','/api/{appCode}/{datasetCode}/aggregate','Aggregate\x20dataset\x20data','342224lpwsdx','keyword','分页获取数据集列表','Returns\x20script\x20business\x20payload','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','List\x20datasets','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','path','detail','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','223971ZkdUpf','summary','1863576BvhFLW','572895DjMXEo','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','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','find','datasetCode','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','API\x20doc\x20code\x20not\x20found:\x20','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Show\x20runtime\x20API\x20documentation\x20by\x20code','dataset_data_aggregate','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','/api/dataset/get-dataset-list-by-app-code','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','str','map','fields/properties\x20describe\x20data\x20shape','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','Get\x20BF\x20endpoint\x20function\x20contract','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','appCode','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','filter','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','dataset','Filter\x20dataset\x20data','##\x20List\x20datasets','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','custom_sql_execute','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','Current\x20app\x20code','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','##\x20Dataset\x20detail','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','result\x20rows\x20contain\x20aggregate\x20aliases','title','2084392GfCtGX','functionName','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','operations\x20describes\x20runtime\x20APIs','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','##\x20Aggregate\x20dataset\x20data','tableData\x20contains\x20dataset\x20id/code/name','Get\x20one\x20dataset\x20record','Exact\x20endpoint\x20function\x20name','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','Returns\x20one\x20matching\x20business\x20record','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','code','join','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','32-character\x20dataset\x20code'];a1_0x4aeb=function(){return _0x48708c;};return a1_0x4aeb();}import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x3f04cd(0x177),'type':'string','description':a1_0x3f04cd(0x1af)},KEYWORD_FLAG={'name':'keyword','type':a1_0x3f04cd(0x164),'description':'Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text'},DOC_CODE_FLAG={'name':a1_0x3f04cd(0x157),'type':a1_0x3f04cd(0x164),'required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':a1_0x3f04cd(0x172),'category':a1_0x3f04cd(0x13a),'title':a1_0x3f04cd(0x192),'method':a1_0x3f04cd(0x182),'path':a1_0x3f04cd(0x1a6),'summary':a1_0x3f04cd(0x18f),'whenToUse':a1_0x3f04cd(0x191),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':[a1_0x3f04cd(0x14e),a1_0x3f04cd(0x173)],'examples':[a1_0x3f04cd(0x14c)],'notes':[a1_0x3f04cd(0x19c)],'markdown':[a1_0x3f04cd(0x13c),'',a1_0x3f04cd(0x1a9)]['join']('\x0a')},{'code':a1_0x3f04cd(0x18a),'category':a1_0x3f04cd(0x13a),'title':a1_0x3f04cd(0x17b),'method':'GET','path':a1_0x3f04cd(0x163),'summary':a1_0x3f04cd(0x188),'whenToUse':a1_0x3f04cd(0x183),'pathParams':[],'queryParams':[{'name':'code','description':a1_0x3f04cd(0x15a)}],'bodySchema':a1_0x3f04cd(0x174),'responseHighlights':[a1_0x3f04cd(0x1ac),a1_0x3f04cd(0x15c),a1_0x3f04cd(0x14b)],'examples':[a1_0x3f04cd(0x171)],'notes':[a1_0x3f04cd(0x175)],'markdown':[a1_0x3f04cd(0x143),'',a1_0x3f04cd(0x1a7)][a1_0x3f04cd(0x158)]('\x0a')},{'code':a1_0x3f04cd(0x185),'category':a1_0x3f04cd(0x13a),'title':a1_0x3f04cd(0x13b),'method':'POST','path':a1_0x3f04cd(0x167),'summary':a1_0x3f04cd(0x16e),'whenToUse':a1_0x3f04cd(0x153),'pathParams':[{'name':a1_0x3f04cd(0x1b0),'description':a1_0x3f04cd(0x140)},{'name':a1_0x3f04cd(0x19e),'description':a1_0x3f04cd(0x15a)}],'queryParams':[],'bodySchema':a1_0x3f04cd(0x162),'responseHighlights':[a1_0x3f04cd(0x15b),'paging\x20contains\x20pagination'],'examples':[a1_0x3f04cd(0x19b),'lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27'],'notes':[a1_0x3f04cd(0x19f),a1_0x3f04cd(0x156),a1_0x3f04cd(0x141),a1_0x3f04cd(0x139)],'markdown':[a1_0x3f04cd(0x186),'',a1_0x3f04cd(0x16d)][a1_0x3f04cd(0x158)]('\x0a')},{'code':a1_0x3f04cd(0x1a4),'category':'dataset','title':a1_0x3f04cd(0x18c),'method':'POST','path':a1_0x3f04cd(0x18b),'summary':'聚合查询数据集数据','whenToUse':a1_0x3f04cd(0x1a8),'pathParams':[{'name':'appCode','description':a1_0x3f04cd(0x140)},{'name':'datasetCode','description':a1_0x3f04cd(0x15a)}],'queryParams':[],'bodySchema':a1_0x3f04cd(0x154),'responseHighlights':[a1_0x3f04cd(0x146),a1_0x3f04cd(0x15f)],'examples':[a1_0x3f04cd(0x1b1)],'notes':[a1_0x3f04cd(0x1a0),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0x3f04cd(0x14d),'',a1_0x3f04cd(0x17e)][a1_0x3f04cd(0x158)]('\x0a')},{'code':a1_0x3f04cd(0x16b),'category':a1_0x3f04cd(0x13a),'title':a1_0x3f04cd(0x14f),'method':a1_0x3f04cd(0x182),'path':a1_0x3f04cd(0x17a),'summary':'查询单条数据','whenToUse':a1_0x3f04cd(0x142),'pathParams':[{'name':a1_0x3f04cd(0x1b0),'description':a1_0x3f04cd(0x140)},{'name':'datasetCode','description':a1_0x3f04cd(0x15a)}],'queryParams':[],'bodySchema':a1_0x3f04cd(0x17f),'responseHighlights':[a1_0x3f04cd(0x152)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':[a1_0x3f04cd(0x144)],'markdown':'##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.'},{'code':a1_0x3f04cd(0x16f),'category':a1_0x3f04cd(0x13a),'title':'Create\x20dataset\x20record','method':a1_0x3f04cd(0x182),'path':'/api/{appCode}/{datasetCode}/create','summary':a1_0x3f04cd(0x15e),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x3f04cd(0x1b0),'description':a1_0x3f04cd(0x140)},{'name':a1_0x3f04cd(0x19e),'description':a1_0x3f04cd(0x15a)}],'queryParams':[],'bodySchema':'{\x22fieldName\x22:\x22value\x22}','responseHighlights':[a1_0x3f04cd(0x145)],'examples':['lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27'],'notes':['This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.'],'markdown':a1_0x3f04cd(0x160)},{'code':a1_0x3f04cd(0x180),'category':'bf','title':a1_0x3f04cd(0x1ae),'method':'GET','path':'/client/bff/endpoint/{appCode}/{functionName}','summary':'按应用和函数名精确获取\x20BF\x20运行契约','whenToUse':a1_0x3f04cd(0x170),'pathParams':[{'name':'appCode','description':a1_0x3f04cd(0x140)},{'name':a1_0x3f04cd(0x149),'description':a1_0x3f04cd(0x150)}],'queryParams':[],'bodySchema':a1_0x3f04cd(0x174),'responseHighlights':[a1_0x3f04cd(0x159)],'examples':[a1_0x3f04cd(0x13d)],'notes':[a1_0x3f04cd(0x1ad)],'markdown':a1_0x3f04cd(0x1a5)},{'code':'bf_execute','category':'bf','title':'Execute\x20BF\x20endpoint\x20function','method':a1_0x3f04cd(0x182),'path':a1_0x3f04cd(0x161),'summary':a1_0x3f04cd(0x17c),'whenToUse':a1_0x3f04cd(0x196),'pathParams':[{'name':'appCode','description':a1_0x3f04cd(0x140)},{'name':a1_0x3f04cd(0x149),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x3f04cd(0x16a),'responseHighlights':[a1_0x3f04cd(0x190)],'examples':[a1_0x3f04cd(0x193)],'notes':[a1_0x3f04cd(0x151)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':a1_0x3f04cd(0x13e),'category':a1_0x3f04cd(0x165),'title':a1_0x3f04cd(0x179),'method':a1_0x3f04cd(0x182),'path':a1_0x3f04cd(0x184),'summary':'执行自定义\x20SQL','whenToUse':a1_0x3f04cd(0x1a2),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':[a1_0x3f04cd(0x14a)],'notes':[a1_0x3f04cd(0x13f)],'markdown':a1_0x3f04cd(0x155)}];function entrySummary(_0xac350d){const _0x335f13=a1_0x3f04cd;return{'code':_0xac350d[_0x335f13(0x157)],'category':_0xac350d[_0x335f13(0x177)],'method':_0xac350d['method'],'path':_0xac350d[_0x335f13(0x194)],'summary':_0xac350d[_0x335f13(0x198)],'whenToUse':_0xac350d['whenToUse']};}export function listApiDocEntries(_0x33d95e={}){const _0x4bf645=a1_0x3f04cd,_0x48ef36=String(_0x33d95e[_0x4bf645(0x177)]||'')[_0x4bf645(0x181)](),_0x2dd629=String(_0x33d95e[_0x4bf645(0x18e)]||'')[_0x4bf645(0x181)]()['toLowerCase']();return DOCS[_0x4bf645(0x138)](_0x3c74af=>{const _0x5c3332=_0x4bf645;if(_0x48ef36&&_0x3c74af['category']!==_0x48ef36)return![];if(!_0x2dd629)return!![];return[_0x3c74af[_0x5c3332(0x157)],_0x3c74af[_0x5c3332(0x177)],_0x3c74af['method'],_0x3c74af['path'],_0x3c74af['summary'],_0x3c74af[_0x5c3332(0x169)],_0x3c74af[_0x5c3332(0x147)]]['join']('\x20')['toLowerCase']()[_0x5c3332(0x166)](_0x2dd629);})[_0x4bf645(0x1ab)](entrySummary);}export function getApiDocDetail(_0x342fb1){const _0x457e3b=a1_0x3f04cd,_0x3ceb13=DOCS[_0x457e3b(0x19d)](_0x45b09c=>_0x45b09c[_0x457e3b(0x157)]===_0x342fb1);if(!_0x3ceb13)throw CliErrors[_0x457e3b(0x16c)](_0x457e3b(0x1a1)+_0x342fb1);return{..._0x3ceb13};}const apiDocList={'service':a1_0x3f04cd(0x17d),'command':'list','description':a1_0x3f04cd(0x178),'risk':a1_0x3f04cd(0x168),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x1dda4f){const _0x55147b=a1_0x3f04cd,_0x23f3a0=listApiDocEntries({'category':_0x1dda4f[_0x55147b(0x1aa)]('category'),'keyword':_0x1dda4f[_0x55147b(0x1aa)](_0x55147b(0x18e))});return{'ok':!![],'data':{'total':_0x23f3a0['length'],'items':_0x23f3a0}};}},apiDocDetail={'service':a1_0x3f04cd(0x17d),'command':a1_0x3f04cd(0x195),'description':a1_0x3f04cd(0x1a3),'risk':a1_0x3f04cd(0x168),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x116610){const _0x2db913=a1_0x3f04cd;return{'ok':!![],'data':getApiDocDetail(_0x116610[_0x2db913(0x1aa)](_0x2db913(0x157)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
function a1_0x5a5c(_0xa6fa67,_0x94eca2){_0xa6fa67=_0xa6fa67-0x1b1;const _0x34008b=a1_0x3400();let _0x5a5cab=_0x34008b[_0xa6fa67];return _0x5a5cab;}const a1_0x5c63cb=a1_0x5a5c;(function(_0x396795,_0x39923a){const _0x41d621=a1_0x5a5c,_0x5be9d7=_0x396795();while(!![]){try{const _0x30d3f2=parseInt(_0x41d621(0x1d2))/0x1*(parseInt(_0x41d621(0x1e6))/0x2)+parseInt(_0x41d621(0x1b8))/0x3*(-parseInt(_0x41d621(0x228))/0x4)+-parseInt(_0x41d621(0x1cf))/0x5+parseInt(_0x41d621(0x212))/0x6*(parseInt(_0x41d621(0x1b1))/0x7)+parseInt(_0x41d621(0x1b9))/0x8*(-parseInt(_0x41d621(0x1ba))/0x9)+-parseInt(_0x41d621(0x1e7))/0xa*(parseInt(_0x41d621(0x1fc))/0xb)+parseInt(_0x41d621(0x1fa))/0xc*(parseInt(_0x41d621(0x1ca))/0xd);if(_0x30d3f2===_0x39923a)break;else _0x5be9d7['push'](_0x5be9d7['shift']());}catch(_0x58f485){_0x5be9d7['push'](_0x5be9d7['shift']());}}}(a1_0x3400,0x5b483));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':'category','type':a1_0x5c63cb(0x1d0),'description':a1_0x5c63cb(0x20b)},KEYWORD_FLAG={'name':a1_0x5c63cb(0x1f9),'type':'string','description':a1_0x5c63cb(0x215)},DOC_CODE_FLAG={'name':a1_0x5c63cb(0x1ea),'type':a1_0x5c63cb(0x1d0),'required':!![],'description':a1_0x5c63cb(0x1b3)},DOCS=[{'code':a1_0x5c63cb(0x210),'category':a1_0x5c63cb(0x205),'title':a1_0x5c63cb(0x1c9),'method':a1_0x5c63cb(0x1e9),'path':'/api/dataset/get-dataset-list-by-app-code','summary':a1_0x5c63cb(0x214),'whenToUse':a1_0x5c63cb(0x226),'pathParams':[],'queryParams':[],'bodySchema':a1_0x5c63cb(0x227),'responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name',a1_0x5c63cb(0x209)],'examples':[a1_0x5c63cb(0x1fe)],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x5c63cb(0x1bb),'',a1_0x5c63cb(0x20d)][a1_0x5c63cb(0x1c6)]('\x0a')},{'code':'dataset_detail','category':a1_0x5c63cb(0x205),'title':a1_0x5c63cb(0x1d6),'method':a1_0x5c63cb(0x21c),'path':a1_0x5c63cb(0x1c5),'summary':a1_0x5c63cb(0x223),'whenToUse':a1_0x5c63cb(0x1f0),'pathParams':[],'queryParams':[{'name':'code','description':a1_0x5c63cb(0x1d4)}],'bodySchema':a1_0x5c63cb(0x1cb),'responseHighlights':[a1_0x5c63cb(0x207),a1_0x5c63cb(0x1fb),a1_0x5c63cb(0x22a)],'examples':[a1_0x5c63cb(0x22d)],'notes':[a1_0x5c63cb(0x203)],'markdown':['##\x20Dataset\x20detail','','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.'][a1_0x5c63cb(0x1c6)]('\x0a')},{'code':a1_0x5c63cb(0x22b),'category':a1_0x5c63cb(0x205),'title':a1_0x5c63cb(0x1e1),'method':a1_0x5c63cb(0x1e9),'path':a1_0x5c63cb(0x1ff),'summary':a1_0x5c63cb(0x1f4),'whenToUse':a1_0x5c63cb(0x1d1),'pathParams':[{'name':a1_0x5c63cb(0x1eb),'description':a1_0x5c63cb(0x21a)},{'name':a1_0x5c63cb(0x1b4),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x5c63cb(0x1d7),'responseHighlights':[a1_0x5c63cb(0x1be),a1_0x5c63cb(0x20f)],'examples':[a1_0x5c63cb(0x1bc),a1_0x5c63cb(0x1df)],'notes':['where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.',a1_0x5c63cb(0x1e4),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x5c63cb(0x1db)],'markdown':['##\x20Filter\x20dataset\x20data','',a1_0x5c63cb(0x1b5)]['join']('\x0a')},{'code':a1_0x5c63cb(0x1bd),'category':a1_0x5c63cb(0x205),'title':a1_0x5c63cb(0x22e),'method':'POST','path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0x5c63cb(0x1e5),'whenToUse':a1_0x5c63cb(0x211),'pathParams':[{'name':'appCode','description':a1_0x5c63cb(0x21a)},{'name':a1_0x5c63cb(0x1b4),'description':a1_0x5c63cb(0x1d4)}],'queryParams':[],'bodySchema':a1_0x5c63cb(0x21d),'responseHighlights':[a1_0x5c63cb(0x1da),'where\x20filters\x20before\x20aggregation'],'examples':[a1_0x5c63cb(0x217)],'notes':[a1_0x5c63cb(0x1d3),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0x5c63cb(0x1e8),'',a1_0x5c63cb(0x1c2)][a1_0x5c63cb(0x1c6)]('\x0a')},{'code':a1_0x5c63cb(0x1e3),'category':a1_0x5c63cb(0x205),'title':'Get\x20one\x20dataset\x20record','method':a1_0x5c63cb(0x1e9),'path':a1_0x5c63cb(0x1e2),'summary':a1_0x5c63cb(0x219),'whenToUse':a1_0x5c63cb(0x1cc),'pathParams':[{'name':'appCode','description':a1_0x5c63cb(0x21a)},{'name':a1_0x5c63cb(0x1b4),'description':a1_0x5c63cb(0x1d4)}],'queryParams':[],'bodySchema':a1_0x5c63cb(0x21b),'responseHighlights':[a1_0x5c63cb(0x1d5)],'examples':[a1_0x5c63cb(0x20e)],'notes':[a1_0x5c63cb(0x1f5)],'markdown':a1_0x5c63cb(0x1cd)},{'code':a1_0x5c63cb(0x1bf),'category':'dataset','title':a1_0x5c63cb(0x1b7),'method':a1_0x5c63cb(0x1e9),'path':a1_0x5c63cb(0x1de),'summary':'创建数据','whenToUse':a1_0x5c63cb(0x1f7),'pathParams':[{'name':'appCode','description':a1_0x5c63cb(0x21a)},{'name':a1_0x5c63cb(0x1b4),'description':a1_0x5c63cb(0x1d4)}],'queryParams':[],'bodySchema':'{\x22fieldName\x22:\x22value\x22}','responseHighlights':['Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result'],'examples':[a1_0x5c63cb(0x213)],'notes':[a1_0x5c63cb(0x229)],'markdown':a1_0x5c63cb(0x1c0)},{'code':a1_0x5c63cb(0x1dd),'category':'bf','title':a1_0x5c63cb(0x230),'method':a1_0x5c63cb(0x21c),'path':a1_0x5c63cb(0x220),'summary':a1_0x5c63cb(0x1c8),'whenToUse':a1_0x5c63cb(0x1f3),'pathParams':[{'name':a1_0x5c63cb(0x1eb),'description':'Current\x20app\x20code'},{'name':a1_0x5c63cb(0x221),'description':'Exact\x20endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x5c63cb(0x1cb),'responseHighlights':[a1_0x5c63cb(0x206)],'examples':['lovrabet\x20bff\x20detail\x20--name\x20<functionName>'],'notes':[a1_0x5c63cb(0x208)],'markdown':a1_0x5c63cb(0x204)},{'code':a1_0x5c63cb(0x224),'category':'bf','title':a1_0x5c63cb(0x216),'method':a1_0x5c63cb(0x1e9),'path':a1_0x5c63cb(0x1ef),'summary':a1_0x5c63cb(0x201),'whenToUse':a1_0x5c63cb(0x222),'pathParams':[{'name':a1_0x5c63cb(0x1eb),'description':'Current\x20app\x20code'},{'name':a1_0x5c63cb(0x221),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x5c63cb(0x20a),'responseHighlights':[a1_0x5c63cb(0x1c7)],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x5c63cb(0x22c)],'markdown':a1_0x5c63cb(0x1ed)},{'code':'custom_sql_execute','category':a1_0x5c63cb(0x1b6),'title':a1_0x5c63cb(0x1e0),'method':a1_0x5c63cb(0x1e9),'path':a1_0x5c63cb(0x21f),'summary':a1_0x5c63cb(0x225),'whenToUse':a1_0x5c63cb(0x22f),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':['lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27'],'notes':[a1_0x5c63cb(0x1ce)],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x272332){const _0x3376de=a1_0x5c63cb;return{'code':_0x272332[_0x3376de(0x1ea)],'category':_0x272332[_0x3376de(0x218)],'method':_0x272332[_0x3376de(0x1f6)],'path':_0x272332[_0x3376de(0x1c1)],'summary':_0x272332['summary'],'whenToUse':_0x272332[_0x3376de(0x1d9)]};}export function listApiDocEntries(_0x40347b={}){const _0x57322e=a1_0x5c63cb,_0x455a30=String(_0x40347b[_0x57322e(0x218)]||'')[_0x57322e(0x1dc)](),_0x1beb65=String(_0x40347b[_0x57322e(0x1f9)]||'')[_0x57322e(0x1dc)]()[_0x57322e(0x1ec)]();return DOCS[_0x57322e(0x1f1)](_0x50316c=>{const _0x1c0d65=_0x57322e;if(_0x455a30&&_0x50316c[_0x1c0d65(0x218)]!==_0x455a30)return![];if(!_0x1beb65)return!![];return[_0x50316c['code'],_0x50316c[_0x1c0d65(0x218)],_0x50316c['method'],_0x50316c[_0x1c0d65(0x1c1)],_0x50316c[_0x1c0d65(0x1c3)],_0x50316c[_0x1c0d65(0x1d9)],_0x50316c[_0x1c0d65(0x20c)]]['join']('\x20')['toLowerCase']()[_0x1c0d65(0x1ee)](_0x1beb65);})[_0x57322e(0x1c4)](entrySummary);}function a1_0x3400(){const _0x37b2b0=['{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','111532HgDfBa','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','operations\x20describes\x20runtime\x20APIs','dataset_data_filter','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','Aggregate\x20dataset\x20data','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Get\x20BF\x20endpoint\x20function\x20contract','29771AMTtnz','list','API\x20doc\x20code,\x20for\x20example\x20dataset_list','datasetCode','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','custom_sql','Create\x20dataset\x20record','9xQUCSU','186664WKfRVV','207IGksKA','##\x20List\x20datasets','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','dataset_data_aggregate','tableData\x20contains\x20records','dataset_data_create','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','path','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','summary','map','/api/dataset/getOneByCode?code={datasetCode}','join','Returns\x20script\x20business\x20payload','按应用和函数名精确获取\x20BF\x20运行契约','List\x20datasets','13ohmCsr','None','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','535085QiZmAb','string','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','86069scpvNn','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','32-character\x20dataset\x20code','Returns\x20one\x20matching\x20business\x20record','Dataset\x20detail','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','API\x20doc\x20code\x20not\x20found:\x20','whenToUse','result\x20rows\x20contain\x20aggregate\x20aliases','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','trim','bf_detail','/api/{appCode}/{datasetCode}/create','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','Execute\x20custom\x20SQL','Filter\x20dataset\x20data','/api/{appCode}/{datasetCode}/getOne','dataset_data_get_one','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','聚合查询数据集数据','8lRvqGW','10lEnapR','##\x20Aggregate\x20dataset\x20data','POST','code','appCode','toLowerCase','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','includes','/api/endpoint/{appCode}/{functionName}','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','filter','List\x20available\x20runtime\x20API\x20documentation\x20entries','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','条件过滤查询数据','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','method','需要向指定数据集新增一条业务数据时使用','detail','keyword','8894052zlfYMD','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','4785539ZCPkQq','str','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','/api/{appCode}/{datasetCode}/filter','Show\x20runtime\x20API\x20documentation\x20by\x20code','执行指定\x20BF\x20函数','find','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','dataset','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','fields/properties\x20describe\x20data\x20shape','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','paging.totalCount\x20gives\x20total\x20rows','{\x22param\x22:\x22value\x22}','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','title','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','paging\x20contains\x20pagination','dataset_list','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','636zUXJNh','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','分页获取数据集列表','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','Execute\x20BF\x20endpoint\x20function','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','category','查询单条数据','Current\x20app\x20code','{\x22id\x22:123}','GET','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','api-doc','/api/custom/executeSql','/client/bff/endpoint/{appCode}/{functionName}','functionName','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','获取数据集详情','bf_execute','执行自定义\x20SQL','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用'];a1_0x3400=function(){return _0x37b2b0;};return a1_0x3400();}export function getApiDocDetail(_0x32cec9){const _0x1ed228=a1_0x5c63cb,_0x255ba6=DOCS[_0x1ed228(0x202)](_0x226d34=>_0x226d34[_0x1ed228(0x1ea)]===_0x32cec9);if(!_0x255ba6)throw CliErrors['validation'](_0x1ed228(0x1d8)+_0x32cec9);return{..._0x255ba6};}const apiDocList={'service':'api-doc','command':a1_0x5c63cb(0x1b2),'description':a1_0x5c63cb(0x1f2),'risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x181677){const _0x4dc8b9=a1_0x5c63cb,_0x5e0ba5=listApiDocEntries({'category':_0x181677[_0x4dc8b9(0x1fd)](_0x4dc8b9(0x218)),'keyword':_0x181677[_0x4dc8b9(0x1fd)]('keyword')});return{'ok':!![],'data':{'total':_0x5e0ba5['length'],'items':_0x5e0ba5}};}},apiDocDetail={'service':a1_0x5c63cb(0x21e),'command':a1_0x5c63cb(0x1f8),'description':a1_0x5c63cb(0x200),'risk':'read','requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x447e99){const _0x310694=a1_0x5c63cb;return{'ok':!![],'data':getApiDocDetail(_0x447e99[_0x310694(0x1fd)](_0x310694(0x1ea)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a2_0x4a94(){const _0x2bf1f5=['homeDirName','find','isArray','update','1129002NmMqbZ','.tmp','EPERM','hex','stringify','32GbqVZY','5401BjLWWE','unknown','ak_','564UQQUFT','EACCES','23526sZyAZZ','utf8','trim','slice','appCode','2574297kVTXNY','code','2730kNZPjV','sha256','parse','31OlEtrj','5090904UfvMlX','96644gydypk','4626795BQDeGP','items','cache','EXDEV'];a2_0x4a94=function(){return _0x2bf1f5;};return a2_0x4a94();}(function(_0x42580a,_0x4f051e){const _0x449032=a2_0x16cd,_0x4d80a7=_0x42580a();while(!![]){try{const _0x1edaae=parseInt(_0x449032(0x195))/0x1*(-parseInt(_0x449032(0x197))/0x2)+parseInt(_0x449032(0x18b))/0x3*(parseInt(_0x449032(0x189))/0x4)+parseInt(_0x449032(0x198))/0x5+-parseInt(_0x449032(0x196))/0x6+-parseInt(_0x449032(0x180))/0x7*(-parseInt(_0x449032(0x185))/0x8)+parseInt(_0x449032(0x190))/0x9+parseInt(_0x449032(0x192))/0xa*(parseInt(_0x449032(0x186))/0xb);if(_0x1edaae===_0x4f051e)break;else _0x4d80a7['push'](_0x4d80a7['shift']());}catch(_0x9d8f0c){_0x4d80a7['push'](_0x4d80a7['shift']());}}}(a2_0x4a94,0xb710b));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a2_0x16cd(_0x47594f,_0x18e068){_0x47594f=_0x47594f-0x17b;const _0x4a94e4=a2_0x4a94();let _0x16cda2=_0x4a94e4[_0x47594f];return _0x16cda2;}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(_0xb34619){const _0x3a02cc=a2_0x16cd,_0x2dab2a=_0xb34619['trim'](),_0x125ad2=_0x2dab2a['slice'](-0x6)||_0x3a02cc(0x187),_0x458fbc=createHash(_0x3a02cc(0x193))[_0x3a02cc(0x17f)](_0x2dab2a)['digest'](_0x3a02cc(0x183))[_0x3a02cc(0x18e)](0x0,0xc);return _0x3a02cc(0x188)+_0x125ad2+'_'+_0x458fbc;}export function getAppCacheFilePath(_0x3e700e,_0x5cf75d){const _0x1fdc3a=a2_0x16cd;return resolve(homedir(),PRODUCT_CONFIG[_0x1fdc3a(0x17c)],_0x1fdc3a(0x19a),_0x3e700e,fingerprintAccessKey(_0x5cf75d),'my-apps.json');}export function readCachedAppList(_0x4af149,_0x5387fa){const _0x476a13=a2_0x16cd;if(!_0x5387fa?.[_0x476a13(0x18d)]())return null;const _0x697d7b=getAppCacheFilePath(_0x4af149,_0x5387fa);if(!existsSync(_0x697d7b))return null;try{const _0x4e1611=readFileSync(_0x697d7b,_0x476a13(0x18c));if(!_0x4e1611[_0x476a13(0x18d)]())return null;const _0x244bf4=JSON[_0x476a13(0x194)](_0x4e1611);if(!Array[_0x476a13(0x17e)](_0x244bf4['items']))return null;return _0x244bf4;}catch{return null;}}export function writeCachedAppList(_0x5c8ce2,_0x193b9d,_0x40572e){const _0x426eff=a2_0x16cd,_0x12b616=getAppCacheFilePath(_0x5c8ce2,_0x193b9d),_0x2d2f5d=dirname(_0x12b616);!existsSync(_0x2d2f5d)&&mkdirSync(_0x2d2f5d,{'recursive':!![]});const _0x537f01=_0x12b616+_0x426eff(0x181);try{writeFileSync(_0x537f01,JSON[_0x426eff(0x184)](_0x40572e,null,0x2)+'\x0a',{'encoding':_0x426eff(0x18c),'mode':0x180});try{renameSync(_0x537f01,_0x12b616);}catch(_0x5165eb){if(_0x5165eb[_0x426eff(0x191)]===_0x426eff(0x182)||_0x5165eb['code']===_0x426eff(0x17b)||_0x5165eb[_0x426eff(0x191)]===_0x426eff(0x18a)){writeFileSync(_0x12b616,JSON[_0x426eff(0x184)](_0x40572e,null,0x2)+'\x0a',{'encoding':'utf8'});try{unlinkSync(_0x537f01);}catch{}}else throw _0x5165eb;}}catch(_0x2a9431){try{unlinkSync(_0x537f01);}catch{}throw _0x2a9431;}return _0x12b616;}export function resolveCachedAppCode(_0x5c853b,_0x15b530,_0x3726bf){const _0x11a7ae=a2_0x16cd;if(!_0x5c853b)return undefined;const _0x59e0a3=readCachedAppList(_0x15b530,_0x3726bf),_0x1252bd=_0x59e0a3?.[_0x11a7ae(0x199)][_0x11a7ae(0x17d)](_0x1681dc=>_0x1681dc['appName']===_0x5c853b&&isRuntimeAccessibleApp(_0x1681dc));return _0x1252bd?.[_0x11a7ae(0x18f)]?.[_0x11a7ae(0x18d)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x15315f=a3_0x5e24;(function(_0x3109c8,_0x5714cc){const _0x4abb19=a3_0x5e24,_0x4ee1bf=_0x3109c8();while(!![]){try{const _0x5d6160=parseInt(_0x4abb19(0x15f))/0x1*(parseInt(_0x4abb19(0x14f))/0x2)+parseInt(_0x4abb19(0x145))/0x3+parseInt(_0x4abb19(0x181))/0x4+parseInt(_0x4abb19(0x159))/0x5*(parseInt(_0x4abb19(0x174))/0x6)+parseInt(_0x4abb19(0x14b))/0x7*(parseInt(_0x4abb19(0x149))/0x8)+parseInt(_0x4abb19(0x16f))/0x9+parseInt(_0x4abb19(0x169))/0xa*(-parseInt(_0x4abb19(0x180))/0xb);if(_0x5d6160===_0x5714cc)break;else _0x4ee1bf['push'](_0x4ee1bf['shift']());}catch(_0x14f4a8){_0x4ee1bf['push'](_0x4ee1bf['shift']());}}}(a3_0x4a58,0x69a88));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';function a3_0x4a58(){const _0x4bf5b5=['\x20cached\x20app(s)\x20for\x20env=\x22','globalPath','274932YDtnBj','items','langs','env','cachePath','filter','Include\x20unpublished\x20apps\x20for\x20diagnostics','map','isArray','include-unpublished','58585JeXtTL','appName','push','appOwnerName','Read\x20app\x20list\x20from\x20local\x20cache\x20only','appcode','4hCbvRp','Read\x20from\x20local\x20cache\x20only','write','name','boolean','Target\x20environment\x20(default:\x20current\x20env)','从平台刷新本地应用缓存','No\x20cached\x20apps\x20found.','local','fetchedAt','180yhoayO','pull','remote','source','app','read','3236715YNlxgJ','Filter\x20by\x20environment\x20(default:\x20current\x20env)','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','Refreshed\x20app\x20cache\x20with\x20','length','114OtWATH','string','../../commands/app/remote-source.js','production','i18nInfo','envName','mergedCli','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','nonInteractive','isCurrent','projectPath','config','873895jQXCnb','731832nRjSqb','appPublishStatus','accessKey','bool','1111269CXmkJw','str','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','no-cache','8SgWhxC','appCode','1240981XhVRvl','enableI18n'];a3_0x4a58=function(){return _0x4bf5b5;};return a3_0x4a58();}import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x40f2ae,_0x47af4f){const _0x1d5166=a3_0x5e24,_0x3e350d={};for(const _0x2100c0 of _0x47af4f){const _0x2a4257=_0x2100c0['type']===_0x1d5166(0x163)?_0x40f2ae['bool'](_0x2100c0[_0x1d5166(0x162)]):_0x40f2ae[_0x1d5166(0x146)](_0x2100c0[_0x1d5166(0x162)]);if(_0x2a4257!==''&&_0x2a4257!==![])_0x3e350d[_0x2100c0[_0x1d5166(0x162)]]=_0x2a4257;}if(_0x40f2ae['nonInteractive'])_0x3e350d[_0x1d5166(0x17c)]=!![];return _0x3e350d;}function a3_0x5e24(_0x112fba,_0xaffa4d){_0x112fba=_0x112fba-0x143;const _0x4a586d=a3_0x4a58();let _0x5e24ee=_0x4a586d[_0x112fba];return _0x5e24ee;}function normalizeLanguages(_0x5f4cab){const _0x5e843d=a3_0x5e24;if(!Array[_0x5e843d(0x157)](_0x5f4cab))return[];return _0x5f4cab[_0x5e843d(0x154)](_0x718b75=>typeof _0x718b75===_0x5e843d(0x175))[_0x5e843d(0x156)](_0x58b6c9=>_0x58b6c9['trim']())[_0x5e843d(0x154)](Boolean);}function buildRemoteAppI18nFields(_0x32fcc0){const _0x19a813=a3_0x5e24,_0x315c97=normalizeLanguages(_0x32fcc0[_0x19a813(0x178)]?.[_0x19a813(0x151)]);return{'enableI18n':typeof _0x32fcc0['enableI18n']==='boolean'?_0x32fcc0[_0x19a813(0x14c)]:null,'languages':_0x315c97,'i18nInfo':_0x32fcc0[_0x19a813(0x178)]?{..._0x32fcc0[_0x19a813(0x178)],'langs':_0x315c97[_0x19a813(0x173)]?_0x315c97:null}:null};}const listDef={'service':a3_0x15315f(0x16d),'command':'list','description':a3_0x15315f(0x17b),'risk':a3_0x15315f(0x16e),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x15315f(0x152),'type':'string','description':a3_0x15315f(0x170),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x15315f(0x167),'type':a3_0x15315f(0x163),'description':a3_0x15315f(0x15d),'default':![]},{'name':a3_0x15315f(0x148),'type':a3_0x15315f(0x163),'description':a3_0x15315f(0x147),'default':![]},{'name':a3_0x15315f(0x158),'type':a3_0x15315f(0x163),'description':a3_0x15315f(0x155),'default':![]}],async 'execute'(_0x84bcd3){const _0x1e597d=a3_0x15315f,_0x525e3a=_0x84bcd3[_0x1e597d(0x146)](_0x1e597d(0x152))||_0x84bcd3[_0x1e597d(0x179)]||getEnv()||_0x1e597d(0x177),_0xe1a14e=_0x84bcd3[_0x1e597d(0x144)](_0x1e597d(0x167)),_0x5b0b7e=_0x84bcd3['bool'](_0x1e597d(0x148)),_0xaf977c=_0x84bcd3['bool'](_0x1e597d(0x158)),{readRawConfigWithLayers:_0x3478d4,resolveDefaultAppSource:_0x47eb97,getLocalAppAliases:_0x221cf4}=await import('../../context.js'),{getRemoteAppList:_0x2cf2d9}=await import(_0x1e597d(0x176)),{config:_0x1feed2,layers:_0x34c272}=_0x3478d4(),_0x3ef4df=_0x47eb97(_0x34c272),{defaultApp:_0x39c9f3}=_0x1feed2,_0x558476=await _0x2cf2d9({'env':_0x525e3a,'accessKey':_0x84bcd3['accessKey'],'localOnly':_0xe1a14e,'noCache':_0x5b0b7e}),_0x1ff3b2=_0xaf977c?_0x558476[_0x1e597d(0x150)]:filterRuntimeAccessibleApps(_0x558476[_0x1e597d(0x150)]),_0x5b2c6a=_0x558476[_0x1e597d(0x150)]['length']-_0x1ff3b2['length'],_0xe5704e=_0x1ff3b2[_0x1e597d(0x156)](_0x22857c=>{const _0x3bd66e=_0x1e597d;return{'name':_0x22857c['appName'],'appcode':_0x22857c[_0x3bd66e(0x14a)],'named':!![],'definedIn':_0x3bd66e(0x16b),'isDefault':_0x22857c[_0x3bd66e(0x15a)]===_0x39c9f3,...buildAppProfileListFields(_0x525e3a),...buildRemoteAppI18nFields(_0x22857c),'source':_0x558476['source'],'owner':_0x22857c[_0x3bd66e(0x15c)]??null,'status':_0x22857c[_0x3bd66e(0x182)]??null,'cachedAt':_0x558476[_0x3bd66e(0x168)]};}),_0xf0f2cc=_0x221cf4(_0x1feed2);let _0x5dc4cb=0x0;for(const [_0x44ba21,_0x3e8d64]of Object['entries'](_0xf0f2cc)){const _0x223b2c=typeof _0x3e8d64[_0x1e597d(0x15e)]===_0x1e597d(0x175)?_0x3e8d64[_0x1e597d(0x15e)]['trim']():'';if(!_0x223b2c)continue;const _0x12bd7e=findAppByCode(_0x558476[_0x1e597d(0x150)],_0x223b2c);if(!_0xaf977c&&_0x12bd7e&&!isRuntimeAccessibleApp(_0x12bd7e))continue;_0x5dc4cb+=0x1,_0xe5704e[_0x1e597d(0x15b)]({'name':_0x44ba21,'appcode':_0x223b2c,'named':!![],'definedIn':'local','isDefault':_0x44ba21===_0x39c9f3,...buildAppProfileListFields(_0x525e3a),'source':_0x1e597d(0x17f),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0xe5704e,_0x84bcd3[_0x1e597d(0x17a)]);const _0x86ef1d=_0xe5704e['find'](_0x46e4cc=>_0x46e4cc[_0x1e597d(0x17d)]===!![]),_0x15706b=_0x39c9f3??_0x86ef1d?.[_0x1e597d(0x162)]??null,_0x2a68bf={'env':_0x525e3a,'source':_0x558476[_0x1e597d(0x16c)],'fetchedAt':_0x558476[_0x1e597d(0x168)],'cachePath':_0x558476[_0x1e597d(0x153)],'globalPath':_0x34c272[_0x1e597d(0x14e)]??null,'projectPath':_0x34c272[_0x1e597d(0x17e)]??null,'defaultApp':_0x15706b,'defaultAppSource':_0x39c9f3!=null?_0x3ef4df:null,'localAliasCount':_0x5dc4cb,'remoteTotal':_0x558476[_0x1e597d(0x150)]['length'],'hiddenUnpublishedCount':_0x5b2c6a,'includeUnpublished':_0xaf977c};if(_0xe5704e[_0x1e597d(0x173)]===0x0)return{'ok':!![],'data':{'items':_0xe5704e,'meta':_0x2a68bf},'message':_0x558476[_0x1e597d(0x16c)]==='cache'?_0x1e597d(0x166):'No\x20apps\x20found\x20on\x20the\x20platform.'};return{'ok':!![],'data':{'items':_0xe5704e,'meta':_0x2a68bf}};}},pullDef={'service':a3_0x15315f(0x16d),'command':a3_0x15315f(0x16a),'description':a3_0x15315f(0x165),'risk':a3_0x15315f(0x161),'confirmationDescription':'将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x15315f(0x152),'type':a3_0x15315f(0x175),'description':a3_0x15315f(0x164),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x15315f(0x167),'type':a3_0x15315f(0x163),'description':a3_0x15315f(0x160),'default':![]},{'name':a3_0x15315f(0x148),'type':a3_0x15315f(0x163),'description':'Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','default':![]}],async 'execute'(_0x2d39e4){const _0x407379=a3_0x15315f,_0x17338a=_0x2d39e4[_0x407379(0x146)](_0x407379(0x152))||_0x2d39e4[_0x407379(0x179)]||getEnv()||_0x407379(0x177),_0x3af8fd=_0x2d39e4[_0x407379(0x144)](_0x407379(0x167)),_0x3a2b9f=_0x2d39e4[_0x407379(0x144)]('no-cache'),{getRemoteAppList:_0x2fd01a}=await import(_0x407379(0x176)),_0xbf669c=await _0x2fd01a({'env':_0x17338a,'accessKey':_0x2d39e4[_0x407379(0x143)],'localOnly':_0x3af8fd,'noCache':_0x3a2b9f});return{'ok':!![],'data':{'total':_0xbf669c[_0x407379(0x150)][_0x407379(0x173)],'env':_0x17338a,'source':_0xbf669c['source'],'fetchedAt':_0xbf669c[_0x407379(0x168)],'cachePath':_0xbf669c[_0x407379(0x153)]},'message':_0xbf669c[_0x407379(0x16c)]==='cache'?'Loaded\x20'+_0xbf669c['items']['length']+_0x407379(0x14d)+_0x17338a+'\x22.':_0x407379(0x172)+_0xbf669c[_0x407379(0x150)][_0x407379(0x173)]+'\x20app(s)\x20for\x20env=\x22'+_0x17338a+'\x22.'};}},importDef={'service':'app','command':'import','description':'从\x20.rabetbase.json\x20文件导入默认应用选择','risk':a3_0x15315f(0x161),'confirmationDescription':a3_0x15315f(0x171),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0xe52e8f){return await runAppImport(collectFlags(_0xe52e8f,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a4_0x32a9(){const _0x53ad64=['trim','.\x20Publish\x20the\x20app\x20before\x20using\x20','App\x20','15092VCcWxJ','string','4199140pbxTwj','Current\x20status:\x20','12162983UBZabe','appPublishStatus','102IJnurk','1734444zPvtAY','286620ZuEcpS','14876144TFqJKe','filter','validation','find','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','18axXREw','11681260EITZYy','9FOtwNu','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','UNKNOWN','appCode'];a4_0x32a9=function(){return _0x53ad64;};return a4_0x32a9();}(function(_0x1c1b24,_0x57be82){const _0x432ca0=a4_0x2c55,_0x555950=_0x1c1b24();while(!![]){try{const _0x1e2118=parseInt(_0x432ca0(0x1ef))/0x1+-parseInt(_0x432ca0(0x1ff))/0x2*(parseInt(_0x432ca0(0x1f8))/0x3)+-parseInt(_0x432ca0(0x201))/0x4+parseInt(_0x432ca0(0x1f0))/0x5*(-parseInt(_0x432ca0(0x1ee))/0x6)+parseInt(_0x432ca0(0x1ec))/0x7+parseInt(_0x432ca0(0x1f1))/0x8+-parseInt(_0x432ca0(0x1f6))/0x9*(parseInt(_0x432ca0(0x1f7))/0xa);if(_0x1e2118===_0x57be82)break;else _0x555950['push'](_0x555950['shift']());}catch(_0x48edf5){_0x555950['push'](_0x555950['shift']());}}}(a4_0x32a9,0xe787c));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(_0x392f80){const _0x3e1425=a4_0x2c55;if(typeof _0x392f80!==_0x3e1425(0x200))return null;const _0x434a97=_0x392f80['trim']();return _0x434a97?_0x434a97['toUpperCase']():null;}export function isRuntimeAccessibleApp(_0x35fef3){const _0x3e1bfc=a4_0x2c55;return normalizeAppPublishStatus(_0x35fef3[_0x3e1bfc(0x1ed)])===RUNTIME_ACCESSIBLE_APP_STATUS;}function a4_0x2c55(_0x9e9ed,_0x31b552){_0x9e9ed=_0x9e9ed-0x1ec;const _0x32a917=a4_0x32a9();let _0x2c55f2=_0x32a917[_0x9e9ed];return _0x2c55f2;}export function filterRuntimeAccessibleApps(_0x5cec5f){const _0x439f52=a4_0x2c55;return _0x5cec5f[_0x439f52(0x1f2)](isRuntimeAccessibleApp);}export function findAppByName(_0x4ef08f,_0x45a53b){const _0x51cc76=a4_0x2c55;return _0x4ef08f[_0x51cc76(0x1f4)](_0x208df0=>_0x208df0['appName']===_0x45a53b);}export function findAppByCode(_0x7a6982,_0x341825){const _0x1a952a=a4_0x2c55,_0x46839e=_0x341825['trim']();if(!_0x46839e)return undefined;return _0x7a6982['find'](_0x1212f4=>_0x1212f4[_0x1a952a(0x1fb)]?.[_0x1a952a(0x1fc)]()===_0x46839e);}export function runtimeInaccessibleAppError(_0x4e0172,_0x27d25d){const _0x1e9c9c=a4_0x2c55,_0x1e538b=normalizeAppPublishStatus(_0x4e0172[_0x1e9c9c(0x1ed)])??_0x1e9c9c(0x1fa);return CliErrors[_0x1e9c9c(0x1f3)](_0x1e9c9c(0x1fe)+_0x27d25d+_0x1e9c9c(0x1f5),_0x1e9c9c(0x202)+_0x1e538b+_0x1e9c9c(0x1fd)+CLI_BIN_NAME+_0x1e9c9c(0x1f9));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a5_0x4d39(_0xee40fd,_0xe1c333){_0xee40fd=_0xee40fd-0xb4;const _0x681113=a5_0x6811();let _0x4d39c0=_0x681113[_0xee40fd];return _0x4d39c0;}(function(_0x5cc738,_0x5d68e6){const _0x1ce126=a5_0x4d39,_0x1bf025=_0x5cc738();while(!![]){try{const _0x10f3b7=-parseInt(_0x1ce126(0xbe))/0x1+parseInt(_0x1ce126(0xb4))/0x2+parseInt(_0x1ce126(0xc2))/0x3*(parseInt(_0x1ce126(0xb6))/0x4)+-parseInt(_0x1ce126(0xbf))/0x5+-parseInt(_0x1ce126(0xc0))/0x6+parseInt(_0x1ce126(0xba))/0x7*(parseInt(_0x1ce126(0xb5))/0x8)+parseInt(_0x1ce126(0xb7))/0x9*(-parseInt(_0x1ce126(0xbb))/0xa);if(_0x10f3b7===_0x5d68e6)break;else _0x1bf025['push'](_0x1bf025['shift']());}catch(_0xdb61d1){_0x1bf025['push'](_0x1bf025['shift']());}}}(a5_0x6811,0x411c5));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 _0x4ffe3c=a5_0x4d39,_0x2b23b1=join(__dirname,_0x4ffe3c(0xb8)),_0x175b58=readFileSync(_0x2b23b1,_0x4ffe3c(0xc1));return JSON[_0x4ffe3c(0xbd)](_0x175b58);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}function a5_0x6811(){const _0x1f0cef=['1841975hWwRNr','143016YXSZhB','utf-8','30003LlAxQb','1043478XptweC','2488768RMStaM','212vubcnV','18LzGVme','../../../mock/app-list.json','tableData','7lYhZQH','870760NiXIoF','errorMsg','parse','529812AsxFRy'];a5_0x6811=function(){return _0x1f0cef;};return a5_0x6811();}export function getMockRemoteAppItems(){const _0x4d85bc=a5_0x4d39,_0x295988=getMockAppList();if(!_0x295988['success'])throw new Error('Mock\x20API\x20error:\x20'+_0x295988[_0x4d85bc(0xbc)]+'\x20('+_0x295988['errorCode']+')');return _0x295988['data'][_0x4d85bc(0xb9)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x26a23d,_0x14b294){const _0x4014e7=a6_0x4c4e,_0x19accc=_0x26a23d();while(!![]){try{const _0x364f35=-parseInt(_0x4014e7(0x18c))/0x1+-parseInt(_0x4014e7(0x185))/0x2+-parseInt(_0x4014e7(0x18e))/0x3*(parseInt(_0x4014e7(0x18d))/0x4)+-parseInt(_0x4014e7(0x192))/0x5*(-parseInt(_0x4014e7(0x184))/0x6)+-parseInt(_0x4014e7(0x18a))/0x7+-parseInt(_0x4014e7(0x189))/0x8+parseInt(_0x4014e7(0x18f))/0x9;if(_0x364f35===_0x14b294)break;else _0x19accc['push'](_0x19accc['shift']());}catch(_0x3c7dc8){_0x19accc['push'](_0x19accc['shift']());}}}(a6_0x4d5c,0xb93af));function a6_0x4c4e(_0x243b2c,_0x3bb160){_0x243b2c=_0x243b2c-0x184;const _0x4d5c8b=a6_0x4d5c();let _0x4c4e71=_0x4d5c8b[_0x243b2c];return _0x4c4e71;}import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';function a6_0x4d5c(){const _0xc368d2=['APP_LIST_SOURCE','trim','9290888VWJmpj','8475971vfQibD','remote','1388617afqPRI','49888NjXzWv','57tUAFsB','38791467UYfBdh','fetchedAt','mock','4695430weXosW','6zZxXAx','985494yNeOpz','items'];a6_0x4d5c=function(){return _0xc368d2;};return a6_0x4d5c();}export function shouldUseMockRemoteApps(){const _0x358b20=a6_0x4c4e,_0x40ee65=(productEnv(_0x358b20(0x187))||'')['trim']()['toLowerCase']();return _0x40ee65===_0x358b20(0x191);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x395e0e){const _0x51151e=a6_0x4c4e,{env:_0x41cf4c,accessKey:_0x44f43a,localOnly:localOnly=![],noCache:noCache=![]}=_0x395e0e,_0x39e215=readCachedAppList(_0x41cf4c,_0x44f43a),_0xf5ba9b=_0x44f43a?.[_0x51151e(0x188)]()?getAppCacheFilePath(_0x41cf4c,_0x44f43a):null;if(localOnly)return{'items':_0x39e215?.['items']??[],'source':'cache','fetchedAt':_0x39e215?.[_0x51151e(0x190)]??null,'cachePath':_0xf5ba9b};try{const _0x2f7833=await getRemoteAppItems(),_0x1e84ab=shouldUseMockRemoteApps()?'mock':_0x51151e(0x18b),_0x1f6ae1=new Date()['toISOString'](),_0x29b484=_0x44f43a?.[_0x51151e(0x188)]()?writeCachedAppList(_0x41cf4c,_0x44f43a,{'env':_0x41cf4c,'fetchedAt':_0x1f6ae1,'source':_0x1e84ab,'items':_0x2f7833}):null;return{'items':_0x2f7833,'source':_0x1e84ab,'fetchedAt':_0x1f6ae1,'cachePath':_0x29b484};}catch(_0x29027b){if(!noCache&&_0x39e215)return{'items':_0x39e215[_0x51151e(0x186)],'source':'cache','fetchedAt':_0x39e215[_0x51151e(0x190)],'cachePath':_0xf5ba9b};throw _0x29027b;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a7_0x43ee(){const _0x1c5fa2=['appcode','defaultApp','local','11187qKyAGO','9022310CCybqR','435IBddTx','108542xGDzXm','616860IGjGHh','isCurrent','name','96nVqiQx','703085CVuOvY','named','currentApp','663417ZTxbzw','24tfuimk','4666qzYRff','3496vkvisd','find','definedIn','trim'];a7_0x43ee=function(){return _0x1c5fa2;};return a7_0x43ee();}function a7_0x33d9(_0xb19fe3,_0x4e44a1){_0xb19fe3=_0xb19fe3-0x137;const _0x43ee4e=a7_0x43ee();let _0x33d910=_0x43ee4e[_0xb19fe3];return _0x33d910;}(function(_0x25b557,_0x533498){const _0x3f8c80=a7_0x33d9,_0x46f9c0=_0x25b557();while(!![]){try{const _0x25e95e=parseInt(_0x3f8c80(0x145))/0x1+parseInt(_0x3f8c80(0x147))/0x2*(-parseInt(_0x3f8c80(0x13c))/0x3)+parseInt(_0x3f8c80(0x146))/0x4*(parseInt(_0x3f8c80(0x142))/0x5)+parseInt(_0x3f8c80(0x141))/0x6*(-parseInt(_0x3f8c80(0x13d))/0x7)+parseInt(_0x3f8c80(0x148))/0x8*(parseInt(_0x3f8c80(0x13a))/0x9)+parseInt(_0x3f8c80(0x13e))/0xa+-parseInt(_0x3f8c80(0x13b))/0xb;if(_0x25e95e===_0x533498)break;else _0x46f9c0['push'](_0x46f9c0['shift']());}catch(_0x27bc0e){_0x46f9c0['push'](_0x46f9c0['shift']());}}}(a7_0x43ee,0xac37d));export function enrichAppListItemsWithMergedSelection(_0x3d92cb,_0x344637){const _0x12ba59=a7_0x33d9;if(!_0x344637)return;const _0x34a281=!!(_0x344637['currentApp']??_0x344637[_0x12ba59(0x138)]);for(const _0x5c609e of _0x3d92cb){_0x5c609e[_0x12ba59(0x13f)]=![];}const _0x1ac81d=_0x344637['appCode']!=null?String(_0x344637['appCode'])[_0x12ba59(0x14b)]():'';if(_0x34a281){const _0x261c7e=_0x344637[_0x12ba59(0x144)]??_0x344637[_0x12ba59(0x138)];if(_0x261c7e){const _0x13cd7f=_0x3d92cb[_0x12ba59(0x149)](_0x2fab80=>_0x2fab80[_0x12ba59(0x143)]===!![]&&_0x2fab80[_0x12ba59(0x140)]===_0x261c7e&&_0x2fab80[_0x12ba59(0x14a)]===_0x12ba59(0x139)),_0x5634f1=_0x13cd7f??_0x3d92cb[_0x12ba59(0x149)](_0x4359c3=>_0x4359c3['named']===!![]&&_0x4359c3[_0x12ba59(0x140)]===_0x261c7e);if(_0x5634f1){const _0x1c22b8=String(_0x5634f1['appcode']??'')[_0x12ba59(0x14b)]();if(!_0x1ac81d||_0x1c22b8===_0x1ac81d){_0x5634f1[_0x12ba59(0x13f)]=!![];return;}}}if(_0x1ac81d){const _0x35b7b4=_0x3d92cb[_0x12ba59(0x149)](_0x5d5452=>String(_0x5d5452[_0x12ba59(0x137)]??'')[_0x12ba59(0x14b)]()===_0x1ac81d);_0x35b7b4&&(_0x35b7b4['isCurrent']=!![]);}return;}if(!_0x1ac81d)return;for(const _0x383221 of _0x3d92cb){String(_0x383221['appcode']??'')['trim']()===_0x1ac81d&&(_0x383221[_0x12ba59(0x13f)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a8_0x19b72b=a8_0x3e7d;(function(_0x2e3272,_0x3e8068){const _0x48b919=a8_0x3e7d,_0x2eeb51=_0x2e3272();while(!![]){try{const _0x31f4c4=-parseInt(_0x48b919(0x1d0))/0x1*(parseInt(_0x48b919(0x1c7))/0x2)+-parseInt(_0x48b919(0x1cd))/0x3*(-parseInt(_0x48b919(0x1d2))/0x4)+parseInt(_0x48b919(0x1c6))/0x5*(parseInt(_0x48b919(0x1c8))/0x6)+-parseInt(_0x48b919(0x1d1))/0x7*(-parseInt(_0x48b919(0x1ce))/0x8)+-parseInt(_0x48b919(0x1d4))/0x9+parseInt(_0x48b919(0x1d7))/0xa+parseInt(_0x48b919(0x1d3))/0xb*(-parseInt(_0x48b919(0x1d6))/0xc);if(_0x31f4c4===_0x3e8068)break;else _0x2eeb51['push'](_0x2eeb51['shift']());}catch(_0x4100b4){_0x2eeb51['push'](_0x2eeb51['shift']());}}}(a8_0x4368,0x741cb));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a8_0x4368(){const _0x5ef614=['App\x20config\x20key','trim','Usage:\x20','669nfuCqD','464NrrApq','Unable\x20to\x20get\x20app-config\x20value:\x20key=','916771grpRqc','90510drkqPu','14204JfAzLB','187352YATtkf','6616107EArWSv','read','288Dydwkv','6543080WVCDSP','args',',\x20appCode=','Missing\x20app-config\x20key.','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','\x20app-config\x20get\x20<key>','85UaJjBA','2tTemDX','120048XeNvRN','appCode'];a8_0x4368=function(){return _0x5ef614;};return a8_0x4368();}function a8_0x3e7d(_0x112595,_0x525cd0){_0x112595=_0x112595-0x1c3;const _0x43682c=a8_0x4368();let _0x3e7df6=_0x43682c[_0x112595];return _0x3e7df6;}export const appConfigGet={'service':'app-config','command':'get','description':a8_0x19b72b(0x1c4),'risk':a8_0x19b72b(0x1d5),'args':[{'name':'key','description':a8_0x19b72b(0x1ca),'required':!![]}],'flags':[],async 'execute'(_0x72da9d){const _0x60f301=a8_0x19b72b,_0x1d1f9e=_0x72da9d[_0x60f301(0x1d8)][0x0]?.[_0x60f301(0x1cb)]();if(!_0x1d1f9e)throw CliErrors['validation'](_0x60f301(0x1c3),_0x60f301(0x1cc)+CLI_BIN_NAME+_0x60f301(0x1c5));try{const _0x536112=await getRuntimeAppConfigByKey(_0x72da9d[_0x60f301(0x1c9)],_0x1d1f9e);return{'ok':!![],'data':_0x536112};}catch{throw CliErrors['apiError'](_0x60f301(0x1cf)+_0x1d1f9e+_0x60f301(0x1d9)+_0x72da9d[_0x60f301(0x1c9)],'Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.');}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3f1bd0,_0x39d99e){const _0x4bcba8=a9_0x938b,_0xf7ca83=_0x3f1bd0();while(!![]){try{const _0x54487c=-parseInt(_0x4bcba8(0xff))/0x1*(-parseInt(_0x4bcba8(0x105))/0x2)+-parseInt(_0x4bcba8(0x101))/0x3*(-parseInt(_0x4bcba8(0xfe))/0x4)+-parseInt(_0x4bcba8(0xfd))/0x5+parseInt(_0x4bcba8(0x104))/0x6+-parseInt(_0x4bcba8(0x102))/0x7+parseInt(_0x4bcba8(0x103))/0x8+-parseInt(_0x4bcba8(0x100))/0x9;if(_0x54487c===_0x39d99e)break;else _0xf7ca83['push'](_0xf7ca83['shift']());}catch(_0x190ce7){_0xf7ca83['push'](_0xf7ca83['shift']());}}}(a9_0x36a2,0x4301f));import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];function a9_0x938b(_0x47a6da,_0x16717b){_0x47a6da=_0x47a6da-0xfd;const _0x36a268=a9_0x36a2();let _0x938bb0=_0x36a268[_0x47a6da];return _0x938bb0;}function a9_0x36a2(){const _0x17c9e2=['1PyxxnQ','5173479iizmtn','30VvDJGQ','2720683fChBTE','1289936ZDYVxk','1502430aUtfqW','1096598KJSHvu','667115JxNXwj','164576CsVAjs'];a9_0x36a2=function(){return _0x17c9e2;};return a9_0x36a2();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x113b0f=a10_0x331d;(function(_0x565bbb,_0x54908c){const _0x54716e=a10_0x331d,_0x5720de=_0x565bbb();while(!![]){try{const _0x38f186=-parseInt(_0x54716e(0x1b3))/0x1*(parseInt(_0x54716e(0x198))/0x2)+-parseInt(_0x54716e(0x196))/0x3*(parseInt(_0x54716e(0x188))/0x4)+parseInt(_0x54716e(0x18d))/0x5+parseInt(_0x54716e(0x1ac))/0x6+parseInt(_0x54716e(0x19c))/0x7*(parseInt(_0x54716e(0x19f))/0x8)+parseInt(_0x54716e(0x18b))/0x9*(-parseInt(_0x54716e(0x1a7))/0xa)+-parseInt(_0x54716e(0x189))/0xb;if(_0x38f186===_0x54908c)break;else _0x5720de['push'](_0x5720de['shift']());}catch(_0x2547c9){_0x5720de['push'](_0x5720de['shift']());}}}(a10_0x384a,0x6a304));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE='react_module',ARTIFACT_SOURCE_AGENT=a10_0x113b0f(0x16f),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x113b0f(0x1b0),a10_0x113b0f(0x176),a10_0x113b0f(0x19d),'dayjs','antd',a10_0x113b0f(0x168)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x113b0f(0x1b5)](',\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_0x113b0f(0x195),'type':a10_0x113b0f(0x178),'required':!![],'description':a10_0x113b0f(0x182)},ARTIFACT_NAME_FLAG={'name':'name','type':a10_0x113b0f(0x178),'description':a10_0x113b0f(0x1a9)},METADATA_FLAG={'name':'metadata','type':a10_0x113b0f(0x178),'description':a10_0x113b0f(0x167)};function a10_0x384a(){const _0x20cd93=['description','list','body','react-dom','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','string','metadata','object','Artifact\x20ID','/client/artifact/','create','update','startsWith','updateTime','split','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','Show\x20one\x20Artifact\x20by\x20id','artifact','Updated\x20Artifact\x20','filter','parse','12DNOTQZ','5847380wyhemk','isArray','98613NQFZaj','validation','3965670JusUwJ','number','POST','Artifact\x20source\x20file\x20is\x20blank.','includes','detail','length','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','file','448569gFwsVn','Invalid\x20JSON\x20for\x20--metadata:\x20','127982ctmTeV','File\x20is\x20not\x20a\x20regular\x20file:\x20','File\x20path\x20is\x20required.','bool','514927trWmrY','lodash','test','64JkmFTB','List\x20current-app\x20react_module\x20Artifacts','react_module\x20imports\x20are\x20limited\x20to:\x20','favorite','num','/client/artifact/create','map','read','250IIUnFY','write','Artifact\x20display\x20name','some','deleted','2228346QFyFga','compiledContent','Optional\x20favorite-state\x20filter','add','react','build','trim','1mLmOwM','createTime','join','utf8','name','.\x20Unsupported:\x20','source','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','@ant-design/icons','boolean','--metadata\x20must\x20be\x20a\x20JSON\x20object.','artifactType','flag','appCode','data','AGENT','str','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','verbose'];a10_0x384a=function(){return _0x20cd93;};return a10_0x384a();}function isPlainObject(_0x59af80){const _0x32cc9a=a10_0x113b0f;return typeof _0x59af80===_0x32cc9a(0x17a)&&_0x59af80!==null&&!Array[_0x32cc9a(0x18a)](_0x59af80);}function readSourceFile(_0x14dc4d){const _0x47ca04=a10_0x113b0f;if(!_0x14dc4d)throw CliErrors[_0x47ca04(0x18c)](_0x47ca04(0x19a));if(!existsSync(_0x14dc4d))throw CliErrors[_0x47ca04(0x18c)]('File\x20not\x20found:\x20'+_0x14dc4d);if(!statSync(_0x14dc4d)['isFile']())throw CliErrors[_0x47ca04(0x18c)](_0x47ca04(0x199)+_0x14dc4d);const _0x934b18=readFileSync(_0x14dc4d,_0x47ca04(0x1b6));return validateReactModuleSource(_0x934b18),_0x934b18;}function parseMetadata(_0x4e6287){const _0x4fe7dc=a10_0x113b0f;if(!_0x4e6287)return undefined;let _0x2ab78c;try{_0x2ab78c=JSON[_0x4fe7dc(0x187)](_0x4e6287);}catch{throw CliErrors['validation'](_0x4fe7dc(0x197)+_0x4e6287);}if(!isPlainObject(_0x2ab78c))throw CliErrors['validation'](_0x4fe7dc(0x16a));const _0x386392={..._0x2ab78c};return delete _0x386392['compiledContent'],_0x386392;}function getPackageName(_0x44d3a8){const _0x2047e5=a10_0x113b0f;if(_0x44d3a8[_0x2047e5(0x17f)]('@')){const [_0x55ca3f,_0x440c37]=_0x44d3a8[_0x2047e5(0x181)]('/');return _0x55ca3f&&_0x440c37?_0x55ca3f+'/'+_0x440c37:_0x44d3a8;}return _0x44d3a8[_0x2047e5(0x181)]('/')[0x0]||_0x44d3a8;}function validateAllowedImports(_0x96d9ed){const _0x367adc=a10_0x113b0f,_0x481f1f=new Set();for(const _0xb23fe6 of IMPORT_SOURCE_PATTERNS){_0xb23fe6['lastIndex']=0x0;let _0x3d7f8a;while((_0x3d7f8a=_0xb23fe6['exec'](_0x96d9ed))!==null){const _0x438d94=_0x3d7f8a[0x1]?.[_0x367adc(0x1b2)]();_0x438d94&&_0x481f1f[_0x367adc(0x1af)](_0x438d94);}}const _0x4238ef=[..._0x481f1f][_0x367adc(0x1a5)](getPackageName)[_0x367adc(0x186)](_0x56abb5=>!ALLOWED_REACT_MODULE_IMPORTS[_0x367adc(0x191)](_0x56abb5));if(_0x4238ef[_0x367adc(0x193)]>0x0)throw CliErrors[_0x367adc(0x18c)](_0x367adc(0x1a1)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x367adc(0x165)+[...new Set(_0x4238ef)][_0x367adc(0x1b5)](',\x20'));}export function validateReactModuleSource(_0x4a46ca){const _0x1f7d06=a10_0x113b0f;if(!_0x4a46ca['trim']())throw CliErrors['validation'](_0x1f7d06(0x190));if(PAGE_LEVEL_PATTERNS[_0x1f7d06(0x1aa)](_0x2e61b3=>_0x2e61b3[_0x1f7d06(0x19e)](_0x4a46ca)))throw CliErrors[_0x1f7d06(0x18c)](_0x1f7d06(0x171));validateAllowedImports(_0x4a46ca);}function a10_0x331d(_0x4c72ab,_0x37726b){_0x4c72ab=_0x4c72ab-0x165;const _0x384a3b=a10_0x384a();let _0x331df8=_0x384a3b[_0x4c72ab];return _0x331df8;}function buildArtifactInput(_0x2522a8){const _0x275996=a10_0x113b0f,_0xd9cf77=readSourceFile(_0x2522a8[_0x275996(0x170)](_0x275996(0x195))),_0x21ff84=_0x2522a8['str']('name')[_0x275996(0x1b2)](),_0x4ccb12=parseMetadata(_0x2522a8[_0x275996(0x170)](_0x275996(0x179)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x21ff84?{'name':_0x21ff84}:{},'content':_0xd9cf77,..._0x4ccb12?{'metadata':_0x4ccb12}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x5e2151){const _0x4b8849=a10_0x113b0f;return{'id':_0x5e2151['id'],'name':_0x5e2151[_0x4b8849(0x1b7)],'artifactType':_0x5e2151[_0x4b8849(0x16b)],'source':_0x5e2151[_0x4b8849(0x166)],'favorite':_0x5e2151['favorite'],'deleted':_0x5e2151[_0x4b8849(0x1ab)],'createTime':_0x5e2151[_0x4b8849(0x1b4)],'updateTime':_0x5e2151[_0x4b8849(0x180)]};}function detailArtifact(_0x499616){const _0x1adda7=a10_0x113b0f;return{'id':_0x499616['id'],'appCode':_0x499616[_0x1adda7(0x16d)],'name':_0x499616[_0x1adda7(0x1b7)],'artifactType':_0x499616[_0x1adda7(0x16b)],'source':_0x499616[_0x1adda7(0x166)],'favorite':_0x499616['favorite'],'deleted':_0x499616['deleted'],'content':_0x499616['content']??'','compiledContent':_0x499616[_0x1adda7(0x1ad)],'metadata':_0x499616[_0x1adda7(0x179)]??{},'createTime':_0x499616[_0x1adda7(0x1b4)],'updateTime':_0x499616[_0x1adda7(0x180)]};}function readFavoriteFlag(_0x509394){const _0x317183=a10_0x113b0f,_0x59fbd1=_0x509394[_0x317183(0x16c)](_0x317183(0x1a2));return _0x59fbd1===undefined||_0x59fbd1===null||_0x59fbd1===''?undefined:_0x509394['bool'](_0x317183(0x1a2));}const artifactList={'service':a10_0x113b0f(0x184),'command':a10_0x113b0f(0x174),'description':a10_0x113b0f(0x1a0),'risk':'read','flags':[{'name':a10_0x113b0f(0x166),'type':a10_0x113b0f(0x178),'description':a10_0x113b0f(0x194)},{'name':a10_0x113b0f(0x1a2),'type':a10_0x113b0f(0x169),'description':a10_0x113b0f(0x1ae)},VERBOSE_FLAG],async 'execute'(_0x4bbe1e){const _0x20a546=a10_0x113b0f,_0x1fd6f8=await listRuntimeArtifacts(_0x4bbe1e[_0x20a546(0x16d)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x4bbe1e[_0x20a546(0x170)](_0x20a546(0x166))?{'source':_0x4bbe1e[_0x20a546(0x170)](_0x20a546(0x166))}:{},...readFavoriteFlag(_0x4bbe1e)!==undefined?{'favorite':readFavoriteFlag(_0x4bbe1e)}:{}});return{'ok':!![],'data':{'total':_0x1fd6f8[_0x20a546(0x193)],'items':_0x4bbe1e[_0x20a546(0x19b)](_0x20a546(0x172))?_0x1fd6f8:_0x1fd6f8[_0x20a546(0x1a5)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x113b0f(0x184),'command':a10_0x113b0f(0x192),'description':a10_0x113b0f(0x183),'risk':a10_0x113b0f(0x1a6),'flags':[{...ID_FLAG,'description':a10_0x113b0f(0x17b)}],async 'execute'(_0x42c059){const _0x18a12a=a10_0x113b0f,_0x3ccd4c=await getRuntimeArtifact(_0x42c059[_0x18a12a(0x1a3)]('id'),_0x42c059[_0x18a12a(0x16d)]);return{'ok':!![],'data':detailArtifact(_0x3ccd4c)};}},artifactCreate={'service':a10_0x113b0f(0x184),'command':'create','description':'根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','risk':a10_0x113b0f(0x1a8),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x1a0730){const _0x30c379=a10_0x113b0f,_0x2082d5=buildArtifactInput(_0x1a0730),_0x5a2f94=await createRuntimeArtifact(_0x1a0730[_0x30c379(0x16d)],_0x2082d5);return{'ok':!![],'data':detailArtifact(_0x5a2f94),'message':'Created\x20Artifact\x20'+_0x5a2f94['id']+(_0x5a2f94[_0x30c379(0x1b7)]?'\x20('+_0x5a2f94[_0x30c379(0x1b7)]+')':'')};},async 'dryRun'(_0xaf4ac7){const _0x1fcf95=a10_0x113b0f,_0x1e50fd=buildArtifactInput(_0xaf4ac7);return dryRun(_0x1fcf95(0x18f),_0x1fcf95(0x1a4))[_0x1fcf95(0x175)]({'appCode':_0xaf4ac7[_0x1fcf95(0x16d)],..._0x1e50fd})[_0x1fcf95(0x173)]('Preview:\x20create\x20react_module\x20Artifact')[_0x1fcf95(0x1b1)]();},'writeEventSubject'(_0x4c1dbf){const _0x17c657=a10_0x113b0f,_0xaeedc8=_0x4c1dbf[_0x17c657(0x16e)]?.['id'];if(typeof _0xaeedc8!==_0x17c657(0x178)&&typeof _0xaeedc8!==_0x17c657(0x18e))return undefined;return{'kind':_0x17c657(0x184),'id':String(_0xaeedc8),'action':_0x17c657(0x17d)};}},artifactUpdate={'service':a10_0x113b0f(0x184),'command':a10_0x113b0f(0x17e),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x113b0f(0x1a8),'confirmationDescription':a10_0x113b0f(0x177),'flags':[{...ID_FLAG,'description':a10_0x113b0f(0x17b)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x507960){const _0xdae06e=a10_0x113b0f,_0xb98ad6=_0x507960['num']('id'),_0x508de3=buildArtifactInput(_0x507960),_0x54ba6e=await updateRuntimeArtifact(_0xb98ad6,_0x507960[_0xdae06e(0x16d)],_0x508de3);return{'ok':!![],'data':detailArtifact(_0x54ba6e),'message':_0xdae06e(0x185)+_0x54ba6e['id']+(_0x54ba6e[_0xdae06e(0x1b7)]?'\x20('+_0x54ba6e['name']+')':'')};},async 'dryRun'(_0x248b83){const _0x1fce18=a10_0x113b0f,_0x230505=_0x248b83[_0x1fce18(0x1a3)]('id'),_0x109c97=buildArtifactInput(_0x248b83);return dryRun(_0x1fce18(0x18f),_0x1fce18(0x17c)+_0x230505+'/update')['body']({'appCode':_0x248b83['appCode'],..._0x109c97})[_0x1fce18(0x173)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x230505)['build']();},'writeEventSubject'(_0x42aef6){const _0x6ff9a0=a10_0x113b0f,_0x5aab18=_0x42aef6[_0x6ff9a0(0x16e)]?.['id'];if(typeof _0x5aab18!==_0x6ff9a0(0x178)&&typeof _0x5aab18!=='number')return undefined;return{'kind':_0x6ff9a0(0x184),'id':String(_0x5aab18),'action':_0x6ff9a0(0x17e)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x3e15df=a10_0x6222;(function(_0x11b643,_0xeec195){const _0x2aa71a=a10_0x6222,_0x6d2d31=_0x11b643();while(!![]){try{const _0x516209=parseInt(_0x2aa71a(0x136))/0x1*(-parseInt(_0x2aa71a(0x13e))/0x2)+parseInt(_0x2aa71a(0x16b))/0x3+parseInt(_0x2aa71a(0x144))/0x4*(parseInt(_0x2aa71a(0x13d))/0x5)+-parseInt(_0x2aa71a(0x14a))/0x6+parseInt(_0x2aa71a(0x14e))/0x7*(parseInt(_0x2aa71a(0x129))/0x8)+-parseInt(_0x2aa71a(0x164))/0x9*(parseInt(_0x2aa71a(0x16a))/0xa)+-parseInt(_0x2aa71a(0x135))/0xb*(-parseInt(_0x2aa71a(0x12a))/0xc);if(_0x516209===_0xeec195)break;else _0x6d2d31['push'](_0x6d2d31['shift']());}catch(_0x254c78){_0x6d2d31['push'](_0x6d2d31['shift']());}}}(a10_0x57e3,0x547fc));function a10_0x57e3(){const _0x1a1996=['object','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','favorite','detail','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','3119058LgKwsF','artifact','@ant-design/icons','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','259091PCradm','some','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','deleted','AGENT','react','parse','POST','filter','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','/client/artifact/create','exec','compiledContent','length','createTime','write','map','file','source','antd','description','body','27FHWVOa','utf8','string','split','str','add','2175090NfSMXY','716043zHGIsq','read','List\x20current-app\x20react_module\x20Artifacts','boolean','lodash','File\x20is\x20not\x20a\x20regular\x20file:\x20','name','num','validation','appCode','.\x20Unsupported:\x20','react-dom','Preview:\x20update\x20react_module\x20Artifact\x20','trim','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','includes','136ntlQmp','48mwAkmT','update','isFile','flag','dayjs','test','Show\x20one\x20Artifact\x20by\x20id','verbose','metadata','build','list','720269fkatMR','1chlFOY','Created\x20Artifact\x20','Updated\x20Artifact\x20','Artifact\x20ID','isArray','create','Invalid\x20JSON\x20for\x20--metadata:\x20','382715iNtcTz','141196ujSnNF','react_module','updateTime','Preview:\x20create\x20react_module\x20Artifact','--metadata\x20must\x20be\x20a\x20JSON\x20object.','Artifact\x20source\x20file\x20is\x20blank.','24LBnmkn'];a10_0x57e3=function(){return _0x1a1996;};return a10_0x57e3();}import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x3e15df(0x13f),ARTIFACT_SOURCE_AGENT=a10_0x3e15df(0x152),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x3e15df(0x153),a10_0x3e15df(0x124),a10_0x3e15df(0x11d),a10_0x3e15df(0x12e),a10_0x3e15df(0x161),a10_0x3e15df(0x14c)];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':a10_0x3e15df(0x166),'required':!![],'description':a10_0x3e15df(0x150)},ARTIFACT_NAME_FLAG={'name':a10_0x3e15df(0x11f),'type':'string','description':'Artifact\x20display\x20name'},METADATA_FLAG={'name':a10_0x3e15df(0x132),'type':'string','description':a10_0x3e15df(0x14d)};function isPlainObject(_0x4a3421){const _0x1f3b98=a10_0x3e15df;return typeof _0x4a3421===_0x1f3b98(0x145)&&_0x4a3421!==null&&!Array[_0x1f3b98(0x13a)](_0x4a3421);}function readSourceFile(_0x243b70){const _0x42585c=a10_0x3e15df;if(!_0x243b70)throw CliErrors[_0x42585c(0x121)]('File\x20path\x20is\x20required.');if(!existsSync(_0x243b70))throw CliErrors[_0x42585c(0x121)]('File\x20not\x20found:\x20'+_0x243b70);if(!statSync(_0x243b70)[_0x42585c(0x12c)]())throw CliErrors[_0x42585c(0x121)](_0x42585c(0x11e)+_0x243b70);const _0x8e1926=readFileSync(_0x243b70,_0x42585c(0x165));return validateReactModuleSource(_0x8e1926),_0x8e1926;}function parseMetadata(_0x5b9ed3){const _0x56da19=a10_0x3e15df;if(!_0x5b9ed3)return undefined;let _0xbcfe73;try{_0xbcfe73=JSON[_0x56da19(0x154)](_0x5b9ed3);}catch{throw CliErrors[_0x56da19(0x121)](_0x56da19(0x13c)+_0x5b9ed3);}if(!isPlainObject(_0xbcfe73))throw CliErrors[_0x56da19(0x121)](_0x56da19(0x142));const _0x2d431d={..._0xbcfe73};return delete _0x2d431d[_0x56da19(0x15a)],_0x2d431d;}function getPackageName(_0x2783a6){const _0x41f34f=a10_0x3e15df;if(_0x2783a6['startsWith']('@')){const [_0x411287,_0x9127aa]=_0x2783a6[_0x41f34f(0x167)]('/');return _0x411287&&_0x9127aa?_0x411287+'/'+_0x9127aa:_0x2783a6;}return _0x2783a6[_0x41f34f(0x167)]('/')[0x0]||_0x2783a6;}function validateAllowedImports(_0x59dcd1){const _0x4a5f4f=a10_0x3e15df,_0x70e6bc=new Set();for(const _0x27c5bb of IMPORT_SOURCE_PATTERNS){_0x27c5bb['lastIndex']=0x0;let _0x58c693;while((_0x58c693=_0x27c5bb[_0x4a5f4f(0x159)](_0x59dcd1))!==null){const _0x421f2e=_0x58c693[0x1]?.[_0x4a5f4f(0x126)]();_0x421f2e&&_0x70e6bc[_0x4a5f4f(0x169)](_0x421f2e);}}const _0x1d067b=[..._0x70e6bc][_0x4a5f4f(0x15e)](getPackageName)[_0x4a5f4f(0x156)](_0x69c44=>!ALLOWED_REACT_MODULE_IMPORTS[_0x4a5f4f(0x128)](_0x69c44));if(_0x1d067b[_0x4a5f4f(0x15b)]>0x0)throw CliErrors[_0x4a5f4f(0x121)]('react_module\x20imports\x20are\x20limited\x20to:\x20'+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4a5f4f(0x123)+[...new Set(_0x1d067b)]['join'](',\x20'));}function a10_0x6222(_0x5af894,_0x3ed34f){_0x5af894=_0x5af894-0x11d;const _0x57e3a6=a10_0x57e3();let _0x6222f7=_0x57e3a6[_0x5af894];return _0x6222f7;}export function validateReactModuleSource(_0x3906b5){const _0x5e5553=a10_0x3e15df;if(!_0x3906b5[_0x5e5553(0x126)]())throw CliErrors[_0x5e5553(0x121)](_0x5e5553(0x143));if(PAGE_LEVEL_PATTERNS[_0x5e5553(0x14f)](_0x41551b=>_0x41551b[_0x5e5553(0x12f)](_0x3906b5)))throw CliErrors['validation']('react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.');validateAllowedImports(_0x3906b5);}function buildArtifactInput(_0x3ab4f1){const _0x5d6162=a10_0x3e15df,_0x326401=readSourceFile(_0x3ab4f1['str'](_0x5d6162(0x15f))),_0x326f25=_0x3ab4f1[_0x5d6162(0x168)](_0x5d6162(0x11f))[_0x5d6162(0x126)](),_0x4d3edd=parseMetadata(_0x3ab4f1[_0x5d6162(0x168)]('metadata'));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x326f25?{'name':_0x326f25}:{},'content':_0x326401,..._0x4d3edd?{'metadata':_0x4d3edd}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x141ce5){const _0x2c7d54=a10_0x3e15df;return{'id':_0x141ce5['id'],'name':_0x141ce5[_0x2c7d54(0x11f)],'artifactType':_0x141ce5['artifactType'],'source':_0x141ce5[_0x2c7d54(0x160)],'favorite':_0x141ce5[_0x2c7d54(0x147)],'deleted':_0x141ce5[_0x2c7d54(0x151)],'createTime':_0x141ce5[_0x2c7d54(0x15c)],'updateTime':_0x141ce5[_0x2c7d54(0x140)]};}function detailArtifact(_0x545ff8){const _0x2938df=a10_0x3e15df;return{'id':_0x545ff8['id'],'appCode':_0x545ff8['appCode'],'name':_0x545ff8[_0x2938df(0x11f)],'artifactType':_0x545ff8['artifactType'],'source':_0x545ff8[_0x2938df(0x160)],'favorite':_0x545ff8[_0x2938df(0x147)],'deleted':_0x545ff8[_0x2938df(0x151)],'content':_0x545ff8['content']??'','compiledContent':_0x545ff8[_0x2938df(0x15a)],'metadata':_0x545ff8['metadata']??{},'createTime':_0x545ff8[_0x2938df(0x15c)],'updateTime':_0x545ff8[_0x2938df(0x140)]};}function readFavoriteFlag(_0x5a7f0c){const _0x53da62=a10_0x3e15df,_0xb86c65=_0x5a7f0c[_0x53da62(0x12d)](_0x53da62(0x147));return _0xb86c65===undefined||_0xb86c65===null||_0xb86c65===''?undefined:_0x5a7f0c['bool'](_0x53da62(0x147));}const artifactList={'service':'artifact','command':a10_0x3e15df(0x134),'description':a10_0x3e15df(0x16d),'risk':a10_0x3e15df(0x16c),'flags':[{'name':a10_0x3e15df(0x160),'type':a10_0x3e15df(0x166),'description':'Optional\x20source\x20filter,\x20for\x20example\x20AGENT'},{'name':'favorite','type':a10_0x3e15df(0x16e),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x5797fe){const _0x45339d=a10_0x3e15df,_0xf2383b=await listRuntimeArtifacts(_0x5797fe[_0x45339d(0x122)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x5797fe[_0x45339d(0x168)]('source')?{'source':_0x5797fe[_0x45339d(0x168)](_0x45339d(0x160))}:{},...readFavoriteFlag(_0x5797fe)!==undefined?{'favorite':readFavoriteFlag(_0x5797fe)}:{}});return{'ok':!![],'data':{'total':_0xf2383b[_0x45339d(0x15b)],'items':_0x5797fe['bool'](_0x45339d(0x131))?_0xf2383b:_0xf2383b[_0x45339d(0x15e)](summarizeArtifact)}};}},artifactDetail={'service':'artifact','command':a10_0x3e15df(0x148),'description':a10_0x3e15df(0x130),'risk':'read','flags':[{...ID_FLAG,'description':a10_0x3e15df(0x139)}],async 'execute'(_0x3cc894){const _0x29877d=a10_0x3e15df,_0x3feeb0=await getRuntimeArtifact(_0x3cc894[_0x29877d(0x120)]('id'),_0x3cc894[_0x29877d(0x122)]);return{'ok':!![],'data':detailArtifact(_0x3feeb0)};}},artifactCreate={'service':a10_0x3e15df(0x14b),'command':a10_0x3e15df(0x13b),'description':a10_0x3e15df(0x146),'risk':a10_0x3e15df(0x15d),'confirmationDescription':a10_0x3e15df(0x127),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x33b644){const _0x36a512=a10_0x3e15df,_0x279e62=buildArtifactInput(_0x33b644),_0x1bc7a7=await createRuntimeArtifact(_0x33b644[_0x36a512(0x122)],_0x279e62);return{'ok':!![],'data':detailArtifact(_0x1bc7a7),'message':_0x36a512(0x137)+_0x1bc7a7['id']+(_0x1bc7a7[_0x36a512(0x11f)]?'\x20('+_0x1bc7a7[_0x36a512(0x11f)]+')':'')};},async 'dryRun'(_0x4bdf93){const _0x3366bf=a10_0x3e15df,_0x52a1cd=buildArtifactInput(_0x4bdf93);return dryRun(_0x3366bf(0x155),_0x3366bf(0x158))[_0x3366bf(0x163)]({'appCode':_0x4bdf93['appCode'],..._0x52a1cd})[_0x3366bf(0x162)](_0x3366bf(0x141))[_0x3366bf(0x133)]();},'writeEventSubject'(_0x263f4b){const _0x396738=a10_0x3e15df,_0xed26a9=_0x263f4b['data']?.['id'];if(typeof _0xed26a9!=='string'&&typeof _0xed26a9!=='number')return undefined;return{'kind':_0x396738(0x14b),'id':String(_0xed26a9),'action':_0x396738(0x13b)};}},artifactUpdate={'service':'artifact','command':a10_0x3e15df(0x12b),'description':a10_0x3e15df(0x157),'risk':'write','confirmationDescription':a10_0x3e15df(0x149),'flags':[{...ID_FLAG,'description':a10_0x3e15df(0x139)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0xec0b7c){const _0x439fd3=a10_0x3e15df,_0x30f6ae=_0xec0b7c['num']('id'),_0x7886cf=buildArtifactInput(_0xec0b7c),_0x5a185c=await updateRuntimeArtifact(_0x30f6ae,_0xec0b7c[_0x439fd3(0x122)],_0x7886cf);return{'ok':!![],'data':detailArtifact(_0x5a185c),'message':_0x439fd3(0x138)+_0x5a185c['id']+(_0x5a185c['name']?'\x20('+_0x5a185c[_0x439fd3(0x11f)]+')':'')};},async 'dryRun'(_0x26127e){const _0x585068=a10_0x3e15df,_0x3ab07f=_0x26127e[_0x585068(0x120)]('id'),_0x426096=buildArtifactInput(_0x26127e);return dryRun(_0x585068(0x155),'/client/artifact/'+_0x3ab07f+'/update')[_0x585068(0x163)]({'appCode':_0x26127e[_0x585068(0x122)],..._0x426096})[_0x585068(0x162)](_0x585068(0x125)+_0x3ab07f)['build']();},'writeEventSubject'(_0x10ada4){const _0xd3d761=a10_0x3e15df,_0x101e8e=_0x10ada4['data']?.['id'];if(typeof _0x101e8e!=='string'&&typeof _0x101e8e!=='number')return undefined;return{'kind':_0xd3d761(0x14b),'id':String(_0x101e8e),'action':'update'};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x28898d=a11_0x189b;function a11_0x189b(_0xa02f61,_0x45a6b0){_0xa02f61=_0xa02f61-0x69;const _0x5bee9f=a11_0x5bee();let _0x189baf=_0x5bee9f[_0xa02f61];return _0x189baf;}(function(_0x12006f,_0x551cf3){const _0x3f2731=a11_0x189b,_0x12444f=_0x12006f();while(!![]){try{const _0x56b1a2=parseInt(_0x3f2731(0x87))/0x1*(-parseInt(_0x3f2731(0x7f))/0x2)+-parseInt(_0x3f2731(0x95))/0x3*(parseInt(_0x3f2731(0x86))/0x4)+parseInt(_0x3f2731(0x8c))/0x5*(-parseInt(_0x3f2731(0x7b))/0x6)+parseInt(_0x3f2731(0xa3))/0x7*(-parseInt(_0x3f2731(0xa8))/0x8)+-parseInt(_0x3f2731(0x83))/0x9+-parseInt(_0x3f2731(0x76))/0xa+parseInt(_0x3f2731(0x70))/0xb*(parseInt(_0x3f2731(0x71))/0xc);if(_0x56b1a2===_0x551cf3)break;else _0x12444f['push'](_0x12444f['shift']());}catch(_0x2873fb){_0x12444f['push'](_0x12444f['shift']());}}}(a11_0x5bee,0x755dd));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';function a11_0x5bee(){const _0x48a017=['/.device-auth','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','apiError','write','boolean','165bJAQQp','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','&source=','scope','nonInteractive','Write\x20to\x20project\x20config','global','Device\x20auth\x20API\x20returned\x20HTTP\x20','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','url-only','After\x20authorizing,\x20re-run:\x20','expired','SIGINT','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','324667bxaatE','abort','bool','str','\x0dWaiting\x20for\x20authorization...\x20','136ewSMNG','createdAt','Device\x20authorization\x20successful.','object','Device\x20auth\x20API\x20error\x20(','json','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','padStart','validation','floor','homeDirName','source','trim','global-default','POST','code','now','lovrabet-cli','success','auth','data','cancelled','43789493PoLkLi','12BaxzQJ','/api/device-auth/token','accessKey','name','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','7848790JsxOMx','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','\x20remaining','/device-auth?code=','status','3738cCukeI','stringify','access_key','string','483122LFVySZ','utf8','test','removeListener','5321385WVmmUm','signal','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','1516oBctsg','3PYalSZ','randomUUID','Invalid\x20access_key\x20returned\x20by\x20server.','getTime','Device\x20authorization\x20cancelled.','4735tYAQoF','toISOString','once','project'];a11_0x5bee=function(){return _0x48a017;};return a11_0x5bee();}import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x47a541){const _0x2ad1b1=a11_0x189b;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x47a541[_0x2ad1b1(0xa5)]('global'),'explicitProject':_0x47a541[_0x2ad1b1(0xa5)](_0x2ad1b1(0x8f)),'policy':_0x2ad1b1(0xb5)}));}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 _0x4d18d8=a11_0x189b;return crypto[_0x4d18d8(0x88)]();}export function buildDeviceAuthUrl(_0x39c99d,_0x9af010,_0x279fb6='lovrabet-cli'){const _0xdc7a38=a11_0x189b;return _0x39c99d+_0xdc7a38(0x79)+encodeURIComponent(_0x9af010)+_0xdc7a38(0x97)+encodeURIComponent(_0x279fb6);}export function getDeviceCodePath(){const _0x6bfc90=a11_0x189b;return homedir()+'/'+PRODUCT_CONFIG[_0x6bfc90(0xb2)]+_0x6bfc90(0x90);}export function readStoredDeviceCode(){const _0x535481=a11_0x189b,_0x2da961=getDeviceCodePath();if(!existsSync(_0x2da961))return null;try{const _0x588e68=readFileSync(_0x2da961,{'encoding':_0x535481(0x80)}),_0x3d5a21=JSON['parse'](_0x588e68);if(_0x3d5a21&&typeof _0x3d5a21[_0x535481(0x69)]==='string'&&typeof _0x3d5a21[_0x535481(0xa9)]===_0x535481(0x7e)&&(_0x3d5a21[_0x535481(0x98)]===_0x535481(0x9b)||_0x3d5a21[_0x535481(0x98)]===_0x535481(0x8f)))return _0x3d5a21;}catch{}return null;}export function writeStoredDeviceCode(_0x3b277a,_0x2d60b9){const _0x1acda1=a11_0x189b,_0x1db6dc=getDeviceCodePath(),_0x2b03ce=dirname(_0x1db6dc);!existsSync(_0x2b03ce)&&mkdirSync(_0x2b03ce,{'recursive':!![]});const _0x18d3bd={'code':_0x3b277a,'createdAt':new Date()[_0x1acda1(0x8d)](),'scope':_0x2d60b9};writeFileSync(_0x1db6dc,JSON['stringify'](_0x18d3bd),{'encoding':_0x1acda1(0x80),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x40ef79=getDeviceCodePath();try{unlinkSync(_0x40ef79);}catch{}}export function isStoredDeviceCodeExpired(_0x16d689){const _0xe92d3c=a11_0x189b;return Date[_0xe92d3c(0x6a)]()-new Date(_0x16d689[_0xe92d3c(0xa9)])[_0xe92d3c(0x8a)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x3e1c7f,_0x3ed8f3){const _0x3ec5d8=a11_0x189b,_0xa25bbc=_0x3e1c7f+_0x3ec5d8(0x72),_0x3acd8f=new AbortController(),_0x37f50f=setTimeout(()=>_0x3acd8f[_0x3ec5d8(0xa4)](),0x2710),_0x432a28=await fetch(_0xa25bbc,{'method':_0x3ec5d8(0xb6),'headers':{'Content-Type':'application/json'},'body':JSON[_0x3ec5d8(0x7c)]({'code':_0x3ed8f3}),'signal':_0x3acd8f[_0x3ec5d8(0x84)]});clearTimeout(_0x37f50f);if(!_0x432a28['ok'])throw CliErrors['networkError'](_0x3ec5d8(0x9c)+_0x432a28['status']);const _0x2c679f=await _0x432a28[_0x3ec5d8(0xad)](),_0x2f4e31=_0x2c679f[_0x3ec5d8(0x6e)]&&typeof _0x2c679f[_0x3ec5d8(0x6e)]===_0x3ec5d8(0xab)?_0x2c679f['data']:_0x2c679f;if(!_0x2f4e31||typeof _0x2f4e31[_0x3ec5d8(0x7a)]!==_0x3ec5d8(0x7e))throw CliErrors[_0x3ec5d8(0x92)]('Invalid\x20device\x20auth\x20response');return{'status':_0x2f4e31[_0x3ec5d8(0x7a)],'access_key':typeof _0x2f4e31['access_key']===_0x3ec5d8(0x7e)?_0x2f4e31[_0x3ec5d8(0x7d)]:undefined};}export async function pollDeviceToken(_0xcde9d4,_0x42db09,_0x20a46f){const _0x4a9c1e=a11_0x189b;let _0xad9b97=0x0;for(let _0x4597fa=0x0;_0x4597fa<MAX_POLLS;_0x4597fa++){if(_0x20a46f['aborted'])throw CliErrors['cancelled'](_0x4a9c1e(0x8b));let _0x4f84ea;try{_0x4f84ea=await fetchDeviceToken(_0xcde9d4,_0x42db09);}catch(_0x31152d){if(_0x31152d instanceof Error&&_0x31152d[_0x4a9c1e(0x74)]==='AbortError')throw CliErrors[_0x4a9c1e(0x6f)]('Device\x20authorization\x20cancelled.');_0xad9b97++;if(_0xad9b97>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors['networkError'](_0x4a9c1e(0xae));writeCliSideChannelLine(_0x4a9c1e(0xac)+_0xad9b97+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0xad9b97=0x0;if(_0x4f84ea['status']===_0x4a9c1e(0x6c)){if(!_0x4f84ea[_0x4a9c1e(0x7d)])throw CliErrors['apiError'](_0x4a9c1e(0x89));return _0x4f84ea[_0x4a9c1e(0x7d)];}if(_0x4f84ea[_0x4a9c1e(0x7a)]===_0x4a9c1e(0xa0)){deleteStoredDeviceCode();throw CliErrors[_0x4a9c1e(0xb0)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x104d85=(_0x4597fa+0x1)*POLL_INTERVAL_MS,_0x3c573f=DEVICE_CODE_TTL_MS-_0x104d85,_0x23cc5f=Math[_0x4a9c1e(0xb1)](_0x3c573f/0xea60),_0x3ed065=Math['floor'](_0x3c573f%0xea60/0x3e8);process['stderr']['write'](_0x4a9c1e(0xa7)+_0x23cc5f+':'+String(_0x3ed065)[_0x4a9c1e(0xaf)](0x2,'0')+_0x4a9c1e(0x78)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors['validation'](_0x4a9c1e(0x75));}function sleep(_0x1bc3c8){return new Promise(_0x29abdf=>setTimeout(_0x29abdf,_0x1bc3c8));}export const authDeviceDefinition={'service':a11_0x28898d(0x6d),'command':'device','description':a11_0x28898d(0x91),'risk':a11_0x28898d(0x93),'confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x28898d(0x9b),'type':a11_0x28898d(0x94),'description':'Write\x20to\x20global\x20config\x20(default)','default':!![]},{'name':a11_0x28898d(0x8f),'type':'boolean','description':a11_0x28898d(0x9a),'default':![]},{'name':a11_0x28898d(0xb3),'type':a11_0x28898d(0x7e),'description':a11_0x28898d(0xa2),'default':a11_0x28898d(0x6b)},{'name':a11_0x28898d(0x9e),'type':a11_0x28898d(0x94),'description':'Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','default':![]}],async 'execute'(_0x546c13){const _0x37d60a=a11_0x28898d,_0x36d922=resolveAuthScopeFlags(_0x546c13),_0x3c7ca9=_0x36d922[_0x37d60a(0x9b)]?_0x37d60a(0x9b):_0x37d60a(0x8f),_0x49b3e1=readScopedConfig(_0x36d922);if(_0x49b3e1[_0x37d60a(0x73)])return{'ok':!![],'message':_0x37d60a(0x85)};const _0xa0404b=(_0x546c13[_0x37d60a(0xa6)](_0x37d60a(0xb3))||_0x37d60a(0x6b))[_0x37d60a(0xb4)](),_0xc34ec3=getUserDomain(),_0x35d06a=readStoredDeviceCode(),_0x58ed7a=_0x35d06a&&!isStoredDeviceCodeExpired(_0x35d06a)?_0x35d06a['code']:((()=>{const _0x11947e=generateDeviceCode();return writeStoredDeviceCode(_0x11947e,_0x3c7ca9),_0x11947e;})()),_0x10731d=buildDeviceAuthUrl(_0xc34ec3,_0x58ed7a,_0xa0404b);if(_0x546c13['bool'](_0x37d60a(0x9e)))return console['log'](_0x10731d),{'ok':!![]};writeCliSideChannelLine(_0x37d60a(0x77)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x10731d),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x37d60a(0x96));if(_0x546c13[_0x37d60a(0x99)])return writeCliSideChannelLine(_0x37d60a(0x9f)+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x37d60a(0x9d)};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0x575d84=new AbortController(),_0x149eeb=()=>{const _0x1eacad=_0x37d60a;_0x575d84[_0x1eacad(0xa4)](),process[_0x1eacad(0x82)](_0x1eacad(0xa1),_0x149eeb);};process[_0x37d60a(0x8e)](_0x37d60a(0xa1),_0x149eeb);let _0x43c59c;try{_0x43c59c=await pollDeviceToken(_0xc34ec3,_0x58ed7a,_0x575d84[_0x37d60a(0x84)]);}finally{process[_0x37d60a(0x82)](_0x37d60a(0xa1),_0x149eeb);}if(!ACCESS_KEY_PATTERN[_0x37d60a(0x81)](_0x43c59c))throw CliErrors[_0x37d60a(0x92)](_0x37d60a(0x89));const _0x78f988=readScopedConfig(_0x36d922);return _0x78f988[_0x37d60a(0x73)]=_0x43c59c,writeScopedConfig(_0x78f988,_0x36d922),deleteStoredDeviceCode(),process['stderr'][_0x37d60a(0x93)]('\x0a'),writeCliSideChannelLine('AccessKey\x20saved\x20to\x20'+_0x3c7ca9+'\x20config.'),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':_0x37d60a(0xaa)};}};
|
|
1
|
+
const a11_0x78b5e8=a11_0x56eb;function a11_0x57d8(){const _0x1399b9=['\x20remaining','stringify','Device\x20auth\x20API\x20error\x20(','source','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','string','signal','object','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','907167UyRDjS','name','boolean','data','randomUUID','Write\x20to\x20global\x20config\x20(default)','84069lginAt','5FpTbLJ','),\x20retrying...','74ctdBvi','\x20auth\x20device','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','3071916XMAHZq','Device\x20auth\x20API\x20returned\x20HTTP\x20','Verify:\x20','cancelled','\x20config.','1888381yLxedp','floor','POST','611989gTohoW','log','SIGINT','Invalid\x20access_key\x20returned\x20by\x20server.','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','json','AccessKey\x20saved\x20to\x20','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','removeListener','once','Device\x20authorization\x20cancelled.','nonInteractive','test','lovrabet-cli','getTime','Device\x20authorization\x20successful.','2764494GbbCoY','status','scope','740028dxmcTB','global','parse','createdAt','bool','toISOString','access_key','Invalid\x20device\x20auth\x20response','write','networkError','validation','accessKey','project','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','utf8','abort','10wPEriX','global-default','code','48dYPSIC','AbortError','aborted','url-only','stderr','apiError','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)'];a11_0x57d8=function(){return _0x1399b9;};return a11_0x57d8();}(function(_0x2c3bc2,_0x1e67f8){const _0x2618a6=a11_0x56eb,_0xe18c27=_0x2c3bc2();while(!![]){try{const _0x549451=parseInt(_0x2618a6(0x12e))/0x1+-parseInt(_0x2618a6(0xec))/0x2*(parseInt(_0x2618a6(0x134))/0x3)+parseInt(_0x2618a6(0xef))/0x4+parseInt(_0x2618a6(0x135))/0x5*(parseInt(_0x2618a6(0x10a))/0x6)+parseInt(_0x2618a6(0xf7))/0x7*(-parseInt(_0x2618a6(0x11d))/0x8)+parseInt(_0x2618a6(0x107))/0x9+parseInt(_0x2618a6(0x11a))/0xa*(parseInt(_0x2618a6(0xf4))/0xb);if(_0x549451===_0x1e67f8)break;else _0xe18c27['push'](_0xe18c27['shift']());}catch(_0x46c6e4){_0xe18c27['push'](_0xe18c27['shift']());}}}(a11_0x57d8,0xaec84));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';function a11_0x56eb(_0x5cf252,_0x279927){_0x5cf252=_0x5cf252-0xeb;const _0x57d8c3=a11_0x57d8();let _0x56ebd2=_0x57d8c3[_0x5cf252];return _0x56ebd2;}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(_0x595a0a){const _0x2f7908=a11_0x56eb;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x595a0a['bool'](_0x2f7908(0x10b)),'explicitProject':_0x595a0a['bool'](_0x2f7908(0x116)),'policy':_0x2f7908(0x11b)}));}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 _0x59a336=a11_0x56eb;return crypto[_0x59a336(0x132)]();}export function buildDeviceAuthUrl(_0xf823da,_0x399d69,_0x14f6b7='lovrabet-cli'){return _0xf823da+'/device-auth?code='+encodeURIComponent(_0x399d69)+'&source='+encodeURIComponent(_0x14f6b7);}export function getDeviceCodePath(){return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+'/.device-auth';}export function readStoredDeviceCode(){const _0x141c9d=a11_0x56eb,_0x103390=getDeviceCodePath();if(!existsSync(_0x103390))return null;try{const _0x490f7e=readFileSync(_0x103390,{'encoding':_0x141c9d(0x118)}),_0x571c3c=JSON[_0x141c9d(0x10c)](_0x490f7e);if(_0x571c3c&&typeof _0x571c3c[_0x141c9d(0x11c)]===_0x141c9d(0x12a)&&typeof _0x571c3c[_0x141c9d(0x10d)]===_0x141c9d(0x12a)&&(_0x571c3c[_0x141c9d(0x109)]===_0x141c9d(0x10b)||_0x571c3c[_0x141c9d(0x109)]===_0x141c9d(0x116)))return _0x571c3c;}catch{}return null;}export function writeStoredDeviceCode(_0x11b414,_0x1d61ee){const _0x51903d=a11_0x56eb,_0x23c2c8=getDeviceCodePath(),_0x910684=dirname(_0x23c2c8);!existsSync(_0x910684)&&mkdirSync(_0x910684,{'recursive':!![]});const _0x33d96f={'code':_0x11b414,'createdAt':new Date()[_0x51903d(0x10f)](),'scope':_0x1d61ee};writeFileSync(_0x23c2c8,JSON['stringify'](_0x33d96f),{'encoding':_0x51903d(0x118),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x2a6b44=getDeviceCodePath();try{unlinkSync(_0x2a6b44);}catch{}}export function isStoredDeviceCodeExpired(_0x4f4228){const _0x5e5502=a11_0x56eb;return Date['now']()-new Date(_0x4f4228[_0x5e5502(0x10d)])[_0x5e5502(0x105)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x5ea7f5,_0xc8479b){const _0x399566=a11_0x56eb,_0x2caab7=_0x5ea7f5+'/api/device-auth/token',_0x289598=new AbortController(),_0x33b611=setTimeout(()=>_0x289598[_0x399566(0x119)](),0x2710),_0x45029e=await fetch(_0x2caab7,{'method':_0x399566(0xf6),'headers':{'Content-Type':'application/json'},'body':JSON[_0x399566(0x126)]({'code':_0xc8479b}),'signal':_0x289598[_0x399566(0x12b)]});clearTimeout(_0x33b611);if(!_0x45029e['ok'])throw CliErrors[_0x399566(0x113)](_0x399566(0xf0)+_0x45029e['status']);const _0x1363f6=await _0x45029e[_0x399566(0xfc)](),_0x383337=_0x1363f6[_0x399566(0x131)]&&typeof _0x1363f6[_0x399566(0x131)]===_0x399566(0x12c)?_0x1363f6[_0x399566(0x131)]:_0x1363f6;if(!_0x383337||typeof _0x383337[_0x399566(0x108)]!=='string')throw CliErrors[_0x399566(0x122)](_0x399566(0x111));return{'status':_0x383337['status'],'access_key':typeof _0x383337[_0x399566(0x110)]===_0x399566(0x12a)?_0x383337[_0x399566(0x110)]:undefined};}export async function pollDeviceToken(_0x25aa96,_0x290d5a,_0x1fdbec){const _0x33e0e4=a11_0x56eb;let _0x8dbd42=0x0;for(let _0x113a6c=0x0;_0x113a6c<MAX_POLLS;_0x113a6c++){if(_0x1fdbec[_0x33e0e4(0x11f)])throw CliErrors[_0x33e0e4(0xf2)](_0x33e0e4(0x101));let _0x4a3538;try{_0x4a3538=await fetchDeviceToken(_0x25aa96,_0x290d5a);}catch(_0x5f52b5){if(_0x5f52b5 instanceof Error&&_0x5f52b5[_0x33e0e4(0x12f)]===_0x33e0e4(0x11e))throw CliErrors[_0x33e0e4(0xf2)](_0x33e0e4(0x101));_0x8dbd42++;if(_0x8dbd42>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors['networkError']('Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.');writeCliSideChannelLine(_0x33e0e4(0x127)+_0x8dbd42+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x33e0e4(0xeb)),await sleep(POLL_INTERVAL_MS);continue;}_0x8dbd42=0x0;if(_0x4a3538[_0x33e0e4(0x108)]==='success'){if(!_0x4a3538[_0x33e0e4(0x110)])throw CliErrors['apiError']('Invalid\x20access_key\x20returned\x20by\x20server.');return _0x4a3538['access_key'];}if(_0x4a3538[_0x33e0e4(0x108)]==='expired'){deleteStoredDeviceCode();throw CliErrors['validation'](_0x33e0e4(0xfb));}const _0x27c0c6=(_0x113a6c+0x1)*POLL_INTERVAL_MS,_0x8c90d8=DEVICE_CODE_TTL_MS-_0x27c0c6,_0x140917=Math['floor'](_0x8c90d8/0xea60),_0x3f479e=Math[_0x33e0e4(0xf5)](_0x8c90d8%0xea60/0x3e8);process[_0x33e0e4(0x121)][_0x33e0e4(0x112)]('\x0dWaiting\x20for\x20authorization...\x20'+_0x140917+':'+String(_0x3f479e)['padStart'](0x2,'0')+_0x33e0e4(0x125)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x33e0e4(0x114)](_0x33e0e4(0x129));}function sleep(_0xa69c2a){return new Promise(_0x281b1b=>setTimeout(_0x281b1b,_0xa69c2a));}export const authDeviceDefinition={'service':'auth','command':'device','description':a11_0x78b5e8(0xfe),'risk':'write','confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x78b5e8(0x10b),'type':'boolean','description':a11_0x78b5e8(0x133),'default':!![]},{'name':a11_0x78b5e8(0x116),'type':a11_0x78b5e8(0x130),'description':'Write\x20to\x20project\x20config','default':![]},{'name':a11_0x78b5e8(0x128),'type':'string','description':a11_0x78b5e8(0x124),'default':a11_0x78b5e8(0x104)},{'name':a11_0x78b5e8(0x120),'type':a11_0x78b5e8(0x130),'description':a11_0x78b5e8(0xee),'default':![]}],async 'execute'(_0x212c02){const _0xe36371=a11_0x78b5e8,_0x32b441=resolveAuthScopeFlags(_0x212c02),_0x3454ef=_0x32b441[_0xe36371(0x10b)]?_0xe36371(0x10b):_0xe36371(0x116),_0x3bc841=readScopedConfig(_0x32b441);if(_0x3bc841[_0xe36371(0x115)])return{'ok':!![],'message':_0xe36371(0x123)};const _0x3dd0c0=(_0x212c02['str'](_0xe36371(0x128))||_0xe36371(0x104))['trim'](),_0x43afb9=getUserDomain(),_0x52a881=readStoredDeviceCode(),_0x3090bb=_0x52a881&&!isStoredDeviceCodeExpired(_0x52a881)?_0x52a881['code']:((()=>{const _0x3fb606=generateDeviceCode();return writeStoredDeviceCode(_0x3fb606,_0x3454ef),_0x3fb606;})()),_0x500ef9=buildDeviceAuthUrl(_0x43afb9,_0x3090bb,_0x3dd0c0);if(_0x212c02[_0xe36371(0x10e)](_0xe36371(0x120)))return console[_0xe36371(0xf8)](_0x500ef9),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x500ef9),writeCliSideChannelLine(''),writeCliSideChannelLine(_0xe36371(0x12d));if(_0x212c02[_0xe36371(0x102)])return writeCliSideChannelLine('After\x20authorizing,\x20re-run:\x20'+CLI_BIN_NAME+_0xe36371(0xed)),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine(_0xe36371(0x117));const _0x4d0ce3=new AbortController(),_0x3e14b5=()=>{const _0xead832=_0xe36371;_0x4d0ce3[_0xead832(0x119)](),process[_0xead832(0xff)](_0xead832(0xf9),_0x3e14b5);};process[_0xe36371(0x100)]('SIGINT',_0x3e14b5);let _0x100bd6;try{_0x100bd6=await pollDeviceToken(_0x43afb9,_0x3090bb,_0x4d0ce3[_0xe36371(0x12b)]);}finally{process[_0xe36371(0xff)](_0xe36371(0xf9),_0x3e14b5);}if(!ACCESS_KEY_PATTERN[_0xe36371(0x103)](_0x100bd6))throw CliErrors['apiError'](_0xe36371(0xfa));const _0xf62e62=readScopedConfig(_0x32b441);return _0xf62e62['accessKey']=_0x100bd6,writeScopedConfig(_0xf62e62,_0x32b441),deleteStoredDeviceCode(),process['stderr'][_0xe36371(0x112)]('\x0a'),writeCliSideChannelLine(_0xe36371(0xfd)+_0x3454ef+_0xe36371(0xf3)),writeCliSideChannelLine(_0xe36371(0xf1)+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':_0xe36371(0x106)};}};
|