@lovrabet/lovrabet-cli 2.1.23-beta.3 → 2.1.23
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_0x1c5010=a0_0x4cb6;(function(_0x574e56,_0x867d55){const _0x2f64fe=a0_0x4cb6,_0x82c013=_0x574e56();while(!![]){try{const _0x5eace6=-parseInt(_0x2f64fe(0x20f))/0x1+parseInt(_0x2f64fe(0x210))/0x2+parseInt(_0x2f64fe(0x208))/0x3*(-parseInt(_0x2f64fe(0x1ef))/0x4)+-parseInt(_0x2f64fe(0x209))/0x5+parseInt(_0x2f64fe(0x20a))/0x6+parseInt(_0x2f64fe(0x1f7))/0x7+parseInt(_0x2f64fe(0x216))/0x8;if(_0x5eace6===_0x867d55)break;else _0x82c013['push'](_0x82c013['shift']());}catch(_0x24dda7){_0x82c013['push'](_0x82c013['shift']());}}}(a0_0x3807,0xa33b7));import{jsx as a0_0x568cfa}from'react/jsx-runtime';import a0_0x5acbf5 from'meow';import{render}from'ink';import{Help}from'./help.js';import{CliError,CliErrors}from'./errors.js';import{buildConfigFromFlags,initGlobalEnvironment}from'./context.js';function a0_0x3807(){const _0x4f8c54=['495364MyesdC','defaultCommand','Unexpected\x20error:','catch','Error:\x20','help','ERR_STREAM_DESTROYED','exitCode','7723366ACUSus','message','assign','error','args','Hint:\x20','name','ERR_USE_AFTER_CLOSE','ExitPromptError','input','code',':\x20--','stderr','slice','log','write','unknownCommand','30DKvDOM','6260195XbJHpj','6508158fsZWAF','definition','handler','[preparse]\x20','length','1029003ZEdWXV','981288KDhkKD','hint','exit','flags','flatMap','cancelled','12075008iZhcCP','validation','\x0aCancelled.\x0a','\x20->\x20--'];a0_0x3807=function(){return _0x4f8c54;};return a0_0x3807();}import{isKnownService,getServiceEntry,findDefinition,getAllDefinitions,resolveRemovedCommand}from'./commands/registry.js';import{generateDynamicServiceHelp,resolveDynamicServiceCommand}from'./commands/service/dynamic.js';function a0_0x4cb6(_0x3ea4ba,_0x41c7db){_0x3ea4ba=_0x3ea4ba-0x1ef;const _0x3807ec=a0_0x3807();let _0x4cb6d7=_0x3807ec[_0x3ea4ba];return _0x4cb6d7;}import{runCommand,createPipelineEnv}from'./framework/runner.js';import{generateCommandHelp,generateServiceHelp,generateFullHelp}from'./framework/help.js';import{buildMeowFlags}from'./constant/cli.js';import{getCliVersionDisplay}from'./utils/version.js';const helpText=generateFullHelp(),cli=a0_0x5acbf5(helpText,{'importMeta':import.meta,'flags':buildMeowFlags(),'version':getCliVersionDisplay()});void main()[a0_0x1c5010(0x1f2)](handleError);async function main(){try{await run();}catch(_0x492525){handleError(_0x492525);}}async function run(){const _0x4b580a=a0_0x1c5010;let _0x409374=cli[_0x4b580a(0x200)][0x0],_0x119b35=cli[_0x4b580a(0x200)][0x1];const _0x485a5f=cli[_0x4b580a(0x213)];try{const {correctFlags:_0x1631f5}=await import('./framework/preparse.js'),_0x5710bf=getAllDefinitions()[_0x4b580a(0x214)](_0x1e5c4c=>_0x1e5c4c[_0x4b580a(0x213)]??[]),{flags:_0x47ab15,corrections:_0x543bd8}=_0x1631f5(_0x485a5f,_0x5710bf);if(_0x543bd8[_0x4b580a(0x20e)]>0x0){for(const _0x2b068e of _0x543bd8){process[_0x4b580a(0x203)]['write'](_0x4b580a(0x20d)+_0x2b068e[_0x4b580a(0x20c)]+_0x4b580a(0x202)+_0x2b068e['original']+_0x4b580a(0x219)+_0x2b068e['corrected']+'\x0a');}Object[_0x4b580a(0x1f9)](_0x485a5f,_0x47ab15);}}catch{}if(!_0x409374){const {waitUntilExit:_0x70b3c1}=render(a0_0x568cfa(Help,{}));await _0x70b3c1();return;}const _0x433afb=resolveRemovedCommand(_0x409374,_0x119b35);if(_0x433afb)throw CliErrors[_0x4b580a(0x217)](_0x433afb['message'],_0x433afb[_0x4b580a(0x211)]);if(!isKnownService(_0x409374)){const _0x4b8c3d=resolveDynamicServiceCommand(cli[_0x4b580a(0x200)],_0x485a5f);if(_0x4b8c3d){if(_0x485a5f[_0x4b580a(0x1f4)]){console[_0x4b580a(0x205)](generateCommandHelp(_0x4b8c3d['definition']));return;}Object[_0x4b580a(0x1f9)](_0x485a5f,_0x4b8c3d[_0x4b580a(0x213)]);const _0x1de70f=buildConfigFromFlags(_0x485a5f);await initGlobalEnvironment(_0x1de70f);const _0x5b777e=createPipelineEnv(_0x1de70f,_0x485a5f);_0x5b777e['args']=_0x4b8c3d[_0x4b580a(0x1fb)],await runCommand(_0x4b8c3d[_0x4b580a(0x20b)],_0x5b777e);return;}if(_0x485a5f[_0x4b580a(0x1f4)]){const _0x172159=generateDynamicServiceHelp(_0x409374);if(_0x172159){console[_0x4b580a(0x205)](_0x172159);return;}}const {waitUntilExit:_0xce6d18}=render(a0_0x568cfa(Help,{}));await _0xce6d18();return;}const _0x15c648=getServiceEntry(_0x409374);if(!_0x119b35){if(_0x485a5f[_0x4b580a(0x1f4)]){console[_0x4b580a(0x205)](generateServiceHelp(_0x409374));return;}if(_0x15c648[_0x4b580a(0x1f0)])_0x119b35=_0x15c648[_0x4b580a(0x1f0)];else{console['log'](generateServiceHelp(_0x409374));return;}}const _0x485434=findDefinition(_0x409374,_0x119b35);!_0x485434&&(console[_0x4b580a(0x205)](generateServiceHelp(_0x409374)),handleError(CliErrors[_0x4b580a(0x207)](_0x409374+'\x20'+_0x119b35)));if(_0x485a5f[_0x4b580a(0x1f4)]){console[_0x4b580a(0x205)](generateCommandHelp(_0x485434));return;}const _0x43dff3=buildConfigFromFlags(_0x485a5f);await initGlobalEnvironment(_0x43dff3);const _0x3ae2cb=createPipelineEnv(_0x43dff3,_0x485a5f);_0x3ae2cb['args']=cli[_0x4b580a(0x200)][_0x4b580a(0x204)](0x2),await runCommand(_0x485434,_0x3ae2cb);}function handleError(_0x335796){const _0x26aa73=a0_0x1c5010;if(_0x335796 instanceof CliError){_0x335796[_0x26aa73(0x201)]===_0x26aa73(0x215)&&(process[_0x26aa73(0x203)][_0x26aa73(0x206)](_0x26aa73(0x218)),process[_0x26aa73(0x212)](0x0));console[_0x26aa73(0x1fa)](_0x26aa73(0x1f3)+_0x335796[_0x26aa73(0x1f8)]);if(_0x335796[_0x26aa73(0x211)])console[_0x26aa73(0x1fa)](_0x26aa73(0x1fc)+_0x335796[_0x26aa73(0x211)]);process[_0x26aa73(0x212)](_0x335796[_0x26aa73(0x1f6)]);}isUserCancellation(_0x335796)&&(process['stderr'][_0x26aa73(0x206)](_0x26aa73(0x218)),process['exit'](0x0)),console[_0x26aa73(0x1fa)](_0x26aa73(0x1f1),_0x335796),process[_0x26aa73(0x212)](0x1);}function isUserCancellation(_0x3d3ffc){const _0x557c8f=a0_0x1c5010;if(!(_0x3d3ffc instanceof Error))return![];if(_0x3d3ffc[_0x557c8f(0x1fd)]===_0x557c8f(0x1ff))return!![];if(_0x3d3ffc['code']===_0x557c8f(0x1fe))return!![];if(_0x3d3ffc['code']===_0x557c8f(0x1f5))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_0x20374b=a1_0x4990;function a1_0x4990(_0x174d35,_0x19d93f){_0x174d35=_0x174d35-0x94;const _0x2391dd=a1_0x2391();let _0x49906a=_0x2391dd[_0x174d35];return _0x49906a;}(function(_0x36d4ff,_0x5b9a49){const _0x57fb88=a1_0x4990,_0x412d2c=_0x36d4ff();while(!![]){try{const _0xa2e018=-parseInt(_0x57fb88(0xdd))/0x1*(parseInt(_0x57fb88(0xf4))/0x2)+parseInt(_0x57fb88(0xce))/0x3*(parseInt(_0x57fb88(0xf6))/0x4)+parseInt(_0x57fb88(0xac))/0x5*(-parseInt(_0x57fb88(0xec))/0x6)+parseInt(_0x57fb88(0xdc))/0x7*(parseInt(_0x57fb88(0xa8))/0x8)+-parseInt(_0x57fb88(0xcc))/0x9+parseInt(_0x57fb88(0xbc))/0xa+parseInt(_0x57fb88(0xab))/0xb*(parseInt(_0x57fb88(0x98))/0xc);if(_0xa2e018===_0x5b9a49)break;else _0x412d2c['push'](_0x412d2c['shift']());}catch(_0x40c91b){_0x412d2c['push'](_0x412d2c['shift']());}}}(a1_0x2391,0x1e77f));import{CliErrors}from'../../errors.js';const CATEGORY_FLAG={'name':'category','type':'string','description':a1_0x20374b(0xeb)},KEYWORD_FLAG={'name':a1_0x20374b(0x9e),'type':'string','description':'Search\x20docs\x20by\x20code,\x20summary,\x20path,\x20or\x20usage\x20text'},DOC_CODE_FLAG={'name':'code','type':'string','required':!![],'description':a1_0x20374b(0xf7)},DOCS=[{'code':a1_0x20374b(0xb3),'category':a1_0x20374b(0xf3),'title':a1_0x20374b(0x99),'method':a1_0x20374b(0x9a),'path':a1_0x20374b(0x105),'summary':'分页获取数据集列表','whenToUse':a1_0x20374b(0xb6),'pathParams':[],'queryParams':[],'bodySchema':a1_0x20374b(0xa2),'responseHighlights':[a1_0x20374b(0xe7),'paging.totalCount\x20gives\x20total\x20rows'],'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_0x20374b(0x9d),'','Use\x20this\x20API\x20or\x20`lovrabet\x20dataset\x20list`\x20to\x20discover\x20available\x20dataset\x20codes\x20before\x20reading\x20data.'][a1_0x20374b(0xc3)]('\x0a')},{'code':'dataset_detail','category':a1_0x20374b(0xf3),'title':a1_0x20374b(0xd2),'method':a1_0x20374b(0xc7),'path':a1_0x20374b(0xc2),'summary':a1_0x20374b(0xe4),'whenToUse':a1_0x20374b(0xf0),'pathParams':[],'queryParams':[{'name':a1_0x20374b(0xa9),'description':'32-character\x20dataset\x20code'}],'bodySchema':'None','responseHighlights':[a1_0x20374b(0xd7),a1_0x20374b(0xba),'operations\x20describes\x20runtime\x20APIs'],'examples':['lovrabet\x20dataset\x20detail\x20--code\x20<datasetCode>\x20--appcode\x20<appCode>'],'notes':[a1_0x20374b(0xd3)],'markdown':[a1_0x20374b(0xc5),'',a1_0x20374b(0xfa)]['join']('\x0a')},{'code':a1_0x20374b(0xc9),'category':a1_0x20374b(0xf3),'title':a1_0x20374b(0x102),'method':'POST','path':a1_0x20374b(0x109),'summary':'条件过滤查询数据','whenToUse':a1_0x20374b(0xc8),'pathParams':[{'name':a1_0x20374b(0x10a),'description':a1_0x20374b(0xea)},{'name':'datasetCode','description':a1_0x20374b(0x10b)}],'queryParams':[],'bodySchema':a1_0x20374b(0xc1),'responseHighlights':[a1_0x20374b(0xfd),a1_0x20374b(0xcb)],'examples':['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','lovrabet\x20data\x20filter\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22where\x22:{\x22status\x22:{\x22$eq\x22:\x22active\x22}},\x22orderBy\x22:[{\x22id\x22:\x22asc\x22}],\x22currentPage\x22:2,\x22pageSize\x22:20}\x27'],'notes':[a1_0x20374b(0xb9),a1_0x20374b(0x95),'Verify\x20tableData\x20and\x20paging\x20before\x20treating\x20the\x20response\x20as\x20a\x20business\x20fact.',a1_0x20374b(0xad)],'markdown':[a1_0x20374b(0xe6),'',a1_0x20374b(0xbd)][a1_0x20374b(0xc3)]('\x0a')},{'code':a1_0x20374b(0xf2),'category':a1_0x20374b(0xf3),'title':a1_0x20374b(0xbb),'method':a1_0x20374b(0x9a),'path':a1_0x20374b(0xa7),'summary':a1_0x20374b(0xaf),'whenToUse':a1_0x20374b(0xa1),'pathParams':[{'name':a1_0x20374b(0x10a),'description':a1_0x20374b(0xea)},{'name':'datasetCode','description':a1_0x20374b(0x10b)}],'queryParams':[],'bodySchema':a1_0x20374b(0xbe),'responseHighlights':['result\x20rows\x20contain\x20aggregate\x20aliases',a1_0x20374b(0x10d)],'examples':[a1_0x20374b(0xa5)],'notes':[a1_0x20374b(0xd1),'`field`\x20is\x20accepted\x20as\x20a\x20deprecated\x20alias\x20for\x20`column`;\x20new\x20calls\x20should\x20use\x20`column`.'],'markdown':[a1_0x20374b(0x94),'',a1_0x20374b(0xb5)][a1_0x20374b(0xc3)]('\x0a')},{'code':a1_0x20374b(0xd8),'category':a1_0x20374b(0xf3),'title':a1_0x20374b(0x107),'method':a1_0x20374b(0x9a),'path':a1_0x20374b(0x101),'summary':a1_0x20374b(0x106),'whenToUse':a1_0x20374b(0xb2),'pathParams':[{'name':a1_0x20374b(0x10a),'description':'Current\x20app\x20code'},{'name':a1_0x20374b(0xee),'description':a1_0x20374b(0x10b)}],'queryParams':[],'bodySchema':a1_0x20374b(0x100),'responseHighlights':[a1_0x20374b(0xdf)],'examples':[a1_0x20374b(0xe3)],'notes':[a1_0x20374b(0xf8)],'markdown':'##\x20Get\x20one\x20dataset\x20record\x0a\x0aRead\x20one\x20record\x20by\x20id.'},{'code':'dataset_data_create','category':a1_0x20374b(0xf3),'title':a1_0x20374b(0x104),'method':a1_0x20374b(0x9a),'path':a1_0x20374b(0xae),'summary':a1_0x20374b(0xb4),'whenToUse':a1_0x20374b(0xe0),'pathParams':[{'name':a1_0x20374b(0x10a),'description':a1_0x20374b(0xea)},{'name':'datasetCode','description':a1_0x20374b(0x10b)}],'queryParams':[],'bodySchema':a1_0x20374b(0xf9),'responseHighlights':[a1_0x20374b(0xe5)],'examples':[a1_0x20374b(0xa0)],'notes':[a1_0x20374b(0x9f)],'markdown':a1_0x20374b(0xb7)},{'code':a1_0x20374b(0xf5),'category':'bf','title':'Get\x20BF\x20endpoint\x20function\x20contract','method':a1_0x20374b(0xc7),'path':a1_0x20374b(0xe8),'summary':a1_0x20374b(0xb1),'whenToUse':a1_0x20374b(0x103),'pathParams':[{'name':a1_0x20374b(0x10a),'description':a1_0x20374b(0xea)},{'name':'functionName','description':a1_0x20374b(0xa3)}],'queryParams':[],'bodySchema':'None','responseHighlights':['CLI\x20returns\x20appCode/functionName/description/version/gmtModified'],'examples':['lovrabet\x20bff\x20detail\x20--name\x20<functionName>'],'notes':[a1_0x20374b(0xe1)],'markdown':'##\x20Get\x20BF\x20endpoint\x20function\x20contract\x0a\x0aInspect\x20one\x20known\x20endpoint\x20function\x20through\x20the\x20AK-authenticated\x20exact\x20detail\x20API.'},{'code':a1_0x20374b(0xfe),'category':'bf','title':'Execute\x20BF\x20endpoint\x20function','method':'POST','path':a1_0x20374b(0xaa),'summary':a1_0x20374b(0x96),'whenToUse':'已经确认目标\x20BF\x20的\x20functionName,且需要实际调用该\x20ENDPOINT\x20函数完成业务操作时使用','pathParams':[{'name':a1_0x20374b(0x10a),'description':a1_0x20374b(0xea)},{'name':a1_0x20374b(0x108),'description':a1_0x20374b(0xb8)}],'queryParams':[],'bodySchema':'{\x22param\x22:\x22value\x22}','responseHighlights':[a1_0x20374b(0x97)],'examples':[a1_0x20374b(0xa6)],'notes':[a1_0x20374b(0xc0)],'markdown':a1_0x20374b(0xe9)},{'code':'custom_sql_execute','category':a1_0x20374b(0xf1),'title':a1_0x20374b(0xc4),'method':'POST','path':a1_0x20374b(0xd9),'summary':a1_0x20374b(0xcf),'whenToUse':a1_0x20374b(0x9c),'pathParams':[],'queryParams':[],'bodySchema':a1_0x20374b(0xda),'responseHighlights':['Returns\x20SQL\x20execution\x20payload'],'examples':[a1_0x20374b(0xd0)],'notes':['Use\x20`lovrabet\x20sql\x20detail`\x20before\x20execution.'],'markdown':a1_0x20374b(0xef)}];function entrySummary(_0x1f0adb){const _0x28d4c8=a1_0x20374b;return{'code':_0x1f0adb['code'],'category':_0x1f0adb[_0x28d4c8(0xde)],'method':_0x1f0adb[_0x28d4c8(0xcd)],'path':_0x1f0adb[_0x28d4c8(0xbf)],'summary':_0x1f0adb[_0x28d4c8(0xca)],'whenToUse':_0x1f0adb[_0x28d4c8(0xfb)]};}export function listApiDocEntries(_0x162e7d={}){const _0x2a438f=a1_0x20374b,_0x364e20=String(_0x162e7d[_0x2a438f(0xde)]||'')[_0x2a438f(0xd5)](),_0xeff698=String(_0x162e7d[_0x2a438f(0x9e)]||'')[_0x2a438f(0xd5)]()['toLowerCase']();return DOCS['filter'](_0x4af2b9=>{const _0x2b635d=_0x2a438f;if(_0x364e20&&_0x4af2b9[_0x2b635d(0xde)]!==_0x364e20)return![];if(!_0xeff698)return!![];return[_0x4af2b9['code'],_0x4af2b9[_0x2b635d(0xde)],_0x4af2b9[_0x2b635d(0xcd)],_0x4af2b9[_0x2b635d(0xbf)],_0x4af2b9[_0x2b635d(0xca)],_0x4af2b9['whenToUse'],_0x4af2b9[_0x2b635d(0x10c)]]['join']('\x20')[_0x2b635d(0xe2)]()[_0x2b635d(0xd4)](_0xeff698);})[_0x2a438f(0xdb)](entrySummary);}function a1_0x2391(){const _0x4e7772=['whenToUse','detail','tableData\x20contains\x20records','bf_execute','length','{\x22id\x22:123}','/api/{appCode}/{datasetCode}/getOne','Filter\x20dataset\x20data','已经从用户、平台\x20UI\x20或前序上下文确认函数名,需要查看该\x20ENDPOINT\x20的运行态元信息时使用','Create\x20dataset\x20record','/api/dataset/get-dataset-list-by-app-code','查询单条数据','Get\x20one\x20dataset\x20record','functionName','/api/{appCode}/{datasetCode}/filter','appCode','32-character\x20dataset\x20code','title','where\x20filters\x20before\x20aggregation','##\x20Aggregate\x20dataset\x20data','For\x20the\x20next\x20page,\x20keep\x20where/select/orderBy/pageSize\x20unchanged\x20and\x20increment\x20only\x20currentPage,\x20which\x20starts\x20at\x201.','执行指定\x20BF\x20函数','Returns\x20script\x20business\x20payload','1068wIkmmf','List\x20datasets','POST','API\x20doc\x20code\x20not\x20found:\x20','已经确认目标\x20sqlCode\x20存在,并需要实际执行该自定义\x20SQL\x20时使用','##\x20List\x20datasets','keyword','This\x20is\x20a\x20write\x20operation;\x20use\x20dry-run\x20when\x20available\x20and\x20safe\x20fixtures\x20for\x20smoke\x20tests.','lovrabet\x20data\x20create\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22name\x22:\x22demo\x22}\x27','需要按\x20groupBy\x20分组并做\x20count、sum、avg、max、min\x20等聚合统计时使用','{\x22appCode\x22:\x22app-aa63b188\x22,\x22currentPage\x22:1,\x22pageSize\x22:100}','Exact\x20endpoint\x20function\x20name','List\x20available\x20runtime\x20API\x20documentation\x20entries','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','lovrabet\x20bff\x20exec\x20--name\x20<functionName>\x20--params\x20\x27{}\x27','/api/{appCode}/{datasetCode}/aggregate','8AFjHfF','code','/api/endpoint/{appCode}/{functionName}','14938CGNJUw','11885mPviFQ','Use\x20read-only\x20data\x20commands\x20before\x20writing\x20Artifacts\x20that\x20display\x20real\x20data.','/api/{appCode}/{datasetCode}/create','聚合查询数据集数据','read','按应用和函数名精确获取\x20BF\x20运行契约','已经知道记录\x20id,需要按数据集读取单条业务数据时使用','dataset_list','创建数据','Aggregate\x20supports\x20COUNT,\x20SUM,\x20AVG,\x20MAX,\x20and\x20MIN\x20definitions\x20in\x20the\x20`aggregate`\x20array.','需要按\x20appCode\x20分页获取运行态数据集列表,并优先收敛可用\x20datasetCode\x20时使用','##\x20Create\x20dataset\x20record\x0a\x0aCreate\x20one\x20data\x20record\x20in\x20a\x20dataset.','Endpoint\x20function\x20name','where,\x20select,\x20orderBy,\x20currentPage,\x20and\x20pageSize\x20belong\x20inside\x20one\x20--params\x20JSON\x20object;\x20they\x20are\x20not\x20standalone\x20CLI\x20flags.','relations\x20contains\x20the\x20object-shaped\x20API\x20relations\x20value\x20when\x20returned','Aggregate\x20dataset\x20data','969470CHRIHX','Use\x20`where`,\x20`select`,\x20`orderBy`,\x20`currentPage`,\x20and\x20`pageSize`\x20to\x20inspect\x20live\x20data\x20shape.','{\x22aggregate\x22:[{\x22column\x22:\x20\x22id\x22,\x22type\x22:\x22COUNT\x22,\x22alias\x22:\x22cnt\x22}],\x22groupBy\x22:[]}','path','Script\x20behavior\x20may\x20have\x20side\x20effects;\x20inspect\x20detail\x20first.','{\x22where\x22:{},\x22currentPage\x22:1,\x22pageSize\x22:20}','/api/dataset/getOneByCode?code={datasetCode}','join','Execute\x20custom\x20SQL','##\x20Dataset\x20detail','find','GET','需要携带\x20where、orderBy、分页等条件读取业务数据时使用','dataset_data_filter','summary','paging\x20contains\x20pagination','2235474VajJtB','method','6wKlEcQ','执行自定义\x20SQL','lovrabet\x20sql\x20exec\x20--sqlcode\x20<sqlCode>\x20--params\x20\x27{}\x27','Use\x20`having`\x20only\x20for\x20post-aggregation\x20filters.','Dataset\x20detail','If\x20SDK\x20usage\x20is\x20needed,\x20follow\x20with\x20`lovrabet\x20dataset\x20sdk-doc\x20--code\x20<datasetCode>`.','includes','trim','Show\x20runtime\x20API\x20documentation\x20by\x20code','fields/properties\x20describe\x20data\x20shape','dataset_data_get_one','/api/custom/executeSql','{\x22appCode\x22:\x22app-aa63b188\x22,\x22sqlCode\x22:\x22xxxxxxxx-xxxxxxxx\x22,\x22params\x22:{}}','map','1605989iWpUrX','39147EaBkus','category','Returns\x20one\x20matching\x20business\x20record','需要向指定数据集新增一条业务数据时使用','This\x20is\x20an\x20exact\x20lookup\x20by\x20appCode\x20+\x20functionName.\x20The\x20CLI\x20does\x20not\x20enumerate\x20BFF\x20functions\x20or\x20expose\x20platform-only\x20fields.','toLowerCase','lovrabet\x20data\x20getOne\x20--code\x20<datasetCode>\x20--params\x20\x27{\x22id\x22:123}\x27','获取数据集详情','Returns\x20the\x20created\x20record\x20or\x20backend\x20operation\x20result','##\x20Filter\x20dataset\x20data','tableData\x20contains\x20dataset\x20id/code/name','/client/bff/endpoint/{appCode}/{functionName}','##\x20Execute\x20BF\x20endpoint\x20function\x0a\x0aExecute\x20a\x20known\x20endpoint\x20script.','Current\x20app\x20code','Filter\x20docs\x20by\x20category,\x20for\x20example\x20dataset','258DJxSus','str','datasetCode','##\x20Execute\x20custom\x20SQL\x0a\x0aExecute\x20a\x20configured\x20SQL\x20script\x20by\x20sqlCode.','需要按数据集\x20code\x20获取字段、表信息、关联关系(relations)或操作定义时使用','custom_sql','dataset_data_aggregate','dataset','8bAuovw','bf_detail','369496bUUgmq','API\x20doc\x20code,\x20for\x20example\x20dataset_list','Prefer\x20`filter`\x20when\x20the\x20record\x20id\x20is\x20unknown.','{\x22fieldName\x22:\x22value\x22}','Inspect\x20field\x20names,\x20relations,\x20and\x20operation\x20metadata\x20for\x20a\x20known\x20dataset\x20code.'];a1_0x2391=function(){return _0x4e7772;};return a1_0x2391();}export function getApiDocDetail(_0x450b5a){const _0x1cdc71=a1_0x20374b,_0x47fe74=DOCS[_0x1cdc71(0xc6)](_0x15768a=>_0x15768a[_0x1cdc71(0xa9)]===_0x450b5a);if(!_0x47fe74)throw CliErrors['validation'](_0x1cdc71(0x9b)+_0x450b5a);return{..._0x47fe74};}const apiDocList={'service':'api-doc','command':'list','description':a1_0x20374b(0xa4),'risk':a1_0x20374b(0xb0),'requiresAppCode':![],'flags':[CATEGORY_FLAG,KEYWORD_FLAG],async 'execute'(_0x2c8507){const _0x33240c=a1_0x20374b,_0x3123d2=listApiDocEntries({'category':_0x2c8507['str'](_0x33240c(0xde)),'keyword':_0x2c8507[_0x33240c(0xed)](_0x33240c(0x9e))});return{'ok':!![],'data':{'total':_0x3123d2[_0x33240c(0xff)],'items':_0x3123d2}};}},apiDocDetail={'service':'api-doc','command':a1_0x20374b(0xfc),'description':a1_0x20374b(0xd6),'risk':a1_0x20374b(0xb0),'requiresAppCode':![],'flags':[DOC_CODE_FLAG],async 'execute'(_0x3a01cc){const _0x1a3adc=a1_0x20374b;return{'ok':!![],'data':getApiDocDetail(_0x3a01cc[_0x1a3adc(0xed)]('code'))};}};export const apiDocDefinitions=[apiDocList,apiDocDetail];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x3a4c20,_0x142841){const _0x1d98a5=a2_0x552e,_0x4748b9=_0x3a4c20();while(!![]){try{const _0x1f7f17=parseInt(_0x1d98a5(0xc2))/0x1+-parseInt(_0x1d98a5(0xb8))/0x2+parseInt(_0x1d98a5(0xa7))/0x3+parseInt(_0x1d98a5(0xbd))/0x4*(-parseInt(_0x1d98a5(0xbc))/0x5)+-parseInt(_0x1d98a5(0xa9))/0x6+-parseInt(_0x1d98a5(0xc1))/0x7*(-parseInt(_0x1d98a5(0xad))/0x8)+parseInt(_0x1d98a5(0xb4))/0x9*(parseInt(_0x1d98a5(0xb2))/0xa);if(_0x1f7f17===_0x142841)break;else _0x4748b9['push'](_0x4748b9['shift']());}catch(_0xc97a6){_0x4748b9['push'](_0x4748b9['shift']());}}}(a2_0x17b0,0xab2c1));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{PRODUCT_CONFIG}from'../../constant/product.js';import{isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';export function fingerprintAccessKey(_0x16bdd9){const _0x39017e=a2_0x552e,_0x29a1e7=_0x16bdd9[_0x39017e(0xb6)](),_0x3e6c08=_0x29a1e7['slice'](-0x6)||_0x39017e(0xb1),_0x53332f=createHash('sha256')[_0x39017e(0xba)](_0x29a1e7)[_0x39017e(0xc0)](_0x39017e(0xbb))[_0x39017e(0xb3)](0x0,0xc);return _0x39017e(0xb5)+_0x3e6c08+'_'+_0x53332f;}export function getAppCacheFilePath(_0x40c1d2,_0x3559ea){const _0x5533ae=a2_0x552e;return resolve(homedir(),PRODUCT_CONFIG[_0x5533ae(0xb9)],'cache',_0x40c1d2,fingerprintAccessKey(_0x3559ea),_0x5533ae(0xaf));}export function readCachedAppList(_0x51e53c,_0x19f799){const _0x238450=a2_0x552e;if(!_0x19f799?.['trim']())return null;const _0x3287db=getAppCacheFilePath(_0x51e53c,_0x19f799);if(!existsSync(_0x3287db))return null;try{const _0x26ee0a=readFileSync(_0x3287db,_0x238450(0xbf));if(!_0x26ee0a[_0x238450(0xb6)]())return null;const _0x3758be=JSON[_0x238450(0xbe)](_0x26ee0a);if(!Array[_0x238450(0xab)](_0x3758be[_0x238450(0xb7)]))return null;return _0x3758be;}catch{return null;}}export function writeCachedAppList(_0x1b5219,_0x3bcb4e,_0x4dc149){const _0x4b0add=a2_0x552e,_0x2634ea=getAppCacheFilePath(_0x1b5219,_0x3bcb4e),_0x16df68=dirname(_0x2634ea);!existsSync(_0x16df68)&&mkdirSync(_0x16df68,{'recursive':!![]});const _0x310d4a=_0x2634ea+_0x4b0add(0xae);try{writeFileSync(_0x310d4a,JSON[_0x4b0add(0xb0)](_0x4dc149,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180});try{renameSync(_0x310d4a,_0x2634ea);}catch(_0x4c5ff3){if(_0x4c5ff3['code']==='EPERM'||_0x4c5ff3[_0x4b0add(0xaa)]==='EXDEV'||_0x4c5ff3[_0x4b0add(0xaa)]===_0x4b0add(0xa8)){writeFileSync(_0x2634ea,JSON[_0x4b0add(0xb0)](_0x4dc149,null,0x2)+'\x0a',{'encoding':'utf8'});try{unlinkSync(_0x310d4a);}catch{}}else throw _0x4c5ff3;}}catch(_0x112810){try{unlinkSync(_0x310d4a);}catch{}throw _0x112810;}return _0x2634ea;}function a2_0x552e(_0x711263,_0x2135ce){_0x711263=_0x711263-0xa7;const _0x17b0de=a2_0x17b0();let _0x552e26=_0x17b0de[_0x711263];return _0x552e26;}function a2_0x17b0(){const _0x17e2ae=['EACCES','2412486lqPgWK','code','isArray','appName','480yrhqiR','.tmp','my-apps.json','stringify','unknown','20qXcwGZ','slice','2346417CGWeix','ak_','trim','items','1652424bXhQVl','homeDirName','update','hex','65530EMyKJx','304yMbwuh','parse','utf8','digest','163555ovKHZG','172181OaBSBR','2489889EedOue'];a2_0x17b0=function(){return _0x17e2ae;};return a2_0x17b0();}export function resolveCachedAppCode(_0xb70b39,_0x5b0559,_0x425936){const _0xb42d01=a2_0x552e;if(!_0xb70b39)return undefined;const _0x42911e=readCachedAppList(_0x5b0559,_0x425936),_0x5511bf=_0x42911e?.[_0xb42d01(0xb7)]['find'](_0x2ecf8a=>_0x2ecf8a[_0xb42d01(0xac)]===_0xb70b39&&isRuntimeAccessibleApp(_0x2ecf8a));return _0x5511bf?.['appCode']?.[_0xb42d01(0xb6)]()||undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x4fe01d=a3_0x25d2;(function(_0x534676,_0x40bae8){const _0x453a49=a3_0x25d2,_0x464b4b=_0x534676();while(!![]){try{const _0x102e5c=parseInt(_0x453a49(0x124))/0x1+parseInt(_0x453a49(0x127))/0x2*(parseInt(_0x453a49(0x10c))/0x3)+-parseInt(_0x453a49(0x13f))/0x4+-parseInt(_0x453a49(0x13d))/0x5*(parseInt(_0x453a49(0x114))/0x6)+-parseInt(_0x453a49(0x144))/0x7*(parseInt(_0x453a49(0x118))/0x8)+-parseInt(_0x453a49(0x104))/0x9+-parseInt(_0x453a49(0x129))/0xa*(-parseInt(_0x453a49(0x105))/0xb);if(_0x102e5c===_0x40bae8)break;else _0x464b4b['push'](_0x464b4b['shift']());}catch(_0x2f4c61){_0x464b4b['push'](_0x464b4b['shift']());}}}(a3_0x4e56,0x2daaf));import{appImportFlagDefs,runAppImport}from'../../commands/init.js';import{getEnv,RUNTIME_ENV_VALUES}from'../../constant/env.js';import{buildAppProfileListFields}from'../../config/schema.js';import{enrichAppListItemsWithMergedSelection}from'../../commands/app/shared.js';import{filterRuntimeAccessibleApps,findAppByCode,isRuntimeAccessibleApp}from'../../commands/app/eligibility.js';function collectFlags(_0x3a8f3d,_0x44ebd6){const _0x2e84d4=a3_0x25d2,_0x5435aa={};for(const _0x1edcde of _0x44ebd6){const _0x49185e=_0x1edcde['type']===_0x2e84d4(0x12d)?_0x3a8f3d[_0x2e84d4(0x11c)](_0x1edcde[_0x2e84d4(0x11d)]):_0x3a8f3d[_0x2e84d4(0x137)](_0x1edcde[_0x2e84d4(0x11d)]);if(_0x49185e!==''&&_0x49185e!==![])_0x5435aa[_0x1edcde[_0x2e84d4(0x11d)]]=_0x49185e;}if(_0x3a8f3d['nonInteractive'])_0x5435aa[_0x2e84d4(0x13b)]=!![];return _0x5435aa;}function normalizeLanguages(_0x1681ce){const _0x2e6386=a3_0x25d2;if(!Array['isArray'](_0x1681ce))return[];return _0x1681ce[_0x2e6386(0x115)](_0x204826=>typeof _0x204826===_0x2e6386(0x140))[_0x2e6386(0x125)](_0x10ab5d=>_0x10ab5d[_0x2e6386(0x11a)]())[_0x2e6386(0x115)](Boolean);}function a3_0x4e56(){const _0x431668=['Read\x20app\x20list\x20from\x20local\x20cache\x20only','810770xjHsHG','source','478552YTCZaW','string','No\x20cached\x20apps\x20found.','langs','entries','14vTMgIe','app','cache','local','1616445DuBKhd','319OJGIqg','appName','将读取指定的\x20.rabetbase.json,并把其中可用的默认应用设置导入本地\x20.lovrabet.json;同名配置可能被更新。','Refreshed\x20app\x20cache\x20with\x20','production','将从平台读取当前账号可用的应用列表,并覆盖对应环境的本地应用缓存;不会修改平台应用。','从\x20.rabetbase.json\x20文件导入默认应用选择','23919gtaiVi','i18nInfo','../../context.js','Loaded\x20','Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','\x20cached\x20app(s)\x20for\x20env=\x22','appCode','mergedCli','12IEgkdK','filter','remote','list','674832MOqSmb','accessKey','trim','length','bool','name','push','List\x20apps\x20available\x20to\x20the\x20current\x20access\x20key','globalPath','write','fetchedAt','从平台刷新本地应用缓存','34569qyXEhH','map','import','46SjjqiM','no-cache','262540cySQTl','No\x20apps\x20found\x20on\x20the\x20platform.','envName','Read\x20from\x20local\x20cache\x20only','boolean','env','Filter\x20by\x20environment\x20(default:\x20current\x20env)','projectPath','items','\x20app(s)\x20for\x20env=\x22','find','enableI18n','appcode','appOwnerName','str','../../commands/app/remote-source.js','include-unpublished','cachePath','nonInteractive'];a3_0x4e56=function(){return _0x431668;};return a3_0x4e56();}function a3_0x25d2(_0x5f15b4,_0x47ac0b){_0x5f15b4=_0x5f15b4-0x104;const _0x4e567b=a3_0x4e56();let _0x25d25a=_0x4e567b[_0x5f15b4];return _0x25d25a;}function buildRemoteAppI18nFields(_0x3fb908){const _0x1d1985=a3_0x25d2,_0x1e3a3d=normalizeLanguages(_0x3fb908[_0x1d1985(0x10d)]?.[_0x1d1985(0x142)]);return{'enableI18n':typeof _0x3fb908[_0x1d1985(0x134)]===_0x1d1985(0x12d)?_0x3fb908[_0x1d1985(0x134)]:null,'languages':_0x1e3a3d,'i18nInfo':_0x3fb908[_0x1d1985(0x10d)]?{..._0x3fb908[_0x1d1985(0x10d)],'langs':_0x1e3a3d['length']?_0x1e3a3d:null}:null};}const listDef={'service':'app','command':a3_0x4fe01d(0x117),'description':a3_0x4fe01d(0x11f),'risk':'read','requiresAuth':!![],'requiresAppCode':![],'hasFormat':!![],'flags':[{'name':a3_0x4fe01d(0x12e),'type':a3_0x4fe01d(0x140),'description':a3_0x4fe01d(0x12f),'enum':[...RUNTIME_ENV_VALUES]},{'name':a3_0x4fe01d(0x147),'type':a3_0x4fe01d(0x12d),'description':a3_0x4fe01d(0x13c),'default':![]},{'name':a3_0x4fe01d(0x128),'type':a3_0x4fe01d(0x12d),'description':'Force\x20remote\x20fetch\x20and\x20refresh\x20local\x20cache','default':![]},{'name':a3_0x4fe01d(0x139),'type':'boolean','description':'Include\x20unpublished\x20apps\x20for\x20diagnostics','default':![]}],async 'execute'(_0x51e283){const _0x2fa8c9=a3_0x4fe01d,_0x1d7169=_0x51e283[_0x2fa8c9(0x137)]('env')||_0x51e283[_0x2fa8c9(0x12b)]||getEnv()||'production',_0x3af91b=_0x51e283[_0x2fa8c9(0x11c)](_0x2fa8c9(0x147)),_0x4e7a43=_0x51e283['bool'](_0x2fa8c9(0x128)),_0x161c77=_0x51e283[_0x2fa8c9(0x11c)](_0x2fa8c9(0x139)),{readRawConfigWithLayers:_0x360741,resolveDefaultAppSource:_0xc95005,getLocalAppAliases:_0x42f3c0}=await import(_0x2fa8c9(0x10e)),{getRemoteAppList:_0xfa9e0f}=await import('../../commands/app/remote-source.js'),{config:_0x4a4e60,layers:_0x158358}=_0x360741(),_0x3e5678=_0xc95005(_0x158358),{defaultApp:_0x5b6508}=_0x4a4e60,_0x16598b=await _0xfa9e0f({'env':_0x1d7169,'accessKey':_0x51e283[_0x2fa8c9(0x119)],'localOnly':_0x3af91b,'noCache':_0x4e7a43}),_0x251f69=_0x161c77?_0x16598b['items']:filterRuntimeAccessibleApps(_0x16598b[_0x2fa8c9(0x131)]),_0x306ec1=_0x16598b[_0x2fa8c9(0x131)]['length']-_0x251f69[_0x2fa8c9(0x11b)],_0x2fd999=_0x251f69[_0x2fa8c9(0x125)](_0x2ae104=>{const _0x264425=_0x2fa8c9;return{'name':_0x2ae104[_0x264425(0x106)],'appcode':_0x2ae104[_0x264425(0x112)],'named':!![],'definedIn':_0x264425(0x116),'isDefault':_0x2ae104['appName']===_0x5b6508,...buildAppProfileListFields(_0x1d7169),...buildRemoteAppI18nFields(_0x2ae104),'source':_0x16598b['source'],'owner':_0x2ae104[_0x264425(0x136)]??null,'status':_0x2ae104['appPublishStatus']??null,'cachedAt':_0x16598b[_0x264425(0x122)]};}),_0x28e25a=_0x42f3c0(_0x4a4e60);let _0x10bb33=0x0;for(const [_0x97befc,_0x4225ff]of Object[_0x2fa8c9(0x143)](_0x28e25a)){const _0x367522=typeof _0x4225ff['appcode']===_0x2fa8c9(0x140)?_0x4225ff[_0x2fa8c9(0x135)][_0x2fa8c9(0x11a)]():'';if(!_0x367522)continue;const _0x3bffd7=findAppByCode(_0x16598b['items'],_0x367522);if(!_0x161c77&&_0x3bffd7&&!isRuntimeAccessibleApp(_0x3bffd7))continue;_0x10bb33+=0x1,_0x2fd999[_0x2fa8c9(0x11e)]({'name':_0x97befc,'appcode':_0x367522,'named':!![],'definedIn':'local','isDefault':_0x97befc===_0x5b6508,...buildAppProfileListFields(_0x1d7169),'source':'config','owner':null,'status':null,'cachedAt':null});}enrichAppListItemsWithMergedSelection(_0x2fd999,_0x51e283[_0x2fa8c9(0x113)]);const _0x103d28=_0x2fd999[_0x2fa8c9(0x133)](_0x44b072=>_0x44b072['isCurrent']===!![]),_0x5a2939=_0x5b6508??_0x103d28?.[_0x2fa8c9(0x11d)]??null,_0x4e314a={'env':_0x1d7169,'source':_0x16598b[_0x2fa8c9(0x13e)],'fetchedAt':_0x16598b[_0x2fa8c9(0x122)],'cachePath':_0x16598b[_0x2fa8c9(0x13a)],'globalPath':_0x158358[_0x2fa8c9(0x120)]??null,'projectPath':_0x158358[_0x2fa8c9(0x130)]??null,'defaultApp':_0x5a2939,'defaultAppSource':_0x5b6508!=null?_0x3e5678:null,'localAliasCount':_0x10bb33,'remoteTotal':_0x16598b[_0x2fa8c9(0x131)][_0x2fa8c9(0x11b)],'hiddenUnpublishedCount':_0x306ec1,'includeUnpublished':_0x161c77};if(_0x2fd999[_0x2fa8c9(0x11b)]===0x0)return{'ok':!![],'data':{'items':_0x2fd999,'meta':_0x4e314a},'message':_0x16598b[_0x2fa8c9(0x13e)]==='cache'?_0x2fa8c9(0x141):_0x2fa8c9(0x12a)};return{'ok':!![],'data':{'items':_0x2fd999,'meta':_0x4e314a}};}},pullDef={'service':'app','command':'pull','description':a3_0x4fe01d(0x123),'risk':'write','confirmationDescription':a3_0x4fe01d(0x10a),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'env','type':a3_0x4fe01d(0x140),'description':'Target\x20environment\x20(default:\x20current\x20env)','enum':[...RUNTIME_ENV_VALUES]},{'name':'local','type':a3_0x4fe01d(0x12d),'description':a3_0x4fe01d(0x12c),'default':![]},{'name':a3_0x4fe01d(0x128),'type':a3_0x4fe01d(0x12d),'description':a3_0x4fe01d(0x110),'default':![]}],async 'execute'(_0x428e11){const _0x15e7c1=a3_0x4fe01d,_0x4edc18=_0x428e11[_0x15e7c1(0x137)](_0x15e7c1(0x12e))||_0x428e11[_0x15e7c1(0x12b)]||getEnv()||_0x15e7c1(0x109),_0x50eff9=_0x428e11[_0x15e7c1(0x11c)](_0x15e7c1(0x147)),_0x46d74b=_0x428e11['bool'](_0x15e7c1(0x128)),{getRemoteAppList:_0x2f2c4c}=await import(_0x15e7c1(0x138)),_0x1976a5=await _0x2f2c4c({'env':_0x4edc18,'accessKey':_0x428e11[_0x15e7c1(0x119)],'localOnly':_0x50eff9,'noCache':_0x46d74b});return{'ok':!![],'data':{'total':_0x1976a5[_0x15e7c1(0x131)][_0x15e7c1(0x11b)],'env':_0x4edc18,'source':_0x1976a5[_0x15e7c1(0x13e)],'fetchedAt':_0x1976a5['fetchedAt'],'cachePath':_0x1976a5[_0x15e7c1(0x13a)]},'message':_0x1976a5[_0x15e7c1(0x13e)]===_0x15e7c1(0x146)?_0x15e7c1(0x10f)+_0x1976a5['items']['length']+_0x15e7c1(0x111)+_0x4edc18+'\x22.':_0x15e7c1(0x108)+_0x1976a5[_0x15e7c1(0x131)]['length']+_0x15e7c1(0x132)+_0x4edc18+'\x22.'};}},importDef={'service':a3_0x4fe01d(0x145),'command':a3_0x4fe01d(0x126),'description':a3_0x4fe01d(0x10b),'risk':a3_0x4fe01d(0x121),'confirmationDescription':a3_0x4fe01d(0x107),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':appImportFlagDefs,async 'execute'(_0x4b7886){return await runAppImport(collectFlags(_0x4b7886,appImportFlagDefs)),{'ok':!![]};}};export const appDefinitions=[listDef,pullDef,importDef];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x1ae462,_0x26275e){const _0x1cfc58=a4_0x2de9,_0x546789=_0x1ae462();while(!![]){try{const _0x4aadfb=-parseInt(_0x1cfc58(0x150))/0x1+parseInt(_0x1cfc58(0x151))/0x2+-parseInt(_0x1cfc58(0x14e))/0x3*(parseInt(_0x1cfc58(0x141))/0x4)+-parseInt(_0x1cfc58(0x14c))/0x5+-parseInt(_0x1cfc58(0x140))/0x6*(-parseInt(_0x1cfc58(0x146))/0x7)+parseInt(_0x1cfc58(0x153))/0x8+parseInt(_0x1cfc58(0x145))/0x9*(parseInt(_0x1cfc58(0x13c))/0xa);if(_0x4aadfb===_0x26275e)break;else _0x546789['push'](_0x546789['shift']());}catch(_0x56f1d6){_0x546789['push'](_0x546789['shift']());}}}(a4_0x10d2,0xbe683));import{CLI_BIN_NAME}from'../../constant/cli.js';import{RUNTIME_ACCESSIBLE_APP_STATUS}from'../../constant/app.js';import{CliErrors}from'../../errors.js';export function normalizeAppPublishStatus(_0x610739){const _0x4320a8=a4_0x2de9;if(typeof _0x610739!==_0x4320a8(0x13e))return null;const _0x5b8656=_0x610739[_0x4320a8(0x14b)]();return _0x5b8656?_0x5b8656[_0x4320a8(0x144)]():null;}export function isRuntimeAccessibleApp(_0x12c553){const _0x4977a0=a4_0x2de9;return normalizeAppPublishStatus(_0x12c553[_0x4977a0(0x147)])===RUNTIME_ACCESSIBLE_APP_STATUS;}export function filterRuntimeAccessibleApps(_0x3da86e){const _0x2d42c1=a4_0x2de9;return _0x3da86e[_0x2d42c1(0x14a)](isRuntimeAccessibleApp);}function a4_0x2de9(_0x28c106,_0x1a182f){_0x28c106=_0x28c106-0x13c;const _0x10d251=a4_0x10d2();let _0x2de9fe=_0x10d251[_0x28c106];return _0x2de9fe;}function a4_0x10d2(){const _0x23c27e=['\x20dataset/data/sql/bff\x20commands,\x20or\x20choose\x20a\x20published\x20app.','327174Whuiqf','68XKWXuj','find','Current\x20status:\x20','toUpperCase','117sajwyq','140mXgYDN','appPublishStatus','validation','.\x20Publish\x20the\x20app\x20before\x20using\x20','filter','trim','4259615UbQYym','appCode','212637QnNgQN','UNKNOWN','261210PMcsAW','928162YCaKml','appName','8525928PBWSih','367370LRBuuY','App\x20','string'];a4_0x10d2=function(){return _0x23c27e;};return a4_0x10d2();}export function findAppByName(_0xa245de,_0x44bb7e){const _0x1cdd1e=a4_0x2de9;return _0xa245de['find'](_0x2d7fdb=>_0x2d7fdb[_0x1cdd1e(0x152)]===_0x44bb7e);}export function findAppByCode(_0x3ff69a,_0x1ace56){const _0x380bf9=a4_0x2de9,_0x39bc4f=_0x1ace56[_0x380bf9(0x14b)]();if(!_0x39bc4f)return undefined;return _0x3ff69a[_0x380bf9(0x142)](_0x965e80=>_0x965e80[_0x380bf9(0x14d)]?.[_0x380bf9(0x14b)]()===_0x39bc4f);}export function runtimeInaccessibleAppError(_0x299dce,_0x477173){const _0x471cd7=a4_0x2de9,_0x21d810=normalizeAppPublishStatus(_0x299dce[_0x471cd7(0x147)])??_0x471cd7(0x14f);return CliErrors[_0x471cd7(0x148)](_0x471cd7(0x13d)+_0x477173+'\x20is\x20not\x20available\x20for\x20runtime\x20AI\x20access.',_0x471cd7(0x143)+_0x21d810+_0x471cd7(0x149)+CLI_BIN_NAME+_0x471cd7(0x13f));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x18ae10,_0x295c90){const _0x25104b=a5_0x2aee,_0x2fb6f0=_0x18ae10();while(!![]){try{const _0x55f776=parseInt(_0x25104b(0xcf))/0x1+parseInt(_0x25104b(0xca))/0x2+parseInt(_0x25104b(0xcb))/0x3*(-parseInt(_0x25104b(0xce))/0x4)+parseInt(_0x25104b(0xc3))/0x5*(parseInt(_0x25104b(0xc6))/0x6)+parseInt(_0x25104b(0xcc))/0x7*(parseInt(_0x25104b(0xc2))/0x8)+parseInt(_0x25104b(0xd5))/0x9*(-parseInt(_0x25104b(0xd0))/0xa)+parseInt(_0x25104b(0xd3))/0xb*(-parseInt(_0x25104b(0xc7))/0xc);if(_0x55f776===_0x295c90)break;else _0x2fb6f0['push'](_0x2fb6f0['shift']());}catch(_0x4d9059){_0x2fb6f0['push'](_0x2fb6f0['shift']());}}}(a5_0xf108,0x38125));import{fileURLToPath}from'url';import{dirname,join}from'path';import{readFileSync}from'fs';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a5_0xf108(){const _0x5d7235=['utf-8','808196riOuKk','3wGUWYt','1879073WKzViP','success','562008wTUtWk','362773NZMibc','16830BlpsNd','errorCode','tableData','25509Xwmodw','parse','207xncefB','8OVKJjG','196815SsiOiy','errorMsg','../../../mock/app-list.json','30sDBsnF','4260YbzCSI','data'];a5_0xf108=function(){return _0x5d7235;};return a5_0xf108();}function loadMockAppList(){const _0x3f73c5=a5_0x2aee,_0x3d4152=join(__dirname,_0x3f73c5(0xc5)),_0x37868c=readFileSync(_0x3d4152,_0x3f73c5(0xc9));return JSON[_0x3f73c5(0xd4)](_0x37868c);}let _cached=null;function a5_0x2aee(_0x168425,_0x3b96af){_0x168425=_0x168425-0xc2;const _0xf1083e=a5_0xf108();let _0x2aeec7=_0xf1083e[_0x168425];return _0x2aeec7;}export function getMockAppList(){return!_cached&&(_cached=loadMockAppList()),_cached;}export function getMockRemoteAppItems(){const _0x2c7767=a5_0x2aee,_0x72211a=getMockAppList();if(!_0x72211a[_0x2c7767(0xcd)])throw new Error('Mock\x20API\x20error:\x20'+_0x72211a[_0x2c7767(0xc4)]+'\x20('+_0x72211a[_0x2c7767(0xd1)]+')');return _0x72211a[_0x2c7767(0xc8)][_0x2c7767(0xd2)];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a6_0x152b(){const _0x562114=['1052882zJdNDm','1655296jFSjal','trim','31527470UwEYwM','2393391stMgPM','2415648xSeWFO','9CtxVdt','7KKKeEl','8aNQDlS','cache','items','toISOString','mock','1024584wgJadg','fetchedAt','1537115KqBmWP','toLowerCase'];a6_0x152b=function(){return _0x562114;};return a6_0x152b();}(function(_0x56a5bb,_0x524125){const _0x8d042d=a6_0x13e5,_0x85060c=_0x56a5bb();while(!![]){try{const _0x55399e=-parseInt(_0x8d042d(0x124))/0x1+-parseInt(_0x8d042d(0x125))/0x2+-parseInt(_0x8d042d(0x128))/0x3+-parseInt(_0x8d042d(0x12c))/0x4*(-parseInt(_0x8d042d(0x133))/0x5)+-parseInt(_0x8d042d(0x129))/0x6+-parseInt(_0x8d042d(0x12b))/0x7*(parseInt(_0x8d042d(0x131))/0x8)+-parseInt(_0x8d042d(0x12a))/0x9*(-parseInt(_0x8d042d(0x127))/0xa);if(_0x55399e===_0x524125)break;else _0x85060c['push'](_0x85060c['shift']());}catch(_0x35b3d7){_0x85060c['push'](_0x85060c['shift']());}}}(a6_0x152b,0x885f9));import{getMyApps}from'../../core/api-client.js';import{getMockRemoteAppItems}from'../../commands/app/mock-loader.js';import{getAppCacheFilePath,readCachedAppList,writeCachedAppList}from'../../commands/app/cache.js';import{productEnv}from'../../constant/product.js';export function shouldUseMockRemoteApps(){const _0x40796a=a6_0x13e5,_0x5f0c6a=(productEnv('APP_LIST_SOURCE')||'')[_0x40796a(0x126)]()[_0x40796a(0x134)]();return _0x5f0c6a===_0x40796a(0x130);}export async function getRemoteAppItems(){if(shouldUseMockRemoteApps())return getMockRemoteAppItems();return getMyApps();}function a6_0x13e5(_0x104bcf,_0x54af47){_0x104bcf=_0x104bcf-0x124;const _0x152bb6=a6_0x152b();let _0x13e53b=_0x152bb6[_0x104bcf];return _0x13e53b;}export async function getRemoteAppList(_0x3f9ea0){const _0x1f840d=a6_0x13e5,{env:_0x572863,accessKey:_0x10c309,localOnly:localOnly=![],noCache:noCache=![]}=_0x3f9ea0,_0x218dd4=readCachedAppList(_0x572863,_0x10c309),_0x7b2c5a=_0x10c309?.['trim']()?getAppCacheFilePath(_0x572863,_0x10c309):null;if(localOnly)return{'items':_0x218dd4?.['items']??[],'source':_0x1f840d(0x12d),'fetchedAt':_0x218dd4?.[_0x1f840d(0x132)]??null,'cachePath':_0x7b2c5a};try{const _0x2a42b5=await getRemoteAppItems(),_0x3bd372=shouldUseMockRemoteApps()?_0x1f840d(0x130):'remote',_0x1f1629=new Date()[_0x1f840d(0x12f)](),_0x39cbb0=_0x10c309?.[_0x1f840d(0x126)]()?writeCachedAppList(_0x572863,_0x10c309,{'env':_0x572863,'fetchedAt':_0x1f1629,'source':_0x3bd372,'items':_0x2a42b5}):null;return{'items':_0x2a42b5,'source':_0x3bd372,'fetchedAt':_0x1f1629,'cachePath':_0x39cbb0};}catch(_0x5cb283){if(!noCache&&_0x218dd4)return{'items':_0x218dd4[_0x1f840d(0x12e)],'source':_0x1f840d(0x12d),'fetchedAt':_0x218dd4['fetchedAt'],'cachePath':_0x7b2c5a};throw _0x5cb283;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a7_0x1252(_0x736397,_0x2347fb){_0x736397=_0x736397-0x8c;const _0x55b5d4=a7_0x55b5();let _0x1252c2=_0x55b5d4[_0x736397];return _0x1252c2;}function a7_0x55b5(){const _0xcb2c62=['3FrkcSi','defaultApp','named','isCurrent','454786pwmrVV','appCode','name','12PIYzxY','find','1536992UGFbQY','local','definedIn','687267ixpxNA','10zjszzp','9518000NpOzko','72fifRon','12WweQFf','appcode','trim','1289155EWGeSJ','1773431daTWUY','693735ftNEvD'];a7_0x55b5=function(){return _0xcb2c62;};return a7_0x55b5();}(function(_0x41461f,_0x42d3cf){const _0x1fb744=a7_0x1252,_0xc3442b=_0x41461f();while(!![]){try{const _0x32a9f3=-parseInt(_0x1fb744(0x9c))/0x1+-parseInt(_0x1fb744(0x97))/0x2*(parseInt(_0x1fb744(0x93))/0x3)+-parseInt(_0x1fb744(0x9a))/0x4*(-parseInt(_0x1fb744(0x90))/0x5)+parseInt(_0x1fb744(0x8d))/0x6*(-parseInt(_0x1fb744(0x92))/0x7)+parseInt(_0x1fb744(0xa1))/0x8+-parseInt(_0x1fb744(0x9f))/0x9*(parseInt(_0x1fb744(0xa0))/0xa)+-parseInt(_0x1fb744(0x91))/0xb*(-parseInt(_0x1fb744(0x8c))/0xc);if(_0x32a9f3===_0x42d3cf)break;else _0xc3442b['push'](_0xc3442b['shift']());}catch(_0x111948){_0xc3442b['push'](_0xc3442b['shift']());}}}(a7_0x55b5,0xd9adb));export function enrichAppListItemsWithMergedSelection(_0x49c1d7,_0x446e59){const _0x26f734=a7_0x1252;if(!_0x446e59)return;const _0x544fa7=!!(_0x446e59['currentApp']??_0x446e59[_0x26f734(0x94)]);for(const _0x42a831 of _0x49c1d7){_0x42a831[_0x26f734(0x96)]=![];}const _0x1a85c6=_0x446e59[_0x26f734(0x98)]!=null?String(_0x446e59['appCode'])['trim']():'';if(_0x544fa7){const _0x4e4129=_0x446e59['currentApp']??_0x446e59[_0x26f734(0x94)];if(_0x4e4129){const _0x21d682=_0x49c1d7[_0x26f734(0x9b)](_0x4208e0=>_0x4208e0[_0x26f734(0x95)]===!![]&&_0x4208e0[_0x26f734(0x99)]===_0x4e4129&&_0x4208e0[_0x26f734(0x9e)]===_0x26f734(0x9d)),_0x570d79=_0x21d682??_0x49c1d7[_0x26f734(0x9b)](_0x52c350=>_0x52c350['named']===!![]&&_0x52c350[_0x26f734(0x99)]===_0x4e4129);if(_0x570d79){const _0xfd6112=String(_0x570d79['appcode']??'')[_0x26f734(0x8f)]();if(!_0x1a85c6||_0xfd6112===_0x1a85c6){_0x570d79[_0x26f734(0x96)]=!![];return;}}}if(_0x1a85c6){const _0x2f30d0=_0x49c1d7[_0x26f734(0x9b)](_0x14c7c2=>String(_0x14c7c2[_0x26f734(0x8e)]??'')[_0x26f734(0x8f)]()===_0x1a85c6);_0x2f30d0&&(_0x2f30d0['isCurrent']=!![]);}return;}if(!_0x1a85c6)return;for(const _0xdd606 of _0x49c1d7){String(_0xdd606[_0x26f734(0x8e)]??'')[_0x26f734(0x8f)]()===_0x1a85c6&&(_0xdd606['isCurrent']=!![]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a8_0x5dbb9b=a8_0x5ed8;function a8_0x5ed8(_0x2110b4,_0x52dea0){_0x2110b4=_0x2110b4-0x162;const _0x1301e9=a8_0x1301();let _0x5ed8a7=_0x1301e9[_0x2110b4];return _0x5ed8a7;}(function(_0x57ebee,_0x400667){const _0x3bc54a=a8_0x5ed8,_0x445148=_0x57ebee();while(!![]){try{const _0x2114e2=-parseInt(_0x3bc54a(0x168))/0x1+parseInt(_0x3bc54a(0x179))/0x2*(-parseInt(_0x3bc54a(0x177))/0x3)+parseInt(_0x3bc54a(0x162))/0x4*(-parseInt(_0x3bc54a(0x16d))/0x5)+parseInt(_0x3bc54a(0x16b))/0x6+-parseInt(_0x3bc54a(0x166))/0x7*(parseInt(_0x3bc54a(0x16e))/0x8)+parseInt(_0x3bc54a(0x16c))/0x9*(-parseInt(_0x3bc54a(0x16f))/0xa)+parseInt(_0x3bc54a(0x17a))/0xb;if(_0x2114e2===_0x400667)break;else _0x445148['push'](_0x445148['shift']());}catch(_0xd0ba2b){_0x445148['push'](_0x445148['shift']());}}}(a8_0x1301,0x3aa3d));import{getRuntimeAppConfigByKey}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a8_0x1301(){const _0x5955fd=['Get\x20one\x20runtime\x20app-config\x20value\x20by\x20key','read',',\x20appCode=','appCode','\x20app-config\x20get\x20<key>','app-config','App\x20config\x20key','3HaEpKI','get','596914XeexQH','12328888evYRii','40pYmshB','Usage:\x20','trim','Missing\x20app-config\x20key.','166159LoFJhv','args','167390DkcTAR','apiError','Unable\x20to\x20get\x20app-config\x20value:\x20key=','1135026LxQPGx','157509NUZqzK','222010kZNCnc','48XkHJaA','10shtikA'];a8_0x1301=function(){return _0x5955fd;};return a8_0x1301();}import{CLI_BIN_NAME}from'../../constant/cli.js';export const appConfigGet={'service':a8_0x5dbb9b(0x175),'command':a8_0x5dbb9b(0x178),'description':a8_0x5dbb9b(0x170),'risk':a8_0x5dbb9b(0x171),'args':[{'name':'key','description':a8_0x5dbb9b(0x176),'required':!![]}],'flags':[],async 'execute'(_0xa71f6e){const _0x47631d=a8_0x5dbb9b,_0x508fd9=_0xa71f6e[_0x47631d(0x167)][0x0]?.[_0x47631d(0x164)]();if(!_0x508fd9)throw CliErrors['validation'](_0x47631d(0x165),_0x47631d(0x163)+CLI_BIN_NAME+_0x47631d(0x174));try{const _0x5c0fd8=await getRuntimeAppConfigByKey(_0xa71f6e[_0x47631d(0x173)],_0x508fd9);return{'ok':!![],'data':_0x5c0fd8};}catch{throw CliErrors[_0x47631d(0x169)](_0x47631d(0x16a)+_0x508fd9+_0x47631d(0x172)+_0xa71f6e[_0x47631d(0x173)],'Check\x20that\x20the\x20key\x20exists,\x20the\x20current\x20AccessKey\x20has\x20permission,\x20and\x20the\x20runtime\x20app-config\x20endpoint\x20is\x20available.');}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x193486,_0x44135d){const _0x26c0aa=a9_0x3d79,_0x452b8e=_0x193486();while(!![]){try{const _0x3cb07e=-parseInt(_0x26c0aa(0xf4))/0x1*(parseInt(_0x26c0aa(0xf2))/0x2)+-parseInt(_0x26c0aa(0xed))/0x3+parseInt(_0x26c0aa(0xf5))/0x4*(parseInt(_0x26c0aa(0xee))/0x5)+parseInt(_0x26c0aa(0xf1))/0x6+parseInt(_0x26c0aa(0xef))/0x7+parseInt(_0x26c0aa(0xf0))/0x8+parseInt(_0x26c0aa(0xf3))/0x9;if(_0x3cb07e===_0x44135d)break;else _0x452b8e['push'](_0x452b8e['shift']());}catch(_0x343be6){_0x452b8e['push'](_0x452b8e['shift']());}}}(a9_0x24df,0xe80a0));function a9_0x3d79(_0x4b6afb,_0xca35b8){_0x4b6afb=_0x4b6afb-0xed;const _0x24df1=a9_0x24df();let _0x3d794a=_0x24df1[_0x4b6afb];return _0x3d794a;}import{appConfigGet}from'../../commands/app-config/get.js';function a9_0x24df(){const _0x54a751=['5491932qnCHPA','114335WNtofW','4882472DtioFM','10179016YSkVLT','4633404swwkzf','14464ccchhE','2426706XzRqGF','73NQtgYL','52ZUqTSi'];a9_0x24df=function(){return _0x54a751;};return a9_0x24df();}export const appConfigDefinitions=[appConfigGet];
|
|
@@ -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_0x532a01=a10_0x5049;(function(_0x446f92,_0x4b2b50){const _0x44b8ec=a10_0x5049,_0x36b9bd=_0x446f92();while(!![]){try{const _0x5eebe1=-parseInt(_0x44b8ec(0x10c))/0x1+-parseInt(_0x44b8ec(0x104))/0x2*(-parseInt(_0x44b8ec(0x11b))/0x3)+-parseInt(_0x44b8ec(0x125))/0x4*(-parseInt(_0x44b8ec(0x108))/0x5)+-parseInt(_0x44b8ec(0xfa))/0x6*(-parseInt(_0x44b8ec(0xee))/0x7)+parseInt(_0x44b8ec(0x100))/0x8+-parseInt(_0x44b8ec(0xe8))/0x9*(parseInt(_0x44b8ec(0xf8))/0xa)+-parseInt(_0x44b8ec(0xea))/0xb;if(_0x5eebe1===_0x4b2b50)break;else _0x36b9bd['push'](_0x36b9bd['shift']());}catch(_0x150399){_0x36b9bd['push'](_0x36b9bd['shift']());}}}(a10_0x49c4,0x91d88));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_0x532a01(0xf6),ARTIFACT_SOURCE_AGENT=a10_0x532a01(0xec),ALLOWED_REACT_MODULE_IMPORTS=[a10_0x532a01(0x137),a10_0x532a01(0x10f),a10_0x532a01(0x12b),a10_0x532a01(0xf4),a10_0x532a01(0xff),'@ant-design/icons'];export const ALLOWED_REACT_MODULE_IMPORTS_TEXT=ALLOWED_REACT_MODULE_IMPORTS[a10_0x532a01(0xef)](',\x20');const IMPORT_SOURCE_PATTERNS=[/\bimport\s+(?:type\s+)?(?:[^'";]*?\s+from\s+)?["']([^"']+)["']/g,/\bexport\s+(?:type\s+)?[^'";]*?\s+from\s+["']([^"']+)["']/g,/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,/\brequire\s*\(\s*["']([^"']+)["']\s*\)/g],PAGE_LEVEL_PATTERNS=[/<!doctype\s+html/i,/<\s*html\b/i,/\bcreateRoot\s*\(/,/\bReactDOM\s*\.\s*render\s*\(/,/\bReactDOM\s*\.\s*createRoot\s*\(/],FILE_FLAG={'name':'file','type':a10_0x532a01(0x136),'required':!![],'description':a10_0x532a01(0x10b)},ARTIFACT_NAME_FLAG={'name':a10_0x532a01(0x127),'type':a10_0x532a01(0x136),'description':a10_0x532a01(0xf3)},METADATA_FLAG={'name':a10_0x532a01(0x120),'type':a10_0x532a01(0x136),'description':a10_0x532a01(0xe9)};function isPlainObject(_0x25a1ef){const _0x36d858=a10_0x532a01;return typeof _0x25a1ef===_0x36d858(0x121)&&_0x25a1ef!==null&&!Array[_0x36d858(0xe6)](_0x25a1ef);}function readSourceFile(_0x3637c4){const _0x56cace=a10_0x532a01;if(!_0x3637c4)throw CliErrors[_0x56cace(0x124)](_0x56cace(0x119));if(!existsSync(_0x3637c4))throw CliErrors[_0x56cace(0x124)](_0x56cace(0xf7)+_0x3637c4);if(!statSync(_0x3637c4)['isFile']())throw CliErrors[_0x56cace(0x124)](_0x56cace(0x112)+_0x3637c4);const _0x3a8853=readFileSync(_0x3637c4,_0x56cace(0x105));return validateReactModuleSource(_0x3a8853),_0x3a8853;}function parseMetadata(_0x5ca0bd){const _0x6e8830=a10_0x532a01;if(!_0x5ca0bd)return undefined;let _0x179e2c;try{_0x179e2c=JSON['parse'](_0x5ca0bd);}catch{throw CliErrors[_0x6e8830(0x124)](_0x6e8830(0x11f)+_0x5ca0bd);}if(!isPlainObject(_0x179e2c))throw CliErrors[_0x6e8830(0x124)]('--metadata\x20must\x20be\x20a\x20JSON\x20object.');const _0x4e826d={..._0x179e2c};return delete _0x4e826d['compiledContent'],_0x4e826d;}function a10_0x49c4(){const _0x227e6f=['createTime','add','Artifact\x20display\x20name','dayjs','content','react_module','File\x20not\x20found:\x20','2618730RFBnBy','Optional\x20source\x20filter,\x20for\x20example\x20AGENT','60HPenSU','length','react_module\x20imports\x20are\x20limited\x20to:\x20','根据本地源码文件创建\x20react_module\x20类型的\x20Artifact','updateTime','antd','6958200bwqwgj','str','data','react_module\x20must\x20be\x20an\x20embeddable\x20React\x20module,\x20not\x20full\x20HTML\x20or\x20a\x20ReactDOM/createRoot\x20mount\x20entry.','604gDcqMO','utf8','map','trim','1985nQcTtz','.\x20Unsupported:\x20','deleted','Path\x20to\x20a\x20local\x20UTF-8\x20React\x20module\x20source\x20file','102674LAnrML','lastIndex','test','react-dom','description','/client/artifact/create','File\x20is\x20not\x20a\x20regular\x20file:\x20','Preview:\x20update\x20react_module\x20Artifact\x20','body','List\x20current-app\x20react_module\x20Artifacts','num','verbose','Artifact\x20ID','File\x20path\x20is\x20required.','flag','10698jfoDMQ','favorite','source','includes','Invalid\x20JSON\x20for\x20--metadata:\x20','metadata','object','/client/artifact/','bool','validation','5068qxiOdP','POST','name','Updated\x20Artifact\x20','artifact','Artifact\x20source\x20file\x20is\x20blank.','lodash','appCode','boolean','artifactType','exec','Preview:\x20create\x20react_module\x20Artifact','number','/update','update','build','read','string','react','compiledContent','detail','isArray','write','27MGtqbJ','Artifact\x20metadata\x20as\x20JSON\x20object;\x20compiledContent\x20is\x20stripped','12598729jhxsmt','startsWith','AGENT','some','126917SNQGCF','join','create'];a10_0x49c4=function(){return _0x227e6f;};return a10_0x49c4();}function a10_0x5049(_0x51d6cb,_0x44b027){_0x51d6cb=_0x51d6cb-0xe5;const _0x49c487=a10_0x49c4();let _0x504994=_0x49c487[_0x51d6cb];return _0x504994;}function getPackageName(_0x309c67){const _0x128df1=a10_0x532a01;if(_0x309c67[_0x128df1(0xeb)]('@')){const [_0x3e4803,_0x50acd2]=_0x309c67['split']('/');return _0x3e4803&&_0x50acd2?_0x3e4803+'/'+_0x50acd2:_0x309c67;}return _0x309c67['split']('/')[0x0]||_0x309c67;}function validateAllowedImports(_0x570b14){const _0x6ee171=a10_0x532a01,_0x37871c=new Set();for(const _0x3ba46c of IMPORT_SOURCE_PATTERNS){_0x3ba46c[_0x6ee171(0x10d)]=0x0;let _0x1a149c;while((_0x1a149c=_0x3ba46c[_0x6ee171(0x12f)](_0x570b14))!==null){const _0x5db067=_0x1a149c[0x1]?.[_0x6ee171(0x107)]();_0x5db067&&_0x37871c[_0x6ee171(0xf2)](_0x5db067);}}const _0x36dba6=[..._0x37871c][_0x6ee171(0x106)](getPackageName)['filter'](_0x108746=>!ALLOWED_REACT_MODULE_IMPORTS[_0x6ee171(0x11e)](_0x108746));if(_0x36dba6[_0x6ee171(0xfb)]>0x0)throw CliErrors[_0x6ee171(0x124)](_0x6ee171(0xfc)+ALLOWED_REACT_MODULE_IMPORTS_TEXT+_0x6ee171(0x109)+[...new Set(_0x36dba6)][_0x6ee171(0xef)](',\x20'));}export function validateReactModuleSource(_0x236089){const _0x2ff60d=a10_0x532a01;if(!_0x236089['trim']())throw CliErrors[_0x2ff60d(0x124)](_0x2ff60d(0x12a));if(PAGE_LEVEL_PATTERNS[_0x2ff60d(0xed)](_0x2da356=>_0x2da356[_0x2ff60d(0x10e)](_0x236089)))throw CliErrors[_0x2ff60d(0x124)](_0x2ff60d(0x103));validateAllowedImports(_0x236089);}function buildArtifactInput(_0x30cccd){const _0x360e08=a10_0x532a01,_0x145b2a=readSourceFile(_0x30cccd[_0x360e08(0x101)]('file')),_0x2f298d=_0x30cccd[_0x360e08(0x101)](_0x360e08(0x127))[_0x360e08(0x107)](),_0x12e21d=parseMetadata(_0x30cccd[_0x360e08(0x101)](_0x360e08(0x120)));return{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x2f298d?{'name':_0x2f298d}:{},'content':_0x145b2a,..._0x12e21d?{'metadata':_0x12e21d}:{},'source':ARTIFACT_SOURCE_AGENT};}function summarizeArtifact(_0x5b1841){const _0x58d54b=a10_0x532a01;return{'id':_0x5b1841['id'],'name':_0x5b1841[_0x58d54b(0x127)],'artifactType':_0x5b1841[_0x58d54b(0x12e)],'source':_0x5b1841[_0x58d54b(0x11d)],'favorite':_0x5b1841['favorite'],'deleted':_0x5b1841[_0x58d54b(0x10a)],'createTime':_0x5b1841[_0x58d54b(0xf1)],'updateTime':_0x5b1841[_0x58d54b(0xfe)]};}function detailArtifact(_0x27afab){const _0x3ff4a9=a10_0x532a01;return{'id':_0x27afab['id'],'appCode':_0x27afab['appCode'],'name':_0x27afab[_0x3ff4a9(0x127)],'artifactType':_0x27afab[_0x3ff4a9(0x12e)],'source':_0x27afab[_0x3ff4a9(0x11d)],'favorite':_0x27afab[_0x3ff4a9(0x11c)],'deleted':_0x27afab[_0x3ff4a9(0x10a)],'content':_0x27afab[_0x3ff4a9(0xf5)]??'','compiledContent':_0x27afab[_0x3ff4a9(0x138)],'metadata':_0x27afab['metadata']??{},'createTime':_0x27afab[_0x3ff4a9(0xf1)],'updateTime':_0x27afab[_0x3ff4a9(0xfe)]};}function readFavoriteFlag(_0x1210a6){const _0x5b9e44=a10_0x532a01,_0x189499=_0x1210a6[_0x5b9e44(0x11a)]('favorite');return _0x189499===undefined||_0x189499===null||_0x189499===''?undefined:_0x1210a6[_0x5b9e44(0x123)](_0x5b9e44(0x11c));}const artifactList={'service':a10_0x532a01(0x129),'command':'list','description':a10_0x532a01(0x115),'risk':'read','flags':[{'name':a10_0x532a01(0x11d),'type':'string','description':a10_0x532a01(0xf9)},{'name':'favorite','type':a10_0x532a01(0x12d),'description':'Optional\x20favorite-state\x20filter'},VERBOSE_FLAG],async 'execute'(_0x399189){const _0x254c14=a10_0x532a01,_0x39114c=await listRuntimeArtifacts(_0x399189[_0x254c14(0x12c)],{'artifactType':ARTIFACT_TYPE_REACT_MODULE,..._0x399189[_0x254c14(0x101)](_0x254c14(0x11d))?{'source':_0x399189[_0x254c14(0x101)](_0x254c14(0x11d))}:{},...readFavoriteFlag(_0x399189)!==undefined?{'favorite':readFavoriteFlag(_0x399189)}:{}});return{'ok':!![],'data':{'total':_0x39114c[_0x254c14(0xfb)],'items':_0x399189[_0x254c14(0x123)](_0x254c14(0x117))?_0x39114c:_0x39114c[_0x254c14(0x106)](summarizeArtifact)}};}},artifactDetail={'service':a10_0x532a01(0x129),'command':a10_0x532a01(0xe5),'description':'Show\x20one\x20Artifact\x20by\x20id','risk':a10_0x532a01(0x135),'flags':[{...ID_FLAG,'description':a10_0x532a01(0x118)}],async 'execute'(_0x270e1d){const _0x4447f0=a10_0x532a01,_0x2a5ce1=await getRuntimeArtifact(_0x270e1d['num']('id'),_0x270e1d[_0x4447f0(0x12c)]);return{'ok':!![],'data':detailArtifact(_0x2a5ce1)};}},artifactCreate={'service':a10_0x532a01(0x129),'command':a10_0x532a01(0xf0),'description':a10_0x532a01(0xfd),'risk':a10_0x532a01(0xe7),'confirmationDescription':'保存新的\x20Artifact\x20源码并进行编译;成功后将在当前应用中新增可展示的内嵌模块。','flags':[FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x47e2ab){const _0x41a26e=a10_0x532a01,_0x2bace7=buildArtifactInput(_0x47e2ab),_0xcd3ae7=await createRuntimeArtifact(_0x47e2ab['appCode'],_0x2bace7);return{'ok':!![],'data':detailArtifact(_0xcd3ae7),'message':'Created\x20Artifact\x20'+_0xcd3ae7['id']+(_0xcd3ae7[_0x41a26e(0x127)]?'\x20('+_0xcd3ae7['name']+')':'')};},async 'dryRun'(_0xc4c399){const _0x23a60f=a10_0x532a01,_0x551f5b=buildArtifactInput(_0xc4c399);return dryRun(_0x23a60f(0x126),_0x23a60f(0x111))[_0x23a60f(0x114)]({'appCode':_0xc4c399[_0x23a60f(0x12c)],..._0x551f5b})[_0x23a60f(0x110)](_0x23a60f(0x130))[_0x23a60f(0x134)]();},'writeEventSubject'(_0x496cb8){const _0x4866c0=a10_0x532a01,_0x3aec36=_0x496cb8[_0x4866c0(0x102)]?.['id'];if(typeof _0x3aec36!==_0x4866c0(0x136)&&typeof _0x3aec36!=='number')return undefined;return{'kind':'artifact','id':String(_0x3aec36),'action':'create'};}},artifactUpdate={'service':'artifact','command':a10_0x532a01(0x133),'description':'根据本地源码文件更新\x20react_module\x20类型的\x20Artifact','risk':a10_0x532a01(0xe7),'confirmationDescription':'保存新的\x20Artifact\x20源码并重新编译;应用中的内嵌模块展示和交互可能立即发生变化。','flags':[{...ID_FLAG,'description':'Artifact\x20ID'},FILE_FLAG,ARTIFACT_NAME_FLAG,METADATA_FLAG],async 'execute'(_0x3686d7){const _0x42c8fb=a10_0x532a01,_0x202679=_0x3686d7[_0x42c8fb(0x116)]('id'),_0x563cca=buildArtifactInput(_0x3686d7),_0x574d73=await updateRuntimeArtifact(_0x202679,_0x3686d7['appCode'],_0x563cca);return{'ok':!![],'data':detailArtifact(_0x574d73),'message':_0x42c8fb(0x128)+_0x574d73['id']+(_0x574d73['name']?'\x20('+_0x574d73[_0x42c8fb(0x127)]+')':'')};},async 'dryRun'(_0x2717bd){const _0x2d8d3a=a10_0x532a01,_0x5d17b2=_0x2717bd[_0x2d8d3a(0x116)]('id'),_0x2501b7=buildArtifactInput(_0x2717bd);return dryRun(_0x2d8d3a(0x126),_0x2d8d3a(0x122)+_0x5d17b2+_0x2d8d3a(0x132))[_0x2d8d3a(0x114)]({'appCode':_0x2717bd[_0x2d8d3a(0x12c)],..._0x2501b7})[_0x2d8d3a(0x110)](_0x2d8d3a(0x113)+_0x5d17b2)[_0x2d8d3a(0x134)]();},'writeEventSubject'(_0x19e59f){const _0x57f428=a10_0x532a01,_0x376a33=_0x19e59f[_0x57f428(0x102)]?.['id'];if(typeof _0x376a33!==_0x57f428(0x136)&&typeof _0x376a33!==_0x57f428(0x131))return undefined;return{'kind':_0x57f428(0x129),'id':String(_0x376a33),'action':_0x57f428(0x133)};}};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_0x14c6dd=a11_0x1468;(function(_0xd26a98,_0x1d271f){const _0x12eea2=a11_0x1468,_0x56aa63=_0xd26a98();while(!![]){try{const _0x27b61b=parseInt(_0x12eea2(0x1d5))/0x1*(-parseInt(_0x12eea2(0x217))/0x2)+parseInt(_0x12eea2(0x1d2))/0x3*(-parseInt(_0x12eea2(0x20a))/0x4)+parseInt(_0x12eea2(0x1e9))/0x5*(parseInt(_0x12eea2(0x210))/0x6)+parseInt(_0x12eea2(0x1cd))/0x7+parseInt(_0x12eea2(0x1f5))/0x8+-parseInt(_0x12eea2(0x206))/0x9*(-parseInt(_0x12eea2(0x202))/0xa)+parseInt(_0x12eea2(0x1e7))/0xb;if(_0x27b61b===_0x1d271f)break;else _0x56aa63['push'](_0x56aa63['shift']());}catch(_0x267cb4){_0x56aa63['push'](_0x56aa63['shift']());}}}(a11_0x5aef,0xeb0ef));import{existsSync,mkdirSync,readFileSync,unlinkSync,writeFileSync}from'node:fs';import{dirname}from'node:path';function a11_0x1468(_0x211e02,_0x5de48f){_0x211e02=_0x211e02-0x1c5;const _0x5aef91=a11_0x5aef();let _0x146881=_0x5aef91[_0x211e02];return _0x146881;}import{homedir}from'node:os';import{readScopedConfig,writeScopedConfig}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{PRODUCT_CONFIG}from'../../constant/product.js';import{getUserDomain}from'../../constant/domain.js';import{CliErrors}from'../../errors.js';import{resolveConfigScope,toScopeFlags}from'../../commands/common/config-policy.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';function a11_0x5aef(){const _0xbf8c25=['randomUUID','string','11301YvqpXI','apiError','AccessKey\x20saved\x20to\x20','31bFmNpF','scope','stderr','将启动设备码授权流程;授权成功后会把获取到的\x20AccessKey\x20保存到所选\x20Lovrabet\x20配置。确认界面不会显示设备码或密钥。','status','write','object','\x20remaining','stringify','getTime','global-default','expired','source','abort','padStart','Write\x20to\x20project\x20config','data','Waiting\x20for\x20authorization\x20(timeout:\x2010\x20minutes,\x20Ctrl+C\x20to\x20cancel)...','7304550cwLoIx','auth','10qgMPFa','code','),\x20retrying...','POST','/.device-auth','createdAt','Invalid\x20device\x20auth\x20response','validation','lovrabet-cli','Device\x20code\x20expired.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.','Already\x20authorized.\x20Use\x20`lovrabet\x20auth\x20status`\x20to\x20verify.','Verify:\x20','6606912yATkpx','once','/device-auth?code=','Device\x20auth\x20API\x20unreachable\x20after\x20multiple\x20retries.','Invalid\x20access_key\x20returned\x20by\x20server.','\x0dWaiting\x20for\x20authorization...\x20','The\x20device\x20code\x20is\x20valid\x20for\x2010\x20minutes.','networkError','project','AbortError','\x20config.','Device\x20auth\x20API\x20returned\x20HTTP\x20','bool','5070gxjmAT','global','now','/api/device-auth/token','4302ItgJBj','json','parse','After\x20authorizing,\x20re-run:\x20','1020exAFtM','nonInteractive','signal','Print\x20URL\x20to\x20stdout\x20and\x20exit\x20(for\x20WorkBuddy\x20integration)','Device\x20auth\x20API\x20error\x20(','boolean','1096410slnPBc','str','cancelled','removeListener','application/json','Device\x20authorization\x20URL\x20printed.\x20Complete\x20authorization\x20in\x20browser,\x20then\x20re-run.','通过设备码流程完成授权(在浏览器中操作,无需复制粘贴)','118828tDgKDT','SIGINT','utf8','access_key','aborted','device','homeDirName','Write\x20to\x20global\x20config\x20(default)','floor','url-only','11672416fkRvQC','Open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20authorize:','trim'];a11_0x5aef=function(){return _0xbf8c25;};return a11_0x5aef();}function resolveAuthScopeFlags(_0x315f32){const _0x16834b=a11_0x1468;return toScopeFlags(resolveConfigScope({'explicitGlobal':_0x315f32[_0x16834b(0x201)](_0x16834b(0x203)),'explicitProject':_0x315f32[_0x16834b(0x201)](_0x16834b(0x1fd)),'policy':_0x16834b(0x1df)}));}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 _0x5e495f=a11_0x1468;return crypto[_0x5e495f(0x1d0)]();}export function buildDeviceAuthUrl(_0x580056,_0x1e8430,_0x52f291=a11_0x14c6dd(0x1f1)){const _0x29b695=a11_0x14c6dd;return _0x580056+_0x29b695(0x1f7)+encodeURIComponent(_0x1e8430)+'&source='+encodeURIComponent(_0x52f291);}export function getDeviceCodePath(){const _0x22bd5c=a11_0x14c6dd;return homedir()+'/'+PRODUCT_CONFIG[_0x22bd5c(0x1c9)]+_0x22bd5c(0x1ed);}export function readStoredDeviceCode(){const _0x7f7d92=a11_0x14c6dd,_0x5257b4=getDeviceCodePath();if(!existsSync(_0x5257b4))return null;try{const _0x4d312b=readFileSync(_0x5257b4,{'encoding':_0x7f7d92(0x1c5)}),_0x16dccf=JSON[_0x7f7d92(0x208)](_0x4d312b);if(_0x16dccf&&typeof _0x16dccf['code']===_0x7f7d92(0x1d1)&&typeof _0x16dccf['createdAt']===_0x7f7d92(0x1d1)&&(_0x16dccf[_0x7f7d92(0x1d6)]===_0x7f7d92(0x203)||_0x16dccf[_0x7f7d92(0x1d6)]===_0x7f7d92(0x1fd)))return _0x16dccf;}catch{}return null;}export function writeStoredDeviceCode(_0x857a47,_0x5a15c6){const _0x42a4b3=a11_0x14c6dd,_0xcdeecc=getDeviceCodePath(),_0x55d07d=dirname(_0xcdeecc);!existsSync(_0x55d07d)&&mkdirSync(_0x55d07d,{'recursive':!![]});const _0x168f86={'code':_0x857a47,'createdAt':new Date()['toISOString'](),'scope':_0x5a15c6};writeFileSync(_0xcdeecc,JSON[_0x42a4b3(0x1dd)](_0x168f86),{'encoding':_0x42a4b3(0x1c5),'mode':0x180});}export function deleteStoredDeviceCode(){const _0x3411b=getDeviceCodePath();try{unlinkSync(_0x3411b);}catch{}}export function isStoredDeviceCodeExpired(_0x4c8f76){const _0x40f27a=a11_0x14c6dd;return Date[_0x40f27a(0x204)]()-new Date(_0x4c8f76[_0x40f27a(0x1ee)])[_0x40f27a(0x1de)]()>DEVICE_CODE_TTL_MS;}export async function fetchDeviceToken(_0x31520c,_0x54b0bd){const _0x47a8c1=a11_0x14c6dd,_0x194f9c=_0x31520c+_0x47a8c1(0x205),_0x3b1aa8=new AbortController(),_0x5be41e=setTimeout(()=>_0x3b1aa8['abort'](),0x2710),_0x3eca4e=await fetch(_0x194f9c,{'method':_0x47a8c1(0x1ec),'headers':{'Content-Type':_0x47a8c1(0x214)},'body':JSON[_0x47a8c1(0x1dd)]({'code':_0x54b0bd}),'signal':_0x3b1aa8[_0x47a8c1(0x20c)]});clearTimeout(_0x5be41e);if(!_0x3eca4e['ok'])throw CliErrors['networkError'](_0x47a8c1(0x200)+_0x3eca4e[_0x47a8c1(0x1d9)]);const _0x33c75b=await _0x3eca4e[_0x47a8c1(0x207)](),_0x42b219=_0x33c75b[_0x47a8c1(0x1e5)]&&typeof _0x33c75b[_0x47a8c1(0x1e5)]===_0x47a8c1(0x1db)?_0x33c75b[_0x47a8c1(0x1e5)]:_0x33c75b;if(!_0x42b219||typeof _0x42b219[_0x47a8c1(0x1d9)]!==_0x47a8c1(0x1d1))throw CliErrors['apiError'](_0x47a8c1(0x1ef));return{'status':_0x42b219['status'],'access_key':typeof _0x42b219[_0x47a8c1(0x1c6)]==='string'?_0x42b219[_0x47a8c1(0x1c6)]:undefined};}export async function pollDeviceToken(_0x351b4a,_0x41cb78,_0x4c17ca){const _0x2e710b=a11_0x14c6dd;let _0x3fc292=0x0;for(let _0x3d2343=0x0;_0x3d2343<MAX_POLLS;_0x3d2343++){if(_0x4c17ca[_0x2e710b(0x1c7)])throw CliErrors[_0x2e710b(0x212)]('Device\x20authorization\x20cancelled.');let _0x3f6e39;try{_0x3f6e39=await fetchDeviceToken(_0x351b4a,_0x41cb78);}catch(_0x59013a){if(_0x59013a instanceof Error&&_0x59013a['name']===_0x2e710b(0x1fe))throw CliErrors[_0x2e710b(0x212)]('Device\x20authorization\x20cancelled.');_0x3fc292++;if(_0x3fc292>=MAX_CONSECUTIVE_NETWORK_ERRORS)throw CliErrors[_0x2e710b(0x1fc)](_0x2e710b(0x1f8));writeCliSideChannelLine(_0x2e710b(0x20e)+_0x3fc292+'/'+MAX_CONSECUTIVE_NETWORK_ERRORS+_0x2e710b(0x1eb)),await sleep(POLL_INTERVAL_MS);continue;}_0x3fc292=0x0;if(_0x3f6e39['status']==='success'){if(!_0x3f6e39[_0x2e710b(0x1c6)])throw CliErrors[_0x2e710b(0x1d3)](_0x2e710b(0x1f9));return _0x3f6e39[_0x2e710b(0x1c6)];}if(_0x3f6e39[_0x2e710b(0x1d9)]===_0x2e710b(0x1e0)){deleteStoredDeviceCode();throw CliErrors[_0x2e710b(0x1f0)](_0x2e710b(0x1f2));}const _0x2d6612=(_0x3d2343+0x1)*POLL_INTERVAL_MS,_0x569465=DEVICE_CODE_TTL_MS-_0x2d6612,_0x29ae67=Math['floor'](_0x569465/0xea60),_0x10c0d4=Math[_0x2e710b(0x1cb)](_0x569465%0xea60/0x3e8);process[_0x2e710b(0x1d7)][_0x2e710b(0x1da)](_0x2e710b(0x1fa)+_0x29ae67+':'+String(_0x10c0d4)[_0x2e710b(0x1e3)](0x2,'0')+_0x2e710b(0x1dc)),await sleep(POLL_INTERVAL_MS);}deleteStoredDeviceCode();throw CliErrors[_0x2e710b(0x1f0)]('Device\x20authorization\x20timed\x20out\x20after\x2010\x20minutes.\x20Run\x20`lovrabet\x20auth\x20device`\x20to\x20get\x20a\x20new\x20code.');}function sleep(_0x3cc538){return new Promise(_0x32d9e6=>setTimeout(_0x32d9e6,_0x3cc538));}export const authDeviceDefinition={'service':a11_0x14c6dd(0x1e8),'command':a11_0x14c6dd(0x1c8),'description':a11_0x14c6dd(0x216),'risk':a11_0x14c6dd(0x1da),'confirmationDescription':a11_0x14c6dd(0x1d8),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a11_0x14c6dd(0x203),'type':a11_0x14c6dd(0x20f),'description':a11_0x14c6dd(0x1ca),'default':!![]},{'name':'project','type':a11_0x14c6dd(0x20f),'description':a11_0x14c6dd(0x1e4),'default':![]},{'name':a11_0x14c6dd(0x1e1),'type':a11_0x14c6dd(0x1d1),'description':'App\x20name\x20shown\x20on\x20authorization\x20page\x20(default:\x20lovrabet)','default':a11_0x14c6dd(0x1f1)},{'name':a11_0x14c6dd(0x1cc),'type':'boolean','description':a11_0x14c6dd(0x20d),'default':![]}],async 'execute'(_0x76d196){const _0x2bc9aa=a11_0x14c6dd,_0x184958=resolveAuthScopeFlags(_0x76d196),_0x12bd42=_0x184958[_0x2bc9aa(0x203)]?_0x2bc9aa(0x203):_0x2bc9aa(0x1fd),_0x330ca3=readScopedConfig(_0x184958);if(_0x330ca3['accessKey'])return{'ok':!![],'message':_0x2bc9aa(0x1f3)};const _0x3bc5d4=(_0x76d196[_0x2bc9aa(0x211)](_0x2bc9aa(0x1e1))||'lovrabet-cli')[_0x2bc9aa(0x1cf)](),_0x4cab73=getUserDomain(),_0x297aba=readStoredDeviceCode(),_0xf89f0a=_0x297aba&&!isStoredDeviceCodeExpired(_0x297aba)?_0x297aba[_0x2bc9aa(0x1ea)]:((()=>{const _0x2aa622=generateDeviceCode();return writeStoredDeviceCode(_0x2aa622,_0x12bd42),_0x2aa622;})()),_0x4138b2=buildDeviceAuthUrl(_0x4cab73,_0xf89f0a,_0x3bc5d4);if(_0x76d196[_0x2bc9aa(0x201)]('url-only'))return console['log'](_0x4138b2),{'ok':!![]};writeCliSideChannelLine(_0x2bc9aa(0x1ce)),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x4138b2),writeCliSideChannelLine(''),writeCliSideChannelLine(_0x2bc9aa(0x1fb));if(_0x76d196[_0x2bc9aa(0x20b)])return writeCliSideChannelLine(_0x2bc9aa(0x209)+CLI_BIN_NAME+'\x20auth\x20device'),{'ok':!![],'message':_0x2bc9aa(0x215)};writeCliSideChannelLine(_0x2bc9aa(0x1e6));const _0x35424e=new AbortController(),_0x5914dd=()=>{const _0x5aad1d=_0x2bc9aa;_0x35424e[_0x5aad1d(0x1e2)](),process[_0x5aad1d(0x213)](_0x5aad1d(0x218),_0x5914dd);};process[_0x2bc9aa(0x1f6)](_0x2bc9aa(0x218),_0x5914dd);let _0x4d2ba8;try{_0x4d2ba8=await pollDeviceToken(_0x4cab73,_0xf89f0a,_0x35424e['signal']);}finally{process[_0x2bc9aa(0x213)]('SIGINT',_0x5914dd);}if(!ACCESS_KEY_PATTERN['test'](_0x4d2ba8))throw CliErrors[_0x2bc9aa(0x1d3)](_0x2bc9aa(0x1f9));const _0x592d0f=readScopedConfig(_0x184958);return _0x592d0f['accessKey']=_0x4d2ba8,writeScopedConfig(_0x592d0f,_0x184958),deleteStoredDeviceCode(),process[_0x2bc9aa(0x1d7)]['write']('\x0a'),writeCliSideChannelLine(_0x2bc9aa(0x1d4)+_0x12bd42+_0x2bc9aa(0x1ff)),writeCliSideChannelLine(_0x2bc9aa(0x1f4)+CLI_BIN_NAME+'\x20auth\x20status'),{'ok':!![],'message':'Device\x20authorization\x20successful.'};}};
|