@lovrabet/rabetbase-cli 2.2.4-beta.3 → 2.2.4-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/add.js +1 -1
- package/lib/commands/app/discover.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/remove.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app/use.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/update.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/non-interactive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/init.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.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/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/save.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.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/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.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/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -2
- package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +1 -1
- package/templates/rules/lovrabet_rules.mdc.tpl +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a19_0x12504c=a19_0xca71;(function(_0x112099,_0x587ff3){const _0x49403b=a19_0xca71,_0x42f30d=_0x112099();while(!![]){try{const _0x347ce1=-parseInt(_0x49403b(0x7b))/0x1+parseInt(_0x49403b(0x76))/0x2*(-parseInt(_0x49403b(0x75))/0x3)+-parseInt(_0x49403b(0x77))/0x4+-parseInt(_0x49403b(0x7c))/0x5*(parseInt(_0x49403b(0x7d))/0x6)+-parseInt(_0x49403b(0x74))/0x7*(-parseInt(_0x49403b(0x7a))/0x8)+parseInt(_0x49403b(0x82))/0x9+parseInt(_0x49403b(0x80))/0xa;if(_0x347ce1===_0x587ff3)break;else _0x42f30d['push'](_0x42f30d['shift']());}catch(_0xc3a218){_0x42f30d['push'](_0x42f30d['shift']());}}}(a19_0x2481,0xa951b));import{listRemoteApps}from'../../core/api-client.js';function a19_0x2481(){const _0xf9e9de=['28ELIblR','3PJXlbq','2597958pIHbJh','3633824xnEOHI','appName','map','143848UoZpmL','114517EcwHBF','210MbxDiI','107964VeBpTw','app','List\x20apps\x20available\x20on\x20the\x20platform\x20for\x20the\x20current\x20login','27796760TcCaeU','platform','8276679kvOVHg','appDesc','appCode','../../core/api-client.js'];a19_0x2481=function(){return _0xf9e9de;};return a19_0x2481();}function a19_0xca71(_0xbf6054,_0x157644){_0xbf6054=_0xbf6054-0x73;const _0x248186=a19_0x2481();let _0xca71aa=_0x248186[_0xbf6054];return _0xca71aa;}async function execute(_0x54fe2b){const _0x501fe3=a19_0xca71,{setActiveCookie:_0x5e9575}=await import(_0x501fe3(0x73));_0x5e9575(_0x54fe2b['cookie']);const _0x3a713e=await listRemoteApps();return{'ok':!![],'data':{'items':_0x3a713e[_0x501fe3(0x79)](_0x488177=>({..._0x488177['id']!=null?{'id':_0x488177['id']}:{},'appCode':_0x488177[_0x501fe3(0x84)],'appName':_0x488177[_0x501fe3(0x78)],..._0x488177['appDesc']!=null?{'appDesc':_0x488177[_0x501fe3(0x83)]}:{}})),'meta':{'source':_0x501fe3(0x81)}}};}export const appRemoteDefinition={'service':a19_0x12504c(0x7e),'command':'remote','description':a19_0x12504c(0x7f),'risk':'read','requiresAuth':!![],'requiresAppCode':![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x381fa9,_0x976171){const _0x15363d=a20_0x3508,_0x5e83ba=_0x381fa9();while(!![]){try{const _0x5a0e28=parseInt(_0x15363d(0x1c8))/0x1*(parseInt(_0x15363d(0x1ca))/0x2)+parseInt(_0x15363d(0x1cc))/0x3+-parseInt(_0x15363d(0x1ce))/0x4+parseInt(_0x15363d(0x1cb))/0x5*(-parseInt(_0x15363d(0x1c9))/0x6)+parseInt(_0x15363d(0x1c6))/0x7+parseInt(_0x15363d(0x1c7))/0x8+parseInt(_0x15363d(0x1cd))/0x9;if(_0x5a0e28===_0x976171)break;else _0x5e83ba['push'](_0x5e83ba['shift']());}catch(_0x3f0d9e){_0x5e83ba['push'](_0x5e83ba['shift']());}}}(a20_0x5766,0x8536f));import{appListDefinition}from'../../commands/app/list.js';function a20_0x5766(){const _0x631683=['10762yNOvCU','2572365kVZZih','1266087EMusUI','4342563qssnuz','2679168Qcsxpj','3225789yfPkbh','2873344WYMLVN','1fxjZox','6RWVIuq'];a20_0x5766=function(){return _0x631683;};return a20_0x5766();}import{appRemoteDefinition}from'../../commands/app/discover.js';import{appUseDefinition}from'../../commands/app/use.js';function a20_0x3508(_0x172eab,_0x23ac1b){_0x172eab=_0x172eab-0x1c6;const _0x5766a5=a20_0x5766();let _0x3508d6=_0x5766a5[_0x172eab];return _0x3508d6;}import{appAddDefinition}from'../../commands/app/add.js';import{appRemoveDefinition}from'../../commands/app/remove.js';export const appDefinitions=[appListDefinition,appRemoteDefinition,appUseDefinition,appAddDefinition,appRemoveDefinition];
|
package/lib/commands/app/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a21_0xae89a8=a21_0x48cf;(function(_0x119e1d,_0x87aef){const _0x17b7a3=a21_0x48cf,_0x32b7da=_0x119e1d();while(!![]){try{const _0x1c92ed=-parseInt(_0x17b7a3(0x1e0))/0x1+-parseInt(_0x17b7a3(0x1d8))/0x2+parseInt(_0x17b7a3(0x1ed))/0x3*(-parseInt(_0x17b7a3(0x1d5))/0x4)+-parseInt(_0x17b7a3(0x1ef))/0x5+parseInt(_0x17b7a3(0x1f2))/0x6*(parseInt(_0x17b7a3(0x1df))/0x7)+parseInt(_0x17b7a3(0x1d0))/0x8*(parseInt(_0x17b7a3(0x1e9))/0x9)+parseInt(_0x17b7a3(0x1d2))/0xa*(parseInt(_0x17b7a3(0x1eb))/0xb);if(_0x1c92ed===_0x87aef)break;else _0x32b7da['push'](_0x32b7da['shift']());}catch(_0x1fd71e){_0x32b7da['push'](_0x32b7da['shift']());}}}(a21_0x4145,0x218b4));import{readRawConfigWithLayers}from'../../context.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{buildAppProfileListFields}from'../../config/schema.js';import{appDefinedIn,enrichAppListItemsWithMergedSelection,resolveDefaultAppSource}from'../../commands/app/shared.js';function buildItemsFromLayer(_0x5e88c2,_0x35afb2){const _0xd65860=a21_0x48cf,_0x3fe3aa=[],_0x5b07e2=_0x5e88c2[_0xd65860(0x1db)]&&typeof _0x5e88c2[_0xd65860(0x1db)]===_0xd65860(0x1d6)?_0x5e88c2[_0xd65860(0x1db)]:{},_0x5cac17=_0x5e88c2[_0xd65860(0x1f1)]||undefined;for(const [_0x5a1f3a,_0x356d28]of Object[_0xd65860(0x1d3)](_0x5b07e2)){if(!_0x356d28||typeof _0x356d28!==_0xd65860(0x1d6)||!_0x356d28[_0xd65860(0x1e8)])continue;_0x3fe3aa[_0xd65860(0x1d4)]({'name':_0x5a1f3a,'appcode':_0x356d28[_0xd65860(0x1e8)],'named':!![],'definedIn':_0x35afb2,'isDefault':_0x5a1f3a===_0x5cac17,...buildAppProfileListFields(_0x356d28)});}return _0x3fe3aa;}function a21_0x4145(){const _0x32859a=['\x20app\x20add\x20<name>\x20--appcode\x20<code>`\x20to\x20add\x20one.','projectPath','appcode','203913fluCCZ','list','22QMRChN','globalConfig','166713ozoNIl','\x20config','894125hYDozy','global','defaultApp','1496874LCuXpW','.\x20Use\x20`','bool','length','88irILdm','project','1482530JToRGD','entries','push','4rEbVYP','object','Show\x20only\x20apps\x20from\x20global\x20~/.rabetbase.json','497006yNPTTH','merged','\x20in\x20','apps','List\x20all\x20configured\x20apps','boolean','find','7DuGJvI','174917wQuaKs','No\x20apps\x20configured','globalPath','projectConfig','Show\x20only\x20apps\x20from\x20project\x20.rabetbase.json','map'];a21_0x4145=function(){return _0x32859a;};return a21_0x4145();}function buildMergedItems(_0x109a02,_0x3188ac){const _0x24e2f1=a21_0x48cf,{apps:apps={},defaultApp:_0x2ce0d0}=_0x109a02,_0x174f1c=_0x3188ac['globalConfig'][_0x24e2f1(0x1db)]&&typeof _0x3188ac[_0x24e2f1(0x1ec)]['apps']==='object'?_0x3188ac[_0x24e2f1(0x1ec)][_0x24e2f1(0x1db)]:{},_0x5aaa7d=_0x3188ac['projectConfig'][_0x24e2f1(0x1db)]&&typeof _0x3188ac[_0x24e2f1(0x1e3)][_0x24e2f1(0x1db)]==='object'?_0x3188ac[_0x24e2f1(0x1e3)][_0x24e2f1(0x1db)]:{},_0x1e7510=_0x3188ac[_0x24e2f1(0x1e3)]['inherit']===![],_0x241a54=Object[_0x24e2f1(0x1d3)](apps),_0x548e67=_0x241a54[_0x24e2f1(0x1e5)](([_0x298b32,_0x395572])=>({'name':_0x298b32,'appcode':_0x395572[_0x24e2f1(0x1e8)],'named':!![],'definedIn':appDefinedIn(_0x298b32,_0x174f1c,_0x5aaa7d,_0x1e7510),'isDefault':_0x298b32===_0x2ce0d0,...buildAppProfileListFields(_0x395572)}));return _0x548e67;}function a21_0x48cf(_0x7450b1,_0x3c2e10){_0x7450b1=_0x7450b1-0x1cd;const _0x414546=a21_0x4145();let _0x48cfb8=_0x414546[_0x7450b1];return _0x48cfb8;}async function execute(_0x37b59f){const _0x1a8f65=a21_0x48cf,_0xeced51=_0x37b59f[_0x1a8f65(0x1ce)](_0x1a8f65(0x1f0)),_0x466d02=_0x37b59f[_0x1a8f65(0x1ce)](_0x1a8f65(0x1d1)),_0x12cee9=_0xeced51?_0x1a8f65(0x1f0):_0x466d02?'project':_0x1a8f65(0x1d9),{config:_0x56bda8,layers:_0x56c80e}=readRawConfigWithLayers(),_0xfa528c=resolveDefaultAppSource(_0x56c80e),{defaultApp:_0xbc9bd3}=_0x56bda8;let _0x251b33,_0x318846;switch(_0x12cee9){case _0x1a8f65(0x1f0):_0x251b33=buildItemsFromLayer(_0x56c80e['globalConfig'],_0x1a8f65(0x1f0)),_0x318846=_0x56c80e[_0x1a8f65(0x1e2)];break;case _0x1a8f65(0x1d1):_0x251b33=buildItemsFromLayer(_0x56c80e[_0x1a8f65(0x1e3)],'project'),_0x318846=_0x56c80e[_0x1a8f65(0x1e7)];break;default:_0x251b33=buildMergedItems(_0x56bda8,_0x56c80e);break;}enrichAppListItemsWithMergedSelection(_0x251b33,_0x37b59f['mergedCli']);if(_0x251b33[_0x1a8f65(0x1cf)]===0x0){const _0x409428=_0x12cee9===_0x1a8f65(0x1d9)?'':_0x1a8f65(0x1da)+_0x12cee9+_0x1a8f65(0x1ee);return{'ok':!![],'data':[],'message':_0x1a8f65(0x1e1)+_0x409428+_0x1a8f65(0x1cd)+CLI_BIN_NAME+_0x1a8f65(0x1e6)};}const _0x2ac81c=_0x251b33[_0x1a8f65(0x1de)](_0x4ad7cb=>_0x4ad7cb['isCurrent']===!![]),_0x213af4=_0xbc9bd3??_0x2ac81c?.['appcode']??null,_0x360ad6=_0x12cee9==='merged'?{'globalPath':_0x56c80e[_0x1a8f65(0x1e2)]??null,'projectPath':_0x56c80e[_0x1a8f65(0x1e7)]??null,'defaultApp':_0x213af4,'defaultAppSource':_0xbc9bd3!=null?_0xfa528c:null}:{'scope':_0x12cee9,'configPath':_0x318846??null};return{'ok':!![],'data':{'items':_0x251b33,'meta':_0x360ad6}};}export const appListDefinition={'service':'app','command':a21_0xae89a8(0x1ea),'description':a21_0xae89a8(0x1dc),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a21_0xae89a8(0x1f0),'type':a21_0xae89a8(0x1dd),'description':a21_0xae89a8(0x1d7),'default':![]},{'name':a21_0xae89a8(0x1d1),'type':'boolean','description':a21_0xae89a8(0x1e4),'default':![]}],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a22_0x27a4(_0x5a03a2,_0x22e7fc){_0x5a03a2=_0x5a03a2-0x155;const _0x25cb5d=a22_0x25cb();let _0x27a4ee=_0x25cb5d[_0x5a03a2];return _0x27a4ee;}const a22_0x581fd9=a22_0x27a4;(function(_0x3e41c4,_0x4a22dc){const _0x17e568=a22_0x27a4,_0x35399c=_0x3e41c4();while(!![]){try{const _0x396a54=parseInt(_0x17e568(0x168))/0x1+parseInt(_0x17e568(0x157))/0x2+parseInt(_0x17e568(0x171))/0x3+parseInt(_0x17e568(0x177))/0x4+parseInt(_0x17e568(0x176))/0x5+parseInt(_0x17e568(0x15c))/0x6+parseInt(_0x17e568(0x165))/0x7*(-parseInt(_0x17e568(0x16e))/0x8);if(_0x396a54===_0x4a22dc)break;else _0x35399c['push'](_0x35399c['shift']());}catch(_0x20320d){_0x35399c['push'](_0x35399c['shift']());}}}(a22_0x25cb,0x95b21));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a22_0x25cb(){const _0x4ea1b4=['boolean','defaultApp','remove','keys','Usage:\x20','\x22\x20not\x20found.','14ZfMHjw','globalConfig','global','329481XSYcWG','\x20app\x20remove\x20<name>\x20[--global]','bool','name','Use\x20global\x20config\x20scope','length','7474976wKclnM','Removed\x20app\x20\x22','Missing\x20app\x20name.','186351wLSykQ','project','both','\x20Note:\x20app\x20\x22','\x20config.','1365845oVfNCF','1957456CyMzqZ','object','inherit','high-risk-write','app','trim','2263416npAVhC','Remove\x20an\x20app\x20from\x20config','validation','apps','App\x20\x22','1176348HLXKWK','projectConfig','args'];a22_0x25cb=function(){return _0x4ea1b4;};return a22_0x25cb();}import{readRawConfigWithLayers}from'../../context.js';import{readConfig,writeConfig,scopeLabel,resolveAppScopeForWrite,appDefinedIn}from'../../commands/app/shared.js';async function validateArgs(_0xa7182c){const _0x527180=a22_0x27a4,_0x37fb4a=_0xa7182c['args'][0x0]?.[_0x527180(0x156)]();if(!_0x37fb4a)throw CliErrors[_0x527180(0x159)](_0x527180(0x170),_0x527180(0x163)+CLI_BIN_NAME+_0x527180(0x169));}async function execute(_0xc96746){const _0x54a912=a22_0x27a4,_0x43dbdf=_0xc96746[_0x54a912(0x15e)][0x0]?.['trim']();if(!_0x43dbdf)throw CliErrors[_0x54a912(0x159)](_0x54a912(0x170),_0x54a912(0x163)+CLI_BIN_NAME+_0x54a912(0x169));const _0x435c43=_0xc96746[_0x54a912(0x16a)]('global'),{config:_0xbdc665,layers:_0x5814d0}=readRawConfigWithLayers(),_0x582545=_0xbdc665['apps']??{};if(!_0x582545[_0x43dbdf])throw CliErrors[_0x54a912(0x159)]('App\x20\x22'+_0x43dbdf+_0x54a912(0x164));const _0x34074e=_0x5814d0[_0x54a912(0x166)][_0x54a912(0x15a)]&&typeof _0x5814d0[_0x54a912(0x166)]['apps']===_0x54a912(0x178)?_0x5814d0[_0x54a912(0x166)]['apps']:{},_0x5e9b00=_0x5814d0[_0x54a912(0x15d)][_0x54a912(0x15a)]&&typeof _0x5814d0[_0x54a912(0x15d)][_0x54a912(0x15a)]===_0x54a912(0x178)?_0x5814d0[_0x54a912(0x15d)][_0x54a912(0x15a)]:{},_0x15e5f4=appDefinedIn(_0x43dbdf,_0x34074e,_0x5e9b00,_0x5814d0[_0x54a912(0x15d)][_0x54a912(0x179)]===![]),_0x51a738=resolveAppScopeForWrite(_0x43dbdf,_0x435c43,_0x5814d0),_0x2172f3={'global':_0x51a738===_0x54a912(0x167)},_0x2ae2b9=readConfig(_0x2172f3),_0x1cf4f2=_0x2ae2b9[_0x54a912(0x15a)];if(!_0x1cf4f2||!_0x1cf4f2[_0x43dbdf])throw CliErrors[_0x54a912(0x159)](_0x54a912(0x15b)+_0x43dbdf+_0x54a912(0x164));delete _0x1cf4f2[_0x43dbdf];let _0x2877d6='';if(_0x2ae2b9['defaultApp']===_0x43dbdf){const _0x4885bb=Object[_0x54a912(0x162)](_0x1cf4f2);_0x2ae2b9[_0x54a912(0x160)]=_0x4885bb[_0x54a912(0x16d)]>0x0?_0x4885bb[0x0]:undefined,_0x2ae2b9[_0x54a912(0x160)]?_0x2877d6='\x20Default\x20app\x20changed\x20to\x20\x22'+_0x2ae2b9[_0x54a912(0x160)]+'\x22.':delete _0x2ae2b9[_0x54a912(0x160)];}Object[_0x54a912(0x162)](_0x1cf4f2)['length']===0x0&&(delete _0x2ae2b9[_0x54a912(0x15a)],delete _0x2ae2b9['defaultApp']);writeConfig(_0x2ae2b9,_0x2172f3);const _0x3e0349=_0x15e5f4===_0x54a912(0x173)?_0x54a912(0x174)+_0x43dbdf+'\x22\x20still\x20defined\x20in\x20'+(_0x51a738===_0x54a912(0x172)?_0x54a912(0x167):_0x54a912(0x172))+_0x54a912(0x175):'';return{'ok':!![],'message':_0x54a912(0x16f)+_0x43dbdf+'\x22'+scopeLabel(_0x2172f3)+'.'+_0x2877d6+_0x3e0349};}export const appRemoveDefinition={'service':a22_0x581fd9(0x155),'command':a22_0x581fd9(0x161),'description':a22_0x581fd9(0x158),'risk':a22_0x581fd9(0x17a),'requiresAuth':![],'requiresAppCode':![],'args':[{'name':a22_0x581fd9(0x16b),'description':'App\x20profile\x20name\x20to\x20remove','required':!![]}],'flags':[{'name':'global','type':a22_0x581fd9(0x15f),'description':a22_0x581fd9(0x16c),'default':![]}],'validate':validateArgs,'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x346814,_0x190756){const _0x1943b6=a23_0x2196,_0x4fd04d=_0x346814();while(!![]){try{const _0x48ec7c=parseInt(_0x1943b6(0x70))/0x1+-parseInt(_0x1943b6(0x6b))/0x2+parseInt(_0x1943b6(0x85))/0x3+parseInt(_0x1943b6(0x6d))/0x4*(-parseInt(_0x1943b6(0x86))/0x5)+parseInt(_0x1943b6(0x6e))/0x6*(parseInt(_0x1943b6(0x84))/0x7)+parseInt(_0x1943b6(0x74))/0x8+parseInt(_0x1943b6(0x7c))/0x9;if(_0x48ec7c===_0x190756)break;else _0x4fd04d['push'](_0x4fd04d['shift']());}catch(_0x4c07ee){_0x4fd04d['push'](_0x4fd04d['shift']());}}}(a23_0x5533,0x6593d));import{resolveWriteConfigPath,readConfigFile,writeConfigFile}from'../../context.js';export function enrichAppListItemsWithMergedSelection(_0x474dcf,_0x48aabd){const _0xc402e3=a23_0x2196;if(!_0x48aabd)return;const _0x3de7e9=_0x48aabd[_0xc402e3(0x73)]&&typeof _0x48aabd[_0xc402e3(0x73)]===_0xc402e3(0x69)?_0x48aabd[_0xc402e3(0x73)]:{},_0x4d693c=Object[_0xc402e3(0x82)](_0x3de7e9)[_0xc402e3(0x7e)]>0x0;for(const _0x3432b9 of _0x474dcf){_0x3432b9['isCurrent']=![];}const _0x1aa50b=_0x48aabd[_0xc402e3(0x78)]!=null?String(_0x48aabd[_0xc402e3(0x78)])[_0xc402e3(0x75)]():'';if(_0x4d693c){const _0x4c295b=_0x48aabd['currentApp']??_0x48aabd[_0xc402e3(0x77)];if(_0x4c295b)for(const _0x590b69 of _0x474dcf){_0x590b69[_0xc402e3(0x72)]===!![]&&_0x590b69[_0xc402e3(0x7a)]===_0x4c295b&&(_0x590b69[_0xc402e3(0x7b)]=!![]);}for(const _0x21255b of _0x474dcf){if(_0x21255b[_0xc402e3(0x72)]!==![])continue;if(_0x48aabd[_0xc402e3(0x77)])continue;_0x1aa50b&&String(_0x21255b[_0xc402e3(0x79)]??'')[_0xc402e3(0x75)]()===_0x1aa50b&&(_0x21255b[_0xc402e3(0x7b)]=!![]);}return;}if(!_0x1aa50b)return;for(const _0x2d5a68 of _0x474dcf){String(_0x2d5a68[_0xc402e3(0x79)]??'')['trim']()===_0x1aa50b&&(_0x2d5a68[_0xc402e3(0x7b)]=!![]);}}export function resolveAppScopeForWrite(_0x545124,_0xef9fee,_0x4c2db9){const _0x261909=a23_0x2196;if(_0xef9fee)return _0x261909(0x6f);const _0x125656=_0x4c2db9[_0x261909(0x81)][_0x261909(0x73)]&&typeof _0x4c2db9[_0x261909(0x81)]['apps']==='object'?_0x4c2db9[_0x261909(0x81)]['apps']:{},_0x4dbcc9=_0x4c2db9[_0x261909(0x7f)][_0x261909(0x73)]&&typeof _0x4c2db9[_0x261909(0x7f)][_0x261909(0x73)]===_0x261909(0x69)?_0x4c2db9[_0x261909(0x7f)][_0x261909(0x73)]:{};if(Object[_0x261909(0x7d)]['hasOwnProperty'][_0x261909(0x71)](_0x125656,_0x545124))return _0x261909(0x6a);if(Object[_0x261909(0x7d)][_0x261909(0x83)]['call'](_0x4dbcc9,_0x545124))return _0x261909(0x6f);return _0x261909(0x6a);}export function appDefinedIn(_0x3d9231,_0x4887ba,_0x50da1d,_0x126ca8){const _0x529d71=a23_0x2196;if(_0x126ca8)return Object[_0x529d71(0x7d)][_0x529d71(0x83)]['call'](_0x50da1d,_0x3d9231)?_0x529d71(0x6a):_0x529d71(0x6f);const _0x3cacb9=Object[_0x529d71(0x7d)][_0x529d71(0x83)]['call'](_0x4887ba,_0x3d9231),_0x30565c=Object['prototype'][_0x529d71(0x83)][_0x529d71(0x71)](_0x50da1d,_0x3d9231);if(_0x3cacb9&&_0x30565c)return _0x529d71(0x80);if(_0x30565c)return'project';return _0x529d71(0x6f);}function a23_0x5533(){const _0x330849=['hasOwnProperty','7wTSwcj','1145337xrVHhx','2171355TKXpXP','object','project','1204136JbNFsX','inherit','4vrviYo','2983314jZcmsc','global','85457XURAFR','call','named','apps','645736WgCmAP','trim','\x20(global)','defaultApp','appCode','appcode','name','isCurrent','3665052BBQJKU','prototype','length','globalConfig','both','projectConfig','keys'];a23_0x5533=function(){return _0x330849;};return a23_0x5533();}export function resolveDefaultAppSource(_0x5d4c63){const _0x25d94b=a23_0x2196,_0x3037ad=_0x5d4c63['projectConfig'][_0x25d94b(0x73)]&&typeof _0x5d4c63['projectConfig'][_0x25d94b(0x73)]===_0x25d94b(0x69)?_0x5d4c63[_0x25d94b(0x81)]['apps']:{};if('defaultApp'in _0x5d4c63[_0x25d94b(0x81)])return _0x25d94b(0x6a);if(Object[_0x25d94b(0x82)](_0x3037ad)[_0x25d94b(0x7e)]>0x0)return _0x25d94b(0x6a);if(_0x5d4c63[_0x25d94b(0x81)][_0x25d94b(0x6c)]===![])return null;if(_0x5d4c63[_0x25d94b(0x7f)][_0x25d94b(0x77)])return'global';return null;}function a23_0x2196(_0x2351fe,_0x396bbf){_0x2351fe=_0x2351fe-0x69;const _0x553301=a23_0x5533();let _0x2196cd=_0x553301[_0x2351fe];return _0x2196cd;}export function getConfigPath(_0x3e6eae={}){const _0x6d4502=a23_0x2196,_0x4aaf45=_0x3e6eae[_0x6d4502(0x6f)]?_0x6d4502(0x6f):_0x6d4502(0x6a);return resolveWriteConfigPath(_0x4aaf45);}export function readConfig(_0x3f7dae={}){return readConfigFile(getConfigPath(_0x3f7dae));}export function writeConfig(_0xc1aacb,_0x12a682={}){writeConfigFile(getConfigPath(_0x12a682),_0xc1aacb);}export function scopeLabel(_0x3b7a97){const _0x36dee2=a23_0x2196;return _0x3b7a97[_0x36dee2(0x6f)]?_0x36dee2(0x76):'';}
|
package/lib/commands/app/use.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a24_0x3aa3(){const _0x594e4b=['length','App\x20profile\x20name\x20to\x20activate','Use\x20`','boolean','Default\x20app\x20set\x20to\x20\x22','\x22\x20was\x20defined\x20in\x20global\x20config;\x20profile\x20copied\x20into\x20project\x20so\x20the\x20project\x20config\x20self-resolves\x20under\x20the\x20default\x20project-first\x20inherit\x20policy.','validation','defaultApp','42qsKilH','use','2rgHnJx','54tuBjwQ','app','85918hZPnVT','global','885Mcfatx','App\x20\x22','Use\x20global\x20config\x20scope','projectPath','\x22\x20not\x20found.','540059nXLgSz','globalConfig','\x0aNote:\x20\x22','write','\x20app\x20use\x20<name>\x20[--global]','hasOwnProperty','object','args','Missing\x20app\x20name.','Available:\x20','name','Usage:\x20','20136hOtzMr','appcode','2169534dMRJFT','trim','Switch\x20the\x20default\x20app','prototype','keys','2072356EAVzQK','\x22\x20(appcode:\x20','call','apps','6302370VxmhiE','\x20--appcode\x20<code>`\x20first.','1566432hKdzgc'];a24_0x3aa3=function(){return _0x594e4b;};return a24_0x3aa3();}const a24_0x17015e=a24_0x57ee;(function(_0x365744,_0x449100){const _0x38308a=a24_0x57ee,_0x2b1efa=_0x365744();while(!![]){try{const _0x8557fe=parseInt(_0x38308a(0x1a7))/0x1+parseInt(_0x38308a(0x1cb))/0x2*(parseInt(_0x38308a(0x1b5))/0x3)+-parseInt(_0x38308a(0x1b3))/0x4*(-parseInt(_0x38308a(0x1a2))/0x5)+parseInt(_0x38308a(0x1c9))/0x6*(parseInt(_0x38308a(0x1a0))/0x7)+-parseInt(_0x38308a(0x1c0))/0x8*(parseInt(_0x38308a(0x1cc))/0x9)+-parseInt(_0x38308a(0x1be))/0xa+parseInt(_0x38308a(0x1ba))/0xb;if(_0x8557fe===_0x449100)break;else _0x2b1efa['push'](_0x2b1efa['shift']());}catch(_0xcbe2a9){_0x2b1efa['push'](_0x2b1efa['shift']());}}}(a24_0x3aa3,0x98394));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{readRawConfigWithLayers,isInProject}from'../../context.js';import{readConfig,writeConfig,scopeLabel}from'../../commands/app/shared.js';function a24_0x57ee(_0x3edb5c,_0x49d4cc){_0x3edb5c=_0x3edb5c-0x1a0;const _0x3aa3da=a24_0x3aa3();let _0x57eec9=_0x3aa3da[_0x3edb5c];return _0x57eec9;}async function validateArgs(_0x5b6f8b){const _0x275bda=a24_0x57ee,_0x4537b8=_0x5b6f8b[_0x275bda(0x1ae)][0x0]?.[_0x275bda(0x1b6)]();if(!_0x4537b8)throw CliErrors[_0x275bda(0x1c7)](_0x275bda(0x1af),_0x275bda(0x1b2)+CLI_BIN_NAME+_0x275bda(0x1ab));}async function execute(_0x5adb1a){const _0x42d1d0=a24_0x57ee,_0x47e0dd=_0x5adb1a[_0x42d1d0(0x1ae)][0x0]?.[_0x42d1d0(0x1b6)]();if(!_0x47e0dd)throw CliErrors[_0x42d1d0(0x1c7)](_0x42d1d0(0x1af),_0x42d1d0(0x1b2)+CLI_BIN_NAME+_0x42d1d0(0x1ab));const _0x1d264b=_0x5adb1a['bool'](_0x42d1d0(0x1a1)),{config:_0x2f29a7,layers:_0x5b27b6}=readRawConfigWithLayers(),_0x4790cb=_0x2f29a7[_0x42d1d0(0x1bd)]??{},_0x187aa2=_0x5b27b6[_0x42d1d0(0x1a8)]['apps']&&typeof _0x5b27b6[_0x42d1d0(0x1a8)][_0x42d1d0(0x1bd)]==='object'?_0x5b27b6['globalConfig'][_0x42d1d0(0x1bd)]:{},_0x4ca70e={..._0x187aa2,..._0x4790cb};if(!_0x4ca70e[_0x47e0dd]){const _0x4af1cf=Object[_0x42d1d0(0x1b9)](_0x4ca70e),_0x1da17c=_0x4af1cf[_0x42d1d0(0x1c1)]===0x0?_0x42d1d0(0x1c3)+CLI_BIN_NAME+'\x20app\x20add\x20'+_0x47e0dd+_0x42d1d0(0x1bf):_0x42d1d0(0x1b0)+_0x4af1cf['join'](',\x20');throw CliErrors['validation'](_0x42d1d0(0x1a3)+_0x47e0dd+_0x42d1d0(0x1a6),_0x1da17c);}let _0x5dcd01,_0x5bd46c='';if(_0x1d264b)_0x5dcd01={'global':!![]};else{const _0x256fb0=isInProject()&&!!_0x5b27b6[_0x42d1d0(0x1a5)];_0x5dcd01={'global':!_0x256fb0};}const _0x43d3b9=readConfig(_0x5dcd01);_0x43d3b9[_0x42d1d0(0x1c8)]=_0x47e0dd;if(!_0x5dcd01[_0x42d1d0(0x1a1)]){const _0x5bde0e=_0x43d3b9[_0x42d1d0(0x1bd)]&&typeof _0x43d3b9[_0x42d1d0(0x1bd)]===_0x42d1d0(0x1ad)?_0x43d3b9[_0x42d1d0(0x1bd)]:{};!Object[_0x42d1d0(0x1b8)][_0x42d1d0(0x1ac)][_0x42d1d0(0x1bc)](_0x5bde0e,_0x47e0dd)&&(_0x43d3b9[_0x42d1d0(0x1bd)]={..._0x5bde0e,[_0x47e0dd]:_0x4ca70e[_0x47e0dd]},_0x5bd46c=_0x42d1d0(0x1a9)+_0x47e0dd+_0x42d1d0(0x1c6));}return writeConfig(_0x43d3b9,_0x5dcd01),{'ok':!![],'message':_0x42d1d0(0x1c5)+_0x47e0dd+_0x42d1d0(0x1bb)+_0x4ca70e[_0x47e0dd][_0x42d1d0(0x1b4)]+')'+scopeLabel(_0x5dcd01)+_0x5bd46c};}export const appUseDefinition={'service':a24_0x17015e(0x1cd),'command':a24_0x17015e(0x1ca),'description':a24_0x17015e(0x1b7),'risk':a24_0x17015e(0x1aa),'requiresAuth':![],'requiresAppCode':![],'args':[{'name':a24_0x17015e(0x1b1),'description':a24_0x17015e(0x1c2),'required':!![]}],'flags':[{'name':a24_0x17015e(0x1a1),'type':a24_0x17015e(0x1c4),'description':a24_0x17015e(0x1a4),'default':![]}],'validate':validateArgs,'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a25_0x1e41af=a25_0x5120;(function(_0x5869e2,_0x18650c){const _0xb7b35d=a25_0x5120,_0x20c84a=_0x5869e2();while(!![]){try{const _0x549cd6=-parseInt(_0xb7b35d(0xd1))/0x1+-parseInt(_0xb7b35d(0xcc))/0x2*(-parseInt(_0xb7b35d(0xcb))/0x3)+parseInt(_0xb7b35d(0xd2))/0x4*(-parseInt(_0xb7b35d(0xcd))/0x5)+parseInt(_0xb7b35d(0xc8))/0x6+parseInt(_0xb7b35d(0xd8))/0x7*(parseInt(_0xb7b35d(0xc6))/0x8)+parseInt(_0xb7b35d(0xc2))/0x9*(-parseInt(_0xb7b35d(0xd5))/0xa)+parseInt(_0xb7b35d(0xd3))/0xb;if(_0x549cd6===_0x18650c)break;else _0x20c84a['push'](_0x20c84a['shift']());}catch(_0x18e63e){_0x20c84a['push'](_0x20c84a['shift']());}}}(a25_0x411b,0x3469b));import{unlinkSync,existsSync}from'node:fs';import{cookieFile}from'../../auth/constant.js';function a25_0x5120(_0x28c1c8,_0x246236){_0x28c1c8=_0x28c1c8-0xc1;const _0x411bda=a25_0x411b();let _0x512081=_0x411bda[_0x28c1c8];return _0x512081;}function a25_0x411b(){const _0x5a95af=['Clear\x20login\x20session','147259Ndydrd','✓\x20Logged\x20out','logout','read','2696283iHMaVv','auth','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','write','8qrKLzs','bool','169650faubpC','!\x20Not\x20logged\x20in','log','21zVvUcG','82652uorZWs','538320TIkOej','../../auth/auth-server-ui.js','boolean','nonInteractive','98127Fruwax','8rWtqym','5380441CbjKxn','Login\x20via\x20browser','10adtHxr','yes'];a25_0x411b=function(){return _0x5a95af;};return a25_0x411b();}export const authDefinitions=[{'service':a25_0x1e41af(0xc3),'command':'login','description':a25_0x1e41af(0xd4),'risk':a25_0x1e41af(0xc1),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'yes','type':a25_0x1e41af(0xcf),'description':a25_0x1e41af(0xc4),'default':![]}],async 'execute'(_0x24fe71){const _0x2efbed=a25_0x1e41af,{runAuthServer:_0x5be662}=await import(_0x2efbed(0xce));return await _0x5be662({'autoYes':_0x24fe71[_0x2efbed(0xc7)](_0x2efbed(0xd6)),'nonInteractive':_0x24fe71[_0x2efbed(0xd0)]}),{'ok':!![]};}},{'service':a25_0x1e41af(0xc3),'command':a25_0x1e41af(0xda),'description':a25_0x1e41af(0xd7),'risk':a25_0x1e41af(0xc5),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x14d91d){const _0x5521e2=a25_0x1e41af;return existsSync(cookieFile)?(unlinkSync(cookieFile),console['log'](_0x5521e2(0xd9))):console[_0x5521e2(0xca)](_0x5521e2(0xc9)),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a26_0x23e894=a26_0x4e14;(function(_0x30fb13,_0x38c632){const _0x414e8d=a26_0x4e14,_0x15c9ca=_0x30fb13();while(!![]){try{const _0x46005b=-parseInt(_0x414e8d(0xf8))/0x1*(-parseInt(_0x414e8d(0xc6))/0x2)+parseInt(_0x414e8d(0xd4))/0x3*(-parseInt(_0x414e8d(0xc2))/0x4)+-parseInt(_0x414e8d(0xd6))/0x5+parseInt(_0x414e8d(0xbb))/0x6+parseInt(_0x414e8d(0xef))/0x7*(-parseInt(_0x414e8d(0xd3))/0x8)+-parseInt(_0x414e8d(0x107))/0x9+-parseInt(_0x414e8d(0xdd))/0xa*(-parseInt(_0x414e8d(0x104))/0xb);if(_0x46005b===_0x38c632)break;else _0x15c9ca['push'](_0x15c9ca['shift']());}catch(_0x1d0fbf){_0x15c9ca['push'](_0x15c9ca['shift']());}}}(a26_0x3e03,0xbc4ce));import{createInterface}from'node:readline';import{mkdir,writeFile}from'node:fs/promises';import{dirname,join}from'node:path';import{listDatasets,listBffDatasetOperations}from'../../core/api-client.js';import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiFilePath}from'../../context.js';function a26_0x4e14(_0x21ee79,_0x3fbd2c){_0x21ee79=_0x21ee79-0xba;const _0x3e03f0=a26_0x3e03();let _0x4e1445=_0x3e03f0[_0x21ee79];return _0x4e1445;}import{loadBffProjectConfig}from'../../core/bff/config.js';import{fileExists}from'../../core/bff/file-system.js';import{isValidBffFunctionName,normalizeHookFunctionNode}from'../../core/bff/utils.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const bffCreate={'service':a26_0x23e894(0xca),'command':a26_0x23e894(0x10d),'description':a26_0x23e894(0xff),'risk':a26_0x23e894(0xe0),'flags':[{'name':'type','type':'string','required':!![],'enum':[a26_0x23e894(0xed),'ENDPOINT',a26_0x23e894(0xdf)],'description':'Script\x20type'},{'name':a26_0x23e894(0xc7),'type':a26_0x23e894(0xbc),'required':!![],'description':'Function\x20name\x20(valid\x20JS\x20identifier)'},{'name':'description','type':'string','description':a26_0x23e894(0xcd)},{'name':'alias','type':a26_0x23e894(0xbc),'description':a26_0x23e894(0xe4)},{'name':a26_0x23e894(0xf0),'type':a26_0x23e894(0xbc),'description':'Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)'},{'name':a26_0x23e894(0xc0),'type':a26_0x23e894(0xbc),'description':a26_0x23e894(0xfa)},{'name':a26_0x23e894(0xc3),'type':'string','description':a26_0x23e894(0xcf),'enum':[a26_0x23e894(0xe6),a26_0x23e894(0x100)]}],async 'validate'(_0x3d3c4b){const _0x3631ff=a26_0x23e894,_0x13987b=_0x3d3c4b[_0x3631ff(0x103)](_0x3631ff(0xc7));if(!isValidBffFunctionName(_0x13987b))throw CliErrors[_0x3631ff(0xde)]('Invalid\x20function\x20name\x20\x22'+_0x13987b+_0x3631ff(0xeb));},async 'execute'(_0xacde2){const _0x262e89=a26_0x23e894,_0x1f388=loadBffProjectConfig(_0xacde2[_0x262e89(0xc9)]),_0x2c38f2=_0xacde2[_0x262e89(0x103)](_0x262e89(0xbd)),_0x353a5b=_0xacde2[_0x262e89(0x103)]('name'),_0x4666f4=_0xacde2[_0x262e89(0x103)](_0x262e89(0xbe))||undefined,_0x3a9d07=_0x2c38f2==='HOOK'?await resolveHookOptions(_0x1f388,_0xacde2):undefined,_0xe38f3=buildFilePath(_0x1f388,_0x2c38f2,_0x353a5b,_0x3a9d07);if(await fileExists(_0xe38f3))throw CliErrors[_0x262e89(0xde)](_0x262e89(0xbf)+_0xe38f3);await mkdir(dirname(_0xe38f3),{'recursive':!![]});const _0x5d6746=generateTemplate(_0x2c38f2,_0x353a5b,_0xacde2[_0x262e89(0xc9)],_0x4666f4,_0x3a9d07);await writeFile(_0xe38f3,_0x5d6746,_0x262e89(0xba));const _0x3b9ccc={'type':_0x2c38f2,'name':_0x353a5b,'path':_0xe38f3};if(_0x4666f4)_0x3b9ccc[_0x262e89(0xbe)]=_0x4666f4;if(_0x3a9d07){if(_0x3a9d07['alias'])_0x3b9ccc[_0x262e89(0x10c)]=_0x3a9d07['alias'];_0x3b9ccc[_0x262e89(0xfc)]=_0x3a9d07[_0x262e89(0xfc)],_0x3b9ccc[_0x262e89(0xfd)]=_0x3a9d07[_0x262e89(0xfd)],_0x3b9ccc[_0x262e89(0xe5)]=_0x3a9d07[_0x262e89(0xe5)];}return{'ok':!![],'data':_0x3b9ccc,'message':_0x262e89(0xd1)+_0x2c38f2+_0x262e89(0x10b)+_0x353a5b};}};async function resolveHookOptions(_0xde3924,_0x5b699a){const _0xdbbbb3=a26_0x23e894,_0x3ff0c3=loadAliasMap(_0x5b699a[_0xdbbbb3(0xd5)],undefined,resolveApiFilePath(_0x5b699a[_0xdbbbb3(0xd5)],_0x5b699a[_0xdbbbb3(0xc9)])),_0x2c903b=_0x3ff0c3[_0xdbbbb3(0xe1)]>0x0;let _0x12487d,_0x5da372,_0x4d854d;const _0x4dc68a=_0x5b699a[_0xdbbbb3(0x103)](_0xdbbbb3(0x10c)),_0x3ae143=_0x5b699a[_0xdbbbb3(0x103)](_0xdbbbb3(0xf0));if(_0x4dc68a){const _0x515320=resolveAlias(_0x5b699a[_0xdbbbb3(0xd5)],_0x4dc68a,undefined,resolveApiFilePath(_0x5b699a[_0xdbbbb3(0xd5)],_0x5b699a[_0xdbbbb3(0xc9)]));if(!_0x515320){const _0x1ea704=_0x2c903b?_0xdbbbb3(0xda)+_0x3ff0c3['map'](_0x3285e5=>_0x3285e5[_0xdbbbb3(0x10c)])[_0xdbbbb3(0x109)](',\x20'):_0xdbbbb3(0xcc)+CLI_BIN_NAME+_0xdbbbb3(0xd0);throw CliErrors[_0xdbbbb3(0xde)]('Alias\x20\x22'+_0x4dc68a+'\x22\x20not\x20found.\x20'+_0x1ea704);}_0x12487d=_0x4dc68a,_0x5da372=_0x515320;}else{if(_0x3ae143){_0x5da372=_0x3ae143;const _0x5939ad=_0x3ff0c3[_0xdbbbb3(0xc4)](_0x4425d1=>_0x4425d1['datasetCode']===_0x3ae143);_0x12487d=_0x5939ad?.[_0xdbbbb3(0x10c)];}else{if(_0x5b699a[_0xdbbbb3(0xce)])throw CliErrors[_0xdbbbb3(0xde)](_0xdbbbb3(0x101));else{if(_0x2c903b){const _0x1bad13=_0x3ff0c3[_0xdbbbb3(0xc5)](_0x1fb32f=>_0x1fb32f[_0xdbbbb3(0x10c)]+'\x20('+_0x1fb32f[_0xdbbbb3(0xe9)]+')'),_0x1c1ad9=await promptSelect('Select\x20dataset:',_0x1bad13),_0x26ffbb=_0x3ff0c3[_0x1c1ad9];if(!_0x26ffbb)throw CliErrors[_0xdbbbb3(0xde)](_0xdbbbb3(0xf2));_0x12487d=_0x26ffbb[_0xdbbbb3(0x10c)],_0x5da372=_0x26ffbb['datasetCode'];}else{const _0x57614e=await listDatasets(_0x5b699a[_0xdbbbb3(0xc9)]);if(_0x57614e[_0xdbbbb3(0xe1)]===0x0)throw CliErrors[_0xdbbbb3(0xde)]('No\x20datasets\x20found\x20for\x20this\x20app.');const _0x17773c=_0x57614e[_0xdbbbb3(0xc5)](_0x4995f9=>_0x4995f9[_0xdbbbb3(0xc7)]+'\x20['+(_0x4995f9['source']??_0xdbbbb3(0xf6))+_0xdbbbb3(0xe8)+_0x4995f9['code']+')'),_0x27feee=await promptSelect('Select\x20dataset:',_0x17773c),_0x28363c=_0x57614e[_0x27feee];if(!_0x28363c)throw CliErrors['validation']('Invalid\x20dataset\x20selection.');_0x5da372=_0x28363c['code'],_0x12487d=undefined;}}}}const _0x178fca=await listDatasets(_0x5b699a[_0xdbbbb3(0xc9)]),_0x1a9bc0=_0x178fca[_0xdbbbb3(0xc4)](_0xb5578f=>_0xb5578f[_0xdbbbb3(0xfe)]===_0x5da372);if(!_0x1a9bc0)throw CliErrors[_0xdbbbb3(0xde)](_0xdbbbb3(0xe7)+_0x5da372+_0xdbbbb3(0xfb)+(_0x12487d?'The\x20api.ts\x20may\x20be\x20stale\x20—\x20run\x20`'+CLI_BIN_NAME+_0xdbbbb3(0xc8):''));_0x4d854d=_0x1a9bc0['id'];const _0x4c453c=_0x12487d??_0x5da372,_0xe01c35=await listBffDatasetOperations(_0x5b699a[_0xdbbbb3(0xc9)],_0x4d854d),_0x4afe6a=_0xe01c35?Object['keys'](_0xe01c35):[];if(_0x4afe6a[_0xdbbbb3(0xe1)]===0x0)throw CliErrors[_0xdbbbb3(0xde)](_0xdbbbb3(0xdc)+_0x4c453c+'.');let _0x142d92;const _0x1200b5=_0x5b699a[_0xdbbbb3(0x103)](_0xdbbbb3(0xc0));if(_0x1200b5){if(!_0x4afe6a['includes'](_0x1200b5))throw CliErrors[_0xdbbbb3(0xde)](_0xdbbbb3(0xf5)+_0x1200b5+_0xdbbbb3(0xc1)+_0x4c453c+'.\x20'+(_0xdbbbb3(0xf9)+_0x4afe6a[_0xdbbbb3(0x109)](',\x20')));_0x142d92=_0x1200b5;}else{if(_0x5b699a['nonInteractive'])throw CliErrors[_0xdbbbb3(0xde)](_0xdbbbb3(0xf7));const _0x5bad1a=await promptSelect(_0xdbbbb3(0x108),_0x4afe6a);_0x142d92=_0x4afe6a[_0x5bad1a]??_0x4afe6a[0x0];}let _0x1f5da7=normalizeHookFunctionNode(_0x5b699a[_0xdbbbb3(0x103)](_0xdbbbb3(0xc3)));if(!_0x1f5da7){if(_0x5b699a[_0xdbbbb3(0x103)]('function-node'))throw CliErrors['validation']('--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.');if(_0x5b699a[_0xdbbbb3(0xce)])throw CliErrors[_0xdbbbb3(0xde)]('--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');const _0x404ecb=await promptSelect(_0xdbbbb3(0xee),['before',_0xdbbbb3(0x100)]);_0x1f5da7=['before',_0xdbbbb3(0x100)][_0x404ecb]??_0xdbbbb3(0xe6);}return{'alias':_0x12487d,'datasetCode':_0x5da372,'datasetId':_0x4d854d,'operationType':_0x142d92,'functionNode':_0x1f5da7};}async function promptSelect(_0x47280b,_0x3ca105){const _0x386308=a26_0x23e894;if(_0x3ca105[_0x386308(0xe1)]===0x1)return 0x0;for(const [_0xd030b0,_0x1c2e96]of _0x3ca105['entries']()){process[_0x386308(0x106)][_0x386308(0xe0)]('\x20\x20'+(_0xd030b0+0x1)+'.\x20'+_0x1c2e96+'\x0a');}const _0x481b08=createInterface({'input':process[_0x386308(0xec)],'output':process[_0x386308(0x106)]});while(!![]){const _0x21dd58=await new Promise(_0x46c8b1=>{_0x481b08['question'](_0x47280b+'\x20',_0x46c8b1);}),_0x311c00=Number['parseInt'](_0x21dd58[_0x386308(0xea)](),0xa);if(Number['isInteger'](_0x311c00)&&_0x311c00>=0x1&&_0x311c00<=_0x3ca105[_0x386308(0xe1)])return _0x481b08[_0x386308(0xd2)](),_0x311c00-0x1;process['stderr'][_0x386308(0xe0)](_0x386308(0x10e)+_0x3ca105[_0x386308(0xe1)]+'.\x0a');}}function buildFilePath(_0x46055c,_0x262f9c,_0xa908,_0xfc80de){const _0x3465ee=a26_0x23e894;if(_0x262f9c===_0x3465ee(0xdf)){if(!_0xfc80de)throw CliErrors[_0x3465ee(0xde)](_0x3465ee(0xf3));const _0x339a65=_0xfc80de[_0x3465ee(0x10c)]??_0xfc80de[_0x3465ee(0xfc)];return join(_0x46055c[_0x3465ee(0x102)],_0x3465ee(0xdf),_0x339a65,_0xfc80de['operationType'],_0xfc80de[_0x3465ee(0xe5)],_0xa908+_0x3465ee(0xdb));}return join(_0x46055c[_0x3465ee(0x102)],_0x262f9c,_0xa908+'.js');}export function generateTemplate(_0x4e2a28,_0x2c6996,_0x355393,_0x49353e,_0x49cfaa){const _0x17dcac=a26_0x23e894,_0x585c2d=_0x49353e?.[_0x17dcac(0xea)]()||_0x17dcac(0xf4);if(_0x4e2a28===_0x17dcac(0xed))return'/**\x0a\x20*\x20COMMON\x20function\x20template.\x0a\x20*\x0a\x20*\x20[脚本描述]\x20'+_0x585c2d+_0x17dcac(0x10a)+_0x2c6996+_0x17dcac(0x105)+_0x2c6996+_0x17dcac(0xd9)+_0x2c6996+'(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a';if(_0x4e2a28==='ENDPOINT')return _0x17dcac(0xd7)+_0x585c2d+_0x17dcac(0xf1)+_0x355393+'/'+_0x2c6996+'\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20-\x20Request\x20parameters.\x0a\x20*\x20@param\x20{Object}\x20context\x20-\x20Execution\x20context\x20(injected\x20by\x20platform).\x0a\x20*\x20@returns\x20{Promise<Object>}\x20Business\x20result\x20(wrapped\x20in\x20response.data).\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20'+_0x2c6996+_0x17dcac(0xcb);if(!_0x49cfaa)throw CliErrors[_0x17dcac(0xde)](_0x17dcac(0xe2));return'/**\x0a\x20*\x20HOOK\x20function\x20template.\x0a\x20*\x0a\x20*\x20[脚本描述]\x20'+_0x585c2d+_0x17dcac(0xd8)+_0x355393+'/'+_0x49cfaa[_0x17dcac(0xfc)]+'/'+_0x49cfaa[_0x17dcac(0xfd)]+'\x0a\x20*\x20[触发节点]\x20'+_0x49cfaa[_0x17dcac(0xe5)]+_0x17dcac(0xe3)+_0x2c6996+_0x17dcac(0xcb);}function a26_0x3e03(){const _0x291fe4=['Trigger\x20node\x20(HOOK\x20only)','\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.','Created\x20','close','3352ILvphV','3GSKKRd','apiDir','7548950Uxenej','/**\x0a\x20*\x20ENDPOINT\x20function\x20template.\x0a\x20*\x0a\x20*\x20[脚本描述]\x20','\x0a\x20*\x20[接口路径]\x20POST\x20/api/','.js\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20-\x20Input\x20parameters.\x0a\x20*\x20@param\x20{Object}\x20context\x20-\x20Execution\x20context\x20(injected\x20by\x20platform).\x0a\x20*\x20@returns\x20{Promise<Object>}\x20Processing\x20result.\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','Available\x20aliases:\x20','.js','No\x20operation\x20types\x20found\x20for\x20dataset\x20','18110TlvEbj','validation','HOOK','write','length','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20-\x20Current\x20request\x20params\x20or\x20response\x20result.\x0a\x20*\x20@param\x20{Object}\x20context\x20-\x20Execution\x20context\x20(injected\x20by\x20platform).\x0a\x20*\x20@returns\x20{Promise<Object>}\x20Modified\x20params\x20object.\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)','functionNode','before','Dataset\x20not\x20found\x20for\x20code\x20\x22',']\x20(','tableName','trim','\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).','stdin','COMMON','Select\x20trigger\x20node:','14483epesoh','datasetcode','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/{appCode}/{scriptName}\x0a\x20*\x20[当前示例]\x20POST\x20/api/endpoint/','Invalid\x20dataset\x20selection.','HOOK\x20requires\x20alias/operation/node\x20options.','TODO:\x20add\x20script\x20description','Operation\x20type\x20\x22','UNKNOWN','--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','837071TbaAxm','Available:\x20','Operation\x20type\x20(HOOK\x20only)','\x22.\x20','datasetCode','operationType','code','Scaffold\x20a\x20new\x20BFF\x20function\x20from\x20template','after','--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','scriptsRootDir','str','20999GfxfKJ','\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/COMMON/','stderr','1280898EroMOA','Select\x20operation\x20type:','join','\x0a\x20*\x20[脚本名称]\x20','\x20function:\x20','alias','create','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','utf8','783510pNGqoM','string','type','description','File\x20already\x20exists:\x20','operation-type','\x22\x20not\x20found\x20for\x20dataset\x20','4538216aCBfkS','function-node','find','map','2ZdpaOF','name','\x20api\x20pull`\x20to\x20refresh.','appCode','bff','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','No\x20api.ts\x20found.\x20Run\x20`','Script\x20description','nonInteractive'];a26_0x3e03=function(){return _0x291fe4;};return a26_0x3e03();}
|
|
1
|
+
const a26_0x563246=a26_0x2074;(function(_0x4021dc,_0x22b6b2){const _0x5537b3=a26_0x2074,_0xa301d2=_0x4021dc();while(!![]){try{const _0x59e1bf=-parseInt(_0x5537b3(0x211))/0x1*(-parseInt(_0x5537b3(0x221))/0x2)+parseInt(_0x5537b3(0x220))/0x3*(-parseInt(_0x5537b3(0x205))/0x4)+parseInt(_0x5537b3(0x230))/0x5+-parseInt(_0x5537b3(0x1e6))/0x6*(parseInt(_0x5537b3(0x222))/0x7)+-parseInt(_0x5537b3(0x20b))/0x8*(-parseInt(_0x5537b3(0x22d))/0x9)+-parseInt(_0x5537b3(0x1f1))/0xa+parseInt(_0x5537b3(0x231))/0xb;if(_0x59e1bf===_0x22b6b2)break;else _0xa301d2['push'](_0xa301d2['shift']());}catch(_0x2b20dc){_0xa301d2['push'](_0xa301d2['shift']());}}}(a26_0x2176,0x7dc62));import{createInterface}from'node:readline';import{mkdir,writeFile}from'node:fs/promises';import{dirname,join}from'node:path';import{listDatasets,listBffDatasetOperations}from'../../core/api-client.js';import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiFilePath}from'../../context.js';function a26_0x2074(_0x5d07a8,_0x232060){_0x5d07a8=_0x5d07a8-0x1e3;const _0x2176a3=a26_0x2176();let _0x20742b=_0x2176a3[_0x5d07a8];return _0x20742b;}import{loadBffProjectConfig}from'../../core/bff/config.js';function a26_0x2176(){const _0x5c1287=['datasetCode','.js','scriptsRootDir','43794JBfWEL','Script\x20description','HOOK','776285EiEHIw','27752076dNrScc','after','source','trim','description','type','code','HOOK\x20requires\x20alias/operation/node\x20options.','before','operation-type','COMMON','stdin','map','\x0a\x20*\x20[触发节点]\x20','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/{appCode}/{scriptName}\x0a\x20*\x20[当前示例]\x20POST\x20/api/endpoint/','No\x20operation\x20types\x20found\x20for\x20dataset\x20','\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).','length','9870Wdiikj','Function\x20name\x20(valid\x20JS\x20identifier)','--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','\x20function:\x20','appCode','entries','stderr','nonInteractive','\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.','--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.','\x0a\x20*\x20[脚本名称]\x20','8572930ivGSgj','validation','keys','functionNode','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','No\x20api.ts\x20found.\x20Run\x20`','apiDir','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','ENDPOINT','Invalid\x20function\x20name\x20\x22','/**\x0a\x20*\x20HOOK\x20function\x20template.\x0a\x20*\x0a\x20*\x20[脚本描述]\x20','\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20-\x20Request\x20parameters.\x0a\x20*\x20@param\x20{Object}\x20context\x20-\x20Execution\x20context\x20(injected\x20by\x20platform).\x0a\x20*\x20@returns\x20{Promise<Object>}\x20Business\x20result\x20(wrapped\x20in\x20response.data).\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','Select\x20dataset:','bff','alias','find','Created\x20','\x20api\x20pull`\x20to\x20refresh.','.js\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20-\x20Input\x20parameters.\x0a\x20*\x20@param\x20{Object}\x20context\x20-\x20Execution\x20context\x20(injected\x20by\x20platform).\x0a\x20*\x20@returns\x20{Promise<Object>}\x20Processing\x20result.\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','Script\x20type','12492ywjMZQ','isInteger','\x22\x20not\x20found.\x20','UNKNOWN','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','Select\x20trigger\x20node:','640Ugmaso','string','Available:\x20','tableName','Dataset\x20not\x20found\x20for\x20code\x20\x22','str','3089SfiwEk',']\x20(','/**\x0a\x20*\x20ENDPOINT\x20function\x20template.\x0a\x20*\x0a\x20*\x20[脚本描述]\x20','function-node','Available\x20aliases:\x20','Trigger\x20node\x20(HOOK\x20only)','\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/COMMON/','\x22.\x20','File\x20already\x20exists:\x20','write','\x0a\x20*\x20[接口路径]\x20POST\x20/api/','join','name','question','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','786tFrCIh','98NxVurA','4375ItluEn','Invalid\x20dataset\x20selection.','\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20-\x20Current\x20request\x20params\x20or\x20response\x20result.\x0a\x20*\x20@param\x20{Object}\x20context\x20-\x20Execution\x20context\x20(injected\x20by\x20platform).\x0a\x20*\x20@returns\x20{Promise<Object>}\x20Modified\x20params\x20object.\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','operationType','Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)','No\x20datasets\x20found\x20for\x20this\x20app.','create','datasetcode'];a26_0x2176=function(){return _0x5c1287;};return a26_0x2176();}import{fileExists}from'../../core/bff/file-system.js';import{isValidBffFunctionName,normalizeHookFunctionNode}from'../../core/bff/utils.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const bffCreate={'service':a26_0x563246(0x1fe),'command':a26_0x563246(0x228),'description':'Scaffold\x20a\x20new\x20BFF\x20function\x20from\x20template','risk':a26_0x563246(0x21a),'flags':[{'name':a26_0x563246(0x236),'type':a26_0x563246(0x20c),'required':!![],'enum':[a26_0x563246(0x23b),a26_0x563246(0x1f9),a26_0x563246(0x22f)],'description':a26_0x563246(0x204)},{'name':'name','type':a26_0x563246(0x20c),'required':!![],'description':a26_0x563246(0x1e7)},{'name':a26_0x563246(0x235),'type':'string','description':a26_0x563246(0x22e)},{'name':a26_0x563246(0x1ff),'type':a26_0x563246(0x20c),'description':a26_0x563246(0x226)},{'name':a26_0x563246(0x229),'type':a26_0x563246(0x20c),'description':a26_0x563246(0x21f)},{'name':a26_0x563246(0x23a),'type':a26_0x563246(0x20c),'description':'Operation\x20type\x20(HOOK\x20only)'},{'name':a26_0x563246(0x214),'type':a26_0x563246(0x20c),'description':a26_0x563246(0x216),'enum':[a26_0x563246(0x239),a26_0x563246(0x232)]}],async 'validate'(_0xc2c702){const _0x4cbb8c=a26_0x563246,_0x145c3e=_0xc2c702[_0x4cbb8c(0x210)]('name');if(!isValidBffFunctionName(_0x145c3e))throw CliErrors['validation'](_0x4cbb8c(0x1fa)+_0x145c3e+_0x4cbb8c(0x1e4));},async 'execute'(_0x1e06f9){const _0x3fa0bc=a26_0x563246,_0x5b9a6e=loadBffProjectConfig(_0x1e06f9[_0x3fa0bc(0x1ea)]),_0x1d87eb=_0x1e06f9[_0x3fa0bc(0x210)](_0x3fa0bc(0x236)),_0x4579ad=_0x1e06f9[_0x3fa0bc(0x210)](_0x3fa0bc(0x21d)),_0x2dfad3=_0x1e06f9['str'](_0x3fa0bc(0x235))||undefined,_0x95ffb7=_0x1d87eb===_0x3fa0bc(0x22f)?await resolveHookOptions(_0x5b9a6e,_0x1e06f9):undefined,_0x1bd100=buildFilePath(_0x5b9a6e,_0x1d87eb,_0x4579ad,_0x95ffb7);if(await fileExists(_0x1bd100))throw CliErrors[_0x3fa0bc(0x1f2)](_0x3fa0bc(0x219)+_0x1bd100);await mkdir(dirname(_0x1bd100),{'recursive':!![]});const _0x5e72cc=generateTemplate(_0x1d87eb,_0x4579ad,_0x1e06f9[_0x3fa0bc(0x1ea)],_0x2dfad3,_0x95ffb7);await writeFile(_0x1bd100,_0x5e72cc,'utf8');const _0x3553da={'type':_0x1d87eb,'name':_0x4579ad,'path':_0x1bd100};if(_0x2dfad3)_0x3553da[_0x3fa0bc(0x235)]=_0x2dfad3;if(_0x95ffb7){if(_0x95ffb7['alias'])_0x3553da['alias']=_0x95ffb7['alias'];_0x3553da['datasetCode']=_0x95ffb7[_0x3fa0bc(0x22a)],_0x3553da[_0x3fa0bc(0x225)]=_0x95ffb7[_0x3fa0bc(0x225)],_0x3553da[_0x3fa0bc(0x1f4)]=_0x95ffb7['functionNode'];}return{'ok':!![],'data':_0x3553da,'message':_0x3fa0bc(0x201)+_0x1d87eb+_0x3fa0bc(0x1e9)+_0x4579ad};}};async function resolveHookOptions(_0x358a8f,_0xe8e025){const _0x75b70=a26_0x563246,_0x3c99c3=loadAliasMap(_0xe8e025['apiDir'],undefined,resolveApiFilePath(_0xe8e025[_0x75b70(0x1f7)],_0xe8e025[_0x75b70(0x1ea)])),_0x47c6cf=_0x3c99c3[_0x75b70(0x1e5)]>0x0;let _0x3d9869,_0x2574b6,_0x4b2446;const _0x179268=_0xe8e025['str']('alias'),_0x4b5f15=_0xe8e025[_0x75b70(0x210)]('datasetcode');if(_0x179268){const _0x31c1dd=resolveAlias(_0xe8e025[_0x75b70(0x1f7)],_0x179268,undefined,resolveApiFilePath(_0xe8e025[_0x75b70(0x1f7)],_0xe8e025[_0x75b70(0x1ea)]));if(!_0x31c1dd){const _0x3b36b6=_0x47c6cf?_0x75b70(0x215)+_0x3c99c3[_0x75b70(0x23d)](_0x47e6ae=>_0x47e6ae[_0x75b70(0x1ff)])['join'](',\x20'):_0x75b70(0x1f6)+CLI_BIN_NAME+_0x75b70(0x1ee);throw CliErrors[_0x75b70(0x1f2)]('Alias\x20\x22'+_0x179268+_0x75b70(0x207)+_0x3b36b6);}_0x3d9869=_0x179268,_0x2574b6=_0x31c1dd;}else{if(_0x4b5f15){_0x2574b6=_0x4b5f15;const _0x227a6e=_0x3c99c3['find'](_0x22553c=>_0x22553c[_0x75b70(0x22a)]===_0x4b5f15);_0x3d9869=_0x227a6e?.[_0x75b70(0x1ff)];}else{if(_0xe8e025[_0x75b70(0x1ed)])throw CliErrors[_0x75b70(0x1f2)]('--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');else{if(_0x47c6cf){const _0x5d888d=_0x3c99c3['map'](_0x1b4a7b=>_0x1b4a7b[_0x75b70(0x1ff)]+'\x20('+_0x1b4a7b[_0x75b70(0x20e)]+')'),_0x49a091=await promptSelect(_0x75b70(0x1fd),_0x5d888d),_0x26ae97=_0x3c99c3[_0x49a091];if(!_0x26ae97)throw CliErrors[_0x75b70(0x1f2)](_0x75b70(0x223));_0x3d9869=_0x26ae97[_0x75b70(0x1ff)],_0x2574b6=_0x26ae97[_0x75b70(0x22a)];}else{const _0x52b02f=await listDatasets(_0xe8e025[_0x75b70(0x1ea)]);if(_0x52b02f[_0x75b70(0x1e5)]===0x0)throw CliErrors['validation'](_0x75b70(0x227));const _0x51d774=_0x52b02f[_0x75b70(0x23d)](_0xe46871=>_0xe46871['name']+'\x20['+(_0xe46871[_0x75b70(0x233)]??_0x75b70(0x208))+_0x75b70(0x212)+_0xe46871[_0x75b70(0x237)]+')'),_0x75e87a=await promptSelect(_0x75b70(0x1fd),_0x51d774),_0xa416b2=_0x52b02f[_0x75e87a];if(!_0xa416b2)throw CliErrors['validation'](_0x75b70(0x223));_0x2574b6=_0xa416b2[_0x75b70(0x237)],_0x3d9869=undefined;}}}}const _0x30bd0a=await listDatasets(_0xe8e025[_0x75b70(0x1ea)]),_0x17c648=_0x30bd0a[_0x75b70(0x200)](_0x26d949=>_0x26d949[_0x75b70(0x237)]===_0x2574b6);if(!_0x17c648)throw CliErrors['validation'](_0x75b70(0x20f)+_0x2574b6+_0x75b70(0x218)+(_0x3d9869?'The\x20api.ts\x20may\x20be\x20stale\x20—\x20run\x20`'+CLI_BIN_NAME+_0x75b70(0x202):''));_0x4b2446=_0x17c648['id'];const _0x27f707=_0x3d9869??_0x2574b6,_0x132ab6=await listBffDatasetOperations(_0xe8e025['appCode'],_0x4b2446),_0x575d78=_0x132ab6?Object[_0x75b70(0x1f3)](_0x132ab6):[];if(_0x575d78[_0x75b70(0x1e5)]===0x0)throw CliErrors[_0x75b70(0x1f2)](_0x75b70(0x1e3)+_0x27f707+'.');let _0x28ba4c;const _0x936bc4=_0xe8e025[_0x75b70(0x210)](_0x75b70(0x23a));if(_0x936bc4){if(!_0x575d78['includes'](_0x936bc4))throw CliErrors[_0x75b70(0x1f2)]('Operation\x20type\x20\x22'+_0x936bc4+'\x22\x20not\x20found\x20for\x20dataset\x20'+_0x27f707+'.\x20'+(_0x75b70(0x20d)+_0x575d78[_0x75b70(0x21c)](',\x20')));_0x28ba4c=_0x936bc4;}else{if(_0xe8e025[_0x75b70(0x1ed)])throw CliErrors[_0x75b70(0x1f2)]('--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');const _0x21f257=await promptSelect('Select\x20operation\x20type:',_0x575d78);_0x28ba4c=_0x575d78[_0x21f257]??_0x575d78[0x0];}let _0x1a836e=normalizeHookFunctionNode(_0xe8e025[_0x75b70(0x210)](_0x75b70(0x214)));if(!_0x1a836e){if(_0xe8e025[_0x75b70(0x210)]('function-node'))throw CliErrors['validation'](_0x75b70(0x1ef));if(_0xe8e025['nonInteractive'])throw CliErrors['validation'](_0x75b70(0x1e8));const _0x131264=await promptSelect(_0x75b70(0x20a),[_0x75b70(0x239),_0x75b70(0x232)]);_0x1a836e=[_0x75b70(0x239),_0x75b70(0x232)][_0x131264]??_0x75b70(0x239);}return{'alias':_0x3d9869,'datasetCode':_0x2574b6,'datasetId':_0x4b2446,'operationType':_0x28ba4c,'functionNode':_0x1a836e};}async function promptSelect(_0x12dadf,_0x48dcca){const _0x454309=a26_0x563246;if(_0x48dcca[_0x454309(0x1e5)]===0x1)return 0x0;for(const [_0x3c3d37,_0x4dcad2]of _0x48dcca[_0x454309(0x1eb)]()){process[_0x454309(0x1ec)][_0x454309(0x21a)]('\x20\x20'+(_0x3c3d37+0x1)+'.\x20'+_0x4dcad2+'\x0a');}const _0xa46690=createInterface({'input':process[_0x454309(0x23c)],'output':process['stderr']});while(!![]){const _0x5cfbf0=await new Promise(_0x2ea496=>{const _0x346c40=_0x454309;_0xa46690[_0x346c40(0x21e)](_0x12dadf+'\x20',_0x2ea496);}),_0x33bfdb=Number['parseInt'](_0x5cfbf0[_0x454309(0x234)](),0xa);if(Number[_0x454309(0x206)](_0x33bfdb)&&_0x33bfdb>=0x1&&_0x33bfdb<=_0x48dcca[_0x454309(0x1e5)])return _0xa46690['close'](),_0x33bfdb-0x1;process[_0x454309(0x1ec)][_0x454309(0x21a)](_0x454309(0x1f8)+_0x48dcca['length']+'.\x0a');}}function buildFilePath(_0x160665,_0x18ffb0,_0x1bc0ec,_0x3be275){const _0xe7853d=a26_0x563246;if(_0x18ffb0===_0xe7853d(0x22f)){if(!_0x3be275)throw CliErrors[_0xe7853d(0x1f2)](_0xe7853d(0x238));const _0x4ed80b=_0x3be275[_0xe7853d(0x1ff)]??_0x3be275[_0xe7853d(0x22a)];return join(_0x160665['scriptsRootDir'],'HOOK',_0x4ed80b,_0x3be275['operationType'],_0x3be275[_0xe7853d(0x1f4)],_0x1bc0ec+_0xe7853d(0x22b));}return join(_0x160665[_0xe7853d(0x22c)],_0x18ffb0,_0x1bc0ec+_0xe7853d(0x22b));}export function generateTemplate(_0x541990,_0x5d9a53,_0x3b1adf,_0x4dd92c,_0xa8ad94){const _0x318990=a26_0x563246,_0x35d29e=_0x4dd92c?.['trim']()||'TODO:\x20add\x20script\x20description';if(_0x541990===_0x318990(0x23b))return'/**\x0a\x20*\x20COMMON\x20function\x20template.\x0a\x20*\x0a\x20*\x20[脚本描述]\x20'+_0x35d29e+_0x318990(0x1f0)+_0x5d9a53+_0x318990(0x217)+_0x5d9a53+_0x318990(0x203)+_0x5d9a53+_0x318990(0x1f5);if(_0x541990==='ENDPOINT')return _0x318990(0x213)+_0x35d29e+_0x318990(0x23f)+_0x3b1adf+'/'+_0x5d9a53+_0x318990(0x1fc)+_0x5d9a53+_0x318990(0x1f5);if(!_0xa8ad94)throw CliErrors[_0x318990(0x1f2)](_0x318990(0x209));return _0x318990(0x1fb)+_0x35d29e+_0x318990(0x21b)+_0x3b1adf+'/'+_0xa8ad94[_0x318990(0x22a)]+'/'+_0xa8ad94['operationType']+_0x318990(0x23e)+_0xa8ad94['functionNode']+_0x318990(0x224)+_0x5d9a53+_0x318990(0x1f5);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a27_0x7aee00=a27_0x2be2;function a27_0x3b2c(){const _0x17c170=['26368390bkCnOQ','trashDir','144XWFCGO','toISOString','Function\x20not\x20found:\x20','542664oNNupO','join','parse','bff','apps','19578jOVGSq','Local\x20delete\x20not\x20settled\x20for\x20','Would\x20delete\x20','No\x20lock\x20entry\x20found\x20for\x20\x22','1918MxuREy','Delete\x20a\x20BFF\x20script\x20from\x20remote\x20and\x20local','160614sGsozM','startsWith','functions','projectRoot','1911QhoZnH','string','delete','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','41388GofKop','map','479005HdgqOg','validation','lockFilePath','BFF\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','target','Lock\x20scope\x20for\x20app\x20\x22','\x22\x20not\x20found\x20after\x20ensureLockScope.','Multiple\x20functions\x20match\x20\x22','length','trashedTo','/api/management/library/scripts/delete','filter','BFF\x20lock\x20file\x20not\x20found.','132FmADxp','appCode','11ksBOfA','str','remoteId','stringify','split','POST','keys','scriptsRoot','Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name'];a27_0x3b2c=function(){return _0x17c170;};return a27_0x3b2c();}(function(_0x399dd9,_0x2eeacb){const _0x33d455=a27_0x2be2,_0x4c590f=_0x399dd9();while(!![]){try{const _0x3ea2c6=-parseInt(_0x33d455(0x1db))/0x1*(-parseInt(_0x33d455(0x1ee))/0x2)+parseInt(_0x33d455(0x209))/0x3+-parseInt(_0x33d455(0x1df))/0x4+-parseInt(_0x33d455(0x1e1))/0x5+-parseInt(_0x33d455(0x203))/0x6*(parseInt(_0x33d455(0x207))/0x7)+-parseInt(_0x33d455(0x1fb))/0x8*(parseInt(_0x33d455(0x1fe))/0x9)+parseInt(_0x33d455(0x1f9))/0xa*(parseInt(_0x33d455(0x1f0))/0xb);if(_0x3ea2c6===_0x2eeacb)break;else _0x4c590f['push'](_0x4c590f['shift']());}catch(_0x4bcbed){_0x4c590f['push'](_0x4c590f['shift']());}}}(a27_0x3b2c,0xb2755));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteBffScript}from'../../core/api-client.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{fileExists,resolveLocalFilePathFromLockKey}from'../../core/bff/file-system.js';import{ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{CliErrors}from'../../errors.js';import{sleep}from'../../utils/sleep.js';export const bffDelete={'service':a27_0x7aee00(0x201),'command':a27_0x7aee00(0x1dd),'description':a27_0x7aee00(0x208),'risk':'high-risk-write','flags':[{'name':'target','type':a27_0x7aee00(0x1dc),'required':!![],'description':a27_0x7aee00(0x1f8)}],async 'validate'(_0x57b386){const _0x1c49b1=a27_0x7aee00,_0x55f333=loadBffProjectConfig(_0x57b386[_0x1c49b1(0x1ef)]),_0x2affeb=await readBffLockFile(_0x55f333['lockFilePath']);if(!_0x2affeb)throw CliErrors['validation'](_0x1c49b1(0x1e4));},async 'dryRun'(_0x386b7e){const _0xa540af=a27_0x7aee00,_0x2e975d=loadBffProjectConfig(_0x386b7e[_0xa540af(0x1ef)]),_0x6c675a=await readBffLockFile(_0x2e975d[_0xa540af(0x1e3)]);if(!_0x6c675a)throw CliErrors[_0xa540af(0x1e2)]('BFF\x20lock\x20file\x20not\x20found.');const {appLock:_0x3dcc8d}=ensureLockScope(_0x6c675a,_0x386b7e[_0xa540af(0x1ef)],_0x2e975d[_0xa540af(0x1f7)],'delete'),_0x4eab96=_0x386b7e[_0xa540af(0x1f1)]('target'),_0x55822c=Object[_0xa540af(0x1f6)](_0x3dcc8d[_0xa540af(0x20b)]),_0x31006f=resolveDeleteTarget(_0x4eab96,_0x55822c),_0x2d57f3=_0x3dcc8d[_0xa540af(0x20b)][_0x31006f];if(!_0x2d57f3)throw CliErrors[_0xa540af(0x1e2)](_0xa540af(0x206)+_0x31006f+'\x22.');const _0x56191c=resolveLocalFilePathFromLockKey(_0x2e975d,_0x31006f),_0x4f58fa=relative(_0x2e975d['projectRoot'],_0x56191c),_0x44f682=join(_0x2e975d[_0xa540af(0x1fa)],'<timestamp>',_0x4f58fa);return{'method':_0xa540af(0x1f5),'url':_0xa540af(0x1eb),'body':{'appCode':_0x386b7e[_0xa540af(0x1ef)],'target':_0x31006f,'remoteId':_0x2d57f3[_0xa540af(0x1f2)],'localFilePath':_0x56191c,'trashedPath':_0x44f682},'description':_0xa540af(0x205)+_0x31006f+_0xa540af(0x1de)};},async 'execute'(_0x489f95){const _0x503109=a27_0x7aee00,_0x23a91e=loadBffProjectConfig(_0x489f95[_0x503109(0x1ef)]),_0x148c7f=await readBffLockFile(_0x23a91e[_0x503109(0x1e3)]);if(!_0x148c7f)throw CliErrors[_0x503109(0x1e2)](_0x503109(0x1ed));const {lockData:_0x40cc77,appLock:_0x56a8e5}=ensureLockScope(_0x148c7f,_0x489f95[_0x503109(0x1ef)],_0x23a91e[_0x503109(0x1f7)],'delete'),_0x512bbe=JSON[_0x503109(0x200)](JSON[_0x503109(0x1f3)](_0x40cc77)),_0x25c572=_0x512bbe[_0x503109(0x202)][_0x489f95['appCode']];if(!_0x25c572)throw new Error(_0x503109(0x1e6)+_0x489f95[_0x503109(0x1ef)]+_0x503109(0x1e7));const _0x426949=_0x489f95[_0x503109(0x1f1)](_0x503109(0x1e5)),_0x5d2003=Object[_0x503109(0x1f6)](_0x25c572[_0x503109(0x20b)]),_0x353c17=resolveDeleteTarget(_0x426949,_0x5d2003),_0x7e3f3f=_0x25c572[_0x503109(0x20b)][_0x353c17];if(!_0x7e3f3f)throw CliErrors[_0x503109(0x1e2)](_0x503109(0x206)+_0x353c17+'\x22.');await deleteBffScript(_0x7e3f3f[_0x503109(0x1f2)]),delete _0x25c572[_0x503109(0x20b)][_0x353c17],_0x25c572['lastSync']=new Date()[_0x503109(0x1fc)](),await writeBffLockFile(_0x23a91e['lockFilePath'],_0x512bbe);const _0x5f2e6f=resolveLocalFilePathFromLockKey(_0x23a91e,_0x353c17);let _0x4fb08f;await fileExists(_0x5f2e6f)&&(_0x4fb08f=await moveToTrash(_0x23a91e[_0x503109(0x1da)],_0x23a91e[_0x503109(0x1fa)],_0x5f2e6f),await cleanupEmptyDirectories(dirname(_0x5f2e6f),_0x23a91e['scriptsRootDir']));await waitForDeleteSettlement(_0x23a91e[_0x503109(0x1e3)],_0x489f95[_0x503109(0x1ef)],_0x353c17,_0x5f2e6f),await sleep(0x96);const _0x4681e8={'deleted':_0x353c17,'remoteId':_0x7e3f3f[_0x503109(0x1f2)]};if(_0x4fb08f)_0x4681e8[_0x503109(0x1ea)]=_0x4fb08f;return{'ok':!![],'data':_0x4681e8,'message':'Deleted\x20'+_0x353c17+(_0x4fb08f?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function resolveDeleteTarget(_0x462a6b,_0x2f2460){const _0x2ee463=a27_0x7aee00;if(_0x462a6b['includes']('/')){const _0x3fca09=_0x2f2460['find'](_0x133471=>_0x133471===_0x462a6b);if(!_0x3fca09)throw CliErrors['validation'](_0x2ee463(0x1fd)+_0x462a6b);return _0x3fca09;}const _0x4c7961=_0x2f2460[_0x2ee463(0x1ec)](_0x165d46=>_0x165d46[_0x2ee463(0x1f4)]('/')['at'](-0x1)===_0x462a6b);if(_0x4c7961['length']===0x0)throw CliErrors[_0x2ee463(0x1e2)](_0x2ee463(0x1fd)+_0x462a6b);if(_0x4c7961[_0x2ee463(0x1e9)]>0x1)throw CliErrors[_0x2ee463(0x1e2)](_0x2ee463(0x1e8)+_0x462a6b+'\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a'+_0x4c7961[_0x2ee463(0x1e0)](_0x40e3e5=>'\x20\x20-\x20'+_0x40e3e5)[_0x2ee463(0x1ff)]('\x0a'));return _0x4c7961[0x0];}async function moveToTrash(_0x45ea13,_0x2e4c91,_0x36fc79){const _0x113966=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0x4349fc=relative(_0x45ea13,_0x36fc79),_0x4e0330=join(_0x2e4c91,_0x113966,_0x4349fc);return await mkdir(dirname(_0x4e0330),{'recursive':!![]}),await rename(_0x36fc79,_0x4e0330),_0x4e0330;}async function cleanupEmptyDirectories(_0xa4b5e6,_0x17b5cb){const _0x54741d=a27_0x7aee00;let _0x58a3a1=resolve(_0xa4b5e6);const _0x31b108=resolve(_0x17b5cb);while(_0x58a3a1[_0x54741d(0x20a)](''+_0x31b108+sep)||_0x58a3a1===_0x31b108){if(_0x58a3a1===_0x31b108)return;try{const _0x57fac0=await readdir(_0x58a3a1);if(_0x57fac0[_0x54741d(0x1e9)]>0x0)return;await rmdir(_0x58a3a1);}catch{return;}_0x58a3a1=dirname(_0x58a3a1);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;function a27_0x2be2(_0x19e8ff,_0x514852){_0x19e8ff=_0x19e8ff-0x1da;const _0x3b2c1a=a27_0x3b2c();let _0x2be24c=_0x3b2c1a[_0x19e8ff];return _0x2be24c;}async function waitForDeleteSettlement(_0x441286,_0x9c5465,_0x14d74b,_0x3e682d){const _0x3b8ceb=a27_0x7aee00;for(let _0xc2b525=0x0;_0xc2b525<DELETE_SETTLE_RETRY_COUNT;_0xc2b525+=0x1){const _0x4b8be9=await readBffLockFile(_0x441286),_0x4d88f4=!!_0x4b8be9?.[_0x3b8ceb(0x202)]?.[_0x9c5465]?.[_0x3b8ceb(0x20b)]?.[_0x14d74b],_0x226078=await fileExists(_0x3e682d);if(!_0x4d88f4&&!_0x226078)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error(_0x3b8ceb(0x204)+_0x14d74b+'.');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a28_0x1133(){const _0x4eac09=['168RUsBVf','Get\x20BFF\x20script\x20details\x20by\x20ID','scriptContent','Script\x20ID','13JaTngn','136539DVCmiS','134836UIMRJb','description','createdTime','(none)','updatedTime','num','1574780gSAWon','39248pgaQOM','detail','bool','Return\x20full\x20raw\x20script\x20object','bff','33qTDElg','verbose','9040xXqUAo','number','7541790lSADVJ','read','1675848jnnluL'];a28_0x1133=function(){return _0x4eac09;};return a28_0x1133();}const a28_0x2e7eb4=a28_0xd188;function a28_0xd188(_0x2ba442,_0x3b6a13){_0x2ba442=_0x2ba442-0x108;const _0x1133f1=a28_0x1133();let _0xd1885e=_0x1133f1[_0x2ba442];return _0xd1885e;}(function(_0x58b125,_0x39fcdf){const _0x249b2f=a28_0xd188,_0x4f7646=_0x58b125();while(!![]){try{const _0x5cadbb=parseInt(_0x249b2f(0x114))/0x1*(-parseInt(_0x249b2f(0x10b))/0x2)+-parseInt(_0x249b2f(0x109))/0x3*(parseInt(_0x249b2f(0x116))/0x4)+-parseInt(_0x249b2f(0x11c))/0x5+parseInt(_0x249b2f(0x10f))/0x6+-parseInt(_0x249b2f(0x110))/0x7*(parseInt(_0x249b2f(0x11d))/0x8)+parseInt(_0x249b2f(0x115))/0x9+parseInt(_0x249b2f(0x10d))/0xa;if(_0x5cadbb===_0x39fcdf)break;else _0x4f7646['push'](_0x4f7646['shift']());}catch(_0x584267){_0x4f7646['push'](_0x4f7646['shift']());}}}(a28_0x1133,0x2d81f));import{getBffScriptInfo}from'../../core/api-client.js';export const bffDetail={'service':a28_0x2e7eb4(0x108),'command':a28_0x2e7eb4(0x11e),'description':a28_0x2e7eb4(0x111),'risk':a28_0x2e7eb4(0x10e),'flags':[{'name':'id','type':a28_0x2e7eb4(0x10c),'required':!![],'description':a28_0x2e7eb4(0x113)},{'name':a28_0x2e7eb4(0x10a),'type':'boolean','description':a28_0x2e7eb4(0x120)}],async 'execute'(_0x2acdf7){const _0x3398ad=a28_0x2e7eb4,_0x423a57=await getBffScriptInfo(_0x2acdf7[_0x3398ad(0x11b)]('id')),_0x585620=_0x2acdf7[_0x3398ad(0x11f)](_0x3398ad(0x10a));if(_0x585620)return{'ok':!![],'data':_0x423a57};return{'ok':!![],'data':{'id':_0x423a57['id'],'appCode':_0x423a57['appCode'],'scriptType':_0x423a57['scriptType'],'description':_0x423a57[_0x3398ad(0x117)]||_0x3398ad(0x119),'createdTime':_0x423a57[_0x3398ad(0x118)]??'','updatedTime':_0x423a57[_0x3398ad(0x11a)]??'','scriptContent':_0x423a57[_0x3398ad(0x112)]??''}};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x51cbe9,_0x355575){const _0x797b7=a29_0x58c7,_0x121e48=_0x51cbe9();while(!![]){try{const _0x6839fd=parseInt(_0x797b7(0x1bb))/0x1*(-parseInt(_0x797b7(0x1b7))/0x2)+parseInt(_0x797b7(0x1b4))/0x3*(-parseInt(_0x797b7(0x1bd))/0x4)+-parseInt(_0x797b7(0x1bc))/0x5*(-parseInt(_0x797b7(0x1c0))/0x6)+parseInt(_0x797b7(0x1b6))/0x7+parseInt(_0x797b7(0x1bf))/0x8*(parseInt(_0x797b7(0x1b5))/0x9)+-parseInt(_0x797b7(0x1b9))/0xa*(parseInt(_0x797b7(0x1b8))/0xb)+parseInt(_0x797b7(0x1ba))/0xc*(parseInt(_0x797b7(0x1be))/0xd);if(_0x6839fd===_0x355575)break;else _0x121e48['push'](_0x121e48['shift']());}catch(_0x231060){_0x121e48['push'](_0x121e48['shift']());}}}(a29_0x40be,0x3fac6));import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';import{bffStatus}from'../../commands/bff/status.js';function a29_0x40be(){const _0x540bfb=['275764pBkeFY','87923EmCmDb','390JyZanU','1022412ZzuTBL','2QjUdsY','4885nEymsM','210788qtIRCO','39LomOue','3533312mtLkAV','498aaOpnT','6FtxMOA','9bwOEAA','1227331eCjKrH'];a29_0x40be=function(){return _0x540bfb;};return a29_0x40be();}import{bffCreate}from'../../commands/bff/create.js';import{bffPush}from'../../commands/bff/push.js';function a29_0x58c7(_0x32faab,_0x49869c){_0x32faab=_0x32faab-0x1b4;const _0x40be21=a29_0x40be();let _0x58c742=_0x40be21[_0x32faab];return _0x58c742;}import{bffPull}from'../../commands/bff/pull.js';import{bffDelete}from'../../commands/bff/delete.js';export const bffDefinitions=[bffList,bffDetail,bffStatus,bffCreate,bffPush,bffPull,bffDelete];
|
package/lib/commands/bff/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a30_0x56c0(_0x328927,_0x1f04d4){_0x328927=_0x328927-0x11c;const _0xf201d6=a30_0xf201();let _0x56c0d8=_0xf201d6[_0x328927];return _0x56c0d8;}const a30_0x409f8d=a30_0x56c0;function a30_0xf201(){const _0x38b33e=['length','43204Zlchuo','20xBoEkQ','10zubqnL','read','639336exlAPT','6389JnWxNy','56228WwdEfW','(unnamed)','COMMON','scriptType','string','appCode','List\x20BFF\x20scripts','No\x20BFF\x20scripts\x20found.','ENDPOINT','Filter\x20by\x20script\x20name','boolean','388122YvBCTB','verbose','248stVYdL','4831871aQZkct','433242jQqGmE','65ZVtkPk','bff','map','bool','str','Script\x20type\x20filter','functionName','name','Return\x20full\x20script\x20objects','description'];a30_0xf201=function(){return _0x38b33e;};return a30_0xf201();}(function(_0x47c3f3,_0x638b2f){const _0x5b40a4=a30_0x56c0,_0x4ddebf=_0x47c3f3();while(!![]){try{const _0x1bd455=-parseInt(_0x5b40a4(0x135))/0x1*(-parseInt(_0x5b40a4(0x132))/0x2)+parseInt(_0x5b40a4(0x120))/0x3+parseInt(_0x5b40a4(0x136))/0x4*(parseInt(_0x5b40a4(0x125))/0x5)+parseInt(_0x5b40a4(0x134))/0x6+parseInt(_0x5b40a4(0x130))/0x7*(parseInt(_0x5b40a4(0x122))/0x8)+-parseInt(_0x5b40a4(0x124))/0x9*(parseInt(_0x5b40a4(0x131))/0xa)+-parseInt(_0x5b40a4(0x123))/0xb;if(_0x1bd455===_0x638b2f)break;else _0x4ddebf['push'](_0x4ddebf['shift']());}catch(_0x108257){_0x4ddebf['push'](_0x4ddebf['shift']());}}}(a30_0xf201,0x19fab));import{listBffScripts}from'../../core/api-client.js';export const bffList={'service':a30_0x409f8d(0x126),'command':'list','description':a30_0x409f8d(0x13c),'risk':a30_0x409f8d(0x133),'flags':[{'name':'type','type':a30_0x409f8d(0x13a),'description':a30_0x409f8d(0x12a),'default':a30_0x409f8d(0x11d),'enum':[a30_0x409f8d(0x11d),a30_0x409f8d(0x138)]},{'name':'name','type':'string','description':a30_0x409f8d(0x11e)},{'name':'verbose','type':a30_0x409f8d(0x11f),'description':a30_0x409f8d(0x12d)}],async 'execute'(_0xa7d92e){const _0x43a728=a30_0x409f8d,_0x1e3660=await listBffScripts(_0xa7d92e[_0x43a728(0x13b)],_0xa7d92e[_0x43a728(0x129)]('type'),{'scriptName':_0xa7d92e[_0x43a728(0x129)](_0x43a728(0x12c))||undefined}),_0xf1715=_0xa7d92e[_0x43a728(0x128)](_0x43a728(0x121));return{'ok':!![],'data':_0xf1715?_0x1e3660:_0x1e3660[_0x43a728(0x127)](_0x478a4=>({'id':_0x478a4['id'],'functionName':_0x478a4[_0x43a728(0x12b)]??'','description':_0x478a4[_0x43a728(0x12e)]||_0x43a728(0x137),'scriptType':_0x478a4[_0x43a728(0x139)]})),'message':_0x1e3660[_0x43a728(0x12f)]===0x0?_0x43a728(0x11c):undefined};}};
|
package/lib/commands/bff/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a31_0xb74044=a31_0x5852;(function(_0x4cad7a,_0x16f787){const _0x2c70a2=a31_0x5852,_0x341b55=_0x4cad7a();while(!![]){try{const _0x2c8f22=parseInt(_0x2c70a2(0x1b9))/0x1*(parseInt(_0x2c70a2(0x1cd))/0x2)+-parseInt(_0x2c70a2(0x1cb))/0x3*(-parseInt(_0x2c70a2(0x1b0))/0x4)+-parseInt(_0x2c70a2(0x1ce))/0x5*(-parseInt(_0x2c70a2(0x1c9))/0x6)+parseInt(_0x2c70a2(0x1bc))/0x7+parseInt(_0x2c70a2(0x1a8))/0x8*(parseInt(_0x2c70a2(0x19b))/0x9)+parseInt(_0x2c70a2(0x1b5))/0xa*(-parseInt(_0x2c70a2(0x1b3))/0xb)+parseInt(_0x2c70a2(0x1ca))/0xc*(-parseInt(_0x2c70a2(0x1a5))/0xd);if(_0x2c8f22===_0x16f787)break;else _0x341b55['push'](_0x341b55['shift']());}catch(_0x252e98){_0x341b55['push'](_0x341b55['shift']());}}}(a31_0x17b6,0x24d45));import{createInterface}from'node:readline';import{writeFile}from'node:fs/promises';import{listBffScripts,getBffScriptStatistics}from'../../core/api-client.js';function a31_0x17b6(){const _0x2a80f1=['129736HNzOMN','push','message','hookLocation','length','yes','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','nonInteractive','708heYBEy','write','unresolvable\x20target\x20path','16687fHWUey','functions','1070FXNSEl','conflict','Remote\x20script\x20missing\x20content.','str','13yUGUMd','trim','Lock\x20scope\x20for\x20app\x20\x22','1016596QqWdgG','local\x20unsynced\x20changes','validation','Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20','functionName','type','parse','scriptContent','apps','Pull\x20complete:\x20','alias','ENDPOINT','boolean','6rhVgCD','84EvcekN','843mnBuRd','Pull\x20remote\x20BFF\x20scripts\x20to\x20local','9742qNsKGT','399705bOvsmH','bff','scriptType','version','HOOK','skipped','toLowerCase','force','filePath','bool','datasetCode','string','\x20remote\x20BFF\x20script(s)\x20for\x20pull','\x20pulled,\x20','&type=','Force\x20pull\x20cancelled.','pull','Pull\x20only\x20this\x20script\x20type','stringify','/api/management/library/scripts/list?appCode=','GET','scriptsRoot','operationType','\x22\x20not\x20found\x20after\x20ensureLockScope.','18nkjPEa','all','would_pull','question','lockKey','lockFilePath','\x20failed','No\x20remote\x20BFF\x20scripts\x20found.','utf8','hash','106769MQyxUS','appCode','apiDir'];a31_0x17b6=function(){return _0x2a80f1;};return a31_0x17b6();}import{loadAliasMap}from'../../core/alias-resolver.js';function a31_0x5852(_0x5d0d37,_0x26d325){_0x5d0d37=_0x5d0d37-0x184;const _0x17b608=a31_0x17b6();let _0x585229=_0x17b608[_0x5d0d37];return _0x585229;}import{resolveApiFilePath}from'../../context.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{createHookLocationMap,ensureParentDirectory,fileExists,normalizeBffType,resolveRemoteScriptTarget}from'../../core/bff/file-system.js';import{computeContentHash,computeFileHash}from'../../core/bff/hash.js';import{createEmptyBffLock,ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{CliErrors}from'../../errors.js';export const bffPull={'service':a31_0xb74044(0x184),'command':a31_0xb74044(0x193),'description':a31_0xb74044(0x1cc),'risk':a31_0xb74044(0x1b1),'flags':[{'name':a31_0xb74044(0x1c1),'type':a31_0xb74044(0x18e),'description':a31_0xb74044(0x194),'enum':['COMMON',a31_0xb74044(0x1c7),a31_0xb74044(0x187)]},{'name':a31_0xb74044(0x18a),'type':a31_0xb74044(0x1c8),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x403b8f){const _0xaf5740=a31_0xb74044,_0x2a24a8=loadBffProjectConfig(_0x403b8f['appCode']),_0x17c2a9=await readBffLockFile(_0x2a24a8[_0xaf5740(0x1a0)]),{appLock:_0x5a7575}=ensureLockScope(_0x17c2a9??createEmptyBffLock(),_0x403b8f[_0xaf5740(0x1a6)],_0x2a24a8[_0xaf5740(0x198)],'pull'),_0x3344d9=normalizeBffType(_0x403b8f[_0xaf5740(0x1b8)](_0xaf5740(0x1c1)))??undefined,_0x2e66b8=buildDatasetCodeToAliasMap(_0x403b8f[_0xaf5740(0x1a7)],_0x403b8f[_0xaf5740(0x1a6)]),[_0x1878ec,_0x1574bd]=await Promise['all']([listBffScripts(_0x403b8f['appCode'],_0x3344d9),getBffScriptStatistics(_0x403b8f[_0xaf5740(0x1a6)])]),_0x4a1f31=createHookLocationMap(_0x1574bd),_0xc1d2e9=[];for(const _0x3c233a of _0x1878ec){const _0x30de19=resolveRemoteScriptTarget(_0x2a24a8,_0x3c233a,_0x4a1f31,_0x5a7575['functions'],_0x2e66b8);if(!_0x30de19){_0xc1d2e9['push']({'scriptType':_0x3c233a['scriptType'],'functionName':_0x3c233a[_0xaf5740(0x1c0)]??'','status':_0xaf5740(0x188),'reason':_0xaf5740(0x1b2)});continue;}const _0x13ff34=_0x5a7575[_0xaf5740(0x1b4)][_0x30de19[_0xaf5740(0x19f)]],_0x4fe07c=_0x3c233a[_0xaf5740(0x1c3)]!=null?computeContentHash(_0x3c233a['scriptContent']):undefined,_0x2e7aa8=await hasUnsyncedLocalChanges(_0x30de19[_0xaf5740(0x18b)],_0x13ff34,_0x4fe07c);_0xc1d2e9['push']({'lockKey':_0x30de19['lockKey'],'filePath':_0x30de19[_0xaf5740(0x18b)],'remoteId':_0x3c233a['id']??null,'status':_0x2e7aa8?_0xaf5740(0x1b6):_0xaf5740(0x19d)});}return{'method':_0xaf5740(0x197),'url':_0xaf5740(0x196)+_0x403b8f['appCode']+(_0x3344d9?_0xaf5740(0x191)+_0x3344d9:''),'body':{'appCode':_0x403b8f[_0xaf5740(0x1a6)],'filterType':_0x3344d9??null,'files':_0xc1d2e9},'description':'Would\x20inspect\x20'+_0xc1d2e9['length']+_0xaf5740(0x18f)};},async 'execute'(_0x47515b){const _0x31f368=a31_0xb74044,_0x2dadab=loadBffProjectConfig(_0x47515b[_0x31f368(0x1a6)]),_0x214dc3=await readBffLockFile(_0x2dadab['lockFilePath']),{lockData:_0x35125f,appLock:_0x14ca9d}=ensureLockScope(_0x214dc3??createEmptyBffLock(),_0x47515b[_0x31f368(0x1a6)],_0x2dadab[_0x31f368(0x198)],_0x31f368(0x193)),_0x5d28cb=normalizeBffType(_0x47515b[_0x31f368(0x1b8)](_0x31f368(0x1c1)))??undefined;if(_0x47515b['str'](_0x31f368(0x1c1))&&!_0x5d28cb)throw CliErrors[_0x31f368(0x1be)](_0x31f368(0x1ae));const [_0x3702ed,_0x139b5d]=await Promise[_0x31f368(0x19c)]([listBffScripts(_0x47515b['appCode'],_0x5d28cb),getBffScriptStatistics(_0x47515b[_0x31f368(0x1a6)])]);if(_0x3702ed['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x31f368(0x1a2)};const _0x681494=_0x47515b[_0x31f368(0x18c)]('force');if(_0x681494&&!_0x47515b[_0x31f368(0x1af)]){const _0x32e630=await confirmForce();if(!_0x32e630)throw CliErrors['cancelled'](_0x31f368(0x192));}if(_0x681494&&_0x47515b[_0x31f368(0x1af)]){}const _0x134e25=buildDatasetCodeToAliasMap(_0x47515b[_0x31f368(0x1a7)],_0x47515b['appCode']),_0x50b115=createHookLocationMap(_0x139b5d),_0x273dc0=JSON[_0x31f368(0x1c2)](JSON[_0x31f368(0x195)](_0x35125f)),_0x14edc4=_0x47515b[_0x31f368(0x1a6)],_0x2e4deb=_0x273dc0[_0x31f368(0x1c4)][_0x14edc4];if(!_0x2e4deb)throw new Error(_0x31f368(0x1bb)+_0x14edc4+_0x31f368(0x19a));const _0x53a6d0=[],_0x3ed889=[],_0x5d0d6f=[];for(const _0x4652e6 of _0x3702ed){const _0x30a201=resolveRemoteScriptTarget(_0x2dadab,_0x4652e6,_0x50b115,_0x14ca9d[_0x31f368(0x1b4)],_0x134e25);if(!_0x30a201){_0x3ed889[_0x31f368(0x1a9)]({'lockKey':_0x4652e6[_0x31f368(0x185)]+'/'+_0x4652e6[_0x31f368(0x1c0)],'reason':_0x31f368(0x1b2)});continue;}const _0x3b179a=_0x14ca9d['functions'][_0x30a201['lockKey']];try{if(!_0x4652e6['id'])throw new Error('Remote\x20script\x20missing\x20id.');if(_0x4652e6[_0x31f368(0x1c3)]==null)throw new Error(_0x31f368(0x1b7));const _0x4d6fda=_0x4652e6[_0x31f368(0x1c3)],_0x12a925=computeContentHash(_0x4d6fda);if(!_0x681494){const _0x5d7fbd=await hasUnsyncedLocalChanges(_0x30a201[_0x31f368(0x18b)],_0x3b179a,_0x12a925);if(_0x5d7fbd){_0x3ed889[_0x31f368(0x1a9)]({'lockKey':_0x30a201[_0x31f368(0x19f)],'reason':_0x31f368(0x1bd)});continue;}}await ensureParentDirectory(_0x30a201['filePath']),await writeFile(_0x30a201[_0x31f368(0x18b)],_0x4d6fda,_0x31f368(0x1a3));const _0x264deb={'hash':_0x12a925,'remoteId':_0x4652e6['id'],'version':_0x4652e6[_0x31f368(0x186)]};_0x30a201[_0x31f368(0x1c1)]===_0x31f368(0x187)&&_0x30a201['hookLocation']&&(_0x264deb['alias']=_0x30a201[_0x31f368(0x1ab)][_0x31f368(0x1c6)],_0x264deb[_0x31f368(0x18d)]=_0x30a201['hookLocation']['datasetCode'],_0x264deb['operationType']=_0x30a201[_0x31f368(0x1ab)][_0x31f368(0x199)],_0x264deb['functionNode']=_0x30a201[_0x31f368(0x1ab)]['functionNode']),_0x2e4deb[_0x31f368(0x1b4)][_0x30a201['lockKey']]=_0x264deb,_0x53a6d0[_0x31f368(0x1a9)]({'lockKey':_0x30a201[_0x31f368(0x19f)],'remoteId':_0x4652e6['id']});}catch(_0x4a5ddc){_0x5d0d6f[_0x31f368(0x1a9)]({'lockKey':_0x30a201[_0x31f368(0x19f)],'error':_0x4a5ddc instanceof Error?_0x4a5ddc[_0x31f368(0x1aa)]:String(_0x4a5ddc)});}}return _0x2e4deb['lastSync']=new Date()['toISOString'](),await writeBffLockFile(_0x2dadab[_0x31f368(0x1a0)],_0x273dc0),{'ok':_0x5d0d6f[_0x31f368(0x1ac)]===0x0,'data':{'pulled':_0x53a6d0,'skipped':_0x3ed889,'failed':_0x5d0d6f},'message':_0x31f368(0x1c5)+_0x53a6d0[_0x31f368(0x1ac)]+_0x31f368(0x190)+_0x3ed889['length']+'\x20skipped,\x20'+_0x5d0d6f[_0x31f368(0x1ac)]+_0x31f368(0x1a1)};}};async function hasUnsyncedLocalChanges(_0x17753f,_0x36d20f,_0x2e9a36){const _0x194d25=a31_0xb74044;if(!await fileExists(_0x17753f))return![];const _0x58dc28=await computeFileHash(_0x17753f);if(!_0x36d20f)return _0x2e9a36?_0x58dc28!==_0x2e9a36:!![];return _0x58dc28!==_0x36d20f[_0x194d25(0x1a4)];}function buildDatasetCodeToAliasMap(_0x345cd9,_0x303d13){const _0x402320=a31_0xb74044,_0x3acb01=loadAliasMap(_0x345cd9,undefined,resolveApiFilePath(_0x345cd9,_0x303d13));return new Map(_0x3acb01['map'](_0x18cc15=>[_0x18cc15[_0x402320(0x18d)],_0x18cc15[_0x402320(0x1c6)]]));}async function confirmForce(){const _0x44a55f=a31_0xb74044,_0x27fd00=createInterface({'input':process['stdin'],'output':process['stderr']}),_0x26e12d=await new Promise(_0x29fe5f=>{const _0x5e8b60=a31_0x5852;_0x27fd00[_0x5e8b60(0x19e)](_0x5e8b60(0x1bf),_0x29fe5f);});return _0x27fd00['close'](),['y',_0x44a55f(0x1ad)]['includes'](_0x26e12d[_0x44a55f(0x1ba)]()[_0x44a55f(0x189)]());}
|
package/lib/commands/bff/push.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a32_0x279cf7=a32_0x2b08;(function(_0x5f1f85,_0x14ad19){const _0x3df5c8=a32_0x2b08,_0x562f18=_0x5f1f85();while(!![]){try{const _0x500122=-parseInt(_0x3df5c8(0x1d9))/0x1*(-parseInt(_0x3df5c8(0x1e2))/0x2)+-parseInt(_0x3df5c8(0x1d8))/0x3+parseInt(_0x3df5c8(0x1dd))/0x4+-parseInt(_0x3df5c8(0x1d1))/0x5+-parseInt(_0x3df5c8(0x1c7))/0x6*(parseInt(_0x3df5c8(0x1ee))/0x7)+parseInt(_0x3df5c8(0x1ce))/0x8+-parseInt(_0x3df5c8(0x1ae))/0x9*(-parseInt(_0x3df5c8(0x1af))/0xa);if(_0x500122===_0x14ad19)break;else _0x562f18['push'](_0x562f18['shift']());}catch(_0xc377c4){_0x562f18['push'](_0x562f18['shift']());}}}(a32_0x4cb3,0x67797));import{readFile}from'node:fs/promises';import{saveBffScript,getBffScriptInfo,listDatasets,clearBffScriptCache}from'../../core/api-client.js';import{loadAliasMap}from'../../core/alias-resolver.js';import{resolveApiFilePath}from'../../context.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{normalizeBffType,scanLocalBffFunctions}from'../../core/bff/file-system.js';import{computeFileHash}from'../../core/bff/hash.js';import{createEmptyBffLock,ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{extractScriptDescription}from'../../core/bff/utils.js';import{sleep}from'../../utils/sleep.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';const CACHE_CLEAR_ATTEMPTS=0x2,CACHE_CLEAR_INTERVAL_MS=0x12c;function a32_0x2b08(_0xb9c55c,_0x29bfcf){_0xb9c55c=_0xb9c55c-0x1a0;const _0x4cb3f0=a32_0x4cb3();let _0x2b082b=_0x4cb3f0[_0xb9c55c];return _0x2b082b;}export const bffPush={'service':a32_0x279cf7(0x1ac),'command':a32_0x279cf7(0x1d2),'description':a32_0x279cf7(0x1ec),'risk':'high-risk-write','flags':[{'name':'type','type':a32_0x279cf7(0x1b4),'description':a32_0x279cf7(0x1d5),'enum':[a32_0x279cf7(0x1be),a32_0x279cf7(0x1cf),a32_0x279cf7(0x1da)]},{'name':a32_0x279cf7(0x1c6),'type':a32_0x279cf7(0x1b4),'description':a32_0x279cf7(0x1e1)},{'name':a32_0x279cf7(0x1b6),'type':a32_0x279cf7(0x1e3),'description':'Force\x20push\x20ignoring\x20hash\x20protection'}],async 'dryRun'(_0x39fec5){const _0x32264e=a32_0x279cf7,_0x13ddea=loadBffProjectConfig(_0x39fec5[_0x32264e(0x1a3)]),_0x130a91=await readBffLockFile(_0x13ddea['lockFilePath']),{appLock:_0x5067ec}=ensureLockScope(_0x130a91??createEmptyBffLock(),_0x39fec5['appCode'],_0x13ddea[_0x32264e(0x1c8)],_0x32264e(0x1d2)),_0x18c06b=await getTargetFunctions(_0x13ddea,_0x39fec5),_0x2bbe7a=_0x39fec5[_0x32264e(0x1c5)](_0x32264e(0x1b6)),_0x2a80dc=[];for(const _0x182d01 of _0x18c06b){const _0x63cb56=await computeFileHash(_0x182d01[_0x32264e(0x1cd)]),_0x4342cb=_0x5067ec[_0x32264e(0x1bc)][_0x182d01[_0x32264e(0x1a1)]],_0x48315c=!!_0x4342cb&&_0x4342cb[_0x32264e(0x1d4)]===_0x63cb56;_0x2a80dc['push']({'lockKey':_0x182d01[_0x32264e(0x1a1)],'filePath':_0x182d01[_0x32264e(0x1cd)],'remoteId':_0x4342cb?.[_0x32264e(0x1df)]??null,'mode':_0x4342cb?.['remoteId']?_0x32264e(0x1a8):_0x32264e(0x1b3),'status':!_0x2bbe7a&&_0x48315c?_0x32264e(0x1c9):'would_push'});}return{'method':'POST','url':'/api/management/library/scripts/save','body':{'appCode':_0x39fec5[_0x32264e(0x1a3)],'force':_0x2bbe7a,'files':_0x2a80dc,'cacheClearAtRuntime':_0x2a80dc['some'](_0x5e0f3c=>_0x5e0f3c[_0x32264e(0x1b7)]===_0x32264e(0x1c3)),'cacheClearAtRuntimeTimes':_0x2a80dc['some'](_0x33e5f6=>_0x33e5f6[_0x32264e(0x1b7)]===_0x32264e(0x1c3))?CACHE_CLEAR_ATTEMPTS:0x0},'description':'Would\x20inspect\x20'+_0x2a80dc[_0x32264e(0x1ca)]+_0x32264e(0x1e0)};},async 'execute'(_0x5c28b1){const _0x430f4d=a32_0x279cf7,_0x13430d=loadBffProjectConfig(_0x5c28b1[_0x430f4d(0x1a3)]),_0x4ef8f4=await readBffLockFile(_0x13430d[_0x430f4d(0x1d7)]),{lockData:_0xe4ef9,appLock:_0x45ff6d}=ensureLockScope(_0x4ef8f4??createEmptyBffLock(),_0x5c28b1[_0x430f4d(0x1a3)],_0x13430d[_0x430f4d(0x1c8)],_0x430f4d(0x1d2)),_0x4607e7=await getTargetFunctions(_0x13430d,_0x5c28b1);if(_0x4607e7['length']===0x0)return{'ok':!![],'data':{'uploaded':[],'skipped':[],'failed':[]},'message':'No\x20local\x20BFF\x20functions\x20found.'};const _0x4bb560=_0x5c28b1['bool'](_0x430f4d(0x1b6)),_0x3c1cbc=JSON[_0x430f4d(0x1d6)](JSON[_0x430f4d(0x1ab)](_0xe4ef9)),_0x41b220=_0x3c1cbc[_0x430f4d(0x1d3)][_0x5c28b1[_0x430f4d(0x1a3)]];if(!_0x41b220)throw new Error('Lock\x20scope\x20for\x20app\x20\x22'+_0x5c28b1[_0x430f4d(0x1a3)]+'\x22\x20not\x20found\x20after\x20ensureLockScope.');const _0x1e8865=await buildHookMaps(_0x5c28b1[_0x430f4d(0x1a3)],_0x5c28b1[_0x430f4d(0x1e9)],_0x4607e7,_0x41b220),_0x4a3934=[],_0x5f2017=[],_0x56ad57=[];for(const _0x2c9174 of _0x4607e7){const _0x2d6dc7=await computeFileHash(_0x2c9174[_0x430f4d(0x1cd)]),_0xf66da3=_0x41b220[_0x430f4d(0x1bc)][_0x2c9174[_0x430f4d(0x1a1)]];if(!_0x4bb560&&_0xf66da3&&_0xf66da3['hash']===_0x2d6dc7){_0x5f2017[_0x430f4d(0x1d2)]({'lockKey':_0x2c9174[_0x430f4d(0x1a1)],'reason':_0x430f4d(0x1c9)});continue;}try{await uploadSingleFunction(_0x5c28b1[_0x430f4d(0x1a3)],_0x2c9174,_0x41b220,_0x1e8865);const _0x2a255b=_0x41b220[_0x430f4d(0x1bc)][_0x2c9174[_0x430f4d(0x1a1)]];_0x4a3934[_0x430f4d(0x1d2)]({'lockKey':_0x2c9174[_0x430f4d(0x1a1)],'remoteId':_0x2a255b?.[_0x430f4d(0x1df)]??0x0});}catch(_0x4eb7a4){_0x56ad57['push']({'lockKey':_0x2c9174[_0x430f4d(0x1a1)],'error':_0x4eb7a4 instanceof Error?_0x4eb7a4[_0x430f4d(0x1a0)]:String(_0x4eb7a4)});}}_0x41b220[_0x430f4d(0x1e4)]=new Date()['toISOString'](),await writeBffLockFile(_0x13430d[_0x430f4d(0x1d7)],_0x3c1cbc),await waitForUploadedLockEntries(_0x13430d['lockFilePath'],_0x5c28b1[_0x430f4d(0x1a3)],_0x4a3934[_0x430f4d(0x1a2)](_0x4b0ae0=>_0x4b0ae0['lockKey']));let _0x42d2ec={'attempted':![],'cleared':![]};if(_0x4a3934[_0x430f4d(0x1ca)]>0x0)try{let _0x45d519='';for(let _0x106556=0x0;_0x106556<CACHE_CLEAR_ATTEMPTS;_0x106556+=0x1){_0x45d519=await clearBffScriptCache(),_0x106556<CACHE_CLEAR_ATTEMPTS-0x1&&await sleep(CACHE_CLEAR_INTERVAL_MS);}_0x42d2ec={'attempted':!![],'cleared':!![],'message':_0x45d519||_0x430f4d(0x1b5)};}catch(_0x30c3d8){_0x42d2ec={'attempted':!![],'cleared':![],'error':_0x30c3d8 instanceof Error?_0x30c3d8[_0x430f4d(0x1a0)]:String(_0x30c3d8)};}const _0x17a950=_0x56ad57[_0x430f4d(0x1ca)]===0x0&&(_0x42d2ec[_0x430f4d(0x1e8)]?_0x42d2ec['cleared']:!![]),_0x1ea740=_0x42d2ec[_0x430f4d(0x1e8)]?_0x42d2ec[_0x430f4d(0x1eb)]?_0x430f4d(0x1a5):_0x430f4d(0x1ef):_0x430f4d(0x1bf);return{'ok':_0x17a950,'data':{'uploaded':_0x4a3934,'skipped':_0x5f2017,'failed':_0x56ad57,'cacheClear':_0x42d2ec},'message':_0x430f4d(0x1a7)+_0x4a3934[_0x430f4d(0x1ca)]+_0x430f4d(0x1bd)+_0x5f2017[_0x430f4d(0x1ca)]+_0x430f4d(0x1e6)+_0x56ad57[_0x430f4d(0x1ca)]+_0x430f4d(0x1cc)+_0x1ea740};}};async function getTargetFunctions(_0x3cafc7,_0x5a5b06){const _0x107cf1=a32_0x279cf7,_0xca0474=_0x5a5b06[_0x107cf1(0x1bb)](_0x107cf1(0x1c2)),_0x12e480=_0x5a5b06[_0x107cf1(0x1bb)](_0x107cf1(0x1c6)),_0x1eb3ef=normalizeBffType(_0xca0474)??undefined;if(_0x12e480&&!_0x1eb3ef)throw CliErrors[_0x107cf1(0x1ea)](_0x107cf1(0x1d0));const _0x24adb8=await scanLocalBffFunctions(_0x3cafc7,_0x1eb3ef);if(_0x12e480){const _0x3efc9b=_0x24adb8[_0x107cf1(0x1e7)](_0x171027=>_0x171027[_0x107cf1(0x1c6)]===_0x12e480);if(_0x3efc9b['length']===0x0)throw CliErrors[_0x107cf1(0x1ea)]('Local\x20function\x20not\x20found:\x20'+_0x1eb3ef+'/'+_0x12e480);return _0x3efc9b;}return _0x24adb8;}async function buildHookMaps(_0x51b02d,_0x4e20c9,_0x42c14b,_0x4f4b48){const _0x321fea=a32_0x279cf7,_0x5f0485=_0x42c14b[_0x321fea(0x1dc)](_0x27dd53=>_0x27dd53['type']===_0x321fea(0x1da));if(!_0x5f0485)return{'aliasToDatasetCode':new Map(),'datasetCodeToDataset':new Map()};const _0x1dbebc=loadAliasMap(_0x4e20c9,undefined,resolveApiFilePath(_0x4e20c9,_0x51b02d)),_0x42029a=new Map(_0x1dbebc[_0x321fea(0x1a2)](_0x219cad=>[_0x219cad['alias'],_0x219cad['datasetCode']]));for(const _0x4192c9 of Object[_0x321fea(0x1a9)](_0x4f4b48[_0x321fea(0x1bc)])){_0x4192c9[_0x321fea(0x1a4)]&&_0x4192c9[_0x321fea(0x1c4)]&&!_0x42029a[_0x321fea(0x1b2)](_0x4192c9['alias'])&&_0x42029a[_0x321fea(0x1ad)](_0x4192c9['alias'],_0x4192c9[_0x321fea(0x1c4)]);}const _0xd2e996=await listDatasets(_0x51b02d),_0x52d045=new Map(_0xd2e996[_0x321fea(0x1a2)](_0xe59fdc=>[_0xe59fdc['code'],_0xe59fdc]));return{'aliasToDatasetCode':_0x42029a,'datasetCodeToDataset':_0x52d045};}async function uploadSingleFunction(_0x5a4b45,_0x6227c5,_0x6a2448,_0x1d128a){const _0x7bb076=a32_0x279cf7,_0x3624c4=await readFile(_0x6227c5[_0x7bb076(0x1cd)],_0x7bb076(0x1cb)),_0x54890a=await computeFileHash(_0x6227c5[_0x7bb076(0x1cd)]),_0x17bcf9=_0x6a2448[_0x7bb076(0x1bc)][_0x6227c5[_0x7bb076(0x1a1)]];if(_0x17bcf9?.[_0x7bb076(0x1df)]&&_0x17bcf9[_0x7bb076(0x1b0)]==null)throw CliErrors[_0x7bb076(0x1ea)](_0x6227c5['lockKey']+':\x20missing\x20remote\x20version.\x20Run\x20`push`\x20after\x20`pull`\x20to\x20sync\x20version\x20info.');let _0x4484ff=extractScriptDescription(_0x3624c4);if(!_0x4484ff&&_0x17bcf9?.['remoteId']){const _0x1a5757=await getBffScriptInfo(_0x17bcf9[_0x7bb076(0x1df)]);_0x4484ff=_0x1a5757[_0x7bb076(0x1aa)]||undefined;}const _0x4c0d6b={'appCode':_0x5a4b45,'functionName':_0x6227c5[_0x7bb076(0x1c6)],'scriptType':_0x6227c5[_0x7bb076(0x1c2)],'scriptContent':_0x3624c4};if(_0x17bcf9?.[_0x7bb076(0x1df)])_0x4c0d6b['id']=_0x17bcf9[_0x7bb076(0x1df)];if(_0x17bcf9?.['version']!=null)_0x4c0d6b[_0x7bb076(0x1b0)]=_0x17bcf9[_0x7bb076(0x1b0)];if(_0x4484ff)_0x4c0d6b[_0x7bb076(0x1aa)]=_0x4484ff;if(_0x6227c5[_0x7bb076(0x1c2)]===_0x7bb076(0x1da)){const _0x21092f=_0x6227c5['alias'];if(!_0x21092f||!_0x6227c5[_0x7bb076(0x1a6)]||!_0x6227c5[_0x7bb076(0x1b8)])throw CliErrors['validation'](_0x7bb076(0x1b9)+_0x6227c5[_0x7bb076(0x1a1)]);const _0x31b0f5=_0x1d128a[_0x7bb076(0x1b1)][_0x7bb076(0x1e5)](_0x21092f)??_0x17bcf9?.[_0x7bb076(0x1c4)]??_0x21092f,_0x488a1b=_0x1d128a[_0x7bb076(0x1ed)]['get'](_0x31b0f5);if(!_0x488a1b)throw CliErrors['validation'](_0x7bb076(0x1c0)+_0x21092f+'\x22.\x20'+('Run\x20`'+CLI_BIN_NAME+_0x7bb076(0x1c1)));_0x4c0d6b['datasetId']=_0x488a1b['id'],_0x4c0d6b[_0x7bb076(0x1a6)]=_0x6227c5[_0x7bb076(0x1a6)],_0x4c0d6b[_0x7bb076(0x1b8)]=_0x6227c5[_0x7bb076(0x1b8)];}const _0x6563d5=await saveBffScript(_0x4c0d6b),_0x5dfdc1=_0x6563d5['id'],_0x3a24b3=_0x6563d5['script']??await getBffScriptInfo(_0x5dfdc1),_0x36f4ac={'hash':_0x54890a,'remoteId':_0x5dfdc1,'version':_0x3a24b3[_0x7bb076(0x1b0)]};if(_0x6227c5[_0x7bb076(0x1c2)]===_0x7bb076(0x1da)){const _0x5a9b45=_0x6227c5[_0x7bb076(0x1a4)],_0x2e86e5=_0x1d128a[_0x7bb076(0x1b1)][_0x7bb076(0x1e5)](_0x5a9b45)??_0x17bcf9?.[_0x7bb076(0x1c4)]??_0x5a9b45;_0x1d128a[_0x7bb076(0x1b1)][_0x7bb076(0x1b2)](_0x5a9b45)?_0x36f4ac[_0x7bb076(0x1a4)]=_0x5a9b45:_0x36f4ac[_0x7bb076(0x1a4)]=_0x17bcf9?.[_0x7bb076(0x1a4)],_0x36f4ac[_0x7bb076(0x1c4)]=_0x2e86e5,_0x36f4ac[_0x7bb076(0x1a6)]=_0x6227c5['operationType'],_0x36f4ac[_0x7bb076(0x1b8)]=_0x6227c5['functionNode'];}_0x6a2448['functions'][_0x6227c5[_0x7bb076(0x1a1)]]=_0x36f4ac;}const LOCK_SETTLE_RETRY_COUNT=0x14,LOCK_SETTLE_DELAY_MS=0x64;function a32_0x4cb3(){const _0x2d8822=['remoteId','\x20local\x20BFF\x20script(s)\x20for\x20push\x20and\x20clear\x20runtime\x20cache\x20if\x20files\x20are\x20uploaded','Push\x20only\x20the\x20named\x20function\x20(requires\x20--type)','38XwVEKe','boolean','lastSync','get','\x20skipped,\x20','filter','attempted','apiDir','validation','cleared','Push\x20local\x20BFF\x20scripts\x20to\x20remote','datasetCodeToDataset','2092342tJIJFO','runtime\x20cache\x20clear\x20failed','message','lockKey','map','appCode','alias','runtime\x20cache\x20cleared','operationType','Push\x20complete:\x20','update','values','description','stringify','bff','set','54423OGeKkT','1300tQAHBU','version','aliasToDatasetCode','has','create','string','Runtime\x20script\x20cache\x20cleared.','force','status','functionNode','Incomplete\x20HOOK\x20path:\x20','join','str','functions','\x20uploaded,\x20','COMMON','runtime\x20cache\x20not\x20needed','Cannot\x20resolve\x20dataset\x20for\x20\x22','\x20api\x20pull`\x20to\x20refresh\x20api.ts,\x20or\x20verify\x20the\x20dataset\x20exists.','type','would_push','datasetCode','bool','name','12XRtuqb','scriptsRoot','unchanged','length','utf8','\x20failed,\x20','filePath','151800pZPcfD','ENDPOINT','--name\x20requires\x20--type\x20to\x20identify\x20the\x20function.','2508400rGyJdG','push','apps','hash','Push\x20only\x20this\x20script\x20type','parse','lockFilePath','1661964AwPTWt','26118unyXVr','HOOK','every','some','3103936lyuuxO','Lock\x20file\x20not\x20settled\x20after\x20push\x20for\x20'];a32_0x4cb3=function(){return _0x2d8822;};return a32_0x4cb3();}async function waitForUploadedLockEntries(_0x2b3f02,_0x24139a,_0x2d86bd){const _0x39b6f0=a32_0x279cf7;if(_0x2d86bd[_0x39b6f0(0x1ca)]===0x0)return;for(let _0x51da8d=0x0;_0x51da8d<LOCK_SETTLE_RETRY_COUNT;_0x51da8d+=0x1){const _0x3b12d6=await readBffLockFile(_0x2b3f02),_0x15a381=_0x3b12d6?.[_0x39b6f0(0x1d3)]?.[_0x24139a]?.[_0x39b6f0(0x1bc)]??{},_0x2ba7e0=_0x2d86bd[_0x39b6f0(0x1db)](_0x109c9f=>!!_0x15a381[_0x109c9f]?.['remoteId']);if(_0x2ba7e0)return;await sleep(LOCK_SETTLE_DELAY_MS);}throw new Error(_0x39b6f0(0x1de)+_0x2d86bd[_0x39b6f0(0x1ba)](',\x20')+'.');}
|
|
1
|
+
const a32_0x52dcae=a32_0x1161;(function(_0x155348,_0x39a85e){const _0x2c8d84=a32_0x1161,_0x4ee706=_0x155348();while(!![]){try{const _0x882055=parseInt(_0x2c8d84(0x1ee))/0x1+-parseInt(_0x2c8d84(0x234))/0x2*(-parseInt(_0x2c8d84(0x22c))/0x3)+parseInt(_0x2c8d84(0x1f4))/0x4*(parseInt(_0x2c8d84(0x22a))/0x5)+parseInt(_0x2c8d84(0x1ff))/0x6*(-parseInt(_0x2c8d84(0x20f))/0x7)+-parseInt(_0x2c8d84(0x218))/0x8*(parseInt(_0x2c8d84(0x213))/0x9)+-parseInt(_0x2c8d84(0x1e4))/0xa*(-parseInt(_0x2c8d84(0x1f8))/0xb)+parseInt(_0x2c8d84(0x22d))/0xc;if(_0x882055===_0x39a85e)break;else _0x4ee706['push'](_0x4ee706['shift']());}catch(_0xfe3e5b){_0x4ee706['push'](_0x4ee706['shift']());}}}(a32_0x2d8b,0x77c73));function a32_0x1161(_0x1fd1f1,_0x18faba){_0x1fd1f1=_0x1fd1f1-0x1e0;const _0x2d8b7a=a32_0x2d8b();let _0x1161c3=_0x2d8b7a[_0x1fd1f1];return _0x1161c3;}import{readFile}from'node:fs/promises';import{saveBffScript,getBffScriptInfo,listDatasets,clearBffScriptCache}from'../../core/api-client.js';import{loadAliasMap}from'../../core/alias-resolver.js';import{resolveApiFilePath}from'../../context.js';function a32_0x2d8b(){const _0x2c77d0=['lockFilePath','5690079ngqlmh','Push\x20only\x20the\x20named\x20function\x20(requires\x20--type)','toISOString','scriptsRoot','operationType','8LSjCNA','Lock\x20scope\x20for\x20app\x20\x22','create','update','lockKey','status','runtime\x20cache\x20not\x20needed','map','HOOK','validation','\x22.\x20','stringify','utf8','alias','datasetCodeToDataset','functions','parse','name','55QDGdUY','No\x20local\x20BFF\x20functions\x20found.','303cUokkj','1926276gnIRig','Push\x20local\x20BFF\x20scripts\x20to\x20remote','type','join','ENDPOINT','message','filePath','5864vOwtGA','Lock\x20file\x20not\x20settled\x20after\x20push\x20for\x20','remoteId','Cannot\x20resolve\x20dataset\x20for\x20\x22','Run\x20`','3370OJePKS','Incomplete\x20HOOK\x20path:\x20','str','set','COMMON','hash','script','apps','high-risk-write','\x20uploaded,\x20','89141XbthTP','appCode','would_push','version','get','attempted','315564GYnQQz','unchanged','datasetId',':\x20missing\x20remote\x20version.\x20Run\x20`push`\x20after\x20`pull`\x20to\x20sync\x20version\x20info.','20526nXsYWw','POST','runtime\x20cache\x20cleared','force','\x20local\x20BFF\x20script(s)\x20for\x20push\x20and\x20clear\x20runtime\x20cache\x20if\x20files\x20are\x20uploaded','\x20skipped,\x20','bff','5517582TkhxOG','/api/management/library/scripts/save','Runtime\x20script\x20cache\x20cleared.','push','functionNode','some','Force\x20push\x20ignoring\x20hash\x20protection','\x20failed,\x20','runtime\x20cache\x20clear\x20failed','code','description','aliasToDatasetCode','Would\x20inspect\x20','string','datasetCode','length','7TgOGlK','values','cleared'];a32_0x2d8b=function(){return _0x2c77d0;};return a32_0x2d8b();}import{loadBffProjectConfig}from'../../core/bff/config.js';import{normalizeBffType,scanLocalBffFunctions}from'../../core/bff/file-system.js';import{computeFileHash}from'../../core/bff/hash.js';import{createEmptyBffLock,ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{extractScriptDescription}from'../../core/bff/utils.js';import{sleep}from'../../utils/sleep.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';const CACHE_CLEAR_ATTEMPTS=0x2,CACHE_CLEAR_INTERVAL_MS=0x12c;export const bffPush={'service':a32_0x52dcae(0x1fe),'command':a32_0x52dcae(0x202),'description':a32_0x52dcae(0x22e),'risk':a32_0x52dcae(0x1ec),'flags':[{'name':a32_0x52dcae(0x22f),'type':a32_0x52dcae(0x20c),'description':'Push\x20only\x20this\x20script\x20type','enum':[a32_0x52dcae(0x1e8),a32_0x52dcae(0x231),a32_0x52dcae(0x220)]},{'name':'name','type':a32_0x52dcae(0x20c),'description':a32_0x52dcae(0x214)},{'name':a32_0x52dcae(0x1fb),'type':'boolean','description':a32_0x52dcae(0x205)}],async 'dryRun'(_0x48f8e9){const _0x4d75a7=a32_0x52dcae,_0x563688=loadBffProjectConfig(_0x48f8e9['appCode']),_0x41bf2e=await readBffLockFile(_0x563688[_0x4d75a7(0x212)]),{appLock:_0x8b002b}=ensureLockScope(_0x41bf2e??createEmptyBffLock(),_0x48f8e9[_0x4d75a7(0x1ef)],_0x563688[_0x4d75a7(0x216)],_0x4d75a7(0x202)),_0xaacc7b=await getTargetFunctions(_0x563688,_0x48f8e9),_0xc46c01=_0x48f8e9['bool'](_0x4d75a7(0x1fb)),_0xe2c792=[];for(const _0x203fd9 of _0xaacc7b){const _0xa63f33=await computeFileHash(_0x203fd9[_0x4d75a7(0x233)]),_0x315ab7=_0x8b002b[_0x4d75a7(0x227)][_0x203fd9[_0x4d75a7(0x21c)]],_0xf9e4e8=!!_0x315ab7&&_0x315ab7[_0x4d75a7(0x1e9)]===_0xa63f33;_0xe2c792[_0x4d75a7(0x202)]({'lockKey':_0x203fd9[_0x4d75a7(0x21c)],'filePath':_0x203fd9[_0x4d75a7(0x233)],'remoteId':_0x315ab7?.[_0x4d75a7(0x1e1)]??null,'mode':_0x315ab7?.['remoteId']?_0x4d75a7(0x21b):_0x4d75a7(0x21a),'status':!_0xc46c01&&_0xf9e4e8?_0x4d75a7(0x1f5):_0x4d75a7(0x1f0)});}return{'method':_0x4d75a7(0x1f9),'url':_0x4d75a7(0x200),'body':{'appCode':_0x48f8e9['appCode'],'force':_0xc46c01,'files':_0xe2c792,'cacheClearAtRuntime':_0xe2c792[_0x4d75a7(0x204)](_0x3338df=>_0x3338df[_0x4d75a7(0x21d)]===_0x4d75a7(0x1f0)),'cacheClearAtRuntimeTimes':_0xe2c792[_0x4d75a7(0x204)](_0xd91ee2=>_0xd91ee2['status']===_0x4d75a7(0x1f0))?CACHE_CLEAR_ATTEMPTS:0x0},'description':_0x4d75a7(0x20b)+_0xe2c792['length']+_0x4d75a7(0x1fc)};},async 'execute'(_0x4aa0c9){const _0x1d682c=a32_0x52dcae,_0x13b837=loadBffProjectConfig(_0x4aa0c9[_0x1d682c(0x1ef)]),_0xaa3615=await readBffLockFile(_0x13b837['lockFilePath']),{lockData:_0x5b8c61,appLock:_0xc1611c}=ensureLockScope(_0xaa3615??createEmptyBffLock(),_0x4aa0c9[_0x1d682c(0x1ef)],_0x13b837[_0x1d682c(0x216)],'push'),_0x8fce67=await getTargetFunctions(_0x13b837,_0x4aa0c9);if(_0x8fce67[_0x1d682c(0x20e)]===0x0)return{'ok':!![],'data':{'uploaded':[],'skipped':[],'failed':[]},'message':_0x1d682c(0x22b)};const _0x4b8276=_0x4aa0c9['bool']('force'),_0x4f8fce=JSON[_0x1d682c(0x228)](JSON[_0x1d682c(0x223)](_0x5b8c61)),_0x57f38c=_0x4f8fce[_0x1d682c(0x1eb)][_0x4aa0c9[_0x1d682c(0x1ef)]];if(!_0x57f38c)throw new Error(_0x1d682c(0x219)+_0x4aa0c9['appCode']+'\x22\x20not\x20found\x20after\x20ensureLockScope.');const _0x3d8d6a=await buildHookMaps(_0x4aa0c9[_0x1d682c(0x1ef)],_0x4aa0c9['apiDir'],_0x8fce67,_0x57f38c),_0x30227d=[],_0x509b08=[],_0x3fa517=[];for(const _0x5f450c of _0x8fce67){const _0x48e744=await computeFileHash(_0x5f450c['filePath']),_0x35bc0f=_0x57f38c[_0x1d682c(0x227)][_0x5f450c['lockKey']];if(!_0x4b8276&&_0x35bc0f&&_0x35bc0f[_0x1d682c(0x1e9)]===_0x48e744){_0x509b08[_0x1d682c(0x202)]({'lockKey':_0x5f450c['lockKey'],'reason':_0x1d682c(0x1f5)});continue;}try{await uploadSingleFunction(_0x4aa0c9[_0x1d682c(0x1ef)],_0x5f450c,_0x57f38c,_0x3d8d6a);const _0x242838=_0x57f38c[_0x1d682c(0x227)][_0x5f450c[_0x1d682c(0x21c)]];_0x30227d[_0x1d682c(0x202)]({'lockKey':_0x5f450c['lockKey'],'remoteId':_0x242838?.[_0x1d682c(0x1e1)]??0x0});}catch(_0x55fe11){_0x3fa517[_0x1d682c(0x202)]({'lockKey':_0x5f450c[_0x1d682c(0x21c)],'error':_0x55fe11 instanceof Error?_0x55fe11[_0x1d682c(0x232)]:String(_0x55fe11)});}}_0x57f38c['lastSync']=new Date()[_0x1d682c(0x215)](),await writeBffLockFile(_0x13b837[_0x1d682c(0x212)],_0x4f8fce),await waitForUploadedLockEntries(_0x13b837['lockFilePath'],_0x4aa0c9[_0x1d682c(0x1ef)],_0x30227d[_0x1d682c(0x21f)](_0x2995f5=>_0x2995f5[_0x1d682c(0x21c)]));let _0x1ecc36={'attempted':![],'cleared':![]};if(_0x30227d[_0x1d682c(0x20e)]>0x0)try{let _0x5e1cde='';for(let _0x197764=0x0;_0x197764<CACHE_CLEAR_ATTEMPTS;_0x197764+=0x1){_0x5e1cde=await clearBffScriptCache(),_0x197764<CACHE_CLEAR_ATTEMPTS-0x1&&await sleep(CACHE_CLEAR_INTERVAL_MS);}_0x1ecc36={'attempted':!![],'cleared':!![],'message':_0x5e1cde||_0x1d682c(0x201)};}catch(_0x5a0c11){_0x1ecc36={'attempted':!![],'cleared':![],'error':_0x5a0c11 instanceof Error?_0x5a0c11[_0x1d682c(0x232)]:String(_0x5a0c11)};}const _0x3421dd=_0x3fa517[_0x1d682c(0x20e)]===0x0&&(_0x1ecc36[_0x1d682c(0x1f3)]?_0x1ecc36[_0x1d682c(0x211)]:!![]),_0xca3257=_0x1ecc36[_0x1d682c(0x1f3)]?_0x1ecc36[_0x1d682c(0x211)]?_0x1d682c(0x1fa):_0x1d682c(0x207):_0x1d682c(0x21e);return{'ok':_0x3421dd,'data':{'uploaded':_0x30227d,'skipped':_0x509b08,'failed':_0x3fa517,'cacheClear':_0x1ecc36},'message':'Push\x20complete:\x20'+_0x30227d[_0x1d682c(0x20e)]+_0x1d682c(0x1ed)+_0x509b08[_0x1d682c(0x20e)]+_0x1d682c(0x1fd)+_0x3fa517['length']+_0x1d682c(0x206)+_0xca3257};}};async function getTargetFunctions(_0x292d2e,_0x22f3ec){const _0x5783e6=a32_0x52dcae,_0x21ba4d=_0x22f3ec[_0x5783e6(0x1e6)](_0x5783e6(0x22f)),_0x4f00be=_0x22f3ec[_0x5783e6(0x1e6)](_0x5783e6(0x229)),_0x4ebc48=normalizeBffType(_0x21ba4d)??undefined;if(_0x4f00be&&!_0x4ebc48)throw CliErrors[_0x5783e6(0x221)]('--name\x20requires\x20--type\x20to\x20identify\x20the\x20function.');const _0x2e44c1=await scanLocalBffFunctions(_0x292d2e,_0x4ebc48);if(_0x4f00be){const _0x364445=_0x2e44c1['filter'](_0x1f8d08=>_0x1f8d08[_0x5783e6(0x229)]===_0x4f00be);if(_0x364445[_0x5783e6(0x20e)]===0x0)throw CliErrors[_0x5783e6(0x221)]('Local\x20function\x20not\x20found:\x20'+_0x4ebc48+'/'+_0x4f00be);return _0x364445;}return _0x2e44c1;}async function buildHookMaps(_0x1ab591,_0x26224a,_0x2b02ae,_0xdeeca){const _0x550149=a32_0x52dcae,_0xf40d17=_0x2b02ae[_0x550149(0x204)](_0x1498a2=>_0x1498a2[_0x550149(0x22f)]==='HOOK');if(!_0xf40d17)return{'aliasToDatasetCode':new Map(),'datasetCodeToDataset':new Map()};const _0x226d66=loadAliasMap(_0x26224a,undefined,resolveApiFilePath(_0x26224a,_0x1ab591)),_0x1b853c=new Map(_0x226d66[_0x550149(0x21f)](_0x2ec811=>[_0x2ec811[_0x550149(0x225)],_0x2ec811[_0x550149(0x20d)]]));for(const _0x5727e4 of Object[_0x550149(0x210)](_0xdeeca[_0x550149(0x227)])){_0x5727e4[_0x550149(0x225)]&&_0x5727e4['datasetCode']&&!_0x1b853c['has'](_0x5727e4['alias'])&&_0x1b853c[_0x550149(0x1e7)](_0x5727e4['alias'],_0x5727e4[_0x550149(0x20d)]);}const _0x34c16b=await listDatasets(_0x1ab591),_0x55bd5a=new Map(_0x34c16b['map'](_0x1044e6=>[_0x1044e6[_0x550149(0x208)],_0x1044e6]));return{'aliasToDatasetCode':_0x1b853c,'datasetCodeToDataset':_0x55bd5a};}async function uploadSingleFunction(_0x3b6ff4,_0x516d08,_0x5ae818,_0x1f6eb1){const _0x5dfacf=a32_0x52dcae,_0x490041=await readFile(_0x516d08[_0x5dfacf(0x233)],_0x5dfacf(0x224)),_0x514147=await computeFileHash(_0x516d08[_0x5dfacf(0x233)]),_0x3d4a20=_0x5ae818[_0x5dfacf(0x227)][_0x516d08['lockKey']];if(_0x3d4a20?.['remoteId']&&_0x3d4a20[_0x5dfacf(0x1f1)]==null)throw CliErrors['validation'](_0x516d08[_0x5dfacf(0x21c)]+_0x5dfacf(0x1f7));let _0x408e51=extractScriptDescription(_0x490041);if(!_0x408e51&&_0x3d4a20?.[_0x5dfacf(0x1e1)]){const _0x2bf6c6=await getBffScriptInfo(_0x3d4a20['remoteId']);_0x408e51=_0x2bf6c6[_0x5dfacf(0x209)]||undefined;}const _0x49f79a={'appCode':_0x3b6ff4,'functionName':_0x516d08[_0x5dfacf(0x229)],'scriptType':_0x516d08[_0x5dfacf(0x22f)],'scriptContent':_0x490041};if(_0x3d4a20?.[_0x5dfacf(0x1e1)])_0x49f79a['id']=_0x3d4a20[_0x5dfacf(0x1e1)];if(_0x3d4a20?.[_0x5dfacf(0x1f1)]!=null)_0x49f79a[_0x5dfacf(0x1f1)]=_0x3d4a20[_0x5dfacf(0x1f1)];if(_0x408e51)_0x49f79a[_0x5dfacf(0x209)]=_0x408e51;if(_0x516d08[_0x5dfacf(0x22f)]===_0x5dfacf(0x220)){const _0x514f13=_0x516d08['alias'];if(!_0x514f13||!_0x516d08[_0x5dfacf(0x217)]||!_0x516d08[_0x5dfacf(0x203)])throw CliErrors[_0x5dfacf(0x221)](_0x5dfacf(0x1e5)+_0x516d08[_0x5dfacf(0x21c)]);const _0x10af22=_0x1f6eb1[_0x5dfacf(0x20a)][_0x5dfacf(0x1f2)](_0x514f13)??_0x3d4a20?.[_0x5dfacf(0x20d)]??_0x514f13,_0x2d2fb7=_0x1f6eb1[_0x5dfacf(0x226)][_0x5dfacf(0x1f2)](_0x10af22);if(!_0x2d2fb7)throw CliErrors[_0x5dfacf(0x221)](_0x5dfacf(0x1e2)+_0x514f13+_0x5dfacf(0x222)+(_0x5dfacf(0x1e3)+CLI_BIN_NAME+'\x20api\x20pull`\x20to\x20refresh\x20api.ts,\x20or\x20verify\x20the\x20dataset\x20exists.'));_0x49f79a[_0x5dfacf(0x1f6)]=_0x2d2fb7['id'],_0x49f79a[_0x5dfacf(0x217)]=_0x516d08[_0x5dfacf(0x217)],_0x49f79a[_0x5dfacf(0x203)]=_0x516d08['functionNode'];}const _0x13697a=await saveBffScript(_0x49f79a),_0x3e032f=_0x13697a['id'],_0x2dc68c=_0x13697a[_0x5dfacf(0x1ea)]??await getBffScriptInfo(_0x3e032f),_0x44d5c8={'hash':_0x514147,'remoteId':_0x3e032f,'version':_0x2dc68c[_0x5dfacf(0x1f1)]};if(_0x516d08[_0x5dfacf(0x22f)]===_0x5dfacf(0x220)){const _0x8dd9b9=_0x516d08['alias'],_0x36a772=_0x1f6eb1[_0x5dfacf(0x20a)][_0x5dfacf(0x1f2)](_0x8dd9b9)??_0x3d4a20?.[_0x5dfacf(0x20d)]??_0x8dd9b9;_0x1f6eb1[_0x5dfacf(0x20a)]['has'](_0x8dd9b9)?_0x44d5c8[_0x5dfacf(0x225)]=_0x8dd9b9:_0x44d5c8[_0x5dfacf(0x225)]=_0x3d4a20?.['alias'],_0x44d5c8[_0x5dfacf(0x20d)]=_0x36a772,_0x44d5c8[_0x5dfacf(0x217)]=_0x516d08['operationType'],_0x44d5c8['functionNode']=_0x516d08[_0x5dfacf(0x203)];}_0x5ae818[_0x5dfacf(0x227)][_0x516d08['lockKey']]=_0x44d5c8;}const LOCK_SETTLE_RETRY_COUNT=0x14,LOCK_SETTLE_DELAY_MS=0x64;async function waitForUploadedLockEntries(_0x3d6212,_0x186808,_0x489c91){const _0x4b343e=a32_0x52dcae;if(_0x489c91[_0x4b343e(0x20e)]===0x0)return;for(let _0x42126c=0x0;_0x42126c<LOCK_SETTLE_RETRY_COUNT;_0x42126c+=0x1){const _0x2e862d=await readBffLockFile(_0x3d6212),_0x2bb904=_0x2e862d?.['apps']?.[_0x186808]?.[_0x4b343e(0x227)]??{},_0x48fc4d=_0x489c91['every'](_0x10ed13=>!!_0x2bb904[_0x10ed13]?.['remoteId']);if(_0x48fc4d)return;await sleep(LOCK_SETTLE_DELAY_MS);}throw new Error(_0x4b343e(0x1e0)+_0x489c91[_0x4b343e(0x230)](',\x20')+'.');}
|