@lovrabet/lovrabet-cli 2.2.3 → 2.2.4-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/notification/config-list.d.ts +2 -0
- package/lib/commands/notification/config-list.js +1 -0
- package/lib/commands/notification/index.d.ts +2 -0
- package/lib/commands/notification/index.js +1 -0
- package/lib/commands/notification/shared.d.ts +13 -0
- package/lib/commands/notification/shared.js +1 -0
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.d.ts +2 -0
- package/lib/commands/permit/dataset-get.js +1 -0
- package/lib/commands/permit/dataset-set.d.ts +2 -0
- package/lib/commands/permit/dataset-set.js +1 -0
- package/lib/commands/permit/index.d.ts +2 -0
- package/lib/commands/permit/index.js +1 -0
- package/lib/commands/permit/page-get.d.ts +2 -0
- package/lib/commands/permit/page-get.js +1 -0
- package/lib/commands/permit/page-set.d.ts +2 -0
- package/lib/commands/permit/page-set.js +1 -0
- package/lib/commands/permit/role-menus-set.d.ts +2 -0
- package/lib/commands/permit/role-menus-set.js +1 -0
- package/lib/commands/permit/role-menus.d.ts +2 -0
- package/lib/commands/permit/role-menus.js +1 -0
- package/lib/commands/permit/shared.d.ts +52 -0
- package/lib/commands/permit/shared.js +1 -0
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.d.ts +2 -0
- package/lib/commands/role/create.js +1 -0
- package/lib/commands/role/delete.d.ts +2 -0
- package/lib/commands/role/delete.js +1 -0
- package/lib/commands/role/detail.d.ts +2 -0
- package/lib/commands/role/detail.js +1 -0
- package/lib/commands/role/index.d.ts +2 -0
- package/lib/commands/role/index.js +1 -0
- package/lib/commands/role/list.d.ts +2 -0
- package/lib/commands/role/list.js +1 -0
- package/lib/commands/role/shared.d.ts +33 -0
- package/lib/commands/role/shared.js +1 -0
- package/lib/commands/role/update.d.ts +2 -0
- package/lib/commands/role/update.js +1 -0
- package/lib/commands/role/user-add.d.ts +2 -0
- package/lib/commands/role/user-add.js +1 -0
- package/lib/commands/role/user-remove.d.ts +2 -0
- package/lib/commands/role/user-remove.js +1 -0
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +161 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/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 +19 -6
- package/skills/lovrabet/guides/role-and-permission-workflow.md +139 -0
- package/skills/lovrabet/references/lovrabet-auth.md +1 -5
- package/skills/lovrabet/references/lovrabet-notification-config-list.md +81 -0
- package/skills/lovrabet.manifest.json +5 -3
package/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
(function(
|
|
2
|
+
const a0_0x2f8ba7=a0_0x234d;(function(_0x3fa52e,_0x528f45){const _0x5526ec=a0_0x234d,_0x4babde=_0x3fa52e();while(!![]){try{const _0x4ad4a8=-parseInt(_0x5526ec(0x1f4))/0x1*(-parseInt(_0x5526ec(0x1e4))/0x2)+-parseInt(_0x5526ec(0x1ed))/0x3+-parseInt(_0x5526ec(0x1e0))/0x4+parseInt(_0x5526ec(0x1f6))/0x5*(-parseInt(_0x5526ec(0x1ef))/0x6)+parseInt(_0x5526ec(0x1dc))/0x7*(parseInt(_0x5526ec(0x1db))/0x8)+parseInt(_0x5526ec(0x1d2))/0x9*(-parseInt(_0x5526ec(0x1f1))/0xa)+-parseInt(_0x5526ec(0x1d1))/0xb*(parseInt(_0x5526ec(0x1f3))/0xc);if(_0x4ad4a8===_0x528f45)break;else _0x4babde['push'](_0x4babde['shift']());}catch(_0x487963){_0x4babde['push'](_0x4babde['shift']());}}}(a0_0x9743,0x24bf1));import{jsx as a0_0x51f93a}from'react/jsx-runtime';import a0_0x177656 from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';function a0_0x9743(){const _0x5ccd4e=['1033016wFUPkF','14zkiLnF','args','help','message','10260nBnmMm','exit','Hint:\x20','unknownCommand','3758jIKhiU','hint','length','catch','flags','input','ERR_STREAM_DESTROYED','ERR_USE_AFTER_CLOSE','[preparse]\x20','12702IRMPbf','code','12LFsALQ','stderr','30EupvWk','write','636ZHExzz','139GiggnW','corrected','695320cxUZnR','\x20->\x20--','validation','9361ClaWmm','116676oqlYdY','log','defaultCommand',':\x20--','error','./framework/preparse.js','assign','\x0aCancelled.\x0a','flatMap'];a0_0x9743=function(){return _0x5ccd4e;};return a0_0x9743();}import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';import{runCommand,createPipelineEnv}from'./framework/runner.js';import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';import{buildMeowFlags}from'./constant/cli.js';import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x177656(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x2f8ba7(0x1e7)](handleError);async function main(){try{await run();}catch(_0x49e923){handleError(_0x49e923);}}async function run(){const _0x4fbdab=a0_0x2f8ba7;let _0x1352f3=cli[_0x4fbdab(0x1e9)][0x0],_0x5e23e7=cli[_0x4fbdab(0x1e9)][0x1];const _0x4f7c06=cli[_0x4fbdab(0x1e8)];try{const {correctFlags:_0xf6b314}=await import(_0x4fbdab(0x1d7)),_0x1ca468=getAllDefinitions()[_0x4fbdab(0x1da)](_0x607bb=>_0x607bb[_0x4fbdab(0x1e8)]??[]),{flags:_0x399399,corrections:_0x537369}=_0xf6b314(_0x4f7c06,_0x1ca468);if(_0x537369[_0x4fbdab(0x1e6)]>0x0){for(const _0x23b7ab of _0x537369){process[_0x4fbdab(0x1f0)][_0x4fbdab(0x1f2)](_0x4fbdab(0x1ec)+_0x23b7ab['handler']+_0x4fbdab(0x1d5)+_0x23b7ab['original']+_0x4fbdab(0x1f7)+_0x23b7ab[_0x4fbdab(0x1f5)]+'\x0a');}Object[_0x4fbdab(0x1d8)](_0x4f7c06,_0x399399);}}catch{}if(!_0x1352f3){const {waitUntilExit:_0x3a2a2d}=render(a0_0x51f93a(Help,{}));await _0x3a2a2d();return;}const _0x3fc65a=resolveRemovedCommand(_0x1352f3,_0x5e23e7);if(_0x3fc65a)throw CliErrors[_0x4fbdab(0x1d0)](_0x3fc65a[_0x4fbdab(0x1df)],_0x3fc65a[_0x4fbdab(0x1e5)]);if(!isKnownService(_0x1352f3)){const _0x46da50=resolveDynamicServiceCommand(cli[_0x4fbdab(0x1e9)],_0x4f7c06);if(_0x46da50){if(_0x4f7c06['help']){console[_0x4fbdab(0x1d3)](generateCommandHelp(_0x46da50['definition']));return;}Object[_0x4fbdab(0x1d8)](_0x4f7c06,_0x46da50['flags']);const _0x4a50a0=buildConfigFromFlags(_0x4f7c06);await initGlobalEnvironment(_0x4a50a0);const _0x12630b=createPipelineEnv(_0x4a50a0,_0x4f7c06);_0x12630b[_0x4fbdab(0x1dd)]=_0x46da50[_0x4fbdab(0x1dd)],await runCommand(_0x46da50['definition'],_0x12630b);return;}if(_0x4f7c06['help']){const _0x51da0f=generateDynamicServiceHelp(_0x1352f3);if(_0x51da0f){console[_0x4fbdab(0x1d3)](_0x51da0f);return;}}const {waitUntilExit:_0x6f81e0}=render(a0_0x51f93a(Help,{}));await _0x6f81e0();return;}const _0x2d1140=getServiceEntry(_0x1352f3);if(!_0x5e23e7){if(_0x4f7c06['help']){console[_0x4fbdab(0x1d3)](generateServiceHelp(_0x1352f3));return;}if(_0x2d1140[_0x4fbdab(0x1d4)])_0x5e23e7=_0x2d1140['defaultCommand'];else{console['log'](generateServiceHelp(_0x1352f3));return;}}const _0x583979=findDefinition(_0x1352f3,_0x5e23e7);!_0x583979&&(console[_0x4fbdab(0x1d3)](generateServiceHelp(_0x1352f3)),handleError(CliErrors[_0x4fbdab(0x1e3)](_0x1352f3+'\x20'+_0x5e23e7)));if(_0x4f7c06[_0x4fbdab(0x1de)]){console[_0x4fbdab(0x1d3)](generateCommandHelp(_0x583979));return;}const _0xa01313=buildConfigFromFlags(_0x4f7c06);await initGlobalEnvironment(_0xa01313);const _0x332b2a=createPipelineEnv(_0xa01313,_0x4f7c06);_0x332b2a[_0x4fbdab(0x1dd)]=cli[_0x4fbdab(0x1e9)]['slice'](0x2),await runCommand(_0x583979,_0x332b2a);}function handleError(_0x41fc05){const _0x141851=a0_0x2f8ba7;if(_0x41fc05 instanceof CliError){_0x41fc05['code']==='cancelled'&&(process[_0x141851(0x1f0)][_0x141851(0x1f2)](_0x141851(0x1d9)),process[_0x141851(0x1e1)](0x0));console[_0x141851(0x1d6)]('Error:\x20'+_0x41fc05[_0x141851(0x1df)]);if(_0x41fc05[_0x141851(0x1e5)])console[_0x141851(0x1d6)](_0x141851(0x1e2)+_0x41fc05[_0x141851(0x1e5)]);process[_0x141851(0x1e1)](_0x41fc05['exitCode']);}isUserCancellation(_0x41fc05)&&(process[_0x141851(0x1f0)][_0x141851(0x1f2)](_0x141851(0x1d9)),process[_0x141851(0x1e1)](0x0)),console[_0x141851(0x1d6)]('Unexpected\x20error:',_0x41fc05),process[_0x141851(0x1e1)](0x1);}function a0_0x234d(_0x5ab72,_0x5f4356){_0x5ab72=_0x5ab72-0x1d0;const _0x97438e=a0_0x9743();let _0x234db9=_0x97438e[_0x5ab72];return _0x234db9;}function isUserCancellation(_0x22b680){const _0xef1891=a0_0x2f8ba7;if(!(_0x22b680 instanceof Error))return![];if(_0x22b680['name']==='ExitPromptError')return!![];if(_0x22b680['code']===_0xef1891(0x1eb))return!![];if(_0x22b680[_0xef1891(0x1ee)]===_0xef1891(0x1ea))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0xac7a4b=a1_0x2206;function a1_0x37e1(){const _0x5de62c=['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','15612296DsZAZg','dataset_data_aggregate','1828720MbREXz','bf_detail','tableData\x20contains\x20dataset\x20id/code/name','Filter\x20dataset\x20data','查询单条数据','detail','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','dataset','按应用和函数名精确获取\x20BF\x20运行契约','str','Get\x20BF\x20endpoint\x20function\x20contract','paging.totalCount\x20gives\x20total\x20rows','2191737zOOrnU','operations\x20describes\x20runtime\x20APIs','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','/api/{appCode}/{datasetCode}/filter','toLowerCase','619280HRMpie','paging\x20contains\x20pagination','summary','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','tableData\x20contains\x20records','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','custom_sql_execute','Execute\x20custom\x20SQL','map','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','bf_execute','API\x20doc\x20code\x20not\x20found:\x20','where\x20filters\x20before\x20aggregation','Current\x20app\x20code','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','Returns\x20one\x20matching\x20business\x20record','32-character\x20dataset\x20code','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','method','GET','dataset_data_filter','条件过滤查询数据','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','code','7zDVxBa','None','聚合查询数据集数据','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','title','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','Returns\x20SQL\x20execution\x20payload','Aggregate\x20dataset\x20data','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','{\x22id\x22:123}','api-doc','category','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','custom_sql','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','Exact\x20endpoint\x20function\x20name','string','keyword','6048738EZOUgX','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:1,\x22pageSize\x22:20}\x27','/api/dataset/getOneByCode?code={datasetCode}','Get\x20one\x20dataset\x20record','Returns\x20script\x20business\x20payload','创建数据','fields/properties\x20describe\x20data\x20shape','trim','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','Create\x20dataset\x20record','whenToUse','执行自定义\x20SQL','/api/endpoint/{appCode}/{functionName}','includes','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','{\x22fieldName\x22:\x22value\x22}','/api/{appCode}/{datasetCode}/getOne','/api/dataset/get-dataset-list-by-app-code','1305948fnPKDb','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','filter','Execute\x20BF\x20endpoint\x20function','57884mfAvgl','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','##\x20Aggregate\x20dataset\x20data','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','read','/api/{appCode}/{datasetCode}/create','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','appCode','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','需要向指定数据集新增一条业务数据时使用','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','functionName','##\x20List\x20datasets','join','datasetCode','length','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','POST','path','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','dataset_detail','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','##\x20Filter\x20dataset\x20data'];a1_0x37e1=function(){return _0x5de62c;};return a1_0x37e1();}(function(_0x23ff97,_0xd83473){const _0x47ffc0=a1_0x2206,_0x3db83d=_0x23ff97();while(!![]){try{const _0x38ec0b=parseInt(_0x47ffc0(0x11a))/0x1+-parseInt(_0x47ffc0(0x15c))/0x2+-parseInt(_0x47ffc0(0x113))/0x3+-parseInt(_0x47ffc0(0x161))/0x4+parseInt(_0x47ffc0(0x107))/0x5+-parseInt(_0x47ffc0(0x149))/0x6+-parseInt(_0x47ffc0(0x134))/0x7*(-parseInt(_0x47ffc0(0x105))/0x8);if(_0x38ec0b===_0xd83473)break;else _0x3db83d['push'](_0x3db83d['shift']());}catch(_0x3a7a89){_0x3db83d['push'](_0x3db83d['shift']());}}}(a1_0x37e1,0x817ee));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0xac7a4b(0x142),'type':a1_0xac7a4b(0x147),'description':a1_0xac7a4b(0x10d)},KEYWORD_FLAG={'name':'keyword','type':'string','description':a1_0xac7a4b(0x167)},DOC_CODE_FLAG={'name':a1_0xac7a4b(0x133),'type':a1_0xac7a4b(0x147),'required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':'dataset_list','category':a1_0xac7a4b(0x10e),'title':'List\x20datasets','method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x15b),'summary':'分页获取数据集列表','whenToUse':a1_0xac7a4b(0x115),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':[a1_0xac7a4b(0x109),a1_0xac7a4b(0x112)],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':[a1_0xac7a4b(0x16c)],'markdown':[a1_0xac7a4b(0x16e),'',a1_0xac7a4b(0x102)]['join']('\x0a')},{'code':a1_0xac7a4b(0x101),'category':a1_0xac7a4b(0x10e),'title':'Dataset\x20detail','method':'GET','path':a1_0xac7a4b(0x14b),'summary':'获取数据集详情','whenToUse':a1_0xac7a4b(0x12c),'pathParams':[],'queryParams':[{'name':a1_0xac7a4b(0x133),'description':a1_0xac7a4b(0x12b)}],'bodySchema':a1_0xac7a4b(0x135),'responseHighlights':[a1_0xac7a4b(0x14f),a1_0xac7a4b(0x145),a1_0xac7a4b(0x114)],'examples':[a1_0xac7a4b(0x151)],'notes':[a1_0xac7a4b(0x11d)],'markdown':['##\x20Dataset\x20detail','',a1_0xac7a4b(0xfc)][a1_0xac7a4b(0x16f)]('\x0a')},{'code':a1_0xac7a4b(0x130),'category':a1_0xac7a4b(0x10e),'title':a1_0xac7a4b(0x10a),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x118),'summary':a1_0xac7a4b(0x131),'whenToUse':a1_0xac7a4b(0xff),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':'Current\x20app\x20code'},{'name':'datasetCode','description':a1_0xac7a4b(0x12b)}],'queryParams':[],'bodySchema':a1_0xac7a4b(0x124),'responseHighlights':[a1_0xac7a4b(0x11e),a1_0xac7a4b(0x11b)],'examples':[a1_0xac7a4b(0x14a),'lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27'],'notes':['where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.',a1_0xac7a4b(0x15d),a1_0xac7a4b(0x12d),a1_0xac7a4b(0x143)],'markdown':[a1_0xac7a4b(0x103),'',a1_0xac7a4b(0x132)][a1_0xac7a4b(0x16f)]('\x0a')},{'code':a1_0xac7a4b(0x106),'category':'dataset','title':a1_0xac7a4b(0x13d),'method':a1_0xac7a4b(0xfd),'path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0xac7a4b(0x136),'whenToUse':a1_0xac7a4b(0x13e),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':'Current\x20app\x20code'},{'name':a1_0xac7a4b(0x170),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':['result\x20rows\x20contain\x20aggregate\x20aliases',a1_0xac7a4b(0x127)],'examples':['lovrabet\x20data\x20aggregate\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22aggregate\x22:[{\x22column\x22:\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}]}\x27'],'notes':[a1_0xac7a4b(0x162),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0xac7a4b(0x163),'',a1_0xac7a4b(0x164)][a1_0xac7a4b(0x16f)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0xac7a4b(0x10e),'title':a1_0xac7a4b(0x14c),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x15a),'summary':a1_0xac7a4b(0x10b),'whenToUse':'已经知道记录\x20id,需要按数据集读取单条业务数据时使用','pathParams':[{'name':'appCode','description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x170),'description':a1_0xac7a4b(0x12b)}],'queryParams':[],'bodySchema':a1_0xac7a4b(0x140),'responseHighlights':[a1_0xac7a4b(0x12a)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':[a1_0xac7a4b(0x138)],'markdown':a1_0xac7a4b(0x15e)},{'code':'dataset_data_create','category':a1_0xac7a4b(0x10e),'title':a1_0xac7a4b(0x152),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x166),'summary':a1_0xac7a4b(0x14e),'whenToUse':a1_0xac7a4b(0x16b),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x170),'description':a1_0xac7a4b(0x12b)}],'queryParams':[],'bodySchema':a1_0xac7a4b(0x159),'responseHighlights':[a1_0xac7a4b(0x116)],'examples':[a1_0xac7a4b(0x13b)],'notes':[a1_0xac7a4b(0x157)],'markdown':a1_0xac7a4b(0x117)},{'code':a1_0xac7a4b(0x108),'category':'bf','title':a1_0xac7a4b(0x111),'method':a1_0xac7a4b(0x12f),'path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0xac7a4b(0x10f),'whenToUse':a1_0xac7a4b(0x120),'pathParams':[{'name':a1_0xac7a4b(0x169),'description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x16d),'description':a1_0xac7a4b(0x146)}],'queryParams':[],'bodySchema':'None','responseHighlights':[a1_0xac7a4b(0x137)],'examples':[a1_0xac7a4b(0x13a)],'notes':[a1_0xac7a4b(0x104)],'markdown':a1_0xac7a4b(0x168)},{'code':a1_0xac7a4b(0x125),'category':'bf','title':a1_0xac7a4b(0x160),'method':a1_0xac7a4b(0xfd),'path':a1_0xac7a4b(0x155),'summary':'执行指定\x20BF\x20函数','whenToUse':'已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','pathParams':[{'name':a1_0xac7a4b(0x169),'description':a1_0xac7a4b(0x128)},{'name':a1_0xac7a4b(0x16d),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0xac7a4b(0x14d)],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0xac7a4b(0x100)],'markdown':a1_0xac7a4b(0x11f)},{'code':a1_0xac7a4b(0x121),'category':a1_0xac7a4b(0x144),'title':a1_0xac7a4b(0x122),'method':a1_0xac7a4b(0xfd),'path':'/api/custom/executeSql','summary':a1_0xac7a4b(0x154),'whenToUse':a1_0xac7a4b(0x16a),'pathParams':[],'queryParams':[],'bodySchema':a1_0xac7a4b(0x158),'responseHighlights':[a1_0xac7a4b(0x13c)],'examples':[a1_0xac7a4b(0x13f)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0xac7a4b(0x129)}];function entrySummary(_0xe7fb3f){const _0x591841=a1_0xac7a4b;return{'code':_0xe7fb3f['code'],'category':_0xe7fb3f['category'],'method':_0xe7fb3f[_0x591841(0x12e)],'path':_0xe7fb3f[_0x591841(0xfe)],'summary':_0xe7fb3f[_0x591841(0x11c)],'whenToUse':_0xe7fb3f[_0x591841(0x153)]};}export function listApiDocEntries(_0x1ea081={}){const _0x2741fd=a1_0xac7a4b,_0x3f935b=String(_0x1ea081[_0x2741fd(0x142)]||'')[_0x2741fd(0x150)](),_0x2863f0=String(_0x1ea081[_0x2741fd(0x148)]||'')['trim']()['toLowerCase']();return DOCS[_0x2741fd(0x15f)](_0x12f2a1=>{const _0x13d0a8=_0x2741fd;if(_0x3f935b&&_0x12f2a1[_0x13d0a8(0x142)]!==_0x3f935b)return![];if(!_0x2863f0)return!![];return[_0x12f2a1[_0x13d0a8(0x133)],_0x12f2a1[_0x13d0a8(0x142)],_0x12f2a1[_0x13d0a8(0x12e)],_0x12f2a1[_0x13d0a8(0xfe)],_0x12f2a1[_0x13d0a8(0x11c)],_0x12f2a1[_0x13d0a8(0x153)],_0x12f2a1[_0x13d0a8(0x139)]][_0x13d0a8(0x16f)]('\x20')[_0x13d0a8(0x119)]()[_0x13d0a8(0x156)](_0x2863f0);})[_0x2741fd(0x123)](entrySummary);}export function getApiDocDetail(_0xed4f9b){const _0x527a69=a1_0xac7a4b,_0x35c5f5=DOCS['find'](_0x2b8ff9=>_0x2b8ff9[_0x527a69(0x133)]===_0xed4f9b);if(!_0x35c5f5)throw CliErrors['validation'](_0x527a69(0x126)+_0xed4f9b);return{..._0x35c5f5};}function a1_0x2206(_0xc2b52a,_0x272c76){_0xc2b52a=_0xc2b52a-0xfb;const _0x37e162=a1_0x37e1();let _0x22063a=_0x37e162[_0xc2b52a];return _0x22063a;}const apiDocList={'service':a1_0xac7a4b(0x141),'command':'list','description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x507c54){const _0xd0d3b7=a1_0xac7a4b,_0x1c0104=listApiDocEntries({'category':_0x507c54[_0xd0d3b7(0x110)](_0xd0d3b7(0x142)),'keyword':_0x507c54['str']('keyword')});return{'ok':!![],'data':{'total':_0x1c0104[_0xd0d3b7(0xfb)],'items':_0x1c0104}};}},apiDocDetail={'service':'api-doc','command':a1_0xac7a4b(0x10c),'description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0xac7a4b(0x165),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x447f9a){const _0x1bde05=a1_0xac7a4b;return{'ok':!![],'data':getApiDocDetail(_0x447f9a[_0x1bde05(0x110)](_0x1bde05(0x133)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
const a1_0x20a4b9=a1_0x3797;(function(_0x5b733f,_0x42ceb4){const _0x21c3c0=a1_0x3797,_0x37c63f=_0x5b733f();while(!![]){try{const _0xb36faa=parseInt(_0x21c3c0(0x154))/0x1*(parseInt(_0x21c3c0(0x19e))/0x2)+parseInt(_0x21c3c0(0x149))/0x3+parseInt(_0x21c3c0(0x15f))/0x4+parseInt(_0x21c3c0(0x18a))/0x5+parseInt(_0x21c3c0(0x13b))/0x6*(parseInt(_0x21c3c0(0x167))/0x7)+-parseInt(_0x21c3c0(0x15c))/0x8*(parseInt(_0x21c3c0(0x137))/0x9)+parseInt(_0x21c3c0(0x16b))/0xa*(-parseInt(_0x21c3c0(0x146))/0xb);if(_0xb36faa===_0x42ceb4)break;else _0x37c63f['push'](_0x37c63f['shift']());}catch(_0xd165d3){_0x37c63f['push'](_0x37c63f['shift']());}}}(a1_0x1b61,0xf1676));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':'category','type':a1_0x20a4b9(0x1a3),'description':a1_0x20a4b9(0x16a)},KEYWORD_FLAG={'name':'keyword','type':a1_0x20a4b9(0x1a3),'description':'Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text'},DOC_CODE_FLAG={'name':'code','type':a1_0x20a4b9(0x1a3),'required':!![],'description':a1_0x20a4b9(0x15b)},DOCS=[{'code':a1_0x20a4b9(0x13f),'category':'dataset','title':a1_0x20a4b9(0x169),'method':a1_0x20a4b9(0x15a),'path':'/api/dataset/get-dataset-list-by-app-code','summary':'分页获取数据集列表','whenToUse':a1_0x20a4b9(0x147),'pathParams':[],'queryParams':[],'bodySchema':a1_0x20a4b9(0x1a0),'responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name','paging.totalCount\x20gives\x20total\x20rows'],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':[a1_0x20a4b9(0x17d)],'markdown':['##\x20List\x20datasets','',a1_0x20a4b9(0x171)][a1_0x20a4b9(0x152)]('\x0a')},{'code':a1_0x20a4b9(0x130),'category':a1_0x20a4b9(0x17b),'title':'Dataset\x20detail','method':'GET','path':a1_0x20a4b9(0x15e),'summary':'获取数据集详情','whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':a1_0x20a4b9(0x13e),'description':a1_0x20a4b9(0x180)}],'bodySchema':'None','responseHighlights':[a1_0x20a4b9(0x198),a1_0x20a4b9(0x16d),a1_0x20a4b9(0x17a)],'examples':[a1_0x20a4b9(0x13c)],'notes':[a1_0x20a4b9(0x172)],'markdown':[a1_0x20a4b9(0x1a5),'',a1_0x20a4b9(0x199)]['join']('\x0a')},{'code':a1_0x20a4b9(0x186),'category':a1_0x20a4b9(0x17b),'title':'Filter\x20dataset\x20data','method':a1_0x20a4b9(0x15a),'path':a1_0x20a4b9(0x194),'summary':a1_0x20a4b9(0x195),'whenToUse':'需要携带\x20where、orderBy、分页等条件读取业务数据时使用','pathParams':[{'name':a1_0x20a4b9(0x141),'description':a1_0x20a4b9(0x158)},{'name':a1_0x20a4b9(0x153),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':['tableData\x20contains\x20records','paging\x20contains\x20pagination'],'examples':[a1_0x20a4b9(0x131),a1_0x20a4b9(0x183)],'notes':[a1_0x20a4b9(0x190),a1_0x20a4b9(0x155),a1_0x20a4b9(0x185),'Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':[a1_0x20a4b9(0x19a),'',a1_0x20a4b9(0x18c)][a1_0x20a4b9(0x152)]('\x0a')},{'code':a1_0x20a4b9(0x138),'category':a1_0x20a4b9(0x17b),'title':'Aggregate\x20dataset\x20data','method':a1_0x20a4b9(0x15a),'path':a1_0x20a4b9(0x168),'summary':a1_0x20a4b9(0x14f),'whenToUse':a1_0x20a4b9(0x15d),'pathParams':[{'name':a1_0x20a4b9(0x141),'description':'Current\x20app\x20code'},{'name':a1_0x20a4b9(0x153),'description':a1_0x20a4b9(0x180)}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':[a1_0x20a4b9(0x14c),a1_0x20a4b9(0x1a2)],'examples':[a1_0x20a4b9(0x140)],'notes':[a1_0x20a4b9(0x175),a1_0x20a4b9(0x151)],'markdown':[a1_0x20a4b9(0x19b),'',a1_0x20a4b9(0x14a)]['join']('\x0a')},{'code':a1_0x20a4b9(0x177),'category':a1_0x20a4b9(0x17b),'title':a1_0x20a4b9(0x143),'method':a1_0x20a4b9(0x15a),'path':a1_0x20a4b9(0x144),'summary':a1_0x20a4b9(0x14b),'whenToUse':a1_0x20a4b9(0x189),'pathParams':[{'name':'appCode','description':a1_0x20a4b9(0x158)},{'name':a1_0x20a4b9(0x153),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':[a1_0x20a4b9(0x196)],'examples':[a1_0x20a4b9(0x178)],'notes':['Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.'],'markdown':a1_0x20a4b9(0x1a4)},{'code':'dataset_data_create','category':a1_0x20a4b9(0x17b),'title':a1_0x20a4b9(0x170),'method':'POST','path':a1_0x20a4b9(0x142),'summary':a1_0x20a4b9(0x161),'whenToUse':a1_0x20a4b9(0x136),'pathParams':[{'name':a1_0x20a4b9(0x141),'description':a1_0x20a4b9(0x158)},{'name':a1_0x20a4b9(0x153),'description':a1_0x20a4b9(0x180)}],'queryParams':[],'bodySchema':a1_0x20a4b9(0x157),'responseHighlights':[a1_0x20a4b9(0x1a1)],'examples':[a1_0x20a4b9(0x187)],'notes':[a1_0x20a4b9(0x182)],'markdown':a1_0x20a4b9(0x164)},{'code':a1_0x20a4b9(0x191),'category':'bf','title':'Get\x20BF\x20endpoint\x20function\x20contract','method':a1_0x20a4b9(0x184),'path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0x20a4b9(0x139),'whenToUse':a1_0x20a4b9(0x193),'pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':'functionName','description':'Exact\x20endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x20a4b9(0x148),'responseHighlights':[a1_0x20a4b9(0x150)],'examples':['lovrabet\x20bff\x20detail\x20--name\x20<functionName>'],'notes':[a1_0x20a4b9(0x17c)],'markdown':'##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.'},{'code':'bf_execute','category':'bf','title':'Execute\x20BF\x20endpoint\x20function','method':a1_0x20a4b9(0x15a),'path':a1_0x20a4b9(0x13d),'summary':'执行指定\x20BF\x20函数','whenToUse':a1_0x20a4b9(0x18d),'pathParams':[{'name':a1_0x20a4b9(0x141),'description':'Current\x20app\x20code'},{'name':a1_0x20a4b9(0x135),'description':a1_0x20a4b9(0x176)}],'queryParams':[],'bodySchema':a1_0x20a4b9(0x17e),'responseHighlights':[a1_0x20a4b9(0x14e)],'examples':[a1_0x20a4b9(0x16c)],'notes':[a1_0x20a4b9(0x179)],'markdown':a1_0x20a4b9(0x19c)},{'code':a1_0x20a4b9(0x166),'category':a1_0x20a4b9(0x192),'title':a1_0x20a4b9(0x133),'method':a1_0x20a4b9(0x15a),'path':a1_0x20a4b9(0x162),'summary':a1_0x20a4b9(0x181),'whenToUse':a1_0x20a4b9(0x16f),'pathParams':[],'queryParams':[],'bodySchema':a1_0x20a4b9(0x18f),'responseHighlights':[a1_0x20a4b9(0x165)],'examples':[a1_0x20a4b9(0x1a6)],'notes':[a1_0x20a4b9(0x14d)],'markdown':a1_0x20a4b9(0x156)}];function a1_0x3797(_0x33f987,_0x2f35de){_0x33f987=_0x33f987-0x130;const _0x1b615e=a1_0x1b61();let _0x379721=_0x1b615e[_0x33f987];return _0x379721;}function entrySummary(_0x53a6c1){const _0x1ea786=a1_0x20a4b9;return{'code':_0x53a6c1[_0x1ea786(0x13e)],'category':_0x53a6c1['category'],'method':_0x53a6c1['method'],'path':_0x53a6c1[_0x1ea786(0x17f)],'summary':_0x53a6c1['summary'],'whenToUse':_0x53a6c1['whenToUse']};}export function listApiDocEntries(_0x3725dc={}){const _0x18b4cd=a1_0x20a4b9,_0x2d5433=String(_0x3725dc['category']||'')[_0x18b4cd(0x13a)](),_0x21b8a5=String(_0x3725dc[_0x18b4cd(0x18b)]||'')[_0x18b4cd(0x13a)]()[_0x18b4cd(0x134)]();return DOCS['filter'](_0x5c17b0=>{const _0x143d78=_0x18b4cd;if(_0x2d5433&&_0x5c17b0['category']!==_0x2d5433)return![];if(!_0x21b8a5)return!![];return[_0x5c17b0[_0x143d78(0x13e)],_0x5c17b0['category'],_0x5c17b0[_0x143d78(0x132)],_0x5c17b0[_0x143d78(0x17f)],_0x5c17b0[_0x143d78(0x160)],_0x5c17b0['whenToUse'],_0x5c17b0[_0x143d78(0x19f)]][_0x143d78(0x152)]('\x20')[_0x143d78(0x134)]()[_0x143d78(0x197)](_0x21b8a5);})[_0x18b4cd(0x188)](entrySummary);}function a1_0x1b61(){const _0x27991c=['dataset','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','{\x22param\x22:\x22value\x22}','path','32-character\x20dataset\x20code','执行自定义\x20SQL','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','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','GET','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','dataset_data_filter','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','map','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','6242850dSuOdw','keyword','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','str','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','bf_detail','custom_sql','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','/api/{appCode}/{datasetCode}/filter','条件过滤查询数据','Returns\x20one\x20matching\x20business\x20record','includes','fields/properties\x20describe\x20data\x20shape','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','##\x20Filter\x20dataset\x20data','##\x20Aggregate\x20dataset\x20data','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','find','10FqbvxJ','title','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','where\x20filters\x20before\x20aggregation','string','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','##\x20Dataset\x20detail','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','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','method','Execute\x20custom\x20SQL','toLowerCase','functionName','需要向指定数据集新增一条业务数据时使用','4110723jHxMqV','dataset_data_aggregate','按应用和函数名精确获取\x20BF\x20运行契约','trim','4016940fFKMYX','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','/api/endpoint/{appCode}/{functionName}','code','dataset_list','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','appCode','/api/{appCode}/{datasetCode}/create','Get\x20one\x20dataset\x20record','/api/{appCode}/{datasetCode}/getOne','List\x20available\x20runtime\x20API\x20documentation\x20entries','55sAtnMZ','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','None','1818561YddWQW','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','查询单条数据','result\x20rows\x20contain\x20aggregate\x20aliases','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','Returns\x20script\x20business\x20payload','聚合查询数据集数据','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','join','datasetCode','122369iXBtNz','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','{\x22fieldName\x22:\x22value\x22}','Current\x20app\x20code','api-doc','POST','API\x20doc\x20code,\x20for\x20example\x20dataset_list','8FrYYDL','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','/api/dataset/getOneByCode?code={datasetCode}','2840920zuDhAJ','summary','创建数据','/api/custom/executeSql','list','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','Returns\x20SQL\x20execution\x20payload','custom_sql_execute','7QXgtFx','/api/{appCode}/{datasetCode}/aggregate','List\x20datasets','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','4801570seenxX','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','Show\x20runtime\x20API\x20documentation\x20by\x20code','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','Create\x20dataset\x20record','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','read','category','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','Endpoint\x20function\x20name','dataset_data_get_one','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','operations\x20describes\x20runtime\x20APIs'];a1_0x1b61=function(){return _0x27991c;};return a1_0x1b61();}export function getApiDocDetail(_0x2df80e){const _0x1fa78d=a1_0x20a4b9,_0xf90e30=DOCS[_0x1fa78d(0x19d)](_0x4c0252=>_0x4c0252[_0x1fa78d(0x13e)]===_0x2df80e);if(!_0xf90e30)throw CliErrors['validation']('API\x20doc\x20code\x20not\x20found:\x20'+_0x2df80e);return{..._0xf90e30};}const apiDocList={'service':a1_0x20a4b9(0x159),'command':a1_0x20a4b9(0x163),'description':a1_0x20a4b9(0x145),'risk':a1_0x20a4b9(0x173),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0xb821b3){const _0x172706=a1_0x20a4b9,_0x68ceee=listApiDocEntries({'category':_0xb821b3['str'](_0x172706(0x174)),'keyword':_0xb821b3[_0x172706(0x18e)](_0x172706(0x18b))});return{'ok':!![],'data':{'total':_0x68ceee['length'],'items':_0x68ceee}};}},apiDocDetail={'service':a1_0x20a4b9(0x159),'command':'detail','description':a1_0x20a4b9(0x16e),'risk':a1_0x20a4b9(0x173),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x4ed5be){const _0x5149b6=a1_0x20a4b9;return{'ok':!![],'data':getApiDocDetail(_0x4ed5be[_0x5149b6(0x18e)]('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a2_0xb162(_0x51dc0b,_0xa7b8ee){_0x51dc0b=_0x51dc0b-0x190;const _0x546733=a2_0x5467();let _0xb162f9=_0x546733[_0x51dc0b];return _0xb162f9;}(function(_0x44af5f,_0x4d0242){const _0x73dd0c=a2_0xb162,_0x324854=_0x44af5f();while(!![]){try{const _0x10b90f=parseInt(_0x73dd0c(0x199))/0x1+parseInt(_0x73dd0c(0x197))/0x2+parseInt(_0x73dd0c(0x1a5))/0x3*(parseInt(_0x73dd0c(0x1a6))/0x4)+parseInt(_0x73dd0c(0x195))/0x5*(-parseInt(_0x73dd0c(0x1ac))/0x6)+-parseInt(_0x73dd0c(0x1a0))/0x7+-parseInt(_0x73dd0c(0x1ad))/0x8*(-parseInt(_0x73dd0c(0x192))/0x9)+parseInt(_0x73dd0c(0x1a4))/0xa*(parseInt(_0x73dd0c(0x190))/0xb);if(_0x10b90f===_0x4d0242)break;else _0x324854['push'](_0x324854['shift']());}catch(_0x32dce0){_0x324854['push'](_0x324854['shift']());}}}(a2_0x5467,0x77c60));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x2438ab){const _0x34cee4=a2_0xb162,_0x4212f0=_0x2438ab[_0x34cee4(0x1a7)](),_0x1e874f=_0x4212f0['slice'](-0x6)||_0x34cee4(0x191),_0x192655=createHash(_0x34cee4(0x19b))[_0x34cee4(0x196)](_0x4212f0)[_0x34cee4(0x19f)]('hex')['slice'](0x0,0xc);return _0x34cee4(0x1a8)+_0x1e874f+'_'+_0x192655;}export function getAppCacheFilePath(_0x227aed,_0xfbcfbd){const _0x297d47=a2_0xb162;return resolve(homedir(),PRODUCT_CONFIG[_0x297d47(0x198)],_0x297d47(0x1a2),_0x227aed,fingerprintAccessKey(_0xfbcfbd),_0x297d47(0x1a9));}export function readCachedAppList(_0x3ec0da,_0x33fd20){const _0x72ec2b=a2_0xb162;if(!_0x33fd20?.[_0x72ec2b(0x1a7)]())return null;const _0xb56c19=getAppCacheFilePath(_0x3ec0da,_0x33fd20);if(!existsSync(_0xb56c19))return null;try{const _0x3ce34f=readFileSync(_0xb56c19,_0x72ec2b(0x1ab));if(!_0x3ce34f[_0x72ec2b(0x1a7)]())return null;const _0x516e8e=JSON[_0x72ec2b(0x193)](_0x3ce34f);if(!Array[_0x72ec2b(0x1aa)](_0x516e8e[_0x72ec2b(0x19c)]))return null;return _0x516e8e;}catch{return null;}}export function writeCachedAppList(_0xd9fa90,_0x2987db,_0x3b13dd){const _0x4f0aa4=a2_0xb162,_0x228883=getAppCacheFilePath(_0xd9fa90,_0x2987db),_0x4627d1=dirname(_0x228883);!existsSync(_0x4627d1)&&mkdirSync(_0x4627d1,{'recursive':!![]});const _0x3cb11e=_0x228883+_0x4f0aa4(0x19e);try{writeFileSync(_0x3cb11e,JSON[_0x4f0aa4(0x1a3)](_0x3b13dd,null,0x2)+'\x0a',{'encoding':_0x4f0aa4(0x1ab),'mode':0x180});try{renameSync(_0x3cb11e,_0x228883);}catch(_0x4f8a19){if(_0x4f8a19[_0x4f0aa4(0x1ae)]===_0x4f0aa4(0x1a1)||_0x4f8a19['code']==='EXDEV'||_0x4f8a19['code']===_0x4f0aa4(0x19a)){writeFileSync(_0x228883,JSON[_0x4f0aa4(0x1a3)](_0x3b13dd,null,0x2)+'\x0a',{'encoding':_0x4f0aa4(0x1ab)});try{unlinkSync(_0x3cb11e);}catch{}}else throw _0x4f8a19;}}catch(_0x3aa23d){try{unlinkSync(_0x3cb11e);}catch{}throw _0x3aa23d;}return _0x228883;}export function resolveCachedAppCode(_0x4df944,_0x29d7f5,_0x26f43f){const _0x2a9b22=a2_0xb162;if(!_0x4df944)return undefined;const _0x480ad0=readCachedAppList(_0x29d7f5,_0x26f43f),_0x3ed0fc=_0x480ad0?.['items'][_0x2a9b22(0x19d)](_0x3cd1cc=>_0x3cd1cc[_0x2a9b22(0x194)]===_0x4df944&&isRuntimeAccessibleApp(_0x3cd1cc));return _0x3ed0fc?.['appCode']?.[_0x2a9b22(0x1a7)]()||undefined;}function a2_0x5467(){const _0x232a3d=['82993pCmpBl','EACCES','sha256','items','find','.tmp','digest','5673619WchOcj','EPERM','cache','stringify','17036740WoYKnK','279303bnfcat','8tZPjnK','trim','ak_','my-apps.json','isArray','utf8','6MIOAga','352ldiJGO','code','11rTbNlR','unknown','14391TqJKsL','parse','appName','4777005CgiuaB','update','426570paFBKE','homeDirName'];a2_0x5467=function(){return _0x232a3d;};return a2_0x5467();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x31bb27=a3_0x2cf8;(function(_0x48d118,_0x42ccef){const _0x404065=a3_0x2cf8,_0x384195=_0x48d118();while(!![]){try{const _0x3fa525=parseInt(_0x404065(0x205))/0x1*(parseInt(_0x404065(0x1f2))/0x2)+parseInt(_0x404065(0x1e8))/0x3+-parseInt(_0x404065(0x21d))/0x4*(-parseInt(_0x404065(0x1e3))/0x5)+parseInt(_0x404065(0x1f6))/0x6+-parseInt(_0x404065(0x1ef))/0x7+parseInt(_0x404065(0x1ee))/0x8*(-parseInt(_0x404065(0x20d))/0x9)+parseInt(_0x404065(0x218))/0xa;if(_0x3fa525===_0x42ccef)break;else _0x384195['push'](_0x384195['shift']());}catch(_0x135677){_0x384195['push'](_0x384195['shift']());}}}(a3_0x73e9,0xb64bd));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';function a3_0x73e9(){const _0x26c84d=['appOwnerName','accessKey','items','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','isCurrent','18789500ZURbGj','globalPath','bool','push','Loaded\x20','380bvOqNo','remote','read','appcode','projectPath','39145mPVJok','Include\x20unpublished\x20apps\x20for\x20diagnostics','no-cache','write','production','193629XIuXCk','langs','No\x20cached\x20apps\x20found.','string','\x20cached\x20app(s)\x20for\x20env=\x22','name','8oOYmgs','9624111XwRBPj','Read\x20app\x20list\x20from\x20local\x20cache\x20only','source','514Miwafx','appCode','Read\x20from\x20local\x20cache\x20only','envName','3316608WHdMCg','filter','isArray','local','find','boolean','app','Filter\x20by\x20environment\x20(default:\x20current\x20env)','length','include-unpublished','pull','trim','enableI18n','Target\x20environment\x20(default:\x20current\x20env)','\x20app(s)\x20for\x20env=\x22','1367DxhjWk','cache','../../commands/app/remote-source.js','type','fetchedAt','../../context.js','env','entries','13227993DzxLTA','cachePath','config','appPublishStatus','nonInteractive','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。'];a3_0x73e9=function(){return _0x26c84d;};return a3_0x73e9();}import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x4ac82b,_0x5078c1){const _0x23dfa6=a3_0x2cf8,_0x58143c={};for(const _0x49847b of _0x5078c1){const _0x5c75a9=_0x49847b[_0x23dfa6(0x208)]===_0x23dfa6(0x1fb)?_0x4ac82b['bool'](_0x49847b[_0x23dfa6(0x1ed)]):_0x4ac82b['str'](_0x49847b[_0x23dfa6(0x1ed)]);if(_0x5c75a9!==''&&_0x5c75a9!==![])_0x58143c[_0x49847b[_0x23dfa6(0x1ed)]]=_0x5c75a9;}if(_0x4ac82b[_0x23dfa6(0x211)])_0x58143c[_0x23dfa6(0x211)]=!![];return _0x58143c;}function normalizeLanguages(_0x4fb0ac){const _0x2aac05=a3_0x2cf8;if(!Array[_0x2aac05(0x1f8)](_0x4fb0ac))return[];return _0x4fb0ac['filter'](_0x4c7d75=>typeof _0x4c7d75==='string')['map'](_0x2d9143=>_0x2d9143[_0x2aac05(0x201)]())[_0x2aac05(0x1f7)](Boolean);}function buildRemoteAppI18nFields(_0x4530c9){const _0x1d1886=a3_0x2cf8,_0x28afcd=normalizeLanguages(_0x4530c9['i18nInfo']?.[_0x1d1886(0x1e9)]);return{'enableI18n':typeof _0x4530c9[_0x1d1886(0x202)]===_0x1d1886(0x1fb)?_0x4530c9[_0x1d1886(0x202)]:null,'languages':_0x28afcd,'i18nInfo':_0x4530c9['i18nInfo']?{..._0x4530c9['i18nInfo'],'langs':_0x28afcd[_0x1d1886(0x1fe)]?_0x28afcd:null}:null};}const listDef={'service':a3_0x31bb27(0x1fc),'command':'list','description':'List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','risk':a3_0x31bb27(0x21f),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x31bb27(0x20b),'type':'string','description':a3_0x31bb27(0x1fd),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x31bb27(0x1f9),'type':a3_0x31bb27(0x1fb),'description':a3_0x31bb27(0x1f0),'default':![]},{'name':'no-cache','type':a3_0x31bb27(0x1fb),'description':a3_0x31bb27(0x216),'default':![]},{'name':a3_0x31bb27(0x1ff),'type':a3_0x31bb27(0x1fb),'description':a3_0x31bb27(0x1e4),'default':![]}],async 'execute'(_0x31def3){const _0x30e3ab=a3_0x31bb27,_0x237dc8=_0x31def3['str'](_0x30e3ab(0x20b))||_0x31def3[_0x30e3ab(0x1f5)]||getEnv()||_0x30e3ab(0x1e7),_0x53eac2=_0x31def3[_0x30e3ab(0x21a)](_0x30e3ab(0x1f9)),_0xe65877=_0x31def3[_0x30e3ab(0x21a)](_0x30e3ab(0x1e5)),_0x3d8e84=_0x31def3[_0x30e3ab(0x21a)]('include-unpublished'),{readRawConfigWithLayers:_0x5e1908,resolveDefaultAppSource:_0x650446,getLocalAppAliases:_0x3dba03}=await import(_0x30e3ab(0x20a)),{getRemoteAppList:_0x15ce29}=await import(_0x30e3ab(0x207)),{config:_0x398897,layers:_0x213e2b}=_0x5e1908(),_0x251966=_0x650446(_0x213e2b),{defaultApp:_0x3596af}=_0x398897,_0x2978c8=await _0x15ce29({'env':_0x237dc8,'accessKey':_0x31def3[_0x30e3ab(0x214)],'localOnly':_0x53eac2,'noCache':_0xe65877}),_0x56c799=_0x3d8e84?_0x2978c8['items']:filterRuntimeAccessibleApps(_0x2978c8[_0x30e3ab(0x215)]),_0x54f900=_0x2978c8['items'][_0x30e3ab(0x1fe)]-_0x56c799[_0x30e3ab(0x1fe)],_0x87a9d=_0x56c799['map'](_0x385612=>{const _0xc5187f=_0x30e3ab;return{'name':_0x385612['appName'],'appcode':_0x385612[_0xc5187f(0x1f3)],'named':!![],'definedIn':_0xc5187f(0x21e),'isDefault':_0x385612['appName']===_0x3596af,...buildAppProfileListFields(_0x237dc8),...buildRemoteAppI18nFields(_0x385612),'source':_0x2978c8[_0xc5187f(0x1f1)],'owner':_0x385612[_0xc5187f(0x213)]??null,'status':_0x385612[_0xc5187f(0x210)]??null,'cachedAt':_0x2978c8['fetchedAt']};}),_0x152125=_0x3dba03(_0x398897);let _0x44b099=0x0;for(const [_0x23a85d,_0x33db44]of Object[_0x30e3ab(0x20c)](_0x152125)){const _0x4ded1f=typeof _0x33db44['appcode']==='string'?_0x33db44[_0x30e3ab(0x220)][_0x30e3ab(0x201)]():'';if(!_0x4ded1f)continue;const _0x1545ca=findAppByCode(_0x2978c8[_0x30e3ab(0x215)],_0x4ded1f);if(!_0x3d8e84&&_0x1545ca&&!isRuntimeAccessibleApp(_0x1545ca))continue;_0x44b099+=0x1,_0x87a9d[_0x30e3ab(0x21b)]({'name':_0x23a85d,'appcode':_0x4ded1f,'named':!![],'definedIn':'local','isDefault':_0x23a85d===_0x3596af,...buildAppProfileListFields(_0x237dc8),'source':_0x30e3ab(0x20f),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x87a9d,_0x31def3['mergedCli']);const _0x9157a5=_0x87a9d[_0x30e3ab(0x1fa)](_0x14fd21=>_0x14fd21[_0x30e3ab(0x217)]===!![]),_0x26620b=_0x3596af??_0x9157a5?.['name']??null,_0xd24b14={'env':_0x237dc8,'source':_0x2978c8[_0x30e3ab(0x1f1)],'fetchedAt':_0x2978c8[_0x30e3ab(0x209)],'cachePath':_0x2978c8['cachePath'],'globalPath':_0x213e2b[_0x30e3ab(0x219)]??null,'projectPath':_0x213e2b[_0x30e3ab(0x221)]??null,'defaultApp':_0x26620b,'defaultAppSource':_0x3596af!=null?_0x251966:null,'localAliasCount':_0x44b099,'remoteTotal':_0x2978c8[_0x30e3ab(0x215)][_0x30e3ab(0x1fe)],'hiddenUnpublishedCount':_0x54f900,'includeUnpublished':_0x3d8e84};if(_0x87a9d['length']===0x0)return{'ok':!![],'data':{'items':_0x87a9d,'meta':_0xd24b14},'message':_0x2978c8['source']===_0x30e3ab(0x206)?_0x30e3ab(0x1ea):'No\x20apps\x20found\x20on\x20the\x20platform.'};return{'ok':!![],'data':{'items':_0x87a9d,'meta':_0xd24b14}};}},pullDef={'service':'app','command':a3_0x31bb27(0x200),'description':'从平台刷新本地应用缓存','risk':'write','confirmationDescription':'将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x31bb27(0x20b),'type':a3_0x31bb27(0x1eb),'description':a3_0x31bb27(0x203),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x31bb27(0x1f9),'type':a3_0x31bb27(0x1fb),'description':a3_0x31bb27(0x1f4),'default':![]},{'name':a3_0x31bb27(0x1e5),'type':'boolean','description':a3_0x31bb27(0x216),'default':![]}],async 'execute'(_0x18a7b6){const _0x165651=a3_0x31bb27,_0x40507d=_0x18a7b6['str'](_0x165651(0x20b))||_0x18a7b6['envName']||getEnv()||_0x165651(0x1e7),_0x45cb22=_0x18a7b6[_0x165651(0x21a)](_0x165651(0x1f9)),_0x527d1e=_0x18a7b6[_0x165651(0x21a)]('no-cache'),{getRemoteAppList:_0x240b57}=await import(_0x165651(0x207)),_0x27062e=await _0x240b57({'env':_0x40507d,'accessKey':_0x18a7b6[_0x165651(0x214)],'localOnly':_0x45cb22,'noCache':_0x527d1e});return{'ok':!![],'data':{'total':_0x27062e[_0x165651(0x215)][_0x165651(0x1fe)],'env':_0x40507d,'source':_0x27062e[_0x165651(0x1f1)],'fetchedAt':_0x27062e[_0x165651(0x209)],'cachePath':_0x27062e[_0x165651(0x20e)]},'message':_0x27062e[_0x165651(0x1f1)]===_0x165651(0x206)?_0x165651(0x21c)+_0x27062e['items'][_0x165651(0x1fe)]+_0x165651(0x1ec)+_0x40507d+'\x22.':'Refreshed\x20app\x20cache\x20with\x20'+_0x27062e[_0x165651(0x215)][_0x165651(0x1fe)]+_0x165651(0x204)+_0x40507d+'\x22.'};}},importDef={'service':a3_0x31bb27(0x1fc),'command':'import','description':'从\x20.rabetbase.json\x20文件导入默认应用选择','risk':a3_0x31bb27(0x1e6),'confirmationDescription':a3_0x31bb27(0x212),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x22f146){return await runAppImport(collectFlags(_0x22f146,appImportFlagDefs)),{'ok':!![]};}};function a3_0x2cf8(_0x119d21,_0x10561f){_0x119d21=_0x119d21-0x1e3;const _0x73e9b=a3_0x73e9();let _0x2cf832=_0x73e9b[_0x119d21];return _0x2cf832;}export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5d0879,_0x5ca9f8){const _0x19a0ec=a4_0x44ef,_0x5446be=_0x5d0879();while(!![]){try{const _0x42a2b7=-parseInt(_0x19a0ec(0xae))/0x1+parseInt(_0x19a0ec(0x9a))/0x2+-parseInt(_0x19a0ec(0xa6))/0x3*(parseInt(_0x19a0ec(0xad))/0x4)+-parseInt(_0x19a0ec(0xa4))/0x5*(-parseInt(_0x19a0ec(0xa3))/0x6)+parseInt(_0x19a0ec(0xb0))/0x7*(parseInt(_0x19a0ec(0xaf))/0x8)+-parseInt(_0x19a0ec(0xab))/0x9+parseInt(_0x19a0ec(0xa5))/0xa*(parseInt(_0x19a0ec(0x9c))/0xb);if(_0x42a2b7===_0x5ca9f8)break;else _0x5446be['push'](_0x5446be['shift']());}catch(_0x39b62c){_0x5446be['push'](_0x5446be['shift']());}}}(a4_0x5539,0xbbf44));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';function a4_0x44ef(_0x13e11b,_0x1d1073){_0x13e11b=_0x13e11b-0x97;const _0x553921=a4_0x5539();let _0x44efd0=_0x553921[_0x13e11b];return _0x44efd0;}import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x10be98){const _0x1c5620=a4_0x44ef;if(typeof _0x10be98!==_0x1c5620(0x99))return null;const _0x491604=_0x10be98[_0x1c5620(0xac)]();return _0x491604?_0x491604[_0x1c5620(0x9f)]():null;}export function isRuntimeAccessibleApp(_0x10cbe7){return normalizeAppPublishStatus(_0x10cbe7['appPublishStatus'])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x4b287a){const _0x20b829=a4_0x44ef;return _0x4b287a[_0x20b829(0xa1)](isRuntimeAccessibleApp);}export function findAppByName(_0x3da2d1,_0x26a93b){const _0x57c24f=a4_0x44ef;return _0x3da2d1[_0x57c24f(0x98)](_0x55008f=>_0x55008f[_0x57c24f(0xa8)]===_0x26a93b);}export function findAppByCode(_0x1ad34a,_0x4bc7ca){const _0x944ecc=a4_0x44ef,_0x12675b=_0x4bc7ca[_0x944ecc(0xac)]();if(!_0x12675b)return undefined;return _0x1ad34a['find'](_0x3c036b=>_0x3c036b[_0x944ecc(0x9d)]?.[_0x944ecc(0xac)]()===_0x12675b);}export function runtimeInaccessibleAppError(_0x11ab7b,_0x4d164b){const _0x474534=a4_0x44ef,_0x40bdce=normalizeAppPublishStatus(_0x11ab7b[_0x474534(0xaa)])??_0x474534(0x97);return CliErrors[_0x474534(0x9b)](_0x474534(0xa0)+_0x4d164b+_0x474534(0xa2),_0x474534(0xa9)+_0x40bdce+_0x474534(0xa7)+CLI_BIN_NAME+_0x474534(0x9e));}function a4_0x5539(){const _0x337ae2=['filter','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','17202Uoxtkn','875fTLkwy','71540xoVLzb','321591NxnknL','.\x20Publish\x20the\x20app\x20before\x20using\x20','appName','Current\x20status:\x20','appPublishStatus','11987163lbiaAs','trim','20MCZNXb','1326518NHtZPL','11211224CjduaY','7BCvFrR','UNKNOWN','find','string','2949028bKyJeh','validation','902EOoAAP','appCode','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','toUpperCase','App\x20'];a4_0x5539=function(){return _0x337ae2;};return a4_0x5539();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a5_0x2c59(){const _0x1d915b=['16AIzdxW','99imcwcD','6642650MHIoQh','1015818NWVHWu','4934tZJmoz','success','1541960dnXYrr','parse','tableData','11RcxAcW','46614jftgrt','304173NTZCkJ','errorCode','32BLmsmq','829705yfjcYb','Mock\x20API\x20error:\x20'];a5_0x2c59=function(){return _0x1d915b;};return a5_0x2c59();}(function(_0x40a6c7,_0x5e1677){const _0x4fde0c=a5_0x14b7,_0x528dec=_0x40a6c7();while(!![]){try{const _0x45a28f=parseInt(_0x4fde0c(0x9d))/0x1*(parseInt(_0x4fde0c(0xa0))/0x2)+-parseInt(_0x4fde0c(0x96))/0x3*(parseInt(_0x4fde0c(0x99))/0x4)+-parseInt(_0x4fde0c(0x9a))/0x5+-parseInt(_0x4fde0c(0x9f))/0x6+-parseInt(_0x4fde0c(0xa2))/0x7+-parseInt(_0x4fde0c(0x9c))/0x8*(parseInt(_0x4fde0c(0x97))/0x9)+-parseInt(_0x4fde0c(0x9e))/0xa*(-parseInt(_0x4fde0c(0xa5))/0xb);if(_0x45a28f===_0x5e1677)break;else _0x528dec['push'](_0x528dec['shift']());}catch(_0x2ff7b3){_0x528dec['push'](_0x528dec['shift']());}}}(a5_0x2c59,0x27534));import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a5_0x14b7(_0x311152,_0x1ca672){_0x311152=_0x311152-0x96;const _0x2c591c=a5_0x2c59();let _0x14b7fc=_0x2c591c[_0x311152];return _0x14b7fc;}function loadMockAppList(){const _0x35be20=a5_0x14b7,_0x30d0d7=join(__dirname,'../../../mock/app-list.json'),_0x5f0fcf=readFileSync(_0x30d0d7,'utf-8');return JSON[_0x35be20(0xa3)](_0x5f0fcf);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x40e611=a5_0x14b7,_0x18e31c=getMockAppList();if(!_0x18e31c[_0x40e611(0xa1)])throw new Error(_0x40e611(0x9b)+_0x18e31c['errorMsg']+'\x20('+_0x18e31c[_0x40e611(0x98)]+')');return _0x18e31c['data'][_0x40e611(0xa4)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x487a13,_0x3bdd7e){const _0x497982=a6_0x3d8d,_0x49fc41=_0x487a13();while(!![]){try{const _0x1b181d=-parseInt(_0x497982(0x1cf))/0x1+parseInt(_0x497982(0x1dd))/0x2*(parseInt(_0x497982(0x1ce))/0x3)+parseInt(_0x497982(0x1d8))/0x4+parseInt(_0x497982(0x1db))/0x5*(parseInt(_0x497982(0x1d2))/0x6)+parseInt(_0x497982(0x1dc))/0x7*(-parseInt(_0x497982(0x1ca))/0x8)+-parseInt(_0x497982(0x1de))/0x9*(-parseInt(_0x497982(0x1d5))/0xa)+parseInt(_0x497982(0x1d9))/0xb*(-parseInt(_0x497982(0x1d7))/0xc);if(_0x1b181d===_0x3bdd7e)break;else _0x49fc41['push'](_0x49fc41['shift']());}catch(_0x557706){_0x49fc41['push'](_0x49fc41['shift']());}}}(a6_0x4b74,0x202cc));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';function a6_0x4b74(){const _0x5a85bd=['8PhGDgz','mock','items','fetchedAt','3eGIrsv','52840MUVfaT','toLowerCase','APP_LIST_SOURCE','716034Vhnsmo','trim','remote','10uWurOI','toISOString','255468qyLSbA','747068dHbkNM','253WZPwiu','cache','5EEdXpZ','426083OVSfAy','332504vktRGV','2365074QHnKcp'];a6_0x4b74=function(){return _0x5a85bd;};return a6_0x4b74();}function a6_0x3d8d(_0x58b430,_0x3f78d6){_0x58b430=_0x58b430-0x1ca;const _0x4b7418=a6_0x4b74();let _0x3d8dbf=_0x4b7418[_0x58b430];return _0x3d8dbf;}import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x42fea7=a6_0x3d8d,_0x372014=(productEnv(_0x42fea7(0x1d1))||'')[_0x42fea7(0x1d3)]()[_0x42fea7(0x1d0)]();return _0x372014===_0x42fea7(0x1cb);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x31afa9){const _0x4f0099=a6_0x3d8d,{env:_0x5387e9,accessKey:_0x22462a,localOnly:localOnly=![],noCache:noCache=![]}=_0x31afa9,_0x1ef30c=readCachedAppList(_0x5387e9,_0x22462a),_0x522447=_0x22462a?.[_0x4f0099(0x1d3)]()?getAppCacheFilePath(_0x5387e9,_0x22462a):null;if(localOnly)return{'items':_0x1ef30c?.[_0x4f0099(0x1cc)]??[],'source':_0x4f0099(0x1da),'fetchedAt':_0x1ef30c?.[_0x4f0099(0x1cd)]??null,'cachePath':_0x522447};try{const _0x46780b=await getRemoteAppItems(),_0x3593bc=shouldUseMockRemoteApps()?_0x4f0099(0x1cb):_0x4f0099(0x1d4),_0x5d0920=new Date()[_0x4f0099(0x1d6)](),_0x1942e1=_0x22462a?.['trim']()?writeCachedAppList(_0x5387e9,_0x22462a,{'env':_0x5387e9,'fetchedAt':_0x5d0920,'source':_0x3593bc,'items':_0x46780b}):null;return{'items':_0x46780b,'source':_0x3593bc,'fetchedAt':_0x5d0920,'cachePath':_0x1942e1};}catch(_0x4c1878){if(!noCache&&_0x1ef30c)return{'items':_0x1ef30c[_0x4f0099(0x1cc)],'source':_0x4f0099(0x1da),'fetchedAt':_0x1ef30c[_0x4f0099(0x1cd)],'cachePath':_0x522447};throw _0x4c1878;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x24e35f,_0x274e71){const _0x4c1d5c=a7_0x2fc9,_0x26abe8=_0x24e35f();while(!![]){try{const _0x4f412d=parseInt(_0x4c1d5c(0xc5))/0x1+-parseInt(_0x4c1d5c(0xcd))/0x2*(-parseInt(_0x4c1d5c(0xce))/0x3)+-parseInt(_0x4c1d5c(0xc4))/0x4*(parseInt(_0x4c1d5c(0xc7))/0x5)+parseInt(_0x4c1d5c(0xd8))/0x6+-parseInt(_0x4c1d5c(0xcb))/0x7*(-parseInt(_0x4c1d5c(0xc8))/0x8)+-parseInt(_0x4c1d5c(0xd2))/0x9*(-parseInt(_0x4c1d5c(0xd3))/0xa)+-parseInt(_0x4c1d5c(0xc9))/0xb*(parseInt(_0x4c1d5c(0xd6))/0xc);if(_0x4f412d===_0x274e71)break;else _0x26abe8['push'](_0x26abe8['shift']());}catch(_0x31a775){_0x26abe8['push'](_0x26abe8['shift']());}}}(a7_0x3433,0x8fb4f));function a7_0x3433(){const _0x262087=['846159EOILoW','definedIn','5MGofth','8LSokVb','26980415FSWzUk','appcode','6004971tntsvS','name','1120490GSSzMv','3MwmwYj','defaultApp','appCode','currentApp','32958KbkRVV','1360KFoymX','named','local','12YFUNwM','trim','5975856VuABOe','isCurrent','find','2867508hxgsmU'];a7_0x3433=function(){return _0x262087;};return a7_0x3433();}function a7_0x2fc9(_0x5c71b5,_0x421684){_0x5c71b5=_0x5c71b5-0xc4;const _0x343301=a7_0x3433();let _0x2fc921=_0x343301[_0x5c71b5];return _0x2fc921;}export function enrichAppListItemsWithMergedSelection(_0x983fa9,_0x1e1fec){const _0x4f099b=a7_0x2fc9;if(!_0x1e1fec)return;const _0x294412=!!(_0x1e1fec[_0x4f099b(0xd1)]??_0x1e1fec[_0x4f099b(0xcf)]);for(const _0x61c2e4 of _0x983fa9){_0x61c2e4[_0x4f099b(0xd9)]=![];}const _0x15de3d=_0x1e1fec['appCode']!=null?String(_0x1e1fec[_0x4f099b(0xd0)])[_0x4f099b(0xd7)]():'';if(_0x294412){const _0x4a90e9=_0x1e1fec['currentApp']??_0x1e1fec[_0x4f099b(0xcf)];if(_0x4a90e9){const _0x13f1ba=_0x983fa9[_0x4f099b(0xda)](_0x1bdda9=>_0x1bdda9[_0x4f099b(0xd4)]===!![]&&_0x1bdda9[_0x4f099b(0xcc)]===_0x4a90e9&&_0x1bdda9[_0x4f099b(0xc6)]===_0x4f099b(0xd5)),_0x4f80fb=_0x13f1ba??_0x983fa9[_0x4f099b(0xda)](_0x390f7b=>_0x390f7b[_0x4f099b(0xd4)]===!![]&&_0x390f7b[_0x4f099b(0xcc)]===_0x4a90e9);if(_0x4f80fb){const _0x590f45=String(_0x4f80fb[_0x4f099b(0xca)]??'')[_0x4f099b(0xd7)]();if(!_0x15de3d||_0x590f45===_0x15de3d){_0x4f80fb[_0x4f099b(0xd9)]=!![];return;}}}if(_0x15de3d){const _0x5004e8=_0x983fa9['find'](_0x39bbe2=>String(_0x39bbe2[_0x4f099b(0xca)]??'')[_0x4f099b(0xd7)]()===_0x15de3d);_0x5004e8&&(_0x5004e8[_0x4f099b(0xd9)]=!![]);}return;}if(!_0x15de3d)return;for(const _0x6fb818 of _0x983fa9){String(_0x6fb818[_0x4f099b(0xca)]??'')[_0x4f099b(0xd7)]()===_0x15de3d&&(_0x6fb818[_0x4f099b(0xd9)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a8_0x37b0(){const _0x1e51b4=['key','13732088CuJrwV','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','11184990nEcWfH','App\x20config\x20key','app-config','\x20app-config\x20get\x20<key>','3032428JsRmKi','read','9NifzGA','2877466OWGXvd','apiError','2529648phDqKc','appCode',',\x20appCode=','15FuTXtH','trim','get','671300qITIps','Unable\x20to\x20get\x20app-config\x20value:\x20key=','415011pcXUBZ','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','args'];a8_0x37b0=function(){return _0x1e51b4;};return a8_0x37b0();}const a8_0x3ae5a9=a8_0x3c53;(function(_0x14594c,_0x26d176){const _0x39bccd=a8_0x3c53,_0x23d39c=_0x14594c();while(!![]){try{const _0x3bf8c7=parseInt(_0x39bccd(0x146))/0x1+parseInt(_0x39bccd(0x13c))/0x2+-parseInt(_0x39bccd(0x13e))/0x3+-parseInt(_0x39bccd(0x144))/0x4*(-parseInt(_0x39bccd(0x141))/0x5)+-parseInt(_0x39bccd(0x135))/0x6+-parseInt(_0x39bccd(0x139))/0x7+-parseInt(_0x39bccd(0x14a))/0x8*(-parseInt(_0x39bccd(0x13b))/0x9);if(_0x3bf8c7===_0x26d176)break;else _0x23d39c['push'](_0x23d39c['shift']());}catch(_0x2610a3){_0x23d39c['push'](_0x23d39c['shift']());}}}(a8_0x37b0,0xe3d19));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a8_0x3c53(_0x80d2af,_0x299ed7){_0x80d2af=_0x80d2af-0x135;const _0x37b03f=a8_0x37b0();let _0x3c53b9=_0x37b03f[_0x80d2af];return _0x3c53b9;}export const appConfigGet={'service':a8_0x3ae5a9(0x137),'command':a8_0x3ae5a9(0x143),'description':a8_0x3ae5a9(0x14b),'risk':a8_0x3ae5a9(0x13a),'args':[{'name':a8_0x3ae5a9(0x149),'description':a8_0x3ae5a9(0x136),'required':!![]}],'flags':[],async 'execute'(_0x332f82){const _0x88e088=a8_0x3ae5a9,_0x4af34a=_0x332f82[_0x88e088(0x148)][0x0]?.[_0x88e088(0x142)]();if(!_0x4af34a)throw CliErrors['validation']('Missing\x20app-config\x20key.','Usage:\x20'+CLI_BIN_NAME+_0x88e088(0x138));try{const _0x52eb7b=await getRuntimeAppConfigByKey(_0x332f82[_0x88e088(0x13f)],_0x4af34a);return{'ok':!![],'data':_0x52eb7b};}catch{throw CliErrors[_0x88e088(0x13d)](_0x88e088(0x145)+_0x4af34a+_0x88e088(0x140)+_0x332f82[_0x88e088(0x13f)],_0x88e088(0x147));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a9_0x2fc2(_0x5278ba,_0x370c56){_0x5278ba=_0x5278ba-0xa0;const _0x1f6b56=a9_0x1f6b();let _0x2fc20c=_0x1f6b56[_0x5278ba];return _0x2fc20c;}function a9_0x1f6b(){const _0x8742cb=['305264SEIPqY','144tkLzzU','188544HXtRhP','2198358XBhGBI','24455qtcDhG','2288912NkeDVd','414NPAIDq','1540259eIstbO','294099zqxXGr'];a9_0x1f6b=function(){return _0x8742cb;};return a9_0x1f6b();}(function(_0x250275,_0x387f51){const _0xc0042c=a9_0x2fc2,_0x121563=_0x250275();while(!![]){try{const _0x6aefd4=parseInt(_0xc0042c(0xa5))/0x1+-parseInt(_0xc0042c(0xa6))/0x2+parseInt(_0xc0042c(0xa0))/0x3+parseInt(_0xc0042c(0xa2))/0x4+parseInt(_0xc0042c(0xa1))/0x5*(-parseInt(_0xc0042c(0xa7))/0x6)+parseInt(_0xc0042c(0xa4))/0x7+parseInt(_0xc0042c(0xa8))/0x8*(-parseInt(_0xc0042c(0xa3))/0x9);if(_0x6aefd4===_0x387f51)break;else _0x121563['push'](_0x121563['shift']());}catch(_0x24e9de){_0x121563['push'](_0x121563['shift']());}}}(a9_0x1f6b,0x7186e));import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a10_0x335d(_0x267d81,_0x41412e){_0x267d81=_0x267d81-0x98;const _0x3677b8=a10_0x3677();let _0x335d45=_0x3677b8[_0x267d81];return _0x335d45;}const a10_0x43d681=a10_0x335d;(function(_0x5d7b1e,_0x375303){const _0x4f7f1f=a10_0x335d,_0x4b603e=_0x5d7b1e();while(!![]){try{const _0x37b595=-parseInt(_0x4f7f1f(0xd8))/0x1*(-parseInt(_0x4f7f1f(0xdf))/0x2)+parseInt(_0x4f7f1f(0xd1))/0x3+-parseInt(_0x4f7f1f(0xbc))/0x4+-parseInt(_0x4f7f1f(0xdb))/0x5+parseInt(_0x4f7f1f(0xaa))/0x6+parseInt(_0x4f7f1f(0x9d))/0x7+-parseInt(_0x4f7f1f(0xac))/0x8;if(_0x37b595===_0x375303)break;else _0x4b603e['push'](_0x4b603e['shift']());}catch(_0x35f45e){_0x4b603e['push'](_0x4b603e['shift']());}}}(a10_0x3677,0xa227c));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x43d681(0xb8),ARTIFACT_SOURCE_AGENT=a10_0x43d681(0xba),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x43d681(0xc8),'react-dom',a10_0x43d681(0xda),'dayjs','antd',a10_0x43d681(0xe0)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x43d681(0xbb),'type':a10_0x43d681(0xcd),'required':!![],'description':a10_0x43d681(0xaf)},ARTIFACT_NAME_FLAG={'name':a10_0x43d681(0xe7),'type':a10_0x43d681(0xcd),'description':a10_0x43d681(0xab)},METADATA_FLAG={'name':a10_0x43d681(0xcf),'type':a10_0x43d681(0xcd),'description':a10_0x43d681(0xc6)};function isPlainObject(_0x40bc2a){const _0xcb26be=a10_0x43d681;return typeof _0x40bc2a===_0xcb26be(0x9a)&&_0x40bc2a!==null&&!Array[_0xcb26be(0xa6)](_0x40bc2a);}function readSourceFile(_0x23456b){const _0x123952=a10_0x43d681;if(!_0x23456b)throw CliErrors[_0x123952(0xa5)]('File\x20path\x20is\x20required.');if(!existsSync(_0x23456b))throw CliErrors[_0x123952(0xa5)](_0x123952(0xd3)+_0x23456b);if(!statSync(_0x23456b)[_0x123952(0xb9)]())throw CliErrors[_0x123952(0xa5)](_0x123952(0xb2)+_0x23456b);const _0x4ba664=readFileSync(_0x23456b,'utf8');return validateReactModuleSource(_0x4ba664),_0x4ba664;}function parseMetadata(_0x3b1d16){const _0x38c373=a10_0x43d681;if(!_0x3b1d16)return undefined;let _0x463a28;try{_0x463a28=JSON['parse'](_0x3b1d16);}catch{throw CliErrors[_0x38c373(0xa5)]('Invalid\x20JSON\x20for\x20--metadata:\x20'+_0x3b1d16);}if(!isPlainObject(_0x463a28))throw CliErrors[_0x38c373(0xa5)](_0x38c373(0xc3));const _0x44d3f2={..._0x463a28};return delete _0x44d3f2[_0x38c373(0xbf)],_0x44d3f2;}function getPackageName(_0x122ced){const _0x41f69f=a10_0x43d681;if(_0x122ced[_0x41f69f(0xa2)]('@')){const [_0x189d4f,_0x4b04bc]=_0x122ced[_0x41f69f(0x9e)]('/');return _0x189d4f&&_0x4b04bc?_0x189d4f+'/'+_0x4b04bc:_0x122ced;}return _0x122ced['split']('/')[0x0]||_0x122ced;}function validateAllowedImports(_0x1a6722){const _0x4713a5=a10_0x43d681,_0x3d4cb9=new Set();for(const _0x16f30a of IMPORT_SOURCE_PATTERNS){_0x16f30a[_0x4713a5(0xa9)]=0x0;let _0x35c290;while((_0x35c290=_0x16f30a[_0x4713a5(0xce)](_0x1a6722))!==null){const _0x549654=_0x35c290[0x1]?.[_0x4713a5(0xc1)]();_0x549654&&_0x3d4cb9['add'](_0x549654);}}const _0x34a96f=[..._0x3d4cb9][_0x4713a5(0xa7)](getPackageName)['filter'](_0x560f2c=>!ALLOWED_REACT_MODULE_IMPORTS[_0x4713a5(0xc5)](_0x560f2c));if(_0x34a96f[_0x4713a5(0xa3)]>0x0)throw CliErrors[_0x4713a5(0xa5)](_0x4713a5(0xd5)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4713a5(0x98)+[...new Set(_0x34a96f)][_0x4713a5(0xd6)](',\x20'));}export function validateReactModuleSource(_0x3f9936){const _0x1d0f7e=a10_0x43d681;if(!_0x3f9936[_0x1d0f7e(0xc1)]())throw CliErrors[_0x1d0f7e(0xa5)](_0x1d0f7e(0xc7));if(PAGE_LEVEL_PATTERNS[_0x1d0f7e(0xa0)](_0x15e2dc=>_0x15e2dc['test'](_0x3f9936)))throw CliErrors[_0x1d0f7e(0xa5)](_0x1d0f7e(0xa8));validateAllowedImports(_0x3f9936);}function buildArtifactInput(_0x1875de){const _0x3ca10c=a10_0x43d681,_0x4443a8=readSourceFile(_0x1875de[_0x3ca10c(0x9b)](_0x3ca10c(0xbb))),_0x456d22=_0x1875de[_0x3ca10c(0x9b)]('name')[_0x3ca10c(0xc1)](),_0x1d5e27=parseMetadata(_0x1875de['str'](_0x3ca10c(0xcf)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x456d22?{'name':_0x456d22}:{},'content':_0x4443a8,..._0x1d5e27?{'metadata':_0x1d5e27}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x378c0c){const _0x989387=a10_0x43d681;return{'id':_0x378c0c['id'],'name':_0x378c0c[_0x989387(0xe7)],'artifactType':_0x378c0c[_0x989387(0xe1)],'source':_0x378c0c['source'],'favorite':_0x378c0c[_0x989387(0xa4)],'deleted':_0x378c0c[_0x989387(0xc4)],'createTime':_0x378c0c['createTime'],'updateTime':_0x378c0c['updateTime']};}function detailArtifact(_0xad510c){const _0x11d269=a10_0x43d681;return{'id':_0xad510c['id'],'appCode':_0xad510c[_0x11d269(0xb4)],'name':_0xad510c[_0x11d269(0xe7)],'artifactType':_0xad510c[_0x11d269(0xe1)],'source':_0xad510c[_0x11d269(0x9c)],'favorite':_0xad510c[_0x11d269(0xa4)],'deleted':_0xad510c[_0x11d269(0xc4)],'content':_0xad510c[_0x11d269(0xb1)]??'','compiledContent':_0xad510c[_0x11d269(0xbf)],'metadata':_0xad510c['metadata']??{},'createTime':_0xad510c['createTime'],'updateTime':_0xad510c[_0x11d269(0xb5)]};}function readFavoriteFlag(_0x3e1997){const _0x346107=a10_0x43d681,_0x46ff5f=_0x3e1997['flag']('favorite');return _0x46ff5f===undefined||_0x46ff5f===null||_0x46ff5f===''?undefined:_0x3e1997['bool'](_0x346107(0xa4));}function a10_0x3677(){const _0x2347bb=['Show\x20one\x20Artifact\x20by\x20id','2775000HtiXzF','/update','File\x20not\x20found:\x20','data','react_module\x20imports\x20are\x20limited\x20to:\x20','join','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','2kLdUMH','list','lodash','6615470ucVKQo','create','build','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','1203220kWPeit','@ant-design/icons','artifactType','read','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','number','List\x20current-app\x20react_module\x20Artifacts','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','name','.\x20Unsupported:\x20','description','object','str','source','8808009pXXRcq','split','POST','some','update','startsWith','length','favorite','validation','isArray','map','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','lastIndex','7555992TFRUFD','Artifact\x20display\x20name','17289184fFZjiV','detail','boolean','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','num','content','File\x20is\x20not\x20a\x20regular\x20file:\x20','Artifact\x20ID','appCode','updateTime','/client/artifact/create','artifact','react_module','isFile','AGENT','file','1989636cryOiy','verbose','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','compiledContent','Updated\x20Artifact\x20','trim','body','--metadata\x20must\x20be\x20a\x20JSON\x20object.','deleted','includes','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','Artifact\x20source\x20file\x20is\x20blank.','react','write','Preview:\x20update\x20react_module\x20Artifact\x20','/client/artifact/','Preview:\x20create\x20react_module\x20Artifact','string','exec','metadata'];a10_0x3677=function(){return _0x2347bb;};return a10_0x3677();}const artifactList={'service':a10_0x43d681(0xb7),'command':a10_0x43d681(0xd9),'description':a10_0x43d681(0xe5),'risk':a10_0x43d681(0xe2),'flags':[{'name':a10_0x43d681(0x9c),'type':a10_0x43d681(0xcd),'description':a10_0x43d681(0xe6)},{'name':'favorite','type':a10_0x43d681(0xae),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x88fe23){const _0x390b75=a10_0x43d681,_0x323bdf=await listRuntimeArtifacts(_0x88fe23['appCode'],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x88fe23['str'](_0x390b75(0x9c))?{'source':_0x88fe23[_0x390b75(0x9b)](_0x390b75(0x9c))}:{},...readFavoriteFlag(_0x88fe23)!==undefined?{'favorite':readFavoriteFlag(_0x88fe23)}:{}});return{'ok':!![],'data':{'total':_0x323bdf['length'],'items':_0x88fe23['bool'](_0x390b75(0xbd))?_0x323bdf:_0x323bdf[_0x390b75(0xa7)](summarizeArtifact)}};}},artifactDetail={'service':'artifact','command':a10_0x43d681(0xad),'description':a10_0x43d681(0xd0),'risk':a10_0x43d681(0xe2),'flags':[{...ID_FLAG,'description':a10_0x43d681(0xb3)}],async 'execute'(_0x769aab){const _0xcc34dd=a10_0x43d681,_0x39e09f=await getRuntimeArtifact(_0x769aab['num']('id'),_0x769aab[_0xcc34dd(0xb4)]);return{'ok':!![],'data':detailArtifact(_0x39e09f)};}},artifactCreate={'service':'artifact','command':a10_0x43d681(0xdc),'description':a10_0x43d681(0xde),'risk':a10_0x43d681(0xc9),'confirmationDescription':a10_0x43d681(0xbe),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x3b581a){const _0x136e02=a10_0x43d681,_0x35d525=buildArtifactInput(_0x3b581a),_0x38880f=await createRuntimeArtifact(_0x3b581a['appCode'],_0x35d525);return{'ok':!![],'data':detailArtifact(_0x38880f),'message':'Created\x20Artifact\x20'+_0x38880f['id']+(_0x38880f[_0x136e02(0xe7)]?'\x20('+_0x38880f[_0x136e02(0xe7)]+')':'')};},async 'dryRun'(_0x37e3a0){const _0x504774=a10_0x43d681,_0x3776b6=buildArtifactInput(_0x37e3a0);return dryRun(_0x504774(0x9f),_0x504774(0xb6))[_0x504774(0xc2)]({'appCode':_0x37e3a0[_0x504774(0xb4)],..._0x3776b6})['description'](_0x504774(0xcc))['build']();},'writeEventSubject'(_0x5da53d){const _0x388590=a10_0x43d681,_0x282618=_0x5da53d[_0x388590(0xd4)]?.['id'];if(typeof _0x282618!==_0x388590(0xcd)&&typeof _0x282618!==_0x388590(0xe4))return undefined;return{'kind':_0x388590(0xb7),'id':String(_0x282618),'action':'create'};}},artifactUpdate={'service':a10_0x43d681(0xb7),'command':'update','description':a10_0x43d681(0xd7),'risk':a10_0x43d681(0xc9),'confirmationDescription':a10_0x43d681(0xe3),'flags':[{...ID_FLAG,'description':a10_0x43d681(0xb3)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2bbd37){const _0x4fce6c=a10_0x43d681,_0xbf3d9b=_0x2bbd37[_0x4fce6c(0xb0)]('id'),_0x6df7c7=buildArtifactInput(_0x2bbd37),_0x37b7de=await updateRuntimeArtifact(_0xbf3d9b,_0x2bbd37['appCode'],_0x6df7c7);return{'ok':!![],'data':detailArtifact(_0x37b7de),'message':_0x4fce6c(0xc0)+_0x37b7de['id']+(_0x37b7de[_0x4fce6c(0xe7)]?'\x20('+_0x37b7de[_0x4fce6c(0xe7)]+')':'')};},async 'dryRun'(_0x30deff){const _0x4198e5=a10_0x43d681,_0x247daa=_0x30deff[_0x4198e5(0xb0)]('id'),_0x1f62d9=buildArtifactInput(_0x30deff);return dryRun(_0x4198e5(0x9f),_0x4198e5(0xcb)+_0x247daa+_0x4198e5(0xd2))[_0x4198e5(0xc2)]({'appCode':_0x30deff['appCode'],..._0x1f62d9})[_0x4198e5(0x99)](_0x4198e5(0xca)+_0x247daa)[_0x4198e5(0xdd)]();},'writeEventSubject'(_0x22556c){const _0x2813e=a10_0x43d681,_0xde1461=_0x22556c[_0x2813e(0xd4)]?.['id'];if(typeof _0xde1461!==_0x2813e(0xcd)&&typeof _0xde1461!==_0x2813e(0xe4))return undefined;return{'kind':'artifact','id':String(_0xde1461),'action':_0x2813e(0xa1)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0xcd61c5=a10_0x3568;(function(_0x283ad8,_0x546bde){const _0x4bd39e=a10_0x3568,_0x4712c6=_0x283ad8();while(!![]){try{const _0x51f466=-parseInt(_0x4bd39e(0x123))/0x1*(parseInt(_0x4bd39e(0xfe))/0x2)+-parseInt(_0x4bd39e(0x112))/0x3+parseInt(_0x4bd39e(0x13b))/0x4*(-parseInt(_0x4bd39e(0x137))/0x5)+-parseInt(_0x4bd39e(0x108))/0x6*(parseInt(_0x4bd39e(0x107))/0x7)+-parseInt(_0x4bd39e(0x13e))/0x8+parseInt(_0x4bd39e(0x13c))/0x9*(parseInt(_0x4bd39e(0x140))/0xa)+parseInt(_0x4bd39e(0x11a))/0xb;if(_0x51f466===_0x546bde)break;else _0x4712c6['push'](_0x4712c6['shift']());}catch(_0x2647de){_0x4712c6['push'](_0x4712c6['shift']());}}}(a10_0x1ce7,0x916dc));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_0xcd61c5(0x104),ALLOWED_REACT_MODULE_IMPORTS=['react',a10_0xcd61c5(0x130),a10_0xcd61c5(0x10e),a10_0xcd61c5(0x129),a10_0xcd61c5(0x124),'@ant-design/icons'];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0xcd61c5(0xfb)](',\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_0xcd61c5(0xf8),'type':a10_0xcd61c5(0x103),'required':!![],'description':a10_0xcd61c5(0x116)},ARTIFACT_NAME_FLAG={'name':a10_0xcd61c5(0x109),'type':a10_0xcd61c5(0x103),'description':'Artifact\x20display\x20name'},METADATA_FLAG={'name':a10_0xcd61c5(0x120),'type':a10_0xcd61c5(0x103),'description':a10_0xcd61c5(0xf5)};function isPlainObject(_0x5d9492){const _0x5eff7b=a10_0xcd61c5;return typeof _0x5d9492==='object'&&_0x5d9492!==null&&!Array[_0x5eff7b(0x10a)](_0x5d9492);}function readSourceFile(_0xc38928){const _0x17cc81=a10_0xcd61c5;if(!_0xc38928)throw CliErrors[_0x17cc81(0xf4)](_0x17cc81(0x136));if(!existsSync(_0xc38928))throw CliErrors['validation'](_0x17cc81(0x10c)+_0xc38928);if(!statSync(_0xc38928)[_0x17cc81(0x138)]())throw CliErrors[_0x17cc81(0xf4)](_0x17cc81(0x127)+_0xc38928);const _0xce1f09=readFileSync(_0xc38928,_0x17cc81(0x11d));return validateReactModuleSource(_0xce1f09),_0xce1f09;}function parseMetadata(_0x5d8522){const _0x9e12ec=a10_0xcd61c5;if(!_0x5d8522)return undefined;let _0x59902e;try{_0x59902e=JSON[_0x9e12ec(0x12c)](_0x5d8522);}catch{throw CliErrors[_0x9e12ec(0xf4)](_0x9e12ec(0x12e)+_0x5d8522);}if(!isPlainObject(_0x59902e))throw CliErrors[_0x9e12ec(0xf4)](_0x9e12ec(0x119));const _0x3fd75e={..._0x59902e};return delete _0x3fd75e[_0x9e12ec(0x12d)],_0x3fd75e;}function getPackageName(_0x15218e){const _0x2302a5=a10_0xcd61c5;if(_0x15218e['startsWith']('@')){const [_0x2163f4,_0x1aa485]=_0x15218e[_0x2302a5(0x101)]('/');return _0x2163f4&&_0x1aa485?_0x2163f4+'/'+_0x1aa485:_0x15218e;}return _0x15218e[_0x2302a5(0x101)]('/')[0x0]||_0x15218e;}function validateAllowedImports(_0x41ecca){const _0x11f4ef=a10_0xcd61c5,_0x36581e=new Set();for(const _0x3824fc of IMPORT_SOURCE_PATTERNS){_0x3824fc[_0x11f4ef(0x125)]=0x0;let _0x5f574a;while((_0x5f574a=_0x3824fc[_0x11f4ef(0x134)](_0x41ecca))!==null){const _0x5ab4fb=_0x5f574a[0x1]?.['trim']();_0x5ab4fb&&_0x36581e['add'](_0x5ab4fb);}}const _0x4ff0ba=[..._0x36581e][_0x11f4ef(0x106)](getPackageName)[_0x11f4ef(0xff)](_0x4b0397=>!ALLOWED_REACT_MODULE_IMPORTS[_0x11f4ef(0xf7)](_0x4b0397));if(_0x4ff0ba[_0x11f4ef(0x10f)]>0x0)throw CliErrors['validation']('react_module\x20imports\x20are\x20limited\x20to:\x20'+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x11f4ef(0x10b)+[...new Set(_0x4ff0ba)][_0x11f4ef(0xfb)](',\x20'));}function a10_0x1ce7(){const _0x462c9a=['build','dayjs','updateTime','Preview:\x20create\x20react_module\x20Artifact','parse','compiledContent','Invalid\x20JSON\x20for\x20--metadata:\x20','content','react-dom','artifactType','list','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','exec','List\x20current-app\x20react_module\x20Artifacts','File\x20path\x20is\x20required.','734915iPwhyy','isFile','detail','create','32gsMink','18eVuTpx','description','493568Qqrwek','Artifact\x20ID','3997330AjiaRj','validation','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','deleted','includes','file','/update','createTime','join','flag','data','22laRvNt','filter','POST','split','artifact','string','AGENT','bool','map','119QcNZLu','377562XOprcR','name','isArray','.\x20Unsupported:\x20','File\x20not\x20found:\x20','num','lodash','length','Show\x20one\x20Artifact\x20by\x20id','number','458862IonWTF','test','verbose','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','trim','str','--metadata\x20must\x20be\x20a\x20JSON\x20object.','35605559uKLbpP','appCode','favorite','utf8','source','Updated\x20Artifact\x20','metadata','/client/artifact/','read','89126XqHHWF','antd','lastIndex','Created\x20Artifact\x20','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a10_0x1ce7=function(){return _0x462c9a;};return a10_0x1ce7();}export function validateReactModuleSource(_0x2979c5){const _0x5deab3=a10_0xcd61c5;if(!_0x2979c5[_0x5deab3(0x117)]())throw CliErrors[_0x5deab3(0xf4)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS['some'](_0x36edd7=>_0x36edd7[_0x5deab3(0x113)](_0x2979c5)))throw CliErrors['validation']('react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.');validateAllowedImports(_0x2979c5);}function buildArtifactInput(_0x1c6c53){const _0xf32231=a10_0xcd61c5,_0xcd1454=readSourceFile(_0x1c6c53[_0xf32231(0x118)](_0xf32231(0xf8))),_0x4417a9=_0x1c6c53[_0xf32231(0x118)](_0xf32231(0x109))[_0xf32231(0x117)](),_0x872b40=parseMetadata(_0x1c6c53['str']('metadata'));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x4417a9?{'name':_0x4417a9}:{},'content':_0xcd1454,..._0x872b40?{'metadata':_0x872b40}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x29920d){const _0x554bab=a10_0xcd61c5;return{'id':_0x29920d['id'],'name':_0x29920d[_0x554bab(0x109)],'artifactType':_0x29920d[_0x554bab(0x131)],'source':_0x29920d[_0x554bab(0x11e)],'favorite':_0x29920d['favorite'],'deleted':_0x29920d[_0x554bab(0xf6)],'createTime':_0x29920d['createTime'],'updateTime':_0x29920d[_0x554bab(0x12a)]};}function detailArtifact(_0x1e480f){const _0x45c13f=a10_0xcd61c5;return{'id':_0x1e480f['id'],'appCode':_0x1e480f[_0x45c13f(0x11b)],'name':_0x1e480f[_0x45c13f(0x109)],'artifactType':_0x1e480f[_0x45c13f(0x131)],'source':_0x1e480f['source'],'favorite':_0x1e480f['favorite'],'deleted':_0x1e480f[_0x45c13f(0xf6)],'content':_0x1e480f[_0x45c13f(0x12f)]??'','compiledContent':_0x1e480f[_0x45c13f(0x12d)],'metadata':_0x1e480f['metadata']??{},'createTime':_0x1e480f[_0x45c13f(0xfa)],'updateTime':_0x1e480f['updateTime']};}function readFavoriteFlag(_0x283236){const _0x14e35d=a10_0xcd61c5,_0x4f0454=_0x283236[_0x14e35d(0xfc)](_0x14e35d(0x11c));return _0x4f0454===undefined||_0x4f0454===null||_0x4f0454===''?undefined:_0x283236[_0x14e35d(0x105)](_0x14e35d(0x11c));}function a10_0x3568(_0x521671,_0x531447){_0x521671=_0x521671-0xf4;const _0x1ce7dc=a10_0x1ce7();let _0x3568b5=_0x1ce7dc[_0x521671];return _0x3568b5;}const artifactList={'service':a10_0xcd61c5(0x102),'command':a10_0xcd61c5(0x132),'description':a10_0xcd61c5(0x135),'risk':a10_0xcd61c5(0x122),'flags':[{'name':a10_0xcd61c5(0x11e),'type':a10_0xcd61c5(0x103),'description':'Optional\x20source\x20filter,\x20for\x20example\x20AGENT'},{'name':a10_0xcd61c5(0x11c),'type':'boolean','description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x4697ba){const _0x5797f7=a10_0xcd61c5,_0x42522d=await listRuntimeArtifacts(_0x4697ba[_0x5797f7(0x11b)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x4697ba[_0x5797f7(0x118)]('source')?{'source':_0x4697ba[_0x5797f7(0x118)](_0x5797f7(0x11e))}:{},...readFavoriteFlag(_0x4697ba)!==undefined?{'favorite':readFavoriteFlag(_0x4697ba)}:{}});return{'ok':!![],'data':{'total':_0x42522d['length'],'items':_0x4697ba[_0x5797f7(0x105)](_0x5797f7(0x114))?_0x42522d:_0x42522d[_0x5797f7(0x106)](summarizeArtifact)}};}},artifactDetail={'service':a10_0xcd61c5(0x102),'command':a10_0xcd61c5(0x139),'description':a10_0xcd61c5(0x110),'risk':a10_0xcd61c5(0x122),'flags':[{...ID_FLAG,'description':a10_0xcd61c5(0x13f)}],async 'execute'(_0x563fa0){const _0x516a04=a10_0xcd61c5,_0x231447=await getRuntimeArtifact(_0x563fa0[_0x516a04(0x10d)]('id'),_0x563fa0[_0x516a04(0x11b)]);return{'ok':!![],'data':detailArtifact(_0x231447)};}},artifactCreate={'service':a10_0xcd61c5(0x102),'command':a10_0xcd61c5(0x13a),'description':'根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','risk':'write','confirmationDescription':a10_0xcd61c5(0x133),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5e3e8e){const _0x1d96aa=a10_0xcd61c5,_0x26d214=buildArtifactInput(_0x5e3e8e),_0x5c1907=await createRuntimeArtifact(_0x5e3e8e[_0x1d96aa(0x11b)],_0x26d214);return{'ok':!![],'data':detailArtifact(_0x5c1907),'message':_0x1d96aa(0x126)+_0x5c1907['id']+(_0x5c1907[_0x1d96aa(0x109)]?'\x20('+_0x5c1907[_0x1d96aa(0x109)]+')':'')};},async 'dryRun'(_0x40f09c){const _0x28c172=a10_0xcd61c5,_0x4e6f2d=buildArtifactInput(_0x40f09c);return dryRun(_0x28c172(0x100),'/client/artifact/create')['body']({'appCode':_0x40f09c[_0x28c172(0x11b)],..._0x4e6f2d})[_0x28c172(0x13d)](_0x28c172(0x12b))['build']();},'writeEventSubject'(_0xc37b57){const _0x322f55=a10_0xcd61c5,_0x2e1f31=_0xc37b57[_0x322f55(0xfd)]?.['id'];if(typeof _0x2e1f31!=='string'&&typeof _0x2e1f31!==_0x322f55(0x111))return undefined;return{'kind':_0x322f55(0x102),'id':String(_0x2e1f31),'action':'create'};}},artifactUpdate={'service':'artifact','command':'update','description':a10_0xcd61c5(0x115),'risk':'write','confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':a10_0xcd61c5(0x13f)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x34e9a0){const _0x1b87b1=a10_0xcd61c5,_0x472ea0=_0x34e9a0['num']('id'),_0xfd384a=buildArtifactInput(_0x34e9a0),_0xdfd307=await updateRuntimeArtifact(_0x472ea0,_0x34e9a0[_0x1b87b1(0x11b)],_0xfd384a);return{'ok':!![],'data':detailArtifact(_0xdfd307),'message':_0x1b87b1(0x11f)+_0xdfd307['id']+(_0xdfd307['name']?'\x20('+_0xdfd307[_0x1b87b1(0x109)]+')':'')};},async 'dryRun'(_0x1fe4f8){const _0x47476a=a10_0xcd61c5,_0x4b0894=_0x1fe4f8[_0x47476a(0x10d)]('id'),_0x15a5dc=buildArtifactInput(_0x1fe4f8);return dryRun(_0x47476a(0x100),_0x47476a(0x121)+_0x4b0894+_0x47476a(0xf9))['body']({'appCode':_0x1fe4f8[_0x47476a(0x11b)],..._0x15a5dc})[_0x47476a(0x13d)]('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x4b0894)[_0x47476a(0x128)]();},'writeEventSubject'(_0xfc2687){const _0x2ceea3=a10_0xcd61c5,_0x296230=_0xfc2687[_0x2ceea3(0xfd)]?.['id'];if(typeof _0x296230!==_0x2ceea3(0x103)&&typeof _0x296230!==_0x2ceea3(0x111))return undefined;return{'kind':_0x2ceea3(0x102),'id':String(_0x296230),'action':'update'};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x35761e=a11_0x12e9;(function(_0x4138fd,_0x301184){const _0x5718fa=a11_0x12e9,_0xa6c990=_0x4138fd();while(!![]){try{const _0x4a89c8=-parseInt(_0x5718fa(0xa2))/0x1+parseInt(_0x5718fa(0xc4))/0x2*(-parseInt(_0x5718fa(0xcd))/0x3)+-parseInt(_0x5718fa(0xd8))/0x4+parseInt(_0x5718fa(0xda))/0x5*(-parseInt(_0x5718fa(0xc3))/0x6)+-parseInt(_0x5718fa(0x98))/0x7+-parseInt(_0x5718fa(0xa7))/0x8+parseInt(_0x5718fa(0xcf))/0x9;if(_0x4a89c8===_0x301184)break;else _0xa6c990['push'](_0xa6c990['shift']());}catch(_0x39a846){_0xa6c990['push'](_0xa6c990['shift']());}}}(a11_0x42d5,0xca82b));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';function a11_0x12e9(_0x48f803,_0x41d189){_0x48f803=_0x48f803-0x91;const _0x42d571=a11_0x42d5();let _0x12e9bf=_0x42d571[_0x48f803];return _0x12e9bf;}import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x85d42b){const _0x539f6f=a11_0x12e9;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x85d42b[_0x539f6f(0xdd)](_0x539f6f(0xa4)),'explicitProject':_0x85d42b[_0x539f6f(0xdd)]('project'),'policy':_0x539f6f(0xcb)}));}const ACCESS_KEY_PATTERN=/^ak_[A-Za-z0-9]{16,}$/,DEVICE_CODE_TTL_MS=0x927c0,POLL_INTERVAL_MS=0xbb8,MAX_POLLS=0xc8,MAX_CONSECUTIVE_NETWORK_ERRORS=0x5;export function generateDeviceCode(){const _0x54095b=a11_0x12e9;return crypto[_0x54095b(0xb3)]();}export function buildDeviceAuthUrl(_0x103b90,_0x1feb83,_0x1460f5=a11_0x35761e(0xbd)){const _0x4241f0=a11_0x35761e;return _0x103b90+_0x4241f0(0xc6)+encodeURIComponent(_0x1feb83)+_0x4241f0(0xca)+encodeURIComponent(_0x1460f5);}export function getDeviceCodePath(){const _0x511c04=a11_0x35761e;return homedir()+'/'+PRODUCT_CONFIG[_0x511c04(0x93)]+_0x511c04(0xbf);}function a11_0x42d5(){const _0x22388a=['将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','bool','device','Device\x20auth\x20API\x20returned\x20HTTP\x20','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','str','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','expired','removeListener','homeDirName','\x20config.','Device\x20authorization\x20cancelled.','data','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','7838565OdtYIP','source','json','url-only','stringify','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','validation','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','SIGINT','nonInteractive','179545miiyVZ','AccessKey\x20saved\x20to\x20','global','cancelled','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','841456tBkATX','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','aborted','toISOString','code','accessKey','networkError','stderr','test','AbortError','padStart','utf8','randomUUID','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','trim','status','\x0dWaiting\x20for\x20authorization...\x20','Device\x20auth\x20API\x20error\x20(','apiError','Verify:\x20','signal','POST','lovrabet-cli','Invalid\x20device\x20auth\x20response','/.device-auth','string','success','Write\x20to\x20project\x20config','708666QyjvwQ','158734HBsAsG','Device\x20authorization\x20successful.','/device-auth?code=','\x20auth\x20status','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','boolean','&source=','global-default','/api/device-auth/token','39FfDmTw','access_key','55910673zbGEtE','project','object','Invalid\x20access_key\x20returned\x20by\x20server.','scope','Write\x20to\x20global\x20config\x20(default)','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','floor','name','5171868vjUQah','abort','70LzYpad','createdAt'];a11_0x42d5=function(){return _0x22388a;};return a11_0x42d5();}export function readStoredDeviceCode(){const _0x28536e=a11_0x35761e,_0x12a288=getDeviceCodePath();if(!existsSync(_0x12a288))return null;try{const _0x29c26f=readFileSync(_0x12a288,{'encoding':_0x28536e(0xb2)}),_0x56726c=JSON['parse'](_0x29c26f);if(_0x56726c&&typeof _0x56726c[_0x28536e(0xab)]===_0x28536e(0xc0)&&typeof _0x56726c['createdAt']===_0x28536e(0xc0)&&(_0x56726c[_0x28536e(0xd3)]==='global'||_0x56726c[_0x28536e(0xd3)]===_0x28536e(0xd0)))return _0x56726c;}catch{}return null;}export function writeStoredDeviceCode(_0x3aa1fc,_0x132b04){const _0x2e9d64=a11_0x35761e,_0x32f0ad=getDeviceCodePath(),_0x438e98=dirname(_0x32f0ad);!existsSync(_0x438e98)&&mkdirSync(_0x438e98,{'recursive':!![]});const _0x41abfc={'code':_0x3aa1fc,'createdAt':new Date()[_0x2e9d64(0xaa)](),'scope':_0x132b04};writeFileSync(_0x32f0ad,JSON[_0x2e9d64(0x9c)](_0x41abfc),{'encoding':'utf8','mode':0x180});}export function deleteStoredDeviceCode(){const _0x14cbf3=getDeviceCodePath();try{unlinkSync(_0x14cbf3);}catch{}}export function isStoredDeviceCodeExpired(_0x7f9886){const _0x39bc1e=a11_0x35761e;return Date['now']()-new Date(_0x7f9886[_0x39bc1e(0xdb)])['getTime']()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x50aee9,_0x4947a6){const _0x5e8dbd=a11_0x35761e,_0x27e8f1=_0x50aee9+_0x5e8dbd(0xcc),_0xb1caca=new AbortController(),_0x2d13e3=setTimeout(()=>_0xb1caca[_0x5e8dbd(0xd9)](),0x2710),_0x13b4be=await fetch(_0x27e8f1,{'method':_0x5e8dbd(0xbc),'headers':{'Content-Type':'application/json'},'body':JSON[_0x5e8dbd(0x9c)]({'code':_0x4947a6}),'signal':_0xb1caca[_0x5e8dbd(0xbb)]});clearTimeout(_0x2d13e3);if(!_0x13b4be['ok'])throw CliErrors['networkError'](_0x5e8dbd(0xdf)+_0x13b4be[_0x5e8dbd(0xb6)]);const _0x464048=await _0x13b4be[_0x5e8dbd(0x9a)](),_0x2a26d6=_0x464048[_0x5e8dbd(0x96)]&&typeof _0x464048[_0x5e8dbd(0x96)]===_0x5e8dbd(0xd1)?_0x464048[_0x5e8dbd(0x96)]:_0x464048;if(!_0x2a26d6||typeof _0x2a26d6['status']!==_0x5e8dbd(0xc0))throw CliErrors[_0x5e8dbd(0xb9)](_0x5e8dbd(0xbe));return{'status':_0x2a26d6[_0x5e8dbd(0xb6)],'access_key':typeof _0x2a26d6[_0x5e8dbd(0xce)]===_0x5e8dbd(0xc0)?_0x2a26d6['access_key']:undefined};}export async function pollDeviceToken(_0x2c02c9,_0x28e839,_0x448477){const _0x2b006b=a11_0x35761e;let _0x2d9b8e=0x0;for(let _0x4ee41d=0x0;_0x4ee41d<MAX_POLLS;_0x4ee41d++){if(_0x448477[_0x2b006b(0xa9)])throw CliErrors[_0x2b006b(0xa5)](_0x2b006b(0x95));let _0x52ac8b;try{_0x52ac8b=await fetchDeviceToken(_0x2c02c9,_0x28e839);}catch(_0x1ae196){if(_0x1ae196 instanceof Error&&_0x1ae196[_0x2b006b(0xd7)]===_0x2b006b(0xb0))throw CliErrors[_0x2b006b(0xa5)](_0x2b006b(0x95));_0x2d9b8e++;if(_0x2d9b8e>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x2b006b(0xad)](_0x2b006b(0xa6));writeCliSideChannelLine(_0x2b006b(0xb8)+_0x2d9b8e+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0x2d9b8e=0x0;if(_0x52ac8b[_0x2b006b(0xb6)]===_0x2b006b(0xc1)){if(!_0x52ac8b[_0x2b006b(0xce)])throw CliErrors[_0x2b006b(0xb9)](_0x2b006b(0xd2));return _0x52ac8b[_0x2b006b(0xce)];}if(_0x52ac8b['status']===_0x2b006b(0x91)){deleteStoredDeviceCode();throw CliErrors[_0x2b006b(0x9e)](_0x2b006b(0xc8));}const _0x52f208=(_0x4ee41d+0x1)*POLL_INTERVAL_MS,_0x4e586b=DEVICE_CODE_TTL_MS-_0x52f208,_0x2977d4=Math[_0x2b006b(0xd6)](_0x4e586b/0xea60),_0x311b61=Math[_0x2b006b(0xd6)](_0x4e586b%0xea60/0x3e8);process[_0x2b006b(0xae)]['write'](_0x2b006b(0xb7)+_0x2977d4+':'+String(_0x311b61)[_0x2b006b(0xb1)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors['validation']('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function sleep(_0x553268){return new Promise(_0x119058=>setTimeout(_0x119058,_0x553268));}export const authDeviceDefinition={'service':'auth','command':a11_0x35761e(0xde),'description':a11_0x35761e(0x9d),'risk':'write','confirmationDescription':a11_0x35761e(0xdc),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'global','type':'boolean','description':a11_0x35761e(0xd4),'default':!![]},{'name':a11_0x35761e(0xd0),'type':'boolean','description':a11_0x35761e(0xc2),'default':![]},{'name':'source','type':a11_0x35761e(0xc0),'description':a11_0x35761e(0xe2),'default':a11_0x35761e(0xbd)},{'name':a11_0x35761e(0x9b),'type':a11_0x35761e(0xc9),'description':a11_0x35761e(0x9f),'default':![]}],async 'execute'(_0x234fa4){const _0x108bd9=a11_0x35761e,_0xaec553=resolveAuthScopeFlags(_0x234fa4),_0x331f10=_0xaec553[_0x108bd9(0xa4)]?_0x108bd9(0xa4):'project',_0x84d756=readScopedConfig(_0xaec553);if(_0x84d756['accessKey'])return{'ok':!![],'message':_0x108bd9(0xe0)};const _0x4ce1e7=(_0x234fa4[_0x108bd9(0xe1)](_0x108bd9(0x99))||'lovrabet-cli')[_0x108bd9(0xb5)](),_0x26aabe=getUserDomain(),_0x28361d=readStoredDeviceCode(),_0xfeef7e=_0x28361d&&!isStoredDeviceCodeExpired(_0x28361d)?_0x28361d[_0x108bd9(0xab)]:((()=>{const _0x676183=generateDeviceCode();return writeStoredDeviceCode(_0x676183,_0x331f10),_0x676183;})()),_0x3f32c8=buildDeviceAuthUrl(_0x26aabe,_0xfeef7e,_0x4ce1e7);if(_0x234fa4[_0x108bd9(0xdd)](_0x108bd9(0x9b)))return console['log'](_0x3f32c8),{'ok':!![]};writeCliSideChannelLine(_0x108bd9(0xd5)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x3f32c8),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x108bd9(0xa8));if(_0x234fa4[_0x108bd9(0xa1)])return writeCliSideChannelLine('After\x20authorizing,\x20re-run:\x20'+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x108bd9(0xb4)};writeCliSideChannelLine(_0x108bd9(0x97));const _0x436c2b=new AbortController(),_0x41a805=()=>{const _0x3e8255=_0x108bd9;_0x436c2b['abort'](),process['removeListener'](_0x3e8255(0xa0),_0x41a805);};process['once'](_0x108bd9(0xa0),_0x41a805);let _0x5c5370;try{_0x5c5370=await pollDeviceToken(_0x26aabe,_0xfeef7e,_0x436c2b['signal']);}finally{process[_0x108bd9(0x92)]('SIGINT',_0x41a805);}if(!ACCESS_KEY_PATTERN[_0x108bd9(0xaf)](_0x5c5370))throw CliErrors[_0x108bd9(0xb9)](_0x108bd9(0xd2));const _0x1c562c=readScopedConfig(_0xaec553);return _0x1c562c[_0x108bd9(0xac)]=_0x5c5370,writeScopedConfig(_0x1c562c,_0xaec553),deleteStoredDeviceCode(),process[_0x108bd9(0xae)]['write']('\x0a'),writeCliSideChannelLine(_0x108bd9(0xa3)+_0x331f10+_0x108bd9(0x94)),writeCliSideChannelLine(_0x108bd9(0xba)+CLI_BIN_NAME+_0x108bd9(0xc7)),{'ok':!![],'message':_0x108bd9(0xc5)};}};
|
|
1
|
+
const a11_0x41f171=a11_0x14a0;(function(_0x4118d2,_0x4636eb){const _0x1460f3=a11_0x14a0,_0x59a61c=_0x4118d2();while(!![]){try{const _0x337bed=-parseInt(_0x1460f3(0x1e3))/0x1*(-parseInt(_0x1460f3(0x1b1))/0x2)+-parseInt(_0x1460f3(0x1a1))/0x3*(parseInt(_0x1460f3(0x1a0))/0x4)+-parseInt(_0x1460f3(0x1ab))/0x5*(-parseInt(_0x1460f3(0x1a7))/0x6)+-parseInt(_0x1460f3(0x1d2))/0x7+parseInt(_0x1460f3(0x1d5))/0x8+-parseInt(_0x1460f3(0x1c9))/0x9+parseInt(_0x1460f3(0x1da))/0xa*(parseInt(_0x1460f3(0x1b2))/0xb);if(_0x337bed===_0x4636eb)break;else _0x59a61c['push'](_0x59a61c['shift']());}catch(_0x5c3836){_0x59a61c['push'](_0x59a61c['shift']());}}}(a11_0x2460,0x86444));function a11_0x14a0(_0x3c51e3,_0x398bca){_0x3c51e3=_0x3c51e3-0x19f;const _0x246000=a11_0x2460();let _0x14a00e=_0x246000[_0x3c51e3];return _0x14a00e;}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(_0x31dd5f){const _0x3a718f=a11_0x14a0;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x31dd5f['bool']('global'),'explicitProject':_0x31dd5f[_0x3a718f(0x1a8)](_0x3a718f(0x1b4)),'policy':'global-default'}));}function a11_0x2460(){const _0x29b154=['name','code','boolean','SIGINT','accessKey','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','AbortError','application/json','expired','apiError','/api/device-auth/token','log','6094143mXvkpL','AccessKey\x20saved\x20to\x20','homeDirName','source','cancelled','getTime','\x20auth\x20status','Device\x20authorization\x20successful.','now','4799851QoEPiC','networkError','validation','2737656JDGFYs','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','/device-auth?code=','toISOString','/.device-auth','4733790lHChaV','\x20remaining','utf8','lovrabet-cli','aborted','&source=','device','string','nonInteractive','1hFAgLv','floor','trim','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','url-only','json','Invalid\x20access_key\x20returned\x20by\x20server.','Device\x20auth\x20API\x20error\x20(','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','Device\x20authorization\x20cancelled.','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','Write\x20to\x20project\x20config','20NFGjly','526053fWMNMk','abort','scope','randomUUID','Write\x20to\x20global\x20config\x20(default)','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','72834AZkohs','bool','\x0dWaiting\x20for\x20authorization...\x20','access_key','295xaIJzb','global','removeListener','After\x20authorizing,\x20re-run:\x20','status','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','1568730PRhIqR','22dJcMRo','padStart','project','signal','stringify','test','createdAt','stderr','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','data','write'];a11_0x2460=function(){return _0x29b154;};return a11_0x2460();}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 _0x4efaf5=a11_0x14a0;return crypto[_0x4efaf5(0x1a4)]();}export function buildDeviceAuthUrl(_0x2e914e,_0x4e7202,_0x397ecb=a11_0x41f171(0x1dd)){const _0x4d83c3=a11_0x41f171;return _0x2e914e+_0x4d83c3(0x1d7)+encodeURIComponent(_0x4e7202)+_0x4d83c3(0x1df)+encodeURIComponent(_0x397ecb);}export function getDeviceCodePath(){const _0x46b57b=a11_0x41f171;return homedir()+'/'+PRODUCT_CONFIG[_0x46b57b(0x1cb)]+_0x46b57b(0x1d9);}export function readStoredDeviceCode(){const _0x2a579e=a11_0x41f171,_0x2d4109=getDeviceCodePath();if(!existsSync(_0x2d4109))return null;try{const _0x2b1b6d=readFileSync(_0x2d4109,{'encoding':'utf8'}),_0x401ea4=JSON['parse'](_0x2b1b6d);if(_0x401ea4&&typeof _0x401ea4[_0x2a579e(0x1be)]===_0x2a579e(0x1e1)&&typeof _0x401ea4[_0x2a579e(0x1b8)]===_0x2a579e(0x1e1)&&(_0x401ea4[_0x2a579e(0x1a3)]==='global'||_0x401ea4['scope']==='project'))return _0x401ea4;}catch{}return null;}export function writeStoredDeviceCode(_0x136e49,_0x3eb65c){const _0x348ac3=a11_0x41f171,_0x1ed657=getDeviceCodePath(),_0x4ba580=dirname(_0x1ed657);!existsSync(_0x4ba580)&&mkdirSync(_0x4ba580,{'recursive':!![]});const _0x3da4b9={'code':_0x136e49,'createdAt':new Date()[_0x348ac3(0x1d8)](),'scope':_0x3eb65c};writeFileSync(_0x1ed657,JSON[_0x348ac3(0x1b6)](_0x3da4b9),{'encoding':_0x348ac3(0x1dc),'mode':0x180});}export function deleteStoredDeviceCode(){const _0xb96ffe=getDeviceCodePath();try{unlinkSync(_0xb96ffe);}catch{}}export function isStoredDeviceCodeExpired(_0x1505a7){const _0xff4103=a11_0x41f171;return Date[_0xff4103(0x1d1)]()-new Date(_0x1505a7[_0xff4103(0x1b8)])[_0xff4103(0x1ce)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x31f6b5,_0x54b3bc){const _0x4084d2=a11_0x41f171,_0x2ca831=_0x31f6b5+_0x4084d2(0x1c7),_0x54e538=new AbortController(),_0x4e0fbd=setTimeout(()=>_0x54e538[_0x4084d2(0x1a2)](),0x2710),_0x2e8c07=await fetch(_0x2ca831,{'method':'POST','headers':{'Content-Type':_0x4084d2(0x1c4)},'body':JSON[_0x4084d2(0x1b6)]({'code':_0x54b3bc}),'signal':_0x54e538[_0x4084d2(0x1b5)]});clearTimeout(_0x4e0fbd);if(!_0x2e8c07['ok'])throw CliErrors[_0x4084d2(0x1d3)]('Device\x20auth\x20API\x20returned\x20HTTP\x20'+_0x2e8c07['status']);const _0xb23f09=await _0x2e8c07[_0x4084d2(0x1e8)](),_0x5adbd5=_0xb23f09[_0x4084d2(0x1bb)]&&typeof _0xb23f09[_0x4084d2(0x1bb)]==='object'?_0xb23f09[_0x4084d2(0x1bb)]:_0xb23f09;if(!_0x5adbd5||typeof _0x5adbd5['status']!==_0x4084d2(0x1e1))throw CliErrors[_0x4084d2(0x1c6)]('Invalid\x20device\x20auth\x20response');return{'status':_0x5adbd5[_0x4084d2(0x1af)],'access_key':typeof _0x5adbd5['access_key']===_0x4084d2(0x1e1)?_0x5adbd5['access_key']:undefined};}export async function pollDeviceToken(_0x1bb5d3,_0xfac910,_0x34d2f0){const _0x590831=a11_0x41f171;let _0x5181a4=0x0;for(let _0x4cbeb5=0x0;_0x4cbeb5<MAX_POLLS;_0x4cbeb5++){if(_0x34d2f0[_0x590831(0x1de)])throw CliErrors[_0x590831(0x1cd)]('Device\x20authorization\x20cancelled.');let _0x32d858;try{_0x32d858=await fetchDeviceToken(_0x1bb5d3,_0xfac910);}catch(_0x5930ae){if(_0x5930ae instanceof Error&&_0x5930ae[_0x590831(0x1bd)]===_0x590831(0x1c3))throw CliErrors[_0x590831(0x1cd)](_0x590831(0x1ed));_0x5181a4++;if(_0x5181a4>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x590831(0x1d3)]('Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.');writeCliSideChannelLine(_0x590831(0x1ea)+_0x5181a4+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0x5181a4=0x0;if(_0x32d858[_0x590831(0x1af)]==='success'){if(!_0x32d858[_0x590831(0x1aa)])throw CliErrors[_0x590831(0x1c6)](_0x590831(0x1e9));return _0x32d858['access_key'];}if(_0x32d858[_0x590831(0x1af)]===_0x590831(0x1c5)){deleteStoredDeviceCode();throw CliErrors['validation'](_0x590831(0x1c2));}const _0x5d9ac7=(_0x4cbeb5+0x1)*POLL_INTERVAL_MS,_0x2fd52f=DEVICE_CODE_TTL_MS-_0x5d9ac7,_0x16fa52=Math[_0x590831(0x1e4)](_0x2fd52f/0xea60),_0x5c0173=Math[_0x590831(0x1e4)](_0x2fd52f%0xea60/0x3e8);process[_0x590831(0x1b9)][_0x590831(0x1bc)](_0x590831(0x1a9)+_0x16fa52+':'+String(_0x5c0173)[_0x590831(0x1b3)](0x2,'0')+_0x590831(0x1db)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x590831(0x1d4)](_0x590831(0x1e6));}function sleep(_0xc6b5ab){return new Promise(_0x23583=>setTimeout(_0x23583,_0xc6b5ab));}export const authDeviceDefinition={'service':'auth','command':a11_0x41f171(0x1e0),'description':a11_0x41f171(0x1ba),'risk':'write','confirmationDescription':a11_0x41f171(0x1d6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x41f171(0x1ac),'type':a11_0x41f171(0x1bf),'description':a11_0x41f171(0x1a5),'default':!![]},{'name':a11_0x41f171(0x1b4),'type':a11_0x41f171(0x1bf),'description':a11_0x41f171(0x19f),'default':![]},{'name':a11_0x41f171(0x1cc),'type':a11_0x41f171(0x1e1),'description':a11_0x41f171(0x1a6),'default':a11_0x41f171(0x1dd)},{'name':a11_0x41f171(0x1e7),'type':'boolean','description':a11_0x41f171(0x1b0),'default':![]}],async 'execute'(_0x25256d){const _0x245d94=a11_0x41f171,_0xb90ac7=resolveAuthScopeFlags(_0x25256d),_0x1a0547=_0xb90ac7['global']?'global':_0x245d94(0x1b4),_0x8cdc50=readScopedConfig(_0xb90ac7);if(_0x8cdc50[_0x245d94(0x1c1)])return{'ok':!![],'message':_0x245d94(0x1ee)};const _0x589163=(_0x25256d['str']('source')||_0x245d94(0x1dd))[_0x245d94(0x1e5)](),_0x2b5f73=getUserDomain(),_0x5d451c=readStoredDeviceCode(),_0x290af0=_0x5d451c&&!isStoredDeviceCodeExpired(_0x5d451c)?_0x5d451c[_0x245d94(0x1be)]:((()=>{const _0x2333cc=generateDeviceCode();return writeStoredDeviceCode(_0x2333cc,_0x1a0547),_0x2333cc;})()),_0x4a7200=buildDeviceAuthUrl(_0x2b5f73,_0x290af0,_0x589163);if(_0x25256d[_0x245d94(0x1a8)](_0x245d94(0x1e7)))return console[_0x245d94(0x1c8)](_0x4a7200),{'ok':!![]};writeCliSideChannelLine(_0x245d94(0x1eb)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x4a7200),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x245d94(0x1ec));if(_0x25256d[_0x245d94(0x1e2)])return writeCliSideChannelLine(_0x245d94(0x1ae)+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0xc6ffa8=new AbortController(),_0x3e4b4f=()=>{const _0x7900af=_0x245d94;_0xc6ffa8[_0x7900af(0x1a2)](),process[_0x7900af(0x1ad)]('SIGINT',_0x3e4b4f);};process['once']('SIGINT',_0x3e4b4f);let _0x185ec9;try{_0x185ec9=await pollDeviceToken(_0x2b5f73,_0x290af0,_0xc6ffa8[_0x245d94(0x1b5)]);}finally{process[_0x245d94(0x1ad)](_0x245d94(0x1c0),_0x3e4b4f);}if(!ACCESS_KEY_PATTERN[_0x245d94(0x1b7)](_0x185ec9))throw CliErrors['apiError'](_0x245d94(0x1e9));const _0x2dc7cb=readScopedConfig(_0xb90ac7);return _0x2dc7cb[_0x245d94(0x1c1)]=_0x185ec9,writeScopedConfig(_0x2dc7cb,_0xb90ac7),deleteStoredDeviceCode(),process[_0x245d94(0x1b9)][_0x245d94(0x1bc)]('\x0a'),writeCliSideChannelLine(_0x245d94(0x1ca)+_0x1a0547+'\x20config.'),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+_0x245d94(0x1cf)),{'ok':!![],'message':_0x245d94(0x1d0)};}};
|