@lovrabet/lovrabet-cli 2.2.0 → 2.2.1-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.d.ts +2 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/lovrabet/SKILL.md +4 -2
- package/skills/lovrabet/references/lovrabet-schedule-workflow.md +10 -4
- package/skills/lovrabet.manifest.json +3 -3
package/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
(function(
|
|
2
|
+
(function(_0x44d0bb,_0x5a68a2){const _0x44291c=a0_0x2c1d,_0x25f687=_0x44d0bb();while(!![]){try{const _0x1497f3=parseInt(_0x44291c(0x1a5))/0x1*(-parseInt(_0x44291c(0x18e))/0x2)+parseInt(_0x44291c(0x1af))/0x3+-parseInt(_0x44291c(0x1b1))/0x4*(-parseInt(_0x44291c(0x1a3))/0x5)+-parseInt(_0x44291c(0x1ad))/0x6*(parseInt(_0x44291c(0x19b))/0x7)+-parseInt(_0x44291c(0x18c))/0x8*(parseInt(_0x44291c(0x190))/0x9)+-parseInt(_0x44291c(0x18d))/0xa+-parseInt(_0x44291c(0x1a6))/0xb*(-parseInt(_0x44291c(0x194))/0xc);if(_0x1497f3===_0x5a68a2)break;else _0x25f687['push'](_0x25f687['shift']());}catch(_0x15b2e1){_0x25f687['push'](_0x25f687['shift']());}}}(a0_0x325a,0x85670));import{jsx as a0_0x4a1980}from'react/jsx-runtime';import a0_0x308891 from'meow';import{render}from'ink';function a0_0x2c1d(_0x20f94e,_0xb3445f){_0x20f94e=_0x20f94e-0x18b;const _0x325a98=a0_0x325a();let _0x2c1dc9=_0x325a98[_0x20f94e];return _0x2c1dc9;}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';function a0_0x325a(){const _0x2d28f7=['1265wXzfSd','ExitPromptError','definition','corrected','exit','args','slice','114VwSVVV','assign','3215082QHkHXB','flatMap','36yyMRfe','original','40kwXJpB','4015500gyQwtb','108hzsOLq','code','1492389gfkJMn','write','Hint:\x20','log','82212uoalDo','stderr','name','exitCode','cancelled','hint','error','194061AYeChv',':\x20--','help','defaultCommand','flags','\x0aCancelled.\x0a','Error:\x20','Unexpected\x20error:','447235pRfNFD','ERR_STREAM_DESTROYED','6681fCkKod'];a0_0x325a=function(){return _0x2d28f7;};return a0_0x325a();}import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x308891(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()['catch'](handleError);async function main(){try{await run();}catch(_0x27266){handleError(_0x27266);}}async function run(){const _0x46b2b7=a0_0x2c1d;let _0x3bba8b=cli['input'][0x0],_0x21e624=cli['input'][0x1];const _0x4cd790=cli[_0x46b2b7(0x19f)];try{const {correctFlags:_0x1f5824}=await import('./framework/preparse.js'),_0x4b6524=getAllDefinitions()[_0x46b2b7(0x1b0)](_0x3e66df=>_0x3e66df[_0x46b2b7(0x19f)]??[]),{flags:_0xdcad6c,corrections:_0xdec5a7}=_0x1f5824(_0x4cd790,_0x4b6524);if(_0xdec5a7['length']>0x0){for(const _0x3f5c9d of _0xdec5a7){process[_0x46b2b7(0x195)]['write']('[preparse]\x20'+_0x3f5c9d['handler']+_0x46b2b7(0x19c)+_0x3f5c9d[_0x46b2b7(0x18b)]+'\x20->\x20--'+_0x3f5c9d[_0x46b2b7(0x1a9)]+'\x0a');}Object[_0x46b2b7(0x1ae)](_0x4cd790,_0xdcad6c);}}catch{}if(!_0x3bba8b){const {waitUntilExit:_0x29ed54}=render(a0_0x4a1980(Help,{}));await _0x29ed54();return;}const _0x123664=resolveRemovedCommand(_0x3bba8b,_0x21e624);if(_0x123664)throw CliErrors['validation'](_0x123664['message'],_0x123664[_0x46b2b7(0x199)]);if(!isKnownService(_0x3bba8b)){const _0x4a3e75=resolveDynamicServiceCommand(cli['input'],_0x4cd790);if(_0x4a3e75){if(_0x4cd790['help']){console[_0x46b2b7(0x193)](generateCommandHelp(_0x4a3e75[_0x46b2b7(0x1a8)]));return;}Object[_0x46b2b7(0x1ae)](_0x4cd790,_0x4a3e75[_0x46b2b7(0x19f)]);const _0x10b754=buildConfigFromFlags(_0x4cd790);await initGlobalEnvironment(_0x10b754);const _0x42bb71=createPipelineEnv(_0x10b754,_0x4cd790);_0x42bb71[_0x46b2b7(0x1ab)]=_0x4a3e75[_0x46b2b7(0x1ab)],await runCommand(_0x4a3e75['definition'],_0x42bb71);return;}if(_0x4cd790[_0x46b2b7(0x19d)]){const _0x1e5c5a=generateDynamicServiceHelp(_0x3bba8b);if(_0x1e5c5a){console[_0x46b2b7(0x193)](_0x1e5c5a);return;}}const {waitUntilExit:_0x1ff218}=render(a0_0x4a1980(Help,{}));await _0x1ff218();return;}const _0x171d53=getServiceEntry(_0x3bba8b);if(!_0x21e624){if(_0x4cd790[_0x46b2b7(0x19d)]){console[_0x46b2b7(0x193)](generateServiceHelp(_0x3bba8b));return;}if(_0x171d53[_0x46b2b7(0x19e)])_0x21e624=_0x171d53[_0x46b2b7(0x19e)];else{console[_0x46b2b7(0x193)](generateServiceHelp(_0x3bba8b));return;}}const _0x3b75d1=findDefinition(_0x3bba8b,_0x21e624);!_0x3b75d1&&(console[_0x46b2b7(0x193)](generateServiceHelp(_0x3bba8b)),handleError(CliErrors['unknownCommand'](_0x3bba8b+'\x20'+_0x21e624)));if(_0x4cd790[_0x46b2b7(0x19d)]){console[_0x46b2b7(0x193)](generateCommandHelp(_0x3b75d1));return;}const _0x200c5b=buildConfigFromFlags(_0x4cd790);await initGlobalEnvironment(_0x200c5b);const _0x5da5f5=createPipelineEnv(_0x200c5b,_0x4cd790);_0x5da5f5[_0x46b2b7(0x1ab)]=cli['input'][_0x46b2b7(0x1ac)](0x2),await runCommand(_0x3b75d1,_0x5da5f5);}function handleError(_0x3ce15d){const _0x411b09=a0_0x2c1d;if(_0x3ce15d instanceof CliError){_0x3ce15d['code']===_0x411b09(0x198)&&(process[_0x411b09(0x195)][_0x411b09(0x191)](_0x411b09(0x1a0)),process['exit'](0x0));console['error'](_0x411b09(0x1a1)+_0x3ce15d['message']);if(_0x3ce15d[_0x411b09(0x199)])console[_0x411b09(0x19a)](_0x411b09(0x192)+_0x3ce15d[_0x411b09(0x199)]);process[_0x411b09(0x1aa)](_0x3ce15d[_0x411b09(0x197)]);}isUserCancellation(_0x3ce15d)&&(process[_0x411b09(0x195)][_0x411b09(0x191)](_0x411b09(0x1a0)),process[_0x411b09(0x1aa)](0x0)),console[_0x411b09(0x19a)](_0x411b09(0x1a2),_0x3ce15d),process[_0x411b09(0x1aa)](0x1);}function isUserCancellation(_0x1b1c7a){const _0x3643a2=a0_0x2c1d;if(!(_0x1b1c7a instanceof Error))return![];if(_0x1b1c7a[_0x3643a2(0x196)]===_0x3643a2(0x1a7))return!![];if(_0x1b1c7a[_0x3643a2(0x18f)]==='ERR_USE_AFTER_CLOSE')return!![];if(_0x1b1c7a[_0x3643a2(0x18f)]===_0x3643a2(0x1a4))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x44fe7e=a1_0x135a;function a1_0x135a(_0x38e43f,_0x2a17b7){_0x38e43f=_0x38e43f-0x6e;const _0x319eb9=a1_0x319e();let _0x135a8e=_0x319eb9[_0x38e43f];return _0x135a8e;}(function(_0x207c1d,_0x21a951){const _0x29c5c2=a1_0x135a,_0x5e547d=_0x207c1d();while(!![]){try{const _0x388004=-parseInt(_0x29c5c2(0xe1))/0x1+parseInt(_0x29c5c2(0xc1))/0x2*(-parseInt(_0x29c5c2(0x7b))/0x3)+-parseInt(_0x29c5c2(0x86))/0x4+parseInt(_0x29c5c2(0xdf))/0x5*(parseInt(_0x29c5c2(0x9b))/0x6)+parseInt(_0x29c5c2(0x7a))/0x7*(parseInt(_0x29c5c2(0xb6))/0x8)+-parseInt(_0x29c5c2(0xc0))/0x9*(-parseInt(_0x29c5c2(0xc9))/0xa)+parseInt(_0x29c5c2(0xa4))/0xb;if(_0x388004===_0x21a951)break;else _0x5e547d['push'](_0x5e547d['shift']());}catch(_0x2c05bf){_0x5e547d['push'](_0x5e547d['shift']());}}}(a1_0x319e,0x32348));function a1_0x319e(){const _0x4a1b68=['32575gXuEEC','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','167828zrmDWB','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','paging.totalCount\x20gives\x20total\x20rows','获取数据集详情','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','method','Execute\x20BF\x20endpoint\x20function','appCode','str','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','7InYwAH','17889HmRsTa','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27','查询单条数据','datasetCode','/api/{appCode}/{datasetCode}/getOne','执行自定义\x20SQL','/api/dataset/get-dataset-list-by-app-code','Get\x20BF\x20endpoint\x20function\x20contract','List\x20available\x20runtime\x20API\x20documentation\x20entries','##\x20Dataset\x20detail','55672uTxwKN','whenToUse','List\x20datasets','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','tableData\x20contains\x20dataset\x20id/code/name','32-character\x20dataset\x20code','validation','bf_execute','dataset_data_aggregate','code','filter','custom_sql','dataset_data_filter','Returns\x20script\x20business\x20payload','Returns\x20one\x20matching\x20business\x20record','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','join','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','Returns\x20SQL\x20execution\x20payload','##\x20Aggregate\x20dataset\x20data','tableData\x20contains\x20records','156evoVVl','/api/endpoint/{appCode}/{functionName}','{\x22fieldName\x22:\x22value\x22}','POST','Dataset\x20detail','##\x20List\x20datasets','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','title','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','893926xAJGKy','toLowerCase','聚合查询数据集数据','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','按应用和函数名精确获取\x20BF\x20运行契约','detail','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','keyword','Current\x20app\x20code','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','Exact\x20endpoint\x20function\x20name','path','分页获取数据集列表','创建数据','{\x22id\x22:123}','/api/custom/executeSql','paging\x20contains\x20pagination','383312Makvsi','find','operations\x20describes\x20runtime\x20APIs','API\x20doc\x20code\x20not\x20found:\x20','GET','dataset_data_get_one','string','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','18HGsrrx','4bSvTeD','where\x20filters\x20before\x20aggregation','API\x20doc\x20code,\x20for\x20example\x20dataset_list','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','functionName','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','category','503710suExZB','/api/{appCode}/{datasetCode}/create','dataset','Execute\x20custom\x20SQL','执行指定\x20BF\x20函数','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','api-doc','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','summary','map','None','read','trim','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','dataset_detail','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:1,\x22pageSize\x22:20}\x27'];a1_0x319e=function(){return _0x4a1b68;};return a1_0x319e();}import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x44fe7e(0xc8),'type':a1_0x44fe7e(0xbc),'description':'Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset'},KEYWORD_FLAG={'name':a1_0x44fe7e(0xac),'type':'string','description':a1_0x44fe7e(0xc5)},DOC_CODE_FLAG={'name':a1_0x44fe7e(0x8f),'type':a1_0x44fe7e(0xbc),'required':!![],'description':a1_0x44fe7e(0xc3)},DOCS=[{'code':'dataset_list','category':a1_0x44fe7e(0xcb),'title':a1_0x44fe7e(0x88),'method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0x82),'summary':a1_0x44fe7e(0xb1),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x44fe7e(0xbf),'responseHighlights':[a1_0x44fe7e(0x8a),a1_0x44fe7e(0x71)],'examples':[a1_0x44fe7e(0xce)],'notes':[a1_0x44fe7e(0xd1)],'markdown':[a1_0x44fe7e(0xa0),'',a1_0x44fe7e(0xa7)]['join']('\x0a')},{'code':a1_0x44fe7e(0xdd),'category':a1_0x44fe7e(0xcb),'title':a1_0x44fe7e(0x9f),'method':a1_0x44fe7e(0xba),'path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x44fe7e(0x72),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':a1_0x44fe7e(0x8f),'description':a1_0x44fe7e(0x8b)}],'bodySchema':a1_0x44fe7e(0xd5),'responseHighlights':['fields/properties\x20describe\x20data\x20shape',a1_0x44fe7e(0xa1),a1_0x44fe7e(0xb8)],'examples':[a1_0x44fe7e(0x78)],'notes':[a1_0x44fe7e(0x6f)],'markdown':[a1_0x44fe7e(0x85),'',a1_0x44fe7e(0x95)][a1_0x44fe7e(0x96)]('\x0a')},{'code':a1_0x44fe7e(0x92),'category':'dataset','title':'Filter\x20dataset\x20data','method':a1_0x44fe7e(0x9e),'path':'/api/{appCode}/{datasetCode}/filter','summary':'条件过滤查询数据','whenToUse':a1_0x44fe7e(0xaa),'pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0x7f),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x44fe7e(0x70),'responseHighlights':[a1_0x44fe7e(0x9a),a1_0x44fe7e(0xb5)],'examples':[a1_0x44fe7e(0xde),a1_0x44fe7e(0x7d)],'notes':[a1_0x44fe7e(0xbd),a1_0x44fe7e(0xab),a1_0x44fe7e(0xdc),'Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':['##\x20Filter\x20dataset\x20data','',a1_0x44fe7e(0x73)][a1_0x44fe7e(0x96)]('\x0a')},{'code':a1_0x44fe7e(0x8e),'category':'dataset','title':'Aggregate\x20dataset\x20data','method':a1_0x44fe7e(0x9e),'path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0x44fe7e(0xa6),'whenToUse':'需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','pathParams':[{'name':'appCode','description':a1_0x44fe7e(0xad)},{'name':'datasetCode','description':a1_0x44fe7e(0x8b)}],'queryParams':[],'bodySchema':a1_0x44fe7e(0xe3),'responseHighlights':['result\x20rows\x20contain\x20aggregate\x20aliases',a1_0x44fe7e(0xc2)],'examples':['lovrabet\x20data\x20aggregate\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22aggregate\x22:[{\x22column\x22:\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}]}\x27'],'notes':[a1_0x44fe7e(0xd9),a1_0x44fe7e(0xc7)],'markdown':[a1_0x44fe7e(0x99),'',a1_0x44fe7e(0xbe)][a1_0x44fe7e(0x96)]('\x0a')},{'code':a1_0x44fe7e(0xbb),'category':'dataset','title':'Get\x20one\x20dataset\x20record','method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0x80),'summary':a1_0x44fe7e(0x7e),'whenToUse':'已经知道记录\x20id,需要按数据集读取单条业务数据时使用','pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0x7f),'description':a1_0x44fe7e(0x8b)}],'queryParams':[],'bodySchema':a1_0x44fe7e(0xb3),'responseHighlights':[a1_0x44fe7e(0x94)],'examples':[a1_0x44fe7e(0xe2)],'notes':[a1_0x44fe7e(0xd2)],'markdown':a1_0x44fe7e(0x7c)},{'code':'dataset_data_create','category':'dataset','title':'Create\x20dataset\x20record','method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0xca),'summary':a1_0x44fe7e(0xb2),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0x7f),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x44fe7e(0x9d),'responseHighlights':[a1_0x44fe7e(0xc4)],'examples':['lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27'],'notes':[a1_0x44fe7e(0x89)],'markdown':a1_0x44fe7e(0x79)},{'code':'bf_detail','category':'bf','title':a1_0x44fe7e(0x83),'method':'GET','path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0x44fe7e(0xa8),'whenToUse':a1_0x44fe7e(0xcf),'pathParams':[{'name':a1_0x44fe7e(0x76),'description':a1_0x44fe7e(0xad)},{'name':'functionName','description':a1_0x44fe7e(0xaf)}],'queryParams':[],'bodySchema':a1_0x44fe7e(0xd5),'responseHighlights':['CLI\x20returns\x20appCode/functionName/description/version/gmtModified'],'examples':[a1_0x44fe7e(0xd8)],'notes':[a1_0x44fe7e(0x6e)],'markdown':a1_0x44fe7e(0xda)},{'code':a1_0x44fe7e(0x8d),'category':'bf','title':a1_0x44fe7e(0x75),'method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0x9c),'summary':a1_0x44fe7e(0xcd),'whenToUse':a1_0x44fe7e(0xe0),'pathParams':[{'name':'appCode','description':a1_0x44fe7e(0xad)},{'name':a1_0x44fe7e(0xc6),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x44fe7e(0x93)],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x44fe7e(0x97)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':'custom_sql_execute','category':a1_0x44fe7e(0x91),'title':a1_0x44fe7e(0xcc),'method':a1_0x44fe7e(0x9e),'path':a1_0x44fe7e(0xb4),'summary':a1_0x44fe7e(0x81),'whenToUse':a1_0x44fe7e(0xdb),'pathParams':[],'queryParams':[],'bodySchema':a1_0x44fe7e(0xa3),'responseHighlights':[a1_0x44fe7e(0x98)],'examples':[a1_0x44fe7e(0xae)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x257248){const _0x48bf33=a1_0x44fe7e;return{'code':_0x257248[_0x48bf33(0x8f)],'category':_0x257248['category'],'method':_0x257248[_0x48bf33(0x74)],'path':_0x257248[_0x48bf33(0xb0)],'summary':_0x257248[_0x48bf33(0xd3)],'whenToUse':_0x257248[_0x48bf33(0x87)]};}export function listApiDocEntries(_0x4cdd9c={}){const _0x37c230=a1_0x44fe7e,_0x5df399=String(_0x4cdd9c[_0x37c230(0xc8)]||'')[_0x37c230(0xd7)](),_0x1c8bfb=String(_0x4cdd9c[_0x37c230(0xac)]||'')[_0x37c230(0xd7)]()[_0x37c230(0xa5)]();return DOCS[_0x37c230(0x90)](_0x1d727a=>{const _0x442b76=_0x37c230;if(_0x5df399&&_0x1d727a['category']!==_0x5df399)return![];if(!_0x1c8bfb)return!![];return[_0x1d727a['code'],_0x1d727a[_0x442b76(0xc8)],_0x1d727a[_0x442b76(0x74)],_0x1d727a[_0x442b76(0xb0)],_0x1d727a['summary'],_0x1d727a[_0x442b76(0x87)],_0x1d727a[_0x442b76(0xa2)]][_0x442b76(0x96)]('\x20')['toLowerCase']()['includes'](_0x1c8bfb);})[_0x37c230(0xd4)](entrySummary);}export function getApiDocDetail(_0x5a323a){const _0x263263=a1_0x44fe7e,_0x436b00=DOCS[_0x263263(0xb7)](_0x1ff97c=>_0x1ff97c[_0x263263(0x8f)]===_0x5a323a);if(!_0x436b00)throw CliErrors[_0x263263(0x8c)](_0x263263(0xb9)+_0x5a323a);return{..._0x436b00};}const apiDocList={'service':'api-doc','command':'list','description':a1_0x44fe7e(0x84),'risk':a1_0x44fe7e(0xd6),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0xa1ff50){const _0x16bc2b=a1_0x44fe7e,_0x4a71ca=listApiDocEntries({'category':_0xa1ff50['str'](_0x16bc2b(0xc8)),'keyword':_0xa1ff50[_0x16bc2b(0x77)](_0x16bc2b(0xac))});return{'ok':!![],'data':{'total':_0x4a71ca['length'],'items':_0x4a71ca}};}},apiDocDetail={'service':a1_0x44fe7e(0xd0),'command':a1_0x44fe7e(0xa9),'description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0x44fe7e(0xd6),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x5c9d6a){const _0x55ee30=a1_0x44fe7e;return{'ok':!![],'data':getApiDocDetail(_0x5c9d6a['str'](_0x55ee30(0x8f)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
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 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x17e301,_0x3f0425){const _0x4ed45e=a2_0x5e4c,_0x16720d=_0x17e301();while(!![]){try{const _0x1b09d5=-parseInt(_0x4ed45e(0x17c))/0x1+-parseInt(_0x4ed45e(0x173))/0x2*(parseInt(_0x4ed45e(0x179))/0x3)+-parseInt(_0x4ed45e(0x16d))/0x4*(-parseInt(_0x4ed45e(0x17e))/0x5)+parseInt(_0x4ed45e(0x16f))/0x6+-parseInt(_0x4ed45e(0x16b))/0x7*(-parseInt(_0x4ed45e(0x163))/0x8)+-parseInt(_0x4ed45e(0x17d))/0x9*(-parseInt(_0x4ed45e(0x174))/0xa)+parseInt(_0x4ed45e(0x171))/0xb*(-parseInt(_0x4ed45e(0x175))/0xc);if(_0x1b09d5===_0x3f0425)break;else _0x16720d['push'](_0x16720d['shift']());}catch(_0x4a7fb5){_0x16720d['push'](_0x16720d['shift']());}}}(a2_0x274c,0x98ac6));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a2_0x274c(){const _0x1752f2=['47060mCKHoD','121284fEsmsC','ak_','my-apps.json','isArray','3XnOxKu','items','update','1246687MUqNLr','513qPeSQB','2952830zyCFHi','unknown','stringify','hex','312UTzmuH','cache','EPERM','utf8','sha256','slice','find','.tmp','201691iycdAn','digest','4YJveBU','code','6437964JoJTpJ','trim','209xTpPOU','parse','1982878AZPBmO'];a2_0x274c=function(){return _0x1752f2;};return a2_0x274c();}import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function a2_0x5e4c(_0x5bcdf8,_0x3986d6){_0x5bcdf8=_0x5bcdf8-0x161;const _0x274cb6=a2_0x274c();let _0x5e4c32=_0x274cb6[_0x5bcdf8];return _0x5e4c32;}export function fingerprintAccessKey(_0x10893f){const _0x55cc86=a2_0x5e4c,_0x81449e=_0x10893f['trim'](),_0xec9ff1=_0x81449e[_0x55cc86(0x168)](-0x6)||_0x55cc86(0x17f),_0x5f147e=createHash(_0x55cc86(0x167))[_0x55cc86(0x17b)](_0x81449e)[_0x55cc86(0x16c)](_0x55cc86(0x162))[_0x55cc86(0x168)](0x0,0xc);return _0x55cc86(0x176)+_0xec9ff1+'_'+_0x5f147e;}export function getAppCacheFilePath(_0x2cd61c,_0x3fa7d1){const _0x9500c7=a2_0x5e4c;return resolve(homedir(),PRODUCT_CONFIG['homeDirName'],_0x9500c7(0x164),_0x2cd61c,fingerprintAccessKey(_0x3fa7d1),_0x9500c7(0x177));}export function readCachedAppList(_0x398e4a,_0x3cfdfd){const _0x5cb228=a2_0x5e4c;if(!_0x3cfdfd?.[_0x5cb228(0x170)]())return null;const _0x38e645=getAppCacheFilePath(_0x398e4a,_0x3cfdfd);if(!existsSync(_0x38e645))return null;try{const _0x26fbd6=readFileSync(_0x38e645,'utf8');if(!_0x26fbd6['trim']())return null;const _0x23d5b8=JSON[_0x5cb228(0x172)](_0x26fbd6);if(!Array[_0x5cb228(0x178)](_0x23d5b8[_0x5cb228(0x17a)]))return null;return _0x23d5b8;}catch{return null;}}export function writeCachedAppList(_0x437d34,_0x23d3ff,_0x4fcff5){const _0x30a7e1=a2_0x5e4c,_0x40cb01=getAppCacheFilePath(_0x437d34,_0x23d3ff),_0x552d44=dirname(_0x40cb01);!existsSync(_0x552d44)&&mkdirSync(_0x552d44,{'recursive':!![]});const _0x2aeb53=_0x40cb01+_0x30a7e1(0x16a);try{writeFileSync(_0x2aeb53,JSON[_0x30a7e1(0x161)](_0x4fcff5,null,0x2)+'\x0a',{'encoding':_0x30a7e1(0x166),'mode':0x180});try{renameSync(_0x2aeb53,_0x40cb01);}catch(_0x2cdbb1){if(_0x2cdbb1[_0x30a7e1(0x16e)]===_0x30a7e1(0x165)||_0x2cdbb1['code']==='EXDEV'||_0x2cdbb1[_0x30a7e1(0x16e)]==='EACCES'){writeFileSync(_0x40cb01,JSON[_0x30a7e1(0x161)](_0x4fcff5,null,0x2)+'\x0a',{'encoding':_0x30a7e1(0x166)});try{unlinkSync(_0x2aeb53);}catch{}}else throw _0x2cdbb1;}}catch(_0x5b4154){try{unlinkSync(_0x2aeb53);}catch{}throw _0x5b4154;}return _0x40cb01;}export function resolveCachedAppCode(_0x27091d,_0x4e3106,_0x519205){const _0x28b432=a2_0x5e4c;if(!_0x27091d)return undefined;const _0x3bbad7=readCachedAppList(_0x4e3106,_0x519205),_0x2b5325=_0x3bbad7?.['items'][_0x28b432(0x169)](_0x5e1f42=>_0x5e1f42['appName']===_0x27091d&&isRuntimeAccessibleApp(_0x5e1f42));return _0x2b5325?.['appCode']?.[_0x28b432(0x170)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0xf45ccb=a3_0xc2b4;(function(_0x54af64,_0x1f83d4){const _0x5cd12c=a3_0xc2b4,_0x5d39f2=_0x54af64();while(!![]){try{const _0x4fa534=parseInt(_0x5cd12c(0x1c1))/0x1*(-parseInt(_0x5cd12c(0x1ca))/0x2)+parseInt(_0x5cd12c(0x1b8))/0x3+-parseInt(_0x5cd12c(0x1d4))/0x4*(parseInt(_0x5cd12c(0x1d1))/0x5)+parseInt(_0x5cd12c(0x1ae))/0x6*(-parseInt(_0x5cd12c(0x1d8))/0x7)+-parseInt(_0x5cd12c(0x1e1))/0x8*(-parseInt(_0x5cd12c(0x1ee))/0x9)+parseInt(_0x5cd12c(0x1b0))/0xa+parseInt(_0x5cd12c(0x1c5))/0xb;if(_0x4fa534===_0x1f83d4)break;else _0x5d39f2['push'](_0x5d39f2['shift']());}catch(_0x26d32b){_0x5d39f2['push'](_0x5d39f2['shift']());}}}(a3_0x7490,0xad259));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';function a3_0x7490(){const _0x506c04=['filter','isArray','1168455DhHGFb','string','name','isCurrent','从\x20.rabetbase.json\x20文件导入默认应用选择','cache','../../context.js','Read\x20from\x20local\x20cache\x20only','write','409719FNfykL','\x20app(s)\x20for\x20env=\x22','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','../../commands/app/remote-source.js','356455tOvtCE','trim','bool','Loaded\x20','remote','2LHGkWp','appName','no-cache','list','include-unpublished','appCode','app','5545OTsedt','\x20cached\x20app(s)\x20for\x20env=\x22','config','1772EocvBa','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','import','从平台刷新本地应用缓存','3943219MOKpGD','length','globalPath','map','fetchedAt','production','langs','nonInteractive','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','832uwYbiD','Filter\x20by\x20environment\x20(default:\x20current\x20env)','No\x20cached\x20apps\x20found.','projectPath','appOwnerName','appcode','local','pull','find','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','env','i18nInfo','cachePath','97884BxFKRT','entries','boolean','mergedCli','Read\x20app\x20list\x20from\x20local\x20cache\x20only','6flcMMR','enableI18n','6205380ObaRzD','Target\x20environment\x20(default:\x20current\x20env)','source','str','envName','items'];a3_0x7490=function(){return _0x506c04;};return a3_0x7490();}import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x27295a,_0x5206d7){const _0x323af2=a3_0xc2b4,_0x9efe6a={};for(const _0x1667e3 of _0x5206d7){const _0x38b3b=_0x1667e3['type']===_0x323af2(0x1f0)?_0x27295a[_0x323af2(0x1c7)](_0x1667e3['name']):_0x27295a['str'](_0x1667e3[_0x323af2(0x1ba)]);if(_0x38b3b!==''&&_0x38b3b!==![])_0x9efe6a[_0x1667e3[_0x323af2(0x1ba)]]=_0x38b3b;}if(_0x27295a[_0x323af2(0x1df)])_0x9efe6a[_0x323af2(0x1df)]=!![];return _0x9efe6a;}function normalizeLanguages(_0x396472){const _0x521756=a3_0xc2b4;if(!Array[_0x521756(0x1b7)](_0x396472))return[];return _0x396472[_0x521756(0x1b6)](_0x1356ca=>typeof _0x1356ca===_0x521756(0x1b9))[_0x521756(0x1db)](_0x4e29d5=>_0x4e29d5[_0x521756(0x1c6)]())[_0x521756(0x1b6)](Boolean);}function a3_0xc2b4(_0x3c0ea8,_0x5ba5f6){_0x3c0ea8=_0x3c0ea8-0x1ad;const _0x749005=a3_0x7490();let _0xc2b469=_0x749005[_0x3c0ea8];return _0xc2b469;}function buildRemoteAppI18nFields(_0x1e49b7){const _0x558194=a3_0xc2b4,_0x3369ef=normalizeLanguages(_0x1e49b7['i18nInfo']?.[_0x558194(0x1de)]);return{'enableI18n':typeof _0x1e49b7[_0x558194(0x1af)]===_0x558194(0x1f0)?_0x1e49b7[_0x558194(0x1af)]:null,'languages':_0x3369ef,'i18nInfo':_0x1e49b7['i18nInfo']?{..._0x1e49b7[_0x558194(0x1ec)],'langs':_0x3369ef[_0x558194(0x1d9)]?_0x3369ef:null}:null};}const listDef={'service':'app','command':a3_0xf45ccb(0x1cd),'description':a3_0xf45ccb(0x1e0),'risk':'read','requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0xf45ccb(0x1eb),'type':a3_0xf45ccb(0x1b9),'description':a3_0xf45ccb(0x1e2),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0xf45ccb(0x1e7),'type':a3_0xf45ccb(0x1f0),'description':a3_0xf45ccb(0x1ad),'default':![]},{'name':'no-cache','type':a3_0xf45ccb(0x1f0),'description':a3_0xf45ccb(0x1c3),'default':![]},{'name':a3_0xf45ccb(0x1ce),'type':a3_0xf45ccb(0x1f0),'description':'Include\x20unpublished\x20apps\x20for\x20diagnostics','default':![]}],async 'execute'(_0x3ef6b9){const _0x218d48=a3_0xf45ccb,_0x3b7fef=_0x3ef6b9['str'](_0x218d48(0x1eb))||_0x3ef6b9[_0x218d48(0x1b4)]||getEnv()||_0x218d48(0x1dd),_0x3d9d3d=_0x3ef6b9[_0x218d48(0x1c7)](_0x218d48(0x1e7)),_0x2d5dc7=_0x3ef6b9[_0x218d48(0x1c7)]('no-cache'),_0x2f7c4f=_0x3ef6b9['bool'](_0x218d48(0x1ce)),{readRawConfigWithLayers:_0x384294,resolveDefaultAppSource:_0x406990,getLocalAppAliases:_0x516cf5}=await import(_0x218d48(0x1be)),{getRemoteAppList:_0x1beb91}=await import(_0x218d48(0x1c4)),{config:_0x6adfd1,layers:_0x2545f6}=_0x384294(),_0x1d26cd=_0x406990(_0x2545f6),{defaultApp:_0x14bca5}=_0x6adfd1,_0x374b54=await _0x1beb91({'env':_0x3b7fef,'accessKey':_0x3ef6b9['accessKey'],'localOnly':_0x3d9d3d,'noCache':_0x2d5dc7}),_0x17e0a6=_0x2f7c4f?_0x374b54[_0x218d48(0x1b5)]:filterRuntimeAccessibleApps(_0x374b54[_0x218d48(0x1b5)]),_0x3eccbb=_0x374b54[_0x218d48(0x1b5)]['length']-_0x17e0a6[_0x218d48(0x1d9)],_0xd149f4=_0x17e0a6[_0x218d48(0x1db)](_0xfbbc6=>{const _0x3aa774=_0x218d48;return{'name':_0xfbbc6[_0x3aa774(0x1cb)],'appcode':_0xfbbc6[_0x3aa774(0x1cf)],'named':!![],'definedIn':_0x3aa774(0x1c9),'isDefault':_0xfbbc6[_0x3aa774(0x1cb)]===_0x14bca5,...buildAppProfileListFields(_0x3b7fef),...buildRemoteAppI18nFields(_0xfbbc6),'source':_0x374b54[_0x3aa774(0x1b2)],'owner':_0xfbbc6[_0x3aa774(0x1e5)]??null,'status':_0xfbbc6['appPublishStatus']??null,'cachedAt':_0x374b54[_0x3aa774(0x1dc)]};}),_0x39fcd0=_0x516cf5(_0x6adfd1);let _0xbb11d5=0x0;for(const [_0x28f1dd,_0x2a4e42]of Object[_0x218d48(0x1ef)](_0x39fcd0)){const _0x3d9d20=typeof _0x2a4e42[_0x218d48(0x1e6)]===_0x218d48(0x1b9)?_0x2a4e42[_0x218d48(0x1e6)][_0x218d48(0x1c6)]():'';if(!_0x3d9d20)continue;const _0x4d95af=findAppByCode(_0x374b54[_0x218d48(0x1b5)],_0x3d9d20);if(!_0x2f7c4f&&_0x4d95af&&!isRuntimeAccessibleApp(_0x4d95af))continue;_0xbb11d5+=0x1,_0xd149f4['push']({'name':_0x28f1dd,'appcode':_0x3d9d20,'named':!![],'definedIn':_0x218d48(0x1e7),'isDefault':_0x28f1dd===_0x14bca5,...buildAppProfileListFields(_0x3b7fef),'source':_0x218d48(0x1d3),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0xd149f4,_0x3ef6b9[_0x218d48(0x1f1)]);const _0x141cf3=_0xd149f4[_0x218d48(0x1e9)](_0xcfd8b2=>_0xcfd8b2[_0x218d48(0x1bb)]===!![]),_0x302fd2=_0x14bca5??_0x141cf3?.[_0x218d48(0x1ba)]??null,_0x18d61b={'env':_0x3b7fef,'source':_0x374b54[_0x218d48(0x1b2)],'fetchedAt':_0x374b54['fetchedAt'],'cachePath':_0x374b54[_0x218d48(0x1ed)],'globalPath':_0x2545f6[_0x218d48(0x1da)]??null,'projectPath':_0x2545f6[_0x218d48(0x1e4)]??null,'defaultApp':_0x302fd2,'defaultAppSource':_0x14bca5!=null?_0x1d26cd:null,'localAliasCount':_0xbb11d5,'remoteTotal':_0x374b54[_0x218d48(0x1b5)]['length'],'hiddenUnpublishedCount':_0x3eccbb,'includeUnpublished':_0x2f7c4f};if(_0xd149f4[_0x218d48(0x1d9)]===0x0)return{'ok':!![],'data':{'items':_0xd149f4,'meta':_0x18d61b},'message':_0x374b54[_0x218d48(0x1b2)]===_0x218d48(0x1bd)?_0x218d48(0x1e3):'No\x20apps\x20found\x20on\x20the\x20platform.'};return{'ok':!![],'data':{'items':_0xd149f4,'meta':_0x18d61b}};}},pullDef={'service':a3_0xf45ccb(0x1d0),'command':a3_0xf45ccb(0x1e8),'description':a3_0xf45ccb(0x1d7),'risk':a3_0xf45ccb(0x1c0),'confirmationDescription':a3_0xf45ccb(0x1ea),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0xf45ccb(0x1eb),'type':'string','description':a3_0xf45ccb(0x1b1),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0xf45ccb(0x1e7),'type':a3_0xf45ccb(0x1f0),'description':a3_0xf45ccb(0x1bf),'default':![]},{'name':'no-cache','type':a3_0xf45ccb(0x1f0),'description':a3_0xf45ccb(0x1c3),'default':![]}],async 'execute'(_0x108b91){const _0x52aae7=a3_0xf45ccb,_0x540f73=_0x108b91[_0x52aae7(0x1b3)]('env')||_0x108b91[_0x52aae7(0x1b4)]||getEnv()||'production',_0x5f2876=_0x108b91['bool'](_0x52aae7(0x1e7)),_0x273de8=_0x108b91[_0x52aae7(0x1c7)](_0x52aae7(0x1cc)),{getRemoteAppList:_0x5f202a}=await import(_0x52aae7(0x1c4)),_0x2ae064=await _0x5f202a({'env':_0x540f73,'accessKey':_0x108b91['accessKey'],'localOnly':_0x5f2876,'noCache':_0x273de8});return{'ok':!![],'data':{'total':_0x2ae064[_0x52aae7(0x1b5)]['length'],'env':_0x540f73,'source':_0x2ae064[_0x52aae7(0x1b2)],'fetchedAt':_0x2ae064[_0x52aae7(0x1dc)],'cachePath':_0x2ae064[_0x52aae7(0x1ed)]},'message':_0x2ae064[_0x52aae7(0x1b2)]==='cache'?_0x52aae7(0x1c8)+_0x2ae064[_0x52aae7(0x1b5)][_0x52aae7(0x1d9)]+_0x52aae7(0x1d2)+_0x540f73+'\x22.':'Refreshed\x20app\x20cache\x20with\x20'+_0x2ae064['items'][_0x52aae7(0x1d9)]+_0x52aae7(0x1c2)+_0x540f73+'\x22.'};}},importDef={'service':a3_0xf45ccb(0x1d0),'command':a3_0xf45ccb(0x1d6),'description':a3_0xf45ccb(0x1bc),'risk':'write','confirmationDescription':a3_0xf45ccb(0x1d5),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x3fedc5){return await runAppImport(collectFlags(_0x3fedc5,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x4c55e2,_0x1921cf){const _0x184016=a4_0x201d,_0x2e2fc7=_0x4c55e2();while(!![]){try{const _0x537bc6=parseInt(_0x184016(0x8a))/0x1+-parseInt(_0x184016(0x83))/0x2*(parseInt(_0x184016(0x86))/0x3)+-parseInt(_0x184016(0x75))/0x4+parseInt(_0x184016(0x7d))/0x5+-parseInt(_0x184016(0x7b))/0x6*(parseInt(_0x184016(0x84))/0x7)+-parseInt(_0x184016(0x7a))/0x8*(-parseInt(_0x184016(0x7c))/0x9)+parseInt(_0x184016(0x85))/0xa*(parseInt(_0x184016(0x7f))/0xb);if(_0x537bc6===_0x1921cf)break;else _0x2e2fc7['push'](_0x2e2fc7['shift']());}catch(_0x480121){_0x2e2fc7['push'](_0x2e2fc7['shift']());}}}(a4_0x54f9,0x70c87));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(_0x2ebfd5){const _0x51b70c=a4_0x201d;if(typeof _0x2ebfd5!==_0x51b70c(0x80))return null;const _0x149bc6=_0x2ebfd5[_0x51b70c(0x88)]();return _0x149bc6?_0x149bc6[_0x51b70c(0x76)]():null;}function a4_0x201d(_0x184e54,_0x5a5796){_0x184e54=_0x184e54-0x75;const _0x54f971=a4_0x54f9();let _0x201d71=_0x54f971[_0x184e54];return _0x201d71;}export function isRuntimeAccessibleApp(_0x453ebb){const _0x291371=a4_0x201d;return normalizeAppPublishStatus(_0x453ebb[_0x291371(0x7e)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0xa94dfa){return _0xa94dfa['filter'](isRuntimeAccessibleApp);}export function findAppByName(_0x3c96b3,_0x23ad51){const _0xdb6c31=a4_0x201d;return _0x3c96b3[_0xdb6c31(0x81)](_0x15c2a0=>_0x15c2a0[_0xdb6c31(0x78)]===_0x23ad51);}export function findAppByCode(_0x3a911c,_0x1e12c3){const _0x530183=a4_0x201d,_0x42681b=_0x1e12c3['trim']();if(!_0x42681b)return undefined;return _0x3a911c[_0x530183(0x81)](_0x43f878=>_0x43f878[_0x530183(0x89)]?.['trim']()===_0x42681b);}function a4_0x54f9(){const _0x1fc11a=['2557038DlbkTD','string','find','Current\x20status:\x20','12XtaQEP','2220988hPfDdo','50wqRMrW','298113lISXBD','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','trim','appCode','408985WPfmsF','validation','3573516GSvumP','toUpperCase','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','appName','.\x20Publish\x20the\x20app\x20before\x20using\x20','18976qDPoHW','6IbAdFz','135uhmBbG','3309965TBEfAk','appPublishStatus'];a4_0x54f9=function(){return _0x1fc11a;};return a4_0x54f9();}export function runtimeInaccessibleAppError(_0x7f8bb7,_0x1615b5){const _0x149687=a4_0x201d,_0x3266ec=normalizeAppPublishStatus(_0x7f8bb7[_0x149687(0x7e)])??'UNKNOWN';return CliErrors[_0x149687(0x8b)]('App\x20'+_0x1615b5+_0x149687(0x87),_0x149687(0x82)+_0x3266ec+_0x149687(0x79)+CLI_BIN_NAME+_0x149687(0x77));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a5_0x32a3(){const _0x5b6d73=['30055pFjTre','425796tWiFRY','errorCode','234446OZSKCo','406209DDLoOG','../../../mock/app-list.json','241904vRKQFI','2Nubtya','success','11OIHtwW','parse','35JdOyal','190KxZAWH','92yFSLIQ','4275924iONbji','data','14445qEKlaE','utf-8','Mock\x20API\x20error:\x20','tableData'];a5_0x32a3=function(){return _0x5b6d73;};return a5_0x32a3();}(function(_0x5a6580,_0x5be20d){const _0x2c25e9=a5_0x22ed,_0xda6386=_0x5a6580();while(!![]){try{const _0x54ffa2=-parseInt(_0x2c25e9(0xb1))/0x1+-parseInt(_0x2c25e9(0xb5))/0x2*(-parseInt(_0x2c25e9(0xb2))/0x3)+parseInt(_0x2c25e9(0xbb))/0x4*(parseInt(_0x2c25e9(0xae))/0x5)+-parseInt(_0x2c25e9(0xaf))/0x6+-parseInt(_0x2c25e9(0xb9))/0x7*(parseInt(_0x2c25e9(0xb4))/0x8)+-parseInt(_0x2c25e9(0xbe))/0x9*(parseInt(_0x2c25e9(0xba))/0xa)+parseInt(_0x2c25e9(0xb7))/0xb*(parseInt(_0x2c25e9(0xbc))/0xc);if(_0x54ffa2===_0x5be20d)break;else _0xda6386['push'](_0xda6386['shift']());}catch(_0x4b54de){_0xda6386['push'](_0xda6386['shift']());}}}(a5_0x32a3,0x22e26));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 _0x365609=a5_0x22ed,_0x2d5a1f=join(__dirname,_0x365609(0xb3)),_0x2b640f=readFileSync(_0x2d5a1f,_0x365609(0xab));return JSON[_0x365609(0xb8)](_0x2b640f);}let _cached=null;function a5_0x22ed(_0xc28e45,_0x1a4ba){_0xc28e45=_0xc28e45-0xab;const _0x32a33f=a5_0x32a3();let _0x22ed64=_0x32a33f[_0xc28e45];return _0x22ed64;}export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0xfe5953=a5_0x22ed,_0x3cfe54=getMockAppList();if(!_0x3cfe54[_0xfe5953(0xb6)])throw new Error(_0xfe5953(0xac)+_0x3cfe54['errorMsg']+'\x20('+_0x3cfe54[_0xfe5953(0xb0)]+')');return _0x3cfe54[_0xfe5953(0xbd)][_0xfe5953(0xad)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a6_0x4b19(_0x3c03a9,_0x497586){_0x3c03a9=_0x3c03a9-0x18d;const _0x4c5700=a6_0x4c57();let _0x4b19d3=_0x4c5700[_0x3c03a9];return _0x4b19d3;}(function(_0x8e953b,_0x5bad27){const _0x394cfd=a6_0x4b19,_0x43b212=_0x8e953b();while(!![]){try{const _0x90c2a8=parseInt(_0x394cfd(0x197))/0x1+parseInt(_0x394cfd(0x19a))/0x2+-parseInt(_0x394cfd(0x18f))/0x3+parseInt(_0x394cfd(0x191))/0x4*(parseInt(_0x394cfd(0x193))/0x5)+-parseInt(_0x394cfd(0x199))/0x6+-parseInt(_0x394cfd(0x19b))/0x7+-parseInt(_0x394cfd(0x198))/0x8;if(_0x90c2a8===_0x5bad27)break;else _0x43b212['push'](_0x43b212['shift']());}catch(_0x47d4b6){_0x43b212['push'](_0x43b212['shift']());}}}(a6_0x4c57,0x21477));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x3a61cb=a6_0x4b19,_0x3a9f65=(productEnv(_0x3a61cb(0x18e))||'')['trim']()[_0x3a61cb(0x19c)]();return _0x3a9f65==='mock';}function a6_0x4c57(){const _0x2f068d=['items','1084212biTifq','trim','5IQPAVM','fetchedAt','cache','mock','227797YThuYc','292976BLlxlH','687006JjztcC','171326PRxVsg','1489432HayLvu','toLowerCase','remote','APP_LIST_SOURCE','252909DQmpaD'];a6_0x4c57=function(){return _0x2f068d;};return a6_0x4c57();}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x29c6d3){const _0x177d76=a6_0x4b19,{env:_0x33b624,accessKey:_0x448cb1,localOnly:localOnly=![],noCache:noCache=![]}=_0x29c6d3,_0x1aa05b=readCachedAppList(_0x33b624,_0x448cb1),_0x504fc8=_0x448cb1?.['trim']()?getAppCacheFilePath(_0x33b624,_0x448cb1):null;if(localOnly)return{'items':_0x1aa05b?.[_0x177d76(0x190)]??[],'source':_0x177d76(0x195),'fetchedAt':_0x1aa05b?.[_0x177d76(0x194)]??null,'cachePath':_0x504fc8};try{const _0x522772=await getRemoteAppItems(),_0x3f8623=shouldUseMockRemoteApps()?_0x177d76(0x196):_0x177d76(0x18d),_0x3b9d04=new Date()['toISOString'](),_0x445ec5=_0x448cb1?.[_0x177d76(0x192)]()?writeCachedAppList(_0x33b624,_0x448cb1,{'env':_0x33b624,'fetchedAt':_0x3b9d04,'source':_0x3f8623,'items':_0x522772}):null;return{'items':_0x522772,'source':_0x3f8623,'fetchedAt':_0x3b9d04,'cachePath':_0x445ec5};}catch(_0x1b2e79){if(!noCache&&_0x1aa05b)return{'items':_0x1aa05b[_0x177d76(0x190)],'source':'cache','fetchedAt':_0x1aa05b[_0x177d76(0x194)],'cachePath':_0x504fc8};throw _0x1b2e79;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a7_0x3a6d(_0xab5d6f,_0x4912ac){_0xab5d6f=_0xab5d6f-0x16e;const _0x48c8b9=a7_0x48c8();let _0x3a6d92=_0x48c8b9[_0xab5d6f];return _0x3a6d92;}function a7_0x48c8(){const _0xf363c5=['name','6704fUgTiJ','6LASItd','defaultApp','344495ykTAVw','find','named','appcode','trim','2595VAlsPD','22348770dPZjea','9lRPboR','isCurrent','2001186knvgIe','currentApp','appCode','1488568qLHCWK','5740679hNTWXd','3468935YvwHsZ'];a7_0x48c8=function(){return _0xf363c5;};return a7_0x48c8();}(function(_0xee8ea6,_0x5b635e){const _0x468bdb=a7_0x3a6d,_0x461141=_0xee8ea6();while(!![]){try{const _0x261b2c=parseInt(_0x468bdb(0x180))/0x1*(-parseInt(_0x468bdb(0x17e))/0x2)+-parseInt(_0x468bdb(0x172))/0x3*(parseInt(_0x468bdb(0x17d))/0x4)+parseInt(_0x468bdb(0x17b))/0x5+-parseInt(_0x468bdb(0x176))/0x6+parseInt(_0x468bdb(0x17a))/0x7+parseInt(_0x468bdb(0x179))/0x8*(-parseInt(_0x468bdb(0x174))/0x9)+parseInt(_0x468bdb(0x173))/0xa;if(_0x261b2c===_0x5b635e)break;else _0x461141['push'](_0x461141['shift']());}catch(_0x25be04){_0x461141['push'](_0x461141['shift']());}}}(a7_0x48c8,0xb61ce));export function enrichAppListItemsWithMergedSelection(_0x32622e,_0x13887f){const _0x3d0082=a7_0x3a6d;if(!_0x13887f)return;const _0x2f1209=!!(_0x13887f[_0x3d0082(0x177)]??_0x13887f[_0x3d0082(0x17f)]);for(const _0x171179 of _0x32622e){_0x171179[_0x3d0082(0x175)]=![];}const _0x347ee8=_0x13887f[_0x3d0082(0x178)]!=null?String(_0x13887f[_0x3d0082(0x178)])[_0x3d0082(0x171)]():'';if(_0x2f1209){const _0x2ee1bd=_0x13887f[_0x3d0082(0x177)]??_0x13887f[_0x3d0082(0x17f)];if(_0x2ee1bd){const _0x2b2163=_0x32622e[_0x3d0082(0x16e)](_0x151927=>_0x151927['named']===!![]&&_0x151927[_0x3d0082(0x17c)]===_0x2ee1bd&&_0x151927['definedIn']==='local'),_0x40ec9d=_0x2b2163??_0x32622e[_0x3d0082(0x16e)](_0x566948=>_0x566948[_0x3d0082(0x16f)]===!![]&&_0x566948[_0x3d0082(0x17c)]===_0x2ee1bd);if(_0x40ec9d){const _0x46979a=String(_0x40ec9d[_0x3d0082(0x170)]??'')['trim']();if(!_0x347ee8||_0x46979a===_0x347ee8){_0x40ec9d['isCurrent']=!![];return;}}}if(_0x347ee8){const _0x44431f=_0x32622e[_0x3d0082(0x16e)](_0x3e12bd=>String(_0x3e12bd['appcode']??'')[_0x3d0082(0x171)]()===_0x347ee8);_0x44431f&&(_0x44431f['isCurrent']=!![]);}return;}if(!_0x347ee8)return;for(const _0x2d85d7 of _0x32622e){String(_0x2d85d7[_0x3d0082(0x170)]??'')[_0x3d0082(0x171)]()===_0x347ee8&&(_0x2d85d7['isCurrent']=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a8_0x49a2(){const _0x44cb69=['Unable\x20to\x20get\x20app-config\x20value:\x20key=','655mXMpgP','41036zNDwtZ','App\x20config\x20key','507388wgafpq','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','appCode','Usage:\x20','Missing\x20app-config\x20key.','1leLYBf','1377801DeOnwp','5474920qGrgQv','args','read','apiError','5038551pjtvOD','18266440ArIZOb','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','trim','2711218tGVJNL','12NBRdhr','\x20app-config\x20get\x20<key>'];a8_0x49a2=function(){return _0x44cb69;};return a8_0x49a2();}const a8_0x1c6a9c=a8_0x2d01;(function(_0x3935fa,_0x360346){const _0x471ace=a8_0x2d01,_0x2cd92d=_0x3935fa();while(!![]){try{const _0x9f5f40=-parseInt(_0x471ace(0x11c))/0x1*(parseInt(_0x471ace(0x126))/0x2)+parseInt(_0x471ace(0x11d))/0x3+parseInt(_0x471ace(0x12b))/0x4*(-parseInt(_0x471ace(0x12a))/0x5)+parseInt(_0x471ace(0x127))/0x6*(-parseInt(_0x471ace(0x12d))/0x7)+parseInt(_0x471ace(0x11e))/0x8+parseInt(_0x471ace(0x122))/0x9+parseInt(_0x471ace(0x123))/0xa;if(_0x9f5f40===_0x360346)break;else _0x2cd92d['push'](_0x2cd92d['shift']());}catch(_0x2a37f8){_0x2cd92d['push'](_0x2cd92d['shift']());}}}(a8_0x49a2,0xa7629));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a8_0x2d01(_0x2566f4,_0x58190f){_0x2566f4=_0x2566f4-0x119;const _0x49a290=a8_0x49a2();let _0x2d0173=_0x49a290[_0x2566f4];return _0x2d0173;}import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':'app-config','command':'get','description':a8_0x1c6a9c(0x12e),'risk':a8_0x1c6a9c(0x120),'args':[{'name':'key','description':a8_0x1c6a9c(0x12c),'required':!![]}],'flags':[],async 'execute'(_0x4668c8){const _0x50ec3b=a8_0x1c6a9c,_0x39b119=_0x4668c8[_0x50ec3b(0x11f)][0x0]?.[_0x50ec3b(0x125)]();if(!_0x39b119)throw CliErrors['validation'](_0x50ec3b(0x11b),_0x50ec3b(0x11a)+CLI_BIN_NAME+_0x50ec3b(0x128));try{const _0x3a0a58=await getRuntimeAppConfigByKey(_0x4668c8[_0x50ec3b(0x119)],_0x39b119);return{'ok':!![],'data':_0x3a0a58};}catch{throw CliErrors[_0x50ec3b(0x121)](_0x50ec3b(0x129)+_0x39b119+',\x20appCode='+_0x4668c8[_0x50ec3b(0x119)],_0x50ec3b(0x124));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x45070b,_0x1b8458){const _0x43b48f=a9_0x5092,_0x4194d5=_0x45070b();while(!![]){try{const _0x29319c=parseInt(_0x43b48f(0x143))/0x1*(parseInt(_0x43b48f(0x13e))/0x2)+parseInt(_0x43b48f(0x13f))/0x3+parseInt(_0x43b48f(0x139))/0x4*(-parseInt(_0x43b48f(0x141))/0x5)+-parseInt(_0x43b48f(0x13b))/0x6+parseInt(_0x43b48f(0x13d))/0x7+-parseInt(_0x43b48f(0x13a))/0x8*(parseInt(_0x43b48f(0x142))/0x9)+-parseInt(_0x43b48f(0x13c))/0xa*(-parseInt(_0x43b48f(0x140))/0xb);if(_0x29319c===_0x1b8458)break;else _0x4194d5['push'](_0x4194d5['shift']());}catch(_0x204505){_0x4194d5['push'](_0x4194d5['shift']());}}}(a9_0x395e,0x8cf52));function a9_0x5092(_0x522dda,_0x49325d){_0x522dda=_0x522dda-0x139;const _0x395e0d=a9_0x395e();let _0x509264=_0x395e0d[_0x522dda];return _0x509264;}import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];function a9_0x395e(){const _0x1e44d7=['3850350DNTtgl','10eXfGQM','5416068vpdNEQ','44oQGaqm','554889TnvPze','4272565TjSFrI','1315QcIvDh','18gmVQbA','33717hAmfGk','6356ulYxll','1807528ChSqSm'];a9_0x395e=function(){return _0x1e44d7;};return a9_0x395e();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x2f2ff1=a10_0x120b;(function(_0x69f0bb,_0x1cfd7a){const _0x345bef=a10_0x120b,_0x52facb=_0x69f0bb();while(!![]){try{const _0x26ed84=parseInt(_0x345bef(0x219))/0x1+parseInt(_0x345bef(0x1f4))/0x2+parseInt(_0x345bef(0x209))/0x3*(parseInt(_0x345bef(0x1da))/0x4)+parseInt(_0x345bef(0x1f6))/0x5+parseInt(_0x345bef(0x212))/0x6+parseInt(_0x345bef(0x221))/0x7+parseInt(_0x345bef(0x1e3))/0x8*(-parseInt(_0x345bef(0x21e))/0x9);if(_0x26ed84===_0x1cfd7a)break;else _0x52facb['push'](_0x52facb['shift']());}catch(_0x29ee0d){_0x52facb['push'](_0x52facb['shift']());}}}(a10_0x575a,0xbdcab));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';function a10_0x575a(){const _0x2e7007=['object','POST','build','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','list','dayjs','File\x20not\x20found:\x20','808qcxEBK','updateTime','body','content','data','createTime','File\x20is\x20not\x20a\x20regular\x20file:\x20','utf8','some','.\x20Unsupported:\x20','Artifact\x20display\x20name','@ant-design/icons','trim','metadata','Created\x20Artifact\x20','bool','update','2404900fEoGOo','Optional\x20favorite-state\x20filter','1608220lieiqE','Artifact\x20ID','artifactType','react','react_module','favorite','Preview:\x20create\x20react_module\x20Artifact','string','str','includes','detail','flag','length','validation','write','lodash','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','number','create','1299dMfznj','react_module\x20imports\x20are\x20limited\x20to:\x20','/update','read','source','verbose','boolean','description','name','1652676YIbYmO','isFile','add','file','compiledContent','react-dom','artifact','154842xsDJVx','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','num','--metadata\x20must\x20be\x20a\x20JSON\x20object.','split','213957kNrYav','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','join','5813367eEDrGC','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','antd','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','List\x20current-app\x20react_module\x20Artifacts','deleted','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','parse','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','3636cGZhEw','appCode'];a10_0x575a=function(){return _0x2e7007;};return a10_0x575a();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x2f2ff1(0x1fa),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x2f2ff1(0x1f9),a10_0x2f2ff1(0x217),a10_0x2f2ff1(0x205),a10_0x2f2ff1(0x1e1),a10_0x2f2ff1(0x223),a10_0x2f2ff1(0x1ee)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x2f2ff1(0x220)](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x2f2ff1(0x215),'type':a10_0x2f2ff1(0x1fd),'required':!![],'description':a10_0x2f2ff1(0x224)},ARTIFACT_NAME_FLAG={'name':'name','type':'string','description':a10_0x2f2ff1(0x1ed)},METADATA_FLAG={'name':a10_0x2f2ff1(0x1f0),'type':a10_0x2f2ff1(0x1fd),'description':a10_0x2f2ff1(0x21f)};function isPlainObject(_0x35108b){const _0x3407ae=a10_0x2f2ff1;return typeof _0x35108b===_0x3407ae(0x1dc)&&_0x35108b!==null&&!Array['isArray'](_0x35108b);}function readSourceFile(_0x13157b){const _0x2bda03=a10_0x2f2ff1;if(!_0x13157b)throw CliErrors[_0x2bda03(0x203)]('File\x20path\x20is\x20required.');if(!existsSync(_0x13157b))throw CliErrors[_0x2bda03(0x203)](_0x2bda03(0x1e2)+_0x13157b);if(!statSync(_0x13157b)[_0x2bda03(0x213)]())throw CliErrors['validation'](_0x2bda03(0x1e9)+_0x13157b);const _0x696647=readFileSync(_0x13157b,_0x2bda03(0x1ea));return validateReactModuleSource(_0x696647),_0x696647;}function parseMetadata(_0x361722){const _0x49fe01=a10_0x2f2ff1;if(!_0x361722)return undefined;let _0x16bb95;try{_0x16bb95=JSON[_0x49fe01(0x1d8)](_0x361722);}catch{throw CliErrors[_0x49fe01(0x203)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x361722);}if(!isPlainObject(_0x16bb95))throw CliErrors[_0x49fe01(0x203)](_0x49fe01(0x21c));const _0x406c7d={..._0x16bb95};return delete _0x406c7d[_0x49fe01(0x216)],_0x406c7d;}function a10_0x120b(_0x4fea16,_0x480585){_0x4fea16=_0x4fea16-0x1d7;const _0x575a82=a10_0x575a();let _0x120baf=_0x575a82[_0x4fea16];return _0x120baf;}function getPackageName(_0x36834a){const _0x1a3337=a10_0x2f2ff1;if(_0x36834a['startsWith']('@')){const [_0x48e4b3,_0x4bcad2]=_0x36834a[_0x1a3337(0x21d)]('/');return _0x48e4b3&&_0x4bcad2?_0x48e4b3+'/'+_0x4bcad2:_0x36834a;}return _0x36834a['split']('/')[0x0]||_0x36834a;}function validateAllowedImports(_0x2107b5){const _0x4b14e7=a10_0x2f2ff1,_0x38a21a=new Set();for(const _0x128bfe of IMPORT_SOURCE_PATTERNS){_0x128bfe['lastIndex']=0x0;let _0x472087;while((_0x472087=_0x128bfe['exec'](_0x2107b5))!==null){const _0x46449d=_0x472087[0x1]?.['trim']();_0x46449d&&_0x38a21a[_0x4b14e7(0x214)](_0x46449d);}}const _0x3d00a6=[..._0x38a21a]['map'](getPackageName)['filter'](_0x35c63c=>!ALLOWED_REACT_MODULE_IMPORTS[_0x4b14e7(0x1ff)](_0x35c63c));if(_0x3d00a6[_0x4b14e7(0x202)]>0x0)throw CliErrors[_0x4b14e7(0x203)](_0x4b14e7(0x20a)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4b14e7(0x1ec)+[...new Set(_0x3d00a6)][_0x4b14e7(0x220)](',\x20'));}export function validateReactModuleSource(_0x184615){const _0x347a3a=a10_0x2f2ff1;if(!_0x184615[_0x347a3a(0x1ef)]())throw CliErrors[_0x347a3a(0x203)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS[_0x347a3a(0x1eb)](_0x135790=>_0x135790['test'](_0x184615)))throw CliErrors[_0x347a3a(0x203)](_0x347a3a(0x1d7));validateAllowedImports(_0x184615);}function buildArtifactInput(_0x2ebb16){const _0x5108f5=a10_0x2f2ff1,_0x309bb7=readSourceFile(_0x2ebb16[_0x5108f5(0x1fe)](_0x5108f5(0x215))),_0x5b7c08=_0x2ebb16[_0x5108f5(0x1fe)](_0x5108f5(0x211))[_0x5108f5(0x1ef)](),_0x5080ec=parseMetadata(_0x2ebb16[_0x5108f5(0x1fe)](_0x5108f5(0x1f0)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x5b7c08?{'name':_0x5b7c08}:{},'content':_0x309bb7,..._0x5080ec?{'metadata':_0x5080ec}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x43765b){const _0x34448d=a10_0x2f2ff1;return{'id':_0x43765b['id'],'name':_0x43765b[_0x34448d(0x211)],'artifactType':_0x43765b[_0x34448d(0x1f8)],'source':_0x43765b[_0x34448d(0x20d)],'favorite':_0x43765b['favorite'],'deleted':_0x43765b[_0x34448d(0x226)],'createTime':_0x43765b[_0x34448d(0x1e8)],'updateTime':_0x43765b[_0x34448d(0x1e4)]};}function detailArtifact(_0x32675e){const _0x196f8b=a10_0x2f2ff1;return{'id':_0x32675e['id'],'appCode':_0x32675e['appCode'],'name':_0x32675e[_0x196f8b(0x211)],'artifactType':_0x32675e[_0x196f8b(0x1f8)],'source':_0x32675e[_0x196f8b(0x20d)],'favorite':_0x32675e[_0x196f8b(0x1fb)],'deleted':_0x32675e[_0x196f8b(0x226)],'content':_0x32675e[_0x196f8b(0x1e6)]??'','compiledContent':_0x32675e[_0x196f8b(0x216)],'metadata':_0x32675e[_0x196f8b(0x1f0)]??{},'createTime':_0x32675e[_0x196f8b(0x1e8)],'updateTime':_0x32675e[_0x196f8b(0x1e4)]};}function readFavoriteFlag(_0x941bb1){const _0x1bd5a4=a10_0x2f2ff1,_0x106036=_0x941bb1[_0x1bd5a4(0x201)](_0x1bd5a4(0x1fb));return _0x106036===undefined||_0x106036===null||_0x106036===''?undefined:_0x941bb1[_0x1bd5a4(0x1f2)](_0x1bd5a4(0x1fb));}const artifactList={'service':'artifact','command':a10_0x2f2ff1(0x1e0),'description':a10_0x2f2ff1(0x225),'risk':'read','flags':[{'name':a10_0x2f2ff1(0x20d),'type':a10_0x2f2ff1(0x1fd),'description':a10_0x2f2ff1(0x1df)},{'name':a10_0x2f2ff1(0x1fb),'type':a10_0x2f2ff1(0x20f),'description':a10_0x2f2ff1(0x1f5)},VERBOSE_FLAG],async 'execute'(_0x556ab3){const _0x33dc12=a10_0x2f2ff1,_0x1a2c6f=await listRuntimeArtifacts(_0x556ab3[_0x33dc12(0x1db)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x556ab3[_0x33dc12(0x1fe)](_0x33dc12(0x20d))?{'source':_0x556ab3['str'](_0x33dc12(0x20d))}:{},...readFavoriteFlag(_0x556ab3)!==undefined?{'favorite':readFavoriteFlag(_0x556ab3)}:{}});return{'ok':!![],'data':{'total':_0x1a2c6f[_0x33dc12(0x202)],'items':_0x556ab3[_0x33dc12(0x1f2)](_0x33dc12(0x20e))?_0x1a2c6f:_0x1a2c6f['map'](summarizeArtifact)}};}},artifactDetail={'service':a10_0x2f2ff1(0x218),'command':a10_0x2f2ff1(0x200),'description':'Show\x20one\x20Artifact\x20by\x20id','risk':a10_0x2f2ff1(0x20c),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'}],async 'execute'(_0x516a0c){const _0x5cdc20=a10_0x2f2ff1,_0x540d0a=await getRuntimeArtifact(_0x516a0c[_0x5cdc20(0x21b)]('id'),_0x516a0c[_0x5cdc20(0x1db)]);return{'ok':!![],'data':detailArtifact(_0x540d0a)};}},artifactCreate={'service':a10_0x2f2ff1(0x218),'command':'create','description':a10_0x2f2ff1(0x206),'risk':a10_0x2f2ff1(0x204),'confirmationDescription':a10_0x2f2ff1(0x21a),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5e9554){const _0x5aad1f=a10_0x2f2ff1,_0x5245b9=buildArtifactInput(_0x5e9554),_0x195971=await createRuntimeArtifact(_0x5e9554[_0x5aad1f(0x1db)],_0x5245b9);return{'ok':!![],'data':detailArtifact(_0x195971),'message':_0x5aad1f(0x1f1)+_0x195971['id']+(_0x195971[_0x5aad1f(0x211)]?'\x20('+_0x195971[_0x5aad1f(0x211)]+')':'')};},async 'dryRun'(_0x10c095){const _0x1c2396=a10_0x2f2ff1,_0x5985e7=buildArtifactInput(_0x10c095);return dryRun(_0x1c2396(0x1dd),'/client/artifact/create')[_0x1c2396(0x1e5)]({'appCode':_0x10c095[_0x1c2396(0x1db)],..._0x5985e7})['description'](_0x1c2396(0x1fc))['build']();},'writeEventSubject'(_0x285ddd){const _0xfa571c=a10_0x2f2ff1,_0x35b36e=_0x285ddd[_0xfa571c(0x1e7)]?.['id'];if(typeof _0x35b36e!==_0xfa571c(0x1fd)&&typeof _0x35b36e!=='number')return undefined;return{'kind':'artifact','id':String(_0x35b36e),'action':_0xfa571c(0x208)};}},artifactUpdate={'service':a10_0x2f2ff1(0x218),'command':'update','description':a10_0x2f2ff1(0x222),'risk':'write','confirmationDescription':a10_0x2f2ff1(0x1d9),'flags':[{...ID_FLAG,'description':a10_0x2f2ff1(0x1f7)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5a9473){const _0xa0c99d=a10_0x2f2ff1,_0x479c73=_0x5a9473[_0xa0c99d(0x21b)]('id'),_0x5d4fda=buildArtifactInput(_0x5a9473),_0x4fb938=await updateRuntimeArtifact(_0x479c73,_0x5a9473[_0xa0c99d(0x1db)],_0x5d4fda);return{'ok':!![],'data':detailArtifact(_0x4fb938),'message':'Updated\x20Artifact\x20'+_0x4fb938['id']+(_0x4fb938[_0xa0c99d(0x211)]?'\x20('+_0x4fb938[_0xa0c99d(0x211)]+')':'')};},async 'dryRun'(_0x1b0fa9){const _0x5b6444=a10_0x2f2ff1,_0x57abd7=_0x1b0fa9[_0x5b6444(0x21b)]('id'),_0xc64cdf=buildArtifactInput(_0x1b0fa9);return dryRun('POST','/client/artifact/'+_0x57abd7+_0x5b6444(0x20b))[_0x5b6444(0x1e5)]({'appCode':_0x1b0fa9[_0x5b6444(0x1db)],..._0xc64cdf})[_0x5b6444(0x210)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x57abd7)[_0x5b6444(0x1de)]();},'writeEventSubject'(_0x49e093){const _0x48a44e=a10_0x2f2ff1,_0x51630a=_0x49e093[_0x48a44e(0x1e7)]?.['id'];if(typeof _0x51630a!==_0x48a44e(0x1fd)&&typeof _0x51630a!==_0x48a44e(0x207))return undefined;return{'kind':_0x48a44e(0x218),'id':String(_0x51630a),'action':_0x48a44e(0x1f3)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_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 +1 @@
|
|
|
1
|
-
const a11_0x3e0177=a11_0x5adb;(function(_0x211f65,_0x309c8e){const _0x26432a=a11_0x5adb,_0x2196c8=_0x211f65();while(!![]){try{const _0x1b9ea6=-parseInt(_0x26432a(0xa6))/0x1*(-parseInt(_0x26432a(0xe3))/0x2)+parseInt(_0x26432a(0xaf))/0x3*(parseInt(_0x26432a(0xab))/0x4)+-parseInt(_0x26432a(0xce))/0x5+-parseInt(_0x26432a(0xd6))/0x6+parseInt(_0x26432a(0xd4))/0x7+-parseInt(_0x26432a(0xe5))/0x8+parseInt(_0x26432a(0xd0))/0x9;if(_0x1b9ea6===_0x309c8e)break;else _0x2196c8['push'](_0x2196c8['shift']());}catch(_0x792234){_0x2196c8['push'](_0x2196c8['shift']());}}}(a11_0x5cb1,0x3639a));function a11_0x5adb(_0x5b90eb,_0x2cedc2){_0x5b90eb=_0x5b90eb-0xa2;const _0x5cb105=a11_0x5cb1();let _0x5adb49=_0x5cb105[_0x5b90eb];return _0x5adb49;}import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x384244){const _0x2db07f=a11_0x5adb;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x384244[_0x2db07f(0xbb)]('global'),'explicitProject':_0x384244[_0x2db07f(0xbb)]('project'),'policy':_0x2db07f(0xcd)}));}const ACCESS_KEY_PATTERN=/^ak_[A-Za-z0-9]{16,}$/,DEVICE_CODE_TTL_MS=0x927c0,POLL_INTERVAL_MS=0xbb8,MAX_POLLS=0xc8,MAX_CONSECUTIVE_NETWORK_ERRORS=0x5;export function generateDeviceCode(){return crypto['randomUUID']();}export function buildDeviceAuthUrl(_0x2a94dc,_0x58cc52,_0x5f0b42=a11_0x3e0177(0xa4)){const _0x3d93c5=a11_0x3e0177;return _0x2a94dc+_0x3d93c5(0xdc)+encodeURIComponent(_0x58cc52)+_0x3d93c5(0xea)+encodeURIComponent(_0x5f0b42);}export function getDeviceCodePath(){const _0x5722e6=a11_0x3e0177;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x5722e6(0xa2);}export function readStoredDeviceCode(){const _0x5a5255=a11_0x3e0177,_0x4fc614=getDeviceCodePath();if(!existsSync(_0x4fc614))return null;try{const _0x1394c6=readFileSync(_0x4fc614,{'encoding':_0x5a5255(0xe1)}),_0xe0967=JSON[_0x5a5255(0xbc)](_0x1394c6);if(_0xe0967&&typeof _0xe0967['code']===_0x5a5255(0xb4)&&typeof _0xe0967[_0x5a5255(0xbe)]===_0x5a5255(0xb4)&&(_0xe0967[_0x5a5255(0xee)]==='global'||_0xe0967[_0x5a5255(0xee)]===_0x5a5255(0xe4)))return _0xe0967;}catch{}return null;}export function writeStoredDeviceCode(_0x1dece7,_0x170eab){const _0x20a32d=a11_0x3e0177,_0x3aba0c=getDeviceCodePath(),_0x4d0cd8=dirname(_0x3aba0c);!existsSync(_0x4d0cd8)&&mkdirSync(_0x4d0cd8,{'recursive':!![]});const _0x581cc7={'code':_0x1dece7,'createdAt':new Date()['toISOString'](),'scope':_0x170eab};writeFileSync(_0x3aba0c,JSON[_0x20a32d(0xc2)](_0x581cc7),{'encoding':_0x20a32d(0xe1),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x183cd8=getDeviceCodePath();try{unlinkSync(_0x183cd8);}catch{}}export function isStoredDeviceCodeExpired(_0x521f8a){const _0x239389=a11_0x3e0177;return Date[_0x239389(0xe2)]()-new Date(_0x521f8a[_0x239389(0xbe)])['getTime']()>DEVICE_CODE_TTL_MS;}function a11_0x5cb1(){const _0x56cb6a=['trim','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','/api/device-auth/token','status','global','AbortError','data','auth','url-only','global-default','1497770RmKQIp','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','3408687CoOLBg','Invalid\x20access_key\x20returned\x20by\x20server.','Write\x20to\x20project\x20config','expired','224861RpWcUk','str','997344iueUSe','padStart','signal','),\x20retrying...','code','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','/device-auth?code=','After\x20authorizing,\x20re-run:\x20','accessKey','source','abort','utf8','now','2FFMOLD','project','81320DxuIbo','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','write','log','POST','&source=','Device\x20auth\x20API\x20returned\x20HTTP\x20','test','floor','scope','access_key','/.device-auth','success','lovrabet-cli','\x20config.','228584NkGuKc','AccessKey\x20saved\x20to\x20','nonInteractive','aborted','Device\x20auth\x20API\x20error\x20(','4596KfpyNv','device','apiError','removeListener','153paIzlV','Device\x20authorization\x20cancelled.','stderr','\x20remaining','json','string','validation','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','networkError','SIGINT','boolean','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','bool','parse','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','createdAt','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','Verify:\x20','\x0dWaiting\x20for\x20authorization...\x20','stringify','Device\x20authorization\x20successful.'];a11_0x5cb1=function(){return _0x56cb6a;};return a11_0x5cb1();}export async function fetchDeviceToken(_0x3552c5,_0x168384){const _0x288e28=a11_0x3e0177,_0x2a6687=_0x3552c5+_0x288e28(0xc6),_0xaf7ba5=new AbortController(),_0x291dcf=setTimeout(()=>_0xaf7ba5[_0x288e28(0xe0)](),0x2710),_0x1c84dd=await fetch(_0x2a6687,{'method':_0x288e28(0xe9),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'code':_0x168384}),'signal':_0xaf7ba5[_0x288e28(0xd8)]});clearTimeout(_0x291dcf);if(!_0x1c84dd['ok'])throw CliErrors[_0x288e28(0xb7)](_0x288e28(0xeb)+_0x1c84dd[_0x288e28(0xc7)]);const _0x3ea19a=await _0x1c84dd[_0x288e28(0xb3)](),_0x487841=_0x3ea19a[_0x288e28(0xca)]&&typeof _0x3ea19a[_0x288e28(0xca)]==='object'?_0x3ea19a['data']:_0x3ea19a;if(!_0x487841||typeof _0x487841['status']!==_0x288e28(0xb4))throw CliErrors['apiError']('Invalid\x20device\x20auth\x20response');return{'status':_0x487841[_0x288e28(0xc7)],'access_key':typeof _0x487841[_0x288e28(0xef)]===_0x288e28(0xb4)?_0x487841['access_key']:undefined};}export async function pollDeviceToken(_0x43cb10,_0x444408,_0x5f1ae2){const _0x31a2fe=a11_0x3e0177;let _0x2ab74b=0x0;for(let _0x56b5e4=0x0;_0x56b5e4<MAX_POLLS;_0x56b5e4++){if(_0x5f1ae2[_0x31a2fe(0xa9)])throw CliErrors['cancelled'](_0x31a2fe(0xb0));let _0xd08b05;try{_0xd08b05=await fetchDeviceToken(_0x43cb10,_0x444408);}catch(_0x1cb4c2){if(_0x1cb4c2 instanceof Error&&_0x1cb4c2['name']===_0x31a2fe(0xc9))throw CliErrors['cancelled'](_0x31a2fe(0xb0));_0x2ab74b++;if(_0x2ab74b>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x31a2fe(0xb7)]('Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.');writeCliSideChannelLine(_0x31a2fe(0xaa)+_0x2ab74b+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x31a2fe(0xd9)),await sleep(POLL_INTERVAL_MS);continue;}_0x2ab74b=0x0;if(_0xd08b05[_0x31a2fe(0xc7)]===_0x31a2fe(0xa3)){if(!_0xd08b05[_0x31a2fe(0xef)])throw CliErrors[_0x31a2fe(0xad)](_0x31a2fe(0xd1));return _0xd08b05['access_key'];}if(_0xd08b05[_0x31a2fe(0xc7)]===_0x31a2fe(0xd3)){deleteStoredDeviceCode();throw CliErrors[_0x31a2fe(0xb5)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x3046e4=(_0x56b5e4+0x1)*POLL_INTERVAL_MS,_0x449340=DEVICE_CODE_TTL_MS-_0x3046e4,_0x498325=Math[_0x31a2fe(0xed)](_0x449340/0xea60),_0x36252b=Math[_0x31a2fe(0xed)](_0x449340%0xea60/0x3e8);process[_0x31a2fe(0xb1)][_0x31a2fe(0xe7)](_0x31a2fe(0xc1)+_0x498325+':'+String(_0x36252b)[_0x31a2fe(0xd7)](0x2,'0')+_0x31a2fe(0xb2)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors['validation']('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function sleep(_0x33fec0){return new Promise(_0x1ef625=>setTimeout(_0x1ef625,_0x33fec0));}export const authDeviceDefinition={'service':a11_0x3e0177(0xcb),'command':a11_0x3e0177(0xac),'description':a11_0x3e0177(0xba),'risk':'write','confirmationDescription':a11_0x3e0177(0xe6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x3e0177(0xc8),'type':a11_0x3e0177(0xb9),'description':'Write\x20to\x20global\x20config\x20(default)','default':!![]},{'name':a11_0x3e0177(0xe4),'type':a11_0x3e0177(0xb9),'description':a11_0x3e0177(0xd2),'default':![]},{'name':'source','type':a11_0x3e0177(0xb4),'description':a11_0x3e0177(0xb6),'default':a11_0x3e0177(0xa4)},{'name':a11_0x3e0177(0xcc),'type':a11_0x3e0177(0xb9),'description':a11_0x3e0177(0xc5),'default':![]}],async 'execute'(_0x4cf2c3){const _0x32ce4e=a11_0x3e0177,_0x192bb8=resolveAuthScopeFlags(_0x4cf2c3),_0x2be0f0=_0x192bb8[_0x32ce4e(0xc8)]?'global':_0x32ce4e(0xe4),_0x59cf94=readScopedConfig(_0x192bb8);if(_0x59cf94[_0x32ce4e(0xde)])return{'ok':!![],'message':_0x32ce4e(0xcf)};const _0x5c8187=(_0x4cf2c3[_0x32ce4e(0xd5)](_0x32ce4e(0xdf))||_0x32ce4e(0xa4))[_0x32ce4e(0xc4)](),_0x412aa9=getUserDomain(),_0x25acfe=readStoredDeviceCode(),_0x315dad=_0x25acfe&&!isStoredDeviceCodeExpired(_0x25acfe)?_0x25acfe[_0x32ce4e(0xda)]:((()=>{const _0x3c3388=generateDeviceCode();return writeStoredDeviceCode(_0x3c3388,_0x2be0f0),_0x3c3388;})()),_0x95dc33=buildDeviceAuthUrl(_0x412aa9,_0x315dad,_0x5c8187);if(_0x4cf2c3[_0x32ce4e(0xbb)](_0x32ce4e(0xcc)))return console[_0x32ce4e(0xe8)](_0x95dc33),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x95dc33),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x32ce4e(0xbf));if(_0x4cf2c3[_0x32ce4e(0xa8)])return writeCliSideChannelLine(_0x32ce4e(0xdd)+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x32ce4e(0xdb)};writeCliSideChannelLine(_0x32ce4e(0xbd));const _0x1b96b4=new AbortController(),_0x25bc1d=()=>{const _0x4185d1=_0x32ce4e;_0x1b96b4[_0x4185d1(0xe0)](),process[_0x4185d1(0xae)](_0x4185d1(0xb8),_0x25bc1d);};process['once'](_0x32ce4e(0xb8),_0x25bc1d);let _0x4c0447;try{_0x4c0447=await pollDeviceToken(_0x412aa9,_0x315dad,_0x1b96b4[_0x32ce4e(0xd8)]);}finally{process[_0x32ce4e(0xae)](_0x32ce4e(0xb8),_0x25bc1d);}if(!ACCESS_KEY_PATTERN[_0x32ce4e(0xec)](_0x4c0447))throw CliErrors[_0x32ce4e(0xad)]('Invalid\x20access_key\x20returned\x20by\x20server.');const _0x16a8c4=readScopedConfig(_0x192bb8);return _0x16a8c4['accessKey']=_0x4c0447,writeScopedConfig(_0x16a8c4,_0x192bb8),deleteStoredDeviceCode(),process['stderr'][_0x32ce4e(0xe7)]('\x0a'),writeCliSideChannelLine(_0x32ce4e(0xa7)+_0x2be0f0+_0x32ce4e(0xa5)),writeCliSideChannelLine(_0x32ce4e(0xc0)+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':_0x32ce4e(0xc3)};}};
|
|
1
|
+
const a11_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)};}};
|