@lovrabet/lovrabet-cli 2.1.23-beta.3 → 2.1.23-beta.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.d.ts +2 -8
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.d.ts +6 -0
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/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/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.d.ts +4 -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.d.ts +1 -0
- 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/lib/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const a0_0x3a24bd=a0_0x2333;(function(_0x24b55b,_0x1d977a){const _0x474888=a0_0x2333,_0x1b276d=_0x24b55b();while(!![]){try{const _0x4852f0=parseInt(_0x474888(0x1a6))/0x1*(parseInt(_0x474888(0x1c0))/0x2)+parseInt(_0x474888(0x198))/0x3+parseInt(_0x474888(0x1aa))/0x4*(-parseInt(_0x474888(0x1b9))/0x5)+-parseInt(_0x474888(0x1bc))/0x6*(parseInt(_0x474888(0x19e))/0x7)+-parseInt(_0x474888(0x1a9))/0x8*(parseInt(_0x474888(0x1bb))/0x9)+-parseInt(_0x474888(0x197))/0xa*(-parseInt(_0x474888(0x1a2))/0xb)+parseInt(_0x474888(0x1ac))/0xc;if(_0x4852f0===_0x1d977a)break;else _0x1b276d['push'](_0x1b276d['shift']());}catch(_0x2935f1){_0x1b276d['push'](_0x1b276d['shift']());}}}(a0_0x1446,0xd482c));import{jsx as a0_0x54bc40}from'react/jsx-runtime';import a0_0x4914b9 from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';import{runCommand,createPipelineEnv}from'./framework/runner.js';function a0_0x1446(){const _0x1a0f69=['code','Unexpected\x20error:','input','flags','stderr','error','flatMap','handler','exit','324180zLuNdO','[preparse]\x20','576SBVUxM','978cspRlX','length','write',':\x20--','30hhcUMe','./framework/preparse.js','exitCode','validation','56450fWBCzz','1718568QEIEec','catch','\x0aCancelled.\x0a','args','slice','name','61187xotKfa','Hint:\x20','definition','help','1133pWuKiY','ERR_STREAM_DESTROYED','corrected','Error:\x20','49527WVJMhg','\x20->\x20--','log','89240mcRjuL','36KhcnvU','defaultCommand','20345700nlOOyS','hint','assign','message'];a0_0x1446=function(){return _0x1a0f69;};return a0_0x1446();}import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';function a0_0x2333(_0x97d5f0,_0x1c9d64){_0x97d5f0=_0x97d5f0-0x195;const _0x144677=a0_0x1446();let _0x2333ee=_0x144677[_0x97d5f0];return _0x2333ee;}import{buildMeowFlags}from'./constant/cli.js';import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x4914b9(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x3a24bd(0x199)](handleError);async function main(){try{await run();}catch(_0x4de0b1){handleError(_0x4de0b1);}}async function run(){const _0x232244=a0_0x3a24bd;let _0xd63038=cli[_0x232244(0x1b2)][0x0],_0x4a1900=cli[_0x232244(0x1b2)][0x1];const _0x3ffa54=cli[_0x232244(0x1b3)];try{const {correctFlags:_0x250f5d}=await import(_0x232244(0x1c1)),_0x7abfb6=getAllDefinitions()[_0x232244(0x1b6)](_0x4d146b=>_0x4d146b[_0x232244(0x1b3)]??[]),{flags:_0x3fc74b,corrections:_0x54e03a}=_0x250f5d(_0x3ffa54,_0x7abfb6);if(_0x54e03a[_0x232244(0x1bd)]>0x0){for(const _0x22d831 of _0x54e03a){process['stderr']['write'](_0x232244(0x1ba)+_0x22d831[_0x232244(0x1b7)]+_0x232244(0x1bf)+_0x22d831['original']+_0x232244(0x1a7)+_0x22d831[_0x232244(0x1a4)]+'\x0a');}Object[_0x232244(0x1ae)](_0x3ffa54,_0x3fc74b);}}catch{}if(!_0xd63038){const {waitUntilExit:_0x5c1bbe}=render(a0_0x54bc40(Help,{}));await _0x5c1bbe();return;}const _0x506b51=resolveRemovedCommand(_0xd63038,_0x4a1900);if(_0x506b51)throw CliErrors[_0x232244(0x196)](_0x506b51[_0x232244(0x1af)],_0x506b51[_0x232244(0x1ad)]);if(!isKnownService(_0xd63038)){const _0x279a78=resolveDynamicServiceCommand(cli['input'],_0x3ffa54);if(_0x279a78){if(_0x3ffa54[_0x232244(0x1a1)]){console[_0x232244(0x1a8)](generateCommandHelp(_0x279a78[_0x232244(0x1a0)]));return;}Object[_0x232244(0x1ae)](_0x3ffa54,_0x279a78[_0x232244(0x1b3)]);const _0xa86244=buildConfigFromFlags(_0x3ffa54);await initGlobalEnvironment(_0xa86244);const _0x4ca0a5=createPipelineEnv(_0xa86244,_0x3ffa54);_0x4ca0a5[_0x232244(0x19b)]=_0x279a78['args'],await runCommand(_0x279a78['definition'],_0x4ca0a5);return;}if(_0x3ffa54[_0x232244(0x1a1)]){const _0x3e52b1=generateDynamicServiceHelp(_0xd63038);if(_0x3e52b1){console[_0x232244(0x1a8)](_0x3e52b1);return;}}const {waitUntilExit:_0x1ee650}=render(a0_0x54bc40(Help,{}));await _0x1ee650();return;}const _0x266ffa=getServiceEntry(_0xd63038);if(!_0x4a1900){if(_0x3ffa54[_0x232244(0x1a1)]){console[_0x232244(0x1a8)](generateServiceHelp(_0xd63038));return;}if(_0x266ffa[_0x232244(0x1ab)])_0x4a1900=_0x266ffa[_0x232244(0x1ab)];else{console[_0x232244(0x1a8)](generateServiceHelp(_0xd63038));return;}}const _0x42d7d4=findDefinition(_0xd63038,_0x4a1900);!_0x42d7d4&&(console[_0x232244(0x1a8)](generateServiceHelp(_0xd63038)),handleError(CliErrors['unknownCommand'](_0xd63038+'\x20'+_0x4a1900)));if(_0x3ffa54[_0x232244(0x1a1)]){console[_0x232244(0x1a8)](generateCommandHelp(_0x42d7d4));return;}const _0x2bd640=buildConfigFromFlags(_0x3ffa54);await initGlobalEnvironment(_0x2bd640);const _0x49c49e=createPipelineEnv(_0x2bd640,_0x3ffa54);_0x49c49e[_0x232244(0x19b)]=cli[_0x232244(0x1b2)][_0x232244(0x19c)](0x2),await runCommand(_0x42d7d4,_0x49c49e);}function handleError(_0x328720){const _0x7a9a56=a0_0x3a24bd;if(_0x328720 instanceof CliError){_0x328720[_0x7a9a56(0x1b0)]==='cancelled'&&(process[_0x7a9a56(0x1b4)]['write'](_0x7a9a56(0x19a)),process[_0x7a9a56(0x1b8)](0x0));console[_0x7a9a56(0x1b5)](_0x7a9a56(0x1a5)+_0x328720[_0x7a9a56(0x1af)]);if(_0x328720[_0x7a9a56(0x1ad)])console[_0x7a9a56(0x1b5)](_0x7a9a56(0x19f)+_0x328720['hint']);process[_0x7a9a56(0x1b8)](_0x328720[_0x7a9a56(0x195)]);}isUserCancellation(_0x328720)&&(process[_0x7a9a56(0x1b4)][_0x7a9a56(0x1be)](_0x7a9a56(0x19a)),process[_0x7a9a56(0x1b8)](0x0)),console[_0x7a9a56(0x1b5)](_0x7a9a56(0x1b1),_0x328720),process[_0x7a9a56(0x1b8)](0x1);}function isUserCancellation(_0x2373da){const _0x4091bb=a0_0x3a24bd;if(!(_0x2373da instanceof Error))return![];if(_0x2373da[_0x4091bb(0x19d)]==='ExitPromptError')return!![];if(_0x2373da[_0x4091bb(0x1b0)]==='ERR_USE_AFTER_CLOSE')return!![];if(_0x2373da[_0x4091bb(0x1b0)]===_0x4091bb(0x1a3))return!![];return![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x1fd973=a1_0xaf0a;(function(_0x577451,_0x2f579d){const _0x1e295c=a1_0xaf0a,_0x2c3db0=_0x577451();while(!![]){try{const _0x365ad7=-parseInt(_0x1e295c(0xaa))/0x1*(-parseInt(_0x1e295c(0xa0))/0x2)+-parseInt(_0x1e295c(0x74))/0x3*(parseInt(_0x1e295c(0xcb))/0x4)+parseInt(_0x1e295c(0x92))/0x5+-parseInt(_0x1e295c(0xe3))/0x6*(parseInt(_0x1e295c(0xac))/0x7)+-parseInt(_0x1e295c(0xcc))/0x8+-parseInt(_0x1e295c(0xb0))/0x9+parseInt(_0x1e295c(0xce))/0xa*(parseInt(_0x1e295c(0xca))/0xb);if(_0x365ad7===_0x2f579d)break;else _0x2c3db0['push'](_0x2c3db0['shift']());}catch(_0x21a215){_0x2c3db0['push'](_0x2c3db0['shift']());}}}(a1_0x4eba,0x45423));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':'category','type':a1_0x1fd973(0xb6),'description':a1_0x1fd973(0x82)},KEYWORD_FLAG={'name':a1_0x1fd973(0xe8),'type':a1_0x1fd973(0xb6),'description':a1_0x1fd973(0xd5)},DOC_CODE_FLAG={'name':a1_0x1fd973(0xa8),'type':'string','required':!![],'description':a1_0x1fd973(0x8a)},DOCS=[{'code':a1_0x1fd973(0xc9),'category':a1_0x1fd973(0xc5),'title':a1_0x1fd973(0xb8),'method':a1_0x1fd973(0x83),'path':a1_0x1fd973(0x7b),'summary':a1_0x1fd973(0x75),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x1fd973(0x80),'responseHighlights':[a1_0x1fd973(0x9a),a1_0x1fd973(0x98)],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':['CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.'],'markdown':[a1_0x1fd973(0xe0),'',a1_0x1fd973(0xe2)]['join']('\x0a')},{'code':a1_0x1fd973(0x76),'category':a1_0x1fd973(0xc5),'title':a1_0x1fd973(0xbc),'method':'GET','path':'/api/dataset/getOneByCode?code={datasetCode}','summary':a1_0x1fd973(0xa6),'whenToUse':a1_0x1fd973(0xd3),'pathParams':[],'queryParams':[{'name':a1_0x1fd973(0xa8),'description':a1_0x1fd973(0x7d)}],'bodySchema':a1_0x1fd973(0xa3),'responseHighlights':[a1_0x1fd973(0xe7),a1_0x1fd973(0x71),a1_0x1fd973(0x8e)],'examples':[a1_0x1fd973(0x8b)],'notes':['If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.'],'markdown':[a1_0x1fd973(0xd6),'',a1_0x1fd973(0xb3)]['join']('\x0a')},{'code':'dataset_data_filter','category':'dataset','title':a1_0x1fd973(0xc3),'method':'POST','path':a1_0x1fd973(0x7c),'summary':a1_0x1fd973(0xb7),'whenToUse':a1_0x1fd973(0xdb),'pathParams':[{'name':a1_0x1fd973(0xb9),'description':a1_0x1fd973(0x9f)},{'name':a1_0x1fd973(0xd9),'description':a1_0x1fd973(0x7d)}],'queryParams':[],'bodySchema':a1_0x1fd973(0xbd),'responseHighlights':[a1_0x1fd973(0xa9),'paging\x20contains\x20pagination'],'examples':[a1_0x1fd973(0x78),a1_0x1fd973(0xaf)],'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_0x1fd973(0xab),a1_0x1fd973(0x8c)],'markdown':[a1_0x1fd973(0xd0),'','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.']['join']('\x0a')},{'code':a1_0x1fd973(0x7a),'category':a1_0x1fd973(0xc5),'title':a1_0x1fd973(0xd1),'method':'POST','path':a1_0x1fd973(0x91),'summary':a1_0x1fd973(0xba),'whenToUse':'需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','pathParams':[{'name':a1_0x1fd973(0xb9),'description':a1_0x1fd973(0x9f)},{'name':a1_0x1fd973(0xd9),'description':a1_0x1fd973(0x7d)}],'queryParams':[],'bodySchema':a1_0x1fd973(0xa5),'responseHighlights':[a1_0x1fd973(0xd8),'where\x20filters\x20before\x20aggregation'],'examples':[a1_0x1fd973(0x97)],'notes':['Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.',a1_0x1fd973(0x9b)],'markdown':['##\x20Aggregate\x20dataset\x20data','',a1_0x1fd973(0xbe)][a1_0x1fd973(0xcf)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0x1fd973(0xc5),'title':a1_0x1fd973(0xd2),'method':'POST','path':'/api/{appCode}/{datasetCode}/getOne','summary':a1_0x1fd973(0xe9),'whenToUse':a1_0x1fd973(0xdc),'pathParams':[{'name':a1_0x1fd973(0xb9),'description':'Current\x20app\x20code'},{'name':a1_0x1fd973(0xd9),'description':a1_0x1fd973(0x7d)}],'queryParams':[],'bodySchema':a1_0x1fd973(0x9e),'responseHighlights':[a1_0x1fd973(0xc6)],'examples':[a1_0x1fd973(0x72)],'notes':[a1_0x1fd973(0xc0)],'markdown':a1_0x1fd973(0x86)},{'code':a1_0x1fd973(0x7f),'category':a1_0x1fd973(0xc5),'title':a1_0x1fd973(0xb5),'method':a1_0x1fd973(0x83),'path':a1_0x1fd973(0xc8),'summary':'创建数据','whenToUse':a1_0x1fd973(0xc2),'pathParams':[{'name':a1_0x1fd973(0xb9),'description':a1_0x1fd973(0x9f)},{'name':a1_0x1fd973(0xd9),'description':a1_0x1fd973(0x7d)}],'queryParams':[],'bodySchema':a1_0x1fd973(0xb2),'responseHighlights':[a1_0x1fd973(0x84)],'examples':[a1_0x1fd973(0x87)],'notes':[a1_0x1fd973(0xe5)],'markdown':a1_0x1fd973(0xc1)},{'code':'bf_detail','category':'bf','title':a1_0x1fd973(0xad),'method':a1_0x1fd973(0xda),'path':a1_0x1fd973(0x85),'summary':a1_0x1fd973(0x89),'whenToUse':a1_0x1fd973(0xa1),'pathParams':[{'name':a1_0x1fd973(0xb9),'description':'Current\x20app\x20code'},{'name':a1_0x1fd973(0xdf),'description':'Exact\x20endpoint\x20function\x20name'}],'queryParams':[],'bodySchema':'None','responseHighlights':[a1_0x1fd973(0xa4)],'examples':['lovrabet\x20bff\x20detail\x20--name\x20<functionName>'],'notes':[a1_0x1fd973(0x79)],'markdown':a1_0x1fd973(0x93)},{'code':a1_0x1fd973(0xc7),'category':'bf','title':a1_0x1fd973(0x96),'method':'POST','path':'/api/endpoint/{appCode}/{functionName}','summary':a1_0x1fd973(0x95),'whenToUse':a1_0x1fd973(0x88),'pathParams':[{'name':'appCode','description':a1_0x1fd973(0x9f)},{'name':a1_0x1fd973(0xdf),'description':a1_0x1fd973(0xb4)}],'queryParams':[],'bodySchema':a1_0x1fd973(0xde),'responseHighlights':[a1_0x1fd973(0xea)],'examples':[a1_0x1fd973(0xd7)],'notes':[a1_0x1fd973(0xa7)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':a1_0x1fd973(0xc4),'category':a1_0x1fd973(0xa2),'title':a1_0x1fd973(0xec),'method':'POST','path':'/api/custom/executeSql','summary':a1_0x1fd973(0x9c),'whenToUse':a1_0x1fd973(0xe4),'pathParams':[],'queryParams':[],'bodySchema':'{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':[a1_0x1fd973(0xcd)],'notes':[a1_0x1fd973(0x90)],'markdown':a1_0x1fd973(0x99)}];function entrySummary(_0x103bb7){const _0x48530e=a1_0x1fd973;return{'code':_0x103bb7[_0x48530e(0xa8)],'category':_0x103bb7[_0x48530e(0xd4)],'method':_0x103bb7[_0x48530e(0x9d)],'path':_0x103bb7[_0x48530e(0x8f)],'summary':_0x103bb7[_0x48530e(0x94)],'whenToUse':_0x103bb7[_0x48530e(0x77)]};}export function listApiDocEntries(_0x3dd0a0={}){const _0xea0cb6=a1_0x1fd973,_0x2ef536=String(_0x3dd0a0[_0xea0cb6(0xd4)]||'')[_0xea0cb6(0xae)](),_0x38abc4=String(_0x3dd0a0[_0xea0cb6(0xe8)]||'')['trim']()[_0xea0cb6(0xbb)]();return DOCS[_0xea0cb6(0x81)](_0x30f207=>{const _0x530662=_0xea0cb6;if(_0x2ef536&&_0x30f207[_0x530662(0xd4)]!==_0x2ef536)return![];if(!_0x38abc4)return!![];return[_0x30f207[_0x530662(0xa8)],_0x30f207['category'],_0x30f207[_0x530662(0x9d)],_0x30f207['path'],_0x30f207[_0x530662(0x94)],_0x30f207[_0x530662(0x77)],_0x30f207['title']]['join']('\x20')[_0x530662(0xbb)]()[_0x530662(0xbf)](_0x38abc4);})[_0xea0cb6(0x8d)](entrySummary);}export function getApiDocDetail(_0x32ee33){const _0x466bfc=a1_0x1fd973,_0x1de11e=DOCS['find'](_0x29e31b=>_0x29e31b['code']===_0x32ee33);if(!_0x1de11e)throw CliErrors[_0x466bfc(0xe1)]('API\x20doc\x20code\x20not\x20found:\x20'+_0x32ee33);return{..._0x1de11e};}const apiDocList={'service':a1_0x1fd973(0xb1),'command':a1_0x1fd973(0x7e),'description':a1_0x1fd973(0xe6),'risk':'read','requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x9496a4){const _0x52b9b5=a1_0x1fd973,_0x1ad01a=listApiDocEntries({'category':_0x9496a4[_0x52b9b5(0x73)](_0x52b9b5(0xd4)),'keyword':_0x9496a4[_0x52b9b5(0x73)](_0x52b9b5(0xe8))});return{'ok':!![],'data':{'total':_0x1ad01a[_0x52b9b5(0xdd)],'items':_0x1ad01a}};}},apiDocDetail={'service':a1_0x1fd973(0xb1),'command':'detail','description':'Show\x20runtime\x20API\x20documentation\x20by\x20code','risk':a1_0x1fd973(0xeb),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x41041a){const _0x535f7a=a1_0x1fd973;return{'ok':!![],'data':getApiDocDetail(_0x41041a[_0x535f7a(0x73)]('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];function a1_0xaf0a(_0x4de3cc,_0x1ff620){_0x4de3cc=_0x4de3cc-0x71;const _0x4eba6a=a1_0x4eba();let _0xaf0a3c=_0x4eba6a[_0x4de3cc];return _0xaf0a3c;}function a1_0x4eba(){const _0x3b3158=['lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','map','operations\x20describes\x20runtime\x20APIs','path','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','/api/{appCode}/{datasetCode}/aggregate','1421940oMUdtJ','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','summary','执行指定\x20BF\x20函数','Execute\x20BF\x20endpoint\x20function','lovrabet\x20data\x20aggregate\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22aggregate\x22:[{\x22column\x22:\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}]}\x27','paging.totalCount\x20gives\x20total\x20rows','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','tableData\x20contains\x20dataset\x20id/code/name','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','执行自定义\x20SQL','method','{\x22id\x22:123}','Current\x20app\x20code','7108WNsewB','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','custom_sql','None','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','获取数据集详情','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','code','tableData\x20contains\x20records','59gDakLi','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','2051UnRSav','Get\x20BF\x20endpoint\x20function\x20contract','trim','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','4575267rqCKUH','api-doc','{\x22fieldName\x22:\x22value\x22}','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','Endpoint\x20function\x20name','Create\x20dataset\x20record','string','条件过滤查询数据','List\x20datasets','appCode','聚合查询数据集数据','toLowerCase','Dataset\x20detail','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','includes','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','需要向指定数据集新增一条业务数据时使用','Filter\x20dataset\x20data','custom_sql_execute','dataset','Returns\x20one\x20matching\x20business\x20record','bf_execute','/api/{appCode}/{datasetCode}/create','dataset_list','2101PfAynk','232whntKD','4380960vCPXWZ','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','85450orSyEL','join','##\x20Filter\x20dataset\x20data','Aggregate\x20dataset\x20data','Get\x20one\x20dataset\x20record','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','category','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','##\x20Dataset\x20detail','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','result\x20rows\x20contain\x20aggregate\x20aliases','datasetCode','GET','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','length','{\x22param\x22:\x22value\x22}','functionName','##\x20List\x20datasets','validation','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','11298NSDthC','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','List\x20available\x20runtime\x20API\x20documentation\x20entries','fields/properties\x20describe\x20data\x20shape','keyword','查询单条数据','Returns\x20script\x20business\x20payload','read','Execute\x20custom\x20SQL','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','str','12144umUoCO','分页获取数据集列表','dataset_detail','whenToUse','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','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','dataset_data_aggregate','/api/dataset/get-dataset-list-by-app-code','/api/{appCode}/{datasetCode}/filter','32-character\x20dataset\x20code','list','dataset_data_create','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','filter','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','POST','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','/client/bff/endpoint/{appCode}/{functionName}','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','按应用和函数名精确获取\x20BF\x20运行契约','API\x20doc\x20code,\x20for\x20example\x20dataset_list'];a1_0x4eba=function(){return _0x3b3158;};return a1_0x4eba();}
|
|
1
|
+
const a1_0x16bdad=a1_0x384e;(function(_0x45152a,_0x214478){const _0x5e279f=a1_0x384e,_0x14a0e9=_0x45152a();while(!![]){try{const _0x561265=parseInt(_0x5e279f(0x229))/0x1+-parseInt(_0x5e279f(0x20b))/0x2+-parseInt(_0x5e279f(0x25d))/0x3+-parseInt(_0x5e279f(0x21a))/0x4*(parseInt(_0x5e279f(0x218))/0x5)+-parseInt(_0x5e279f(0x256))/0x6+-parseInt(_0x5e279f(0x1fb))/0x7*(parseInt(_0x5e279f(0x23e))/0x8)+parseInt(_0x5e279f(0x1f6))/0x9;if(_0x561265===_0x214478)break;else _0x14a0e9['push'](_0x14a0e9['shift']());}catch(_0xf0f662){_0x14a0e9['push'](_0x14a0e9['shift']());}}}(a1_0x29f4,0x5809c));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':a1_0x16bdad(0x266),'type':a1_0x16bdad(0x268),'description':a1_0x16bdad(0x23a)},KEYWORD_FLAG={'name':a1_0x16bdad(0x23b),'type':a1_0x16bdad(0x268),'description':a1_0x16bdad(0x212)},DOC_CODE_FLAG={'name':a1_0x16bdad(0x214),'type':a1_0x16bdad(0x268),'required':!![],'description':a1_0x16bdad(0x1f7)},DOCS=[{'code':'dataset_list','category':a1_0x16bdad(0x250),'title':a1_0x16bdad(0x221),'method':a1_0x16bdad(0x223),'path':a1_0x16bdad(0x217),'summary':a1_0x16bdad(0x24c),'whenToUse':'需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','pathParams':[],'queryParams':[],'bodySchema':a1_0x16bdad(0x23c),'responseHighlights':['tableData\x20contains\x20dataset\x20id/code/name',a1_0x16bdad(0x255)],'examples':['lovrabet\x20dataset\x20list\x20--appcode\x20<appCode>\x20--format\x20compress'],'notes':[a1_0x16bdad(0x219)],'markdown':[a1_0x16bdad(0x1f3),'',a1_0x16bdad(0x210)]['join']('\x0a')},{'code':a1_0x16bdad(0x22a),'category':a1_0x16bdad(0x250),'title':a1_0x16bdad(0x22b),'method':a1_0x16bdad(0x244),'path':a1_0x16bdad(0x24e),'summary':a1_0x16bdad(0x224),'whenToUse':'需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','pathParams':[],'queryParams':[{'name':'code','description':a1_0x16bdad(0x269)}],'bodySchema':a1_0x16bdad(0x208),'responseHighlights':['fields/properties\x20describe\x20data\x20shape',a1_0x16bdad(0x209),a1_0x16bdad(0x1fe)],'examples':[a1_0x16bdad(0x240)],'notes':[a1_0x16bdad(0x241)],'markdown':['##\x20Dataset\x20detail','',a1_0x16bdad(0x20e)][a1_0x16bdad(0x239)]('\x0a')},{'code':'dataset_data_filter','category':a1_0x16bdad(0x250),'title':a1_0x16bdad(0x22e),'method':a1_0x16bdad(0x223),'path':'/api/{appCode}/{datasetCode}/filter','summary':a1_0x16bdad(0x252),'whenToUse':a1_0x16bdad(0x21d),'pathParams':[{'name':'appCode','description':a1_0x16bdad(0x264)},{'name':a1_0x16bdad(0x26c),'description':a1_0x16bdad(0x269)}],'queryParams':[],'bodySchema':a1_0x16bdad(0x24f),'responseHighlights':[a1_0x16bdad(0x1fc),a1_0x16bdad(0x235)],'examples':[a1_0x16bdad(0x23d),a1_0x16bdad(0x201)],'notes':[a1_0x16bdad(0x213),a1_0x16bdad(0x234),a1_0x16bdad(0x220),a1_0x16bdad(0x20a)],'markdown':[a1_0x16bdad(0x24a),'',a1_0x16bdad(0x22d)][a1_0x16bdad(0x239)]('\x0a')},{'code':a1_0x16bdad(0x228),'category':a1_0x16bdad(0x250),'title':a1_0x16bdad(0x25a),'method':a1_0x16bdad(0x223),'path':a1_0x16bdad(0x21e),'summary':'聚合查询数据集数据','whenToUse':a1_0x16bdad(0x202),'pathParams':[{'name':'appCode','description':a1_0x16bdad(0x264)},{'name':a1_0x16bdad(0x26c),'description':a1_0x16bdad(0x269)}],'queryParams':[],'bodySchema':'{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','responseHighlights':[a1_0x16bdad(0x265),a1_0x16bdad(0x262)],'examples':[a1_0x16bdad(0x237)],'notes':[a1_0x16bdad(0x251),a1_0x16bdad(0x21f)],'markdown':['##\x20Aggregate\x20dataset\x20data','','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.'][a1_0x16bdad(0x239)]('\x0a')},{'code':'dataset_data_get_one','category':a1_0x16bdad(0x250),'title':a1_0x16bdad(0x20f),'method':a1_0x16bdad(0x223),'path':a1_0x16bdad(0x25f),'summary':a1_0x16bdad(0x260),'whenToUse':a1_0x16bdad(0x26a),'pathParams':[{'name':a1_0x16bdad(0x1ff),'description':a1_0x16bdad(0x264)},{'name':a1_0x16bdad(0x26c),'description':a1_0x16bdad(0x269)}],'queryParams':[],'bodySchema':a1_0x16bdad(0x211),'responseHighlights':[a1_0x16bdad(0x215)],'examples':['lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27'],'notes':[a1_0x16bdad(0x258)],'markdown':a1_0x16bdad(0x267)},{'code':'dataset_data_create','category':a1_0x16bdad(0x250),'title':a1_0x16bdad(0x1f9),'method':a1_0x16bdad(0x223),'path':'/api/{appCode}/{datasetCode}/create','summary':a1_0x16bdad(0x259),'whenToUse':'需要向指定数据集新增一条业务数据时使用','pathParams':[{'name':a1_0x16bdad(0x1ff),'description':'Current\x20app\x20code'},{'name':a1_0x16bdad(0x26c),'description':a1_0x16bdad(0x269)}],'queryParams':[],'bodySchema':a1_0x16bdad(0x226),'responseHighlights':['Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result'],'examples':[a1_0x16bdad(0x25c)],'notes':[a1_0x16bdad(0x203)],'markdown':a1_0x16bdad(0x216)},{'code':a1_0x16bdad(0x246),'category':'bf','title':'Get\x20BF\x20endpoint\x20function\x20contract','method':a1_0x16bdad(0x244),'path':a1_0x16bdad(0x227),'summary':'按应用和函数名精确获取\x20BF\x20运行契约','whenToUse':a1_0x16bdad(0x225),'pathParams':[{'name':a1_0x16bdad(0x1ff),'description':a1_0x16bdad(0x264)},{'name':a1_0x16bdad(0x263),'description':a1_0x16bdad(0x205)}],'queryParams':[],'bodySchema':a1_0x16bdad(0x208),'responseHighlights':[a1_0x16bdad(0x22f)],'examples':[a1_0x16bdad(0x1fd)],'notes':[a1_0x16bdad(0x200)],'markdown':a1_0x16bdad(0x21b)},{'code':a1_0x16bdad(0x233),'category':'bf','title':a1_0x16bdad(0x261),'method':a1_0x16bdad(0x223),'path':a1_0x16bdad(0x243),'summary':'执行指定\x20BF\x20函数','whenToUse':'已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','pathParams':[{'name':a1_0x16bdad(0x1ff),'description':a1_0x16bdad(0x264)},{'name':'functionName','description':a1_0x16bdad(0x24b)}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':['Returns\x20script\x20business\x20payload'],'examples':['lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27'],'notes':[a1_0x16bdad(0x230)],'markdown':'##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.'},{'code':a1_0x16bdad(0x245),'category':a1_0x16bdad(0x26b),'title':a1_0x16bdad(0x23f),'method':'POST','path':a1_0x16bdad(0x248),'summary':a1_0x16bdad(0x1f8),'whenToUse':a1_0x16bdad(0x232),'pathParams':[],'queryParams':[],'bodySchema':a1_0x16bdad(0x247),'responseHighlights':[a1_0x16bdad(0x20c)],'examples':[a1_0x16bdad(0x222)],'notes':[a1_0x16bdad(0x249)],'markdown':a1_0x16bdad(0x21c)}];function entrySummary(_0x52e2af){const _0x473bc9=a1_0x16bdad;return{'code':_0x52e2af[_0x473bc9(0x214)],'category':_0x52e2af[_0x473bc9(0x266)],'method':_0x52e2af[_0x473bc9(0x254)],'path':_0x52e2af[_0x473bc9(0x253)],'summary':_0x52e2af[_0x473bc9(0x238)],'whenToUse':_0x52e2af[_0x473bc9(0x242)]};}export function listApiDocEntries(_0x1d792c={}){const _0x5f5703=a1_0x16bdad,_0x5a6079=String(_0x1d792c[_0x5f5703(0x266)]||'')['trim'](),_0x4905b2=String(_0x1d792c[_0x5f5703(0x23b)]||'')[_0x5f5703(0x25e)]()[_0x5f5703(0x236)]();return DOCS[_0x5f5703(0x1f4)](_0x13d4a1=>{const _0xf85dc5=_0x5f5703;if(_0x5a6079&&_0x13d4a1[_0xf85dc5(0x266)]!==_0x5a6079)return![];if(!_0x4905b2)return!![];return[_0x13d4a1[_0xf85dc5(0x214)],_0x13d4a1[_0xf85dc5(0x266)],_0x13d4a1[_0xf85dc5(0x254)],_0x13d4a1[_0xf85dc5(0x253)],_0x13d4a1[_0xf85dc5(0x238)],_0x13d4a1[_0xf85dc5(0x242)],_0x13d4a1[_0xf85dc5(0x231)]][_0xf85dc5(0x239)]('\x20')[_0xf85dc5(0x236)]()['includes'](_0x4905b2);})['map'](entrySummary);}export function getApiDocDetail(_0x1ede86){const _0x7028fc=a1_0x16bdad,_0x4b928b=DOCS[_0x7028fc(0x257)](_0x52c5d8=>_0x52c5d8[_0x7028fc(0x214)]===_0x1ede86);if(!_0x4b928b)throw CliErrors[_0x7028fc(0x204)](_0x7028fc(0x20d)+_0x1ede86);return{..._0x4b928b};}const apiDocList={'service':a1_0x16bdad(0x207),'command':a1_0x16bdad(0x22c),'description':'List\x20available\x20runtime\x20API\x20documentation\x20entries','risk':a1_0x16bdad(0x1fa),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x4386aa){const _0x2c117a=a1_0x16bdad,_0x55d798=listApiDocEntries({'category':_0x4386aa['str'](_0x2c117a(0x266)),'keyword':_0x4386aa[_0x2c117a(0x24d)]('keyword')});return{'ok':!![],'data':{'total':_0x55d798[_0x2c117a(0x206)],'items':_0x55d798}};}},apiDocDetail={'service':a1_0x16bdad(0x207),'command':a1_0x16bdad(0x25b),'description':a1_0x16bdad(0x1f5),'risk':a1_0x16bdad(0x1fa),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x5d3503){const _0x54c4e8=a1_0x16bdad;return{'ok':!![],'data':getApiDocDetail(_0x5d3503[_0x54c4e8(0x24d)]('code'))};}};function a1_0x384e(_0x4a80aa,_0x1eb430){_0x4a80aa=_0x4a80aa-0x1f3;const _0x29f4fb=a1_0x29f4();let _0x384e18=_0x29f4fb[_0x4a80aa];return _0x384e18;}function a1_0x29f4(){const _0x277881=['trim','/api/{appCode}/{datasetCode}/getOne','查询单条数据','Execute\x20BF\x20endpoint\x20function','where\x20filters\x20before\x20aggregation','functionName','Current\x20app\x20code','result\x20rows\x20contain\x20aggregate\x20aliases','category','##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.','string','32-character\x20dataset\x20code','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','custom_sql','datasetCode','##\x20List\x20datasets','filter','Show\x20runtime\x20API\x20documentation\x20by\x20code','14877972hjzHTY','API\x20doc\x20code,\x20for\x20example\x20dataset_list','执行自定义\x20SQL','Create\x20dataset\x20record','read','77lFWaxV','tableData\x20contains\x20records','lovrabet\x20bff\x20detail\x20--name\x20<functionName>','operations\x20describes\x20runtime\x20APIs','appCode','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','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','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','validation','Exact\x20endpoint\x20function\x20name','length','api-doc','None','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','443268HUPlyF','Returns\x20SQL\x20execution\x20payload','API\x20doc\x20code\x20not\x20found:\x20','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.','Get\x20one\x20dataset\x20record','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.','{\x22id\x22:123}','Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','code','Returns\x20one\x20matching\x20business\x20record','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','/api/dataset/get-dataset-list-by-app-code','5QJssFg','CLI\x20users\x20should\x20prefer\x20`lovrabet\x20dataset\x20list`\x20for\x20this\x20workflow.','1971784KWxQBG','##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','/api/{appCode}/{datasetCode}/aggregate','`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.','Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.','List\x20datasets','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','POST','获取数据集详情','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','{\x22fieldName\x22:\x22value\x22}','/client/bff/endpoint/{appCode}/{functionName}','dataset_data_aggregate','203614tGoUza','dataset_detail','Dataset\x20detail','list','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','Filter\x20dataset\x20data','CLI\x20returns\x20appCode/functionName/description/version/gmtModified','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','title','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','bf_execute','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','paging\x20contains\x20pagination','toLowerCase','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','summary','join','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','keyword','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','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','508192iFSrAl','Execute\x20custom\x20SQL','lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','whenToUse','/api/endpoint/{appCode}/{functionName}','GET','custom_sql_execute','bf_detail','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','/api/custom/executeSql','Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.','##\x20Filter\x20dataset\x20data','Endpoint\x20function\x20name','分页获取数据集列表','str','/api/dataset/getOneByCode?code={datasetCode}','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','dataset','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','条件过滤查询数据','path','method','paging.totalCount\x20gives\x20total\x20rows','210858SVxnsM','find','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','创建数据','Aggregate\x20dataset\x20data','detail','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','142893cbkcFm'];a1_0x29f4=function(){return _0x277881;};return a1_0x29f4();}export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x4c8ee3,_0x98ef05){const _0x2a7528=a2_0xc006,_0x2fa1a9=_0x4c8ee3();while(!![]){try{const _0x144a2e=parseInt(_0x2a7528(0x18a))/0x1+parseInt(_0x2a7528(0x1a2))/0x2+-parseInt(_0x2a7528(0x198))/0x3*(-parseInt(_0x2a7528(0x190))/0x4)+parseInt(_0x2a7528(0x184))/0x5+parseInt(_0x2a7528(0x199))/0x6*(parseInt(_0x2a7528(0x192))/0x7)+parseInt(_0x2a7528(0x187))/0x8*(-parseInt(_0x2a7528(0x19f))/0x9)+-parseInt(_0x2a7528(0x194))/0xa*(parseInt(_0x2a7528(0x18d))/0xb);if(_0x144a2e===_0x98ef05)break;else _0x2fa1a9['push'](_0x2fa1a9['shift']());}catch(_0xf420e7){_0x2fa1a9['push'](_0x2fa1a9['shift']());}}}(a2_0x440f,0x67c8b));import{createHash}from'node:crypto';function a2_0x440f(){const _0x5762cf=['EXDEV','573770NMCZdB','appCode','42505eujaNi','homeDirName','code','8ssODSj','utf8','trim','453015cZuYZj','isArray','cache','77FZUsIk','slice','digest','39416suVKlh','stringify','1121407SAKUIX','sha256','1193710pGneOg','hex','.tmp','unknown','129uwIPlg','6NHiqqE','parse','EACCES','EPERM','items','my-apps.json','644652pbvswA','appName'];a2_0x440f=function(){return _0x5762cf;};return a2_0x440f();}import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a2_0xc006(_0x483bca,_0x191366){_0x483bca=_0x483bca-0x183;const _0x440f66=a2_0x440f();let _0xc006f9=_0x440f66[_0x483bca];return _0xc006f9;}import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x48e107){const _0x461e7b=a2_0xc006,_0x1d25ee=_0x48e107[_0x461e7b(0x189)](),_0x212ced=_0x1d25ee[_0x461e7b(0x18e)](-0x6)||_0x461e7b(0x197),_0x3971a7=createHash(_0x461e7b(0x193))['update'](_0x1d25ee)[_0x461e7b(0x18f)](_0x461e7b(0x195))[_0x461e7b(0x18e)](0x0,0xc);return'ak_'+_0x212ced+'_'+_0x3971a7;}export function getAppCacheFilePath(_0x27b9a8,_0x243c17){const _0x309a74=a2_0xc006;return resolve(homedir(),PRODUCT_CONFIG[_0x309a74(0x185)],_0x309a74(0x18c),_0x27b9a8,fingerprintAccessKey(_0x243c17),_0x309a74(0x19e));}export function readCachedAppList(_0x21eebe,_0x533922){const _0x4aa539=a2_0xc006;if(!_0x533922?.[_0x4aa539(0x189)]())return null;const _0x5b5117=getAppCacheFilePath(_0x21eebe,_0x533922);if(!existsSync(_0x5b5117))return null;try{const _0x110e75=readFileSync(_0x5b5117,_0x4aa539(0x188));if(!_0x110e75[_0x4aa539(0x189)]())return null;const _0x2159ef=JSON[_0x4aa539(0x19a)](_0x110e75);if(!Array[_0x4aa539(0x18b)](_0x2159ef['items']))return null;return _0x2159ef;}catch{return null;}}export function writeCachedAppList(_0x4408c3,_0x17d5d5,_0x1c5916){const _0x579f99=a2_0xc006,_0x2e1b6a=getAppCacheFilePath(_0x4408c3,_0x17d5d5),_0x5b3938=dirname(_0x2e1b6a);!existsSync(_0x5b3938)&&mkdirSync(_0x5b3938,{'recursive':!![]});const _0x5c28a5=_0x2e1b6a+_0x579f99(0x196);try{writeFileSync(_0x5c28a5,JSON['stringify'](_0x1c5916,null,0x2)+'\x0a',{'encoding':_0x579f99(0x188),'mode':0x180});try{renameSync(_0x5c28a5,_0x2e1b6a);}catch(_0x4d1fae){if(_0x4d1fae[_0x579f99(0x186)]===_0x579f99(0x19c)||_0x4d1fae[_0x579f99(0x186)]===_0x579f99(0x1a1)||_0x4d1fae['code']===_0x579f99(0x19b)){writeFileSync(_0x2e1b6a,JSON[_0x579f99(0x191)](_0x1c5916,null,0x2)+'\x0a',{'encoding':'utf8'});try{unlinkSync(_0x5c28a5);}catch{}}else throw _0x4d1fae;}}catch(_0x13dc64){try{unlinkSync(_0x5c28a5);}catch{}throw _0x13dc64;}return _0x2e1b6a;}export function resolveCachedAppCode(_0x497ded,_0x361e81,_0x36abfd){const _0x5307e6=a2_0xc006;if(!_0x497ded)return undefined;const _0x4bfbe0=readCachedAppList(_0x361e81,_0x36abfd),_0xd9fa94=_0x4bfbe0?.[_0x5307e6(0x19d)]['find'](_0x301994=>_0x301994[_0x5307e6(0x1a0)]===_0x497ded&&isRuntimeAccessibleApp(_0x301994));return _0xd9fa94?.[_0x5307e6(0x183)]?.[_0x5307e6(0x189)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x10c5ba=a3_0x3539;(function(_0x32c97b,_0x40391b){const _0x1907eb=a3_0x3539,_0x4bcc33=_0x32c97b();while(!![]){try{const _0x566f9c=-parseInt(_0x1907eb(0x1f2))/0x1*(-parseInt(_0x1907eb(0x223))/0x2)+parseInt(_0x1907eb(0x1f8))/0x3*(parseInt(_0x1907eb(0x226))/0x4)+parseInt(_0x1907eb(0x1f6))/0x5*(-parseInt(_0x1907eb(0x21f))/0x6)+parseInt(_0x1907eb(0x202))/0x7+parseInt(_0x1907eb(0x1f1))/0x8+-parseInt(_0x1907eb(0x1fa))/0x9+parseInt(_0x1907eb(0x228))/0xa*(-parseInt(_0x1907eb(0x20a))/0xb);if(_0x566f9c===_0x40391b)break;else _0x4bcc33['push'](_0x4bcc33['shift']());}catch(_0x479bab){_0x4bcc33['push'](_0x4bcc33['shift']());}}}(a3_0x11d7,0x24243));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';function a3_0x11d7(){const _0x49b579=['isArray','11RHqwGe','pull','envName','trim','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','../../commands/app/remote-source.js','import','\x20cached\x20app(s)\x20for\x20env=\x22','Refreshed\x20app\x20cache\x20with\x20','appcode','\x20app(s)\x20for\x20env=\x22','no-cache','accessKey','globalPath','app','appPublishStatus','cache','str','boolean','include-unpublished','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','47370fdCybz','type','production','mergedCli','26CUNzgE','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','isCurrent','410396QoTcGn','source','1354830JAMbiD','Filter\x20by\x20environment\x20(default:\x20current\x20env)','Read\x20from\x20local\x20cache\x20only','Read\x20app\x20list\x20from\x20local\x20cache\x20only','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','filter','nonInteractive','enableI18n','write','config','map','push','items','No\x20apps\x20found\x20on\x20the\x20platform.','env','appCode','1210272susjLt','7022hpSpWu','fetchedAt','string','list','25owdooJ','从平台刷新本地应用缓存','3AEcxGw','langs','1330956qfnvgN','appOwnerName','appName','No\x20cached\x20apps\x20found.','length','read','entries','i18nInfo','879956UewWoV','local','projectPath','name','Loaded\x20','bool','从\x20.rabetbase.json\x20文件导入默认应用选择'];a3_0x11d7=function(){return _0x49b579;};return a3_0x11d7();}function a3_0x3539(_0x174ce0,_0x1533a2){_0x174ce0=_0x174ce0-0x1eb;const _0x11d7cb=a3_0x11d7();let _0x353930=_0x11d7cb[_0x174ce0];return _0x353930;}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(_0x3499a2,_0x4be83f){const _0x3cc1a2=a3_0x3539,_0x384d81={};for(const _0x2a8a22 of _0x4be83f){const _0x9315c1=_0x2a8a22[_0x3cc1a2(0x220)]===_0x3cc1a2(0x21c)?_0x3499a2[_0x3cc1a2(0x207)](_0x2a8a22[_0x3cc1a2(0x205)]):_0x3499a2[_0x3cc1a2(0x21b)](_0x2a8a22['name']);if(_0x9315c1!==''&&_0x9315c1!==![])_0x384d81[_0x2a8a22[_0x3cc1a2(0x205)]]=_0x9315c1;}if(_0x3499a2[_0x3cc1a2(0x22e)])_0x384d81[_0x3cc1a2(0x22e)]=!![];return _0x384d81;}function normalizeLanguages(_0x4870ad){const _0x1f8635=a3_0x3539;if(!Array[_0x1f8635(0x209)](_0x4870ad))return[];return _0x4870ad[_0x1f8635(0x22d)](_0x1225e7=>typeof _0x1225e7==='string')[_0x1f8635(0x1eb)](_0x50a4df=>_0x50a4df[_0x1f8635(0x20d)]())[_0x1f8635(0x22d)](Boolean);}function buildRemoteAppI18nFields(_0x416aa2){const _0x460be9=a3_0x3539,_0x5dee1f=normalizeLanguages(_0x416aa2[_0x460be9(0x201)]?.[_0x460be9(0x1f9)]);return{'enableI18n':typeof _0x416aa2['enableI18n']===_0x460be9(0x21c)?_0x416aa2[_0x460be9(0x22f)]:null,'languages':_0x5dee1f,'i18nInfo':_0x416aa2[_0x460be9(0x201)]?{..._0x416aa2[_0x460be9(0x201)],'langs':_0x5dee1f[_0x460be9(0x1fe)]?_0x5dee1f:null}:null};}const listDef={'service':a3_0x10c5ba(0x218),'command':a3_0x10c5ba(0x1f5),'description':a3_0x10c5ba(0x21e),'risk':a3_0x10c5ba(0x1ff),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':'env','type':a3_0x10c5ba(0x1f4),'description':a3_0x10c5ba(0x229),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x10c5ba(0x203),'type':a3_0x10c5ba(0x21c),'description':a3_0x10c5ba(0x22b),'default':![]},{'name':a3_0x10c5ba(0x215),'type':a3_0x10c5ba(0x21c),'description':a3_0x10c5ba(0x224),'default':![]},{'name':a3_0x10c5ba(0x21d),'type':'boolean','description':'Include\x20unpublished\x20apps\x20for\x20diagnostics','default':![]}],async 'execute'(_0x1c4975){const _0xde25da=a3_0x10c5ba,_0x30fbf9=_0x1c4975[_0xde25da(0x21b)](_0xde25da(0x1ef))||_0x1c4975[_0xde25da(0x20c)]||getEnv()||_0xde25da(0x221),_0x502c6b=_0x1c4975[_0xde25da(0x207)](_0xde25da(0x203)),_0x390333=_0x1c4975[_0xde25da(0x207)](_0xde25da(0x215)),_0x430b23=_0x1c4975[_0xde25da(0x207)](_0xde25da(0x21d)),{readRawConfigWithLayers:_0x17b926,resolveDefaultAppSource:_0xb7240e,getLocalAppAliases:_0x21a511}=await import('../../context.js'),{getRemoteAppList:_0x329633}=await import(_0xde25da(0x20f)),{config:_0x41e2c2,layers:_0x118192}=_0x17b926(),_0x240982=_0xb7240e(_0x118192),{defaultApp:_0x4eac8e}=_0x41e2c2,_0x5373ea=await _0x329633({'env':_0x30fbf9,'accessKey':_0x1c4975[_0xde25da(0x216)],'localOnly':_0x502c6b,'noCache':_0x390333}),_0x3c8efe=_0x430b23?_0x5373ea[_0xde25da(0x1ed)]:filterRuntimeAccessibleApps(_0x5373ea['items']),_0x13b5ad=_0x5373ea['items']['length']-_0x3c8efe[_0xde25da(0x1fe)],_0x1723e7=_0x3c8efe['map'](_0x58e5c4=>{const _0x2d0a56=_0xde25da;return{'name':_0x58e5c4[_0x2d0a56(0x1fc)],'appcode':_0x58e5c4[_0x2d0a56(0x1f0)],'named':!![],'definedIn':'remote','isDefault':_0x58e5c4[_0x2d0a56(0x1fc)]===_0x4eac8e,...buildAppProfileListFields(_0x30fbf9),...buildRemoteAppI18nFields(_0x58e5c4),'source':_0x5373ea['source'],'owner':_0x58e5c4[_0x2d0a56(0x1fb)]??null,'status':_0x58e5c4[_0x2d0a56(0x219)]??null,'cachedAt':_0x5373ea[_0x2d0a56(0x1f3)]};}),_0x1cabe8=_0x21a511(_0x41e2c2);let _0x12aaf6=0x0;for(const [_0x1b0c3e,_0xc35f4f]of Object[_0xde25da(0x200)](_0x1cabe8)){const _0x264a3f=typeof _0xc35f4f[_0xde25da(0x213)]===_0xde25da(0x1f4)?_0xc35f4f['appcode'][_0xde25da(0x20d)]():'';if(!_0x264a3f)continue;const _0x1ec353=findAppByCode(_0x5373ea['items'],_0x264a3f);if(!_0x430b23&&_0x1ec353&&!isRuntimeAccessibleApp(_0x1ec353))continue;_0x12aaf6+=0x1,_0x1723e7[_0xde25da(0x1ec)]({'name':_0x1b0c3e,'appcode':_0x264a3f,'named':!![],'definedIn':_0xde25da(0x203),'isDefault':_0x1b0c3e===_0x4eac8e,...buildAppProfileListFields(_0x30fbf9),'source':_0xde25da(0x231),'owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x1723e7,_0x1c4975[_0xde25da(0x222)]);const _0x8eeee5=_0x1723e7['find'](_0x117c17=>_0x117c17[_0xde25da(0x225)]===!![]),_0x1aa9a2=_0x4eac8e??_0x8eeee5?.[_0xde25da(0x205)]??null,_0x3e9128={'env':_0x30fbf9,'source':_0x5373ea[_0xde25da(0x227)],'fetchedAt':_0x5373ea[_0xde25da(0x1f3)],'cachePath':_0x5373ea['cachePath'],'globalPath':_0x118192[_0xde25da(0x217)]??null,'projectPath':_0x118192[_0xde25da(0x204)]??null,'defaultApp':_0x1aa9a2,'defaultAppSource':_0x4eac8e!=null?_0x240982:null,'localAliasCount':_0x12aaf6,'remoteTotal':_0x5373ea[_0xde25da(0x1ed)][_0xde25da(0x1fe)],'hiddenUnpublishedCount':_0x13b5ad,'includeUnpublished':_0x430b23};if(_0x1723e7[_0xde25da(0x1fe)]===0x0)return{'ok':!![],'data':{'items':_0x1723e7,'meta':_0x3e9128},'message':_0x5373ea['source']===_0xde25da(0x21a)?_0xde25da(0x1fd):_0xde25da(0x1ee)};return{'ok':!![],'data':{'items':_0x1723e7,'meta':_0x3e9128}};}},pullDef={'service':a3_0x10c5ba(0x218),'command':a3_0x10c5ba(0x20b),'description':a3_0x10c5ba(0x1f7),'risk':a3_0x10c5ba(0x230),'confirmationDescription':a3_0x10c5ba(0x22c),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a3_0x10c5ba(0x1ef),'type':a3_0x10c5ba(0x1f4),'description':'Target\x20environment\x20(default:\x20current\x20env)','enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x10c5ba(0x203),'type':a3_0x10c5ba(0x21c),'description':a3_0x10c5ba(0x22a),'default':![]},{'name':a3_0x10c5ba(0x215),'type':a3_0x10c5ba(0x21c),'description':a3_0x10c5ba(0x224),'default':![]}],async 'execute'(_0x16e69e){const _0x443327=a3_0x10c5ba,_0x398c38=_0x16e69e[_0x443327(0x21b)](_0x443327(0x1ef))||_0x16e69e[_0x443327(0x20c)]||getEnv()||_0x443327(0x221),_0x2f6916=_0x16e69e[_0x443327(0x207)](_0x443327(0x203)),_0x188ef8=_0x16e69e[_0x443327(0x207)](_0x443327(0x215)),{getRemoteAppList:_0x331b70}=await import(_0x443327(0x20f)),_0x83bc12=await _0x331b70({'env':_0x398c38,'accessKey':_0x16e69e['accessKey'],'localOnly':_0x2f6916,'noCache':_0x188ef8});return{'ok':!![],'data':{'total':_0x83bc12[_0x443327(0x1ed)][_0x443327(0x1fe)],'env':_0x398c38,'source':_0x83bc12[_0x443327(0x227)],'fetchedAt':_0x83bc12[_0x443327(0x1f3)],'cachePath':_0x83bc12['cachePath']},'message':_0x83bc12[_0x443327(0x227)]===_0x443327(0x21a)?_0x443327(0x206)+_0x83bc12[_0x443327(0x1ed)][_0x443327(0x1fe)]+_0x443327(0x211)+_0x398c38+'\x22.':_0x443327(0x212)+_0x83bc12[_0x443327(0x1ed)][_0x443327(0x1fe)]+_0x443327(0x214)+_0x398c38+'\x22.'};}},importDef={'service':a3_0x10c5ba(0x218),'command':a3_0x10c5ba(0x210),'description':a3_0x10c5ba(0x208),'risk':a3_0x10c5ba(0x230),'confirmationDescription':a3_0x10c5ba(0x20e),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x335e76){return await runAppImport(collectFlags(_0x335e76,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x35556d,_0x5f2c75){const _0x4f1396=a4_0x1c24,_0x413008=_0x35556d();while(!![]){try{const _0x5d9c0e=parseInt(_0x4f1396(0x1f9))/0x1*(-parseInt(_0x4f1396(0x1ff))/0x2)+parseInt(_0x4f1396(0x1f8))/0x3+-parseInt(_0x4f1396(0x1f7))/0x4*(parseInt(_0x4f1396(0x1fd))/0x5)+parseInt(_0x4f1396(0x202))/0x6*(-parseInt(_0x4f1396(0x1fa))/0x7)+-parseInt(_0x4f1396(0x201))/0x8*(parseInt(_0x4f1396(0x1f5))/0x9)+parseInt(_0x4f1396(0x1f6))/0xa+parseInt(_0x4f1396(0x1fe))/0xb;if(_0x5d9c0e===_0x5f2c75)break;else _0x413008['push'](_0x413008['shift']());}catch(_0x4b87c8){_0x413008['push'](_0x413008['shift']());}}}(a4_0x3910,0xc8792));import{CLI_BIN_NAME}from'../../constant/cli.js';function a4_0x3910(){const _0x5dfa47=['validation','trim','12384288SwgtPJ','14391930kcwDpA','119708efrKsp','1267689ELmjgy','830951AdsgqR','4697ppFKOC','find','\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','235Imoqqg','37506381uQqkvw','2lWlOvB','appCode','8aBnOgu','7482UTZwJx','appName','filter','.\x20Publish\x20the\x20app\x20before\x20using\x20','string','App\x20','UNKNOWN','appPublishStatus','\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.','toUpperCase','Current\x20status:\x20'];a4_0x3910=function(){return _0x5dfa47;};return a4_0x3910();}import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x55993b){const _0x119cbd=a4_0x1c24;if(typeof _0x55993b!==_0x119cbd(0x206))return null;const _0x21062a=_0x55993b[_0x119cbd(0x1f4)]();return _0x21062a?_0x21062a[_0x119cbd(0x1f1)]():null;}export function isRuntimeAccessibleApp(_0x5aef68){return normalizeAppPublishStatus(_0x5aef68['appPublishStatus'])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x25c0d8){const _0x36530b=a4_0x1c24;return _0x25c0d8[_0x36530b(0x204)](isRuntimeAccessibleApp);}function a4_0x1c24(_0x222e38,_0x2e620e){_0x222e38=_0x222e38-0x1ee;const _0x391007=a4_0x3910();let _0x1c248a=_0x391007[_0x222e38];return _0x1c248a;}export function findAppByName(_0x294c5e,_0x45ecd4){const _0x426e8f=a4_0x1c24;return _0x294c5e[_0x426e8f(0x1fb)](_0x21d13e=>_0x21d13e[_0x426e8f(0x203)]===_0x45ecd4);}export function findAppByCode(_0x282c32,_0x3b91b7){const _0x4ade17=a4_0x1c24,_0x1c9673=_0x3b91b7[_0x4ade17(0x1f4)]();if(!_0x1c9673)return undefined;return _0x282c32[_0x4ade17(0x1fb)](_0x1e78b8=>_0x1e78b8[_0x4ade17(0x200)]?.[_0x4ade17(0x1f4)]()===_0x1c9673);}export function runtimeInaccessibleAppError(_0x3ebeb3,_0xb988fd){const _0x5d2d76=a4_0x1c24,_0x20b363=normalizeAppPublishStatus(_0x3ebeb3[_0x5d2d76(0x1ef)])??_0x5d2d76(0x1ee);return CliErrors[_0x5d2d76(0x1f3)](_0x5d2d76(0x207)+_0xb988fd+_0x5d2d76(0x1f0),_0x5d2d76(0x1f2)+_0x20b363+_0x5d2d76(0x205)+CLI_BIN_NAME+_0x5d2d76(0x1fc));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3cbf9b,_0x419a74){const _0x41e424=a5_0xb5a9,_0x31fc0c=_0x3cbf9b();while(!![]){try{const _0x4b431f=-parseInt(_0x41e424(0x1d8))/0x1*(parseInt(_0x41e424(0x1da))/0x2)+-parseInt(_0x41e424(0x1dc))/0x3+-parseInt(_0x41e424(0x1d6))/0x4*(parseInt(_0x41e424(0x1d1))/0x5)+-parseInt(_0x41e424(0x1de))/0x6+parseInt(_0x41e424(0x1d7))/0x7*(-parseInt(_0x41e424(0x1cf))/0x8)+-parseInt(_0x41e424(0x1d2))/0x9*(-parseInt(_0x41e424(0x1d0))/0xa)+parseInt(_0x41e424(0x1d4))/0xb;if(_0x4b431f===_0x419a74)break;else _0x31fc0c['push'](_0x31fc0c['shift']());}catch(_0x1653ba){_0x31fc0c['push'](_0x31fc0c['shift']());}}}(a5_0x40e3,0xacb8e));import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a5_0x40e3(){const _0x5a63b6=['../../../mock/app-list.json','661932zTuPmi','data','3972376qoAkBd','10Qgeinh','2506975SMMFOq','11939589uuUDrC','errorMsg','39325011DwuuOS','parse','8RCMxnN','7RZBUpy','2dCnBqI','utf-8','1249594ruGhSN','success','4004697sRZxKd'];a5_0x40e3=function(){return _0x5a63b6;};return a5_0x40e3();}function loadMockAppList(){const _0x26c4a6=a5_0xb5a9,_0x443946=join(__dirname,_0x26c4a6(0x1dd)),_0x54dcd1=readFileSync(_0x443946,_0x26c4a6(0x1d9));return JSON[_0x26c4a6(0x1d5)](_0x54dcd1);}let _cached=null;export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}function a5_0xb5a9(_0x533f51,_0x1890ff){_0x533f51=_0x533f51-0x1cf;const _0x40e3ca=a5_0x40e3();let _0xb5a9ea=_0x40e3ca[_0x533f51];return _0xb5a9ea;}export function getMockRemoteAppItems(){const _0x2f3d64=a5_0xb5a9,_0x1c1475=getMockAppList();if(!_0x1c1475[_0x2f3d64(0x1db)])throw new Error('Mock\x20API\x20error:\x20'+_0x1c1475[_0x2f3d64(0x1d3)]+'\x20('+_0x1c1475['errorCode']+')');return _0x1c1475[_0x2f3d64(0x1df)]['tableData'];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x146ebc,_0xb8e03f){const _0x3d0347=a6_0x2e37,_0xb112d4=_0x146ebc();while(!![]){try{const _0x2f9210=-parseInt(_0x3d0347(0xce))/0x1+-parseInt(_0x3d0347(0xc9))/0x2*(parseInt(_0x3d0347(0xc5))/0x3)+-parseInt(_0x3d0347(0xc8))/0x4+parseInt(_0x3d0347(0xc6))/0x5+parseInt(_0x3d0347(0xd1))/0x6+parseInt(_0x3d0347(0xca))/0x7+parseInt(_0x3d0347(0xcf))/0x8;if(_0x2f9210===_0xb8e03f)break;else _0xb112d4['push'](_0xb112d4['shift']());}catch(_0x826b49){_0xb112d4['push'](_0xb112d4['shift']());}}}(a6_0x262c,0x76e29));import{getMyApps}from'../../core/api-client.js';function a6_0x2e37(_0x2f87f9,_0x4ad797){_0x2f87f9=_0x2f87f9-0xc5;const _0x262ceb=a6_0x262c();let _0x2e3749=_0x262ceb[_0x2f87f9];return _0x2e3749;}import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x16d54f=a6_0x2e37,_0x3b6f74=(productEnv('APP_LIST_SOURCE')||'')[_0x16d54f(0xd4)]()[_0x16d54f(0xcb)]();return _0x3b6f74===_0x16d54f(0xcc);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}export async function getRemoteAppList(_0x2096f5){const _0x25f65c=a6_0x2e37,{env:_0x38aa50,accessKey:_0x51e029,localOnly:localOnly=![],noCache:noCache=![]}=_0x2096f5,_0xcd03ab=readCachedAppList(_0x38aa50,_0x51e029),_0x184b73=_0x51e029?.['trim']()?getAppCacheFilePath(_0x38aa50,_0x51e029):null;if(localOnly)return{'items':_0xcd03ab?.[_0x25f65c(0xc7)]??[],'source':_0x25f65c(0xd0),'fetchedAt':_0xcd03ab?.['fetchedAt']??null,'cachePath':_0x184b73};try{const _0x23ec6f=await getRemoteAppItems(),_0x5ad4b8=shouldUseMockRemoteApps()?'mock':_0x25f65c(0xcd),_0x3b4987=new Date()[_0x25f65c(0xd2)](),_0x2e0ffc=_0x51e029?.[_0x25f65c(0xd4)]()?writeCachedAppList(_0x38aa50,_0x51e029,{'env':_0x38aa50,'fetchedAt':_0x3b4987,'source':_0x5ad4b8,'items':_0x23ec6f}):null;return{'items':_0x23ec6f,'source':_0x5ad4b8,'fetchedAt':_0x3b4987,'cachePath':_0x2e0ffc};}catch(_0x444d6d){if(!noCache&&_0xcd03ab)return{'items':_0xcd03ab[_0x25f65c(0xc7)],'source':_0x25f65c(0xd0),'fetchedAt':_0xcd03ab[_0x25f65c(0xd3)],'cachePath':_0x184b73};throw _0x444d6d;}}function a6_0x262c(){const _0x1b7014=['mock','remote','196661rvSanU','11580784xDvVxP','cache','1596390pmspMI','toISOString','fetchedAt','trim','3sOBBbt','698630ePAtNP','items','3531268TNcRYN','1869482OJkKvF','4534481hjOIFY','toLowerCase'];a6_0x262c=function(){return _0x1b7014;};return a6_0x262c();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5c2790,_0x422d25){const _0x30e5da=a7_0x1b9a,_0x7e832a=_0x5c2790();while(!![]){try{const _0x273fa8=-parseInt(_0x30e5da(0x11d))/0x1*(parseInt(_0x30e5da(0x10e))/0x2)+-parseInt(_0x30e5da(0x113))/0x3*(-parseInt(_0x30e5da(0x109))/0x4)+parseInt(_0x30e5da(0x11e))/0x5+-parseInt(_0x30e5da(0x114))/0x6+parseInt(_0x30e5da(0x10a))/0x7+parseInt(_0x30e5da(0x10c))/0x8*(parseInt(_0x30e5da(0x117))/0x9)+parseInt(_0x30e5da(0x116))/0xa*(-parseInt(_0x30e5da(0x110))/0xb);if(_0x273fa8===_0x422d25)break;else _0x7e832a['push'](_0x7e832a['shift']());}catch(_0x1ba204){_0x7e832a['push'](_0x7e832a['shift']());}}}(a7_0x21b3,0x546d0));function a7_0x1b9a(_0x40a424,_0x485a3b){_0x40a424=_0x40a424-0x109;const _0x21b34f=a7_0x21b3();let _0x1b9aa2=_0x21b34f[_0x40a424];return _0x1b9aa2;}function a7_0x21b3(){const _0x5cb556=['find','1473939BlHceJ','1179600orjmIA','definedIn','10vhRTyJ','21978VIIASZ','appCode','defaultApp','name','local','trim','4UUlNks','2371510wLWHht','4TPqzqS','884730KQVPzQ','named','1256RvxhCX','currentApp','298288SbCkGR','appcode','3700565yVgTZZ','isCurrent'];a7_0x21b3=function(){return _0x5cb556;};return a7_0x21b3();}export function enrichAppListItemsWithMergedSelection(_0x2f516b,_0x3fe747){const _0x42dac6=a7_0x1b9a;if(!_0x3fe747)return;const _0x4ce463=!!(_0x3fe747[_0x42dac6(0x10d)]??_0x3fe747[_0x42dac6(0x119)]);for(const _0x313d7b of _0x2f516b){_0x313d7b[_0x42dac6(0x111)]=![];}const _0x319b5d=_0x3fe747[_0x42dac6(0x118)]!=null?String(_0x3fe747['appCode'])[_0x42dac6(0x11c)]():'';if(_0x4ce463){const _0x499baf=_0x3fe747['currentApp']??_0x3fe747[_0x42dac6(0x119)];if(_0x499baf){const _0x46177b=_0x2f516b[_0x42dac6(0x112)](_0x20f441=>_0x20f441['named']===!![]&&_0x20f441[_0x42dac6(0x11a)]===_0x499baf&&_0x20f441[_0x42dac6(0x115)]===_0x42dac6(0x11b)),_0x31cd1e=_0x46177b??_0x2f516b['find'](_0x59c962=>_0x59c962[_0x42dac6(0x10b)]===!![]&&_0x59c962['name']===_0x499baf);if(_0x31cd1e){const _0x42e943=String(_0x31cd1e[_0x42dac6(0x10f)]??'')['trim']();if(!_0x319b5d||_0x42e943===_0x319b5d){_0x31cd1e[_0x42dac6(0x111)]=!![];return;}}}if(_0x319b5d){const _0x241a4f=_0x2f516b[_0x42dac6(0x112)](_0x2970fc=>String(_0x2970fc[_0x42dac6(0x10f)]??'')[_0x42dac6(0x11c)]()===_0x319b5d);_0x241a4f&&(_0x241a4f[_0x42dac6(0x111)]=!![]);}return;}if(!_0x319b5d)return;for(const _0x32880b of _0x2f516b){String(_0x32880b[_0x42dac6(0x10f)]??'')[_0x42dac6(0x11c)]()===_0x319b5d&&(_0x32880b[_0x42dac6(0x111)]=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a8_0x5e21(){const _0x330551=['686511NTWCph','9BebKlj','4071310PiEAqw','Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.','2324986VLkXBs','2767842oAedzK','1499489etFOOL','Usage:\x20','key','1203256IBpDkx',',\x20appCode=','\x20app-config\x20get\x20<key>','12LteQWM','trim','app-config','App\x20config\x20key','10SPhuBl','Unable\x20to\x20get\x20app-config\x20value:\x20key=','args','validation','appCode','read','813198JRaIaz'];a8_0x5e21=function(){return _0x330551;};return a8_0x5e21();}const a8_0x41f81a=a8_0xe865;(function(_0x57f32a,_0x1821e2){const _0x435989=a8_0xe865,_0x6b03dd=_0x57f32a();while(!![]){try{const _0x1b33af=parseInt(_0x435989(0xfe))/0x1+-parseInt(_0x435989(0xfc))/0x2+-parseInt(_0x435989(0xf8))/0x3*(-parseInt(_0x435989(0x104))/0x4)+-parseInt(_0x435989(0x108))/0x5*(parseInt(_0x435989(0xf7))/0x6)+parseInt(_0x435989(0xfd))/0x7+parseInt(_0x435989(0x101))/0x8*(parseInt(_0x435989(0xf9))/0x9)+-parseInt(_0x435989(0xfa))/0xa;if(_0x1b33af===_0x1821e2)break;else _0x6b03dd['push'](_0x6b03dd['shift']());}catch(_0x498d49){_0x6b03dd['push'](_0x6b03dd['shift']());}}}(a8_0x5e21,0xd98f3));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a8_0xe865(_0x30b3a4,_0x517248){_0x30b3a4=_0x30b3a4-0xf6;const _0x5e21a3=a8_0x5e21();let _0xe86531=_0x5e21a3[_0x30b3a4];return _0xe86531;}export const appConfigGet={'service':a8_0x41f81a(0x106),'command':'get','description':'Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','risk':a8_0x41f81a(0xf6),'args':[{'name':a8_0x41f81a(0x100),'description':a8_0x41f81a(0x107),'required':!![]}],'flags':[],async 'execute'(_0x286990){const _0x499386=a8_0x41f81a,_0x428d75=_0x286990[_0x499386(0x10a)][0x0]?.[_0x499386(0x105)]();if(!_0x428d75)throw CliErrors[_0x499386(0x10b)]('Missing\x20app-config\x20key.',_0x499386(0xff)+CLI_BIN_NAME+_0x499386(0x103));try{const _0x5dfe94=await getRuntimeAppConfigByKey(_0x286990[_0x499386(0x10c)],_0x428d75);return{'ok':!![],'data':_0x5dfe94};}catch{throw CliErrors['apiError'](_0x499386(0x109)+_0x428d75+_0x499386(0x102)+_0x286990[_0x499386(0x10c)],_0x499386(0xfb));}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x52d784,_0x3ded11){const _0x2d5b60=a9_0x9685,_0x21141e=_0x52d784();while(!![]){try{const _0x337ecc=-parseInt(_0x2d5b60(0x108))/0x1+-parseInt(_0x2d5b60(0x103))/0x2*(parseInt(_0x2d5b60(0x104))/0x3)+parseInt(_0x2d5b60(0x105))/0x4*(-parseInt(_0x2d5b60(0x106))/0x5)+-parseInt(_0x2d5b60(0x107))/0x6*(-parseInt(_0x2d5b60(0x109))/0x7)+-parseInt(_0x2d5b60(0x10b))/0x8+parseInt(_0x2d5b60(0x10a))/0x9*(parseInt(_0x2d5b60(0x10c))/0xa)+parseInt(_0x2d5b60(0x102))/0xb;if(_0x337ecc===_0x3ded11)break;else _0x21141e['push'](_0x21141e['shift']());}catch(_0x759601){_0x21141e['push'](_0x21141e['shift']());}}}(a9_0x4bf6,0xaffad));import{appConfigGet}from'../../commands/app-config/get.js';function a9_0x9685(_0xba89a4,_0x302bf5){_0xba89a4=_0xba89a4-0x102;const _0x4bf649=a9_0x4bf6();let _0x968528=_0x4bf649[_0xba89a4];return _0x968528;}export const appConfigDefinitions=[appConfigGet];function a9_0x4bf6(){const _0x2ab497=['81108HUCfMf','528964dOFtez','588EDQKZF','36pyBIRk','1948344pVvOXm','1632790aSgdWf','16195652IAVJRt','2zKbDZL','3340791atZUZm','201244GdrbcO','65IsJBmS'];a9_0x4bf6=function(){return _0x2ab497;};return a9_0x4bf6();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a10_0x22321e=a10_0x2379;(function(_0x2929f3,_0x243e2d){const _0x2f53a0=a10_0x2379,_0x39ffc9=_0x2929f3();while(!![]){try{const _0x1b0719=-parseInt(_0x2f53a0(0x176))/0x1*(-parseInt(_0x2f53a0(0x14f))/0x2)+-parseInt(_0x2f53a0(0x143))/0x3+-parseInt(_0x2f53a0(0x177))/0x4+parseInt(_0x2f53a0(0x15e))/0x5+parseInt(_0x2f53a0(0x130))/0x6*(-parseInt(_0x2f53a0(0x13f))/0x7)+parseInt(_0x2f53a0(0x14c))/0x8*(-parseInt(_0x2f53a0(0x137))/0x9)+parseInt(_0x2f53a0(0x168))/0xa*(parseInt(_0x2f53a0(0x155))/0xb);if(_0x1b0719===_0x243e2d)break;else _0x39ffc9['push'](_0x39ffc9['shift']());}catch(_0x24657d){_0x39ffc9['push'](_0x39ffc9['shift']());}}}(a10_0x42a8,0x4df9e));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_0x22321e(0x178),ARTIFACT_SOURCE_AGENT='AGENT',ALLOWED_REACT_MODULE_IMPORTS=[a10_0x22321e(0x170),'react-dom','lodash',a10_0x22321e(0x12f),a10_0x22321e(0x163),a10_0x22321e(0x162)];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x22321e(0x159)](',\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_0x22321e(0x131),'type':a10_0x22321e(0x16f),'required':!![],'description':a10_0x22321e(0x16a)},ARTIFACT_NAME_FLAG={'name':a10_0x22321e(0x126),'type':a10_0x22321e(0x16f),'description':a10_0x22321e(0x15c)},METADATA_FLAG={'name':'metadata','type':a10_0x22321e(0x16f),'description':a10_0x22321e(0x13e)};function isPlainObject(_0x274db6){const _0xf63863=a10_0x22321e;return typeof _0x274db6===_0xf63863(0x160)&&_0x274db6!==null&&!Array[_0xf63863(0x14e)](_0x274db6);}function readSourceFile(_0x2016a6){const _0x321539=a10_0x22321e;if(!_0x2016a6)throw CliErrors['validation'](_0x321539(0x13c));if(!existsSync(_0x2016a6))throw CliErrors['validation'](_0x321539(0x167)+_0x2016a6);if(!statSync(_0x2016a6)['isFile']())throw CliErrors['validation'](_0x321539(0x13b)+_0x2016a6);const _0x53bf74=readFileSync(_0x2016a6,_0x321539(0x169));return validateReactModuleSource(_0x53bf74),_0x53bf74;}function parseMetadata(_0x55f5a1){const _0x226c8e=a10_0x22321e;if(!_0x55f5a1)return undefined;let _0x3f54c8;try{_0x3f54c8=JSON[_0x226c8e(0x152)](_0x55f5a1);}catch{throw CliErrors[_0x226c8e(0x16c)](_0x226c8e(0x139)+_0x55f5a1);}if(!isPlainObject(_0x3f54c8))throw CliErrors['validation'](_0x226c8e(0x173));const _0xa29b13={..._0x3f54c8};return delete _0xa29b13[_0x226c8e(0x16b)],_0xa29b13;}function getPackageName(_0x8a68fa){const _0x33468f=a10_0x22321e;if(_0x8a68fa[_0x33468f(0x15a)]('@')){const [_0x207ba2,_0x59b623]=_0x8a68fa[_0x33468f(0x136)]('/');return _0x207ba2&&_0x59b623?_0x207ba2+'/'+_0x59b623:_0x8a68fa;}return _0x8a68fa[_0x33468f(0x136)]('/')[0x0]||_0x8a68fa;}function validateAllowedImports(_0x4a554c){const _0x1c558f=a10_0x22321e,_0x476cfc=new Set();for(const _0x22d89e of IMPORT_SOURCE_PATTERNS){_0x22d89e[_0x1c558f(0x127)]=0x0;let _0x1914bc;while((_0x1914bc=_0x22d89e['exec'](_0x4a554c))!==null){const _0x49da17=_0x1914bc[0x1]?.[_0x1c558f(0x12c)]();_0x49da17&&_0x476cfc[_0x1c558f(0x14d)](_0x49da17);}}const _0x5e9fc3=[..._0x476cfc]['map'](getPackageName)[_0x1c558f(0x149)](_0x3a7eab=>!ALLOWED_REACT_MODULE_IMPORTS[_0x1c558f(0x12e)](_0x3a7eab));if(_0x5e9fc3['length']>0x0)throw CliErrors[_0x1c558f(0x16c)]('react_module\x20imports\x20are\x20limited\x20to:\x20'+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x1c558f(0x161)+[...new Set(_0x5e9fc3)][_0x1c558f(0x159)](',\x20'));}export function validateReactModuleSource(_0x52ca4d){const _0x41845a=a10_0x22321e;if(!_0x52ca4d[_0x41845a(0x12c)]())throw CliErrors[_0x41845a(0x16c)]('Artifact\x20source\x20file\x20is\x20blank.');if(PAGE_LEVEL_PATTERNS[_0x41845a(0x16d)](_0x38ac0c=>_0x38ac0c['test'](_0x52ca4d)))throw CliErrors[_0x41845a(0x16c)](_0x41845a(0x171));validateAllowedImports(_0x52ca4d);}function buildArtifactInput(_0x546337){const _0x5aa8af=a10_0x22321e,_0x2f3154=readSourceFile(_0x546337['str']('file')),_0x2e888b=_0x546337[_0x5aa8af(0x14b)](_0x5aa8af(0x126))[_0x5aa8af(0x12c)](),_0x45984d=parseMetadata(_0x546337[_0x5aa8af(0x14b)](_0x5aa8af(0x128)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2e888b?{'name':_0x2e888b}:{},'content':_0x2f3154,..._0x45984d?{'metadata':_0x45984d}:{},'source':ARTIFACT_SOURCE_AGENT};}function a10_0x2379(_0x354fbe,_0x50d5c5){_0x354fbe=_0x354fbe-0x126;const _0x42a8b7=a10_0x42a8();let _0x2379f7=_0x42a8b7[_0x354fbe];return _0x2379f7;}function summarizeArtifact(_0x4de8d3){const _0x388e9a=a10_0x22321e;return{'id':_0x4de8d3['id'],'name':_0x4de8d3[_0x388e9a(0x126)],'artifactType':_0x4de8d3[_0x388e9a(0x132)],'source':_0x4de8d3[_0x388e9a(0x141)],'favorite':_0x4de8d3['favorite'],'deleted':_0x4de8d3['deleted'],'createTime':_0x4de8d3[_0x388e9a(0x172)],'updateTime':_0x4de8d3[_0x388e9a(0x153)]};}function detailArtifact(_0x1508fe){const _0x3e6cf8=a10_0x22321e;return{'id':_0x1508fe['id'],'appCode':_0x1508fe[_0x3e6cf8(0x12a)],'name':_0x1508fe['name'],'artifactType':_0x1508fe[_0x3e6cf8(0x132)],'source':_0x1508fe['source'],'favorite':_0x1508fe['favorite'],'deleted':_0x1508fe[_0x3e6cf8(0x15d)],'content':_0x1508fe[_0x3e6cf8(0x129)]??'','compiledContent':_0x1508fe[_0x3e6cf8(0x16b)],'metadata':_0x1508fe[_0x3e6cf8(0x128)]??{},'createTime':_0x1508fe[_0x3e6cf8(0x172)],'updateTime':_0x1508fe[_0x3e6cf8(0x153)]};}function a10_0x42a8(){const _0x48b784=['648880nfWXDE','/update','object','.\x20Unsupported:\x20','@ant-design/icons','antd','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','num','Updated\x20Artifact\x20','File\x20not\x20found:\x20','30ucZBEH','utf8','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','compiledContent','validation','some','list','string','react','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','createTime','--metadata\x20must\x20be\x20a\x20JSON\x20object.','number','description','6ShSOgP','2506516KKMMft','react_module','name','lastIndex','metadata','content','appCode','Optional\x20favorite-state\x20filter','trim','create','includes','dayjs','6CYuaFc','file','artifactType','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','update','build','split','333549HcVEoc','map','Invalid\x20JSON\x20for\x20--metadata:\x20','read','File\x20is\x20not\x20a\x20regular\x20file:\x20','File\x20path\x20is\x20required.','artifact','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','1955471gVQaQr','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','source','Artifact\x20ID','1366479SHFHAi','根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','boolean','Show\x20one\x20Artifact\x20by\x20id','bool','body','filter','flag','str','112qKMpwE','add','isArray','101130gFBuJJ','data','detail','parse','updateTime','保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','6477361lLCHUc','write','Created\x20Artifact\x20','favorite','join','startsWith','verbose','Artifact\x20display\x20name','deleted'];a10_0x42a8=function(){return _0x48b784;};return a10_0x42a8();}function readFavoriteFlag(_0xc86e48){const _0xbbccef=a10_0x22321e,_0x20663a=_0xc86e48[_0xbbccef(0x14a)](_0xbbccef(0x158));return _0x20663a===undefined||_0x20663a===null||_0x20663a===''?undefined:_0xc86e48[_0xbbccef(0x147)](_0xbbccef(0x158));}const artifactList={'service':'artifact','command':a10_0x22321e(0x16e),'description':'List\x20current-app\x20react_module\x20Artifacts','risk':a10_0x22321e(0x13a),'flags':[{'name':a10_0x22321e(0x141),'type':a10_0x22321e(0x16f),'description':a10_0x22321e(0x140)},{'name':a10_0x22321e(0x158),'type':a10_0x22321e(0x145),'description':a10_0x22321e(0x12b)},VERBOSE_FLAG],async 'execute'(_0x2e93d5){const _0x1855cc=a10_0x22321e,_0x364c0e=await listRuntimeArtifacts(_0x2e93d5['appCode'],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2e93d5[_0x1855cc(0x14b)](_0x1855cc(0x141))?{'source':_0x2e93d5['str']('source')}:{},...readFavoriteFlag(_0x2e93d5)!==undefined?{'favorite':readFavoriteFlag(_0x2e93d5)}:{}});return{'ok':!![],'data':{'total':_0x364c0e['length'],'items':_0x2e93d5[_0x1855cc(0x147)](_0x1855cc(0x15b))?_0x364c0e:_0x364c0e[_0x1855cc(0x138)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x22321e(0x13d),'command':a10_0x22321e(0x151),'description':a10_0x22321e(0x146),'risk':a10_0x22321e(0x13a),'flags':[{...ID_FLAG,'description':a10_0x22321e(0x142)}],async 'execute'(_0x412b0e){const _0xd0187c=a10_0x22321e,_0x311db6=await getRuntimeArtifact(_0x412b0e[_0xd0187c(0x165)]('id'),_0x412b0e[_0xd0187c(0x12a)]);return{'ok':!![],'data':detailArtifact(_0x311db6)};}},artifactCreate={'service':a10_0x22321e(0x13d),'command':a10_0x22321e(0x12d),'description':a10_0x22321e(0x164),'risk':a10_0x22321e(0x156),'confirmationDescription':a10_0x22321e(0x154),'flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0xc76d97){const _0x48bd0a=a10_0x22321e,_0xdc03d4=buildArtifactInput(_0xc76d97),_0x30a1ff=await createRuntimeArtifact(_0xc76d97['appCode'],_0xdc03d4);return{'ok':!![],'data':detailArtifact(_0x30a1ff),'message':_0x48bd0a(0x157)+_0x30a1ff['id']+(_0x30a1ff[_0x48bd0a(0x126)]?'\x20('+_0x30a1ff['name']+')':'')};},async 'dryRun'(_0x24a460){const _0x6fa4e8=a10_0x22321e,_0x1cd890=buildArtifactInput(_0x24a460);return dryRun('POST','/client/artifact/create')[_0x6fa4e8(0x148)]({'appCode':_0x24a460['appCode'],..._0x1cd890})[_0x6fa4e8(0x175)]('Preview:\x20create\x20react_module\x20Artifact')['build']();},'writeEventSubject'(_0x36f13f){const _0x285e35=a10_0x22321e,_0x285157=_0x36f13f[_0x285e35(0x150)]?.['id'];if(typeof _0x285157!==_0x285e35(0x16f)&&typeof _0x285157!==_0x285e35(0x174))return undefined;return{'kind':_0x285e35(0x13d),'id':String(_0x285157),'action':_0x285e35(0x12d)};}},artifactUpdate={'service':a10_0x22321e(0x13d),'command':a10_0x22321e(0x134),'description':a10_0x22321e(0x144),'risk':a10_0x22321e(0x156),'confirmationDescription':a10_0x22321e(0x133),'flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2054b9){const _0x28f584=a10_0x22321e,_0x5f57fc=_0x2054b9[_0x28f584(0x165)]('id'),_0x2e3acf=buildArtifactInput(_0x2054b9),_0x2299dc=await updateRuntimeArtifact(_0x5f57fc,_0x2054b9['appCode'],_0x2e3acf);return{'ok':!![],'data':detailArtifact(_0x2299dc),'message':_0x28f584(0x166)+_0x2299dc['id']+(_0x2299dc[_0x28f584(0x126)]?'\x20('+_0x2299dc['name']+')':'')};},async 'dryRun'(_0x5a0678){const _0x45fc9d=a10_0x22321e,_0x52961e=_0x5a0678[_0x45fc9d(0x165)]('id'),_0x1acca7=buildArtifactInput(_0x5a0678);return dryRun('POST','/client/artifact/'+_0x52961e+_0x45fc9d(0x15f))[_0x45fc9d(0x148)]({'appCode':_0x5a0678[_0x45fc9d(0x12a)],..._0x1acca7})['description']('Preview:\x20update\x20react_module\x20Artifact\x20'+_0x52961e)[_0x45fc9d(0x135)]();},'writeEventSubject'(_0xacaace){const _0x3b4b4a=a10_0x22321e,_0x3dda2f=_0xacaace[_0x3b4b4a(0x150)]?.['id'];if(typeof _0x3dda2f!==_0x3b4b4a(0x16f)&&typeof _0x3dda2f!==_0x3b4b4a(0x174))return undefined;return{'kind':'artifact','id':String(_0x3dda2f),'action':_0x3b4b4a(0x134)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
1
|
+
const a10_0x3765bf=a10_0x309e;(function(_0x5391b8,_0x907e54){const _0x407d7d=a10_0x309e,_0x2232c2=_0x5391b8();while(!![]){try{const _0x286c0d=parseInt(_0x407d7d(0x101))/0x1+parseInt(_0x407d7d(0xf0))/0x2+-parseInt(_0x407d7d(0x12e))/0x3*(parseInt(_0x407d7d(0x110))/0x4)+-parseInt(_0x407d7d(0x132))/0x5*(-parseInt(_0x407d7d(0x111))/0x6)+-parseInt(_0x407d7d(0x117))/0x7+parseInt(_0x407d7d(0xfc))/0x8*(-parseInt(_0x407d7d(0x113))/0x9)+parseInt(_0x407d7d(0xec))/0xa;if(_0x286c0d===_0x907e54)break;else _0x2232c2['push'](_0x2232c2['shift']());}catch(_0x4bd806){_0x2232c2['push'](_0x2232c2['shift']());}}}(a10_0x3342,0x4fc06));import{existsSync,readFileSync,statSync}from'node:fs';import{createRuntimeArtifact,getRuntimeArtifact,listRuntimeArtifacts,updateRuntimeArtifact}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const ARTIFACT_TYPE_REACT_MODULE='react_module',ARTIFACT_SOURCE_AGENT=a10_0x3765bf(0x139),ALLOWED_REACT_MODULE_IMPORTS=['react',a10_0x3765bf(0x12f),a10_0x3765bf(0x100),a10_0x3765bf(0x128),a10_0x3765bf(0x107),'@ant-design/icons'];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x3765bf(0x112)](',\x20');function a10_0x3342(){const _0x289aea=['parse','split','Preview:\x20update\x20react_module\x20Artifact\x20','Invalid\x20JSON\x20for\x20--metadata:\x20','utf8','Artifact\x20source\x20file\x20is\x20blank.','18160CtoMQt','source','detail','str','lodash','157000iqKATW','file','num','name','Artifact\x20ID','Artifact\x20display\x20name','antd','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','metadata','Created\x20Artifact\x20','validation','string','some','trim','1057960laKtFn','629940xFzJCW','join','117LGEJhO','body','create','length','3607072rvSHnB','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','boolean','File\x20not\x20found:\x20','write','createTime','updateTime','Preview:\x20create\x20react_module\x20Artifact','flag','map','startsWith','/client/artifact/','artifact','react_module\x20imports\x20are\x20limited\x20to:\x20','favorite','filter','bool','dayjs','/update','description','Optional\x20favorite-state\x20filter','number','object','3hbmwUu','react-dom','add','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','5sObBlf','Updated\x20Artifact\x20','exec','update','build','/client/artifact/create','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','AGENT','lastIndex','data','content','read','appCode','POST','3097170varZpy','deleted','artifactType','test','1128502ztiqCn','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','Show\x20one\x20Artifact\x20by\x20id','isArray','File\x20is\x20not\x20a\x20regular\x20file:\x20','list'];a10_0x3342=function(){return _0x289aea;};return a10_0x3342();}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_0x3765bf(0x102),'type':a10_0x3765bf(0x10d),'required':!![],'description':a10_0x3765bf(0x118)},ARTIFACT_NAME_FLAG={'name':'name','type':a10_0x3765bf(0x10d),'description':a10_0x3765bf(0x106)},METADATA_FLAG={'name':a10_0x3765bf(0x10a),'type':'string','description':a10_0x3765bf(0xf1)};function isPlainObject(_0x284a2a){const _0x24ed0e=a10_0x3765bf;return typeof _0x284a2a===_0x24ed0e(0x12d)&&_0x284a2a!==null&&!Array[_0x24ed0e(0xf3)](_0x284a2a);}function a10_0x309e(_0x329fb2,_0xd0ab77){_0x329fb2=_0x329fb2-0xeb;const _0x3342a1=a10_0x3342();let _0x309e3f=_0x3342a1[_0x329fb2];return _0x309e3f;}function readSourceFile(_0x57bbb5){const _0x490d90=a10_0x3765bf;if(!_0x57bbb5)throw CliErrors[_0x490d90(0x10c)]('File\x20path\x20is\x20required.');if(!existsSync(_0x57bbb5))throw CliErrors[_0x490d90(0x10c)](_0x490d90(0x11a)+_0x57bbb5);if(!statSync(_0x57bbb5)['isFile']())throw CliErrors[_0x490d90(0x10c)](_0x490d90(0xf4)+_0x57bbb5);const _0x2eea22=readFileSync(_0x57bbb5,_0x490d90(0xfa));return validateReactModuleSource(_0x2eea22),_0x2eea22;}function parseMetadata(_0x16ff2a){const _0x1c0519=a10_0x3765bf;if(!_0x16ff2a)return undefined;let _0x444bea;try{_0x444bea=JSON[_0x1c0519(0xf6)](_0x16ff2a);}catch{throw CliErrors[_0x1c0519(0x10c)](_0x1c0519(0xf9)+_0x16ff2a);}if(!isPlainObject(_0x444bea))throw CliErrors[_0x1c0519(0x10c)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x445d6e={..._0x444bea};return delete _0x445d6e['compiledContent'],_0x445d6e;}function getPackageName(_0x400fde){const _0x3efe23=a10_0x3765bf;if(_0x400fde[_0x3efe23(0x121)]('@')){const [_0x2037f3,_0x3e29aa]=_0x400fde['split']('/');return _0x2037f3&&_0x3e29aa?_0x2037f3+'/'+_0x3e29aa:_0x400fde;}return _0x400fde[_0x3efe23(0xf7)]('/')[0x0]||_0x400fde;}function validateAllowedImports(_0x559eb0){const _0x216c5f=a10_0x3765bf,_0x3623f9=new Set();for(const _0x3a8b5f of IMPORT_SOURCE_PATTERNS){_0x3a8b5f[_0x216c5f(0x13a)]=0x0;let _0x866405;while((_0x866405=_0x3a8b5f[_0x216c5f(0x134)](_0x559eb0))!==null){const _0x17bf6e=_0x866405[0x1]?.['trim']();_0x17bf6e&&_0x3623f9[_0x216c5f(0x130)](_0x17bf6e);}}const _0x2986cc=[..._0x3623f9]['map'](getPackageName)[_0x216c5f(0x126)](_0x39e34d=>!ALLOWED_REACT_MODULE_IMPORTS['includes'](_0x39e34d));if(_0x2986cc[_0x216c5f(0x116)]>0x0)throw CliErrors[_0x216c5f(0x10c)](_0x216c5f(0x124)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+'.\x20Unsupported:\x20'+[...new Set(_0x2986cc)]['join'](',\x20'));}export function validateReactModuleSource(_0x2b8d8d){const _0x20d275=a10_0x3765bf;if(!_0x2b8d8d['trim']())throw CliErrors[_0x20d275(0x10c)](_0x20d275(0xfb));if(PAGE_LEVEL_PATTERNS[_0x20d275(0x10e)](_0x72820b=>_0x72820b[_0x20d275(0xef)](_0x2b8d8d)))throw CliErrors[_0x20d275(0x10c)](_0x20d275(0x108));validateAllowedImports(_0x2b8d8d);}function buildArtifactInput(_0xd22c64){const _0xee73e8=a10_0x3765bf,_0x5cddc8=readSourceFile(_0xd22c64[_0xee73e8(0xff)](_0xee73e8(0x102))),_0x3e22cf=_0xd22c64[_0xee73e8(0xff)](_0xee73e8(0x104))[_0xee73e8(0x10f)](),_0x112aa2=parseMetadata(_0xd22c64[_0xee73e8(0xff)](_0xee73e8(0x10a)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x3e22cf?{'name':_0x3e22cf}:{},'content':_0x5cddc8,..._0x112aa2?{'metadata':_0x112aa2}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x5d5495){const _0x3cdd14=a10_0x3765bf;return{'id':_0x5d5495['id'],'name':_0x5d5495['name'],'artifactType':_0x5d5495[_0x3cdd14(0xee)],'source':_0x5d5495['source'],'favorite':_0x5d5495['favorite'],'deleted':_0x5d5495[_0x3cdd14(0xed)],'createTime':_0x5d5495[_0x3cdd14(0x11c)],'updateTime':_0x5d5495[_0x3cdd14(0x11d)]};}function detailArtifact(_0x41a7b7){const _0x3b85d0=a10_0x3765bf;return{'id':_0x41a7b7['id'],'appCode':_0x41a7b7[_0x3b85d0(0x13e)],'name':_0x41a7b7[_0x3b85d0(0x104)],'artifactType':_0x41a7b7[_0x3b85d0(0xee)],'source':_0x41a7b7['source'],'favorite':_0x41a7b7[_0x3b85d0(0x125)],'deleted':_0x41a7b7['deleted'],'content':_0x41a7b7[_0x3b85d0(0x13c)]??'','compiledContent':_0x41a7b7['compiledContent'],'metadata':_0x41a7b7[_0x3b85d0(0x10a)]??{},'createTime':_0x41a7b7['createTime'],'updateTime':_0x41a7b7['updateTime']};}function readFavoriteFlag(_0x5c88c9){const _0x3f19e3=a10_0x3765bf,_0x37e603=_0x5c88c9[_0x3f19e3(0x11f)]('favorite');return _0x37e603===undefined||_0x37e603===null||_0x37e603===''?undefined:_0x5c88c9[_0x3f19e3(0x127)](_0x3f19e3(0x125));}const artifactList={'service':a10_0x3765bf(0x123),'command':a10_0x3765bf(0xf5),'description':'List\x20current-app\x20react_module\x20Artifacts','risk':'read','flags':[{'name':a10_0x3765bf(0xfd),'type':a10_0x3765bf(0x10d),'description':a10_0x3765bf(0x131)},{'name':a10_0x3765bf(0x125),'type':a10_0x3765bf(0x119),'description':a10_0x3765bf(0x12b)},VERBOSE_FLAG],async 'execute'(_0x32c324){const _0x130121=a10_0x3765bf,_0x2e96dc=await listRuntimeArtifacts(_0x32c324[_0x130121(0x13e)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x32c324[_0x130121(0xff)](_0x130121(0xfd))?{'source':_0x32c324[_0x130121(0xff)](_0x130121(0xfd))}:{},...readFavoriteFlag(_0x32c324)!==undefined?{'favorite':readFavoriteFlag(_0x32c324)}:{}});return{'ok':!![],'data':{'total':_0x2e96dc[_0x130121(0x116)],'items':_0x32c324[_0x130121(0x127)]('verbose')?_0x2e96dc:_0x2e96dc[_0x130121(0x120)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x3765bf(0x123),'command':a10_0x3765bf(0xfe),'description':a10_0x3765bf(0xf2),'risk':a10_0x3765bf(0x13d),'flags':[{...ID_FLAG,'description':a10_0x3765bf(0x105)}],async 'execute'(_0x3fd81e){const _0x1cda73=a10_0x3765bf,_0x5cbd84=await getRuntimeArtifact(_0x3fd81e[_0x1cda73(0x103)]('id'),_0x3fd81e[_0x1cda73(0x13e)]);return{'ok':!![],'data':detailArtifact(_0x5cbd84)};}},artifactCreate={'service':a10_0x3765bf(0x123),'command':a10_0x3765bf(0x115),'description':a10_0x3765bf(0x138),'risk':a10_0x3765bf(0x11b),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x52e764){const _0x3243c=a10_0x3765bf,_0x4eef9c=buildArtifactInput(_0x52e764),_0x2d9126=await createRuntimeArtifact(_0x52e764[_0x3243c(0x13e)],_0x4eef9c);return{'ok':!![],'data':detailArtifact(_0x2d9126),'message':_0x3243c(0x10b)+_0x2d9126['id']+(_0x2d9126[_0x3243c(0x104)]?'\x20('+_0x2d9126[_0x3243c(0x104)]+')':'')};},async 'dryRun'(_0x42632f){const _0x2cdc3b=a10_0x3765bf,_0x3620e9=buildArtifactInput(_0x42632f);return dryRun(_0x2cdc3b(0xeb),_0x2cdc3b(0x137))[_0x2cdc3b(0x114)]({'appCode':_0x42632f[_0x2cdc3b(0x13e)],..._0x3620e9})[_0x2cdc3b(0x12a)](_0x2cdc3b(0x11e))['build']();},'writeEventSubject'(_0xcb766c){const _0x4a64ed=a10_0x3765bf,_0x35f0a2=_0xcb766c['data']?.['id'];if(typeof _0x35f0a2!==_0x4a64ed(0x10d)&&typeof _0x35f0a2!==_0x4a64ed(0x12c))return undefined;return{'kind':_0x4a64ed(0x123),'id':String(_0x35f0a2),'action':_0x4a64ed(0x115)};}},artifactUpdate={'service':a10_0x3765bf(0x123),'command':a10_0x3765bf(0x135),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x3765bf(0x11b),'confirmationDescription':a10_0x3765bf(0x109),'flags':[{...ID_FLAG,'description':a10_0x3765bf(0x105)},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x2de077){const _0x37bc03=a10_0x3765bf,_0x28d4b9=_0x2de077[_0x37bc03(0x103)]('id'),_0x1755d8=buildArtifactInput(_0x2de077),_0x45a0ae=await updateRuntimeArtifact(_0x28d4b9,_0x2de077['appCode'],_0x1755d8);return{'ok':!![],'data':detailArtifact(_0x45a0ae),'message':_0x37bc03(0x133)+_0x45a0ae['id']+(_0x45a0ae[_0x37bc03(0x104)]?'\x20('+_0x45a0ae[_0x37bc03(0x104)]+')':'')};},async 'dryRun'(_0xad7149){const _0x12f243=a10_0x3765bf,_0x2b8210=_0xad7149[_0x12f243(0x103)]('id'),_0x4b43d9=buildArtifactInput(_0xad7149);return dryRun(_0x12f243(0xeb),_0x12f243(0x122)+_0x2b8210+_0x12f243(0x129))[_0x12f243(0x114)]({'appCode':_0xad7149[_0x12f243(0x13e)],..._0x4b43d9})[_0x12f243(0x12a)](_0x12f243(0xf8)+_0x2b8210)[_0x12f243(0x136)]();},'writeEventSubject'(_0x5a55e3){const _0x2a4bd2=a10_0x3765bf,_0x26de12=_0x5a55e3[_0x2a4bd2(0x13b)]?.['id'];if(typeof _0x26de12!=='string'&&typeof _0x26de12!==_0x2a4bd2(0x12c))return undefined;return{'kind':_0x2a4bd2(0x123),'id':String(_0x26de12),'action':_0x2a4bd2(0x135)};}};export const artifactDefinitions=[artifactList,artifactDetail,artifactCreate,artifactUpdate];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a11_0x98e480=a11_0xd2f6;(function(_0xfcab9b,_0x153158){const _0x2fa53b=a11_0xd2f6,_0x466376=_0xfcab9b();while(!![]){try{const _0x37b165=parseInt(_0x2fa53b(0x19d))/0x1+parseInt(_0x2fa53b(0x196))/0x2+-parseInt(_0x2fa53b(0x185))/0x3+parseInt(_0x2fa53b(0x199))/0x4+-parseInt(_0x2fa53b(0x1a5))/0x5+parseInt(_0x2fa53b(0x161))/0x6*(-parseInt(_0x2fa53b(0x169))/0x7)+-parseInt(_0x2fa53b(0x160))/0x8*(-parseInt(_0x2fa53b(0x177))/0x9);if(_0x37b165===_0x153158)break;else _0x466376['push'](_0x466376['shift']());}catch(_0x3d13c0){_0x466376['push'](_0x466376['shift']());}}}(a11_0x4806,0xe1aa8));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function resolveAuthScopeFlags(_0x2a2adf){const _0x286632=a11_0xd2f6;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x2a2adf[_0x286632(0x1a3)](_0x286632(0x184)),'explicitProject':_0x2a2adf['bool'](_0x286632(0x170)),'policy':_0x286632(0x16b)}));}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 _0x5f3a56=a11_0xd2f6;return crypto[_0x5f3a56(0x166)]();}export function buildDeviceAuthUrl(_0x522d55,_0x3d6a89,_0x1dc170=a11_0x98e480(0x16c)){const _0x847783=a11_0x98e480;return _0x522d55+_0x847783(0x16a)+encodeURIComponent(_0x3d6a89)+_0x847783(0x195)+encodeURIComponent(_0x1dc170);}export function getDeviceCodePath(){const _0x154c5a=a11_0x98e480;return homedir()+'/'+PRODUCT_CONFIG['homeDirName']+_0x154c5a(0x183);}export function readStoredDeviceCode(){const _0x409d1b=a11_0x98e480,_0x5c58f2=getDeviceCodePath();if(!existsSync(_0x5c58f2))return null;try{const _0x412d75=readFileSync(_0x5c58f2,{'encoding':_0x409d1b(0x175)}),_0x24c58b=JSON['parse'](_0x412d75);if(_0x24c58b&&typeof _0x24c58b[_0x409d1b(0x168)]==='string'&&typeof _0x24c58b['createdAt']==='string'&&(_0x24c58b[_0x409d1b(0x19a)]===_0x409d1b(0x184)||_0x24c58b[_0x409d1b(0x19a)]==='project'))return _0x24c58b;}catch{}return null;}export function writeStoredDeviceCode(_0x31a2b8,_0x3deb82){const _0x4798f5=a11_0x98e480,_0x7539ac=getDeviceCodePath(),_0x1800dd=dirname(_0x7539ac);!existsSync(_0x1800dd)&&mkdirSync(_0x1800dd,{'recursive':!![]});const _0xa1a36d={'code':_0x31a2b8,'createdAt':new Date()['toISOString'](),'scope':_0x3deb82};writeFileSync(_0x7539ac,JSON[_0x4798f5(0x1a8)](_0xa1a36d),{'encoding':_0x4798f5(0x175),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x1d49e1=getDeviceCodePath();try{unlinkSync(_0x1d49e1);}catch{}}export function isStoredDeviceCodeExpired(_0x58698a){const _0x1c436d=a11_0x98e480;return Date['now']()-new Date(_0x58698a[_0x1c436d(0x182)])[_0x1c436d(0x194)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x29c053,_0x25afca){const _0xdfdeaa=a11_0x98e480,_0xcdf667=_0x29c053+'/api/device-auth/token',_0x24699c=new AbortController(),_0x597e5e=setTimeout(()=>_0x24699c['abort'](),0x2710),_0x21b37c=await fetch(_0xcdf667,{'method':_0xdfdeaa(0x16d),'headers':{'Content-Type':_0xdfdeaa(0x173)},'body':JSON['stringify']({'code':_0x25afca}),'signal':_0x24699c['signal']});clearTimeout(_0x597e5e);if(!_0x21b37c['ok'])throw CliErrors[_0xdfdeaa(0x1a6)](_0xdfdeaa(0x19b)+_0x21b37c[_0xdfdeaa(0x18e)]);const _0x73ca5b=await _0x21b37c[_0xdfdeaa(0x188)](),_0x4b1a76=_0x73ca5b['data']&&typeof _0x73ca5b[_0xdfdeaa(0x1a1)]===_0xdfdeaa(0x19f)?_0x73ca5b[_0xdfdeaa(0x1a1)]:_0x73ca5b;if(!_0x4b1a76||typeof _0x4b1a76[_0xdfdeaa(0x18e)]!==_0xdfdeaa(0x198))throw CliErrors[_0xdfdeaa(0x1a0)]('Invalid\x20device\x20auth\x20response');return{'status':_0x4b1a76[_0xdfdeaa(0x18e)],'access_key':typeof _0x4b1a76[_0xdfdeaa(0x1ae)]===_0xdfdeaa(0x198)?_0x4b1a76[_0xdfdeaa(0x1ae)]:undefined};}export async function pollDeviceToken(_0x1e60b9,_0x4df977,_0x8fadcc){const _0x4d1f9f=a11_0x98e480;let _0x450af1=0x0;for(let _0x1615cc=0x0;_0x1615cc<MAX_POLLS;_0x1615cc++){if(_0x8fadcc[_0x4d1f9f(0x1ad)])throw CliErrors[_0x4d1f9f(0x187)](_0x4d1f9f(0x178));let _0xde84c1;try{_0xde84c1=await fetchDeviceToken(_0x1e60b9,_0x4df977);}catch(_0x421798){if(_0x421798 instanceof Error&&_0x421798[_0x4d1f9f(0x1aa)]===_0x4d1f9f(0x176))throw CliErrors[_0x4d1f9f(0x187)](_0x4d1f9f(0x178));_0x450af1++;if(_0x450af1>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x4d1f9f(0x1a6)](_0x4d1f9f(0x17c));writeCliSideChannelLine('Device\x20auth\x20API\x20error\x20('+_0x450af1+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x4d1f9f(0x174)),await sleep(POLL_INTERVAL_MS);continue;}_0x450af1=0x0;if(_0xde84c1[_0x4d1f9f(0x18e)]===_0x4d1f9f(0x197)){if(!_0xde84c1[_0x4d1f9f(0x1ae)])throw CliErrors[_0x4d1f9f(0x1a0)](_0x4d1f9f(0x18a));return _0xde84c1[_0x4d1f9f(0x1ae)];}if(_0xde84c1[_0x4d1f9f(0x18e)]===_0x4d1f9f(0x189)){deleteStoredDeviceCode();throw CliErrors['validation'](_0x4d1f9f(0x17b));}const _0x5bb7b8=(_0x1615cc+0x1)*POLL_INTERVAL_MS,_0xcd940b=DEVICE_CODE_TTL_MS-_0x5bb7b8,_0x1f9323=Math['floor'](_0xcd940b/0xea60),_0x1ef334=Math[_0x4d1f9f(0x1ac)](_0xcd940b%0xea60/0x3e8);process['stderr'][_0x4d1f9f(0x17d)](_0x4d1f9f(0x171)+_0x1f9323+':'+String(_0x1ef334)[_0x4d1f9f(0x179)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors['validation']('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function a11_0x4806(){const _0x140d3e=['getTime','&source=','3380158nglwPm','success','string','4220648MtGpwd','scope','Device\x20auth\x20API\x20returned\x20HTTP\x20','log','239333YWYDpF','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','object','apiError','data','After\x20authorizing,\x20re-run:\x20','bool','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','5492130zPVfZB','networkError','removeListener','stringify','auth','name','AccessKey\x20saved\x20to\x20','floor','aborted','access_key','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','device','402552EuBVmt','12564DMybSA','Write\x20to\x20project\x20config','boolean','\x20config.','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','randomUUID','once','code','1743lmASGj','/device-auth?code=','global-default','lovrabet-cli','POST','abort','SIGINT','project','\x0dWaiting\x20for\x20authorization...\x20','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','application/json','),\x20retrying...','utf8','AbortError','180XJnWCj','Device\x20authorization\x20cancelled.','padStart','str','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','write','url-only','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','\x20auth\x20status','stderr','createdAt','/.device-auth','global','4340382xJuWxz','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','cancelled','json','expired','Invalid\x20access_key\x20returned\x20by\x20server.','Device\x20authorization\x20successful.','Write\x20to\x20global\x20config\x20(default)','Verify:\x20','status','accessKey','test','source','nonInteractive','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.'];a11_0x4806=function(){return _0x140d3e;};return a11_0x4806();}function sleep(_0xfba326){return new Promise(_0x39138f=>setTimeout(_0x39138f,_0xfba326));}function a11_0xd2f6(_0x4319a6,_0x1f4269){_0x4319a6=_0x4319a6-0x15f;const _0x48068f=a11_0x4806();let _0xd2f658=_0x48068f[_0x4319a6];return _0xd2f658;}export const authDeviceDefinition={'service':a11_0x98e480(0x1a9),'command':a11_0x98e480(0x15f),'description':a11_0x98e480(0x165),'risk':a11_0x98e480(0x17d),'confirmationDescription':a11_0x98e480(0x172),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x98e480(0x184),'type':a11_0x98e480(0x163),'description':a11_0x98e480(0x18c),'default':!![]},{'name':a11_0x98e480(0x170),'type':a11_0x98e480(0x163),'description':a11_0x98e480(0x162),'default':![]},{'name':'source','type':a11_0x98e480(0x198),'description':a11_0x98e480(0x1af),'default':a11_0x98e480(0x16c)},{'name':a11_0x98e480(0x17e),'type':'boolean','description':a11_0x98e480(0x19e),'default':![]}],async 'execute'(_0x5261b3){const _0x572a31=a11_0x98e480,_0x4789a5=resolveAuthScopeFlags(_0x5261b3),_0x15f43f=_0x4789a5[_0x572a31(0x184)]?_0x572a31(0x184):_0x572a31(0x170),_0x2179bb=readScopedConfig(_0x4789a5);if(_0x2179bb[_0x572a31(0x18f)])return{'ok':!![],'message':_0x572a31(0x186)};const _0x1aa1bf=(_0x5261b3[_0x572a31(0x17a)](_0x572a31(0x191))||_0x572a31(0x16c))['trim'](),_0x13d180=getUserDomain(),_0x1c3266=readStoredDeviceCode(),_0x227314=_0x1c3266&&!isStoredDeviceCodeExpired(_0x1c3266)?_0x1c3266[_0x572a31(0x168)]:((()=>{const _0x51d91a=generateDeviceCode();return writeStoredDeviceCode(_0x51d91a,_0x15f43f),_0x51d91a;})()),_0x295ac6=buildDeviceAuthUrl(_0x13d180,_0x227314,_0x1aa1bf);if(_0x5261b3['bool']('url-only'))return console[_0x572a31(0x19c)](_0x295ac6),{'ok':!![]};writeCliSideChannelLine(_0x572a31(0x17f)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x295ac6),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x572a31(0x193));if(_0x5261b3[_0x572a31(0x192)])return writeCliSideChannelLine(_0x572a31(0x1a2)+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':'Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.'};writeCliSideChannelLine(_0x572a31(0x1a4));const _0x4b3426=new AbortController(),_0x40bdfa=()=>{const _0x42a823=_0x572a31;_0x4b3426[_0x42a823(0x16e)](),process['removeListener'](_0x42a823(0x16f),_0x40bdfa);};process[_0x572a31(0x167)](_0x572a31(0x16f),_0x40bdfa);let _0x46da84;try{_0x46da84=await pollDeviceToken(_0x13d180,_0x227314,_0x4b3426['signal']);}finally{process[_0x572a31(0x1a7)](_0x572a31(0x16f),_0x40bdfa);}if(!ACCESS_KEY_PATTERN[_0x572a31(0x190)](_0x46da84))throw CliErrors['apiError']('Invalid\x20access_key\x20returned\x20by\x20server.');const _0x5ac6ae=readScopedConfig(_0x4789a5);return _0x5ac6ae[_0x572a31(0x18f)]=_0x46da84,writeScopedConfig(_0x5ac6ae,_0x4789a5),deleteStoredDeviceCode(),process[_0x572a31(0x181)][_0x572a31(0x17d)]('\x0a'),writeCliSideChannelLine(_0x572a31(0x1ab)+_0x15f43f+_0x572a31(0x164)),writeCliSideChannelLine(_0x572a31(0x18d)+CLI_BIN_NAME+_0x572a31(0x180)),{'ok':!![],'message':_0x572a31(0x18b)};}};
|
|
1
|
+
const a11_0x12f8e9=a11_0x5246;(function(_0x476835,_0x472531){const _0x5456e3=a11_0x5246,_0x427b58=_0x476835();while(!![]){try{const _0x50fc91=-parseInt(_0x5456e3(0x84))/0x1*(-parseInt(_0x5456e3(0x8b))/0x2)+parseInt(_0x5456e3(0x96))/0x3+parseInt(_0x5456e3(0x9c))/0x4+parseInt(_0x5456e3(0x95))/0x5+parseInt(_0x5456e3(0xbc))/0x6+parseInt(_0x5456e3(0x88))/0x7+-parseInt(_0x5456e3(0x80))/0x8*(parseInt(_0x5456e3(0x7b))/0x9);if(_0x50fc91===_0x472531)break;else _0x427b58['push'](_0x427b58['shift']());}catch(_0x17d372){_0x427b58['push'](_0x427b58['shift']());}}}(a11_0x597b,0x77902));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';function a11_0x597b(){const _0xb74d69=['),\x20retrying...','Invalid\x20access_key\x20returned\x20by\x20server.','App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','Verify:\x20','url-only','\x20auth\x20status','homeDirName','nonInteractive','lovrabet-cli','auth','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','abort','/api/device-auth/token','AbortError','Device\x20auth\x20API\x20error\x20(','signal','validation','application/json','access_key','str','Write\x20to\x20global\x20config\x20(default)','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','now','stderr','string','randomUUID','\x20config.','175836CEiqAI','code','expired','boolean','global','test','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','device','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','/device-auth?code=','Invalid\x20device\x20auth\x20response','getTime','object','4285980oNDOyY','accessKey','POST','trim','aborted','8TtJqoe','Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','\x20auth\x20device','global-default','60LLRhvK','source','data','floor','1505133JaMYtS','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','networkError','8546maIwVw','stringify','project','apiError','createdAt','log','bool','write','once','Device\x20authorization\x20cancelled.','1024865ioswCt','459858MTlONO','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','padStart','AccessKey\x20saved\x20to\x20','status','removeListener','427944CwriJS','parse','SIGINT','scope','name'];a11_0x597b=function(){return _0xb74d69;};return a11_0x597b();}import{dirname}from'node:path';import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a11_0x5246(_0x6691d4,_0x1aebbb){_0x6691d4=_0x6691d4-0x75;const _0x597ba9=a11_0x597b();let _0x524644=_0x597ba9[_0x6691d4];return _0x524644;}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(_0x554b3c){const _0x4db1df=a11_0x5246;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x554b3c[_0x4db1df(0x91)](_0x4db1df(0xc0)),'explicitProject':_0x554b3c[_0x4db1df(0x91)](_0x4db1df(0x8d)),'policy':_0x4db1df(0x83)}));}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 _0x401e85=a11_0x5246;return crypto[_0x401e85(0xba)]();}export function buildDeviceAuthUrl(_0x22f4cb,_0x4684cc,_0x1d4e1e=a11_0x12f8e9(0xa9)){const _0x48ea14=a11_0x12f8e9;return _0x22f4cb+_0x48ea14(0x77)+encodeURIComponent(_0x4684cc)+'&source='+encodeURIComponent(_0x1d4e1e);}export function getDeviceCodePath(){const _0x226a85=a11_0x12f8e9;return homedir()+'/'+PRODUCT_CONFIG[_0x226a85(0xa7)]+'/.device-auth';}export function readStoredDeviceCode(){const _0x33508e=a11_0x12f8e9,_0x2aef8d=getDeviceCodePath();if(!existsSync(_0x2aef8d))return null;try{const _0x48ea0a=readFileSync(_0x2aef8d,{'encoding':'utf8'}),_0x4d0dea=JSON[_0x33508e(0x9d)](_0x48ea0a);if(_0x4d0dea&&typeof _0x4d0dea[_0x33508e(0xbd)]===_0x33508e(0xb9)&&typeof _0x4d0dea[_0x33508e(0x8f)]==='string'&&(_0x4d0dea[_0x33508e(0x9f)]===_0x33508e(0xc0)||_0x4d0dea[_0x33508e(0x9f)]===_0x33508e(0x8d)))return _0x4d0dea;}catch{}return null;}export function writeStoredDeviceCode(_0x42400c,_0x59d7df){const _0x25b512=a11_0x12f8e9,_0x38b2e6=getDeviceCodePath(),_0x55fee3=dirname(_0x38b2e6);!existsSync(_0x55fee3)&&mkdirSync(_0x55fee3,{'recursive':!![]});const _0x402758={'code':_0x42400c,'createdAt':new Date()['toISOString'](),'scope':_0x59d7df};writeFileSync(_0x38b2e6,JSON[_0x25b512(0x8c)](_0x402758),{'encoding':'utf8','mode':0x180});}export function deleteStoredDeviceCode(){const _0x23a2da=getDeviceCodePath();try{unlinkSync(_0x23a2da);}catch{}}export function isStoredDeviceCodeExpired(_0x5dd55d){const _0x276b30=a11_0x12f8e9;return Date[_0x276b30(0xb7)]()-new Date(_0x5dd55d[_0x276b30(0x8f)])[_0x276b30(0x79)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x6f4325,_0x17ad0e){const _0x432220=a11_0x12f8e9,_0x24dd6e=_0x6f4325+_0x432220(0xad),_0x336868=new AbortController(),_0x37773b=setTimeout(()=>_0x336868[_0x432220(0xac)](),0x2710),_0x230bf0=await fetch(_0x24dd6e,{'method':_0x432220(0x7d),'headers':{'Content-Type':_0x432220(0xb2)},'body':JSON[_0x432220(0x8c)]({'code':_0x17ad0e}),'signal':_0x336868[_0x432220(0xb0)]});clearTimeout(_0x37773b);if(!_0x230bf0['ok'])throw CliErrors[_0x432220(0x8a)]('Device\x20auth\x20API\x20returned\x20HTTP\x20'+_0x230bf0[_0x432220(0x9a)]);const _0x46c373=await _0x230bf0['json'](),_0x30ee03=_0x46c373[_0x432220(0x86)]&&typeof _0x46c373[_0x432220(0x86)]===_0x432220(0x7a)?_0x46c373[_0x432220(0x86)]:_0x46c373;if(!_0x30ee03||typeof _0x30ee03[_0x432220(0x9a)]!==_0x432220(0xb9))throw CliErrors[_0x432220(0x8e)](_0x432220(0x78));return{'status':_0x30ee03['status'],'access_key':typeof _0x30ee03[_0x432220(0xb3)]===_0x432220(0xb9)?_0x30ee03[_0x432220(0xb3)]:undefined};}export async function pollDeviceToken(_0x47df50,_0x381b95,_0x173b1a){const _0x5ec5db=a11_0x12f8e9;let _0x49e12c=0x0;for(let _0x5937b9=0x0;_0x5937b9<MAX_POLLS;_0x5937b9++){if(_0x173b1a[_0x5ec5db(0x7f)])throw CliErrors['cancelled'](_0x5ec5db(0x94));let _0x31c364;try{_0x31c364=await fetchDeviceToken(_0x47df50,_0x381b95);}catch(_0x47fc5e){if(_0x47fc5e instanceof Error&&_0x47fc5e[_0x5ec5db(0xa0)]===_0x5ec5db(0xae))throw CliErrors['cancelled'](_0x5ec5db(0x94));_0x49e12c++;if(_0x49e12c>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x5ec5db(0x8a)](_0x5ec5db(0xab));writeCliSideChannelLine(_0x5ec5db(0xaf)+_0x49e12c+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x5ec5db(0xa1)),await sleep(POLL_INTERVAL_MS);continue;}_0x49e12c=0x0;if(_0x31c364[_0x5ec5db(0x9a)]==='success'){if(!_0x31c364['access_key'])throw CliErrors[_0x5ec5db(0x8e)](_0x5ec5db(0xa2));return _0x31c364[_0x5ec5db(0xb3)];}if(_0x31c364['status']===_0x5ec5db(0xbe)){deleteStoredDeviceCode();throw CliErrors['validation']('Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}const _0x45627f=(_0x5937b9+0x1)*POLL_INTERVAL_MS,_0x21620d=DEVICE_CODE_TTL_MS-_0x45627f,_0x4e911c=Math[_0x5ec5db(0x87)](_0x21620d/0xea60),_0x5e339b=Math[_0x5ec5db(0x87)](_0x21620d%0xea60/0x3e8);process['stderr']['write']('\x0dWaiting\x20for\x20authorization...\x20'+_0x4e911c+':'+String(_0x5e339b)[_0x5ec5db(0x98)](0x2,'0')+'\x20remaining'),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x5ec5db(0xb1)](_0x5ec5db(0x81));}function sleep(_0x15e62d){return new Promise(_0xe59dfa=>setTimeout(_0xe59dfa,_0x15e62d));}export const authDeviceDefinition={'service':a11_0x12f8e9(0xaa),'command':a11_0x12f8e9(0x75),'description':'通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','risk':a11_0x12f8e9(0x92),'confirmationDescription':a11_0x12f8e9(0xb6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x12f8e9(0xc0),'type':a11_0x12f8e9(0xbf),'description':a11_0x12f8e9(0xb5),'default':!![]},{'name':a11_0x12f8e9(0x8d),'type':a11_0x12f8e9(0xbf),'description':'Write\x20to\x20project\x20config','default':![]},{'name':a11_0x12f8e9(0x85),'type':'string','description':a11_0x12f8e9(0xa3),'default':a11_0x12f8e9(0xa9)},{'name':a11_0x12f8e9(0xa5),'type':'boolean','description':a11_0x12f8e9(0x89),'default':![]}],async 'execute'(_0x2a168d){const _0x1c298f=a11_0x12f8e9,_0x373872=resolveAuthScopeFlags(_0x2a168d),_0x4aa1bd=_0x373872[_0x1c298f(0xc0)]?_0x1c298f(0xc0):'project',_0x4db6ff=readScopedConfig(_0x373872);if(_0x4db6ff[_0x1c298f(0x7c)])return{'ok':!![],'message':_0x1c298f(0x76)};const _0x446402=(_0x2a168d[_0x1c298f(0xb4)](_0x1c298f(0x85))||_0x1c298f(0xa9))[_0x1c298f(0x7e)](),_0x269d58=getUserDomain(),_0x14d9d4=readStoredDeviceCode(),_0x2630b6=_0x14d9d4&&!isStoredDeviceCodeExpired(_0x14d9d4)?_0x14d9d4[_0x1c298f(0xbd)]:((()=>{const _0x997abd=generateDeviceCode();return writeStoredDeviceCode(_0x997abd,_0x4aa1bd),_0x997abd;})()),_0x13e42e=buildDeviceAuthUrl(_0x269d58,_0x2630b6,_0x446402);if(_0x2a168d['bool'](_0x1c298f(0xa5)))return console[_0x1c298f(0x90)](_0x13e42e),{'ok':!![]};writeCliSideChannelLine('Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:'),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x13e42e),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x1c298f(0xc2));if(_0x2a168d[_0x1c298f(0xa8)])return writeCliSideChannelLine('After\x20authorizing,\x20re-run:\x20'+CLI_BIN_NAME+_0x1c298f(0x82)),{'ok':!![],'message':_0x1c298f(0x97)};writeCliSideChannelLine('Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...');const _0x32ec3c=new AbortController(),_0x57b21e=()=>{const _0x461709=_0x1c298f;_0x32ec3c[_0x461709(0xac)](),process[_0x461709(0x9b)](_0x461709(0x9e),_0x57b21e);};process[_0x1c298f(0x93)](_0x1c298f(0x9e),_0x57b21e);let _0x495fb9;try{_0x495fb9=await pollDeviceToken(_0x269d58,_0x2630b6,_0x32ec3c[_0x1c298f(0xb0)]);}finally{process['removeListener']('SIGINT',_0x57b21e);}if(!ACCESS_KEY_PATTERN[_0x1c298f(0xc1)](_0x495fb9))throw CliErrors['apiError'](_0x1c298f(0xa2));const _0x83fcb0=readScopedConfig(_0x373872);return _0x83fcb0[_0x1c298f(0x7c)]=_0x495fb9,writeScopedConfig(_0x83fcb0,_0x373872),deleteStoredDeviceCode(),process[_0x1c298f(0xb8)][_0x1c298f(0x92)]('\x0a'),writeCliSideChannelLine(_0x1c298f(0x99)+_0x4aa1bd+_0x1c298f(0xbb)),writeCliSideChannelLine(_0x1c298f(0xa4)+CLI_BIN_NAME+_0x1c298f(0xa6)),{'ok':!![],'message':'Device\x20authorization\x20successful.'};}};
|