@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.
Files changed (207) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/discover.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app/use.js +1 -1
  26. package/lib/commands/auth/index.js +1 -1
  27. package/lib/commands/bff/create.js +1 -1
  28. package/lib/commands/bff/delete.js +1 -1
  29. package/lib/commands/bff/detail.js +1 -1
  30. package/lib/commands/bff/index.js +1 -1
  31. package/lib/commands/bff/list.js +1 -1
  32. package/lib/commands/bff/pull.js +1 -1
  33. package/lib/commands/bff/push.js +1 -1
  34. package/lib/commands/bff/status.js +1 -1
  35. package/lib/commands/cli-update.js +1 -1
  36. package/lib/commands/codegen/index.js +1 -1
  37. package/lib/commands/codegen/sdk.js +1 -1
  38. package/lib/commands/codegen/sql.js +1 -1
  39. package/lib/commands/common/app-selector.js +1 -1
  40. package/lib/commands/common/flags.js +1 -1
  41. package/lib/commands/common/validate.js +1 -1
  42. package/lib/commands/config/get.js +1 -1
  43. package/lib/commands/config/index.js +1 -1
  44. package/lib/commands/config/list.js +1 -1
  45. package/lib/commands/config/set.js +1 -1
  46. package/lib/commands/config/shared.js +1 -1
  47. package/lib/commands/data/filter.js +1 -1
  48. package/lib/commands/data/getOne.js +1 -1
  49. package/lib/commands/data/index.js +1 -1
  50. package/lib/commands/data/shared.js +1 -1
  51. package/lib/commands/dataset/capability.js +1 -1
  52. package/lib/commands/dataset/delete.js +1 -1
  53. package/lib/commands/dataset/detail.js +1 -1
  54. package/lib/commands/dataset/extend-update.js +1 -1
  55. package/lib/commands/dataset/field-update.js +1 -1
  56. package/lib/commands/dataset/index.js +1 -1
  57. package/lib/commands/dataset/list.js +1 -1
  58. package/lib/commands/dataset/operations.js +1 -1
  59. package/lib/commands/dataset/relation-create.js +1 -1
  60. package/lib/commands/dataset/relation-delete.js +1 -1
  61. package/lib/commands/dataset/relation-shared.js +1 -1
  62. package/lib/commands/dataset/relation-update.js +1 -1
  63. package/lib/commands/dataset/relations.js +1 -1
  64. package/lib/commands/dataset/rename.js +1 -1
  65. package/lib/commands/db/analyze-cancel.js +1 -1
  66. package/lib/commands/db/analyze-start.js +1 -1
  67. package/lib/commands/db/analyze-status.js +1 -1
  68. package/lib/commands/db/create.js +1 -1
  69. package/lib/commands/db/delete.js +1 -1
  70. package/lib/commands/db/detail.js +1 -1
  71. package/lib/commands/db/diff.js +1 -1
  72. package/lib/commands/db/index.js +1 -1
  73. package/lib/commands/db/list.js +1 -1
  74. package/lib/commands/db/shared.js +1 -1
  75. package/lib/commands/db/tables.js +1 -1
  76. package/lib/commands/db/test.js +1 -1
  77. package/lib/commands/db/update.js +1 -1
  78. package/lib/commands/doctor.js +1 -1
  79. package/lib/commands/init/index.js +1 -1
  80. package/lib/commands/issue/index.js +1 -1
  81. package/lib/commands/issue/nudge.js +1 -1
  82. package/lib/commands/issue/report.js +1 -1
  83. package/lib/commands/issue/shared.js +1 -1
  84. package/lib/commands/logs/index.js +1 -1
  85. package/lib/commands/menu/index.js +1 -1
  86. package/lib/commands/menu/list.js +1 -1
  87. package/lib/commands/menu/shared/compare-table.js +1 -1
  88. package/lib/commands/menu/shared/index.js +1 -1
  89. package/lib/commands/menu/shared/inquirer.js +1 -1
  90. package/lib/commands/menu/shared/local-pages.js +1 -1
  91. package/lib/commands/menu/shared/logic.js +1 -1
  92. package/lib/commands/menu/shared/service.js +1 -1
  93. package/lib/commands/menu/shared/sync-core.js +1 -1
  94. package/lib/commands/menu/shared/update-core.js +1 -1
  95. package/lib/commands/menu/shared/valid-url.js +1 -1
  96. package/lib/commands/menu/sync.js +1 -1
  97. package/lib/commands/menu/update.js +1 -1
  98. package/lib/commands/page/generate-start.js +1 -1
  99. package/lib/commands/page/generate-status.js +1 -1
  100. package/lib/commands/page/index.js +1 -1
  101. package/lib/commands/page/pull.js +1 -1
  102. package/lib/commands/page/push.js +1 -1
  103. package/lib/commands/page/relation-audit.js +1 -1
  104. package/lib/commands/page/shared.js +1 -1
  105. package/lib/commands/page/standard-page-status.js +1 -1
  106. package/lib/commands/page/sync.js +1 -1
  107. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  108. package/lib/commands/project/create/format-elapsed.js +1 -1
  109. package/lib/commands/project/create/main.js +1 -1
  110. package/lib/commands/project/create/non-interactive.js +1 -1
  111. package/lib/commands/project/create/project-template-path.js +1 -1
  112. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  113. package/lib/commands/project/create/use-format-code.js +1 -1
  114. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  115. package/lib/commands/project/index.js +1 -1
  116. package/lib/commands/project/init.js +1 -1
  117. package/lib/commands/project/upgrade.js +1 -1
  118. package/lib/commands/registry.js +1 -1
  119. package/lib/commands/run/index.js +1 -1
  120. package/lib/commands/schema.js +1 -1
  121. package/lib/commands/skill/index.js +1 -1
  122. package/lib/commands/sql/create.js +1 -1
  123. package/lib/commands/sql/delete.js +1 -1
  124. package/lib/commands/sql/detail.js +1 -1
  125. package/lib/commands/sql/exec.js +1 -1
  126. package/lib/commands/sql/index.js +1 -1
  127. package/lib/commands/sql/list.js +1 -1
  128. package/lib/commands/sql/pull.js +1 -1
  129. package/lib/commands/sql/push.js +1 -1
  130. package/lib/commands/sql/save.js +1 -1
  131. package/lib/commands/sql/shared.js +1 -1
  132. package/lib/commands/sql/status.js +1 -1
  133. package/lib/commands/sql/validate.js +1 -1
  134. package/lib/config/schema.js +1 -1
  135. package/lib/constant/cdn.js +1 -1
  136. package/lib/constant/cli.js +1 -1
  137. package/lib/constant/defaults.js +1 -1
  138. package/lib/constant/domain.js +1 -1
  139. package/lib/constant/env.js +1 -1
  140. package/lib/constant/output.js +1 -1
  141. package/lib/constant/paths.js +1 -1
  142. package/lib/constant/risk.js +1 -1
  143. package/lib/context.js +1 -1
  144. package/lib/core/alias-resolver.js +1 -1
  145. package/lib/core/api-client.js +1 -1
  146. package/lib/core/bff/config.js +1 -1
  147. package/lib/core/bff/file-system.js +1 -1
  148. package/lib/core/bff/hash.js +1 -1
  149. package/lib/core/bff/lock.js +1 -1
  150. package/lib/core/bff/utils.js +1 -1
  151. package/lib/core/db-resolver.js +1 -1
  152. package/lib/core/page/file-system.js +1 -1
  153. package/lib/core/page/hash.js +1 -1
  154. package/lib/core/page/lock.js +1 -1
  155. package/lib/core/sql-sync/config.js +1 -1
  156. package/lib/core/sql-sync/file-system.js +1 -1
  157. package/lib/core/sql-sync/hash.js +1 -1
  158. package/lib/core/sql-sync/lock.js +1 -1
  159. package/lib/core/sql-sync/utils.js +1 -1
  160. package/lib/core/sql-validator.js +1 -1
  161. package/lib/errors.js +1 -1
  162. package/lib/framework/build-all-flags.js +1 -1
  163. package/lib/framework/flags.js +1 -1
  164. package/lib/framework/help.js +1 -1
  165. package/lib/framework/index.js +1 -1
  166. package/lib/framework/output.js +1 -1
  167. package/lib/framework/response.js +1 -1
  168. package/lib/framework/runner-alias.js +1 -1
  169. package/lib/framework/runner.js +1 -1
  170. package/lib/framework/schema-export.js +1 -1
  171. package/lib/framework/types.js +1 -1
  172. package/lib/generated/build-info.js +1 -1
  173. package/lib/help.js +1 -1
  174. package/lib/skills/main.js +1 -1
  175. package/lib/skills/npx-skills-add.js +1 -1
  176. package/lib/telemetry/cli-command-trace.js +1 -1
  177. package/lib/telemetry/cli-help-trace.js +1 -1
  178. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  179. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  180. package/lib/telemetry/send-cli-trace-log.js +1 -1
  181. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  182. package/lib/utils/ai_config.js +1 -1
  183. package/lib/utils/apply-jq-filter.js +1 -1
  184. package/lib/utils/cdn-config.js +1 -1
  185. package/lib/utils/check-sdk-version.js +1 -1
  186. package/lib/utils/cli-version-check.js +1 -1
  187. package/lib/utils/cli-version-policy.js +1 -1
  188. package/lib/utils/config.js +1 -1
  189. package/lib/utils/copy-directory.js +1 -1
  190. package/lib/utils/entity-with-id.js +1 -1
  191. package/lib/utils/file-utils.js +1 -1
  192. package/lib/utils/guides-cdn.js +1 -1
  193. package/lib/utils/http-client.js +1 -1
  194. package/lib/utils/is-non-interactive.js +1 -1
  195. package/lib/utils/logger.js +1 -1
  196. package/lib/utils/params.js +1 -1
  197. package/lib/utils/platform.js +1 -1
  198. package/lib/utils/rules-cdn.js +1 -1
  199. package/lib/utils/sleep.js +1 -1
  200. package/lib/utils/template-replacer.js +1 -1
  201. package/lib/utils/update-notice.js +1 -1
  202. package/lib/utils/version.js +1 -1
  203. package/lib/utils/with-active-cookie.js +1 -1
  204. package/lib/utils/write-cli-side-channel.js +1 -1
  205. package/package.json +2 -2
  206. package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +1 -1
  207. package/templates/rules/lovrabet_rules.mdc.tpl +3 -1
