@lovrabet/lovrabet-cli 2.2.6 → 2.2.7
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.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/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.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 +1 -1
- package/skills/lovrabet.manifest.json +3 -3
package/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
(function(
|
|
2
|
+
const a0_0x1b4136=a0_0x4a9e;(function(_0x2461d0,_0x33ce3a){const _0x5409c3=a0_0x4a9e,_0x4316bc=_0x2461d0();while(!![]){try{const _0x5d3cb1=-parseInt(_0x5409c3(0xa5))/0x1+-parseInt(_0x5409c3(0xa8))/0x2*(parseInt(_0x5409c3(0xad))/0x3)+parseInt(_0x5409c3(0xb4))/0x4*(parseInt(_0x5409c3(0xb2))/0x5)+-parseInt(_0x5409c3(0xc5))/0x6+parseInt(_0x5409c3(0xcc))/0x7*(-parseInt(_0x5409c3(0xd0))/0x8)+-parseInt(_0x5409c3(0xc9))/0x9+parseInt(_0x5409c3(0xab))/0xa;if(_0x5d3cb1===_0x33ce3a)break;else _0x4316bc['push'](_0x4316bc['shift']());}catch(_0x5ee158){_0x4316bc['push'](_0x4316bc['shift']());}}}(a0_0x5a10,0xc2f10));import{jsx as a0_0x366cf2}from'react/jsx-runtime';import a0_0x216347 from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';import{runCommand,createPipelineEnv}from'./framework/runner.js';import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';import{buildMeowFlags}from'./constant/cli.js';function a0_0x4a9e(_0x2fb14d,_0x12a7b4){_0x2fb14d=_0x2fb14d-0xa3;const _0x5a1088=a0_0x5a10();let _0x4a9e20=_0x5a1088[_0x2fb14d];return _0x4a9e20;}import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x216347(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});function a0_0x5a10(){const _0x55a01b=['unknownCommand','339135GDNtWp','name','ExitPromptError','80csEEbD','assign','original','35697690oTwSbZ','Error:\x20','70779HdlJlG','corrected','flags','validation','\x0aCancelled.\x0a','852715gaYUYh','slice','16hRtYmc','input','args','definition','help','catch','cancelled','error','[preparse]\x20','defaultCommand','code','ERR_USE_AFTER_CLOSE','Hint:\x20','exitCode','flatMap','handler','./framework/preparse.js','2862726LDlmGB','ERR_STREAM_DESTROYED','log','Unexpected\x20error:','11485980ZcsdKS','hint','message','119lGomLI','write','exit','stderr','196360xdLfoe','\x20->\x20--'];a0_0x5a10=function(){return _0x55a01b;};return a0_0x5a10();}void main()[a0_0x1b4136(0xb9)](handleError);async function main(){try{await run();}catch(_0x54f771){handleError(_0x54f771);}}async function run(){const _0x21554d=a0_0x1b4136;let _0x5d46f8=cli[_0x21554d(0xb5)][0x0],_0x4b87b7=cli[_0x21554d(0xb5)][0x1];const _0x20a1e6=cli['flags'];try{const {correctFlags:_0xeb434d}=await import(_0x21554d(0xc4)),_0x2751b6=getAllDefinitions()[_0x21554d(0xc2)](_0x1607ee=>_0x1607ee['flags']??[]),{flags:_0x5b0a85,corrections:_0x2af2f1}=_0xeb434d(_0x20a1e6,_0x2751b6);if(_0x2af2f1['length']>0x0){for(const _0x2df010 of _0x2af2f1){process[_0x21554d(0xcf)]['write'](_0x21554d(0xbc)+_0x2df010[_0x21554d(0xc3)]+':\x20--'+_0x2df010[_0x21554d(0xaa)]+_0x21554d(0xa3)+_0x2df010[_0x21554d(0xae)]+'\x0a');}Object[_0x21554d(0xa9)](_0x20a1e6,_0x5b0a85);}}catch{}if(!_0x5d46f8){const {waitUntilExit:_0x498fd7}=render(a0_0x366cf2(Help,{}));await _0x498fd7();return;}const _0x25a2e0=resolveRemovedCommand(_0x5d46f8,_0x4b87b7);if(_0x25a2e0)throw CliErrors[_0x21554d(0xb0)](_0x25a2e0[_0x21554d(0xcb)],_0x25a2e0[_0x21554d(0xca)]);if(!isKnownService(_0x5d46f8)){const _0x4525e3=resolveDynamicServiceCommand(cli[_0x21554d(0xb5)],_0x20a1e6);if(_0x4525e3){if(_0x20a1e6['help']){console[_0x21554d(0xc7)](generateCommandHelp(_0x4525e3[_0x21554d(0xb7)]));return;}Object[_0x21554d(0xa9)](_0x20a1e6,_0x4525e3[_0x21554d(0xaf)]);const _0x139cd7=buildConfigFromFlags(_0x20a1e6);await initGlobalEnvironment(_0x139cd7);const _0x2afe1f=createPipelineEnv(_0x139cd7,_0x20a1e6);_0x2afe1f[_0x21554d(0xb6)]=_0x4525e3['args'],await runCommand(_0x4525e3[_0x21554d(0xb7)],_0x2afe1f);return;}if(_0x20a1e6[_0x21554d(0xb8)]){const _0xafd43b=generateDynamicServiceHelp(_0x5d46f8);if(_0xafd43b){console[_0x21554d(0xc7)](_0xafd43b);return;}}const {waitUntilExit:_0x20b842}=render(a0_0x366cf2(Help,{}));await _0x20b842();return;}const _0x4f80dd=getServiceEntry(_0x5d46f8);if(!_0x4b87b7){if(_0x20a1e6[_0x21554d(0xb8)]){console['log'](generateServiceHelp(_0x5d46f8));return;}if(_0x4f80dd[_0x21554d(0xbd)])_0x4b87b7=_0x4f80dd[_0x21554d(0xbd)];else{console['log'](generateServiceHelp(_0x5d46f8));return;}}const _0x2f8a77=findDefinition(_0x5d46f8,_0x4b87b7);!_0x2f8a77&&(console[_0x21554d(0xc7)](generateServiceHelp(_0x5d46f8)),handleError(CliErrors[_0x21554d(0xa4)](_0x5d46f8+'\x20'+_0x4b87b7)));if(_0x20a1e6[_0x21554d(0xb8)]){console[_0x21554d(0xc7)](generateCommandHelp(_0x2f8a77));return;}const _0x520528=buildConfigFromFlags(_0x20a1e6);await initGlobalEnvironment(_0x520528);const _0xbb045=createPipelineEnv(_0x520528,_0x20a1e6);_0xbb045[_0x21554d(0xb6)]=cli['input'][_0x21554d(0xb3)](0x2),await runCommand(_0x2f8a77,_0xbb045);}function handleError(_0x5a0043){const _0x5d74c8=a0_0x1b4136;if(_0x5a0043 instanceof CliError){_0x5a0043[_0x5d74c8(0xbe)]===_0x5d74c8(0xba)&&(process[_0x5d74c8(0xcf)][_0x5d74c8(0xcd)](_0x5d74c8(0xb1)),process[_0x5d74c8(0xce)](0x0));console[_0x5d74c8(0xbb)](_0x5d74c8(0xac)+_0x5a0043[_0x5d74c8(0xcb)]);if(_0x5a0043[_0x5d74c8(0xca)])console[_0x5d74c8(0xbb)](_0x5d74c8(0xc0)+_0x5a0043[_0x5d74c8(0xca)]);process[_0x5d74c8(0xce)](_0x5a0043[_0x5d74c8(0xc1)]);}isUserCancellation(_0x5a0043)&&(process['stderr'][_0x5d74c8(0xcd)](_0x5d74c8(0xb1)),process[_0x5d74c8(0xce)](0x0)),console[_0x5d74c8(0xbb)](_0x5d74c8(0xc8),_0x5a0043),process[_0x5d74c8(0xce)](0x1);}function isUserCancellation(_0x2db4be){const _0x3453e7=a0_0x1b4136;if(!(_0x2db4be instanceof Error))return![];if(_0x2db4be[_0x3453e7(0xa6)]===_0x3453e7(0xa7))return!![];if(_0x2db4be[_0x3453e7(0xbe)]===_0x3453e7(0xbf))return!![];if(_0x2db4be['code']===_0x3453e7(0xc6))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x20ffdd=a1_0x4cee;function a1_0x4cee(_0x47b1bd,_0x13e375){_0x47b1bd=_0x47b1bd-0x18b;const _0x488edb=a1_0x488e();let _0x4ceefb=_0x488edb[_0x47b1bd];return _0x4ceefb;}(function(_0x5d446a,_0x3a0780){const _0xaf87=a1_0x4cee,_0x106dbf=_0x5d446a();while(!![]){try{const _0x3fe5c1=-parseInt(_0xaf87(0x204))/0x1*(-parseInt(_0xaf87(0x1fc))/0x2)+-parseInt(_0xaf87(0x206))/0x3*(parseInt(_0xaf87(0x1a8))/0x4)+-parseInt(_0xaf87(0x1e6))/0x5+parseInt(_0xaf87(0x201))/0x6+-parseInt(_0xaf87(0x1e8))/0x7+-parseInt(_0xaf87(0x1fa))/0x8*(parseInt(_0xaf87(0x1f7))/0x9)+parseInt(_0xaf87(0x19d))/0xa*(parseInt(_0xaf87(0x19e))/0xb);if(_0x3fe5c1===_0x3a0780)break;else _0x106dbf['push'](_0x106dbf['shift']());}catch(_0x14299a){_0x106dbf['push'](_0x106dbf['shift']());}}}(a1_0x488e,0x99e24));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x20ffdd(0x1ed),'type':a1_0x20ffdd(0x1c9),'description':a1_0x20ffdd(0x18e)},KEYWORD_FLAG={'name':'keyword','type':a1_0x20ffdd(0x1c9),'description':a1_0x20ffdd(0x1cb)},DOC_CODE_FLAG={'name':a1_0x20ffdd(0x1af),'type':a1_0x20ffdd(0x1c9),'required':!![],'description':a1_0x20ffdd(0x19b)},DOCS=[{'code':a1_0x20ffdd(0x1da),'category':'dataset','title':a1_0x20ffdd(0x1d0),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1ec),'summary':a1_0x20ffdd(0x1ff),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name',a1_0x20ffdd(0x1d7)],'examples':[a1_0x20ffdd(0x1d2)],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x20ffdd(0x1d3),'',a1_0x20ffdd(0x1e4)][a1_0x20ffdd(0x1db)]('\x0a')},{'code':'dataset_detail','category':a1_0x20ffdd(0x1e1),'title':a1_0x20ffdd(0x19a),'method':'GET','path':a1_0x20ffdd(0x1de),'summary':a1_0x20ffdd(0x1a2),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':a1_0x20ffdd(0x1af),'description':a1_0x20ffdd(0x202)}],'bodySchema':a1_0x20ffdd(0x1cc),'responseHighlights':[a1_0x20ffdd(0x19c),a1_0x20ffdd(0x1c0),a1_0x20ffdd(0x1fe)],'examples':[a1_0x20ffdd(0x1c2)],'notes':[a1_0x20ffdd(0x1d9)],'markdown':[a1_0x20ffdd(0x194),'',a1_0x20ffdd(0x1e9)][a1_0x20ffdd(0x1db)]('\x0a')},{'code':a1_0x20ffdd(0x1f4),'category':a1_0x20ffdd(0x1e1),'title':a1_0x20ffdd(0x1f6),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1b0),'summary':a1_0x20ffdd(0x18b),'whenToUse':a1_0x20ffdd(0x1f8),'pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':'datasetCode','description':a1_0x20ffdd(0x202)}],'queryParams':[],'bodySchema':'{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','responseHighlights':[a1_0x20ffdd(0x196),a1_0x20ffdd(0x1b9)],'examples':[a1_0x20ffdd(0x1e2),a1_0x20ffdd(0x192)],'notes':[a1_0x20ffdd(0x195),a1_0x20ffdd(0x1b1),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x20ffdd(0x1b7)],'markdown':[a1_0x20ffdd(0x1ae),'',a1_0x20ffdd(0x1ce)][a1_0x20ffdd(0x1db)]('\x0a')},{'code':a1_0x20ffdd(0x205),'category':a1_0x20ffdd(0x1e1),'title':'Aggregate\x20dataset\x20data','method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1a3),'summary':a1_0x20ffdd(0x1d5),'whenToUse':a1_0x20ffdd(0x1fd),'pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':'datasetCode','description':a1_0x20ffdd(0x202)}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1ad),'responseHighlights':[a1_0x20ffdd(0x1e0),'where\x20filters\x20before\x20aggregation'],'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_0x20ffdd(0x1b5),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0x20ffdd(0x1f9),'','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.']['join']('\x0a')},{'code':a1_0x20ffdd(0x1bb),'category':a1_0x20ffdd(0x1e1),'title':a1_0x20ffdd(0x1ea),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1c4),'summary':a1_0x20ffdd(0x1a6),'whenToUse':a1_0x20ffdd(0x200),'pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':a1_0x20ffdd(0x1ab),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':['Returns\x20one\x20matching\x20business\x20record'],'examples':[a1_0x20ffdd(0x191)],'notes':[a1_0x20ffdd(0x199)],'markdown':a1_0x20ffdd(0x1d8)},{'code':'dataset_data_create','category':a1_0x20ffdd(0x1e1),'title':'Create\x20dataset\x20record','method':'POST','path':a1_0x20ffdd(0x1bc),'summary':a1_0x20ffdd(0x198),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':a1_0x20ffdd(0x1ab),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1e5),'responseHighlights':[a1_0x20ffdd(0x1ac)],'examples':[a1_0x20ffdd(0x1c5)],'notes':[a1_0x20ffdd(0x18c)],'markdown':a1_0x20ffdd(0x1b4)},{'code':a1_0x20ffdd(0x1f1),'category':'bf','title':a1_0x20ffdd(0x1d6),'method':'GET','path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0x20ffdd(0x1c6),'whenToUse':a1_0x20ffdd(0x1e3),'pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':a1_0x20ffdd(0x197),'description':a1_0x20ffdd(0x1b6)}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1cc),'responseHighlights':[a1_0x20ffdd(0x1eb)],'examples':[a1_0x20ffdd(0x1b3)],'notes':['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20Backend\x20Function\x20definitions\x20or\x20expose\x20platform-only\x20fields.'],'markdown':a1_0x20ffdd(0x1cf)},{'code':a1_0x20ffdd(0x1bf),'category':'bf','title':a1_0x20ffdd(0x1c7),'method':a1_0x20ffdd(0x1d4),'path':a1_0x20ffdd(0x1dc),'summary':a1_0x20ffdd(0x1fb),'whenToUse':a1_0x20ffdd(0x1ca),'pathParams':[{'name':a1_0x20ffdd(0x1f3),'description':a1_0x20ffdd(0x203)},{'name':a1_0x20ffdd(0x197),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1be),'responseHighlights':[a1_0x20ffdd(0x18f)],'examples':[a1_0x20ffdd(0x1a0)],'notes':[a1_0x20ffdd(0x1a9)],'markdown':a1_0x20ffdd(0x1f2)},{'code':a1_0x20ffdd(0x1f0),'category':a1_0x20ffdd(0x1c8),'title':a1_0x20ffdd(0x1bd),'method':a1_0x20ffdd(0x1d4),'path':'/api/custom/executeSql','summary':a1_0x20ffdd(0x1a1),'whenToUse':a1_0x20ffdd(0x1d1),'pathParams':[],'queryParams':[],'bodySchema':a1_0x20ffdd(0x1ee),'responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':[a1_0x20ffdd(0x1a5)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x20ffdd(0x1dd)}];function entrySummary(_0x3002c7){const _0xce26f6=a1_0x20ffdd;return{'code':_0x3002c7[_0xce26f6(0x1af)],'category':_0x3002c7[_0xce26f6(0x1ed)],'method':_0x3002c7[_0xce26f6(0x1c3)],'path':_0x3002c7['path'],'summary':_0x3002c7[_0xce26f6(0x1aa)],'whenToUse':_0x3002c7[_0xce26f6(0x1df)]};}export function listApiDocEntries(_0x85518c={}){const _0x5d0f65=a1_0x20ffdd,_0x5706ce=String(_0x85518c[_0x5d0f65(0x1ed)]||'')[_0x5d0f65(0x1b2)](),_0x2d42bc=String(_0x85518c['keyword']||'')[_0x5d0f65(0x1b2)]()[_0x5d0f65(0x190)]();return DOCS[_0x5d0f65(0x1b8)](_0x5b3114=>{const _0x5017ff=_0x5d0f65;if(_0x5706ce&&_0x5b3114['category']!==_0x5706ce)return![];if(!_0x2d42bc)return!![];return[_0x5b3114[_0x5017ff(0x1af)],_0x5b3114[_0x5017ff(0x1ed)],_0x5b3114['method'],_0x5b3114[_0x5017ff(0x1e7)],_0x5b3114[_0x5017ff(0x1aa)],_0x5b3114[_0x5017ff(0x1df)],_0x5b3114[_0x5017ff(0x1ef)]][_0x5017ff(0x1db)]('\x20')['toLowerCase']()[_0x5017ff(0x1a7)](_0x2d42bc);})['map'](entrySummary);}function a1_0x488e(){const _0x3ad77b=['str','dataset_data_get_one','/api/{appCode}/{datasetCode}/create','Execute\x20custom\x20SQL','{\x22param\x22:\x22value\x22}','bf_execute','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','list','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','method','/api/{appCode}/{datasetCode}/getOne','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','按应用和函数名精确获取\x20BF\x20运行契约','Execute\x20BF\x20endpoint\x20function','custom_sql','string','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','None','detail','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','List\x20datasets','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','##\x20List\x20datasets','POST','聚合查询数据集数据','Get\x20BF\x20endpoint\x20function\x20contract','paging.totalCount\x20gives\x20total\x20rows','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','dataset_list','join','/api/endpoint/{appCode}/{functionName}','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','/api/dataset/getOneByCode?code={datasetCode}','whenToUse','result\x20rows\x20contain\x20aggregate\x20aliases','dataset','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','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','{\x22fieldName\x22:\x22value\x22}','6197535ftVzpv','path','711137mRouGp','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','Get\x20one\x20dataset\x20record','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','/api/dataset/get-dataset-list-by-app-code','category','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','title','custom_sql_execute','bf_detail','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','appCode','dataset_data_filter','length','Filter\x20dataset\x20data','85707sPCsZY','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','##\x20Aggregate\x20dataset\x20data','736YcDNST','执行指定\x20BF\x20函数','1156922VvFUkr','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','operations\x20describes\x20runtime\x20APIs','分页获取数据集列表','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','3392862bUhPOn','32-character\x20dataset\x20code','Current\x20app\x20code','1mDFuGb','dataset_data_aggregate','507hQjTBf','条件过滤查询数据','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','api-doc','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','Returns\x20script\x20business\x20payload','toLowerCase','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','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','List\x20available\x20runtime\x20API\x20documentation\x20entries','##\x20Dataset\x20detail','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','tableData\x20contains\x20records','functionName','创建数据','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','Dataset\x20detail','API\x20doc\x20code,\x20for\x20example\x20dataset_list','fields/properties\x20describe\x20data\x20shape','24612110tImnLI','11REUwNl','Show\x20runtime\x20API\x20documentation\x20by\x20code','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','执行自定义\x20SQL','获取数据集详情','/api/{appCode}/{datasetCode}/aggregate','API\x20doc\x20code\x20not\x20found:\x20','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','查询单条数据','includes','17932EdSdWy','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','summary','datasetCode','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','##\x20Filter\x20dataset\x20data','code','/api/{appCode}/{datasetCode}/filter','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','trim','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','Exact\x20endpoint\x20function\x20name','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','filter','paging\x20contains\x20pagination'];a1_0x488e=function(){return _0x3ad77b;};return a1_0x488e();}export function getApiDocDetail(_0x4b9268){const _0xd703e0=a1_0x20ffdd,_0xae0e5c=DOCS['find'](_0x118400=>_0x118400[_0xd703e0(0x1af)]===_0x4b9268);if(!_0xae0e5c)throw CliErrors['validation'](_0xd703e0(0x1a4)+_0x4b9268);return{..._0xae0e5c};}const apiDocList={'service':a1_0x20ffdd(0x18d),'command':a1_0x20ffdd(0x1c1),'description':a1_0x20ffdd(0x193),'risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x1e6354){const _0x28ce1=a1_0x20ffdd,_0xe49ca8=listApiDocEntries({'category':_0x1e6354[_0x28ce1(0x1ba)](_0x28ce1(0x1ed)),'keyword':_0x1e6354[_0x28ce1(0x1ba)]('keyword')});return{'ok':!![],'data':{'total':_0xe49ca8[_0x28ce1(0x1f5)],'items':_0xe49ca8}};}},apiDocDetail={'service':a1_0x20ffdd(0x18d),'command':a1_0x20ffdd(0x1cd),'description':a1_0x20ffdd(0x19f),'risk':'read','requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x46ed16){const _0x436346=a1_0x20ffdd;return{'ok':!![],'data':getApiDocDetail(_0x46ed16[_0x436346(0x1ba)](_0x436346(0x1af)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
function a1_0x1429(_0x314d7f,_0x4f6985){_0x314d7f=_0x314d7f-0xd4;const _0x5ed712=a1_0x5ed7();let _0x14290e=_0x5ed712[_0x314d7f];return _0x14290e;}function a1_0x5ed7(){const _0x24b9a4=['执行指定\x20BF\x20函数','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','dataset','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','toLowerCase','16AJjOeY','10fqhXzX','fields/properties\x20describe\x20data\x20shape','5PEvrBj','summary','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','Current\x20app\x20code','Returns\x20SQL\x20execution\x20payload','Execute\x20BF\x20endpoint\x20function','Show\x20runtime\x20API\x20documentation\x20by\x20code','list','functionName','read','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','tableData\x20contains\x20dataset\x20id/code/name','创建数据','custom_sql','{\x22fieldName\x22:\x22value\x22}','bf_execute','获取数据集详情','join','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','/api/{appCode}/{datasetCode}/create','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','map','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','title','str','dataset_data_aggregate','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','77492kxJaoc','api-doc','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','Create\x20dataset\x20record','paging.totalCount\x20gives\x20total\x20rows','whenToUse','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','Get\x20one\x20dataset\x20record','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','filter','dataset_list','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','/api/dataset/get-dataset-list-by-app-code','dataset_data_filter','##\x20Filter\x20dataset\x20data','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20Backend\x20Function\x20definitions\x20or\x20expose\x20platform-only\x20fields.','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','/api/custom/executeSql','Aggregate\x20dataset\x20data','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','/api/{appCode}/{datasetCode}/aggregate','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','{\x22id\x22:123}','按应用和函数名精确获取\x20BF\x20运行契约','/client/bff/endpoint/{appCode}/{functionName}','tableData\x20contains\x20records','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','operations\x20describes\x20runtime\x20APIs','code','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','/api/{appCode}/{datasetCode}/filter','1882713wmOpmt','/api/dataset/getOneByCode?code={datasetCode}','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','result\x20rows\x20contain\x20aggregate\x20aliases','keyword','需要向指定数据集新增一条业务数据时使用','Execute\x20custom\x20SQL','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','paging\x20contains\x20pagination','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','method','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','30yebWwK','API\x20doc\x20code,\x20for\x20example\x20dataset_list','13257266hCQrgV','Get\x20BF\x20endpoint\x20function\x20contract','查询单条数据','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','##\x20List\x20datasets','string','执行自定义\x20SQL','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','appCode','4137136psVMwM','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','{\x22param\x22:\x22value\x22}','2574171YkKDri','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','8689167qLMZVl','category','POST','12jdcJgF','None','detail','分页获取数据集列表','datasetCode','bf_detail','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','trim','validation','List\x20datasets','includes','Endpoint\x20function\x20name','GET','Returns\x20script\x20business\x20payload','32-character\x20dataset\x20code','5084268zlGBfh','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','/api/{appCode}/{datasetCode}/getOne','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','##\x20Aggregate\x20dataset\x20data','length'];a1_0x5ed7=function(){return _0x24b9a4;};return a1_0x5ed7();}const a1_0x33fc20=a1_0x1429;(function(_0x490189,_0x3f109){const _0x3752c6=a1_0x1429,_0x47c25f=_0x490189();while(!![]){try{const _0x1e354e=-parseInt(_0x3752c6(0x130))/0x1*(-parseInt(_0x3752c6(0x10f))/0x2)+-parseInt(_0x3752c6(0xeb))/0x3+-parseInt(_0x3752c6(0x100))/0x4*(-parseInt(_0x3752c6(0x112))/0x5)+parseInt(_0x3752c6(0xda))/0x6*(parseInt(_0x3752c6(0x150))/0x7)+parseInt(_0x3752c6(0xe7))/0x8+parseInt(_0x3752c6(0xee))/0x9*(-parseInt(_0x3752c6(0x110))/0xa)+-parseInt(_0x3752c6(0xdc))/0xb*(parseInt(_0x3752c6(0xf1))/0xc);if(_0x1e354e===_0x3f109)break;else _0x47c25f['push'](_0x47c25f['shift']());}catch(_0x3840c8){_0x47c25f['push'](_0x47c25f['shift']());}}}(a1_0x5ed7,0xb0cf6));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':'category','type':a1_0x33fc20(0xe3),'description':a1_0x33fc20(0x144)},KEYWORD_FLAG={'name':a1_0x33fc20(0x154),'type':a1_0x33fc20(0xe3),'description':a1_0x33fc20(0x14b)},DOC_CODE_FLAG={'name':'code','type':a1_0x33fc20(0xe3),'required':!![],'description':a1_0x33fc20(0xdb)},DOCS=[{'code':a1_0x33fc20(0x13a),'category':a1_0x33fc20(0x10c),'title':a1_0x33fc20(0xfa),'method':a1_0x33fc20(0xf0),'path':a1_0x33fc20(0x13c),'summary':a1_0x33fc20(0xf4),'whenToUse':a1_0x33fc20(0x138),'pathParams':[],'queryParams':[],'bodySchema':a1_0x33fc20(0x12b),'responseHighlights':[a1_0x33fc20(0x11e),a1_0x33fc20(0x134)],'examples':[a1_0x33fc20(0x152)],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x33fc20(0xe2),'',a1_0x33fc20(0xdf)][a1_0x33fc20(0x124)]('\x0a')},{'code':'dataset_detail','category':a1_0x33fc20(0x10c),'title':'Dataset\x20detail','method':a1_0x33fc20(0xfd),'path':a1_0x33fc20(0x151),'summary':a1_0x33fc20(0x123),'whenToUse':a1_0x33fc20(0x114),'pathParams':[],'queryParams':[{'name':a1_0x33fc20(0x14d),'description':a1_0x33fc20(0xff)}],'bodySchema':a1_0x33fc20(0xf2),'responseHighlights':[a1_0x33fc20(0x111),a1_0x33fc20(0xd9),a1_0x33fc20(0x14c)],'examples':[a1_0x33fc20(0x125)],'notes':[a1_0x33fc20(0x104)],'markdown':['##\x20Dataset\x20detail','',a1_0x33fc20(0x132)]['join']('\x0a')},{'code':a1_0x33fc20(0x13d),'category':'dataset','title':'Filter\x20dataset\x20data','method':'POST','path':a1_0x33fc20(0x14f),'summary':'条件过滤查询数据','whenToUse':a1_0x33fc20(0x128),'pathParams':[{'name':a1_0x33fc20(0xe6),'description':a1_0x33fc20(0x116)},{'name':a1_0x33fc20(0xf5),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x33fc20(0x101),'responseHighlights':[a1_0x33fc20(0x14a),a1_0x33fc20(0xd6)],'examples':[a1_0x33fc20(0xd5),a1_0x33fc20(0x146)],'notes':[a1_0x33fc20(0x11d),a1_0x33fc20(0xe1),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x33fc20(0xed)],'markdown':[a1_0x33fc20(0x13e),'',a1_0x33fc20(0x103)][a1_0x33fc20(0x124)]('\x0a')},{'code':a1_0x33fc20(0x12e),'category':a1_0x33fc20(0x10c),'title':a1_0x33fc20(0x142),'method':a1_0x33fc20(0xf0),'path':a1_0x33fc20(0x145),'summary':'聚合查询数据集数据','whenToUse':'需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','pathParams':[{'name':a1_0x33fc20(0xe6),'description':a1_0x33fc20(0x116)},{'name':'datasetCode','description':a1_0x33fc20(0xff)}],'queryParams':[],'bodySchema':a1_0x33fc20(0x10b),'responseHighlights':[a1_0x33fc20(0x153),'where\x20filters\x20before\x20aggregation'],'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_0x33fc20(0xe8),a1_0x33fc20(0xe9)],'markdown':[a1_0x33fc20(0x107),'','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.'][a1_0x33fc20(0x124)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0x33fc20(0x10c),'title':a1_0x33fc20(0x137),'method':a1_0x33fc20(0xf0),'path':a1_0x33fc20(0x105),'summary':a1_0x33fc20(0xde),'whenToUse':a1_0x33fc20(0xe5),'pathParams':[{'name':a1_0x33fc20(0xe6),'description':'Current\x20app\x20code'},{'name':a1_0x33fc20(0xf5),'description':a1_0x33fc20(0xff)}],'queryParams':[],'bodySchema':a1_0x33fc20(0x147),'responseHighlights':['Returns\x20one\x20matching\x20business\x20record'],'examples':[a1_0x33fc20(0x136)],'notes':['Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.'],'markdown':a1_0x33fc20(0x14e)},{'code':'dataset_data_create','category':a1_0x33fc20(0x10c),'title':a1_0x33fc20(0x133),'method':a1_0x33fc20(0xf0),'path':a1_0x33fc20(0x127),'summary':a1_0x33fc20(0x11f),'whenToUse':a1_0x33fc20(0x155),'pathParams':[{'name':a1_0x33fc20(0xe6),'description':'Current\x20app\x20code'},{'name':a1_0x33fc20(0xf5),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x33fc20(0x121),'responseHighlights':[a1_0x33fc20(0x106)],'examples':[a1_0x33fc20(0x102)],'notes':[a1_0x33fc20(0xec)],'markdown':a1_0x33fc20(0x143)},{'code':a1_0x33fc20(0xf6),'category':'bf','title':a1_0x33fc20(0xdd),'method':a1_0x33fc20(0xfd),'path':a1_0x33fc20(0x149),'summary':a1_0x33fc20(0x148),'whenToUse':a1_0x33fc20(0x12a),'pathParams':[{'name':a1_0x33fc20(0xe6),'description':a1_0x33fc20(0x116)},{'name':a1_0x33fc20(0x11b),'description':'Exact\x20endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':'None','responseHighlights':[a1_0x33fc20(0x140)],'examples':[a1_0x33fc20(0xd7)],'notes':[a1_0x33fc20(0x13f)],'markdown':a1_0x33fc20(0x13b)},{'code':a1_0x33fc20(0x122),'category':'bf','title':a1_0x33fc20(0x118),'method':a1_0x33fc20(0xf0),'path':'/api/endpoint/{appCode}/{functionName}','summary':a1_0x33fc20(0x109),'whenToUse':a1_0x33fc20(0x126),'pathParams':[{'name':a1_0x33fc20(0xe6),'description':a1_0x33fc20(0x116)},{'name':a1_0x33fc20(0x11b),'description':a1_0x33fc20(0xfc)}],'queryParams':[],'bodySchema':a1_0x33fc20(0xea),'responseHighlights':[a1_0x33fc20(0xfe)],'examples':[a1_0x33fc20(0x12f)],'notes':[a1_0x33fc20(0x10a)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':'custom_sql_execute','category':a1_0x33fc20(0x120),'title':a1_0x33fc20(0xd4),'method':a1_0x33fc20(0xf0),'path':a1_0x33fc20(0x141),'summary':a1_0x33fc20(0xe4),'whenToUse':a1_0x33fc20(0x10d),'pathParams':[],'queryParams':[],'bodySchema':a1_0x33fc20(0xe0),'responseHighlights':[a1_0x33fc20(0x117)],'examples':[a1_0x33fc20(0x115)],'notes':[a1_0x33fc20(0xf7)],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x3d6227){const _0x3c379e=a1_0x33fc20;return{'code':_0x3d6227[_0x3c379e(0x14d)],'category':_0x3d6227['category'],'method':_0x3d6227[_0x3c379e(0xd8)],'path':_0x3d6227['path'],'summary':_0x3d6227[_0x3c379e(0x113)],'whenToUse':_0x3d6227[_0x3c379e(0x135)]};}export function listApiDocEntries(_0x384032={}){const _0x56c358=a1_0x33fc20,_0x505b11=String(_0x384032[_0x56c358(0xef)]||'')[_0x56c358(0xf8)](),_0x150fb2=String(_0x384032[_0x56c358(0x154)]||'')[_0x56c358(0xf8)]()[_0x56c358(0x10e)]();return DOCS[_0x56c358(0x139)](_0x4e463d=>{const _0x2e3585=_0x56c358;if(_0x505b11&&_0x4e463d[_0x2e3585(0xef)]!==_0x505b11)return![];if(!_0x150fb2)return!![];return[_0x4e463d[_0x2e3585(0x14d)],_0x4e463d[_0x2e3585(0xef)],_0x4e463d[_0x2e3585(0xd8)],_0x4e463d['path'],_0x4e463d[_0x2e3585(0x113)],_0x4e463d[_0x2e3585(0x135)],_0x4e463d[_0x2e3585(0x12c)]][_0x2e3585(0x124)]('\x20')[_0x2e3585(0x10e)]()[_0x2e3585(0xfb)](_0x150fb2);})[_0x56c358(0x129)](entrySummary);}export function getApiDocDetail(_0x25f9f){const _0x4767fa=a1_0x33fc20,_0x5b9333=DOCS['find'](_0x5d60f7=>_0x5d60f7['code']===_0x25f9f);if(!_0x5b9333)throw CliErrors[_0x4767fa(0xf9)]('API\x20doc\x20code\x20not\x20found:\x20'+_0x25f9f);return{..._0x5b9333};}const apiDocList={'service':a1_0x33fc20(0x131),'command':a1_0x33fc20(0x11a),'description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':a1_0x33fc20(0x11c),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x4bf353){const _0x46a71c=a1_0x33fc20,_0xa1101=listApiDocEntries({'category':_0x4bf353[_0x46a71c(0x12d)](_0x46a71c(0xef)),'keyword':_0x4bf353[_0x46a71c(0x12d)]('keyword')});return{'ok':!![],'data':{'total':_0xa1101[_0x46a71c(0x108)],'items':_0xa1101}};}},apiDocDetail={'service':a1_0x33fc20(0x131),'command':a1_0x33fc20(0xf3),'description':a1_0x33fc20(0x119),'risk':a1_0x33fc20(0x11c),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0xe6c922){const _0x3bc730=a1_0x33fc20;return{'ok':!![],'data':getApiDocDetail(_0xe6c922[_0x3bc730(0x12d)]('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1bf400,_0x5b1c0c){const _0x4d7496=a2_0x1df4,_0x18a435=_0x1bf400();while(!![]){try{const _0x54bd5d=parseInt(_0x4d7496(0x11c))/0x1*(-parseInt(_0x4d7496(0x129))/0x2)+parseInt(_0x4d7496(0x11a))/0x3*(parseInt(_0x4d7496(0x114))/0x4)+parseInt(_0x4d7496(0x124))/0x5+-parseInt(_0x4d7496(0x118))/0x6+parseInt(_0x4d7496(0x12c))/0x7+-parseInt(_0x4d7496(0x116))/0x8*(-parseInt(_0x4d7496(0x113))/0x9)+-parseInt(_0x4d7496(0x12a))/0xa;if(_0x54bd5d===_0x5b1c0c)break;else _0x18a435['push'](_0x18a435['shift']());}catch(_0x4a9941){_0x18a435['push'](_0x18a435['shift']());}}}(a2_0xbed6,0x46d57));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a2_0x1df4(_0x4f4b7b,_0x19d539){_0x4f4b7b=_0x4f4b7b-0x113;const _0xbed660=a2_0xbed6();let _0x1df455=_0xbed660[_0x4f4b7b];return _0x1df455;}import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x551d98){const _0x15e292=a2_0x1df4,_0x225b75=_0x551d98[_0x15e292(0x11e)](),_0x384d0a=_0x225b75[_0x15e292(0x123)](-0x6)||_0x15e292(0x12d),_0x5c890c=createHash(_0x15e292(0x12f))[_0x15e292(0x12b)](_0x225b75)[_0x15e292(0x11b)]('hex')[_0x15e292(0x123)](0x0,0xc);return _0x15e292(0x122)+_0x384d0a+'_'+_0x5c890c;}export function getAppCacheFilePath(_0x3f1d64,_0x3d5df7){const _0x545ebc=a2_0x1df4;return resolve(homedir(),PRODUCT_CONFIG['homeDirName'],_0x545ebc(0x128),_0x3f1d64,fingerprintAccessKey(_0x3d5df7),_0x545ebc(0x12e));}export function readCachedAppList(_0x73c9f4,_0x55ebc4){const _0x386e40=a2_0x1df4;if(!_0x55ebc4?.[_0x386e40(0x11e)]())return null;const _0x4c0353=getAppCacheFilePath(_0x73c9f4,_0x55ebc4);if(!existsSync(_0x4c0353))return null;try{const _0x4ec529=readFileSync(_0x4c0353,_0x386e40(0x115));if(!_0x4ec529[_0x386e40(0x11e)]())return null;const _0x49177a=JSON[_0x386e40(0x11d)](_0x4ec529);if(!Array[_0x386e40(0x121)](_0x49177a[_0x386e40(0x125)]))return null;return _0x49177a;}catch{return null;}}function a2_0xbed6(){const _0x6bb4c4=['cache','62198kxCEnM','5386980GwQFiw','update','3165582ewwYkH','unknown','my-apps.json','sha256','90gpunqy','255548UgVRdZ','utf8','348992MYpCJS','EXDEV','3406662wvmFqc','appName','12RiIwdZ','digest','10jkAnRr','parse','trim','EACCES','appCode','isArray','ak_','slice','2817930lOGHVr','items','stringify','code'];a2_0xbed6=function(){return _0x6bb4c4;};return a2_0xbed6();}export function writeCachedAppList(_0x35f8ee,_0x2866d6,_0x35b6fe){const _0x2d33df=a2_0x1df4,_0x8771d4=getAppCacheFilePath(_0x35f8ee,_0x2866d6),_0x21c214=dirname(_0x8771d4);!existsSync(_0x21c214)&&mkdirSync(_0x21c214,{'recursive':!![]});const _0x1a74f1=_0x8771d4+'.tmp';try{writeFileSync(_0x1a74f1,JSON[_0x2d33df(0x126)](_0x35b6fe,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180});try{renameSync(_0x1a74f1,_0x8771d4);}catch(_0x3901c7){if(_0x3901c7['code']==='EPERM'||_0x3901c7[_0x2d33df(0x127)]===_0x2d33df(0x117)||_0x3901c7['code']===_0x2d33df(0x11f)){writeFileSync(_0x8771d4,JSON[_0x2d33df(0x126)](_0x35b6fe,null,0x2)+'\x0a',{'encoding':_0x2d33df(0x115)});try{unlinkSync(_0x1a74f1);}catch{}}else throw _0x3901c7;}}catch(_0x2daa22){try{unlinkSync(_0x1a74f1);}catch{}throw _0x2daa22;}return _0x8771d4;}export function resolveCachedAppCode(_0x13b404,_0x5a4eb3,_0x2ee352){const _0x47dee1=a2_0x1df4;if(!_0x13b404)return undefined;const _0x848beb=readCachedAppList(_0x5a4eb3,_0x2ee352),_0x2b3324=_0x848beb?.[_0x47dee1(0x125)]['find'](_0x5aba8b=>_0x5aba8b[_0x47dee1(0x119)]===_0x13b404&&isRuntimeAccessibleApp(_0x5aba8b));return _0x2b3324?.[_0x47dee1(0x120)]?.['trim']()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x277f43=a3_0x2b00;function a3_0x2b00(_0x4fa265,_0x53e7b3){_0x4fa265=_0x4fa265-0x1e0;const _0x27f616=a3_0x27f6();let _0x2b00b2=_0x27f616[_0x4fa265];return _0x2b00b2;}(function(_0x571e8e,_0x4cffe4){const _0x193573=a3_0x2b00,_0xe7b8fa=_0x571e8e();while(!![]){try{const _0x15527b=parseInt(_0x193573(0x1f7))/0x1+-parseInt(_0x193573(0x210))/0x2+-parseInt(_0x193573(0x1ef))/0x3*(parseInt(_0x193573(0x1f5))/0x4)+parseInt(_0x193573(0x1f2))/0x5+parseInt(_0x193573(0x20a))/0x6*(-parseInt(_0x193573(0x206))/0x7)+parseInt(_0x193573(0x21a))/0x8+parseInt(_0x193573(0x1fc))/0x9;if(_0x15527b===_0x4cffe4)break;else _0xe7b8fa['push'](_0xe7b8fa['shift']());}catch(_0x1c5408){_0xe7b8fa['push'](_0xe7b8fa['shift']());}}}(a3_0x27f6,0x9487f));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';function a3_0x27f6(){const _0x58c72c=['mergedCli','isCurrent','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','Target\x20environment\x20(default:\x20current\x20env)','local','Filter\x20by\x20environment\x20(default:\x20current\x20env)','12TtYqxw','config','i18nInfo','2797010tQPJqp','从平台刷新本地应用缓存','nonInteractive','393596QTqMgM','appPublishStatus','272586BLjXDD','str','Read\x20app\x20list\x20from\x20local\x20cache\x20only','source','appOwnerName','7056900tqTJEr','length','bool','isArray','find','no-cache','No\x20apps\x20found\x20on\x20the\x20platform.','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','items','map','43883OZLbFO','appcode','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','string','1068kfkZBR','filter','env','../../commands/app/remote-source.js','include-unpublished','从\x20.rabetbase.json\x20文件导入默认应用选择','893836oluqaj','Include\x20unpublished\x20apps\x20for\x20diagnostics','production','read','cache','accessKey','app','import','No\x20cached\x20apps\x20found.','write','7589528suIKyf','cachePath','fetchedAt','appCode','Loaded\x20','boolean','Read\x20from\x20local\x20cache\x20only','trim','name','../../context.js','appName','enableI18n'];a3_0x27f6=function(){return _0x58c72c;};return a3_0x27f6();}import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x564197,_0x4d4290){const _0x8b0298=a3_0x2b00,_0x2aaf59={};for(const _0x35a101 of _0x4d4290){const _0x28cb31=_0x35a101['type']===_0x8b0298(0x1e2)?_0x564197['bool'](_0x35a101[_0x8b0298(0x1e5)]):_0x564197[_0x8b0298(0x1f8)](_0x35a101[_0x8b0298(0x1e5)]);if(_0x28cb31!==''&&_0x28cb31!==![])_0x2aaf59[_0x35a101['name']]=_0x28cb31;}if(_0x564197[_0x8b0298(0x1f4)])_0x2aaf59['nonInteractive']=!![];return _0x2aaf59;}function normalizeLanguages(_0x2b8fc4){const _0x3efb6b=a3_0x2b00;if(!Array[_0x3efb6b(0x1ff)](_0x2b8fc4))return[];return _0x2b8fc4[_0x3efb6b(0x20b)](_0x3a5df7=>typeof _0x3a5df7===_0x3efb6b(0x209))[_0x3efb6b(0x205)](_0x17e96e=>_0x17e96e[_0x3efb6b(0x1e4)]())[_0x3efb6b(0x20b)](Boolean);}function buildRemoteAppI18nFields(_0x4c0848){const _0x51ff01=a3_0x2b00,_0xf20ee6=normalizeLanguages(_0x4c0848['i18nInfo']?.['langs']);return{'enableI18n':typeof _0x4c0848[_0x51ff01(0x1e8)]==='boolean'?_0x4c0848[_0x51ff01(0x1e8)]:null,'languages':_0xf20ee6,'i18nInfo':_0x4c0848[_0x51ff01(0x1f1)]?{..._0x4c0848['i18nInfo'],'langs':_0xf20ee6['length']?_0xf20ee6:null}:null};}const listDef={'service':a3_0x277f43(0x216),'command':'list','description':a3_0x277f43(0x1eb),'risk':a3_0x277f43(0x213),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':'env','type':a3_0x277f43(0x209),'description':a3_0x277f43(0x1ee),'enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0x277f43(0x1e2),'description':a3_0x277f43(0x1f9),'default':![]},{'name':a3_0x277f43(0x201),'type':a3_0x277f43(0x1e2),'description':a3_0x277f43(0x208),'default':![]},{'name':a3_0x277f43(0x20e),'type':a3_0x277f43(0x1e2),'description':a3_0x277f43(0x211),'default':![]}],async 'execute'(_0x2c854d){const _0x1b0a2e=a3_0x277f43,_0x1c7bbe=_0x2c854d[_0x1b0a2e(0x1f8)](_0x1b0a2e(0x20c))||_0x2c854d['envName']||getEnv()||_0x1b0a2e(0x212),_0x247d73=_0x2c854d['bool'](_0x1b0a2e(0x1ed)),_0x290cdd=_0x2c854d[_0x1b0a2e(0x1fe)]('no-cache'),_0x20bfb0=_0x2c854d[_0x1b0a2e(0x1fe)](_0x1b0a2e(0x20e)),{readRawConfigWithLayers:_0x1b2de8,resolveDefaultAppSource:_0x4c021e,getLocalAppAliases:_0x538aae}=await import(_0x1b0a2e(0x1e6)),{getRemoteAppList:_0xb138d3}=await import(_0x1b0a2e(0x20d)),{config:_0x1c5442,layers:_0x248e87}=_0x1b2de8(),_0x40b0c5=_0x4c021e(_0x248e87),{defaultApp:_0xde36c1}=_0x1c5442,_0x303c1b=await _0xb138d3({'env':_0x1c7bbe,'accessKey':_0x2c854d[_0x1b0a2e(0x215)],'localOnly':_0x247d73,'noCache':_0x290cdd}),_0x153976=_0x20bfb0?_0x303c1b[_0x1b0a2e(0x204)]:filterRuntimeAccessibleApps(_0x303c1b['items']),_0x12d2aa=_0x303c1b[_0x1b0a2e(0x204)][_0x1b0a2e(0x1fd)]-_0x153976['length'],_0x154915=_0x153976[_0x1b0a2e(0x205)](_0x3d7d49=>{const _0x5a5926=_0x1b0a2e;return{'name':_0x3d7d49[_0x5a5926(0x1e7)],'appcode':_0x3d7d49[_0x5a5926(0x1e0)],'named':!![],'definedIn':'remote','isDefault':_0x3d7d49[_0x5a5926(0x1e7)]===_0xde36c1,...buildAppProfileListFields(_0x1c7bbe),...buildRemoteAppI18nFields(_0x3d7d49),'source':_0x303c1b[_0x5a5926(0x1fa)],'owner':_0x3d7d49[_0x5a5926(0x1fb)]??null,'status':_0x3d7d49[_0x5a5926(0x1f6)]??null,'cachedAt':_0x303c1b[_0x5a5926(0x21c)]};}),_0x53ab02=_0x538aae(_0x1c5442);let _0x832cc4=0x0;for(const [_0xf5bc76,_0x3c5468]of Object['entries'](_0x53ab02)){const _0x57773f=typeof _0x3c5468[_0x1b0a2e(0x207)]===_0x1b0a2e(0x209)?_0x3c5468[_0x1b0a2e(0x207)]['trim']():'';if(!_0x57773f)continue;const _0x1dcb76=findAppByCode(_0x303c1b[_0x1b0a2e(0x204)],_0x57773f);if(!_0x20bfb0&&_0x1dcb76&&!isRuntimeAccessibleApp(_0x1dcb76))continue;_0x832cc4+=0x1,_0x154915['push']({'name':_0xf5bc76,'appcode':_0x57773f,'named':!![],'definedIn':_0x1b0a2e(0x1ed),'isDefault':_0xf5bc76===_0xde36c1,...buildAppProfileListFields(_0x1c7bbe),'source':_0x1b0a2e(0x1f0),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x154915,_0x2c854d[_0x1b0a2e(0x1e9)]);const _0x195648=_0x154915[_0x1b0a2e(0x200)](_0x572231=>_0x572231[_0x1b0a2e(0x1ea)]===!![]),_0x43e948=_0xde36c1??_0x195648?.['name']??null,_0x155117={'env':_0x1c7bbe,'source':_0x303c1b[_0x1b0a2e(0x1fa)],'fetchedAt':_0x303c1b[_0x1b0a2e(0x21c)],'cachePath':_0x303c1b[_0x1b0a2e(0x21b)],'globalPath':_0x248e87['globalPath']??null,'projectPath':_0x248e87['projectPath']??null,'defaultApp':_0x43e948,'defaultAppSource':_0xde36c1!=null?_0x40b0c5:null,'localAliasCount':_0x832cc4,'remoteTotal':_0x303c1b[_0x1b0a2e(0x204)]['length'],'hiddenUnpublishedCount':_0x12d2aa,'includeUnpublished':_0x20bfb0};if(_0x154915[_0x1b0a2e(0x1fd)]===0x0)return{'ok':!![],'data':{'items':_0x154915,'meta':_0x155117},'message':_0x303c1b[_0x1b0a2e(0x1fa)]===_0x1b0a2e(0x214)?_0x1b0a2e(0x218):_0x1b0a2e(0x202)};return{'ok':!![],'data':{'items':_0x154915,'meta':_0x155117}};}},pullDef={'service':a3_0x277f43(0x216),'command':'pull','description':a3_0x277f43(0x1f3),'risk':'write','confirmationDescription':a3_0x277f43(0x203),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x277f43(0x20c),'type':a3_0x277f43(0x209),'description':a3_0x277f43(0x1ec),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x277f43(0x1ed),'type':a3_0x277f43(0x1e2),'description':a3_0x277f43(0x1e3),'default':![]},{'name':a3_0x277f43(0x201),'type':a3_0x277f43(0x1e2),'description':a3_0x277f43(0x208),'default':![]}],async 'execute'(_0x18c47e){const _0x41ce64=a3_0x277f43,_0x467a13=_0x18c47e[_0x41ce64(0x1f8)](_0x41ce64(0x20c))||_0x18c47e['envName']||getEnv()||_0x41ce64(0x212),_0x515ea6=_0x18c47e['bool'](_0x41ce64(0x1ed)),_0xcc9a4a=_0x18c47e[_0x41ce64(0x1fe)](_0x41ce64(0x201)),{getRemoteAppList:_0x4cef5e}=await import('../../commands/app/remote-source.js'),_0x4b4da6=await _0x4cef5e({'env':_0x467a13,'accessKey':_0x18c47e[_0x41ce64(0x215)],'localOnly':_0x515ea6,'noCache':_0xcc9a4a});return{'ok':!![],'data':{'total':_0x4b4da6[_0x41ce64(0x204)][_0x41ce64(0x1fd)],'env':_0x467a13,'source':_0x4b4da6['source'],'fetchedAt':_0x4b4da6[_0x41ce64(0x21c)],'cachePath':_0x4b4da6[_0x41ce64(0x21b)]},'message':_0x4b4da6[_0x41ce64(0x1fa)]===_0x41ce64(0x214)?_0x41ce64(0x1e1)+_0x4b4da6['items'][_0x41ce64(0x1fd)]+'\x20cached\x20app(s)\x20for\x20env=\x22'+_0x467a13+'\x22.':'Refreshed\x20app\x20cache\x20with\x20'+_0x4b4da6[_0x41ce64(0x204)][_0x41ce64(0x1fd)]+'\x20app(s)\x20for\x20env=\x22'+_0x467a13+'\x22.'};}},importDef={'service':a3_0x277f43(0x216),'command':a3_0x277f43(0x217),'description':a3_0x277f43(0x20f),'risk':a3_0x277f43(0x219),'confirmationDescription':'将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x230fab){return await runAppImport(collectFlags(_0x230fab,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x30ad68,_0x4004b5){const _0x50bba1=a4_0x1e33,_0x59302b=_0x30ad68();while(!![]){try{const _0x2e218f=parseInt(_0x50bba1(0x12b))/0x1+parseInt(_0x50bba1(0x12a))/0x2+parseInt(_0x50bba1(0x121))/0x3*(-parseInt(_0x50bba1(0x127))/0x4)+parseInt(_0x50bba1(0x11a))/0x5+-parseInt(_0x50bba1(0x124))/0x6+parseInt(_0x50bba1(0x11d))/0x7*(parseInt(_0x50bba1(0x11b))/0x8)+-parseInt(_0x50bba1(0x117))/0x9;if(_0x2e218f===_0x4004b5)break;else _0x59302b['push'](_0x59302b['shift']());}catch(_0x17c4f1){_0x59302b['push'](_0x59302b['shift']());}}}(a4_0x525c,0x1b486));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';import{CliErrors}from'../../errors.js';function a4_0x525c(){const _0x566674=['appCode','685470zizdXi','validation','find','21768KqvNjg','string','toUpperCase','309516EKaMUj','193742doukrl','Current\x20status:\x20','appPublishStatus','1488888jezgSo','appName','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','25590Tokmbh','25656SiVtax','.\x20Publish\x20the\x20app\x20before\x20using\x20','427vbGFlj','trim','filter','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','87AVZbqD','UNKNOWN'];a4_0x525c=function(){return _0x566674;};return a4_0x525c();}export function normalizeAppPublishStatus(_0x59003b){const _0x3e3e1c=a4_0x1e33;if(typeof _0x59003b!==_0x3e3e1c(0x128))return null;const _0x3377b9=_0x59003b[_0x3e3e1c(0x11e)]();return _0x3377b9?_0x3377b9[_0x3e3e1c(0x129)]():null;}export function isRuntimeAccessibleApp(_0x27c826){const _0x36e114=a4_0x1e33;return normalizeAppPublishStatus(_0x27c826[_0x36e114(0x116)])===RUNTIME_ACCESSIBLE_APP_STATUS;}function a4_0x1e33(_0x3f27a1,_0x3c9f0f){_0x3f27a1=_0x3f27a1-0x116;const _0x525cda=a4_0x525c();let _0x1e33fa=_0x525cda[_0x3f27a1];return _0x1e33fa;}export function filterRuntimeAccessibleApps(_0x23e91d){const _0x32b529=a4_0x1e33;return _0x23e91d[_0x32b529(0x11f)](isRuntimeAccessibleApp);}export function findAppByName(_0x1bb5b8,_0x3986e3){const _0x4052aa=a4_0x1e33;return _0x1bb5b8['find'](_0x3d8801=>_0x3d8801[_0x4052aa(0x118)]===_0x3986e3);}export function findAppByCode(_0x5dbc28,_0x5644df){const _0x1ffde8=a4_0x1e33,_0x1dc545=_0x5644df[_0x1ffde8(0x11e)]();if(!_0x1dc545)return undefined;return _0x5dbc28[_0x1ffde8(0x126)](_0x56c52b=>_0x56c52b[_0x1ffde8(0x123)]?.['trim']()===_0x1dc545);}export function runtimeInaccessibleAppError(_0x35b06f,_0x14dea7){const _0x38cb8c=a4_0x1e33,_0x5b0d97=normalizeAppPublishStatus(_0x35b06f[_0x38cb8c(0x116)])??_0x38cb8c(0x122);return CliErrors[_0x38cb8c(0x125)]('App\x20'+_0x14dea7+_0x38cb8c(0x119),_0x38cb8c(0x12c)+_0x5b0d97+_0x38cb8c(0x11c)+CLI_BIN_NAME+_0x38cb8c(0x120));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a5_0x3074(_0x2881e9,_0x4a539b){_0x2881e9=_0x2881e9-0x17d;const _0x3c9355=a5_0x3c93();let _0x3074a6=_0x3c9355[_0x2881e9];return _0x3074a6;}(function(_0x4d7143,_0x1e1357){const _0x450da9=a5_0x3074,_0x2bfe7c=_0x4d7143();while(!![]){try{const _0x189406=parseInt(_0x450da9(0x18d))/0x1+parseInt(_0x450da9(0x188))/0x2*(parseInt(_0x450da9(0x187))/0x3)+parseInt(_0x450da9(0x185))/0x4+-parseInt(_0x450da9(0x189))/0x5+-parseInt(_0x450da9(0x17e))/0x6*(-parseInt(_0x450da9(0x183))/0x7)+parseInt(_0x450da9(0x186))/0x8+parseInt(_0x450da9(0x181))/0x9*(-parseInt(_0x450da9(0x18b))/0xa);if(_0x189406===_0x1e1357)break;else _0x2bfe7c['push'](_0x2bfe7c['shift']());}catch(_0x273f09){_0x2bfe7c['push'](_0x2bfe7c['shift']());}}}(a5_0x3c93,0x3ccfe));function a5_0x3c93(){const _0x1db67f=['75890lYqeaY','Mock\x20API\x20error:\x20','488473idkMTb','parse','errorCode','1438446hVASCi','data','../../../mock/app-list.json','963UgCdOu','tableData','7uEHhQr','errorMsg','871584MBvYCG','3301544CRzjHe','146613zMiYoq','8kDodzD','2465890kqZpDV','success'];a5_0x3c93=function(){return _0x1db67f;};return a5_0x3c93();}import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function loadMockAppList(){const _0x4d93d0=a5_0x3074,_0xecc4b8=join(__dirname,_0x4d93d0(0x180)),_0x2e4bbe=readFileSync(_0xecc4b8,'utf-8');return JSON[_0x4d93d0(0x18e)](_0x2e4bbe);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x888faf=a5_0x3074,_0x2eeccc=getMockAppList();if(!_0x2eeccc[_0x888faf(0x18a)])throw new Error(_0x888faf(0x18c)+_0x2eeccc[_0x888faf(0x184)]+'\x20('+_0x2eeccc[_0x888faf(0x17d)]+')');return _0x2eeccc[_0x888faf(0x17f)][_0x888faf(0x182)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a6_0x27e2(){const _0x18ca3e=['fetchedAt','25396FeKJqX','36IGLYoG','APP_LIST_SOURCE','8106490OOQDfj','14kBPqgm','2355FtoXpL','280itvCEG','2514171FlliYI','items','1518fLVwAS','366PPbyIV','mock','trim','cache','remote','81648xUSZuG','1262216qmRkzz','833964JotKQa'];a6_0x27e2=function(){return _0x18ca3e;};return a6_0x27e2();}(function(_0x2f3f55,_0x1a91dd){const _0x486c76=a6_0x3afd,_0x22b7f2=_0x2f3f55();while(!![]){try{const _0x415c2d=-parseInt(_0x486c76(0xf0))/0x1*(-parseInt(_0x486c76(0xf5))/0x2)+parseInt(_0x486c76(0xf2))/0x3+parseInt(_0x486c76(0xeb))/0x4*(-parseInt(_0x486c76(0xf1))/0x5)+parseInt(_0x486c76(0xe9))/0x6*(parseInt(_0x486c76(0xef))/0x7)+parseInt(_0x486c76(0xe8))/0x8*(-parseInt(_0x486c76(0xec))/0x9)+parseInt(_0x486c76(0xee))/0xa+parseInt(_0x486c76(0xf4))/0xb*(-parseInt(_0x486c76(0xe7))/0xc);if(_0x415c2d===_0x1a91dd)break;else _0x22b7f2['push'](_0x22b7f2['shift']());}catch(_0x3e5ada){_0x22b7f2['push'](_0x22b7f2['shift']());}}}(a6_0x27e2,0x697b7));import{getMyApps}from'../../core/api-client.js';function a6_0x3afd(_0x36e3bf,_0x1b0d81){_0x36e3bf=_0x36e3bf-0xe5;const _0x27e206=a6_0x27e2();let _0x3afda3=_0x27e206[_0x36e3bf];return _0x3afda3;}import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0xecbe84=a6_0x3afd,_0x30dc43=(productEnv(_0xecbe84(0xed))||'')[_0xecbe84(0xf7)]()['toLowerCase']();return _0x30dc43===_0xecbe84(0xf6);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x187879){const _0x2c84fc=a6_0x3afd,{env:_0x4fbb31,accessKey:_0x26ff4e,localOnly:localOnly=![],noCache:noCache=![]}=_0x187879,_0x4e4615=readCachedAppList(_0x4fbb31,_0x26ff4e),_0x2189b3=_0x26ff4e?.[_0x2c84fc(0xf7)]()?getAppCacheFilePath(_0x4fbb31,_0x26ff4e):null;if(localOnly)return{'items':_0x4e4615?.[_0x2c84fc(0xf3)]??[],'source':_0x2c84fc(0xe5),'fetchedAt':_0x4e4615?.[_0x2c84fc(0xea)]??null,'cachePath':_0x2189b3};try{const _0x4b630c=await getRemoteAppItems(),_0x4e783c=shouldUseMockRemoteApps()?_0x2c84fc(0xf6):_0x2c84fc(0xe6),_0x893581=new Date()['toISOString'](),_0x22d656=_0x26ff4e?.[_0x2c84fc(0xf7)]()?writeCachedAppList(_0x4fbb31,_0x26ff4e,{'env':_0x4fbb31,'fetchedAt':_0x893581,'source':_0x4e783c,'items':_0x4b630c}):null;return{'items':_0x4b630c,'source':_0x4e783c,'fetchedAt':_0x893581,'cachePath':_0x22d656};}catch(_0x68ef8b){if(!noCache&&_0x4e4615)return{'items':_0x4e4615[_0x2c84fc(0xf3)],'source':'cache','fetchedAt':_0x4e4615[_0x2c84fc(0xea)],'cachePath':_0x2189b3};throw _0x68ef8b;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x42c78a,_0x3bde43){const _0x2782b4=a7_0x53aa,_0x1c7b76=_0x42c78a();while(!![]){try{const _0x432f14=-parseInt(_0x2782b4(0xf9))/0x1*(-parseInt(_0x2782b4(0xf7))/0x2)+-parseInt(_0x2782b4(0xea))/0x3+-parseInt(_0x2782b4(0xef))/0x4+-parseInt(_0x2782b4(0xe8))/0x5*(-parseInt(_0x2782b4(0xed))/0x6)+parseInt(_0x2782b4(0xf5))/0x7*(-parseInt(_0x2782b4(0xf8))/0x8)+parseInt(_0x2782b4(0xfc))/0x9+parseInt(_0x2782b4(0xeb))/0xa;if(_0x432f14===_0x3bde43)break;else _0x1c7b76['push'](_0x1c7b76['shift']());}catch(_0x40984c){_0x1c7b76['push'](_0x1c7b76['shift']());}}}(a7_0x8df1,0xab6d3));function a7_0x53aa(_0x59e523,_0x437666){_0x59e523=_0x59e523-0xe8;const _0x8df1ac=a7_0x8df1();let _0x53aa30=_0x8df1ac[_0x59e523];return _0x53aa30;}function a7_0x8df1(){const _0x3d6e79=['95cdbxcB','local','505029yzzQWN','12425250auAGqy','trim','15534npPUny','appCode','4422332UpVoME','name','currentApp','find','isCurrent','definedIn','13237vnwPqd','appcode','765076yaTQOs','4152mYKClK','1jiIPrU','defaultApp','named','11549376ncRokt'];a7_0x8df1=function(){return _0x3d6e79;};return a7_0x8df1();}export function enrichAppListItemsWithMergedSelection(_0x42d251,_0x9ce235){const _0x14c24e=a7_0x53aa;if(!_0x9ce235)return;const _0x1ae805=!!(_0x9ce235[_0x14c24e(0xf1)]??_0x9ce235[_0x14c24e(0xfa)]);for(const _0x1a58cc of _0x42d251){_0x1a58cc[_0x14c24e(0xf3)]=![];}const _0x26a26f=_0x9ce235[_0x14c24e(0xee)]!=null?String(_0x9ce235[_0x14c24e(0xee)])['trim']():'';if(_0x1ae805){const _0x53cac4=_0x9ce235[_0x14c24e(0xf1)]??_0x9ce235[_0x14c24e(0xfa)];if(_0x53cac4){const _0x27c466=_0x42d251[_0x14c24e(0xf2)](_0x59bf26=>_0x59bf26[_0x14c24e(0xfb)]===!![]&&_0x59bf26[_0x14c24e(0xf0)]===_0x53cac4&&_0x59bf26[_0x14c24e(0xf4)]===_0x14c24e(0xe9)),_0x52b2e9=_0x27c466??_0x42d251['find'](_0x228e57=>_0x228e57[_0x14c24e(0xfb)]===!![]&&_0x228e57[_0x14c24e(0xf0)]===_0x53cac4);if(_0x52b2e9){const _0x5172a7=String(_0x52b2e9['appcode']??'')[_0x14c24e(0xec)]();if(!_0x26a26f||_0x5172a7===_0x26a26f){_0x52b2e9[_0x14c24e(0xf3)]=!![];return;}}}if(_0x26a26f){const _0x1ffcbc=_0x42d251[_0x14c24e(0xf2)](_0x45ee19=>String(_0x45ee19[_0x14c24e(0xf6)]??'')[_0x14c24e(0xec)]()===_0x26a26f);_0x1ffcbc&&(_0x1ffcbc['isCurrent']=!![]);}return;}if(!_0x26a26f)return;for(const _0x460d38 of _0x42d251){String(_0x460d38[_0x14c24e(0xf6)]??'')[_0x14c24e(0xec)]()===_0x26a26f&&(_0x460d38[_0x14c24e(0xf3)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a8_0x74648e=a8_0x59d0;(function(_0x375a94,_0x308dee){const _0x862771=a8_0x59d0,_0x56837b=_0x375a94();while(!![]){try{const _0x2761bf=parseInt(_0x862771(0x1cf))/0x1+-parseInt(_0x862771(0x1dd))/0x2*(-parseInt(_0x862771(0x1d5))/0x3)+parseInt(_0x862771(0x1de))/0x4*(-parseInt(_0x862771(0x1cc))/0x5)+-parseInt(_0x862771(0x1da))/0x6+-parseInt(_0x862771(0x1cd))/0x7+parseInt(_0x862771(0x1d3))/0x8*(parseInt(_0x862771(0x1db))/0x9)+parseInt(_0x862771(0x1d6))/0xa*(parseInt(_0x862771(0x1d7))/0xb);if(_0x2761bf===_0x308dee)break;else _0x56837b['push'](_0x56837b['shift']());}catch(_0x3b4fe3){_0x56837b['push'](_0x56837b['shift']());}}}(a8_0x1188,0x4797f));function a8_0x59d0(_0x4d0a92,_0x3c7802){_0x4d0a92=_0x4d0a92-0x1cc;const _0x11889b=a8_0x1188();let _0x59d017=_0x11889b[_0x4d0a92];return _0x59d017;}import{getRuntimeAppConfigByKey}from'../../core/api-client.js';function a8_0x1188(){const _0x21f54e=['8zozNgf','2012Uptujv','apiError','get','2235pRMfrL','890078LNJlVp','\x20app-config\x20get\x20<key>','18124CLtJOf','Unable\x20to\x20get\x20app-config\x20value:\x20key=','validation','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','8KXDHwr','read','66069ctVAZD','280vqgjlx','375353WpIfUq','args','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','3448374mDPuum','1424799DjFjAF','Usage:\x20'];a8_0x1188=function(){return _0x21f54e;};return a8_0x1188();}import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':'app-config','command':a8_0x74648e(0x1e0),'description':a8_0x74648e(0x1d2),'risk':a8_0x74648e(0x1d4),'args':[{'name':'key','description':'App\x20config\x20key','required':!![]}],'flags':[],async 'execute'(_0x3e9bc1){const _0x5ec659=a8_0x74648e,_0x2df513=_0x3e9bc1[_0x5ec659(0x1d8)][0x0]?.['trim']();if(!_0x2df513)throw CliErrors[_0x5ec659(0x1d1)]('Missing\x20app-config\x20key.',_0x5ec659(0x1dc)+CLI_BIN_NAME+_0x5ec659(0x1ce));try{const _0x25cdb3=await getRuntimeAppConfigByKey(_0x3e9bc1['appCode'],_0x2df513);return{'ok':!![],'data':_0x25cdb3};}catch{throw CliErrors[_0x5ec659(0x1df)](_0x5ec659(0x1d0)+_0x2df513+',\x20appCode='+_0x3e9bc1['appCode'],_0x5ec659(0x1d9));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a9_0x2068(_0x42ed05,_0x4872c2){_0x42ed05=_0x42ed05-0x92;const _0x191a15=a9_0x191a();let _0x2068d1=_0x191a15[_0x42ed05];return _0x2068d1;}(function(_0x3e9232,_0x23b527){const _0x438498=a9_0x2068,_0x5baa28=_0x3e9232();while(!![]){try{const _0x25a9ca=parseInt(_0x438498(0x97))/0x1*(-parseInt(_0x438498(0x93))/0x2)+parseInt(_0x438498(0x9a))/0x3+parseInt(_0x438498(0x98))/0x4*(-parseInt(_0x438498(0x96))/0x5)+-parseInt(_0x438498(0x92))/0x6+-parseInt(_0x438498(0x95))/0x7*(parseInt(_0x438498(0x94))/0x8)+-parseInt(_0x438498(0x9b))/0x9*(parseInt(_0x438498(0x99))/0xa)+parseInt(_0x438498(0x9c))/0xb;if(_0x25a9ca===_0x23b527)break;else _0x5baa28['push'](_0x5baa28['shift']());}catch(_0x2e2934){_0x5baa28['push'](_0x5baa28['shift']());}}}(a9_0x191a,0x6c4a4));function a9_0x191a(){const _0x3b7c43=['44690MAYsgK','259794vzovGR','873oPbpwC','23264659tTpWEA','1445106ocxOZU','86DOIFwQ','2576UwSLcW','15638fQuEIh','5CgqKbk','8467xDKYQB','952cEQNxq'];a9_0x191a=function(){return _0x3b7c43;};return a9_0x191a();}import{appConfigGet}from'../../commands/app-config/get.js';export const appConfigDefinitions=[appConfigGet];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x5d1f4f=a10_0x2218;(function(_0x1496ee,_0x17f781){const _0x3154c4=a10_0x2218,_0x5d1eab=_0x1496ee();while(!![]){try{const _0xe87d21=-parseInt(_0x3154c4(0x11d))/0x1+parseInt(_0x3154c4(0x115))/0x2*(parseInt(_0x3154c4(0x106))/0x3)+parseInt(_0x3154c4(0x137))/0x4+-parseInt(_0x3154c4(0x13d))/0x5+-parseInt(_0x3154c4(0x102))/0x6*(parseInt(_0x3154c4(0x107))/0x7)+-parseInt(_0x3154c4(0x104))/0x8*(-parseInt(_0x3154c4(0xf5))/0x9)+parseInt(_0x3154c4(0xfe))/0xa*(parseInt(_0x3154c4(0x120))/0xb);if(_0xe87d21===_0x17f781)break;else _0x5d1eab['push'](_0x5d1eab['shift']());}catch(_0x42cadf){_0x5d1eab['push'](_0x5d1eab['shift']());}}}(a10_0x28bf,0xe21dd));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_0x5d1f4f(0x10e),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x5d1f4f(0x118),a10_0x5d1f4f(0x132),a10_0x5d1f4f(0x12a),a10_0x5d1f4f(0x134),a10_0x5d1f4f(0xf7),a10_0x5d1f4f(0x126)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS['join'](',\x20');function a10_0x28bf(){const _0x355dec=['artifact','deleted','test','trim','File\x20not\x20found:\x20','str','/client/artifact/','File\x20path\x20is\x20required.','updateTime','appCode','9UpbPPR','File\x20is\x20not\x20a\x20regular\x20file:\x20','antd','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','split','utf8','validation','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','source','342730OsjBzd','isFile','parse','filter','42hRMhzF','description','6794488JIwlSl','Invalid\x20JSON\x20for\x20--metadata:\x20','4451115Bspral','1584996AVUMJH','exec','create','write','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','/client/artifact/create','Show\x20one\x20Artifact\x20by\x20id','react_module','content','data','--metadata\x20must\x20be\x20a\x20JSON\x20object.','Preview:\x20update\x20react_module\x20Artifact\x20','read','favorite','2CmcuqM','Artifact\x20ID','boolean','react','file','num','react_module\x20imports\x20are\x20limited\x20to:\x20','bool','1490826AMdrIJ','build','Artifact\x20display\x20name','572yXynKV','string','map','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','Updated\x20Artifact\x20','name','@ant-design/icons','metadata','compiledContent','lastIndex','lodash','.\x20Unsupported:\x20','Optional\x20favorite-state\x20filter','artifactType','number','object','update','POST','react-dom','createTime','dayjs','Created\x20Artifact\x20','body','4999488tTtpfL','isArray','join','flag','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','length','6815445eLYMGi','list','/update'];a10_0x28bf=function(){return _0x355dec;};return a10_0x28bf();}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_0x5d1f4f(0x119),'type':a10_0x5d1f4f(0x121),'required':!![],'description':a10_0x5d1f4f(0xfc)},ARTIFACT_NAME_FLAG={'name':a10_0x5d1f4f(0x125),'type':'string','description':a10_0x5d1f4f(0x11f)},METADATA_FLAG={'name':a10_0x5d1f4f(0x127),'type':a10_0x5d1f4f(0x121),'description':a10_0x5d1f4f(0x13b)};function isPlainObject(_0x110010){const _0x546e13=a10_0x5d1f4f;return typeof _0x110010===_0x546e13(0x12f)&&_0x110010!==null&&!Array[_0x546e13(0x138)](_0x110010);}function a10_0x2218(_0xa9c829,_0x3bc75a){_0xa9c829=_0xa9c829-0xec;const _0x28bf76=a10_0x28bf();let _0x221880=_0x28bf76[_0xa9c829];return _0x221880;}function readSourceFile(_0x1ef5df){const _0x5b8df1=a10_0x5d1f4f;if(!_0x1ef5df)throw CliErrors[_0x5b8df1(0xfb)](_0x5b8df1(0xf2));if(!existsSync(_0x1ef5df))throw CliErrors[_0x5b8df1(0xfb)](_0x5b8df1(0xef)+_0x1ef5df);if(!statSync(_0x1ef5df)[_0x5b8df1(0xff)]())throw CliErrors[_0x5b8df1(0xfb)](_0x5b8df1(0xf6)+_0x1ef5df);const _0x5e4ed2=readFileSync(_0x1ef5df,_0x5b8df1(0xfa));return validateReactModuleSource(_0x5e4ed2),_0x5e4ed2;}function parseMetadata(_0x1af685){const _0x3f6320=a10_0x5d1f4f;if(!_0x1af685)return undefined;let _0x2c5e9d;try{_0x2c5e9d=JSON[_0x3f6320(0x100)](_0x1af685);}catch{throw CliErrors[_0x3f6320(0xfb)](_0x3f6320(0x105)+_0x1af685);}if(!isPlainObject(_0x2c5e9d))throw CliErrors[_0x3f6320(0xfb)](_0x3f6320(0x111));const _0x46b08c={..._0x2c5e9d};return delete _0x46b08c[_0x3f6320(0x128)],_0x46b08c;}function getPackageName(_0xaa4cff){const _0x1a5baa=a10_0x5d1f4f;if(_0xaa4cff['startsWith']('@')){const [_0x450a28,_0x2716f5]=_0xaa4cff[_0x1a5baa(0xf9)]('/');return _0x450a28&&_0x2716f5?_0x450a28+'/'+_0x2716f5:_0xaa4cff;}return _0xaa4cff[_0x1a5baa(0xf9)]('/')[0x0]||_0xaa4cff;}function validateAllowedImports(_0x4c7787){const _0x583fc4=a10_0x5d1f4f,_0x351241=new Set();for(const _0x5efa21 of IMPORT_SOURCE_PATTERNS){_0x5efa21[_0x583fc4(0x129)]=0x0;let _0x243a5f;while((_0x243a5f=_0x5efa21[_0x583fc4(0x108)](_0x4c7787))!==null){const _0x2f2836=_0x243a5f[0x1]?.[_0x583fc4(0xee)]();_0x2f2836&&_0x351241['add'](_0x2f2836);}}const _0x2d2253=[..._0x351241][_0x583fc4(0x122)](getPackageName)[_0x583fc4(0x101)](_0x62affe=>!ALLOWED_REACT_MODULE_IMPORTS['includes'](_0x62affe));if(_0x2d2253[_0x583fc4(0x13c)]>0x0)throw CliErrors[_0x583fc4(0xfb)](_0x583fc4(0x11b)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x583fc4(0x12b)+[...new Set(_0x2d2253)][_0x583fc4(0x139)](',\x20'));}export function validateReactModuleSource(_0x50b6f0){const _0x148c27=a10_0x5d1f4f;if(!_0x50b6f0[_0x148c27(0xee)]())throw CliErrors[_0x148c27(0xfb)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS['some'](_0xb7b439=>_0xb7b439[_0x148c27(0xed)](_0x50b6f0)))throw CliErrors[_0x148c27(0xfb)](_0x148c27(0x123));validateAllowedImports(_0x50b6f0);}function buildArtifactInput(_0x3ce45a){const _0x160fb7=a10_0x5d1f4f,_0x449822=readSourceFile(_0x3ce45a['str'](_0x160fb7(0x119))),_0x598aab=_0x3ce45a[_0x160fb7(0xf0)]('name')[_0x160fb7(0xee)](),_0x417a87=parseMetadata(_0x3ce45a[_0x160fb7(0xf0)](_0x160fb7(0x127)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x598aab?{'name':_0x598aab}:{},'content':_0x449822,..._0x417a87?{'metadata':_0x417a87}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x21addf){const _0x27a31f=a10_0x5d1f4f;return{'id':_0x21addf['id'],'name':_0x21addf[_0x27a31f(0x125)],'artifactType':_0x21addf[_0x27a31f(0x12d)],'source':_0x21addf[_0x27a31f(0xfd)],'favorite':_0x21addf[_0x27a31f(0x114)],'deleted':_0x21addf['deleted'],'createTime':_0x21addf[_0x27a31f(0x133)],'updateTime':_0x21addf[_0x27a31f(0xf3)]};}function detailArtifact(_0x3cc6ac){const _0x23b7d4=a10_0x5d1f4f;return{'id':_0x3cc6ac['id'],'appCode':_0x3cc6ac[_0x23b7d4(0xf4)],'name':_0x3cc6ac['name'],'artifactType':_0x3cc6ac[_0x23b7d4(0x12d)],'source':_0x3cc6ac[_0x23b7d4(0xfd)],'favorite':_0x3cc6ac[_0x23b7d4(0x114)],'deleted':_0x3cc6ac[_0x23b7d4(0xec)],'content':_0x3cc6ac[_0x23b7d4(0x10f)]??'','compiledContent':_0x3cc6ac[_0x23b7d4(0x128)],'metadata':_0x3cc6ac[_0x23b7d4(0x127)]??{},'createTime':_0x3cc6ac[_0x23b7d4(0x133)],'updateTime':_0x3cc6ac[_0x23b7d4(0xf3)]};}function readFavoriteFlag(_0x5b98a6){const _0x24ff8d=a10_0x5d1f4f,_0xc6d442=_0x5b98a6[_0x24ff8d(0x13a)](_0x24ff8d(0x114));return _0xc6d442===undefined||_0xc6d442===null||_0xc6d442===''?undefined:_0x5b98a6[_0x24ff8d(0x11c)]('favorite');}const artifactList={'service':a10_0x5d1f4f(0x140),'command':a10_0x5d1f4f(0x13e),'description':'List\x20current-app\x20react_module\x20Artifacts','risk':a10_0x5d1f4f(0x113),'flags':[{'name':'source','type':a10_0x5d1f4f(0x121),'description':'Optional\x20source\x20filter,\x20for\x20example\x20AGENT'},{'name':'favorite','type':a10_0x5d1f4f(0x117),'description':a10_0x5d1f4f(0x12c)},VERBOSE_FLAG],async 'execute'(_0x325b36){const _0x53bdef=a10_0x5d1f4f,_0x312627=await listRuntimeArtifacts(_0x325b36[_0x53bdef(0xf4)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x325b36[_0x53bdef(0xf0)]('source')?{'source':_0x325b36['str']('source')}:{},...readFavoriteFlag(_0x325b36)!==undefined?{'favorite':readFavoriteFlag(_0x325b36)}:{}});return{'ok':!![],'data':{'total':_0x312627[_0x53bdef(0x13c)],'items':_0x325b36[_0x53bdef(0x11c)]('verbose')?_0x312627:_0x312627[_0x53bdef(0x122)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x5d1f4f(0x140),'command':'detail','description':a10_0x5d1f4f(0x10d),'risk':a10_0x5d1f4f(0x113),'flags':[{...ID_FLAG,'description':a10_0x5d1f4f(0x116)}],async 'execute'(_0x32cb6c){const _0x30e8b5=a10_0x5d1f4f,_0x52e7a2=await getRuntimeArtifact(_0x32cb6c[_0x30e8b5(0x11a)]('id'),_0x32cb6c['appCode']);return{'ok':!![],'data':detailArtifact(_0x52e7a2)};}},artifactCreate={'service':'artifact','command':a10_0x5d1f4f(0x109),'description':a10_0x5d1f4f(0x10b),'risk':a10_0x5d1f4f(0x10a),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5806ca){const _0x45bb87=a10_0x5d1f4f,_0x5654ca=buildArtifactInput(_0x5806ca),_0x47353d=await createRuntimeArtifact(_0x5806ca['appCode'],_0x5654ca);return{'ok':!![],'data':detailArtifact(_0x47353d),'message':_0x45bb87(0x135)+_0x47353d['id']+(_0x47353d[_0x45bb87(0x125)]?'\x20('+_0x47353d[_0x45bb87(0x125)]+')':'')};},async 'dryRun'(_0x5919ba){const _0xdf59a1=a10_0x5d1f4f,_0x783405=buildArtifactInput(_0x5919ba);return dryRun(_0xdf59a1(0x131),_0xdf59a1(0x10c))[_0xdf59a1(0x136)]({'appCode':_0x5919ba[_0xdf59a1(0xf4)],..._0x783405})[_0xdf59a1(0x103)]('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x37efb6){const _0x520a3d=a10_0x5d1f4f,_0x3f8fc4=_0x37efb6['data']?.['id'];if(typeof _0x3f8fc4!==_0x520a3d(0x121)&&typeof _0x3f8fc4!=='number')return undefined;return{'kind':_0x520a3d(0x140),'id':String(_0x3f8fc4),'action':_0x520a3d(0x109)};}},artifactUpdate={'service':a10_0x5d1f4f(0x140),'command':a10_0x5d1f4f(0x130),'description':a10_0x5d1f4f(0xf8),'risk':a10_0x5d1f4f(0x10a),'confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':a10_0x5d1f4f(0x116)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x49ec57){const _0x11b180=a10_0x5d1f4f,_0x5db355=_0x49ec57[_0x11b180(0x11a)]('id'),_0x1f6c46=buildArtifactInput(_0x49ec57),_0x4f7bf2=await updateRuntimeArtifact(_0x5db355,_0x49ec57['appCode'],_0x1f6c46);return{'ok':!![],'data':detailArtifact(_0x4f7bf2),'message':_0x11b180(0x124)+_0x4f7bf2['id']+(_0x4f7bf2[_0x11b180(0x125)]?'\x20('+_0x4f7bf2[_0x11b180(0x125)]+')':'')};},async 'dryRun'(_0xd90036){const _0x192031=a10_0x5d1f4f,_0x311763=_0xd90036['num']('id'),_0x44c3bf=buildArtifactInput(_0xd90036);return dryRun('POST',_0x192031(0xf1)+_0x311763+_0x192031(0x13f))[_0x192031(0x136)]({'appCode':_0xd90036[_0x192031(0xf4)],..._0x44c3bf})[_0x192031(0x103)](_0x192031(0x112)+_0x311763)[_0x192031(0x11e)]();},'writeEventSubject'(_0x455a27){const _0x2f5b7d=a10_0x5d1f4f,_0x4a42a1=_0x455a27[_0x2f5b7d(0x110)]?.['id'];if(typeof _0x4a42a1!==_0x2f5b7d(0x121)&&typeof _0x4a42a1!==_0x2f5b7d(0x12e))return undefined;return{'kind':'artifact','id':String(_0x4a42a1),'action':'update'};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x53ebe4=a10_0x448d;(function(_0x2d643c,_0x4e44bf){const _0x47737a=a10_0x448d,_0x185cae=_0x2d643c();while(!![]){try{const _0x23dbdc=parseInt(_0x47737a(0x1a1))/0x1+parseInt(_0x47737a(0x1bc))/0x2*(-parseInt(_0x47737a(0x1dd))/0x3)+parseInt(_0x47737a(0x1b9))/0x4+-parseInt(_0x47737a(0x1ad))/0x5*(parseInt(_0x47737a(0x1d9))/0x6)+parseInt(_0x47737a(0x1d0))/0x7*(parseInt(_0x47737a(0x1d5))/0x8)+-parseInt(_0x47737a(0x1ac))/0x9+parseInt(_0x47737a(0x1b5))/0xa*(parseInt(_0x47737a(0x19b))/0xb);if(_0x23dbdc===_0x4e44bf)break;else _0x185cae['push'](_0x185cae['shift']());}catch(_0x2f1b38){_0x185cae['push'](_0x185cae['shift']());}}}(a10_0x55f5,0xe9a20));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_0x53ebe4(0x1cf),ARTIFACT_SOURCE_AGENT=a10_0x53ebe4(0x194),ALLOWED_REACT_MODULE_IMPORTS=['react',a10_0x53ebe4(0x1b6),'lodash','dayjs',a10_0x53ebe4(0x193),a10_0x53ebe4(0x1d1)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x53ebe4(0x1bb)](',\x20');function a10_0x55f5(){const _0x1555db=['Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','artifact','7256CbmMIA','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','react_module\x20imports\x20are\x20limited\x20to:\x20','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','1106106uhHHJR','add','appCode','artifactType','21qZKLqN','bool','trim','some','data','compiledContent','read','antd','AGENT','boolean','exec','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','createTime','/update','source','2091056agQOHm','list','name','content','isArray','flag','1447405pXajFp','includes','file','number','filter','object','Artifact\x20ID','num','detail','startsWith','description','14638599qyFYgZ','25HOodjS','write','utf8','metadata','string','updateTime','update','.\x20Unsupported:\x20','80HvqZaA','react-dom','Invalid\x20JSON\x20for\x20--metadata:\x20','File\x20not\x20found:\x20','1826132ZZEGsK','Updated\x20Artifact\x20','join','493466olKSeP','lastIndex','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','map','deleted','length','File\x20path\x20is\x20required.','split','List\x20current-app\x20react_module\x20Artifacts','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','Artifact\x20source\x20file\x20is\x20blank.','str','test','File\x20is\x20not\x20a\x20regular\x20file:\x20','/client/artifact/','favorite','create','POST','react_module','13951GdajnV','@ant-design/icons','validation'];a10_0x55f5=function(){return _0x1555db;};return a10_0x55f5();}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_0x53ebe4(0x1a3),'type':'string','required':!![],'description':a10_0x53ebe4(0x1d3)},ARTIFACT_NAME_FLAG={'name':a10_0x53ebe4(0x19d),'type':a10_0x53ebe4(0x1b1),'description':'Artifact\x20display\x20name'},METADATA_FLAG={'name':a10_0x53ebe4(0x1b0),'type':'string','description':'Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped'};function isPlainObject(_0x458473){const _0xa28aa4=a10_0x53ebe4;return typeof _0x458473===_0xa28aa4(0x1a6)&&_0x458473!==null&&!Array[_0xa28aa4(0x19f)](_0x458473);}function readSourceFile(_0x5627bb){const _0x5ec2f2=a10_0x53ebe4;if(!_0x5627bb)throw CliErrors['validation'](_0x5ec2f2(0x1c3));if(!existsSync(_0x5627bb))throw CliErrors[_0x5ec2f2(0x1d2)](_0x5ec2f2(0x1b8)+_0x5627bb);if(!statSync(_0x5627bb)['isFile']())throw CliErrors[_0x5ec2f2(0x1d2)](_0x5ec2f2(0x1ca)+_0x5627bb);const _0x39aac7=readFileSync(_0x5627bb,_0x5ec2f2(0x1af));return validateReactModuleSource(_0x39aac7),_0x39aac7;}function parseMetadata(_0xe364d0){const _0x22377e=a10_0x53ebe4;if(!_0xe364d0)return undefined;let _0x469659;try{_0x469659=JSON['parse'](_0xe364d0);}catch{throw CliErrors[_0x22377e(0x1d2)](_0x22377e(0x1b7)+_0xe364d0);}if(!isPlainObject(_0x469659))throw CliErrors['validation']('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x4dca0c={..._0x469659};return delete _0x4dca0c['compiledContent'],_0x4dca0c;}function getPackageName(_0x394c68){const _0x30bc95=a10_0x53ebe4;if(_0x394c68[_0x30bc95(0x1aa)]('@')){const [_0x52db57,_0x4dcc21]=_0x394c68['split']('/');return _0x52db57&&_0x4dcc21?_0x52db57+'/'+_0x4dcc21:_0x394c68;}return _0x394c68[_0x30bc95(0x1c4)]('/')[0x0]||_0x394c68;}function validateAllowedImports(_0x398f13){const _0x1377f1=a10_0x53ebe4,_0x39296b=new Set();for(const _0x387fdb of IMPORT_SOURCE_PATTERNS){_0x387fdb[_0x1377f1(0x1bd)]=0x0;let _0x52ea75;while((_0x52ea75=_0x387fdb[_0x1377f1(0x196)](_0x398f13))!==null){const _0xd3925b=_0x52ea75[0x1]?.['trim']();_0xd3925b&&_0x39296b[_0x1377f1(0x1da)](_0xd3925b);}}const _0x856c30=[..._0x39296b][_0x1377f1(0x1c0)](getPackageName)[_0x1377f1(0x1a5)](_0x5f2d5c=>!ALLOWED_REACT_MODULE_IMPORTS[_0x1377f1(0x1a2)](_0x5f2d5c));if(_0x856c30[_0x1377f1(0x1c2)]>0x0)throw CliErrors[_0x1377f1(0x1d2)](_0x1377f1(0x1d7)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x1377f1(0x1b4)+[...new Set(_0x856c30)]['join'](',\x20'));}export function validateReactModuleSource(_0x5b9285){const _0x3bae07=a10_0x53ebe4;if(!_0x5b9285[_0x3bae07(0x1df)]())throw CliErrors[_0x3bae07(0x1d2)](_0x3bae07(0x1c7));if(PAGE_LEVEL_PATTERNS[_0x3bae07(0x18f)](_0x332f85=>_0x332f85[_0x3bae07(0x1c9)](_0x5b9285)))throw CliErrors[_0x3bae07(0x1d2)](_0x3bae07(0x1be));validateAllowedImports(_0x5b9285);}function buildArtifactInput(_0x18a914){const _0xfacb=a10_0x53ebe4,_0x213381=readSourceFile(_0x18a914['str'](_0xfacb(0x1a3))),_0x55c2e3=_0x18a914[_0xfacb(0x1c8)](_0xfacb(0x19d))[_0xfacb(0x1df)](),_0x17570e=parseMetadata(_0x18a914[_0xfacb(0x1c8)]('metadata'));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x55c2e3?{'name':_0x55c2e3}:{},'content':_0x213381,..._0x17570e?{'metadata':_0x17570e}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x551d91){const _0x55694d=a10_0x53ebe4;return{'id':_0x551d91['id'],'name':_0x551d91[_0x55694d(0x19d)],'artifactType':_0x551d91[_0x55694d(0x1dc)],'source':_0x551d91[_0x55694d(0x19a)],'favorite':_0x551d91['favorite'],'deleted':_0x551d91[_0x55694d(0x1c1)],'createTime':_0x551d91[_0x55694d(0x198)],'updateTime':_0x551d91[_0x55694d(0x1b2)]};}function detailArtifact(_0x2fdcc0){const _0x24f4f6=a10_0x53ebe4;return{'id':_0x2fdcc0['id'],'appCode':_0x2fdcc0[_0x24f4f6(0x1db)],'name':_0x2fdcc0[_0x24f4f6(0x19d)],'artifactType':_0x2fdcc0[_0x24f4f6(0x1dc)],'source':_0x2fdcc0[_0x24f4f6(0x19a)],'favorite':_0x2fdcc0[_0x24f4f6(0x1cc)],'deleted':_0x2fdcc0[_0x24f4f6(0x1c1)],'content':_0x2fdcc0[_0x24f4f6(0x19e)]??'','compiledContent':_0x2fdcc0[_0x24f4f6(0x191)],'metadata':_0x2fdcc0[_0x24f4f6(0x1b0)]??{},'createTime':_0x2fdcc0[_0x24f4f6(0x198)],'updateTime':_0x2fdcc0['updateTime']};}function readFavoriteFlag(_0x34d007){const _0x1e46c6=a10_0x53ebe4,_0x2f1ef8=_0x34d007[_0x1e46c6(0x1a0)]('favorite');return _0x2f1ef8===undefined||_0x2f1ef8===null||_0x2f1ef8===''?undefined:_0x34d007[_0x1e46c6(0x1de)]('favorite');}function a10_0x448d(_0xa6abb3,_0x27ccfb){_0xa6abb3=_0xa6abb3-0x18f;const _0x55f589=a10_0x55f5();let _0x448d27=_0x55f589[_0xa6abb3];return _0x448d27;}const artifactList={'service':a10_0x53ebe4(0x1d4),'command':a10_0x53ebe4(0x19c),'description':a10_0x53ebe4(0x1c5),'risk':a10_0x53ebe4(0x192),'flags':[{'name':a10_0x53ebe4(0x19a),'type':a10_0x53ebe4(0x1b1),'description':a10_0x53ebe4(0x1d6)},{'name':'favorite','type':a10_0x53ebe4(0x195),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x1b0a28){const _0x69897=a10_0x53ebe4,_0x3b1b83=await listRuntimeArtifacts(_0x1b0a28['appCode'],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x1b0a28[_0x69897(0x1c8)](_0x69897(0x19a))?{'source':_0x1b0a28[_0x69897(0x1c8)](_0x69897(0x19a))}:{},...readFavoriteFlag(_0x1b0a28)!==undefined?{'favorite':readFavoriteFlag(_0x1b0a28)}:{}});return{'ok':!![],'data':{'total':_0x3b1b83[_0x69897(0x1c2)],'items':_0x1b0a28[_0x69897(0x1de)]('verbose')?_0x3b1b83:_0x3b1b83[_0x69897(0x1c0)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x53ebe4(0x1d4),'command':a10_0x53ebe4(0x1a9),'description':'Show\x20one\x20Artifact\x20by\x20id','risk':'read','flags':[{...ID_FLAG,'description':a10_0x53ebe4(0x1a7)}],async 'execute'(_0x593a05){const _0x1e803d=a10_0x53ebe4,_0xc3155b=await getRuntimeArtifact(_0x593a05[_0x1e803d(0x1a8)]('id'),_0x593a05[_0x1e803d(0x1db)]);return{'ok':!![],'data':detailArtifact(_0xc3155b)};}},artifactCreate={'service':a10_0x53ebe4(0x1d4),'command':a10_0x53ebe4(0x1cd),'description':a10_0x53ebe4(0x1c6),'risk':a10_0x53ebe4(0x1ae),'confirmationDescription':a10_0x53ebe4(0x197),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x10f0a1){const _0x5354cc=a10_0x53ebe4,_0x48b1f0=buildArtifactInput(_0x10f0a1),_0xa2286a=await createRuntimeArtifact(_0x10f0a1[_0x5354cc(0x1db)],_0x48b1f0);return{'ok':!![],'data':detailArtifact(_0xa2286a),'message':'Created\x20Artifact\x20'+_0xa2286a['id']+(_0xa2286a[_0x5354cc(0x19d)]?'\x20('+_0xa2286a[_0x5354cc(0x19d)]+')':'')};},async 'dryRun'(_0x5ab233){const _0x15e4ea=a10_0x53ebe4,_0x33cea7=buildArtifactInput(_0x5ab233);return dryRun('POST','/client/artifact/create')['body']({'appCode':_0x5ab233[_0x15e4ea(0x1db)],..._0x33cea7})[_0x15e4ea(0x1ab)]('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x5940a0){const _0x3e2dd5=a10_0x53ebe4,_0x3a1100=_0x5940a0['data']?.['id'];if(typeof _0x3a1100!==_0x3e2dd5(0x1b1)&&typeof _0x3a1100!==_0x3e2dd5(0x1a4))return undefined;return{'kind':_0x3e2dd5(0x1d4),'id':String(_0x3a1100),'action':'create'};}},artifactUpdate={'service':a10_0x53ebe4(0x1d4),'command':a10_0x53ebe4(0x1b3),'description':a10_0x53ebe4(0x1d8),'risk':a10_0x53ebe4(0x1ae),'confirmationDescription':a10_0x53ebe4(0x1bf),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x231010){const _0x16d6ad=a10_0x53ebe4,_0x44d1f4=_0x231010['num']('id'),_0x382e70=buildArtifactInput(_0x231010),_0xceeedd=await updateRuntimeArtifact(_0x44d1f4,_0x231010[_0x16d6ad(0x1db)],_0x382e70);return{'ok':!![],'data':detailArtifact(_0xceeedd),'message':_0x16d6ad(0x1ba)+_0xceeedd['id']+(_0xceeedd['name']?'\x20('+_0xceeedd[_0x16d6ad(0x19d)]+')':'')};},async 'dryRun'(_0x57837d){const _0x14c4c4=a10_0x53ebe4,_0x4d1666=_0x57837d[_0x14c4c4(0x1a8)]('id'),_0x309cd5=buildArtifactInput(_0x57837d);return dryRun(_0x14c4c4(0x1ce),_0x14c4c4(0x1cb)+_0x4d1666+_0x14c4c4(0x199))['body']({'appCode':_0x57837d[_0x14c4c4(0x1db)],..._0x309cd5})['description']('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x4d1666)['build']();},'writeEventSubject'(_0x4438ef){const _0x19ed65=a10_0x53ebe4,_0x24fd1b=_0x4438ef[_0x19ed65(0x190)]?.['id'];if(typeof _0x24fd1b!==_0x19ed65(0x1b1)&&typeof _0x24fd1b!=='number')return undefined;return{'kind':_0x19ed65(0x1d4),'id':String(_0x24fd1b),'action':_0x19ed65(0x1b3)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x2ff205=a11_0x2b88;(function(_0x5df87f,_0x464a40){const _0x119d79=a11_0x2b88,_0x4d9901=_0x5df87f();while(!![]){try{const _0xb7d79d=-parseInt(_0x119d79(0x190))/0x1+-parseInt(_0x119d79(0x172))/0x2+parseInt(_0x119d79(0x16f))/0x3*(-parseInt(_0x119d79(0x17a))/0x4)+-parseInt(_0x119d79(0x175))/0x5*(parseInt(_0x119d79(0x178))/0x6)+parseInt(_0x119d79(0x184))/0x7*(-parseInt(_0x119d79(0x17b))/0x8)+-parseInt(_0x119d79(0x1a4))/0x9*(-parseInt(_0x119d79(0x187))/0xa)+parseInt(_0x119d79(0x186))/0xb;if(_0xb7d79d===_0x464a40)break;else _0x4d9901['push'](_0x4d9901['shift']());}catch(_0x4a2e6e){_0x4d9901['push'](_0x4d9901['shift']());}}}(a11_0x40d3,0x1d4b1));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';function a11_0x40d3(){const _0x4c6b94=['signal','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','91eRVURj','expired','4787519emvDVh','20ThIwIX','networkError','/api/device-auth/token','write','getTime','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','\x20auth\x20device','padStart','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','32844HkZKSW','once','global','Device\x20auth\x20API\x20returned\x20HTTP\x20','/device-auth?code=','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','&source=','SIGINT','object','now','parse','device','Device\x20authorization\x20successful.','bool','source','utf8','trim','\x0dWaiting\x20for\x20authorization...\x20','string','Invalid\x20device\x20auth\x20response','3609tNFlvt','scope','url-only','randomUUID','Write\x20to\x20project\x20config','success','code','access_key','project','),\x20retrying...','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','apiError','cancelled','POST','createdAt','lovrabet-cli','accessKey','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','log','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','test','Device\x20auth\x20API\x20error\x20(','Invalid\x20access_key\x20returned\x20by\x20server.','auth','stderr','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','toISOString','177273bordrx','data','boolean','187866BjrYjg','/.device-auth','validation','9515PcRKPd','abort','After\x20authorizing,\x20re-run:\x20','198eWTIiv','str','4tTnkWS','41464QmIYWN','status','Device\x20authorization\x20cancelled.','floor','removeListener','global-default','\x20auth\x20status'];a11_0x40d3=function(){return _0x4c6b94;};return a11_0x40d3();}import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x144838){const _0x46431a=a11_0x2b88;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x144838[_0x46431a(0x19d)]('global'),'explicitProject':_0x144838['bool'](_0x46431a(0x1ac)),'policy':_0x46431a(0x180)}));}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 _0x20a920=a11_0x2b88;return crypto[_0x20a920(0x1a7)]();}export function buildDeviceAuthUrl(_0x51abdc,_0x285673,_0x21922e=a11_0x2ff205(0x163)){const _0x5635b2=a11_0x2ff205;return _0x51abdc+_0x5635b2(0x194)+encodeURIComponent(_0x285673)+_0x5635b2(0x196)+encodeURIComponent(_0x21922e);}export function getDeviceCodePath(){const _0xa8adf0=a11_0x2ff205;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0xa8adf0(0x173);}export function readStoredDeviceCode(){const _0x91dc5e=a11_0x2ff205,_0x29c0b5=getDeviceCodePath();if(!existsSync(_0x29c0b5))return null;try{const _0x1c0436=readFileSync(_0x29c0b5,{'encoding':_0x91dc5e(0x19f)}),_0x316f4c=JSON[_0x91dc5e(0x19a)](_0x1c0436);if(_0x316f4c&&typeof _0x316f4c[_0x91dc5e(0x1aa)]===_0x91dc5e(0x1a2)&&typeof _0x316f4c[_0x91dc5e(0x162)]===_0x91dc5e(0x1a2)&&(_0x316f4c[_0x91dc5e(0x1a5)]===_0x91dc5e(0x192)||_0x316f4c[_0x91dc5e(0x1a5)]===_0x91dc5e(0x1ac)))return _0x316f4c;}catch{}return null;}export function writeStoredDeviceCode(_0x493afe,_0x582ed9){const _0x1b1edb=a11_0x2ff205,_0x45b96a=getDeviceCodePath(),_0x2d2fb9=dirname(_0x45b96a);!existsSync(_0x2d2fb9)&&mkdirSync(_0x2d2fb9,{'recursive':!![]});const _0x3c509b={'code':_0x493afe,'createdAt':new Date()[_0x1b1edb(0x16e)](),'scope':_0x582ed9};writeFileSync(_0x45b96a,JSON['stringify'](_0x3c509b),{'encoding':'utf8','mode':0x180});}export function deleteStoredDeviceCode(){const _0x9fe97f=getDeviceCodePath();try{unlinkSync(_0x9fe97f);}catch{}}export function isStoredDeviceCodeExpired(_0x9b1ba1){const _0x59528c=a11_0x2ff205;return Date[_0x59528c(0x199)]()-new Date(_0x9b1ba1['createdAt'])[_0x59528c(0x18b)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x4991a9,_0x5324fa){const _0x4d2809=a11_0x2ff205,_0x3924f7=_0x4991a9+_0x4d2809(0x189),_0x3beb2f=new AbortController(),_0x252477=setTimeout(()=>_0x3beb2f[_0x4d2809(0x176)](),0x2710),_0x31c3ae=await fetch(_0x3924f7,{'method':_0x4d2809(0x161),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'code':_0x5324fa}),'signal':_0x3beb2f[_0x4d2809(0x182)]});clearTimeout(_0x252477);if(!_0x31c3ae['ok'])throw CliErrors['networkError'](_0x4d2809(0x193)+_0x31c3ae[_0x4d2809(0x17c)]);const _0x192d1f=await _0x31c3ae['json'](),_0x311a59=_0x192d1f['data']&&typeof _0x192d1f[_0x4d2809(0x170)]===_0x4d2809(0x198)?_0x192d1f[_0x4d2809(0x170)]:_0x192d1f;if(!_0x311a59||typeof _0x311a59[_0x4d2809(0x17c)]!==_0x4d2809(0x1a2))throw CliErrors['apiError'](_0x4d2809(0x1a3));return{'status':_0x311a59[_0x4d2809(0x17c)],'access_key':typeof _0x311a59[_0x4d2809(0x1ab)]===_0x4d2809(0x1a2)?_0x311a59[_0x4d2809(0x1ab)]:undefined};}function a11_0x2b88(_0x542bd5,_0x4cbfd9){_0x542bd5=_0x542bd5-0x15f;const _0x40d39b=a11_0x40d3();let _0x2b8820=_0x40d39b[_0x542bd5];return _0x2b8820;}export async function pollDeviceToken(_0x1c4d02,_0xc00180,_0x4d041b){const _0x578143=a11_0x2ff205;let _0x3e3543=0x0;for(let _0x3c87da=0x0;_0x3c87da<MAX_POLLS;_0x3c87da++){if(_0x4d041b['aborted'])throw CliErrors[_0x578143(0x160)]('Device\x20authorization\x20cancelled.');let _0x4a2458;try{_0x4a2458=await fetchDeviceToken(_0x1c4d02,_0xc00180);}catch(_0x35bc04){if(_0x35bc04 instanceof Error&&_0x35bc04['name']==='AbortError')throw CliErrors[_0x578143(0x160)](_0x578143(0x17d));_0x3e3543++;if(_0x3e3543>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x578143(0x188)](_0x578143(0x183));writeCliSideChannelLine(_0x578143(0x169)+_0x3e3543+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x578143(0x1ad)),await sleep(POLL_INTERVAL_MS);continue;}_0x3e3543=0x0;if(_0x4a2458[_0x578143(0x17c)]===_0x578143(0x1a9)){if(!_0x4a2458[_0x578143(0x1ab)])throw CliErrors[_0x578143(0x15f)]('Invalid\x20access_key\x20returned\x20by\x20server.');return _0x4a2458['access_key'];}if(_0x4a2458[_0x578143(0x17c)]===_0x578143(0x185)){deleteStoredDeviceCode();throw CliErrors[_0x578143(0x174)]('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x116ad0=(_0x3c87da+0x1)*POLL_INTERVAL_MS,_0x25c7d0=DEVICE_CODE_TTL_MS-_0x116ad0,_0x5b6d2c=Math['floor'](_0x25c7d0/0xea60),_0x187755=Math[_0x578143(0x17e)](_0x25c7d0%0xea60/0x3e8);process['stderr'][_0x578143(0x18a)](_0x578143(0x1a1)+_0x5b6d2c+':'+String(_0x187755)[_0x578143(0x18e)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x578143(0x174)](_0x578143(0x165));}function sleep(_0x25a075){return new Promise(_0x5de379=>setTimeout(_0x5de379,_0x25a075));}export const authDeviceDefinition={'service':a11_0x2ff205(0x16b),'command':a11_0x2ff205(0x19b),'description':a11_0x2ff205(0x1ae),'risk':a11_0x2ff205(0x18a),'confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x2ff205(0x192),'type':a11_0x2ff205(0x171),'description':'Write\x20to\x20global\x20config\x20(default)','default':!![]},{'name':'project','type':a11_0x2ff205(0x171),'description':a11_0x2ff205(0x1a8),'default':![]},{'name':a11_0x2ff205(0x19e),'type':a11_0x2ff205(0x1a2),'description':'App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','default':'lovrabet-cli'},{'name':a11_0x2ff205(0x1a6),'type':a11_0x2ff205(0x171),'description':a11_0x2ff205(0x16d),'default':![]}],async 'execute'(_0x494f76){const _0x43b786=a11_0x2ff205,_0x1c5fd3=resolveAuthScopeFlags(_0x494f76),_0x208e9e=_0x1c5fd3[_0x43b786(0x192)]?_0x43b786(0x192):_0x43b786(0x1ac),_0x148dc5=readScopedConfig(_0x1c5fd3);if(_0x148dc5[_0x43b786(0x164)])return{'ok':!![],'message':_0x43b786(0x195)};const _0x10301b=(_0x494f76[_0x43b786(0x179)]('source')||_0x43b786(0x163))[_0x43b786(0x1a0)](),_0x26e34f=getUserDomain(),_0x7df86e=readStoredDeviceCode(),_0xc5a89b=_0x7df86e&&!isStoredDeviceCodeExpired(_0x7df86e)?_0x7df86e['code']:((()=>{const _0x40ce35=generateDeviceCode();return writeStoredDeviceCode(_0x40ce35,_0x208e9e),_0x40ce35;})()),_0xef2a5e=buildDeviceAuthUrl(_0x26e34f,_0xc5a89b,_0x10301b);if(_0x494f76[_0x43b786(0x19d)]('url-only'))return console[_0x43b786(0x166)](_0xef2a5e),{'ok':!![]};writeCliSideChannelLine(_0x43b786(0x18c)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0xef2a5e),writeCliSideChannelLine(''),writeCliSideChannelLine('The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.');if(_0x494f76['nonInteractive'])return writeCliSideChannelLine(_0x43b786(0x177)+CLI_BIN_NAME+_0x43b786(0x18d)),{'ok':!![],'message':_0x43b786(0x18f)};writeCliSideChannelLine(_0x43b786(0x167));const _0x7584d6=new AbortController(),_0x32cd9b=()=>{const _0x539d46=_0x43b786;_0x7584d6[_0x539d46(0x176)](),process[_0x539d46(0x17f)](_0x539d46(0x197),_0x32cd9b);};process[_0x43b786(0x191)]('SIGINT',_0x32cd9b);let _0x2616ad;try{_0x2616ad=await pollDeviceToken(_0x26e34f,_0xc5a89b,_0x7584d6[_0x43b786(0x182)]);}finally{process['removeListener'](_0x43b786(0x197),_0x32cd9b);}if(!ACCESS_KEY_PATTERN[_0x43b786(0x168)](_0x2616ad))throw CliErrors[_0x43b786(0x15f)](_0x43b786(0x16a));const _0x19c86c=readScopedConfig(_0x1c5fd3);return _0x19c86c[_0x43b786(0x164)]=_0x2616ad,writeScopedConfig(_0x19c86c,_0x1c5fd3),deleteStoredDeviceCode(),process[_0x43b786(0x16c)][_0x43b786(0x18a)]('\x0a'),writeCliSideChannelLine('AccessKey\x20saved\x20to\x20'+_0x208e9e+'\x20config.'),writeCliSideChannelLine('Verify:\x20'+CLI_BIN_NAME+_0x43b786(0x181)),{'ok':!![],'message':_0x43b786(0x19c)};}};
|
|
1
|
+
const a11_0xc5ca08=a11_0x20c7;(function(_0x261b8a,_0x11f7cb){const _0x437d10=a11_0x20c7,_0x1de142=_0x261b8a();while(!![]){try{const _0x2b3f7a=parseInt(_0x437d10(0x136))/0x1*(-parseInt(_0x437d10(0x16b))/0x2)+-parseInt(_0x437d10(0x146))/0x3*(-parseInt(_0x437d10(0x150))/0x4)+parseInt(_0x437d10(0x129))/0x5+-parseInt(_0x437d10(0x153))/0x6*(parseInt(_0x437d10(0x13c))/0x7)+-parseInt(_0x437d10(0x149))/0x8*(-parseInt(_0x437d10(0x130))/0x9)+-parseInt(_0x437d10(0x15e))/0xa+-parseInt(_0x437d10(0x13b))/0xb*(-parseInt(_0x437d10(0x170))/0xc);if(_0x2b3f7a===_0x11f7cb)break;else _0x1de142['push'](_0x1de142['shift']());}catch(_0x393a7c){_0x1de142['push'](_0x1de142['shift']());}}}(a11_0x526b,0x612c5));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_0x526b(){const _0x363d1=['string','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','&source=','apiError','Device\x20authorization\x20cancelled.','global-default','738758rRXVNt','data','getTime','scope','\x0dWaiting\x20for\x20authorization...\x20','12RCLFIr','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','Device\x20authorization\x20successful.','now','parse','code','padStart','floor','Device\x20auth\x20API\x20returned\x20HTTP\x20','Invalid\x20access_key\x20returned\x20by\x20server.','1593650PuIsas','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','cancelled','After\x20authorizing,\x20re-run:\x20','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','object','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','15606FLbqDN','trim','log','bool','),\x20retrying...','homeDirName','1gygetQ','write','AbortError','nonInteractive','abort','4436234qsKesq','725529VbQeZx','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','Write\x20to\x20project\x20config','stderr','Invalid\x20device\x20auth\x20response','status','stringify','source','accessKey','test','6paHVtY','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','access_key','1720CTOAHv','lovrabet-cli','Write\x20to\x20global\x20config\x20(default)','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','signal','boolean','validation','1320268kCZKhq','success','once','30iWszoB','expired','SIGINT','removeListener','auth','AccessKey\x20saved\x20to\x20','\x20auth\x20device','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','str','createdAt','Verify:\x20','4693330XxXAkJ','application/json','global','utf8','name','\x20auth\x20status','project'];a11_0x526b=function(){return _0x363d1;};return a11_0x526b();}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(_0x49818a){const _0x51d8c9=a11_0x20c7;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x49818a[_0x51d8c9(0x133)](_0x51d8c9(0x160)),'explicitProject':_0x49818a['bool'](_0x51d8c9(0x164)),'policy':_0x51d8c9(0x16a)}));}const ACCESS_KEY_PATTERN=/^ak_[A-Za-z0-9]{16,}$/,DEVICE_CODE_TTL_MS=0x927c0,POLL_INTERVAL_MS=0xbb8,MAX_POLLS=0xc8,MAX_CONSECUTIVE_NETWORK_ERRORS=0x5;export function generateDeviceCode(){return crypto['randomUUID']();}export function buildDeviceAuthUrl(_0x2278df,_0x415642,_0x3f040e='lovrabet-cli'){const _0x2db5a7=a11_0x20c7;return _0x2278df+'/device-auth?code='+encodeURIComponent(_0x415642)+_0x2db5a7(0x167)+encodeURIComponent(_0x3f040e);}export function getDeviceCodePath(){const _0x59827a=a11_0x20c7;return homedir()+'/'+PRODUCT_CONFIG[_0x59827a(0x135)]+'/.device-auth';}export function readStoredDeviceCode(){const _0x1f45c0=a11_0x20c7,_0x37f33d=getDeviceCodePath();if(!existsSync(_0x37f33d))return null;try{const _0x47151d=readFileSync(_0x37f33d,{'encoding':_0x1f45c0(0x161)}),_0x68202b=JSON[_0x1f45c0(0x123)](_0x47151d);if(_0x68202b&&typeof _0x68202b[_0x1f45c0(0x124)]===_0x1f45c0(0x165)&&typeof _0x68202b[_0x1f45c0(0x15c)]===_0x1f45c0(0x165)&&(_0x68202b[_0x1f45c0(0x16e)]===_0x1f45c0(0x160)||_0x68202b[_0x1f45c0(0x16e)]===_0x1f45c0(0x164)))return _0x68202b;}catch{}return null;}function a11_0x20c7(_0x2dbf76,_0x362913){_0x2dbf76=_0x2dbf76-0x123;const _0x526b30=a11_0x526b();let _0x20c74a=_0x526b30[_0x2dbf76];return _0x20c74a;}export function writeStoredDeviceCode(_0x333ee6,_0x58a4a6){const _0x2a347e=a11_0x20c7,_0x44987f=getDeviceCodePath(),_0x291198=dirname(_0x44987f);!existsSync(_0x291198)&&mkdirSync(_0x291198,{'recursive':!![]});const _0x5c3cf0={'code':_0x333ee6,'createdAt':new Date()['toISOString'](),'scope':_0x58a4a6};writeFileSync(_0x44987f,JSON[_0x2a347e(0x142)](_0x5c3cf0),{'encoding':_0x2a347e(0x161),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x1f776a=getDeviceCodePath();try{unlinkSync(_0x1f776a);}catch{}}export function isStoredDeviceCodeExpired(_0x257443){const _0x20bfce=a11_0x20c7;return Date[_0x20bfce(0x173)]()-new Date(_0x257443['createdAt'])[_0x20bfce(0x16d)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x138d24,_0x4aa8e6){const _0x545d62=a11_0x20c7,_0x3ae6f3=_0x138d24+'/api/device-auth/token',_0x536665=new AbortController(),_0x54b8f6=setTimeout(()=>_0x536665['abort'](),0x2710),_0x5ae945=await fetch(_0x3ae6f3,{'method':'POST','headers':{'Content-Type':_0x545d62(0x15f)},'body':JSON[_0x545d62(0x142)]({'code':_0x4aa8e6}),'signal':_0x536665[_0x545d62(0x14d)]});clearTimeout(_0x54b8f6);if(!_0x5ae945['ok'])throw CliErrors['networkError'](_0x545d62(0x127)+_0x5ae945[_0x545d62(0x141)]);const _0x1e59f9=await _0x5ae945['json'](),_0x34321f=_0x1e59f9['data']&&typeof _0x1e59f9[_0x545d62(0x16c)]===_0x545d62(0x12e)?_0x1e59f9[_0x545d62(0x16c)]:_0x1e59f9;if(!_0x34321f||typeof _0x34321f[_0x545d62(0x141)]!=='string')throw CliErrors[_0x545d62(0x168)](_0x545d62(0x140));return{'status':_0x34321f[_0x545d62(0x141)],'access_key':typeof _0x34321f[_0x545d62(0x148)]===_0x545d62(0x165)?_0x34321f['access_key']:undefined};}export async function pollDeviceToken(_0x5061a7,_0x742423,_0x3a2f48){const _0x4e59ea=a11_0x20c7;let _0x1d794c=0x0;for(let _0x24db16=0x0;_0x24db16<MAX_POLLS;_0x24db16++){if(_0x3a2f48['aborted'])throw CliErrors['cancelled']('Device\x20authorization\x20cancelled.');let _0x4316bf;try{_0x4316bf=await fetchDeviceToken(_0x5061a7,_0x742423);}catch(_0x27e9ca){if(_0x27e9ca instanceof Error&&_0x27e9ca[_0x4e59ea(0x162)]===_0x4e59ea(0x138))throw CliErrors[_0x4e59ea(0x12b)](_0x4e59ea(0x169));_0x1d794c++;if(_0x1d794c>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors['networkError'](_0x4e59ea(0x12d));writeCliSideChannelLine('Device\x20auth\x20API\x20error\x20('+_0x1d794c+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x4e59ea(0x134)),await sleep(POLL_INTERVAL_MS);continue;}_0x1d794c=0x0;if(_0x4316bf[_0x4e59ea(0x141)]===_0x4e59ea(0x151)){if(!_0x4316bf[_0x4e59ea(0x148)])throw CliErrors[_0x4e59ea(0x168)](_0x4e59ea(0x128));return _0x4316bf[_0x4e59ea(0x148)];}if(_0x4316bf[_0x4e59ea(0x141)]===_0x4e59ea(0x154)){deleteStoredDeviceCode();throw CliErrors[_0x4e59ea(0x14f)](_0x4e59ea(0x147));}const _0x54ae81=(_0x24db16+0x1)*POLL_INTERVAL_MS,_0x3b43a8=DEVICE_CODE_TTL_MS-_0x54ae81,_0x1c31b3=Math[_0x4e59ea(0x126)](_0x3b43a8/0xea60),_0x29d38d=Math['floor'](_0x3b43a8%0xea60/0x3e8);process[_0x4e59ea(0x13f)][_0x4e59ea(0x137)](_0x4e59ea(0x16f)+_0x1c31b3+':'+String(_0x29d38d)[_0x4e59ea(0x125)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x4e59ea(0x14f)](_0x4e59ea(0x14c));}function sleep(_0x5cd109){return new Promise(_0x463ae3=>setTimeout(_0x463ae3,_0x5cd109));}export const authDeviceDefinition={'service':a11_0xc5ca08(0x157),'command':'device','description':a11_0xc5ca08(0x171),'risk':a11_0xc5ca08(0x137),'confirmationDescription':'将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0xc5ca08(0x160),'type':a11_0xc5ca08(0x14e),'description':a11_0xc5ca08(0x14b),'default':!![]},{'name':'project','type':a11_0xc5ca08(0x14e),'description':a11_0xc5ca08(0x13e),'default':![]},{'name':a11_0xc5ca08(0x143),'type':a11_0xc5ca08(0x165),'description':a11_0xc5ca08(0x12a),'default':'lovrabet-cli'},{'name':'url-only','type':a11_0xc5ca08(0x14e),'description':'Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','default':![]}],async 'execute'(_0x19576b){const _0x54e9e4=a11_0xc5ca08,_0x4cee5c=resolveAuthScopeFlags(_0x19576b),_0x513982=_0x4cee5c[_0x54e9e4(0x160)]?'global':'project',_0xa2720c=readScopedConfig(_0x4cee5c);if(_0xa2720c['accessKey'])return{'ok':!![],'message':'Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.'};const _0x33bd0c=(_0x19576b[_0x54e9e4(0x15b)]('source')||_0x54e9e4(0x14a))[_0x54e9e4(0x131)](),_0x30708c=getUserDomain(),_0x80fba0=readStoredDeviceCode(),_0x43db43=_0x80fba0&&!isStoredDeviceCodeExpired(_0x80fba0)?_0x80fba0[_0x54e9e4(0x124)]:((()=>{const _0x3a6dec=generateDeviceCode();return writeStoredDeviceCode(_0x3a6dec,_0x513982),_0x3a6dec;})()),_0x5cb926=buildDeviceAuthUrl(_0x30708c,_0x43db43,_0x33bd0c);if(_0x19576b[_0x54e9e4(0x133)]('url-only'))return console[_0x54e9e4(0x132)](_0x5cb926),{'ok':!![]};writeCliSideChannelLine(_0x54e9e4(0x12f)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x5cb926),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x54e9e4(0x13d));if(_0x19576b[_0x54e9e4(0x139)])return writeCliSideChannelLine(_0x54e9e4(0x12c)+CLI_BIN_NAME+_0x54e9e4(0x159)),{'ok':!![],'message':_0x54e9e4(0x166)};writeCliSideChannelLine(_0x54e9e4(0x15a));const _0x2ba33a=new AbortController(),_0x148cc8=()=>{const _0x49d3c6=_0x54e9e4;_0x2ba33a[_0x49d3c6(0x13a)](),process[_0x49d3c6(0x156)]('SIGINT',_0x148cc8);};process[_0x54e9e4(0x152)]('SIGINT',_0x148cc8);let _0x90eee5;try{_0x90eee5=await pollDeviceToken(_0x30708c,_0x43db43,_0x2ba33a[_0x54e9e4(0x14d)]);}finally{process['removeListener'](_0x54e9e4(0x155),_0x148cc8);}if(!ACCESS_KEY_PATTERN[_0x54e9e4(0x145)](_0x90eee5))throw CliErrors['apiError'](_0x54e9e4(0x128));const _0x1b830d=readScopedConfig(_0x4cee5c);return _0x1b830d[_0x54e9e4(0x144)]=_0x90eee5,writeScopedConfig(_0x1b830d,_0x4cee5c),deleteStoredDeviceCode(),process[_0x54e9e4(0x13f)][_0x54e9e4(0x137)]('\x0a'),writeCliSideChannelLine(_0x54e9e4(0x158)+_0x513982+'\x20config.'),writeCliSideChannelLine(_0x54e9e4(0x15d)+CLI_BIN_NAME+_0x54e9e4(0x163)),{'ok':!![],'message':_0x54e9e4(0x172)};}};
|