@lovrabet/lovrabet-cli 2.2.4-beta.3 → 2.2.4
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
|
-
|
|
2
|
+
(function(_0x4da514,_0x370561){const _0x222feb=a0_0x5bfc,_0x4b6f90=_0x4da514();while(!![]){try{const _0x31f6cd=parseInt(_0x222feb(0x1ce))/0x1*(-parseInt(_0x222feb(0x1e2))/0x2)+parseInt(_0x222feb(0x1f1))/0x3*(-parseInt(_0x222feb(0x1e7))/0x4)+parseInt(_0x222feb(0x1d9))/0x5*(parseInt(_0x222feb(0x1e0))/0x6)+-parseInt(_0x222feb(0x1e8))/0x7*(-parseInt(_0x222feb(0x1da))/0x8)+parseInt(_0x222feb(0x1ca))/0x9*(parseInt(_0x222feb(0x1ef))/0xa)+-parseInt(_0x222feb(0x1c8))/0xb+parseInt(_0x222feb(0x1eb))/0xc;if(_0x31f6cd===_0x370561)break;else _0x4b6f90['push'](_0x4b6f90['shift']());}catch(_0x59fab9){_0x4b6f90['push'](_0x4b6f90['shift']());}}}(a0_0x2bdf,0x1b051));import{jsx as a0_0x27219a}from'react/jsx-runtime';import a0_0x4b98a2 from'meow';import{render}from'ink';function a0_0x5bfc(_0x51d645,_0x12ec5d){_0x51d645=_0x51d645-0x1c6;const _0x2bdf76=a0_0x2bdf();let _0x5bfc5a=_0x2bdf76[_0x51d645];return _0x5bfc5a;}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';function a0_0x2bdf(){const _0x2be7e7=['handler','cancelled','59106ZXgiFq','stderr','10HkxaKg','Hint:\x20','validation','hint','log','2364WJCzqa','631848cdxput','original','\x0aCancelled.\x0a','3277512AEKWrY','ERR_STREAM_DESTROYED','error','write','1330WScUQB',':\x20--','987IyDliJ','ERR_USE_AFTER_CLOSE','flatMap','1371370JqvPaa','length','9783QhacXs','code','input','exit','17606HjBACJ','Unexpected\x20error:','./framework/preparse.js','definition','args','assign','help','unknownCommand','defaultCommand','message','name','5smWirj','8MoQFja','exitCode','flags','ExitPromptError'];a0_0x2bdf=function(){return _0x2be7e7;};return a0_0x2bdf();}import{runCommand,createPipelineEnv}from'./framework/runner.js';import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';import{buildMeowFlags}from'./constant/cli.js';import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x4b98a2(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()['catch'](handleError);async function main(){try{await run();}catch(_0x591370){handleError(_0x591370);}}async function run(){const _0x3751c2=a0_0x5bfc;let _0x2ee959=cli[_0x3751c2(0x1cc)][0x0],_0x462422=cli[_0x3751c2(0x1cc)][0x1];const _0x1f638d=cli[_0x3751c2(0x1dc)];try{const {correctFlags:_0x293d95}=await import(_0x3751c2(0x1d0)),_0x41c3dc=getAllDefinitions()[_0x3751c2(0x1c7)](_0x367674=>_0x367674[_0x3751c2(0x1dc)]??[]),{flags:_0x383749,corrections:_0x73b9af}=_0x293d95(_0x1f638d,_0x41c3dc);if(_0x73b9af[_0x3751c2(0x1c9)]>0x0){for(const _0x4ff347 of _0x73b9af){process[_0x3751c2(0x1e1)]['write']('[preparse]\x20'+_0x4ff347[_0x3751c2(0x1de)]+_0x3751c2(0x1f0)+_0x4ff347[_0x3751c2(0x1e9)]+'\x20->\x20--'+_0x4ff347['corrected']+'\x0a');}Object[_0x3751c2(0x1d3)](_0x1f638d,_0x383749);}}catch{}if(!_0x2ee959){const {waitUntilExit:_0x46ee0c}=render(a0_0x27219a(Help,{}));await _0x46ee0c();return;}const _0x369283=resolveRemovedCommand(_0x2ee959,_0x462422);if(_0x369283)throw CliErrors[_0x3751c2(0x1e4)](_0x369283[_0x3751c2(0x1d7)],_0x369283[_0x3751c2(0x1e5)]);if(!isKnownService(_0x2ee959)){const _0xdeebf4=resolveDynamicServiceCommand(cli['input'],_0x1f638d);if(_0xdeebf4){if(_0x1f638d['help']){console[_0x3751c2(0x1e6)](generateCommandHelp(_0xdeebf4[_0x3751c2(0x1d1)]));return;}Object[_0x3751c2(0x1d3)](_0x1f638d,_0xdeebf4[_0x3751c2(0x1dc)]);const _0x15dad9=buildConfigFromFlags(_0x1f638d);await initGlobalEnvironment(_0x15dad9);const _0x595db5=createPipelineEnv(_0x15dad9,_0x1f638d);_0x595db5[_0x3751c2(0x1d2)]=_0xdeebf4[_0x3751c2(0x1d2)],await runCommand(_0xdeebf4['definition'],_0x595db5);return;}if(_0x1f638d[_0x3751c2(0x1d4)]){const _0x4862f8=generateDynamicServiceHelp(_0x2ee959);if(_0x4862f8){console['log'](_0x4862f8);return;}}const {waitUntilExit:_0x443bde}=render(a0_0x27219a(Help,{}));await _0x443bde();return;}const _0xd6aa33=getServiceEntry(_0x2ee959);if(!_0x462422){if(_0x1f638d[_0x3751c2(0x1d4)]){console['log'](generateServiceHelp(_0x2ee959));return;}if(_0xd6aa33[_0x3751c2(0x1d6)])_0x462422=_0xd6aa33[_0x3751c2(0x1d6)];else{console[_0x3751c2(0x1e6)](generateServiceHelp(_0x2ee959));return;}}const _0x136e1a=findDefinition(_0x2ee959,_0x462422);!_0x136e1a&&(console[_0x3751c2(0x1e6)](generateServiceHelp(_0x2ee959)),handleError(CliErrors[_0x3751c2(0x1d5)](_0x2ee959+'\x20'+_0x462422)));if(_0x1f638d[_0x3751c2(0x1d4)]){console['log'](generateCommandHelp(_0x136e1a));return;}const _0x1c9d01=buildConfigFromFlags(_0x1f638d);await initGlobalEnvironment(_0x1c9d01);const _0x296bd8=createPipelineEnv(_0x1c9d01,_0x1f638d);_0x296bd8[_0x3751c2(0x1d2)]=cli['input']['slice'](0x2),await runCommand(_0x136e1a,_0x296bd8);}function handleError(_0x1017f4){const _0x13a111=a0_0x5bfc;if(_0x1017f4 instanceof CliError){_0x1017f4['code']===_0x13a111(0x1df)&&(process[_0x13a111(0x1e1)][_0x13a111(0x1ee)](_0x13a111(0x1ea)),process[_0x13a111(0x1cd)](0x0));console[_0x13a111(0x1ed)]('Error:\x20'+_0x1017f4[_0x13a111(0x1d7)]);if(_0x1017f4[_0x13a111(0x1e5)])console['error'](_0x13a111(0x1e3)+_0x1017f4[_0x13a111(0x1e5)]);process['exit'](_0x1017f4[_0x13a111(0x1db)]);}isUserCancellation(_0x1017f4)&&(process[_0x13a111(0x1e1)][_0x13a111(0x1ee)](_0x13a111(0x1ea)),process[_0x13a111(0x1cd)](0x0)),console[_0x13a111(0x1ed)](_0x13a111(0x1cf),_0x1017f4),process[_0x13a111(0x1cd)](0x1);}function isUserCancellation(_0xace14){const _0x207ba1=a0_0x5bfc;if(!(_0xace14 instanceof Error))return![];if(_0xace14[_0x207ba1(0x1d8)]===_0x207ba1(0x1dd))return!![];if(_0xace14[_0x207ba1(0x1cb)]===_0x207ba1(0x1c6))return!![];if(_0xace14[_0x207ba1(0x1cb)]===_0x207ba1(0x1ec))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x4ff4b8=a1_0x3431;function a1_0x3431(_0x2d8479,_0x87a381){_0x2d8479=_0x2d8479-0x175;const _0x3aab08=a1_0x3aab();let _0x343164=_0x3aab08[_0x2d8479];return _0x343164;}(function(_0x32c709,_0x10e611){const _0xc48625=a1_0x3431,_0x5a055f=_0x32c709();while(!![]){try{const _0x14cbfa=parseInt(_0xc48625(0x191))/0x1+-parseInt(_0xc48625(0x1c6))/0x2+-parseInt(_0xc48625(0x1a4))/0x3+parseInt(_0xc48625(0x186))/0x4+-parseInt(_0xc48625(0x1b7))/0x5+-parseInt(_0xc48625(0x1c4))/0x6+parseInt(_0xc48625(0x1db))/0x7*(parseInt(_0xc48625(0x1ac))/0x8);if(_0x14cbfa===_0x10e611)break;else _0x5a055f['push'](_0x5a055f['shift']());}catch(_0x7ff219){_0x5a055f['push'](_0x5a055f['shift']());}}}(a1_0x3aab,0x60b73));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x4ff4b8(0x1b5),'type':a1_0x4ff4b8(0x19b),'description':a1_0x4ff4b8(0x1e1)},KEYWORD_FLAG={'name':a1_0x4ff4b8(0x1d3),'type':'string','description':'Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text'},DOC_CODE_FLAG={'name':'code','type':a1_0x4ff4b8(0x19b),'required':!![],'description':'API\x20doc\x20code,\x20for\x20example\x20dataset_list'},DOCS=[{'code':a1_0x4ff4b8(0x181),'category':a1_0x4ff4b8(0x1b2),'title':'List\x20datasets','method':a1_0x4ff4b8(0x1c2),'path':a1_0x4ff4b8(0x1a2),'summary':a1_0x4ff4b8(0x1aa),'whenToUse':a1_0x4ff4b8(0x1ba),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':[a1_0x4ff4b8(0x1df),a1_0x4ff4b8(0x1ec)],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':['##\x20List\x20datasets','',a1_0x4ff4b8(0x1b4)][a1_0x4ff4b8(0x19a)]('\x0a')},{'code':a1_0x4ff4b8(0x1d1),'category':a1_0x4ff4b8(0x1b2),'title':a1_0x4ff4b8(0x1e3),'method':a1_0x4ff4b8(0x1d8),'path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x4ff4b8(0x1ab),'whenToUse':a1_0x4ff4b8(0x1d4),'pathParams':[],'queryParams':[{'name':a1_0x4ff4b8(0x1e8),'description':a1_0x4ff4b8(0x1d0)}],'bodySchema':a1_0x4ff4b8(0x1af),'responseHighlights':['fields/properties\x20describe\x20data\x20shape','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned',a1_0x4ff4b8(0x17b)],'examples':[a1_0x4ff4b8(0x1dc)],'notes':[a1_0x4ff4b8(0x183)],'markdown':[a1_0x4ff4b8(0x1ad),'',a1_0x4ff4b8(0x1b6)][a1_0x4ff4b8(0x19a)]('\x0a')},{'code':'dataset_data_filter','category':a1_0x4ff4b8(0x1b2),'title':a1_0x4ff4b8(0x176),'method':'POST','path':a1_0x4ff4b8(0x198),'summary':'条件过滤查询数据','whenToUse':'需要携带\x20where、orderBy、分页等条件读取业务数据时使用','pathParams':[{'name':'appCode','description':'Current\x20app\x20code'},{'name':a1_0x4ff4b8(0x194),'description':a1_0x4ff4b8(0x1d0)}],'queryParams':[],'bodySchema':a1_0x4ff4b8(0x1c3),'responseHighlights':[a1_0x4ff4b8(0x1a1),a1_0x4ff4b8(0x18b)],'examples':[a1_0x4ff4b8(0x1a0),a1_0x4ff4b8(0x1bf)],'notes':['where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.',a1_0x4ff4b8(0x1a3),'Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':[a1_0x4ff4b8(0x199),'','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.'][a1_0x4ff4b8(0x19a)]('\x0a')},{'code':a1_0x4ff4b8(0x1cf),'category':a1_0x4ff4b8(0x1b2),'title':'Aggregate\x20dataset\x20data','method':'POST','path':a1_0x4ff4b8(0x188),'summary':a1_0x4ff4b8(0x19e),'whenToUse':a1_0x4ff4b8(0x1b9),'pathParams':[{'name':'appCode','description':a1_0x4ff4b8(0x17f)},{'name':a1_0x4ff4b8(0x194),'description':a1_0x4ff4b8(0x1d0)}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':[a1_0x4ff4b8(0x1a7),a1_0x4ff4b8(0x1ea)],'examples':[a1_0x4ff4b8(0x1a9)],'notes':[a1_0x4ff4b8(0x19d),a1_0x4ff4b8(0x1dd)],'markdown':[a1_0x4ff4b8(0x17a),'','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.'][a1_0x4ff4b8(0x19a)]('\x0a')},{'code':a1_0x4ff4b8(0x182),'category':a1_0x4ff4b8(0x1b2),'title':a1_0x4ff4b8(0x18a),'method':'POST','path':a1_0x4ff4b8(0x1b0),'summary':a1_0x4ff4b8(0x19f),'whenToUse':a1_0x4ff4b8(0x190),'pathParams':[{'name':a1_0x4ff4b8(0x1b8),'description':a1_0x4ff4b8(0x17f)},{'name':'datasetCode','description':a1_0x4ff4b8(0x1d0)}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':[a1_0x4ff4b8(0x177)],'examples':[a1_0x4ff4b8(0x175)],'notes':[a1_0x4ff4b8(0x1a5)],'markdown':a1_0x4ff4b8(0x1c5)},{'code':a1_0x4ff4b8(0x1e7),'category':'dataset','title':a1_0x4ff4b8(0x1cb),'method':a1_0x4ff4b8(0x1c2),'path':a1_0x4ff4b8(0x1c9),'summary':a1_0x4ff4b8(0x195),'whenToUse':a1_0x4ff4b8(0x1e0),'pathParams':[{'name':'appCode','description':a1_0x4ff4b8(0x17f)},{'name':a1_0x4ff4b8(0x194),'description':'32-character\x20dataset\x20code'}],'queryParams':[],'bodySchema':a1_0x4ff4b8(0x189),'responseHighlights':[a1_0x4ff4b8(0x1e6)],'examples':[a1_0x4ff4b8(0x18c)],'notes':[a1_0x4ff4b8(0x1b1)],'markdown':a1_0x4ff4b8(0x185)},{'code':a1_0x4ff4b8(0x1d7),'category':'bf','title':a1_0x4ff4b8(0x1e4),'method':a1_0x4ff4b8(0x1d8),'path':a1_0x4ff4b8(0x1a8),'summary':a1_0x4ff4b8(0x1e9),'whenToUse':'已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','pathParams':[{'name':'appCode','description':a1_0x4ff4b8(0x17f)},{'name':a1_0x4ff4b8(0x179),'description':'Exact\x20endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0x4ff4b8(0x1af),'responseHighlights':[a1_0x4ff4b8(0x196)],'examples':['lovrabet\x20bff\x20detail\x20--name\x20<functionName>'],'notes':[a1_0x4ff4b8(0x1bc)],'markdown':'##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.'},{'code':a1_0x4ff4b8(0x1c0),'category':'bf','title':a1_0x4ff4b8(0x1ae),'method':'POST','path':a1_0x4ff4b8(0x1da),'summary':a1_0x4ff4b8(0x1cc),'whenToUse':a1_0x4ff4b8(0x1ca),'pathParams':[{'name':'appCode','description':a1_0x4ff4b8(0x17f)},{'name':'functionName','description':a1_0x4ff4b8(0x1de)}],'queryParams':[],'bodySchema':a1_0x4ff4b8(0x184),'responseHighlights':[a1_0x4ff4b8(0x1d9)],'examples':[a1_0x4ff4b8(0x1c8)],'notes':[a1_0x4ff4b8(0x1c7)],'markdown':a1_0x4ff4b8(0x180)},{'code':a1_0x4ff4b8(0x18f),'category':'custom_sql','title':a1_0x4ff4b8(0x1a6),'method':'POST','path':a1_0x4ff4b8(0x1e5),'summary':a1_0x4ff4b8(0x178),'whenToUse':a1_0x4ff4b8(0x17d),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','responseHighlights':[a1_0x4ff4b8(0x1d2)],'examples':[a1_0x4ff4b8(0x1bb)],'notes':[a1_0x4ff4b8(0x17c)],'markdown':'##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.'}];function entrySummary(_0x10fbe1){const _0x1154a0=a1_0x4ff4b8;return{'code':_0x10fbe1[_0x1154a0(0x1e8)],'category':_0x10fbe1['category'],'method':_0x10fbe1[_0x1154a0(0x1c1)],'path':_0x10fbe1[_0x1154a0(0x18d)],'summary':_0x10fbe1[_0x1154a0(0x1b3)],'whenToUse':_0x10fbe1[_0x1154a0(0x1e2)]};}function a1_0x3aab(){const _0x4d83e5=['查询单条数据','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','tableData\x20contains\x20records','/api/dataset/get-dataset-list-by-app-code','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','1941564tYULEj','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','Execute\x20custom\x20SQL','result\x20rows\x20contain\x20aggregate\x20aliases','/client/bff/endpoint/{appCode}/{functionName}','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','分页获取数据集列表','获取数据集详情','225016aMEHES','##\x20Dataset\x20detail','Execute\x20BF\x20endpoint\x20function','None','/api/{appCode}/{datasetCode}/getOne','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','dataset','summary','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','category','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','2281015IbLuSH','appCode','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','api-doc','find','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','bf_execute','method','POST','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','263898ifflTJ','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','909136JjtDoI','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','/api/{appCode}/{datasetCode}/create','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','Create\x20dataset\x20record','执行指定\x20BF\x20函数','trim','API\x20doc\x20code\x20not\x20found:\x20','dataset_data_aggregate','32-character\x20dataset\x20code','dataset_detail','Returns\x20SQL\x20execution\x20payload','keyword','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','length','Show\x20runtime\x20API\x20documentation\x20by\x20code','bf_detail','GET','Returns\x20script\x20business\x20payload','/api/endpoint/{appCode}/{functionName}','182DMKiqX','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','Endpoint\x20function\x20name','tableData\x20contains\x20dataset\x20id/code/name','需要向指定数据集新增一条业务数据时使用','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','whenToUse','Dataset\x20detail','Get\x20BF\x20endpoint\x20function\x20contract','/api/custom/executeSql','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','dataset_data_create','code','按应用和函数名精确获取\x20BF\x20运行契约','where\x20filters\x20before\x20aggregation','map','paging.totalCount\x20gives\x20total\x20rows','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','Filter\x20dataset\x20data','Returns\x20one\x20matching\x20business\x20record','执行自定义\x20SQL','functionName','##\x20Aggregate\x20dataset\x20data','operations\x20describes\x20runtime\x20APIs','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','str','Current\x20app\x20code','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','dataset_list','dataset_data_get_one','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','{\x22param\x22:\x22value\x22}','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','2493488xqpEtV','list','/api/{appCode}/{datasetCode}/aggregate','{\x22fieldName\x22:\x22value\x22}','Get\x20one\x20dataset\x20record','paging\x20contains\x20pagination','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','path','List\x20available\x20runtime\x20API\x20documentation\x20entries','custom_sql_execute','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','643415Jvsjws','title','validation','datasetCode','创建数据','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','read','/api/{appCode}/{datasetCode}/filter','##\x20Filter\x20dataset\x20data','join','string','includes','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','聚合查询数据集数据'];a1_0x3aab=function(){return _0x4d83e5;};return a1_0x3aab();}export function listApiDocEntries(_0x355e9d={}){const _0x214ff4=a1_0x4ff4b8,_0x2bd408=String(_0x355e9d[_0x214ff4(0x1b5)]||'')[_0x214ff4(0x1cd)](),_0x5c7497=String(_0x355e9d['keyword']||'')[_0x214ff4(0x1cd)]()['toLowerCase']();return DOCS['filter'](_0x290891=>{const _0x21bef2=_0x214ff4;if(_0x2bd408&&_0x290891['category']!==_0x2bd408)return![];if(!_0x5c7497)return!![];return[_0x290891[_0x21bef2(0x1e8)],_0x290891['category'],_0x290891[_0x21bef2(0x1c1)],_0x290891[_0x21bef2(0x18d)],_0x290891['summary'],_0x290891[_0x21bef2(0x1e2)],_0x290891[_0x21bef2(0x192)]][_0x21bef2(0x19a)]('\x20')['toLowerCase']()[_0x21bef2(0x19c)](_0x5c7497);})[_0x214ff4(0x1eb)](entrySummary);}export function getApiDocDetail(_0x281d38){const _0x21b67f=a1_0x4ff4b8,_0x44752a=DOCS[_0x21b67f(0x1be)](_0x5103dc=>_0x5103dc[_0x21b67f(0x1e8)]===_0x281d38);if(!_0x44752a)throw CliErrors[_0x21b67f(0x193)](_0x21b67f(0x1ce)+_0x281d38);return{..._0x44752a};}const apiDocList={'service':'api-doc','command':a1_0x4ff4b8(0x187),'description':a1_0x4ff4b8(0x18e),'risk':a1_0x4ff4b8(0x197),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x4e5c7a){const _0x3f0583=a1_0x4ff4b8,_0x25f773=listApiDocEntries({'category':_0x4e5c7a['str'](_0x3f0583(0x1b5)),'keyword':_0x4e5c7a['str']('keyword')});return{'ok':!![],'data':{'total':_0x25f773[_0x3f0583(0x1d5)],'items':_0x25f773}};}},apiDocDetail={'service':a1_0x4ff4b8(0x1bd),'command':'detail','description':a1_0x4ff4b8(0x1d6),'risk':a1_0x4ff4b8(0x197),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x5b0f49){const _0x43bf55=a1_0x4ff4b8;return{'ok':!![],'data':getApiDocDetail(_0x5b0f49[_0x43bf55(0x17e)](_0x43bf55(0x1e8)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
1
|
+
function a1_0x945e(){const _0x453b21=['`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','查询单条数据','tableData\x20contains\x20records','find','includes','/api/dataset/getOneByCode?code={datasetCode}','lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','string','Execute\x20custom\x20SQL','59221swJImg','##\x20List\x20datasets','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','条件过滤查询数据','datasetCode','{\x22fieldName\x22:\x22value\x22}','fields/properties\x20describe\x20data\x20shape','##\x20Dataset\x20detail','{\x22param\x22:\x22value\x22}','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','411nlbQrU','Dataset\x20detail','Filter\x20dataset\x20data','API\x20doc\x20code\x20not\x20found:\x20','List\x20available\x20runtime\x20API\x20documentation\x20entries','143370zAIZoO','None','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','List\x20datasets','custom_sql','Current\x20app\x20code','operations\x20describes\x20runtime\x20APIs','whenToUse','需要向指定数据集新增一条业务数据时使用','dataset_list','api-doc','appCode','4763850dskkOc','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','bf_execute','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','Returns\x20SQL\x20execution\x20payload','validation','5urSwGS','dataset','paging\x20contains\x20pagination','toLowerCase','list','dataset_data_aggregate','API\x20doc\x20code,\x20for\x20example\x20dataset_list','699408clKaFf','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','/api/dataset/get-dataset-list-by-app-code','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','71616doVsfu','Create\x20dataset\x20record','functionName','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','map','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','keyword','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','tableData\x20contains\x20dataset\x20id/code/name','获取数据集详情','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','按应用和函数名精确获取\x20BF\x20运行契约','Get\x20one\x20dataset\x20record','创建数据','POST','/api/{appCode}/{datasetCode}/getOne','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','category','Returns\x20one\x20matching\x20business\x20record','path','Exact\x20endpoint\x20function\x20name','read','##\x20Filter\x20dataset\x20data','length','title','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','6424ObvXWb','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','分页获取数据集列表','custom_sql_execute','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','dataset_data_filter','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','summary','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','where\x20filters\x20before\x20aggregation','128buiozU','/api/{appCode}/{datasetCode}/filter','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','join','trim','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','GET','Get\x20BF\x20endpoint\x20function\x20contract','str','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','/api/custom/executeSql','method','20762bBcEXA','聚合查询数据集数据','32-character\x20dataset\x20code','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','code'];a1_0x945e=function(){return _0x453b21;};return a1_0x945e();}const a1_0xceb058=a1_0x1f52;(function(_0x6140f3,_0x40cd44){const _0x255db5=a1_0x1f52,_0x22ee6a=_0x6140f3();while(!![]){try{const _0x1b3a09=-parseInt(_0x255db5(0xfa))/0x1+parseInt(_0x255db5(0x128))/0x2+parseInt(_0x255db5(0x104))/0x3*(-parseInt(_0x255db5(0xd5))/0x4)+parseInt(_0x255db5(0x11c))/0x5*(-parseInt(_0x255db5(0x123))/0x6)+parseInt(_0x255db5(0xeb))/0x7*(parseInt(_0x255db5(0xdf))/0x8)+parseInt(_0x255db5(0x109))/0x9+parseInt(_0x255db5(0x116))/0xa;if(_0x1b3a09===_0x40cd44)break;else _0x22ee6a['push'](_0x22ee6a['shift']());}catch(_0x575aea){_0x22ee6a['push'](_0x22ee6a['shift']());}}}(a1_0x945e,0x2be38));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':'category','type':a1_0xceb058(0xf8),'description':'Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset'},KEYWORD_FLAG={'name':a1_0xceb058(0x130),'type':a1_0xceb058(0xf8),'description':'Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text'},DOC_CODE_FLAG={'name':a1_0xceb058(0xef),'type':'string','required':!![],'description':a1_0xceb058(0x122)},DOCS=[{'code':a1_0xceb058(0x113),'category':'dataset','title':a1_0xceb058(0x10d),'method':a1_0xceb058(0x138),'path':a1_0xceb058(0x126),'summary':a1_0xceb058(0xd7),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','responseHighlights':[a1_0xceb058(0x132),'paging.totalCount\x20gives\x20total\x20rows'],'examples':[a1_0xceb058(0xf6)],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0xceb058(0xfb),'','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.'][a1_0xceb058(0xe2)]('\x0a')},{'code':'dataset_detail','category':a1_0xceb058(0x11d),'title':a1_0xceb058(0x105),'method':a1_0xceb058(0xe5),'path':a1_0xceb058(0xf5),'summary':a1_0xceb058(0x133),'whenToUse':a1_0xceb058(0xdd),'pathParams':[],'queryParams':[{'name':a1_0xceb058(0xef),'description':a1_0xceb058(0xed)}],'bodySchema':a1_0xceb058(0x10a),'responseHighlights':[a1_0xceb058(0x100),'relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned',a1_0xceb058(0x110)],'examples':[a1_0xceb058(0x12c)],'notes':[a1_0xceb058(0xee)],'markdown':[a1_0xceb058(0x101),'','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.']['join']('\x0a')},{'code':a1_0xceb058(0xda),'category':a1_0xceb058(0x11d),'title':a1_0xceb058(0x106),'method':a1_0xceb058(0x138),'path':a1_0xceb058(0xe0),'summary':a1_0xceb058(0xfd),'whenToUse':a1_0xceb058(0x119),'pathParams':[{'name':a1_0xceb058(0x115),'description':a1_0xceb058(0x10f)},{'name':a1_0xceb058(0xfe),'description':a1_0xceb058(0xed)}],'queryParams':[],'bodySchema':a1_0xceb058(0x12d),'responseHighlights':[a1_0xceb058(0xf2),a1_0xceb058(0x11e)],'examples':[a1_0xceb058(0x103),a1_0xceb058(0x12f)],'notes':[a1_0xceb058(0xd6),a1_0xceb058(0x134),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.'],'markdown':[a1_0xceb058(0xd1),'','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.']['join']('\x0a')},{'code':a1_0xceb058(0x121),'category':a1_0xceb058(0x11d),'title':'Aggregate\x20dataset\x20data','method':a1_0xceb058(0x138),'path':'/api/{appCode}/{datasetCode}/aggregate','summary':a1_0xceb058(0xec),'whenToUse':a1_0xceb058(0xe8),'pathParams':[{'name':a1_0xceb058(0x115),'description':a1_0xceb058(0x10f)},{'name':a1_0xceb058(0xfe),'description':a1_0xceb058(0xed)}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':['result\x20rows\x20contain\x20aggregate\x20aliases',a1_0xceb058(0xde)],'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':['Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.',a1_0xceb058(0xf0)],'markdown':['##\x20Aggregate\x20dataset\x20data','',a1_0xceb058(0x131)][a1_0xceb058(0xe2)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0xceb058(0x11d),'title':a1_0xceb058(0x136),'method':'POST','path':a1_0xceb058(0x139),'summary':a1_0xceb058(0xf1),'whenToUse':'已经知道记录\x20id,需要按数据集读取单条业务数据时使用','pathParams':[{'name':a1_0xceb058(0x115),'description':'Current\x20app\x20code'},{'name':a1_0xceb058(0xfe),'description':a1_0xceb058(0xed)}],'queryParams':[],'bodySchema':'{\x22id\x22:123}','responseHighlights':[a1_0xceb058(0x13c)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':['Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.'],'markdown':'##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.'},{'code':'dataset_data_create','category':a1_0xceb058(0x11d),'title':a1_0xceb058(0x129),'method':a1_0xceb058(0x138),'path':'/api/{appCode}/{datasetCode}/create','summary':a1_0xceb058(0x137),'whenToUse':a1_0xceb058(0x112),'pathParams':[{'name':a1_0xceb058(0x115),'description':a1_0xceb058(0x10f)},{'name':a1_0xceb058(0xfe),'description':a1_0xceb058(0xed)}],'queryParams':[],'bodySchema':a1_0xceb058(0xff),'responseHighlights':[a1_0xceb058(0x127)],'examples':[a1_0xceb058(0xd9)],'notes':['This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.'],'markdown':'##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.'},{'code':'bf_detail','category':'bf','title':a1_0xceb058(0xe6),'method':a1_0xceb058(0xe5),'path':'/client/bff/endpoint/{appCode}/{functionName}','summary':a1_0xceb058(0x135),'whenToUse':a1_0xceb058(0xe4),'pathParams':[{'name':'appCode','description':a1_0xceb058(0x10f)},{'name':'functionName','description':a1_0xceb058(0x13e)}],'queryParams':[],'bodySchema':a1_0xceb058(0x10a),'responseHighlights':[a1_0xceb058(0xe1)],'examples':[a1_0xceb058(0xd4)],'notes':['This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.'],'markdown':a1_0xceb058(0x10c)},{'code':a1_0xceb058(0x118),'category':'bf','title':'Execute\x20BF\x20endpoint\x20function','method':a1_0xceb058(0x138),'path':'/api/endpoint/{appCode}/{functionName}','summary':'执行指定\x20BF\x20函数','whenToUse':a1_0xceb058(0xf7),'pathParams':[{'name':a1_0xceb058(0x115),'description':a1_0xceb058(0x10f)},{'name':a1_0xceb058(0x12a),'description':'Endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':a1_0xceb058(0x102),'responseHighlights':['Returns\x20script\x20business\x20payload'],'examples':[a1_0xceb058(0xdb)],'notes':[a1_0xceb058(0xfc)],'markdown':a1_0xceb058(0x125)},{'code':a1_0xceb058(0xd8),'category':a1_0xceb058(0x10e),'title':a1_0xceb058(0xf9),'method':a1_0xceb058(0x138),'path':a1_0xceb058(0xe9),'summary':'执行自定义\x20SQL','whenToUse':a1_0xceb058(0x12b),'pathParams':[],'queryParams':[],'bodySchema':a1_0xceb058(0x10b),'responseHighlights':[a1_0xceb058(0x11a)],'examples':[a1_0xceb058(0x117)],'notes':[a1_0xceb058(0x124)],'markdown':a1_0xceb058(0x13a)}];function entrySummary(_0x138226){const _0x85d0ec=a1_0xceb058;return{'code':_0x138226[_0x85d0ec(0xef)],'category':_0x138226[_0x85d0ec(0x13b)],'method':_0x138226[_0x85d0ec(0xea)],'path':_0x138226[_0x85d0ec(0x13d)],'summary':_0x138226['summary'],'whenToUse':_0x138226[_0x85d0ec(0x111)]};}function a1_0x1f52(_0x9f2327,_0x1e87ea){_0x9f2327=_0x9f2327-0xd1;const _0x945ee3=a1_0x945e();let _0x1f521b=_0x945ee3[_0x9f2327];return _0x1f521b;}export function listApiDocEntries(_0x4743bb={}){const _0x190813=a1_0xceb058,_0x270631=String(_0x4743bb[_0x190813(0x13b)]||'')['trim'](),_0x1113dd=String(_0x4743bb['keyword']||'')[_0x190813(0xe3)]()['toLowerCase']();return DOCS['filter'](_0x4c9962=>{const _0x431f67=_0x190813;if(_0x270631&&_0x4c9962[_0x431f67(0x13b)]!==_0x270631)return![];if(!_0x1113dd)return!![];return[_0x4c9962[_0x431f67(0xef)],_0x4c9962['category'],_0x4c9962[_0x431f67(0xea)],_0x4c9962[_0x431f67(0x13d)],_0x4c9962[_0x431f67(0xdc)],_0x4c9962[_0x431f67(0x111)],_0x4c9962[_0x431f67(0xd3)]]['join']('\x20')[_0x431f67(0x11f)]()[_0x431f67(0xf4)](_0x1113dd);})[_0x190813(0x12e)](entrySummary);}export function getApiDocDetail(_0x413b52){const _0x5676d4=a1_0xceb058,_0x2670f2=DOCS[_0x5676d4(0xf3)](_0x10f857=>_0x10f857['code']===_0x413b52);if(!_0x2670f2)throw CliErrors[_0x5676d4(0x11b)](_0x5676d4(0x107)+_0x413b52);return{..._0x2670f2};}const apiDocList={'service':'api-doc','command':a1_0xceb058(0x120),'description':a1_0xceb058(0x108),'risk':a1_0xceb058(0x13f),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x564d05){const _0x4fc2c1=a1_0xceb058,_0x4c072a=listApiDocEntries({'category':_0x564d05['str'](_0x4fc2c1(0x13b)),'keyword':_0x564d05[_0x4fc2c1(0xe7)](_0x4fc2c1(0x130))});return{'ok':!![],'data':{'total':_0x4c072a[_0x4fc2c1(0xd2)],'items':_0x4c072a}};}},apiDocDetail={'service':a1_0xceb058(0x114),'command':'detail','description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0xceb058(0x13f),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x208df4){const _0xc733bd=a1_0xceb058;return{'ok':!![],'data':getApiDocDetail(_0x208df4[_0xc733bd(0xe7)](_0xc733bd(0xef)))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x19d528,_0x4d14c5){const _0x12f45f=a2_0x3ead,_0x19a164=_0x19d528();while(!![]){try{const _0xb1368a=-parseInt(_0x12f45f(0x105))/0x1+-parseInt(_0x12f45f(0x100))/0x2*(-parseInt(_0x12f45f(0x106))/0x3)+-parseInt(_0x12f45f(0x10d))/0x4+parseInt(_0x12f45f(0xfe))/0x5*(parseInt(_0x12f45f(0x109))/0x6)+parseInt(_0x12f45f(0x102))/0x7+-parseInt(_0x12f45f(0xf8))/0x8*(parseInt(_0x12f45f(0x103))/0x9)+-parseInt(_0x12f45f(0xf2))/0xa*(parseInt(_0x12f45f(0xfc))/0xb);if(_0xb1368a===_0x4d14c5)break;else _0x19a164['push'](_0x19a164['shift']());}catch(_0x455c77){_0x19a164['push'](_0x19a164['shift']());}}}(a2_0x4de1,0x8b235));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';function a2_0x4de1(){const _0x4aa3f3=['find','appName','115432ImiHec','items','code','appCode','154uJgzHj','my-apps.json','2746985pVajpr','trim','3242fHUrmo','EXDEV','5647649JBAVdP','171qGTLeG','update','7923NQZaPT','1146gACEpd','sha256','unknown','6ElWPEi','homeDirName','EPERM','slice','2438740bvGFXJ','EACCES','stringify','utf8','366970SPIFpD','hex','.tmp','digest'];a2_0x4de1=function(){return _0x4aa3f3;};return a2_0x4de1();}import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function a2_0x3ead(_0x22c5c0,_0x190bf4){_0x22c5c0=_0x22c5c0-0xf2;const _0x4de1e8=a2_0x4de1();let _0x3ead5a=_0x4de1e8[_0x22c5c0];return _0x3ead5a;}export function fingerprintAccessKey(_0x3c5afd){const _0x11d834=a2_0x3ead,_0x18139b=_0x3c5afd[_0x11d834(0xff)](),_0x38a411=_0x18139b[_0x11d834(0x10c)](-0x6)||_0x11d834(0x108),_0x4ce76d=createHash(_0x11d834(0x107))[_0x11d834(0x104)](_0x18139b)[_0x11d834(0xf5)](_0x11d834(0xf3))[_0x11d834(0x10c)](0x0,0xc);return'ak_'+_0x38a411+'_'+_0x4ce76d;}export function getAppCacheFilePath(_0x310192,_0x26edf3){const _0xa24470=a2_0x3ead;return resolve(homedir(),PRODUCT_CONFIG[_0xa24470(0x10a)],'cache',_0x310192,fingerprintAccessKey(_0x26edf3),_0xa24470(0xfd));}export function readCachedAppList(_0x23954f,_0x5d4eb6){const _0x2d2429=a2_0x3ead;if(!_0x5d4eb6?.[_0x2d2429(0xff)]())return null;const _0xde0eb1=getAppCacheFilePath(_0x23954f,_0x5d4eb6);if(!existsSync(_0xde0eb1))return null;try{const _0x3370f6=readFileSync(_0xde0eb1,_0x2d2429(0x110));if(!_0x3370f6[_0x2d2429(0xff)]())return null;const _0x252ca8=JSON['parse'](_0x3370f6);if(!Array['isArray'](_0x252ca8[_0x2d2429(0xf9)]))return null;return _0x252ca8;}catch{return null;}}export function writeCachedAppList(_0x3b1a27,_0x567af7,_0x34d373){const _0x5e37b8=a2_0x3ead,_0x48efc9=getAppCacheFilePath(_0x3b1a27,_0x567af7),_0xbd760e=dirname(_0x48efc9);!existsSync(_0xbd760e)&&mkdirSync(_0xbd760e,{'recursive':!![]});const _0x43dca8=_0x48efc9+_0x5e37b8(0xf4);try{writeFileSync(_0x43dca8,JSON[_0x5e37b8(0x10f)](_0x34d373,null,0x2)+'\x0a',{'encoding':_0x5e37b8(0x110),'mode':0x180});try{renameSync(_0x43dca8,_0x48efc9);}catch(_0x1b3278){if(_0x1b3278[_0x5e37b8(0xfa)]===_0x5e37b8(0x10b)||_0x1b3278[_0x5e37b8(0xfa)]===_0x5e37b8(0x101)||_0x1b3278[_0x5e37b8(0xfa)]===_0x5e37b8(0x10e)){writeFileSync(_0x48efc9,JSON[_0x5e37b8(0x10f)](_0x34d373,null,0x2)+'\x0a',{'encoding':_0x5e37b8(0x110)});try{unlinkSync(_0x43dca8);}catch{}}else throw _0x1b3278;}}catch(_0x2b7159){try{unlinkSync(_0x43dca8);}catch{}throw _0x2b7159;}return _0x48efc9;}export function resolveCachedAppCode(_0x12df83,_0x4b8e72,_0x1ae170){const _0x46f623=a2_0x3ead;if(!_0x12df83)return undefined;const _0x371558=readCachedAppList(_0x4b8e72,_0x1ae170),_0x542f67=_0x371558?.['items'][_0x46f623(0xf6)](_0x1ce247=>_0x1ce247[_0x46f623(0xf7)]===_0x12df83&&isRuntimeAccessibleApp(_0x1ce247));return _0x542f67?.[_0x46f623(0xfb)]?.[_0x46f623(0xff)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a3_0x5529(){const _0x2cd9ea=['从平台刷新本地应用缓存','include-unpublished','cache','1265jPvYAh','accessKey','../../commands/app/remote-source.js','pull','env','production','Include\x20unpublished\x20apps\x20for\x20diagnostics','281hReGXH','type','1214610AnOWpQ','9XvZZFH','11035400cUlsQd','5553105mHbYEr','name','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','Loaded\x20','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','appPublishStatus','6888uULXeS','Read\x20from\x20local\x20cache\x20only','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','140268HFyuXQ','source','6204232HtonQg','Refreshed\x20app\x20cache\x20with\x20','从\x20.rabetbase.json\x20文件导入默认应用选择','find','enableI18n','envName','No\x20cached\x20apps\x20found.','appName','items','fetchedAt','read','filter','app','string','write','no-cache','appOwnerName','str','config','globalPath','remote','i18nInfo','bool','appcode','7356755fqRcKY','isArray','6npfkcv','length','../../context.js','appCode','list','cachePath','langs','boolean','No\x20apps\x20found\x20on\x20the\x20platform.','Target\x20environment\x20(default:\x20current\x20env)','nonInteractive','4MYEUCf','push','map','\x20app(s)\x20for\x20env=\x22','trim','local'];a3_0x5529=function(){return _0x2cd9ea;};return a3_0x5529();}function a3_0x257e(_0x5aa2df,_0x239ee5){_0x5aa2df=_0x5aa2df-0xa7;const _0x552947=a3_0x5529();let _0x257e8d=_0x552947[_0x5aa2df];return _0x257e8d;}const a3_0x3ad877=a3_0x257e;(function(_0x20bca7,_0x5be1a1){const _0x3a6789=a3_0x257e,_0x2eb4b9=_0x20bca7();while(!![]){try{const _0xd4dbdd=-parseInt(_0x3a6789(0xa9))/0x1*(parseInt(_0x3a6789(0xb4))/0x2)+parseInt(_0x3a6789(0xab))/0x3+-parseInt(_0x3a6789(0xde))/0x4*(-parseInt(_0x3a6789(0xae))/0x5)+-parseInt(_0x3a6789(0xd3))/0x6*(-parseInt(_0x3a6789(0xd1))/0x7)+parseInt(_0x3a6789(0xb9))/0x8*(-parseInt(_0x3a6789(0xac))/0x9)+parseInt(_0x3a6789(0xad))/0xa+parseInt(_0x3a6789(0xe7))/0xb*(-parseInt(_0x3a6789(0xb7))/0xc);if(_0xd4dbdd===_0x5be1a1)break;else _0x2eb4b9['push'](_0x2eb4b9['shift']());}catch(_0x3ca4f1){_0x2eb4b9['push'](_0x2eb4b9['shift']());}}}(a3_0x5529,0x8e344));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x2ab409,_0x228bb5){const _0x1837df=a3_0x257e,_0xc5018e={};for(const _0x1bb5a5 of _0x228bb5){const _0x5da2f1=_0x1bb5a5[_0x1837df(0xaa)]===_0x1837df(0xda)?_0x2ab409[_0x1837df(0xcf)](_0x1bb5a5[_0x1837df(0xaf)]):_0x2ab409[_0x1837df(0xca)](_0x1bb5a5[_0x1837df(0xaf)]);if(_0x5da2f1!==''&&_0x5da2f1!==![])_0xc5018e[_0x1bb5a5[_0x1837df(0xaf)]]=_0x5da2f1;}if(_0x2ab409[_0x1837df(0xdd)])_0xc5018e[_0x1837df(0xdd)]=!![];return _0xc5018e;}function normalizeLanguages(_0x4ca045){const _0x3e86da=a3_0x257e;if(!Array[_0x3e86da(0xd2)](_0x4ca045))return[];return _0x4ca045['filter'](_0x3e91e0=>typeof _0x3e91e0===_0x3e86da(0xc6))[_0x3e86da(0xe0)](_0x178e1d=>_0x178e1d[_0x3e86da(0xe2)]())[_0x3e86da(0xc4)](Boolean);}function buildRemoteAppI18nFields(_0x2f493d){const _0x4ff43e=a3_0x257e,_0x245dc6=normalizeLanguages(_0x2f493d[_0x4ff43e(0xce)]?.[_0x4ff43e(0xd9)]);return{'enableI18n':typeof _0x2f493d[_0x4ff43e(0xbd)]==='boolean'?_0x2f493d[_0x4ff43e(0xbd)]:null,'languages':_0x245dc6,'i18nInfo':_0x2f493d[_0x4ff43e(0xce)]?{..._0x2f493d['i18nInfo'],'langs':_0x245dc6[_0x4ff43e(0xd4)]?_0x245dc6:null}:null};}const listDef={'service':a3_0x3ad877(0xc5),'command':a3_0x3ad877(0xd7),'description':a3_0x3ad877(0xb0),'risk':a3_0x3ad877(0xc3),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x3ad877(0xeb),'type':'string','description':'Filter\x20by\x20environment\x20(default:\x20current\x20env)','enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x3ad877(0xe3),'type':'boolean','description':'Read\x20app\x20list\x20from\x20local\x20cache\x20only','default':![]},{'name':'no-cache','type':a3_0x3ad877(0xda),'description':a3_0x3ad877(0xb2),'default':![]},{'name':a3_0x3ad877(0xe5),'type':a3_0x3ad877(0xda),'description':a3_0x3ad877(0xa8),'default':![]}],async 'execute'(_0x59a9c1){const _0x47bd79=a3_0x3ad877,_0x4c3f97=_0x59a9c1['str']('env')||_0x59a9c1[_0x47bd79(0xbe)]||getEnv()||_0x47bd79(0xa7),_0x10e1df=_0x59a9c1['bool'](_0x47bd79(0xe3)),_0x176315=_0x59a9c1['bool'](_0x47bd79(0xc8)),_0x3540c0=_0x59a9c1[_0x47bd79(0xcf)]('include-unpublished'),{readRawConfigWithLayers:_0x41a918,resolveDefaultAppSource:_0x15cd3f,getLocalAppAliases:_0x5c98f6}=await import(_0x47bd79(0xd5)),{getRemoteAppList:_0x488922}=await import(_0x47bd79(0xe9)),{config:_0x281959,layers:_0x5b80ea}=_0x41a918(),_0x3c5a13=_0x15cd3f(_0x5b80ea),{defaultApp:_0x2ef9b2}=_0x281959,_0x57b5a5=await _0x488922({'env':_0x4c3f97,'accessKey':_0x59a9c1['accessKey'],'localOnly':_0x10e1df,'noCache':_0x176315}),_0x4a4d08=_0x3540c0?_0x57b5a5[_0x47bd79(0xc1)]:filterRuntimeAccessibleApps(_0x57b5a5['items']),_0xe76cfd=_0x57b5a5[_0x47bd79(0xc1)][_0x47bd79(0xd4)]-_0x4a4d08[_0x47bd79(0xd4)],_0x26dc0b=_0x4a4d08[_0x47bd79(0xe0)](_0x27431b=>{const _0xc8fa03=_0x47bd79;return{'name':_0x27431b[_0xc8fa03(0xc0)],'appcode':_0x27431b[_0xc8fa03(0xd6)],'named':!![],'definedIn':_0xc8fa03(0xcd),'isDefault':_0x27431b[_0xc8fa03(0xc0)]===_0x2ef9b2,...buildAppProfileListFields(_0x4c3f97),...buildRemoteAppI18nFields(_0x27431b),'source':_0x57b5a5[_0xc8fa03(0xb8)],'owner':_0x27431b[_0xc8fa03(0xc9)]??null,'status':_0x27431b[_0xc8fa03(0xb3)]??null,'cachedAt':_0x57b5a5[_0xc8fa03(0xc2)]};}),_0x100b8c=_0x5c98f6(_0x281959);let _0x52a9d2=0x0;for(const [_0x34f0e6,_0x37573c]of Object['entries'](_0x100b8c)){const _0x3ce90b=typeof _0x37573c[_0x47bd79(0xd0)]===_0x47bd79(0xc6)?_0x37573c[_0x47bd79(0xd0)][_0x47bd79(0xe2)]():'';if(!_0x3ce90b)continue;const _0x26b0dc=findAppByCode(_0x57b5a5[_0x47bd79(0xc1)],_0x3ce90b);if(!_0x3540c0&&_0x26b0dc&&!isRuntimeAccessibleApp(_0x26b0dc))continue;_0x52a9d2+=0x1,_0x26dc0b[_0x47bd79(0xdf)]({'name':_0x34f0e6,'appcode':_0x3ce90b,'named':!![],'definedIn':_0x47bd79(0xe3),'isDefault':_0x34f0e6===_0x2ef9b2,...buildAppProfileListFields(_0x4c3f97),'source':_0x47bd79(0xcb),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x26dc0b,_0x59a9c1['mergedCli']);const _0x32dfbd=_0x26dc0b[_0x47bd79(0xbc)](_0x187598=>_0x187598['isCurrent']===!![]),_0xed9428=_0x2ef9b2??_0x32dfbd?.['name']??null,_0x15f6c2={'env':_0x4c3f97,'source':_0x57b5a5['source'],'fetchedAt':_0x57b5a5['fetchedAt'],'cachePath':_0x57b5a5[_0x47bd79(0xd8)],'globalPath':_0x5b80ea[_0x47bd79(0xcc)]??null,'projectPath':_0x5b80ea['projectPath']??null,'defaultApp':_0xed9428,'defaultAppSource':_0x2ef9b2!=null?_0x3c5a13:null,'localAliasCount':_0x52a9d2,'remoteTotal':_0x57b5a5[_0x47bd79(0xc1)][_0x47bd79(0xd4)],'hiddenUnpublishedCount':_0xe76cfd,'includeUnpublished':_0x3540c0};if(_0x26dc0b['length']===0x0)return{'ok':!![],'data':{'items':_0x26dc0b,'meta':_0x15f6c2},'message':_0x57b5a5[_0x47bd79(0xb8)]===_0x47bd79(0xe6)?_0x47bd79(0xbf):_0x47bd79(0xdb)};return{'ok':!![],'data':{'items':_0x26dc0b,'meta':_0x15f6c2}};}},pullDef={'service':a3_0x3ad877(0xc5),'command':a3_0x3ad877(0xea),'description':a3_0x3ad877(0xe4),'risk':a3_0x3ad877(0xc7),'confirmationDescription':'将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x3ad877(0xeb),'type':a3_0x3ad877(0xc6),'description':a3_0x3ad877(0xdc),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x3ad877(0xe3),'type':a3_0x3ad877(0xda),'description':a3_0x3ad877(0xb5),'default':![]},{'name':'no-cache','type':a3_0x3ad877(0xda),'description':a3_0x3ad877(0xb2),'default':![]}],async 'execute'(_0x180802){const _0x1b1282=a3_0x3ad877,_0x25a237=_0x180802[_0x1b1282(0xca)](_0x1b1282(0xeb))||_0x180802[_0x1b1282(0xbe)]||getEnv()||'production',_0x24f205=_0x180802[_0x1b1282(0xcf)](_0x1b1282(0xe3)),_0x2ad5be=_0x180802[_0x1b1282(0xcf)]('no-cache'),{getRemoteAppList:_0x5a823b}=await import(_0x1b1282(0xe9)),_0x29ac12=await _0x5a823b({'env':_0x25a237,'accessKey':_0x180802[_0x1b1282(0xe8)],'localOnly':_0x24f205,'noCache':_0x2ad5be});return{'ok':!![],'data':{'total':_0x29ac12[_0x1b1282(0xc1)][_0x1b1282(0xd4)],'env':_0x25a237,'source':_0x29ac12[_0x1b1282(0xb8)],'fetchedAt':_0x29ac12[_0x1b1282(0xc2)],'cachePath':_0x29ac12[_0x1b1282(0xd8)]},'message':_0x29ac12['source']===_0x1b1282(0xe6)?_0x1b1282(0xb1)+_0x29ac12[_0x1b1282(0xc1)][_0x1b1282(0xd4)]+'\x20cached\x20app(s)\x20for\x20env=\x22'+_0x25a237+'\x22.':_0x1b1282(0xba)+_0x29ac12[_0x1b1282(0xc1)]['length']+_0x1b1282(0xe1)+_0x25a237+'\x22.'};}},importDef={'service':'app','command':'import','description':a3_0x3ad877(0xbb),'risk':a3_0x3ad877(0xc7),'confirmationDescription':a3_0x3ad877(0xb6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x4ce4bc){return await runAppImport(collectFlags(_0x4ce4bc,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4dcca1,_0x3cba51){const _0x4acc9e=a4_0x327c,_0x4b57a8=_0x4dcca1();while(!![]){try{const _0x16ccff=parseInt(_0x4acc9e(0xd4))/0x1+parseInt(_0x4acc9e(0xcf))/0x2+parseInt(_0x4acc9e(0xc2))/0x3+parseInt(_0x4acc9e(0xd3))/0x4*(parseInt(_0x4acc9e(0xc6))/0x5)+-parseInt(_0x4acc9e(0xc3))/0x6+parseInt(_0x4acc9e(0xd6))/0x7+-parseInt(_0x4acc9e(0xd2))/0x8*(parseInt(_0x4acc9e(0xc7))/0x9);if(_0x16ccff===_0x3cba51)break;else _0x4b57a8['push'](_0x4b57a8['shift']());}catch(_0x53ad03){_0x4b57a8['push'](_0x4b57a8['shift']());}}}(a4_0xd8dc,0xc3f05));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x589ca0){const _0x57f451=a4_0x327c;if(typeof _0x589ca0!=='string')return null;const _0x3e3016=_0x589ca0[_0x57f451(0xca)]();return _0x3e3016?_0x3e3016[_0x57f451(0xcc)]():null;}function a4_0xd8dc(){const _0x49d1b6=['464176nGyDOf','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','534338QijLIz','.\x20Publish\x20the\x20app\x20before\x20using\x20','4554828royGFb','7508598mjNcoQ','find','appPublishStatus','31255CxGWcM','10431009cnukbE','Current\x20status:\x20','App\x20','trim','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','toUpperCase','appName','validation','645660lBoDcU','UNKNOWN','filter','8vahtsb','532GVEuvd'];a4_0xd8dc=function(){return _0x49d1b6;};return a4_0xd8dc();}export function isRuntimeAccessibleApp(_0x3c4ccc){const _0x2d06ce=a4_0x327c;return normalizeAppPublishStatus(_0x3c4ccc[_0x2d06ce(0xc5)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x497183){const _0x59f012=a4_0x327c;return _0x497183[_0x59f012(0xd1)](isRuntimeAccessibleApp);}function a4_0x327c(_0x52ff22,_0x18ac69){_0x52ff22=_0x52ff22-0xc1;const _0xd8dc72=a4_0xd8dc();let _0x327c7a=_0xd8dc72[_0x52ff22];return _0x327c7a;}export function findAppByName(_0x24812a,_0x52d352){const _0x7c688a=a4_0x327c;return _0x24812a[_0x7c688a(0xc4)](_0x15b6c3=>_0x15b6c3[_0x7c688a(0xcd)]===_0x52d352);}export function findAppByCode(_0x46ae90,_0xa54988){const _0x463380=a4_0x327c,_0xa00fb=_0xa54988['trim']();if(!_0xa00fb)return undefined;return _0x46ae90[_0x463380(0xc4)](_0x23d174=>_0x23d174['appCode']?.[_0x463380(0xca)]()===_0xa00fb);}export function runtimeInaccessibleAppError(_0x5f10e9,_0x29bab1){const _0x15709b=a4_0x327c,_0xd0da79=normalizeAppPublishStatus(_0x5f10e9[_0x15709b(0xc5)])??_0x15709b(0xd0);return CliErrors[_0x15709b(0xce)](_0x15709b(0xc9)+_0x29bab1+_0x15709b(0xcb),_0x15709b(0xc8)+_0xd0da79+_0x15709b(0xc1)+CLI_BIN_NAME+_0x15709b(0xd5));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x430304,_0x40d39c){const _0x16cf9f=a5_0x15fc,_0xab1c1=_0x430304();while(!![]){try{const _0x522b99=parseInt(_0x16cf9f(0x95))/0x1+parseInt(_0x16cf9f(0x9c))/0x2+parseInt(_0x16cf9f(0x94))/0x3+-parseInt(_0x16cf9f(0x9d))/0x4*(parseInt(_0x16cf9f(0x99))/0x5)+-parseInt(_0x16cf9f(0x9e))/0x6+-parseInt(_0x16cf9f(0x97))/0x7+parseInt(_0x16cf9f(0xa0))/0x8*(-parseInt(_0x16cf9f(0x96))/0x9);if(_0x522b99===_0x40d39c)break;else _0xab1c1['push'](_0xab1c1['shift']());}catch(_0x1d81d1){_0xab1c1['push'](_0xab1c1['shift']());}}}(a5_0x4a38,0x1d062));import{fileURLToPath}from'url';function a5_0x4a38(){const _0x21c1f2=['tableData','312WVliyk','data','308346djxZTo','153313rNoovI','34173AHlRRb','624757YYouxL','Mock\x20API\x20error:\x20','10xUHFZN','parse','errorMsg','458488OTSdJN','150000aXAQCb','324738dtPior'];a5_0x4a38=function(){return _0x21c1f2;};return a5_0x4a38();}import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function loadMockAppList(){const _0x55cc17=a5_0x15fc,_0x1707ec=join(__dirname,'../../../mock/app-list.json'),_0x371e26=readFileSync(_0x1707ec,'utf-8');return JSON[_0x55cc17(0x9a)](_0x371e26);}function a5_0x15fc(_0x482ab6,_0x4f11f6){_0x482ab6=_0x482ab6-0x94;const _0x4a38b9=a5_0x4a38();let _0x15fc13=_0x4a38b9[_0x482ab6];return _0x15fc13;}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x2adac2=a5_0x15fc,_0x30a223=getMockAppList();if(!_0x30a223['success'])throw new Error(_0x2adac2(0x98)+_0x30a223[_0x2adac2(0x9b)]+'\x20('+_0x30a223['errorCode']+')');return _0x30a223[_0x2adac2(0xa1)][_0x2adac2(0x9f)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x45f053,_0x3fb878){const _0x1fef35=a6_0x31e2,_0x39d181=_0x45f053();while(!![]){try{const _0x490677=parseInt(_0x1fef35(0x8c))/0x1+parseInt(_0x1fef35(0x87))/0x2*(-parseInt(_0x1fef35(0x85))/0x3)+parseInt(_0x1fef35(0x7f))/0x4*(-parseInt(_0x1fef35(0x84))/0x5)+parseInt(_0x1fef35(0x82))/0x6*(-parseInt(_0x1fef35(0x7d))/0x7)+-parseInt(_0x1fef35(0x8b))/0x8+-parseInt(_0x1fef35(0x7e))/0x9*(parseInt(_0x1fef35(0x89))/0xa)+parseInt(_0x1fef35(0x86))/0xb;if(_0x490677===_0x3fb878)break;else _0x39d181['push'](_0x39d181['shift']());}catch(_0x472cf0){_0x39d181['push'](_0x39d181['shift']());}}}(a6_0x5877,0xb9ffc));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';function a6_0x31e2(_0x70f935,_0x236e3e){_0x70f935=_0x70f935-0x7b;const _0x587793=a6_0x5877();let _0x31e2c2=_0x587793[_0x70f935];return _0x31e2c2;}import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x31a383=a6_0x31e2,_0x4e6e40=(productEnv(_0x31a383(0x7b))||'')[_0x31a383(0x8d)]()[_0x31a383(0x80)]();return _0x4e6e40==='mock';}function a6_0x5877(){const _0x583aa2=['1897lyNljo','279HPbyTx','179012veBahb','toLowerCase','cache','23196SGXRDQ','fetchedAt','115JcqJGT','15kJOgnY','42971984JvwGnH','455954CYVlvc','toISOString','137630NNfvSD','items','5182872mvmjvo','1146710oyPyIV','trim','remote','APP_LIST_SOURCE','mock'];a6_0x5877=function(){return _0x583aa2;};return a6_0x5877();}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x5090e8){const _0x20ad0e=a6_0x31e2,{env:_0x49a930,accessKey:_0x4b6b62,localOnly:localOnly=![],noCache:noCache=![]}=_0x5090e8,_0x518ccb=readCachedAppList(_0x49a930,_0x4b6b62),_0x32a542=_0x4b6b62?.[_0x20ad0e(0x8d)]()?getAppCacheFilePath(_0x49a930,_0x4b6b62):null;if(localOnly)return{'items':_0x518ccb?.[_0x20ad0e(0x8a)]??[],'source':_0x20ad0e(0x81),'fetchedAt':_0x518ccb?.[_0x20ad0e(0x83)]??null,'cachePath':_0x32a542};try{const _0x2dd7ad=await getRemoteAppItems(),_0x2c3edb=shouldUseMockRemoteApps()?_0x20ad0e(0x7c):_0x20ad0e(0x8e),_0x137325=new Date()[_0x20ad0e(0x88)](),_0x4f45d5=_0x4b6b62?.[_0x20ad0e(0x8d)]()?writeCachedAppList(_0x49a930,_0x4b6b62,{'env':_0x49a930,'fetchedAt':_0x137325,'source':_0x2c3edb,'items':_0x2dd7ad}):null;return{'items':_0x2dd7ad,'source':_0x2c3edb,'fetchedAt':_0x137325,'cachePath':_0x4f45d5};}catch(_0x15ec4d){if(!noCache&&_0x518ccb)return{'items':_0x518ccb[_0x20ad0e(0x8a)],'source':'cache','fetchedAt':_0x518ccb[_0x20ad0e(0x83)],'cachePath':_0x32a542};throw _0x15ec4d;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x499d0f,_0x823db5){const _0x59d92d=a7_0x54e5,_0x195099=_0x499d0f();while(!![]){try{const _0x4d7395=-parseInt(_0x59d92d(0x117))/0x1+-parseInt(_0x59d92d(0x108))/0x2*(-parseInt(_0x59d92d(0x109))/0x3)+parseInt(_0x59d92d(0x10c))/0x4*(parseInt(_0x59d92d(0x105))/0x5)+-parseInt(_0x59d92d(0x10e))/0x6*(parseInt(_0x59d92d(0x116))/0x7)+parseInt(_0x59d92d(0x10a))/0x8*(-parseInt(_0x59d92d(0x118))/0x9)+parseInt(_0x59d92d(0x103))/0xa*(-parseInt(_0x59d92d(0x114))/0xb)+-parseInt(_0x59d92d(0x111))/0xc*(-parseInt(_0x59d92d(0x113))/0xd);if(_0x4d7395===_0x823db5)break;else _0x195099['push'](_0x195099['shift']());}catch(_0x11faef){_0x195099['push'](_0x195099['shift']());}}}(a7_0x1ddb,0x9c52d));function a7_0x54e5(_0x20de6a,_0x3751e2){_0x20de6a=_0x20de6a-0x103;const _0x1ddbd3=a7_0x1ddb();let _0x54e51d=_0x1ddbd3[_0x20de6a];return _0x54e51d;}function a7_0x1ddb(){const _0x3eae28=['143DvlJbX','4298767qWCEwd','appCode','2093TGFkQr','999759GEKkZl','108aSHSnu','find','30NyxsEZ','definedIn','4527045cuVGJS','local','isCurrent','890964VlPcGr','6jrVijf','516208TgONHQ','currentApp','4dwlmmZ','name','12186jfGlqp','appcode','trim','2615628SojjjU','defaultApp'];a7_0x1ddb=function(){return _0x3eae28;};return a7_0x1ddb();}export function enrichAppListItemsWithMergedSelection(_0x21fdbf,_0x4fb4aa){const _0x45ccd2=a7_0x54e5;if(!_0x4fb4aa)return;const _0x895dc9=!!(_0x4fb4aa[_0x45ccd2(0x10b)]??_0x4fb4aa['defaultApp']);for(const _0x234896 of _0x21fdbf){_0x234896[_0x45ccd2(0x107)]=![];}const _0x90766b=_0x4fb4aa[_0x45ccd2(0x115)]!=null?String(_0x4fb4aa[_0x45ccd2(0x115)])['trim']():'';if(_0x895dc9){const _0x1fdd30=_0x4fb4aa[_0x45ccd2(0x10b)]??_0x4fb4aa[_0x45ccd2(0x112)];if(_0x1fdd30){const _0x19fe36=_0x21fdbf[_0x45ccd2(0x119)](_0x240a6b=>_0x240a6b['named']===!![]&&_0x240a6b['name']===_0x1fdd30&&_0x240a6b[_0x45ccd2(0x104)]===_0x45ccd2(0x106)),_0xa5e97f=_0x19fe36??_0x21fdbf[_0x45ccd2(0x119)](_0x166a9b=>_0x166a9b['named']===!![]&&_0x166a9b[_0x45ccd2(0x10d)]===_0x1fdd30);if(_0xa5e97f){const _0x531e42=String(_0xa5e97f[_0x45ccd2(0x10f)]??'')[_0x45ccd2(0x110)]();if(!_0x90766b||_0x531e42===_0x90766b){_0xa5e97f[_0x45ccd2(0x107)]=!![];return;}}}if(_0x90766b){const _0x1e2310=_0x21fdbf[_0x45ccd2(0x119)](_0x41c754=>String(_0x41c754['appcode']??'')[_0x45ccd2(0x110)]()===_0x90766b);_0x1e2310&&(_0x1e2310[_0x45ccd2(0x107)]=!![]);}return;}if(!_0x90766b)return;for(const _0x28ed15 of _0x21fdbf){String(_0x28ed15[_0x45ccd2(0x10f)]??'')[_0x45ccd2(0x110)]()===_0x90766b&&(_0x28ed15[_0x45ccd2(0x107)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a8_0x3f2226=a8_0x1f43;(function(_0x5f3e91,_0x5e9a92){const _0x439223=a8_0x1f43,_0x104b83=_0x5f3e91();while(!![]){try{const _0x50e2f4=parseInt(_0x439223(0xaa))/0x1*(parseInt(_0x439223(0xa1))/0x2)+-parseInt(_0x439223(0x96))/0x3+parseInt(_0x439223(0xa7))/0x4*(parseInt(_0x439223(0x9e))/0x5)+-parseInt(_0x439223(0xa3))/0x6+-parseInt(_0x439223(0x99))/0x7+parseInt(_0x439223(0xa8))/0x8+-parseInt(_0x439223(0xa0))/0x9;if(_0x50e2f4===_0x5e9a92)break;else _0x104b83['push'](_0x104b83['shift']());}catch(_0x2a8131){_0x104b83['push'](_0x104b83['shift']());}}}(a8_0x4df2,0x542af));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a8_0x1f43(_0x2b371f,_0x160a9a){_0x2b371f=_0x2b371f-0x96;const _0x4df28f=a8_0x4df2();let _0x1f430c=_0x4df28f[_0x2b371f];return _0x1f430c;}export const appConfigGet={'service':a8_0x3f2226(0x98),'command':'get','description':a8_0x3f2226(0x9b),'risk':a8_0x3f2226(0xa9),'args':[{'name':a8_0x3f2226(0x9c),'description':'App\x20config\x20key','required':!![]}],'flags':[],async 'execute'(_0x11dfcc){const _0x5d3bf3=a8_0x3f2226,_0x1cdac0=_0x11dfcc['args'][0x0]?.[_0x5d3bf3(0xa4)]();if(!_0x1cdac0)throw CliErrors[_0x5d3bf3(0x9f)]('Missing\x20app-config\x20key.',_0x5d3bf3(0xa5)+CLI_BIN_NAME+_0x5d3bf3(0x9d));try{const _0x42a93f=await getRuntimeAppConfigByKey(_0x11dfcc[_0x5d3bf3(0x9a)],_0x1cdac0);return{'ok':!![],'data':_0x42a93f};}catch{throw CliErrors['apiError'](_0x5d3bf3(0xa2)+_0x1cdac0+_0x5d3bf3(0x97)+_0x11dfcc[_0x5d3bf3(0x9a)],_0x5d3bf3(0xa6));}}};function a8_0x4df2(){const _0x420898=['1075347gGfaAs','appCode','Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','key','\x20app-config\x20get\x20<key>','3240205UCVkeS','validation','3659202JOOsJj','86wUFCIl','Unable\x20to\x20get\x20app-config\x20value:\x20key=','2623662kzElmk','trim','Usage:\x20','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','4PWnjOU','1740512BhPmpC','read','15955ATsBJK','628329GLtMXX',',\x20appCode=','app-config'];a8_0x4df2=function(){return _0x420898;};return a8_0x4df2();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x43187f,_0x4ed5ec){const _0x93e132=a9_0x1663,_0x3e192d=_0x43187f();while(!![]){try{const _0x38d57a=-parseInt(_0x93e132(0xa2))/0x1*(-parseInt(_0x93e132(0x9f))/0x2)+parseInt(_0x93e132(0x9d))/0x3*(parseInt(_0x93e132(0xa1))/0x4)+parseInt(_0x93e132(0x9e))/0x5+parseInt(_0x93e132(0xa3))/0x6+-parseInt(_0x93e132(0xa0))/0x7+-parseInt(_0x93e132(0xa4))/0x8+-parseInt(_0x93e132(0xa5))/0x9;if(_0x38d57a===_0x4ed5ec)break;else _0x3e192d['push'](_0x3e192d['shift']());}catch(_0x5ecb0a){_0x3e192d['push'](_0x3e192d['shift']());}}}(a9_0x249a,0xf0b0b));import{appConfigGet}from'../../commands/app-config/get.js';function a9_0x1663(_0x51285d,_0x31650c){_0x51285d=_0x51285d-0x9d;const _0x249ac9=a9_0x249a();let _0x1663c2=_0x249ac9[_0x51285d];return _0x1663c2;}export const appConfigDefinitions=[appConfigGet];function a9_0x249a(){const _0x41de1a=['2081346LfOHgK','283152VEshFD','12343950rBSFxQ','1999854gpsKeT','6145595QjAOHr','6UJiElf','8529402LuMXim','4QBLRrN','456223wIMNjX'];a9_0x249a=function(){return _0x41de1a;};return a9_0x249a();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x542a4f=a10_0x5dae;(function(_0x2f0e1a,_0x53a0cf){const _0x114cb7=a10_0x5dae,_0x4998ce=_0x2f0e1a();while(!![]){try{const _0x32c4c6=-parseInt(_0x114cb7(0x1d5))/0x1*(-parseInt(_0x114cb7(0x1a6))/0x2)+parseInt(_0x114cb7(0x1e4))/0x3*(-parseInt(_0x114cb7(0x1a1))/0x4)+-parseInt(_0x114cb7(0x1b1))/0x5*(-parseInt(_0x114cb7(0x1ca))/0x6)+parseInt(_0x114cb7(0x1d2))/0x7*(-parseInt(_0x114cb7(0x19f))/0x8)+-parseInt(_0x114cb7(0x1e9))/0x9*(parseInt(_0x114cb7(0x1a4))/0xa)+-parseInt(_0x114cb7(0x1bc))/0xb+-parseInt(_0x114cb7(0x19b))/0xc*(-parseInt(_0x114cb7(0x1dc))/0xd);if(_0x32c4c6===_0x53a0cf)break;else _0x4998ce['push'](_0x4998ce['shift']());}catch(_0x41fa89){_0x4998ce['push'](_0x4998ce['shift']());}}}(a10_0x1190,0x529fd));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';function a10_0x1190(){const _0x1807bf=['startsWith','join','60CnZNgl','favorite','compiledContent','test','5576kyWggN','read','232476mJZfMX','create','react_module','2996530ZxxcbJ','description','46uQxQQz','AGENT','File\x20path\x20is\x20required.','write','lodash','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','@ant-design/icons','num','antd','map','metadata','335QwUwuM','trim','parse','str','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','split','utf8','/client/artifact/','build','react','filter','3216488yBOAos','body','exec','includes','list','updateTime','name','Preview:\x20create\x20react_module\x20Artifact','verbose','appCode','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','Updated\x20Artifact\x20','lastIndex','POST','43914EMDYKD','Artifact\x20source\x20file\x20is\x20blank.','string','validation','detail','isArray','Invalid\x20JSON\x20for\x20--metadata:\x20','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','2877gGXkuL','Artifact\x20ID','flag','7937OOxkHo','createTime','Preview:\x20update\x20react_module\x20Artifact\x20','artifactType','/update','Created\x20Artifact\x20','isFile','1867814yeqJEw','source','dayjs','artifact','File\x20not\x20found:\x20','Artifact\x20display\x20name','deleted','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','9ViSKDX','Show\x20one\x20Artifact\x20by\x20id','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','number','length','9QQbNEc','update','.\x20Unsupported:\x20','bool'];a10_0x1190=function(){return _0x1807bf;};return a10_0x1190();}import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE=a10_0x542a4f(0x1a3),ARTIFACT_SOURCE_AGENT=a10_0x542a4f(0x1a7),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x542a4f(0x1ba),'react-dom',a10_0x542a4f(0x1aa),a10_0x542a4f(0x1de),a10_0x542a4f(0x1ae),a10_0x542a4f(0x1ac)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x542a4f(0x1ee)](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':'file','type':'string','required':!![],'description':a10_0x542a4f(0x1c6)},ARTIFACT_NAME_FLAG={'name':a10_0x542a4f(0x1c2),'type':'string','description':a10_0x542a4f(0x1e1)},METADATA_FLAG={'name':a10_0x542a4f(0x1b0),'type':'string','description':a10_0x542a4f(0x1e3)};function isPlainObject(_0x3c6d8e){const _0x7833b1=a10_0x542a4f;return typeof _0x3c6d8e==='object'&&_0x3c6d8e!==null&&!Array[_0x7833b1(0x1cf)](_0x3c6d8e);}function readSourceFile(_0x446c8b){const _0x4c4b69=a10_0x542a4f;if(!_0x446c8b)throw CliErrors[_0x4c4b69(0x1cd)](_0x4c4b69(0x1a8));if(!existsSync(_0x446c8b))throw CliErrors['validation'](_0x4c4b69(0x1e0)+_0x446c8b);if(!statSync(_0x446c8b)[_0x4c4b69(0x1db)]())throw CliErrors[_0x4c4b69(0x1cd)]('File\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x446c8b);const _0x5cddc8=readFileSync(_0x446c8b,_0x4c4b69(0x1b7));return validateReactModuleSource(_0x5cddc8),_0x5cddc8;}function parseMetadata(_0x22ba6e){const _0x33ae35=a10_0x542a4f;if(!_0x22ba6e)return undefined;let _0x5f2a04;try{_0x5f2a04=JSON[_0x33ae35(0x1b3)](_0x22ba6e);}catch{throw CliErrors[_0x33ae35(0x1cd)](_0x33ae35(0x1d0)+_0x22ba6e);}if(!isPlainObject(_0x5f2a04))throw CliErrors[_0x33ae35(0x1cd)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x1ec635={..._0x5f2a04};return delete _0x1ec635[_0x33ae35(0x19d)],_0x1ec635;}function getPackageName(_0x2c0451){const _0x5524d6=a10_0x542a4f;if(_0x2c0451[_0x5524d6(0x1ed)]('@')){const [_0x698482,_0x466f2c]=_0x2c0451['split']('/');return _0x698482&&_0x466f2c?_0x698482+'/'+_0x466f2c:_0x2c0451;}return _0x2c0451[_0x5524d6(0x1b6)]('/')[0x0]||_0x2c0451;}function validateAllowedImports(_0x4fe138){const _0x4d5a15=a10_0x542a4f,_0x758460=new Set();for(const _0x59bc5d of IMPORT_SOURCE_PATTERNS){_0x59bc5d[_0x4d5a15(0x1c8)]=0x0;let _0x960a36;while((_0x960a36=_0x59bc5d[_0x4d5a15(0x1be)](_0x4fe138))!==null){const _0x3114f6=_0x960a36[0x1]?.['trim']();_0x3114f6&&_0x758460['add'](_0x3114f6);}}const _0x17d7c5=[..._0x758460][_0x4d5a15(0x1af)](getPackageName)[_0x4d5a15(0x1bb)](_0x441410=>!ALLOWED_REACT_MODULE_IMPORTS[_0x4d5a15(0x1bf)](_0x441410));if(_0x17d7c5[_0x4d5a15(0x1e8)]>0x0)throw CliErrors[_0x4d5a15(0x1cd)]('react_module\x20imports\x20are\x20limited\x20to:\x20'+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x4d5a15(0x1eb)+[...new Set(_0x17d7c5)][_0x4d5a15(0x1ee)](',\x20'));}function a10_0x5dae(_0x5613fe,_0x105fa6){_0x5613fe=_0x5613fe-0x19b;const _0x1190fc=a10_0x1190();let _0x5daecb=_0x1190fc[_0x5613fe];return _0x5daecb;}export function validateReactModuleSource(_0x38dde5){const _0x473952=a10_0x542a4f;if(!_0x38dde5['trim']())throw CliErrors['validation'](_0x473952(0x1cb));if(PAGE_LEVEL_PATTERNS['some'](_0x62551b=>_0x62551b[_0x473952(0x19e)](_0x38dde5)))throw CliErrors[_0x473952(0x1cd)](_0x473952(0x1e6));validateAllowedImports(_0x38dde5);}function buildArtifactInput(_0x54b5ed){const _0x45af85=a10_0x542a4f,_0x567f49=readSourceFile(_0x54b5ed[_0x45af85(0x1b4)]('file')),_0x1ddd11=_0x54b5ed[_0x45af85(0x1b4)](_0x45af85(0x1c2))[_0x45af85(0x1b2)](),_0x448d1c=parseMetadata(_0x54b5ed[_0x45af85(0x1b4)]('metadata'));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x1ddd11?{'name':_0x1ddd11}:{},'content':_0x567f49,..._0x448d1c?{'metadata':_0x448d1c}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x3fce80){const _0x1abec7=a10_0x542a4f;return{'id':_0x3fce80['id'],'name':_0x3fce80[_0x1abec7(0x1c2)],'artifactType':_0x3fce80[_0x1abec7(0x1d8)],'source':_0x3fce80[_0x1abec7(0x1dd)],'favorite':_0x3fce80[_0x1abec7(0x19c)],'deleted':_0x3fce80[_0x1abec7(0x1e2)],'createTime':_0x3fce80[_0x1abec7(0x1d6)],'updateTime':_0x3fce80[_0x1abec7(0x1c1)]};}function detailArtifact(_0x296fbc){const _0x513583=a10_0x542a4f;return{'id':_0x296fbc['id'],'appCode':_0x296fbc['appCode'],'name':_0x296fbc[_0x513583(0x1c2)],'artifactType':_0x296fbc[_0x513583(0x1d8)],'source':_0x296fbc[_0x513583(0x1dd)],'favorite':_0x296fbc['favorite'],'deleted':_0x296fbc[_0x513583(0x1e2)],'content':_0x296fbc['content']??'','compiledContent':_0x296fbc['compiledContent'],'metadata':_0x296fbc[_0x513583(0x1b0)]??{},'createTime':_0x296fbc['createTime'],'updateTime':_0x296fbc[_0x513583(0x1c1)]};}function readFavoriteFlag(_0x4ed458){const _0xfc3854=a10_0x542a4f,_0xd7370=_0x4ed458[_0xfc3854(0x1d4)](_0xfc3854(0x19c));return _0xd7370===undefined||_0xd7370===null||_0xd7370===''?undefined:_0x4ed458['bool']('favorite');}const artifactList={'service':a10_0x542a4f(0x1df),'command':a10_0x542a4f(0x1c0),'description':'List\x20current-app\x20react_module\x20Artifacts','risk':a10_0x542a4f(0x1a0),'flags':[{'name':'source','type':a10_0x542a4f(0x1cc),'description':a10_0x542a4f(0x1d1)},{'name':a10_0x542a4f(0x19c),'type':'boolean','description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x609e6b){const _0x4fdf25=a10_0x542a4f,_0x5e93c0=await listRuntimeArtifacts(_0x609e6b[_0x4fdf25(0x1c5)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x609e6b[_0x4fdf25(0x1b4)](_0x4fdf25(0x1dd))?{'source':_0x609e6b[_0x4fdf25(0x1b4)](_0x4fdf25(0x1dd))}:{},...readFavoriteFlag(_0x609e6b)!==undefined?{'favorite':readFavoriteFlag(_0x609e6b)}:{}});return{'ok':!![],'data':{'total':_0x5e93c0[_0x4fdf25(0x1e8)],'items':_0x609e6b[_0x4fdf25(0x1ec)](_0x4fdf25(0x1c4))?_0x5e93c0:_0x5e93c0[_0x4fdf25(0x1af)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x542a4f(0x1df),'command':a10_0x542a4f(0x1ce),'description':a10_0x542a4f(0x1e5),'risk':a10_0x542a4f(0x1a0),'flags':[{...ID_FLAG,'description':a10_0x542a4f(0x1d3)}],async 'execute'(_0x46915c){const _0x3d7369=a10_0x542a4f,_0x265e8d=await getRuntimeArtifact(_0x46915c[_0x3d7369(0x1ad)]('id'),_0x46915c[_0x3d7369(0x1c5)]);return{'ok':!![],'data':detailArtifact(_0x265e8d)};}},artifactCreate={'service':'artifact','command':a10_0x542a4f(0x1a2),'description':a10_0x542a4f(0x1ab),'risk':a10_0x542a4f(0x1a9),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x428c5c){const _0x21fe4f=a10_0x542a4f,_0x3bc1ab=buildArtifactInput(_0x428c5c),_0x3bc5db=await createRuntimeArtifact(_0x428c5c[_0x21fe4f(0x1c5)],_0x3bc1ab);return{'ok':!![],'data':detailArtifact(_0x3bc5db),'message':_0x21fe4f(0x1da)+_0x3bc5db['id']+(_0x3bc5db[_0x21fe4f(0x1c2)]?'\x20('+_0x3bc5db[_0x21fe4f(0x1c2)]+')':'')};},async 'dryRun'(_0x27689b){const _0x4e91cc=a10_0x542a4f,_0x54c54a=buildArtifactInput(_0x27689b);return dryRun('POST','/client/artifact/create')[_0x4e91cc(0x1bd)]({'appCode':_0x27689b['appCode'],..._0x54c54a})['description'](_0x4e91cc(0x1c3))[_0x4e91cc(0x1b9)]();},'writeEventSubject'(_0x56b924){const _0x548f72=a10_0x542a4f,_0x3e2d29=_0x56b924['data']?.['id'];if(typeof _0x3e2d29!==_0x548f72(0x1cc)&&typeof _0x3e2d29!==_0x548f72(0x1e7))return undefined;return{'kind':_0x548f72(0x1df),'id':String(_0x3e2d29),'action':_0x548f72(0x1a2)};}},artifactUpdate={'service':a10_0x542a4f(0x1df),'command':a10_0x542a4f(0x1ea),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x542a4f(0x1a9),'confirmationDescription':a10_0x542a4f(0x1b5),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x5890fb){const _0x3966a2=a10_0x542a4f,_0x468809=_0x5890fb[_0x3966a2(0x1ad)]('id'),_0x417bad=buildArtifactInput(_0x5890fb),_0x56732b=await updateRuntimeArtifact(_0x468809,_0x5890fb[_0x3966a2(0x1c5)],_0x417bad);return{'ok':!![],'data':detailArtifact(_0x56732b),'message':_0x3966a2(0x1c7)+_0x56732b['id']+(_0x56732b[_0x3966a2(0x1c2)]?'\x20('+_0x56732b[_0x3966a2(0x1c2)]+')':'')};},async 'dryRun'(_0x1ee7b6){const _0x5b6a49=a10_0x542a4f,_0x4a0d3b=_0x1ee7b6[_0x5b6a49(0x1ad)]('id'),_0x8cd3c9=buildArtifactInput(_0x1ee7b6);return dryRun(_0x5b6a49(0x1c9),_0x5b6a49(0x1b8)+_0x4a0d3b+_0x5b6a49(0x1d9))[_0x5b6a49(0x1bd)]({'appCode':_0x1ee7b6[_0x5b6a49(0x1c5)],..._0x8cd3c9})[_0x5b6a49(0x1a5)](_0x5b6a49(0x1d7)+_0x4a0d3b)[_0x5b6a49(0x1b9)]();},'writeEventSubject'(_0x47c338){const _0x2c797b=a10_0x542a4f,_0x1f0087=_0x47c338['data']?.['id'];if(typeof _0x1f0087!==_0x2c797b(0x1cc)&&typeof _0x1f0087!==_0x2c797b(0x1e7))return undefined;return{'kind':_0x2c797b(0x1df),'id':String(_0x1f0087),'action':_0x2c797b(0x1ea)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x2a6567=a10_0x1d9f;(function(_0x563c9f,_0x24d677){const _0x36a822=a10_0x1d9f,_0x57d990=_0x563c9f();while(!![]){try{const _0x51ea09=-parseInt(_0x36a822(0x16e))/0x1*(parseInt(_0x36a822(0x183))/0x2)+-parseInt(_0x36a822(0x18b))/0x3*(-parseInt(_0x36a822(0x15c))/0x4)+-parseInt(_0x36a822(0x17b))/0x5*(parseInt(_0x36a822(0x17a))/0x6)+parseInt(_0x36a822(0x167))/0x7+parseInt(_0x36a822(0x19a))/0x8+-parseInt(_0x36a822(0x198))/0x9+parseInt(_0x36a822(0x189))/0xa;if(_0x51ea09===_0x24d677)break;else _0x57d990['push'](_0x57d990['shift']());}catch(_0x4cbce8){_0x57d990['push'](_0x57d990['shift']());}}}(a10_0x1d1d,0xd4837));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_0x2a6567(0x184),ARTIFACT_SOURCE_AGENT=a10_0x2a6567(0x1a2),ALLOWED_REACT_MODULE_IMPORTS=['react',a10_0x2a6567(0x165),a10_0x2a6567(0x18f),a10_0x2a6567(0x16c),'antd',a10_0x2a6567(0x172)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x2a6567(0x196)](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':a10_0x2a6567(0x185),'type':a10_0x2a6567(0x174),'required':!![],'description':a10_0x2a6567(0x161)},ARTIFACT_NAME_FLAG={'name':a10_0x2a6567(0x194),'type':'string','description':a10_0x2a6567(0x191)},METADATA_FLAG={'name':a10_0x2a6567(0x17c),'type':a10_0x2a6567(0x174),'description':a10_0x2a6567(0x15b)};function isPlainObject(_0x20cdf5){const _0x166b25=a10_0x2a6567;return typeof _0x20cdf5===_0x166b25(0x162)&&_0x20cdf5!==null&&!Array[_0x166b25(0x195)](_0x20cdf5);}function readSourceFile(_0x39120d){const _0x5e4350=a10_0x2a6567;if(!_0x39120d)throw CliErrors[_0x5e4350(0x182)](_0x5e4350(0x19e));if(!existsSync(_0x39120d))throw CliErrors['validation'](_0x5e4350(0x16d)+_0x39120d);if(!statSync(_0x39120d)['isFile']())throw CliErrors[_0x5e4350(0x182)](_0x5e4350(0x190)+_0x39120d);const _0x808bed=readFileSync(_0x39120d,_0x5e4350(0x181));return validateReactModuleSource(_0x808bed),_0x808bed;}function parseMetadata(_0x49ad4d){const _0x2ae25d=a10_0x2a6567;if(!_0x49ad4d)return undefined;let _0xa5e2ae;try{_0xa5e2ae=JSON[_0x2ae25d(0x18d)](_0x49ad4d);}catch{throw CliErrors[_0x2ae25d(0x182)](_0x2ae25d(0x1a3)+_0x49ad4d);}if(!isPlainObject(_0xa5e2ae))throw CliErrors[_0x2ae25d(0x182)](_0x2ae25d(0x15e));const _0x1311fd={..._0xa5e2ae};return delete _0x1311fd[_0x2ae25d(0x155)],_0x1311fd;}function getPackageName(_0x48fddc){const _0x1fa027=a10_0x2a6567;if(_0x48fddc[_0x1fa027(0x168)]('@')){const [_0x550b83,_0x153017]=_0x48fddc[_0x1fa027(0x173)]('/');return _0x550b83&&_0x153017?_0x550b83+'/'+_0x153017:_0x48fddc;}return _0x48fddc[_0x1fa027(0x173)]('/')[0x0]||_0x48fddc;}function validateAllowedImports(_0x1373dd){const _0x418c20=a10_0x2a6567,_0x2a8ad8=new Set();for(const _0x3a3d59 of IMPORT_SOURCE_PATTERNS){_0x3a3d59['lastIndex']=0x0;let _0x49f4d3;while((_0x49f4d3=_0x3a3d59[_0x418c20(0x16a)](_0x1373dd))!==null){const _0x2f3337=_0x49f4d3[0x1]?.[_0x418c20(0x16f)]();_0x2f3337&&_0x2a8ad8['add'](_0x2f3337);}}const _0x5188b4=[..._0x2a8ad8][_0x418c20(0x18c)](getPackageName)[_0x418c20(0x179)](_0x1bf51=>!ALLOWED_REACT_MODULE_IMPORTS[_0x418c20(0x153)](_0x1bf51));if(_0x5188b4[_0x418c20(0x158)]>0x0)throw CliErrors[_0x418c20(0x182)](_0x418c20(0x17d)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x418c20(0x193)+[...new Set(_0x5188b4)][_0x418c20(0x196)](',\x20'));}export function validateReactModuleSource(_0x460db7){const _0x4111b8=a10_0x2a6567;if(!_0x460db7[_0x4111b8(0x16f)]())throw CliErrors[_0x4111b8(0x182)](_0x4111b8(0x187));if(PAGE_LEVEL_PATTERNS[_0x4111b8(0x15d)](_0x1159b2=>_0x1159b2[_0x4111b8(0x177)](_0x460db7)))throw CliErrors[_0x4111b8(0x182)]('react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.');validateAllowedImports(_0x460db7);}function buildArtifactInput(_0x182fe4){const _0x17f167=a10_0x2a6567,_0x178365=readSourceFile(_0x182fe4['str'](_0x17f167(0x185))),_0x4932bf=_0x182fe4[_0x17f167(0x18e)](_0x17f167(0x194))[_0x17f167(0x16f)](),_0x3e1fd8=parseMetadata(_0x182fe4['str'](_0x17f167(0x17c)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x4932bf?{'name':_0x4932bf}:{},'content':_0x178365,..._0x3e1fd8?{'metadata':_0x3e1fd8}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x287778){const _0x38599a=a10_0x2a6567;return{'id':_0x287778['id'],'name':_0x287778[_0x38599a(0x194)],'artifactType':_0x287778['artifactType'],'source':_0x287778[_0x38599a(0x19b)],'favorite':_0x287778['favorite'],'deleted':_0x287778[_0x38599a(0x152)],'createTime':_0x287778[_0x38599a(0x15a)],'updateTime':_0x287778[_0x38599a(0x188)]};}function detailArtifact(_0x6db9f6){const _0x29f8ee=a10_0x2a6567;return{'id':_0x6db9f6['id'],'appCode':_0x6db9f6[_0x29f8ee(0x16b)],'name':_0x6db9f6[_0x29f8ee(0x194)],'artifactType':_0x6db9f6[_0x29f8ee(0x150)],'source':_0x6db9f6[_0x29f8ee(0x19b)],'favorite':_0x6db9f6[_0x29f8ee(0x164)],'deleted':_0x6db9f6['deleted'],'content':_0x6db9f6[_0x29f8ee(0x186)]??'','compiledContent':_0x6db9f6['compiledContent'],'metadata':_0x6db9f6[_0x29f8ee(0x17c)]??{},'createTime':_0x6db9f6[_0x29f8ee(0x15a)],'updateTime':_0x6db9f6['updateTime']};}function readFavoriteFlag(_0xa15242){const _0x2d0a84=a10_0x2a6567,_0x34d1c0=_0xa15242[_0x2d0a84(0x170)](_0x2d0a84(0x164));return _0x34d1c0===undefined||_0x34d1c0===null||_0x34d1c0===''?undefined:_0xa15242[_0x2d0a84(0x175)](_0x2d0a84(0x164));}const artifactList={'service':a10_0x2a6567(0x176),'command':'list','description':a10_0x2a6567(0x19d),'risk':a10_0x2a6567(0x1a0),'flags':[{'name':'source','type':a10_0x2a6567(0x174),'description':'Optional\x20source\x20filter,\x20for\x20example\x20AGENT'},{'name':'favorite','type':a10_0x2a6567(0x17e),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x25ef55){const _0x1c1beb=a10_0x2a6567,_0x493828=await listRuntimeArtifacts(_0x25ef55[_0x1c1beb(0x16b)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x25ef55[_0x1c1beb(0x18e)](_0x1c1beb(0x19b))?{'source':_0x25ef55['str'](_0x1c1beb(0x19b))}:{},...readFavoriteFlag(_0x25ef55)!==undefined?{'favorite':readFavoriteFlag(_0x25ef55)}:{}});return{'ok':!![],'data':{'total':_0x493828[_0x1c1beb(0x158)],'items':_0x25ef55[_0x1c1beb(0x175)](_0x1c1beb(0x180))?_0x493828:_0x493828[_0x1c1beb(0x18c)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x2a6567(0x176),'command':a10_0x2a6567(0x19c),'description':a10_0x2a6567(0x157),'risk':'read','flags':[{...ID_FLAG,'description':a10_0x2a6567(0x192)}],async 'execute'(_0x21a835){const _0x4304a7=a10_0x2a6567,_0x3c1eed=await getRuntimeArtifact(_0x21a835[_0x4304a7(0x171)]('id'),_0x21a835[_0x4304a7(0x16b)]);return{'ok':!![],'data':detailArtifact(_0x3c1eed)};}},artifactCreate={'service':a10_0x2a6567(0x176),'command':a10_0x2a6567(0x18a),'description':'根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','risk':a10_0x2a6567(0x1a4),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x29ca55){const _0x453d70=a10_0x2a6567,_0x218365=buildArtifactInput(_0x29ca55),_0x29cabf=await createRuntimeArtifact(_0x29ca55['appCode'],_0x218365);return{'ok':!![],'data':detailArtifact(_0x29cabf),'message':_0x453d70(0x166)+_0x29cabf['id']+(_0x29cabf['name']?'\x20('+_0x29cabf[_0x453d70(0x194)]+')':'')};},async 'dryRun'(_0x20f9e4){const _0x1e0d71=a10_0x2a6567,_0x5cff0d=buildArtifactInput(_0x20f9e4);return dryRun(_0x1e0d71(0x156),_0x1e0d71(0x199))[_0x1e0d71(0x159)]({'appCode':_0x20f9e4['appCode'],..._0x5cff0d})[_0x1e0d71(0x1a1)]('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x3406f0){const _0x4646d8=a10_0x2a6567,_0x58a5fe=_0x3406f0[_0x4646d8(0x154)]?.['id'];if(typeof _0x58a5fe!==_0x4646d8(0x174)&&typeof _0x58a5fe!==_0x4646d8(0x151))return undefined;return{'kind':_0x4646d8(0x176),'id':String(_0x58a5fe),'action':_0x4646d8(0x18a)};}},artifactUpdate={'service':a10_0x2a6567(0x176),'command':'update','description':a10_0x2a6567(0x197),'risk':a10_0x2a6567(0x1a4),'confirmationDescription':a10_0x2a6567(0x160),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x3e5559){const _0x2bff79=a10_0x2a6567,_0x200c17=_0x3e5559['num']('id'),_0x6b371d=buildArtifactInput(_0x3e5559),_0x391298=await updateRuntimeArtifact(_0x200c17,_0x3e5559['appCode'],_0x6b371d);return{'ok':!![],'data':detailArtifact(_0x391298),'message':_0x2bff79(0x169)+_0x391298['id']+(_0x391298[_0x2bff79(0x194)]?'\x20('+_0x391298['name']+')':'')};},async 'dryRun'(_0x4e86bf){const _0x43ad2e=a10_0x2a6567,_0x4be30f=_0x4e86bf[_0x43ad2e(0x171)]('id'),_0x398eba=buildArtifactInput(_0x4e86bf);return dryRun(_0x43ad2e(0x156),_0x43ad2e(0x15f)+_0x4be30f+_0x43ad2e(0x163))[_0x43ad2e(0x159)]({'appCode':_0x4e86bf[_0x43ad2e(0x16b)],..._0x398eba})[_0x43ad2e(0x1a1)](_0x43ad2e(0x178)+_0x4be30f)[_0x43ad2e(0x17f)]();},'writeEventSubject'(_0x43b50a){const _0x4fd785=a10_0x2a6567,_0x19bc1a=_0x43b50a[_0x4fd785(0x154)]?.['id'];if(typeof _0x19bc1a!==_0x4fd785(0x174)&&typeof _0x19bc1a!==_0x4fd785(0x151))return undefined;return{'kind':'artifact','id':String(_0x19bc1a),'action':_0x4fd785(0x19f)};}};function a10_0x1d1d(){const _0x3a26fd=['/client/artifact/','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','object','/update','favorite','react-dom','Created\x20Artifact\x20','1481298FPkLij','startsWith','Updated\x20Artifact\x20','exec','appCode','dayjs','File\x20not\x20found:\x20','15hrzhml','trim','flag','num','@ant-design/icons','split','string','bool','artifact','test','Preview:\x20update\x20react_module\x20Artifact\x20','filter','6aXwtaQ','1632945rhADqZ','metadata','react_module\x20imports\x20are\x20limited\x20to:\x20','boolean','build','verbose','utf8','validation','8806YdKkIZ','react_module','file','content','Artifact\x20source\x20file\x20is\x20blank.','updateTime','1175050iDjvZn','create','51rsKpCp','map','parse','str','lodash','File\x20is\x20not\x20a\x20regular\x20file:\x20','Artifact\x20display\x20name','Artifact\x20ID','.\x20Unsupported:\x20','name','isArray','join','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','13015620uMlPuf','/client/artifact/create','6240472gLpswT','source','detail','List\x20current-app\x20react_module\x20Artifacts','File\x20path\x20is\x20required.','update','read','description','AGENT','Invalid\x20JSON\x20for\x20--metadata:\x20','write','artifactType','number','deleted','includes','data','compiledContent','POST','Show\x20one\x20Artifact\x20by\x20id','length','body','createTime','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','376492NyeDuJ','some','--metadata\x20must\x20be\x20a\x20JSON\x20object.'];a10_0x1d1d=function(){return _0x3a26fd;};return a10_0x1d1d();}function a10_0x1d9f(_0x45882c,_0x501998){_0x45882c=_0x45882c-0x150;const _0x1d1d8a=a10_0x1d1d();let _0x1d9fbc=_0x1d1d8a[_0x45882c];return _0x1d9fbc;}export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x3b9453=a11_0x18f3;(function(_0x32bcf7,_0x50070b){const _0x10b34c=a11_0x18f3,_0xb105bc=_0x32bcf7();while(!![]){try{const _0x49e5fd=parseInt(_0x10b34c(0x17e))/0x1*(parseInt(_0x10b34c(0x15e))/0x2)+parseInt(_0x10b34c(0x188))/0x3+-parseInt(_0x10b34c(0x18a))/0x4*(-parseInt(_0x10b34c(0x182))/0x5)+-parseInt(_0x10b34c(0x189))/0x6+parseInt(_0x10b34c(0x16a))/0x7*(parseInt(_0x10b34c(0x157))/0x8)+-parseInt(_0x10b34c(0x16d))/0x9*(parseInt(_0x10b34c(0x180))/0xa)+-parseInt(_0x10b34c(0x184))/0xb;if(_0x49e5fd===_0x50070b)break;else _0xb105bc['push'](_0xb105bc['shift']());}catch(_0x1dea0e){_0xb105bc['push'](_0xb105bc['shift']());}}}(a11_0x5280,0xeb439));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';function a11_0x5280(){const _0xe9add9=['signal','POST','abort','trim','\x20auth\x20status','global','now','/device-auth?code=','code','networkError','588279XlsPNv','stderr','10rKceMM','parse','2253265tUeais','Invalid\x20access_key\x20returned\x20by\x20server.','14000624GwMTiw','log','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','stringify','2774865sIjksl','9163572ysVCIq','12IuyQBL','/.device-auth','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','write','Device\x20authorization\x20successful.','name','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','validation','project','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','Device\x20auth\x20API\x20error\x20(','Write\x20to\x20global\x20config\x20(default)','\x20config.','object','url-only','randomUUID','expired','After\x20authorizing,\x20re-run:\x20','utf8','getTime','once','Invalid\x20device\x20auth\x20response','AccessKey\x20saved\x20to\x20','auth','access_key','\x20remaining','nonInteractive','status','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','boolean','toISOString','application/json','apiError','2523848jiunlJ','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','\x0dWaiting\x20for\x20authorization...\x20','cancelled','padStart','Device\x20authorization\x20cancelled.','aborted','2bJnVhc','str','data','Verify:\x20','lovrabet-cli','removeListener','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','success','AbortError','string','global-default','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','35tFdFTm','floor','scope','6110199ifypAw','test','\x20auth\x20device','bool','accessKey','SIGINT','createdAt'];a11_0x5280=function(){return _0xe9add9;};return a11_0x5280();}import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x242094){const _0x11cba7=a11_0x18f3;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x242094[_0x11cba7(0x170)](_0x11cba7(0x179)),'explicitProject':_0x242094['bool'](_0x11cba7(0x192)),'policy':_0x11cba7(0x168)}));}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 _0x1eb1af=a11_0x18f3;return crypto[_0x1eb1af(0x199)]();}export function buildDeviceAuthUrl(_0x1bdb06,_0x5e4ffa,_0x2b851b=a11_0x3b9453(0x162)){const _0x406382=a11_0x3b9453;return _0x1bdb06+_0x406382(0x17b)+encodeURIComponent(_0x5e4ffa)+'&source='+encodeURIComponent(_0x2b851b);}export function getDeviceCodePath(){const _0x4d2b87=a11_0x3b9453;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x4d2b87(0x18b);}export function readStoredDeviceCode(){const _0x1ef57b=a11_0x3b9453,_0x39cc28=getDeviceCodePath();if(!existsSync(_0x39cc28))return null;try{const _0x41de19=readFileSync(_0x39cc28,{'encoding':'utf8'}),_0x39dfeb=JSON[_0x1ef57b(0x181)](_0x41de19);if(_0x39dfeb&&typeof _0x39dfeb['code']==='string'&&typeof _0x39dfeb[_0x1ef57b(0x173)]===_0x1ef57b(0x167)&&(_0x39dfeb['scope']===_0x1ef57b(0x179)||_0x39dfeb[_0x1ef57b(0x16c)]===_0x1ef57b(0x192)))return _0x39dfeb;}catch{}return null;}export function writeStoredDeviceCode(_0x24f9c6,_0x36ce85){const _0x312165=a11_0x3b9453,_0x58340d=getDeviceCodePath(),_0x20c27a=dirname(_0x58340d);!existsSync(_0x20c27a)&&mkdirSync(_0x20c27a,{'recursive':!![]});const _0x34344a={'code':_0x24f9c6,'createdAt':new Date()[_0x312165(0x154)](),'scope':_0x36ce85};writeFileSync(_0x58340d,JSON['stringify'](_0x34344a),{'encoding':_0x312165(0x19c),'mode':0x180});}export function deleteStoredDeviceCode(){const _0xa60b96=getDeviceCodePath();try{unlinkSync(_0xa60b96);}catch{}}export function isStoredDeviceCodeExpired(_0x324e8d){const _0x3a9b65=a11_0x3b9453;return Date[_0x3a9b65(0x17a)]()-new Date(_0x324e8d[_0x3a9b65(0x173)])[_0x3a9b65(0x19d)]()>DEVICE_CODE_TTL_MS;}function a11_0x18f3(_0x359724,_0x35edc2){_0x359724=_0x359724-0x14a;const _0x5280df=a11_0x5280();let _0x18f335=_0x5280df[_0x359724];return _0x18f335;}export async function fetchDeviceToken(_0x580fea,_0x102641){const _0x2d4867=a11_0x3b9453,_0xc21f00=_0x580fea+'/api/device-auth/token',_0x17d7a0=new AbortController(),_0x94c12=setTimeout(()=>_0x17d7a0[_0x2d4867(0x176)](),0x2710),_0xa9de8a=await fetch(_0xc21f00,{'method':_0x2d4867(0x175),'headers':{'Content-Type':_0x2d4867(0x155)},'body':JSON[_0x2d4867(0x187)]({'code':_0x102641}),'signal':_0x17d7a0[_0x2d4867(0x174)]});clearTimeout(_0x94c12);if(!_0xa9de8a['ok'])throw CliErrors[_0x2d4867(0x17d)]('Device\x20auth\x20API\x20returned\x20HTTP\x20'+_0xa9de8a[_0x2d4867(0x151)]);const _0x484b16=await _0xa9de8a['json'](),_0x3a444c=_0x484b16[_0x2d4867(0x160)]&&typeof _0x484b16[_0x2d4867(0x160)]===_0x2d4867(0x197)?_0x484b16[_0x2d4867(0x160)]:_0x484b16;if(!_0x3a444c||typeof _0x3a444c[_0x2d4867(0x151)]!=='string')throw CliErrors['apiError'](_0x2d4867(0x14b));return{'status':_0x3a444c[_0x2d4867(0x151)],'access_key':typeof _0x3a444c['access_key']===_0x2d4867(0x167)?_0x3a444c[_0x2d4867(0x14e)]:undefined};}export async function pollDeviceToken(_0x26ca1c,_0x5a6a10,_0x28b01e){const _0x350955=a11_0x3b9453;let _0x4f97dd=0x0;for(let _0x2ea4a0=0x0;_0x2ea4a0<MAX_POLLS;_0x2ea4a0++){if(_0x28b01e[_0x350955(0x15d)])throw CliErrors[_0x350955(0x15a)](_0x350955(0x15c));let _0x253211;try{_0x253211=await fetchDeviceToken(_0x26ca1c,_0x5a6a10);}catch(_0x52fbd4){if(_0x52fbd4 instanceof Error&&_0x52fbd4[_0x350955(0x18f)]===_0x350955(0x166))throw CliErrors[_0x350955(0x15a)](_0x350955(0x15c));_0x4f97dd++;if(_0x4f97dd>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors['networkError'](_0x350955(0x169));writeCliSideChannelLine(_0x350955(0x194)+_0x4f97dd+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+'),\x20retrying...'),await sleep(POLL_INTERVAL_MS);continue;}_0x4f97dd=0x0;if(_0x253211['status']===_0x350955(0x165)){if(!_0x253211['access_key'])throw CliErrors['apiError'](_0x350955(0x183));return _0x253211[_0x350955(0x14e)];}if(_0x253211[_0x350955(0x151)]===_0x350955(0x19a)){deleteStoredDeviceCode();throw CliErrors['validation']('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x32bb1d=(_0x2ea4a0+0x1)*POLL_INTERVAL_MS,_0x23991d=DEVICE_CODE_TTL_MS-_0x32bb1d,_0x50fa55=Math[_0x350955(0x16b)](_0x23991d/0xea60),_0x2fe4bc=Math[_0x350955(0x16b)](_0x23991d%0xea60/0x3e8);process[_0x350955(0x17f)][_0x350955(0x18d)](_0x350955(0x159)+_0x50fa55+':'+String(_0x2fe4bc)[_0x350955(0x15b)](0x2,'0')+_0x350955(0x14f)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x350955(0x191)](_0x350955(0x18c));}function sleep(_0x546427){return new Promise(_0x71d0ea=>setTimeout(_0x71d0ea,_0x546427));}export const authDeviceDefinition={'service':a11_0x3b9453(0x14d),'command':'device','description':a11_0x3b9453(0x158),'risk':'write','confirmationDescription':a11_0x3b9453(0x164),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x3b9453(0x179),'type':a11_0x3b9453(0x153),'description':a11_0x3b9453(0x195),'default':!![]},{'name':a11_0x3b9453(0x192),'type':'boolean','description':'Write\x20to\x20project\x20config','default':![]},{'name':'source','type':a11_0x3b9453(0x167),'description':a11_0x3b9453(0x190),'default':'lovrabet-cli'},{'name':a11_0x3b9453(0x198),'type':a11_0x3b9453(0x153),'description':a11_0x3b9453(0x152),'default':![]}],async 'execute'(_0x3c310a){const _0x378929=a11_0x3b9453,_0x4bfd47=resolveAuthScopeFlags(_0x3c310a),_0x4290dd=_0x4bfd47['global']?_0x378929(0x179):_0x378929(0x192),_0x6fa33e=readScopedConfig(_0x4bfd47);if(_0x6fa33e[_0x378929(0x171)])return{'ok':!![],'message':'Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.'};const _0x45dfb3=(_0x3c310a[_0x378929(0x15f)]('source')||'lovrabet-cli')[_0x378929(0x177)](),_0x506d48=getUserDomain(),_0x184c27=readStoredDeviceCode(),_0xa98a67=_0x184c27&&!isStoredDeviceCodeExpired(_0x184c27)?_0x184c27[_0x378929(0x17c)]:((()=>{const _0x1a14d8=generateDeviceCode();return writeStoredDeviceCode(_0x1a14d8,_0x4290dd),_0x1a14d8;})()),_0x30addd=buildDeviceAuthUrl(_0x506d48,_0xa98a67,_0x45dfb3);if(_0x3c310a['bool'](_0x378929(0x198)))return console[_0x378929(0x185)](_0x30addd),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x30addd),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x378929(0x186));if(_0x3c310a[_0x378929(0x150)])return writeCliSideChannelLine(_0x378929(0x19b)+CLI_BIN_NAME+_0x378929(0x16f)),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine(_0x378929(0x193));const _0x34af76=new AbortController(),_0x1fcd0a=()=>{const _0x4eba64=_0x378929;_0x34af76[_0x4eba64(0x176)](),process[_0x4eba64(0x163)](_0x4eba64(0x172),_0x1fcd0a);};process[_0x378929(0x14a)](_0x378929(0x172),_0x1fcd0a);let _0x22c2cb;try{_0x22c2cb=await pollDeviceToken(_0x506d48,_0xa98a67,_0x34af76[_0x378929(0x174)]);}finally{process[_0x378929(0x163)](_0x378929(0x172),_0x1fcd0a);}if(!ACCESS_KEY_PATTERN[_0x378929(0x16e)](_0x22c2cb))throw CliErrors[_0x378929(0x156)](_0x378929(0x183));const _0x267978=readScopedConfig(_0x4bfd47);return _0x267978[_0x378929(0x171)]=_0x22c2cb,writeScopedConfig(_0x267978,_0x4bfd47),deleteStoredDeviceCode(),process[_0x378929(0x17f)][_0x378929(0x18d)]('\x0a'),writeCliSideChannelLine(_0x378929(0x14c)+_0x4290dd+_0x378929(0x196)),writeCliSideChannelLine(_0x378929(0x161)+CLI_BIN_NAME+_0x378929(0x178)),{'ok':!![],'message':_0x378929(0x18e)};}};
|
|
1
|
+
const a11_0x26a705=a11_0xf943;(function(_0x3c0e3e,_0x55b607){const _0x4be58f=a11_0xf943,_0x1ec53d=_0x3c0e3e();while(!![]){try{const _0x438bf2=-parseInt(_0x4be58f(0x133))/0x1+-parseInt(_0x4be58f(0xf2))/0x2+-parseInt(_0x4be58f(0x10f))/0x3*(parseInt(_0x4be58f(0x10a))/0x4)+-parseInt(_0x4be58f(0x135))/0x5+parseInt(_0x4be58f(0x110))/0x6*(parseInt(_0x4be58f(0x11b))/0x7)+-parseInt(_0x4be58f(0x10d))/0x8*(parseInt(_0x4be58f(0x130))/0x9)+parseInt(_0x4be58f(0xfa))/0xa;if(_0x438bf2===_0x55b607)break;else _0x1ec53d['push'](_0x1ec53d['shift']());}catch(_0x3f4c35){_0x1ec53d['push'](_0x1ec53d['shift']());}}}(a11_0x4741,0x9a193));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function a11_0xf943(_0x404c05,_0x5978ec){_0x404c05=_0x404c05-0xe9;const _0x474133=a11_0x4741();let _0xf943b2=_0x474133[_0x404c05];return _0xf943b2;}function resolveAuthScopeFlags(_0x5d52db){const _0x5d49fa=a11_0xf943;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x5d52db['bool'](_0x5d49fa(0x11e)),'explicitProject':_0x5d52db['bool'](_0x5d49fa(0xf3)),'policy':_0x5d49fa(0xf8)}));}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 _0x50361f=a11_0xf943;return crypto[_0x50361f(0xeb)]();}export function buildDeviceAuthUrl(_0xb3fa09,_0x2d6e57,_0x51a32e=a11_0x26a705(0x105)){const _0xa0ad5d=a11_0x26a705;return _0xb3fa09+_0xa0ad5d(0x108)+encodeURIComponent(_0x2d6e57)+'&source='+encodeURIComponent(_0x51a32e);}export function getDeviceCodePath(){const _0x238da0=a11_0x26a705;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x238da0(0x132);}function a11_0x4741(){const _0x31a187=['string','1708940UzbUGW','project','),\x20retrying...','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','status','source','global-default','auth','39333780FDqeyb','application/json','data','json','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','write','Device\x20authorization\x20cancelled.','test','url-only','success','access_key','lovrabet-cli','removeListener','padStart','/device-auth?code=','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','8QYgAmX','parse','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','24536PzPOoi','Device\x20auth\x20API\x20error\x20(','901566yHWcLK','3215238QEvZRf','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','\x20config.','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','AccessKey\x20saved\x20to\x20','Verify:\x20','nonInteractive','stringify','\x0dWaiting\x20for\x20authorization...\x20','code','accessKey','7EVfeOQ','object','utf8','global','floor','After\x20authorizing,\x20re-run:\x20','apiError','/api/device-auth/token','device','scope','boolean','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','createdAt','SIGINT','toISOString','expired','abort','trim','POST','Write\x20to\x20global\x20config\x20(default)','cancelled','963IBdsrU','stderr','/.device-auth','1257982xUutkB','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','3981995VjntjV','str','Invalid\x20access_key\x20returned\x20by\x20server.','now','\x20auth\x20device','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','once','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','Invalid\x20device\x20auth\x20response','randomUUID','aborted','signal','AbortError','networkError','name'];a11_0x4741=function(){return _0x31a187;};return a11_0x4741();}export function readStoredDeviceCode(){const _0x66b5b=a11_0x26a705,_0x7c5d3c=getDeviceCodePath();if(!existsSync(_0x7c5d3c))return null;try{const _0x276bf3=readFileSync(_0x7c5d3c,{'encoding':_0x66b5b(0x11d)}),_0x52a64b=JSON[_0x66b5b(0x10b)](_0x276bf3);if(_0x52a64b&&typeof _0x52a64b['code']===_0x66b5b(0xf1)&&typeof _0x52a64b[_0x66b5b(0x127)]==='string'&&(_0x52a64b[_0x66b5b(0x124)]==='global'||_0x52a64b[_0x66b5b(0x124)]==='project'))return _0x52a64b;}catch{}return null;}export function writeStoredDeviceCode(_0x4abcf,_0x31ca56){const _0x1e002b=a11_0x26a705,_0x26f054=getDeviceCodePath(),_0x32ce2f=dirname(_0x26f054);!existsSync(_0x32ce2f)&&mkdirSync(_0x32ce2f,{'recursive':!![]});const _0x1df8f8={'code':_0x4abcf,'createdAt':new Date()[_0x1e002b(0x129)](),'scope':_0x31ca56};writeFileSync(_0x26f054,JSON[_0x1e002b(0x117)](_0x1df8f8),{'encoding':_0x1e002b(0x11d),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x36585d=getDeviceCodePath();try{unlinkSync(_0x36585d);}catch{}}export function isStoredDeviceCodeExpired(_0x1bf38a){const _0x460d9a=a11_0x26a705;return Date[_0x460d9a(0x138)]()-new Date(_0x1bf38a['createdAt'])['getTime']()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x56a026,_0x39cc44){const _0x2dc347=a11_0x26a705,_0x163c92=_0x56a026+_0x2dc347(0x122),_0x2a0bde=new AbortController(),_0x3a0d71=setTimeout(()=>_0x2a0bde[_0x2dc347(0x12b)](),0x2710),_0x157b8a=await fetch(_0x163c92,{'method':_0x2dc347(0x12d),'headers':{'Content-Type':_0x2dc347(0xfb)},'body':JSON[_0x2dc347(0x117)]({'code':_0x39cc44}),'signal':_0x2a0bde[_0x2dc347(0xed)]});clearTimeout(_0x3a0d71);if(!_0x157b8a['ok'])throw CliErrors[_0x2dc347(0xef)]('Device\x20auth\x20API\x20returned\x20HTTP\x20'+_0x157b8a[_0x2dc347(0xf6)]);const _0x5b9566=await _0x157b8a[_0x2dc347(0xfd)](),_0x4608a8=_0x5b9566[_0x2dc347(0xfc)]&&typeof _0x5b9566['data']===_0x2dc347(0x11c)?_0x5b9566['data']:_0x5b9566;if(!_0x4608a8||typeof _0x4608a8[_0x2dc347(0xf6)]!=='string')throw CliErrors['apiError'](_0x2dc347(0xea));return{'status':_0x4608a8[_0x2dc347(0xf6)],'access_key':typeof _0x4608a8[_0x2dc347(0x104)]===_0x2dc347(0xf1)?_0x4608a8['access_key']:undefined};}export async function pollDeviceToken(_0x1fbd55,_0x1e5f0b,_0x1ad0c2){const _0x4dc765=a11_0x26a705;let _0x1cc242=0x0;for(let _0x2368f8=0x0;_0x2368f8<MAX_POLLS;_0x2368f8++){if(_0x1ad0c2[_0x4dc765(0xec)])throw CliErrors[_0x4dc765(0x12f)](_0x4dc765(0x100));let _0x383f0d;try{_0x383f0d=await fetchDeviceToken(_0x1fbd55,_0x1e5f0b);}catch(_0x5b9fc9){if(_0x5b9fc9 instanceof Error&&_0x5b9fc9[_0x4dc765(0xf0)]===_0x4dc765(0xee))throw CliErrors[_0x4dc765(0x12f)](_0x4dc765(0x100));_0x1cc242++;if(_0x1cc242>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x4dc765(0xef)]('Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.');writeCliSideChannelLine(_0x4dc765(0x10e)+_0x1cc242+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x4dc765(0xf4)),await sleep(POLL_INTERVAL_MS);continue;}_0x1cc242=0x0;if(_0x383f0d[_0x4dc765(0xf6)]===_0x4dc765(0x103)){if(!_0x383f0d[_0x4dc765(0x104)])throw CliErrors['apiError'](_0x4dc765(0x137));return _0x383f0d[_0x4dc765(0x104)];}if(_0x383f0d['status']===_0x4dc765(0x12a)){deleteStoredDeviceCode();throw CliErrors['validation'](_0x4dc765(0x113));}const _0x3e967c=(_0x2368f8+0x1)*POLL_INTERVAL_MS,_0x480cf1=DEVICE_CODE_TTL_MS-_0x3e967c,_0x2ff804=Math['floor'](_0x480cf1/0xea60),_0x1ee0f6=Math[_0x4dc765(0x11f)](_0x480cf1%0xea60/0x3e8);process['stderr'][_0x4dc765(0xff)](_0x4dc765(0x118)+_0x2ff804+':'+String(_0x1ee0f6)[_0x4dc765(0x107)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors['validation'](_0x4dc765(0x111));}function sleep(_0x461d00){return new Promise(_0x33d81d=>setTimeout(_0x33d81d,_0x461d00));}export const authDeviceDefinition={'service':a11_0x26a705(0xf9),'command':a11_0x26a705(0x123),'description':a11_0x26a705(0xe9),'risk':a11_0x26a705(0xff),'confirmationDescription':a11_0x26a705(0xf5),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x26a705(0x11e),'type':a11_0x26a705(0x125),'description':a11_0x26a705(0x12e),'default':!![]},{'name':a11_0x26a705(0xf3),'type':a11_0x26a705(0x125),'description':'Write\x20to\x20project\x20config','default':![]},{'name':a11_0x26a705(0xf7),'type':a11_0x26a705(0xf1),'description':'App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','default':a11_0x26a705(0x105)},{'name':'url-only','type':a11_0x26a705(0x125),'description':a11_0x26a705(0x13a),'default':![]}],async 'execute'(_0x174aa4){const _0x3068bd=a11_0x26a705,_0x41d373=resolveAuthScopeFlags(_0x174aa4),_0xf8b874=_0x41d373[_0x3068bd(0x11e)]?'global':_0x3068bd(0xf3),_0x48d04b=readScopedConfig(_0x41d373);if(_0x48d04b['accessKey'])return{'ok':!![],'message':_0x3068bd(0xfe)};const _0x32301d=(_0x174aa4[_0x3068bd(0x136)](_0x3068bd(0xf7))||_0x3068bd(0x105))[_0x3068bd(0x12c)](),_0x246310=getUserDomain(),_0x5d6c0a=readStoredDeviceCode(),_0x397689=_0x5d6c0a&&!isStoredDeviceCodeExpired(_0x5d6c0a)?_0x5d6c0a[_0x3068bd(0x119)]:((()=>{const _0x57dce3=generateDeviceCode();return writeStoredDeviceCode(_0x57dce3,_0xf8b874),_0x57dce3;})()),_0x2c2f06=buildDeviceAuthUrl(_0x246310,_0x397689,_0x32301d);if(_0x174aa4['bool'](_0x3068bd(0x102)))return console['log'](_0x2c2f06),{'ok':!![]};writeCliSideChannelLine(_0x3068bd(0x134)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x2c2f06),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x3068bd(0x109));if(_0x174aa4[_0x3068bd(0x116)])return writeCliSideChannelLine(_0x3068bd(0x120)+CLI_BIN_NAME+_0x3068bd(0x139)),{'ok':!![],'message':_0x3068bd(0x10c)};writeCliSideChannelLine(_0x3068bd(0x126));const _0x575bab=new AbortController(),_0x367ea1=()=>{const _0x2c7790=_0x3068bd;_0x575bab['abort'](),process['removeListener'](_0x2c7790(0x128),_0x367ea1);};process[_0x3068bd(0x13b)](_0x3068bd(0x128),_0x367ea1);let _0xafca5b;try{_0xafca5b=await pollDeviceToken(_0x246310,_0x397689,_0x575bab[_0x3068bd(0xed)]);}finally{process[_0x3068bd(0x106)](_0x3068bd(0x128),_0x367ea1);}if(!ACCESS_KEY_PATTERN[_0x3068bd(0x101)](_0xafca5b))throw CliErrors[_0x3068bd(0x121)](_0x3068bd(0x137));const _0x39d0de=readScopedConfig(_0x41d373);return _0x39d0de[_0x3068bd(0x11a)]=_0xafca5b,writeScopedConfig(_0x39d0de,_0x41d373),deleteStoredDeviceCode(),process[_0x3068bd(0x131)][_0x3068bd(0xff)]('\x0a'),writeCliSideChannelLine(_0x3068bd(0x114)+_0xf8b874+_0x3068bd(0x112)),writeCliSideChannelLine(_0x3068bd(0x115)+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':'Device\x20authorization\x20successful.'};}};
|