@@ -1 +1 @@
1
- function a19_0x34d9(_0x5dd76c,_0x24eb36){_0x5dd76c=_0x5dd76c-0x127;const _0x106066=a19_0x1060();let _0x34d936=_0x106066[_0x5dd76c];return _0x34d936;}const a19_0xd4530=a19_0x34d9;(function(_0x5e96e3,_0x5e1cc0){const _0x3e12bf=a19_0x34d9,_0x81c89c=_0x5e96e3();while(!![]){try{const _0x4c6aff=parseInt(_0x3e12bf(0x135))/0x1*(parseInt(_0x3e12bf(0x12d))/0x2)+-parseInt(_0x3e12bf(0x131))/0x3+-parseInt(_0x3e12bf(0x12e))/0x4+-parseInt(_0x3e12bf(0x13a))/0x5*(parseInt(_0x3e12bf(0x136))/0x6)+parseInt(_0x3e12bf(0x138))/0x7*(parseInt(_0x3e12bf(0x13b))/0x8)+-parseInt(_0x3e12bf(0x139))/0x9+-parseInt(_0x3e12bf(0x12a))/0xa*(-parseInt(_0x3e12bf(0x132))/0xb);if(_0x4c6aff===_0x5e1cc0)break;else _0x81c89c['push'](_0x81c89c['shift']());}catch(_0x2a7f5a){_0x81c89c['push'](_0x81c89c['shift']());}}}(a19_0x1060,0x9c3b6));function a19_0x1060(){const _0x2928c8=['../../core/api-client.js','2691825BdCKtv','3739527JdneQH','app','platform','267706QtjZfB','30ztuuxc','List\x20apps\x20available\x20on\x20the\x20platform\x20for\x20the\x20current\x20login','14kOaLzH','3218778UyjcCB','932275kfODEl','1699336FpgdBO','appDesc','read','remote','60NncFmV','appName','cookie','4LFDddh','691480bZKpTQ','map'];a19_0x1060=function(){return _0x2928c8;};return a19_0x1060();}import{listRemoteApps}from'../../core/api-client.js';async function execute(_0x2830e2){const _0x39ab30=a19_0x34d9,{setActiveCookie:_0x624cb3}=await import(_0x39ab30(0x130));_0x624cb3(_0x2830e2[_0x39ab30(0x12c)]);const _0x405ad7=await listRemoteApps();return{'ok':!![],'data':{'items':_0x405ad7[_0x39ab30(0x12f)](_0x12284c=>({..._0x12284c['id']!=null?{'id':_0x12284c['id']}:{},'appCode':_0x12284c['appCode'],'appName':_0x12284c[_0x39ab30(0x12b)],..._0x12284c[_0x39ab30(0x127)]!=null?{'appDesc':_0x12284c[_0x39ab30(0x127)]}:{}})),'meta':{'source':_0x39ab30(0x134)}}};}export const appRemoteDefinition={'service':a19_0xd4530(0x133),'command':a19_0xd4530(0x129),'description':a19_0xd4530(0x137),'risk':a19_0xd4530(0x128),'requiresAuth':!![],'requiresAppCode':![],'flags':[],'execute':execute};
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(_0x16f007,_0x470b8b){const _0x27f1f0=a20_0x2e08,_0x1aea4d=_0x16f007();while(!![]){try{const _0x205a7e=parseInt(_0x27f1f0(0x142))/0x1*(-parseInt(_0x27f1f0(0x13d))/0x2)+parseInt(_0x27f1f0(0x13e))/0x3*(-parseInt(_0x27f1f0(0x13a))/0x4)+-parseInt(_0x27f1f0(0x141))/0x5*(parseInt(_0x27f1f0(0x140))/0x6)+-parseInt(_0x27f1f0(0x139))/0x7+parseInt(_0x27f1f0(0x13c))/0x8+parseInt(_0x27f1f0(0x138))/0x9*(-parseInt(_0x27f1f0(0x143))/0xa)+-parseInt(_0x27f1f0(0x13b))/0xb*(-parseInt(_0x27f1f0(0x13f))/0xc);if(_0x205a7e===_0x470b8b)break;else _0x1aea4d['push'](_0x1aea4d['shift']());}catch(_0x4b7da1){_0x1aea4d['push'](_0x1aea4d['shift']());}}}(a20_0x3dbf,0x3e87f));import{appListDefinition}from'../../commands/app/list.js';function a20_0x3dbf(){const _0xaa93f0=['125629RVPuKH','1386910ELrWWx','9UHzWCF','3408076WDPyfo','13836hUnEYv','209ghiyQY','1746520dPujOk','2dmhLzb','267toOUmz','898680pOofpl','786ZzElQv','12445pHhdwl'];a20_0x3dbf=function(){return _0xaa93f0;};return a20_0x3dbf();}import{appRemoteDefinition}from'../../commands/app/discover.js';import{appUseDefinition}from'../../commands/app/use.js';import{appAddDefinition}from'../../commands/app/add.js';import{appRemoveDefinition}from'../../commands/app/remove.js';function a20_0x2e08(_0x51aea8,_0x2ba980){_0x51aea8=_0x51aea8-0x138;const _0x3dbf8b=a20_0x3dbf();let _0x2e08d6=_0x3dbf8b[_0x51aea8];return _0x2e08d6;}export const appDefinitions=[appListDefinition,appRemoteDefinition,appUseDefinition,appAddDefinition,appRemoveDefinition];
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];
@@ -1 +1 @@
1
- const a21_0x734e03=a21_0x3adb;function a21_0x2bf5(){const _0x30d924=['1798234vWWjdn','1bBBYrd','Show\x20only\x20apps\x20from\x20project\x20.rabetbase.json','bool','\x20config','apps','read','project','11283534tpOMVi','find','isCurrent','map','defaultApp','entries','mergedCli','5Lfrcch','12357280qsTclv','push','appcode','globalConfig','projectConfig','inherit','.\x20Use\x20`','Show\x20only\x20apps\x20from\x20global\x20~/.rabetbase.json','5173FspmWA','\x20in\x20','global','9924WgZDSr','7056808UGmedb','projectPath','merged','List\x20all\x20configured\x20apps','boolean','2671671EqCdHP','12019800PRLgVh','length','object'];a21_0x2bf5=function(){return _0x30d924;};return a21_0x2bf5();}(function(_0x143b3a,_0x31560a){const _0x2eb8b1=a21_0x3adb,_0x457da2=_0x143b3a();while(!![]){try{const _0x2b9fcf=-parseInt(_0x2eb8b1(0x150))/0x1*(parseInt(_0x2eb8b1(0x14f))/0x2)+parseInt(_0x2eb8b1(0x14b))/0x3+-parseInt(_0x2eb8b1(0x16b))/0x4*(parseInt(_0x2eb8b1(0x15e))/0x5)+parseInt(_0x2eb8b1(0x16a))/0x6*(parseInt(_0x2eb8b1(0x167))/0x7)+parseInt(_0x2eb8b1(0x14c))/0x8+-parseInt(_0x2eb8b1(0x157))/0x9+parseInt(_0x2eb8b1(0x15f))/0xa;if(_0x2b9fcf===_0x31560a)break;else _0x457da2['push'](_0x457da2['shift']());}catch(_0x372637){_0x457da2['push'](_0x457da2['shift']());}}}(a21_0x2bf5,0xe4085));function a21_0x3adb(_0x51904e,_0x3561d4){_0x51904e=_0x51904e-0x149;const _0x2bf543=a21_0x2bf5();let _0x3adbc8=_0x2bf543[_0x51904e];return _0x3adbc8;}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(_0x38dbe6,_0x3f40ef){const _0x480030=a21_0x3adb,_0x5619f5=[],_0x4fe17b=_0x38dbe6[_0x480030(0x154)]&&typeof _0x38dbe6[_0x480030(0x154)]===_0x480030(0x14e)?_0x38dbe6[_0x480030(0x154)]:{},_0x2538ec=_0x38dbe6[_0x480030(0x15b)]||undefined;for(const [_0x447574,_0xca0719]of Object[_0x480030(0x15c)](_0x4fe17b)){if(!_0xca0719||typeof _0xca0719!==_0x480030(0x14e)||!_0xca0719['appcode'])continue;_0x5619f5[_0x480030(0x160)]({'name':_0x447574,'appcode':_0xca0719[_0x480030(0x161)],'named':!![],'definedIn':_0x3f40ef,'isDefault':_0x447574===_0x2538ec,...buildAppProfileListFields(_0xca0719)});}return _0x5619f5;}function buildMergedItems(_0x2b22ed,_0x11bfda){const _0x92cac7=a21_0x3adb,{apps:apps={},defaultApp:_0x99c17e}=_0x2b22ed,_0x38a9ea=_0x11bfda[_0x92cac7(0x162)][_0x92cac7(0x154)]&&typeof _0x11bfda[_0x92cac7(0x162)][_0x92cac7(0x154)]===_0x92cac7(0x14e)?_0x11bfda[_0x92cac7(0x162)][_0x92cac7(0x154)]:{},_0x2a3fff=_0x11bfda['projectConfig'][_0x92cac7(0x154)]&&typeof _0x11bfda[_0x92cac7(0x163)][_0x92cac7(0x154)]===_0x92cac7(0x14e)?_0x11bfda[_0x92cac7(0x163)][_0x92cac7(0x154)]:{},_0xbfd4b=_0x11bfda[_0x92cac7(0x163)][_0x92cac7(0x164)]===![],_0x247d82=Object[_0x92cac7(0x15c)](apps),_0x4aa43a=_0x247d82[_0x92cac7(0x15a)](([_0x44892a,_0x26c867])=>({'name':_0x44892a,'appcode':_0x26c867[_0x92cac7(0x161)],'named':!![],'definedIn':appDefinedIn(_0x44892a,_0x38a9ea,_0x2a3fff,_0xbfd4b),'isDefault':_0x44892a===_0x99c17e,...buildAppProfileListFields(_0x26c867)}));return _0x4aa43a;}async function execute(_0xd38e8a){const _0x59fac2=a21_0x3adb,_0x4f1bc4=_0xd38e8a[_0x59fac2(0x152)](_0x59fac2(0x169)),_0x5d35da=_0xd38e8a[_0x59fac2(0x152)](_0x59fac2(0x156)),_0x532e93=_0x4f1bc4?_0x59fac2(0x169):_0x5d35da?_0x59fac2(0x156):_0x59fac2(0x16d),{config:_0x3873fb,layers:_0xcb8265}=readRawConfigWithLayers(),_0x4dab41=resolveDefaultAppSource(_0xcb8265),{defaultApp:_0x20c32b}=_0x3873fb;let _0x4cdbf9,_0x48196d;switch(_0x532e93){case _0x59fac2(0x169):_0x4cdbf9=buildItemsFromLayer(_0xcb8265[_0x59fac2(0x162)],_0x59fac2(0x169)),_0x48196d=_0xcb8265['globalPath'];break;case _0x59fac2(0x156):_0x4cdbf9=buildItemsFromLayer(_0xcb8265[_0x59fac2(0x163)],_0x59fac2(0x156)),_0x48196d=_0xcb8265[_0x59fac2(0x16c)];break;default:_0x4cdbf9=buildMergedItems(_0x3873fb,_0xcb8265);break;}enrichAppListItemsWithMergedSelection(_0x4cdbf9,_0xd38e8a[_0x59fac2(0x15d)]);if(_0x4cdbf9[_0x59fac2(0x14d)]===0x0){const _0x424d96=_0x532e93===_0x59fac2(0x16d)?'':_0x59fac2(0x168)+_0x532e93+_0x59fac2(0x153);return{'ok':!![],'data':[],'message':'No\x20apps\x20configured'+_0x424d96+_0x59fac2(0x165)+CLI_BIN_NAME+'\x20app\x20add\x20<name>\x20--appcode\x20<code>`\x20to\x20add\x20one.'};}const _0x3a9ad5=_0x4cdbf9[_0x59fac2(0x158)](_0x3e2276=>_0x3e2276[_0x59fac2(0x159)]===!![]),_0x580da0=_0x20c32b??_0x3a9ad5?.['appcode']??null,_0x250052=_0x532e93==='merged'?{'globalPath':_0xcb8265['globalPath']??null,'projectPath':_0xcb8265['projectPath']??null,'defaultApp':_0x580da0,'defaultAppSource':_0x20c32b!=null?_0x4dab41:null}:{'scope':_0x532e93,'configPath':_0x48196d??null};return{'ok':!![],'data':{'items':_0x4cdbf9,'meta':_0x250052}};}export const appListDefinition={'service':'app','command':'list','description':a21_0x734e03(0x149),'risk':a21_0x734e03(0x155),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a21_0x734e03(0x169),'type':a21_0x734e03(0x14a),'description':a21_0x734e03(0x166),'default':![]},{'name':a21_0x734e03(0x156),'type':a21_0x734e03(0x14a),'description':a21_0x734e03(0x151),'default':![]}],'execute':execute};
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 a22_0x220fec=a22_0x34eb;(function(_0x3e7ea9,_0x20755a){const _0x2fb9c5=a22_0x34eb,_0x46a3d6=_0x3e7ea9();while(!![]){try{const _0x230de4=parseInt(_0x2fb9c5(0x89))/0x1*(parseInt(_0x2fb9c5(0x6c))/0x2)+-parseInt(_0x2fb9c5(0x6e))/0x3*(parseInt(_0x2fb9c5(0x77))/0x4)+parseInt(_0x2fb9c5(0x78))/0x5*(-parseInt(_0x2fb9c5(0x6b))/0x6)+-parseInt(_0x2fb9c5(0x86))/0x7*(parseInt(_0x2fb9c5(0x66))/0x8)+parseInt(_0x2fb9c5(0x71))/0x9+parseInt(_0x2fb9c5(0x68))/0xa*(-parseInt(_0x2fb9c5(0x79))/0xb)+-parseInt(_0x2fb9c5(0x84))/0xc*(-parseInt(_0x2fb9c5(0x70))/0xd);if(_0x230de4===_0x20755a)break;else _0x46a3d6['push'](_0x46a3d6['shift']());}catch(_0x2a9ffb){_0x46a3d6['push'](_0x46a3d6['shift']());}}}(a22_0x5cd5,0xab32d));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{readRawConfigWithLayers}from'../../context.js';import{readConfig,writeConfig,scopeLabel,resolveAppScopeForWrite,appDefinedIn}from'../../commands/app/shared.js';async function validateArgs(_0xebf8b9){const _0x14e50e=a22_0x34eb,_0x8dfda6=_0xebf8b9[_0x14e50e(0x6a)][0x0]?.['trim']();if(!_0x8dfda6)throw CliErrors[_0x14e50e(0x69)](_0x14e50e(0x72),_0x14e50e(0x76)+CLI_BIN_NAME+'\x20app\x20remove\x20<name>\x20[--global]');}async function execute(_0x1daf31){const _0x204e3c=a22_0x34eb,_0x14ed8f=_0x1daf31[_0x204e3c(0x6a)][0x0]?.['trim']();if(!_0x14ed8f)throw CliErrors[_0x204e3c(0x69)](_0x204e3c(0x72),'Usage:\x20'+CLI_BIN_NAME+_0x204e3c(0x7d));const _0x57de70=_0x1daf31['bool']('global'),{config:_0x45ab0d,layers:_0x1d44ca}=readRawConfigWithLayers(),_0x69c439=_0x45ab0d[_0x204e3c(0x6d)]??{};if(!_0x69c439[_0x14ed8f])throw CliErrors[_0x204e3c(0x69)](_0x204e3c(0x6f)+_0x14ed8f+_0x204e3c(0x67));const _0x118d5a=_0x1d44ca[_0x204e3c(0x85)][_0x204e3c(0x6d)]&&typeof _0x1d44ca[_0x204e3c(0x85)][_0x204e3c(0x6d)]===_0x204e3c(0x73)?_0x1d44ca['globalConfig'][_0x204e3c(0x6d)]:{},_0x444f9f=_0x1d44ca[_0x204e3c(0x88)]['apps']&&typeof _0x1d44ca[_0x204e3c(0x88)]['apps']===_0x204e3c(0x73)?_0x1d44ca[_0x204e3c(0x88)][_0x204e3c(0x6d)]:{},_0x178d3e=appDefinedIn(_0x14ed8f,_0x118d5a,_0x444f9f,_0x1d44ca[_0x204e3c(0x88)]['inherit']===![]),_0x15ab58=resolveAppScopeForWrite(_0x14ed8f,_0x57de70,_0x1d44ca),_0x188442={'global':_0x15ab58===_0x204e3c(0x7a)},_0x471c35=readConfig(_0x188442),_0xabff75=_0x471c35[_0x204e3c(0x6d)];if(!_0xabff75||!_0xabff75[_0x14ed8f])throw CliErrors[_0x204e3c(0x69)]('App\x20\x22'+_0x14ed8f+'\x22\x20not\x20found.');delete _0xabff75[_0x14ed8f];let _0x29edf2='';if(_0x471c35[_0x204e3c(0x7b)]===_0x14ed8f){const _0x53571b=Object[_0x204e3c(0x80)](_0xabff75);_0x471c35[_0x204e3c(0x7b)]=_0x53571b[_0x204e3c(0x7f)]>0x0?_0x53571b[0x0]:undefined,_0x471c35[_0x204e3c(0x7b)]?_0x29edf2=_0x204e3c(0x7c)+_0x471c35[_0x204e3c(0x7b)]+'\x22.':delete _0x471c35[_0x204e3c(0x7b)];}Object[_0x204e3c(0x80)](_0xabff75)[_0x204e3c(0x7f)]===0x0&&(delete _0x471c35[_0x204e3c(0x6d)],delete _0x471c35[_0x204e3c(0x7b)]);writeConfig(_0x471c35,_0x188442);const _0x1ea421=_0x178d3e==='both'?'\x20Note:\x20app\x20\x22'+_0x14ed8f+_0x204e3c(0x87)+(_0x15ab58===_0x204e3c(0x74)?_0x204e3c(0x7a):'project')+'\x20config.':'';return{'ok':!![],'message':'Removed\x20app\x20\x22'+_0x14ed8f+'\x22'+scopeLabel(_0x188442)+'.'+_0x29edf2+_0x1ea421};}export const appRemoveDefinition={'service':a22_0x220fec(0x82),'command':a22_0x220fec(0x81),'description':a22_0x220fec(0x83),'risk':'high-risk-write','requiresAuth':![],'requiresAppCode':![],'args':[{'name':a22_0x220fec(0x7e),'description':'App\x20profile\x20name\x20to\x20remove','required':!![]}],'flags':[{'name':a22_0x220fec(0x7a),'type':'boolean','description':a22_0x220fec(0x75),'default':![]}],'validate':validateArgs,'execute':execute};function a22_0x34eb(_0x3e48da,_0x54ea91){_0x3e48da=_0x3e48da-0x66;const _0x5cd590=a22_0x5cd5();let _0x34eb05=_0x5cd590[_0x3e48da];return _0x34eb05;}function a22_0x5cd5(){const _0xe05232=['\x20app\x20remove\x20<name>\x20[--global]','name','length','keys','remove','app','Remove\x20an\x20app\x20from\x20config','470040OnBVAC','globalConfig','7zhvsDE','\x22\x20still\x20defined\x20in\x20','projectConfig','2234cgevBK','1616312djEzYx','\x22\x20not\x20found.','110fQffIR','validation','args','35244fKyOPg','102aNmxfM','apps','21QGwzXH','App\x20\x22','481YIFCgl','2181312DhBsJW','Missing\x20app\x20name.','object','project','Use\x20global\x20config\x20scope','Usage:\x20','111040KUBnYf','95jJtCPG','596398rDkpIQ','global','defaultApp','\x20Default\x20app\x20changed\x20to\x20\x22'];a22_0x5cd5=function(){return _0xe05232;};return a22_0x5cd5();}
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(_0x4c9909,_0x5f0a29){const _0xa10250=a23_0x5e86,_0x24082f=_0x4c9909();while(!![]){try{const _0xf02996=parseInt(_0xa10250(0x193))/0x1*(parseInt(_0xa10250(0x184))/0x2)+-parseInt(_0xa10250(0x194))/0x3+-parseInt(_0xa10250(0x18c))/0x4+-parseInt(_0xa10250(0x188))/0x5*(-parseInt(_0xa10250(0x189))/0x6)+-parseInt(_0xa10250(0x18f))/0x7+parseInt(_0xa10250(0x192))/0x8*(parseInt(_0xa10250(0x190))/0x9)+-parseInt(_0xa10250(0x18e))/0xa*(-parseInt(_0xa10250(0x17c))/0xb);if(_0xf02996===_0x5f0a29)break;else _0x24082f['push'](_0x24082f['shift']());}catch(_0x47efc8){_0x24082f['push'](_0x24082f['shift']());}}}(a23_0x3c43,0xae9af));import{resolveWriteConfigPath,readConfigFile,writeConfigFile}from'../../context.js';export function enrichAppListItemsWithMergedSelection(_0x5d834d,_0x3cc2a1){const _0x306f00=a23_0x5e86;if(!_0x3cc2a1)return;const _0x48d94e=_0x3cc2a1[_0x306f00(0x181)]&&typeof _0x3cc2a1['apps']===_0x306f00(0x198)?_0x3cc2a1[_0x306f00(0x181)]:{},_0xc5609f=Object[_0x306f00(0x185)](_0x48d94e)['length']>0x0;for(const _0xccb2e1 of _0x5d834d){_0xccb2e1['isCurrent']=![];}const _0x4bf87b=_0x3cc2a1['appCode']!=null?String(_0x3cc2a1[_0x306f00(0x191)])['trim']():'';if(_0xc5609f){const _0x2191f7=_0x3cc2a1[_0x306f00(0x186)]??_0x3cc2a1[_0x306f00(0x199)];if(_0x2191f7)for(const _0x1eb9fa of _0x5d834d){_0x1eb9fa[_0x306f00(0x182)]===!![]&&_0x1eb9fa['name']===_0x2191f7&&(_0x1eb9fa[_0x306f00(0x19a)]=!![]);}for(const _0x87443d of _0x5d834d){if(_0x87443d[_0x306f00(0x182)]!==![])continue;if(_0x3cc2a1[_0x306f00(0x199)])continue;_0x4bf87b&&String(_0x87443d[_0x306f00(0x180)]??'')[_0x306f00(0x18a)]()===_0x4bf87b&&(_0x87443d[_0x306f00(0x19a)]=!![]);}return;}if(!_0x4bf87b)return;for(const _0x4132a8 of _0x5d834d){String(_0x4132a8['appcode']??'')[_0x306f00(0x18a)]()===_0x4bf87b&&(_0x4132a8[_0x306f00(0x19a)]=!![]);}}function a23_0x5e86(_0x41e7ea,_0x427ee4){_0x41e7ea=_0x41e7ea-0x17b;const _0x3c43b3=a23_0x3c43();let _0x5e8626=_0x3c43b3[_0x41e7ea];return _0x5e8626;}export function resolveAppScopeForWrite(_0x1a71f2,_0x101e28,_0x38dd7d){const _0x3d615e=a23_0x5e86;if(_0x101e28)return'global';const _0x564774=_0x38dd7d[_0x3d615e(0x17e)][_0x3d615e(0x181)]&&typeof _0x38dd7d[_0x3d615e(0x17e)][_0x3d615e(0x181)]===_0x3d615e(0x198)?_0x38dd7d[_0x3d615e(0x17e)]['apps']:{},_0x424871=_0x38dd7d[_0x3d615e(0x183)]['apps']&&typeof _0x38dd7d[_0x3d615e(0x183)][_0x3d615e(0x181)]===_0x3d615e(0x198)?_0x38dd7d[_0x3d615e(0x183)]['apps']:{};if(Object[_0x3d615e(0x17b)][_0x3d615e(0x196)][_0x3d615e(0x18d)](_0x564774,_0x1a71f2))return _0x3d615e(0x18b);if(Object[_0x3d615e(0x17b)][_0x3d615e(0x196)][_0x3d615e(0x18d)](_0x424871,_0x1a71f2))return _0x3d615e(0x195);return'project';}export function appDefinedIn(_0x1dd420,_0x3fc49f,_0x4f4d36,_0x274110){const _0x5b59a1=a23_0x5e86;if(_0x274110)return Object[_0x5b59a1(0x17b)]['hasOwnProperty'][_0x5b59a1(0x18d)](_0x4f4d36,_0x1dd420)?_0x5b59a1(0x18b):'global';const _0x2ea4f2=Object[_0x5b59a1(0x17b)][_0x5b59a1(0x196)][_0x5b59a1(0x18d)](_0x3fc49f,_0x1dd420),_0x3b4414=Object['prototype'][_0x5b59a1(0x196)][_0x5b59a1(0x18d)](_0x4f4d36,_0x1dd420);if(_0x2ea4f2&&_0x3b4414)return _0x5b59a1(0x17f);if(_0x3b4414)return _0x5b59a1(0x18b);return _0x5b59a1(0x195);}export function resolveDefaultAppSource(_0x519fd8){const _0xaba23a=a23_0x5e86,_0x5313fe=_0x519fd8[_0xaba23a(0x17e)][_0xaba23a(0x181)]&&typeof _0x519fd8[_0xaba23a(0x17e)][_0xaba23a(0x181)]===_0xaba23a(0x198)?_0x519fd8[_0xaba23a(0x17e)][_0xaba23a(0x181)]:{};if(_0xaba23a(0x199)in _0x519fd8[_0xaba23a(0x17e)])return _0xaba23a(0x18b);if(Object[_0xaba23a(0x185)](_0x5313fe)[_0xaba23a(0x197)]>0x0)return _0xaba23a(0x18b);if(_0x519fd8[_0xaba23a(0x17e)][_0xaba23a(0x17d)]===![])return null;if(_0x519fd8[_0xaba23a(0x183)][_0xaba23a(0x199)])return _0xaba23a(0x195);return null;}export function getConfigPath(_0x2a73a0={}){const _0x17147a=a23_0x5e86,_0x43bfb2=_0x2a73a0[_0x17147a(0x195)]?_0x17147a(0x195):_0x17147a(0x18b);return resolveWriteConfigPath(_0x43bfb2);}export function readConfig(_0x2e04ca={}){return readConfigFile(getConfigPath(_0x2e04ca));}export function writeConfig(_0x3e395d,_0x345cb4={}){writeConfigFile(getConfigPath(_0x345cb4),_0x3e395d);}export function scopeLabel(_0x3a1b1e){const _0x2f41ec=a23_0x5e86;return _0x3a1b1e[_0x2f41ec(0x195)]?_0x2f41ec(0x187):'';}function a23_0x3c43(){const _0x240778=['global','hasOwnProperty','length','object','defaultApp','isCurrent','prototype','5165479pvrXbQ','inherit','projectConfig','both','appcode','apps','named','globalConfig','215048HmMEzw','keys','currentApp','\x20(global)','4459105oQGlww','6OiaEtB','trim','project','3840484mgONtM','call','10oMaDfW','7027608TZVlod','9708606oQOzVY','appCode','8Irjpor','9kzMSGB','2185836VzXBcU'];a23_0x3c43=function(){return _0x240778;};return a23_0x3c43();}
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):'';}
@@ -1 +1 @@
1
- const a24_0x13083e=a24_0x9a95;(function(_0x146e1e,_0x280a17){const _0x50ca2b=a24_0x9a95,_0x446cb5=_0x146e1e();while(!![]){try{const _0x2863f2=parseInt(_0x50ca2b(0x18f))/0x1+-parseInt(_0x50ca2b(0x18a))/0x2+-parseInt(_0x50ca2b(0x185))/0x3*(parseInt(_0x50ca2b(0x19b))/0x4)+-parseInt(_0x50ca2b(0x189))/0x5+parseInt(_0x50ca2b(0x193))/0x6+parseInt(_0x50ca2b(0x192))/0x7*(parseInt(_0x50ca2b(0x1a0))/0x8)+parseInt(_0x50ca2b(0x18e))/0x9*(parseInt(_0x50ca2b(0x187))/0xa);if(_0x2863f2===_0x280a17)break;else _0x446cb5['push'](_0x446cb5['shift']());}catch(_0x18a078){_0x446cb5['push'](_0x446cb5['shift']());}}}(a24_0x2fa7,0xcf4c9));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a24_0x9a95(_0x14d2a5,_0x463935){_0x14d2a5=_0x14d2a5-0x183;const _0x2fa757=a24_0x2fa7();let _0x9a953a=_0x2fa757[_0x14d2a5];return _0x9a953a;}import{readRawConfigWithLayers,isInProject}from'../../context.js';function a24_0x2fa7(){const _0x2f3902=['join','\x20app\x20use\x20<name>\x20[--global]','\x20--appcode\x20<code>`\x20first.','app','Missing\x20app\x20name.','keys','projectPath','globalConfig','4384875INBOpK','Available:\x20','10iGyLCM','Use\x20`','7844995JJjfem','30980ZNgxxv','\x20app\x20add\x20','\x22\x20not\x20found.','Switch\x20the\x20default\x20app','8549901EnGOyy','681903IYnpkN','\x0aNote:\x20\x22','boolean','14EmkPFk','5381826PuYsOb','Use\x20global\x20config\x20scope','trim','\x22\x20(appcode:\x20','validation','App\x20profile\x20name\x20to\x20activate','object','prototype','4LeQGHB','use','defaultApp','global','name','5465392sDGKSG','Usage:\x20','hasOwnProperty','write','apps'];a24_0x2fa7=function(){return _0x2f3902;};return a24_0x2fa7();}import{readConfig,writeConfig,scopeLabel}from'../../commands/app/shared.js';async function validateArgs(_0x4827fe){const _0x5a1cdb=a24_0x9a95,_0x4eb9c9=_0x4827fe['args'][0x0]?.[_0x5a1cdb(0x195)]();if(!_0x4eb9c9)throw CliErrors['validation'](_0x5a1cdb(0x1a9),_0x5a1cdb(0x1a1)+CLI_BIN_NAME+_0x5a1cdb(0x1a6));}async function execute(_0x392ecc){const _0x29a704=a24_0x9a95,_0x405d93=_0x392ecc['args'][0x0]?.['trim']();if(!_0x405d93)throw CliErrors[_0x29a704(0x197)](_0x29a704(0x1a9),_0x29a704(0x1a1)+CLI_BIN_NAME+_0x29a704(0x1a6));const _0x25a0c9=_0x392ecc['bool'](_0x29a704(0x19e)),{config:_0x1b7574,layers:_0x1e8774}=readRawConfigWithLayers(),_0x558321=_0x1b7574[_0x29a704(0x1a4)]??{},_0x5de7a2=_0x1e8774['globalConfig'][_0x29a704(0x1a4)]&&typeof _0x1e8774['globalConfig'][_0x29a704(0x1a4)]===_0x29a704(0x199)?_0x1e8774[_0x29a704(0x184)]['apps']:{},_0x189368={..._0x5de7a2,..._0x558321};if(!_0x189368[_0x405d93]){const _0x5617fc=Object[_0x29a704(0x1aa)](_0x189368),_0x3113d0=_0x5617fc['length']===0x0?_0x29a704(0x188)+CLI_BIN_NAME+_0x29a704(0x18b)+_0x405d93+_0x29a704(0x1a7):_0x29a704(0x186)+_0x5617fc[_0x29a704(0x1a5)](',\x20');throw CliErrors[_0x29a704(0x197)]('App\x20\x22'+_0x405d93+_0x29a704(0x18c),_0x3113d0);}let _0x4abe3d,_0x3eccc2='';if(_0x25a0c9)_0x4abe3d={'global':!![]};else{const _0x4ea5da=isInProject()&&!!_0x1e8774[_0x29a704(0x183)];_0x4abe3d={'global':!_0x4ea5da};}const _0x419602=readConfig(_0x4abe3d);_0x419602[_0x29a704(0x19d)]=_0x405d93;if(!_0x4abe3d[_0x29a704(0x19e)]){const _0x2b5d0a=_0x419602[_0x29a704(0x1a4)]&&typeof _0x419602[_0x29a704(0x1a4)]===_0x29a704(0x199)?_0x419602['apps']:{};!Object[_0x29a704(0x19a)][_0x29a704(0x1a2)]['call'](_0x2b5d0a,_0x405d93)&&(_0x419602[_0x29a704(0x1a4)]={..._0x2b5d0a,[_0x405d93]:_0x189368[_0x405d93]},_0x3eccc2=_0x29a704(0x190)+_0x405d93+'\x22\x20was\x20defined\x20in\x20global\x20config;\x20profile\x20copied\x20into\x20project\x20so\x20the\x20project\x20config\x20self-resolves\x20under\x20the\x20default\x20project-first\x20inherit\x20policy.');}return writeConfig(_0x419602,_0x4abe3d),{'ok':!![],'message':'Default\x20app\x20set\x20to\x20\x22'+_0x405d93+_0x29a704(0x196)+_0x189368[_0x405d93]['appcode']+')'+scopeLabel(_0x4abe3d)+_0x3eccc2};}export const appUseDefinition={'service':a24_0x13083e(0x1a8),'command':a24_0x13083e(0x19c),'description':a24_0x13083e(0x18d),'risk':a24_0x13083e(0x1a3),'requiresAuth':![],'requiresAppCode':![],'args':[{'name':a24_0x13083e(0x19f),'description':a24_0x13083e(0x198),'required':!![]}],'flags':[{'name':'global','type':a24_0x13083e(0x191),'description':a24_0x13083e(0x194),'default':![]}],'validate':validateArgs,'execute':execute};
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 a25_0x1459d5=a25_0x39ab;function a25_0x39ab(_0x3babd1,_0x566d62){_0x3babd1=_0x3babd1-0x183;const _0x150825=a25_0x1508();let _0x39abf2=_0x150825[_0x3babd1];return _0x39abf2;}function a25_0x1508(){const _0x311eac=['1993824JstTOL','yes','write','300868nUBpiP','✓\x20Logged\x20out','57297IvAWPX','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','Clear\x20login\x20session','auth','1340cixjNm','nonInteractive','4545aWvByJ','log','logout','913829MnVvNe','12kZpbbu','1153995gQEDOQ','../../auth/auth-server-ui.js','3117LHLVbp','!\x20Not\x20logged\x20in','boolean','read','login','500tjrFmM','bool'];a25_0x1508=function(){return _0x311eac;};return a25_0x1508();}(function(_0x1e10b3,_0x200708){const _0x22a9d1=a25_0x39ab,_0x20ac88=_0x1e10b3();while(!![]){try{const _0x101d82=-parseInt(_0x22a9d1(0x18f))/0x1+parseInt(_0x22a9d1(0x18d))/0x2+-parseInt(_0x22a9d1(0x183))/0x3*(parseInt(_0x22a9d1(0x188))/0x4)+parseInt(_0x22a9d1(0x19a))/0x5+parseInt(_0x22a9d1(0x199))/0x6*(parseInt(_0x22a9d1(0x198))/0x7)+-parseInt(_0x22a9d1(0x18a))/0x8+-parseInt(_0x22a9d1(0x195))/0x9*(parseInt(_0x22a9d1(0x193))/0xa);if(_0x101d82===_0x200708)break;else _0x20ac88['push'](_0x20ac88['shift']());}catch(_0x127fff){_0x20ac88['push'](_0x20ac88['shift']());}}}(a25_0x1508,0x21c11));import{unlinkSync,existsSync}from'node:fs';import{cookieFile}from'../../auth/constant.js';export const authDefinitions=[{'service':a25_0x1459d5(0x192),'command':a25_0x1459d5(0x187),'description':'Login\x20via\x20browser','risk':a25_0x1459d5(0x186),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'yes','type':a25_0x1459d5(0x185),'description':a25_0x1459d5(0x190),'default':![]}],async 'execute'(_0x1374ea){const _0x245b6b=a25_0x1459d5,{runAuthServer:_0x54caa9}=await import(_0x245b6b(0x19b));return await _0x54caa9({'autoYes':_0x1374ea[_0x245b6b(0x189)](_0x245b6b(0x18b)),'nonInteractive':_0x1374ea[_0x245b6b(0x194)]}),{'ok':!![]};}},{'service':a25_0x1459d5(0x192),'command':a25_0x1459d5(0x197),'description':a25_0x1459d5(0x191),'risk':a25_0x1459d5(0x18c),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0xbd6fa){const _0x49ec23=a25_0x1459d5;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x49ec23(0x196)](_0x49ec23(0x18e))):console['log'](_0x49ec23(0x184)),{'ok':!![]};}}];
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 a27_0x3d3b(){const _0xfd5c4a=['1084830uQIdSw','24vdLCnq','<timestamp>','join','Function\x20not\x20found:\x20','map','length','find','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a','Lock\x20scope\x20for\x20app\x20\x22','563031jZdlrB','validation','2597580zIIEmr','remoteId','Deleted\x20','trashedTo','lockFilePath','\x22\x20not\x20found\x20after\x20ensureLockScope.','Delete\x20a\x20BFF\x20script\x20from\x20remote\x20and\x20local','1754DmOIFk','BFF\x20lock\x20file\x20not\x20found.','scriptsRoot','projectRoot','high-risk-write','\x20\x20-\x20','706476KHqGyg','parse','functions','trashDir','Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name','\x20(local\x20file\x20moved\x20to\x20trash)','str','filter','toISOString','5ppwkJO','107ocweyd','keys','No\x20lock\x20entry\x20found\x20for\x20\x22','delete','/api/management/library/scripts/delete','appCode','729804pwhkwc','1916058jRVKHU','bff','Multiple\x20functions\x20match\x20\x22','apps','startsWith','target','split'];a27_0x3d3b=function(){return _0xfd5c4a;};return a27_0x3d3b();}const a27_0xbf69dc=a27_0x14a5;(function(_0x3f78d3,_0x39b6dc){const _0x49df00=a27_0x14a5,_0x1cd321=_0x3f78d3();while(!![]){try{const _0x196d79=-parseInt(_0x49df00(0xd2))/0x1*(parseInt(_0x49df00(0xc2))/0x2)+-parseInt(_0x49df00(0xc8))/0x3+-parseInt(_0x49df00(0xd8))/0x4+-parseInt(_0x49df00(0xd1))/0x5*(-parseInt(_0x49df00(0xd9))/0x6)+parseInt(_0x49df00(0xb9))/0x7*(parseInt(_0x49df00(0xe1))/0x8)+parseInt(_0x49df00(0xbb))/0x9+-parseInt(_0x49df00(0xe0))/0xa;if(_0x196d79===_0x39b6dc)break;else _0x1cd321['push'](_0x1cd321['shift']());}catch(_0x95b1d4){_0x1cd321['push'](_0x1cd321['shift']());}}}(a27_0x3d3b,0x37e85));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_0xbf69dc(0xda),'command':'delete','description':a27_0xbf69dc(0xc1),'risk':a27_0xbf69dc(0xc6),'flags':[{'name':a27_0xbf69dc(0xde),'type':'string','required':!![],'description':a27_0xbf69dc(0xcc)}],async 'validate'(_0x4704a0){const _0x3c3f65=a27_0xbf69dc,_0x31995e=loadBffProjectConfig(_0x4704a0[_0x3c3f65(0xd7)]),_0x3b48cc=await readBffLockFile(_0x31995e[_0x3c3f65(0xbf)]);if(!_0x3b48cc)throw CliErrors['validation']('BFF\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.');},async 'dryRun'(_0x5a349e){const _0x44ac2a=a27_0xbf69dc,_0x25ce98=loadBffProjectConfig(_0x5a349e[_0x44ac2a(0xd7)]),_0x2f8046=await readBffLockFile(_0x25ce98[_0x44ac2a(0xbf)]);if(!_0x2f8046)throw CliErrors[_0x44ac2a(0xba)](_0x44ac2a(0xc3));const {appLock:_0x2c2e44}=ensureLockScope(_0x2f8046,_0x5a349e[_0x44ac2a(0xd7)],_0x25ce98[_0x44ac2a(0xc4)],_0x44ac2a(0xd5)),_0x1e85eb=_0x5a349e[_0x44ac2a(0xce)]('target'),_0x247c95=Object[_0x44ac2a(0xd3)](_0x2c2e44[_0x44ac2a(0xca)]),_0x17147f=resolveDeleteTarget(_0x1e85eb,_0x247c95),_0x3d522f=_0x2c2e44[_0x44ac2a(0xca)][_0x17147f];if(!_0x3d522f)throw CliErrors[_0x44ac2a(0xba)](_0x44ac2a(0xd4)+_0x17147f+'\x22.');const _0x5aa4b9=resolveLocalFilePathFromLockKey(_0x25ce98,_0x17147f),_0x6a0a7a=relative(_0x25ce98[_0x44ac2a(0xc5)],_0x5aa4b9),_0x3cf5b3=join(_0x25ce98['trashDir'],_0x44ac2a(0xe2),_0x6a0a7a);return{'method':'POST','url':_0x44ac2a(0xd6),'body':{'appCode':_0x5a349e['appCode'],'target':_0x17147f,'remoteId':_0x3d522f[_0x44ac2a(0xbc)],'localFilePath':_0x5aa4b9,'trashedPath':_0x3cf5b3},'description':'Would\x20delete\x20'+_0x17147f+_0x44ac2a(0xb6)};},async 'execute'(_0x25f528){const _0x3fb129=a27_0xbf69dc,_0x478171=loadBffProjectConfig(_0x25f528[_0x3fb129(0xd7)]),_0x20c096=await readBffLockFile(_0x478171[_0x3fb129(0xbf)]);if(!_0x20c096)throw CliErrors['validation']('BFF\x20lock\x20file\x20not\x20found.');const {lockData:_0x5ec0d1,appLock:_0x2818b6}=ensureLockScope(_0x20c096,_0x25f528[_0x3fb129(0xd7)],_0x478171[_0x3fb129(0xc4)],'delete'),_0x373738=JSON[_0x3fb129(0xc9)](JSON['stringify'](_0x5ec0d1)),_0x17f188=_0x373738[_0x3fb129(0xdc)][_0x25f528[_0x3fb129(0xd7)]];if(!_0x17f188)throw new Error(_0x3fb129(0xb8)+_0x25f528[_0x3fb129(0xd7)]+_0x3fb129(0xc0));const _0x4a988c=_0x25f528[_0x3fb129(0xce)]('target'),_0x244fff=Object[_0x3fb129(0xd3)](_0x17f188[_0x3fb129(0xca)]),_0x1f0c84=resolveDeleteTarget(_0x4a988c,_0x244fff),_0x3ecc07=_0x17f188['functions'][_0x1f0c84];if(!_0x3ecc07)throw CliErrors[_0x3fb129(0xba)](_0x3fb129(0xd4)+_0x1f0c84+'\x22.');await deleteBffScript(_0x3ecc07[_0x3fb129(0xbc)]),delete _0x17f188[_0x3fb129(0xca)][_0x1f0c84],_0x17f188['lastSync']=new Date()['toISOString'](),await writeBffLockFile(_0x478171[_0x3fb129(0xbf)],_0x373738);const _0x321663=resolveLocalFilePathFromLockKey(_0x478171,_0x1f0c84);let _0x48d291;await fileExists(_0x321663)&&(_0x48d291=await moveToTrash(_0x478171[_0x3fb129(0xc5)],_0x478171[_0x3fb129(0xcb)],_0x321663),await cleanupEmptyDirectories(dirname(_0x321663),_0x478171['scriptsRootDir']));await waitForDeleteSettlement(_0x478171[_0x3fb129(0xbf)],_0x25f528[_0x3fb129(0xd7)],_0x1f0c84,_0x321663),await sleep(0x96);const _0x4849e1={'deleted':_0x1f0c84,'remoteId':_0x3ecc07[_0x3fb129(0xbc)]};if(_0x48d291)_0x4849e1[_0x3fb129(0xbe)]=_0x48d291;return{'ok':!![],'data':_0x4849e1,'message':_0x3fb129(0xbd)+_0x1f0c84+(_0x48d291?_0x3fb129(0xcd):'')};}};function resolveDeleteTarget(_0x85d000,_0x24e8fe){const _0xa61291=a27_0xbf69dc;if(_0x85d000['includes']('/')){const _0x127018=_0x24e8fe[_0xa61291(0xb5)](_0x153f3f=>_0x153f3f===_0x85d000);if(!_0x127018)throw CliErrors[_0xa61291(0xba)](_0xa61291(0xe4)+_0x85d000);return _0x127018;}const _0x3f3622=_0x24e8fe[_0xa61291(0xcf)](_0x419c80=>_0x419c80[_0xa61291(0xdf)]('/')['at'](-0x1)===_0x85d000);if(_0x3f3622[_0xa61291(0xe6)]===0x0)throw CliErrors['validation'](_0xa61291(0xe4)+_0x85d000);if(_0x3f3622['length']>0x1)throw CliErrors[_0xa61291(0xba)](_0xa61291(0xdb)+_0x85d000+_0xa61291(0xb7)+_0x3f3622[_0xa61291(0xe5)](_0x101030=>_0xa61291(0xc7)+_0x101030)[_0xa61291(0xe3)]('\x0a'));return _0x3f3622[0x0];}async function moveToTrash(_0x1c6fa4,_0x5f3c53,_0x13beb8){const _0x2f1301=a27_0xbf69dc,_0x299ae2=new Date()[_0x2f1301(0xd0)]()['replace'](/[:.]/g,'-'),_0x39b4fb=relative(_0x1c6fa4,_0x13beb8),_0x43f363=join(_0x5f3c53,_0x299ae2,_0x39b4fb);return await mkdir(dirname(_0x43f363),{'recursive':!![]}),await rename(_0x13beb8,_0x43f363),_0x43f363;}async function cleanupEmptyDirectories(_0xb20dab,_0x2432c1){const _0x509064=a27_0xbf69dc;let _0x294816=resolve(_0xb20dab);const _0x1ac4b5=resolve(_0x2432c1);while(_0x294816[_0x509064(0xdd)](''+_0x1ac4b5+sep)||_0x294816===_0x1ac4b5){if(_0x294816===_0x1ac4b5)return;try{const _0x20d45a=await readdir(_0x294816);if(_0x20d45a[_0x509064(0xe6)]>0x0)return;await rmdir(_0x294816);}catch{return;}_0x294816=dirname(_0x294816);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;function a27_0x14a5(_0x1cdd86,_0x1d31d8){_0x1cdd86=_0x1cdd86-0xb5;const _0x3d3b3d=a27_0x3d3b();let _0x14a5a9=_0x3d3b3d[_0x1cdd86];return _0x14a5a9;}async function waitForDeleteSettlement(_0x51462b,_0x44175e,_0x304e14,_0x1ef604){const _0x1689eb=a27_0xbf69dc;for(let _0x498c85=0x0;_0x498c85<DELETE_SETTLE_RETRY_COUNT;_0x498c85+=0x1){const _0x2242c0=await readBffLockFile(_0x51462b),_0x4e9aaf=!!_0x2242c0?.[_0x1689eb(0xdc)]?.[_0x44175e]?.[_0x1689eb(0xca)]?.[_0x304e14],_0x136f0a=await fileExists(_0x1ef604);if(!_0x4e9aaf&&!_0x136f0a)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error('Local\x20delete\x20not\x20settled\x20for\x20'+_0x304e14+'.');}
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 a28_0x52ef(_0x320d2c,_0x1ea79e){_0x320d2c=_0x320d2c-0xf5;const _0x3736ad=a28_0x3736();let _0x52efa0=_0x3736ad[_0x320d2c];return _0x52efa0;}const a28_0x37ed85=a28_0x52ef;(function(_0x477ebc,_0x1c48cd){const _0x3a392a=a28_0x52ef,_0x1045a3=_0x477ebc();while(!![]){try{const _0x5144e7=-parseInt(_0x3a392a(0xfa))/0x1*(parseInt(_0x3a392a(0x105))/0x2)+parseInt(_0x3a392a(0xf8))/0x3*(parseInt(_0x3a392a(0xfb))/0x4)+parseInt(_0x3a392a(0xf5))/0x5*(-parseInt(_0x3a392a(0x108))/0x6)+parseInt(_0x3a392a(0x106))/0x7+parseInt(_0x3a392a(0xfe))/0x8+-parseInt(_0x3a392a(0x109))/0x9+-parseInt(_0x3a392a(0xf9))/0xa*(-parseInt(_0x3a392a(0xfc))/0xb);if(_0x5144e7===_0x1c48cd)break;else _0x1045a3['push'](_0x1045a3['shift']());}catch(_0x483013){_0x1045a3['push'](_0x1045a3['shift']());}}}(a28_0x3736,0x88f82));function a28_0x3736(){const _0x3ce8c9=['num','description','560828KzGAWG','2738596zOwLHq','Return\x20full\x20raw\x20script\x20object','859314PfRMEk','5454243OcnGPA','30PvsrzP','bool','verbose','1660398gGMTRb','3845770GdHWiY','3GTReID','8cqECEm','11cEscKW','(none)','7878976MVNmPa','scriptType','bff','scriptContent','Script\x20ID'];a28_0x3736=function(){return _0x3ce8c9;};return a28_0x3736();}import{getBffScriptInfo}from'../../core/api-client.js';export const bffDetail={'service':a28_0x37ed85(0x100),'command':'detail','description':'Get\x20BFF\x20script\x20details\x20by\x20ID','risk':'read','flags':[{'name':'id','type':'number','required':!![],'description':a28_0x37ed85(0x102)},{'name':'verbose','type':'boolean','description':a28_0x37ed85(0x107)}],async 'execute'(_0x84e5d7){const _0x5c0ca3=a28_0x37ed85,_0x42950a=await getBffScriptInfo(_0x84e5d7[_0x5c0ca3(0x103)]('id')),_0x24da29=_0x84e5d7[_0x5c0ca3(0xf6)](_0x5c0ca3(0xf7));if(_0x24da29)return{'ok':!![],'data':_0x42950a};return{'ok':!![],'data':{'id':_0x42950a['id'],'appCode':_0x42950a['appCode'],'scriptType':_0x42950a[_0x5c0ca3(0xff)],'description':_0x42950a[_0x5c0ca3(0x104)]||_0x5c0ca3(0xfd),'createdTime':_0x42950a['createdTime']??'','updatedTime':_0x42950a['updatedTime']??'','scriptContent':_0x42950a[_0x5c0ca3(0x101)]??''}};}};
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(_0x44e9a8,_0x2fa166){const _0xfa84ac=a29_0x14ab,_0xf72ff4=_0x44e9a8();while(!![]){try{const _0x1fdc70=-parseInt(_0xfa84ac(0xd5))/0x1+parseInt(_0xfa84ac(0xd7))/0x2+-parseInt(_0xfa84ac(0xd4))/0x3*(parseInt(_0xfa84ac(0xcf))/0x4)+parseInt(_0xfa84ac(0xd2))/0x5*(-parseInt(_0xfa84ac(0xd0))/0x6)+parseInt(_0xfa84ac(0xd8))/0x7*(parseInt(_0xfa84ac(0xd1))/0x8)+parseInt(_0xfa84ac(0xd9))/0x9*(-parseInt(_0xfa84ac(0xd6))/0xa)+parseInt(_0xfa84ac(0xd3))/0xb;if(_0x1fdc70===_0x2fa166)break;else _0xf72ff4['push'](_0xf72ff4['shift']());}catch(_0x222960){_0xf72ff4['push'](_0xf72ff4['shift']());}}}(a29_0x1293,0xaf7cb));function a29_0x14ab(_0x1854a7,_0x395c97){_0x1854a7=_0x1854a7-0xcf;const _0x129333=a29_0x1293();let _0x14abe1=_0x129333[_0x1854a7];return _0x14abe1;}function a29_0x1293(){const _0x34c38b=['80750PhNzqJ','424060qjlGsu','9dcDrkl','4432XzwuCo','1092rZRuxx','128xSSNJF','30605qqiEwU','42781497TsKRSD','3180GPcybV','1353406VGiwom','5381790qqGyRp'];a29_0x1293=function(){return _0x34c38b;};return a29_0x1293();}import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';import{bffStatus}from'../../commands/bff/status.js';import{bffCreate}from'../../commands/bff/create.js';import{bffPush}from'../../commands/bff/push.js';import{bffPull}from'../../commands/bff/pull.js';import{bffDelete}from'../../commands/bff/delete.js';export const bffDefinitions=[bffList,bffDetail,bffStatus,bffCreate,bffPush,bffPull,bffDelete];
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];
@@ -1 +1 @@
1
- const a30_0x249c2b=a30_0x5cef;function a30_0xff16(){const _0x2480ce=['ENDPOINT','list','map','COMMON','name','(unnamed)','string','695148xpFNoU','3707515dEaBZa','199054qwQpqW','1393080MZWtED','length','1148204TAocjv','appCode','verbose','functionName','55RzsHgD','Filter\x20by\x20script\x20name','24gqKZzF','No\x20BFF\x20scripts\x20found.','str','bool','24426909KkuRxQ','description','boolean','type','115989iKAiOa','bff','read','scriptType'];a30_0xff16=function(){return _0x2480ce;};return a30_0xff16();}(function(_0x43e384,_0x4fbeb6){const _0x247fb0=a30_0x5cef,_0x5bbe51=_0x43e384();while(!![]){try{const _0x5e44cb=-parseInt(_0x247fb0(0x90))/0x1+-parseInt(_0x247fb0(0xab))/0x2+parseInt(_0x247fb0(0x9e))/0x3*(parseInt(_0x247fb0(0x96))/0x4)+-parseInt(_0x247fb0(0x94))/0x5*(parseInt(_0x247fb0(0xa9))/0x6)+parseInt(_0x247fb0(0xaa))/0x7+-parseInt(_0x247fb0(0x8e))/0x8+parseInt(_0x247fb0(0x9a))/0x9;if(_0x5e44cb===_0x4fbeb6)break;else _0x5bbe51['push'](_0x5bbe51['shift']());}catch(_0x18017d){_0x5bbe51['push'](_0x5bbe51['shift']());}}}(a30_0xff16,0xbe49c));function a30_0x5cef(_0x4aa080,_0x27fcde){_0x4aa080=_0x4aa080-0x8e;const _0xff1671=a30_0xff16();let _0x5cef6d=_0xff1671[_0x4aa080];return _0x5cef6d;}import{listBffScripts}from'../../core/api-client.js';export const bffList={'service':a30_0x249c2b(0x9f),'command':a30_0x249c2b(0xa3),'description':'List\x20BFF\x20scripts','risk':a30_0x249c2b(0xa0),'flags':[{'name':a30_0x249c2b(0x9d),'type':a30_0x249c2b(0xa8),'description':'Script\x20type\x20filter','default':a30_0x249c2b(0xa2),'enum':[a30_0x249c2b(0xa2),a30_0x249c2b(0xa5)]},{'name':a30_0x249c2b(0xa6),'type':a30_0x249c2b(0xa8),'description':a30_0x249c2b(0x95)},{'name':a30_0x249c2b(0x92),'type':a30_0x249c2b(0x9c),'description':'Return\x20full\x20script\x20objects'}],async 'execute'(_0x40b59e){const _0x2247a4=a30_0x249c2b,_0x1c8cf7=await listBffScripts(_0x40b59e[_0x2247a4(0x91)],_0x40b59e[_0x2247a4(0x98)]('type'),{'scriptName':_0x40b59e[_0x2247a4(0x98)](_0x2247a4(0xa6))||undefined}),_0x2848c3=_0x40b59e[_0x2247a4(0x99)](_0x2247a4(0x92));return{'ok':!![],'data':_0x2848c3?_0x1c8cf7:_0x1c8cf7[_0x2247a4(0xa4)](_0x19ed4b=>({'id':_0x19ed4b['id'],'functionName':_0x19ed4b[_0x2247a4(0x93)]??'','description':_0x19ed4b[_0x2247a4(0x9b)]||_0x2247a4(0xa7),'scriptType':_0x19ed4b[_0x2247a4(0xa1)]})),'message':_0x1c8cf7[_0x2247a4(0x8f)]===0x0?_0x2247a4(0x97):undefined};}};
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};}};
@@ -1 +1 @@
1
- const a31_0x2b2841=a31_0x2b43;(function(_0xef54a4,_0xf63702){const _0x3a02bc=a31_0x2b43,_0x534ed7=_0xef54a4();while(!![]){try{const _0x11d172=parseInt(_0x3a02bc(0x188))/0x1*(-parseInt(_0x3a02bc(0x19d))/0x2)+parseInt(_0x3a02bc(0x16b))/0x3+parseInt(_0x3a02bc(0x1ac))/0x4*(-parseInt(_0x3a02bc(0x1a3))/0x5)+-parseInt(_0x3a02bc(0x1a4))/0x6+parseInt(_0x3a02bc(0x179))/0x7+-parseInt(_0x3a02bc(0x1ae))/0x8+-parseInt(_0x3a02bc(0x163))/0x9*(-parseInt(_0x3a02bc(0x17f))/0xa);if(_0x11d172===_0xf63702)break;else _0x534ed7['push'](_0x534ed7['shift']());}catch(_0x57b90c){_0x534ed7['push'](_0x534ed7['shift']());}}}(a31_0x5ecf,0x8af44));import{createInterface}from'node:readline';import{writeFile}from'node:fs/promises';import{listBffScripts,getBffScriptStatistics}from'../../core/api-client.js';function a31_0x2b43(_0x2e18d9,_0x39b659){_0x2e18d9=_0x2e18d9-0x163;const _0x5ecfdc=a31_0x5ecf();let _0x2b43b0=_0x5ecfdc[_0x2e18d9];return _0x2b43b0;}import{loadAliasMap}from'../../core/alias-resolver.js';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':'bff','command':'pull','description':a31_0x2b2841(0x168),'risk':'write','flags':[{'name':a31_0x2b2841(0x1a0),'type':a31_0x2b2841(0x166),'description':a31_0x2b2841(0x183),'enum':[a31_0x2b2841(0x167),a31_0x2b2841(0x197),'HOOK']},{'name':'force','type':'boolean','description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x573480){const _0x2553ee=a31_0x2b2841,_0x4838b5=loadBffProjectConfig(_0x573480[_0x2553ee(0x1aa)]),_0x2356f6=await readBffLockFile(_0x4838b5['lockFilePath']),{appLock:_0x55fe0f}=ensureLockScope(_0x2356f6??createEmptyBffLock(),_0x573480['appCode'],_0x4838b5[_0x2553ee(0x185)],_0x2553ee(0x189)),_0x4eb765=normalizeBffType(_0x573480[_0x2553ee(0x16c)](_0x2553ee(0x1a0)))??undefined,_0x501420=buildDatasetCodeToAliasMap(_0x573480[_0x2553ee(0x1a6)],_0x573480[_0x2553ee(0x1aa)]),[_0x3fe2aa,_0x51e524]=await Promise['all']([listBffScripts(_0x573480[_0x2553ee(0x1aa)],_0x4eb765),getBffScriptStatistics(_0x573480['appCode'])]),_0x3d51cf=createHookLocationMap(_0x51e524),_0x3fc426=[];for(const _0xaff2f0 of _0x3fe2aa){const _0xa9bfe7=resolveRemoteScriptTarget(_0x4838b5,_0xaff2f0,_0x3d51cf,_0x55fe0f[_0x2553ee(0x17d)],_0x501420);if(!_0xa9bfe7){_0x3fc426[_0x2553ee(0x174)]({'scriptType':_0xaff2f0[_0x2553ee(0x1a5)],'functionName':_0xaff2f0['functionName']??'','status':_0x2553ee(0x19e),'reason':_0x2553ee(0x17c)});continue;}const _0x5e29ec=_0x55fe0f[_0x2553ee(0x17d)][_0xa9bfe7[_0x2553ee(0x18d)]],_0x30c48b=_0xaff2f0['scriptContent']!=null?computeContentHash(_0xaff2f0[_0x2553ee(0x176)]):undefined,_0x1625e5=await hasUnsyncedLocalChanges(_0xa9bfe7['filePath'],_0x5e29ec,_0x30c48b);_0x3fc426['push']({'lockKey':_0xa9bfe7['lockKey'],'filePath':_0xa9bfe7[_0x2553ee(0x184)],'remoteId':_0xaff2f0['id']??null,'status':_0x1625e5?_0x2553ee(0x193):_0x2553ee(0x17b)});}return{'method':_0x2553ee(0x175),'url':_0x2553ee(0x18c)+_0x573480[_0x2553ee(0x1aa)]+(_0x4eb765?'&type='+_0x4eb765:''),'body':{'appCode':_0x573480['appCode'],'filterType':_0x4eb765??null,'files':_0x3fc426},'description':_0x2553ee(0x19f)+_0x3fc426[_0x2553ee(0x177)]+_0x2553ee(0x17e)};},async 'execute'(_0x291cdf){const _0x16d7ff=a31_0x2b2841,_0x45abf8=loadBffProjectConfig(_0x291cdf[_0x16d7ff(0x1aa)]),_0x3fe1c3=await readBffLockFile(_0x45abf8[_0x16d7ff(0x165)]),{lockData:_0x2782c4,appLock:_0xc945ce}=ensureLockScope(_0x3fe1c3??createEmptyBffLock(),_0x291cdf[_0x16d7ff(0x1aa)],_0x45abf8['scriptsRoot'],'pull'),_0x3b4874=normalizeBffType(_0x291cdf['str'](_0x16d7ff(0x1a0)))??undefined;if(_0x291cdf[_0x16d7ff(0x16c)](_0x16d7ff(0x1a0))&&!_0x3b4874)throw CliErrors[_0x16d7ff(0x172)](_0x16d7ff(0x1a9));const [_0x215405,_0x54801d]=await Promise[_0x16d7ff(0x164)]([listBffScripts(_0x291cdf['appCode'],_0x3b4874),getBffScriptStatistics(_0x291cdf[_0x16d7ff(0x1aa)])]);if(_0x215405[_0x16d7ff(0x177)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x16d7ff(0x180)};const _0x14b13d=_0x291cdf[_0x16d7ff(0x171)](_0x16d7ff(0x19a));if(_0x14b13d&&!_0x291cdf[_0x16d7ff(0x192)]){const _0x86bb49=await confirmForce();if(!_0x86bb49)throw CliErrors[_0x16d7ff(0x173)](_0x16d7ff(0x199));}if(_0x14b13d&&_0x291cdf['nonInteractive']){}const _0x435a4c=buildDatasetCodeToAliasMap(_0x291cdf['apiDir'],_0x291cdf[_0x16d7ff(0x1aa)]),_0x3d281d=createHookLocationMap(_0x54801d),_0x5a0d37=JSON['parse'](JSON[_0x16d7ff(0x195)](_0x2782c4)),_0x1a7b8c=_0x291cdf[_0x16d7ff(0x1aa)],_0xaa864d=_0x5a0d37['apps'][_0x1a7b8c];if(!_0xaa864d)throw new Error(_0x16d7ff(0x181)+_0x1a7b8c+'\x22\x20not\x20found\x20after\x20ensureLockScope.');const _0xa5afef=[],_0x594681=[],_0xa80ed9=[];for(const _0x3fc863 of _0x215405){const _0x27b37d=resolveRemoteScriptTarget(_0x45abf8,_0x3fc863,_0x3d281d,_0xc945ce[_0x16d7ff(0x17d)],_0x435a4c);if(!_0x27b37d){_0x594681['push']({'lockKey':_0x3fc863[_0x16d7ff(0x1a5)]+'/'+_0x3fc863[_0x16d7ff(0x194)],'reason':_0x16d7ff(0x17c)});continue;}const _0x4ccca8=_0xc945ce['functions'][_0x27b37d[_0x16d7ff(0x18d)]];try{if(!_0x3fc863['id'])throw new Error(_0x16d7ff(0x182));if(_0x3fc863[_0x16d7ff(0x176)]==null)throw new Error(_0x16d7ff(0x1ad));const _0x3781fb=_0x3fc863['scriptContent'],_0x95de67=computeContentHash(_0x3781fb);if(!_0x14b13d){const _0x4098ff=await hasUnsyncedLocalChanges(_0x27b37d[_0x16d7ff(0x184)],_0x4ccca8,_0x95de67);if(_0x4098ff){_0x594681[_0x16d7ff(0x174)]({'lockKey':_0x27b37d[_0x16d7ff(0x18d)],'reason':_0x16d7ff(0x1a7)});continue;}}await ensureParentDirectory(_0x27b37d[_0x16d7ff(0x184)]),await writeFile(_0x27b37d[_0x16d7ff(0x184)],_0x3781fb,_0x16d7ff(0x18f));const _0x24bc91={'hash':_0x95de67,'remoteId':_0x3fc863['id'],'version':_0x3fc863['version']};_0x27b37d['type']===_0x16d7ff(0x1a2)&&_0x27b37d[_0x16d7ff(0x16a)]&&(_0x24bc91[_0x16d7ff(0x170)]=_0x27b37d[_0x16d7ff(0x16a)][_0x16d7ff(0x170)],_0x24bc91['datasetCode']=_0x27b37d[_0x16d7ff(0x16a)][_0x16d7ff(0x18a)],_0x24bc91[_0x16d7ff(0x16d)]=_0x27b37d['hookLocation'][_0x16d7ff(0x16d)],_0x24bc91[_0x16d7ff(0x18b)]=_0x27b37d[_0x16d7ff(0x16a)]['functionNode']),_0xaa864d['functions'][_0x27b37d[_0x16d7ff(0x18d)]]=_0x24bc91,_0xa5afef['push']({'lockKey':_0x27b37d[_0x16d7ff(0x18d)],'remoteId':_0x3fc863['id']});}catch(_0x116500){_0xa80ed9[_0x16d7ff(0x174)]({'lockKey':_0x27b37d[_0x16d7ff(0x18d)],'error':_0x116500 instanceof Error?_0x116500[_0x16d7ff(0x17a)]:String(_0x116500)});}}return _0xaa864d[_0x16d7ff(0x178)]=new Date()[_0x16d7ff(0x198)](),await writeBffLockFile(_0x45abf8[_0x16d7ff(0x165)],_0x5a0d37),{'ok':_0xa80ed9[_0x16d7ff(0x177)]===0x0,'data':{'pulled':_0xa5afef,'skipped':_0x594681,'failed':_0xa80ed9},'message':_0x16d7ff(0x196)+_0xa5afef[_0x16d7ff(0x177)]+_0x16d7ff(0x19c)+_0x594681[_0x16d7ff(0x177)]+_0x16d7ff(0x169)+_0xa80ed9[_0x16d7ff(0x177)]+_0x16d7ff(0x186)};}};async function hasUnsyncedLocalChanges(_0x3836aa,_0x4bc3c9,_0x32cd27){const _0x4b20d2=a31_0x2b2841;if(!await fileExists(_0x3836aa))return![];const _0x189456=await computeFileHash(_0x3836aa);if(!_0x4bc3c9)return _0x32cd27?_0x189456!==_0x32cd27:!![];return _0x189456!==_0x4bc3c9[_0x4b20d2(0x1ab)];}function buildDatasetCodeToAliasMap(_0x6212d2,_0x12e705){const _0x147a3e=a31_0x2b2841,_0xb35c4=loadAliasMap(_0x6212d2,undefined,resolveApiFilePath(_0x6212d2,_0x12e705));return new Map(_0xb35c4[_0x147a3e(0x1a1)](_0x5bdd23=>[_0x5bdd23[_0x147a3e(0x18a)],_0x5bdd23['alias']]));}async function confirmForce(){const _0x9c7ecd=a31_0x2b2841,_0x3beff6=createInterface({'input':process[_0x9c7ecd(0x1a8)],'output':process[_0x9c7ecd(0x187)]}),_0x489341=await new Promise(_0x3cc5be=>{const _0x12d467=_0x9c7ecd;_0x3beff6[_0x12d467(0x16e)]('Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20',_0x3cc5be);});return _0x3beff6[_0x9c7ecd(0x191)](),['y',_0x9c7ecd(0x19b)][_0x9c7ecd(0x18e)](_0x489341[_0x9c7ecd(0x190)]()[_0x9c7ecd(0x16f)]());}function a31_0x5ecf(){const _0x3c44c4=['string','COMMON','Pull\x20remote\x20BFF\x20scripts\x20to\x20local','\x20skipped,\x20','hookLocation','1897878nwyxKo','str','operationType','question','toLowerCase','alias','bool','validation','cancelled','push','GET','scriptContent','length','lastSync','3492769sOgmly','message','would_pull','unresolvable\x20target\x20path','functions','\x20remote\x20BFF\x20script(s)\x20for\x20pull','61910RarRdF','No\x20remote\x20BFF\x20scripts\x20found.','Lock\x20scope\x20for\x20app\x20\x22','Remote\x20script\x20missing\x20id.','Pull\x20only\x20this\x20script\x20type','filePath','scriptsRoot','\x20failed','stderr','159QTxQcJ','pull','datasetCode','functionNode','/api/management/library/scripts/list?appCode=','lockKey','includes','utf8','trim','close','nonInteractive','conflict','functionName','stringify','Pull\x20complete:\x20','ENDPOINT','toISOString','Force\x20pull\x20cancelled.','force','yes','\x20pulled,\x20','998YLfYZW','skipped','Would\x20inspect\x20','type','map','HOOK','15qibBKN','1243296FQMdPV','scriptType','apiDir','local\x20unsynced\x20changes','stdin','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','appCode','hash','320100gKxMRb','Remote\x20script\x20missing\x20content.','9052896wMtlnf','1593ppwULa','all','lockFilePath'];a31_0x5ecf=function(){return _0x3c44c4;};return a31_0x5ecf();}
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)]());}
@@ -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')+'.');}