@lovrabet/rabetbase-cli 2.5.3-beta.4 → 2.5.3

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 (352) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/api-group.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/api/generate-sdk-config-file.js +1 -1
  6. package/lib/api/legacy-api-file.js +1 -1
  7. package/lib/api/model-registry-file.js +1 -1
  8. package/lib/api/model-registry-scaffold.js +1 -1
  9. package/lib/api/model-source.js +1 -1
  10. package/lib/auth/auth-server-ui.js +1 -1
  11. package/lib/auth/auth-server.js +1 -1
  12. package/lib/auth/constant.js +1 -1
  13. package/lib/auth/get-cookie.js +1 -1
  14. package/lib/auth/get-session-user.js +1 -1
  15. package/lib/auth/is-session-valid.js +1 -1
  16. package/lib/auth/login-success-html.js +1 -1
  17. package/lib/auth/logout.js +1 -1
  18. package/lib/cli-flags.js +1 -1
  19. package/lib/cli.js +1 -1
  20. package/lib/commands/api/generate.js +1 -1
  21. package/lib/commands/api/index.js +1 -1
  22. package/lib/commands/api/list.js +1 -1
  23. package/lib/commands/api/pull.js +1 -1
  24. package/lib/commands/api/shared.js +1 -1
  25. package/lib/commands/app/index.js +1 -1
  26. package/lib/commands/app/list.js +1 -1
  27. package/lib/commands/app/members-list.js +1 -1
  28. package/lib/commands/app/remote-directory.js +1 -1
  29. package/lib/commands/app/shared.js +1 -1
  30. package/lib/commands/app-config/delete.js +1 -1
  31. package/lib/commands/app-config/get.js +1 -1
  32. package/lib/commands/app-config/index.js +1 -1
  33. package/lib/commands/app-config/list.js +1 -1
  34. package/lib/commands/app-config/set.js +1 -1
  35. package/lib/commands/app-config/shared.js +1 -1
  36. package/lib/commands/auth/index.js +1 -1
  37. package/lib/commands/bff/create.js +1 -1
  38. package/lib/commands/bff/delete.js +1 -1
  39. package/lib/commands/bff/detail.js +1 -1
  40. package/lib/commands/bff/index.js +1 -1
  41. package/lib/commands/bff/list.js +1 -1
  42. package/lib/commands/bff/logs.js +1 -1
  43. package/lib/commands/bff/pull.js +1 -1
  44. package/lib/commands/bff/push.js +1 -1
  45. package/lib/commands/bff/status.js +1 -1
  46. package/lib/commands/cli-skill/index.js +1 -1
  47. package/lib/commands/cli-update.js +1 -1
  48. package/lib/commands/codegen/index.js +1 -1
  49. package/lib/commands/codegen/sdk.js +1 -1
  50. package/lib/commands/codegen/sql.js +1 -1
  51. package/lib/commands/common/app-registry.js +1 -1
  52. package/lib/commands/common/app-selector.js +1 -1
  53. package/lib/commands/common/async-task.js +1 -1
  54. package/lib/commands/common/dry-run.js +1 -1
  55. package/lib/commands/common/flags.js +1 -1
  56. package/lib/commands/common/local-file.js +1 -1
  57. package/lib/commands/common/validate.js +1 -1
  58. package/lib/commands/config/delete.js +1 -1
  59. package/lib/commands/config/get.js +1 -1
  60. package/lib/commands/config/index.js +1 -1
  61. package/lib/commands/config/init.js +1 -1
  62. package/lib/commands/config/list.js +1 -1
  63. package/lib/commands/config/set.js +1 -1
  64. package/lib/commands/config/shared.js +1 -1
  65. package/lib/commands/dataset/batch-design.js +1 -1
  66. package/lib/commands/dataset/business-group-update.js +1 -1
  67. package/lib/commands/dataset/business-groups.js +1 -1
  68. package/lib/commands/dataset/capability.js +1 -1
  69. package/lib/commands/dataset/cross-relation-create.js +1 -1
  70. package/lib/commands/dataset/cross-relation-delete.js +1 -1
  71. package/lib/commands/dataset/cross-relation-list.js +1 -1
  72. package/lib/commands/dataset/cross-relation-shared.js +1 -1
  73. package/lib/commands/dataset/cross-relation-update.js +1 -1
  74. package/lib/commands/dataset/delete.js +1 -1
  75. package/lib/commands/dataset/detail.js +1 -1
  76. package/lib/commands/dataset/extend-update.js +1 -1
  77. package/lib/commands/dataset/field-restore.js +1 -1
  78. package/lib/commands/dataset/field-update.js +1 -1
  79. package/lib/commands/dataset/generate.js +1 -1
  80. package/lib/commands/dataset/index.js +1 -1
  81. package/lib/commands/dataset/list.js +1 -1
  82. package/lib/commands/dataset/operations.js +1 -1
  83. package/lib/commands/dataset/relation-audit.js +1 -1
  84. package/lib/commands/dataset/relation-create.js +1 -1
  85. package/lib/commands/dataset/relation-delete.js +1 -1
  86. package/lib/commands/dataset/relation-shared.js +1 -1
  87. package/lib/commands/dataset/relation-update.js +1 -1
  88. package/lib/commands/dataset/relations.js +1 -1
  89. package/lib/commands/dataset/rename.js +1 -1
  90. package/lib/commands/dataset/restore.js +1 -1
  91. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  92. package/lib/commands/db/analysis-batching.js +1 -1
  93. package/lib/commands/db/analyze-batch-plan.js +1 -1
  94. package/lib/commands/db/analyze-cancel.js +1 -1
  95. package/lib/commands/db/analyze-start.js +1 -1
  96. package/lib/commands/db/analyze-status.js +1 -1
  97. package/lib/commands/db/create.js +1 -1
  98. package/lib/commands/db/delete.js +1 -1
  99. package/lib/commands/db/detail.js +1 -1
  100. package/lib/commands/db/diff-refresh-start.js +1 -1
  101. package/lib/commands/db/diff-refresh-status.js +1 -1
  102. package/lib/commands/db/diff.js +1 -1
  103. package/lib/commands/db/index.js +1 -1
  104. package/lib/commands/db/list.js +1 -1
  105. package/lib/commands/db/shared.js +1 -1
  106. package/lib/commands/db/table-diff-shared.js +1 -1
  107. package/lib/commands/db/tables.js +1 -1
  108. package/lib/commands/db/test.js +1 -1
  109. package/lib/commands/db/update.js +1 -1
  110. package/lib/commands/deployment/index.js +1 -1
  111. package/lib/commands/deployment/sync-all.js +1 -1
  112. package/lib/commands/deployment/sync-jobs.js +1 -1
  113. package/lib/commands/deployment/sync-status.js +1 -1
  114. package/lib/commands/doctor.js +1 -1
  115. package/lib/commands/file/index.js +1 -1
  116. package/lib/commands/flow/create.js +1 -1
  117. package/lib/commands/flow/detail.js +1 -1
  118. package/lib/commands/flow/index.js +1 -1
  119. package/lib/commands/flow/list.js +1 -1
  120. package/lib/commands/flow/publish.js +1 -1
  121. package/lib/commands/flow/runtime-resources-shared.js +1 -1
  122. package/lib/commands/flow/runtime-role-list.js +1 -1
  123. package/lib/commands/flow/runtime-role-user-list.js +1 -1
  124. package/lib/commands/flow/runtime-user-search.js +1 -1
  125. package/lib/commands/flow/shared.js +1 -1
  126. package/lib/commands/flow/update.js +1 -1
  127. package/lib/commands/flow/validate.js +1 -1
  128. package/lib/commands/instant-api-policy/current.js +1 -1
  129. package/lib/commands/instant-api-policy/index.js +1 -1
  130. package/lib/commands/instant-api-policy/init.js +1 -1
  131. package/lib/commands/instant-api-policy/publish.js +1 -1
  132. package/lib/commands/instant-api-policy/pull.js +1 -1
  133. package/lib/commands/instant-api-policy/revision.js +1 -1
  134. package/lib/commands/instant-api-policy/revisions.js +1 -1
  135. package/lib/commands/instant-api-policy/rollback.js +1 -1
  136. package/lib/commands/instant-api-policy/shared.js +1 -1
  137. package/lib/commands/instant-api-policy/validate.js +1 -1
  138. package/lib/commands/issue/index.js +1 -1
  139. package/lib/commands/issue/nudge.js +1 -1
  140. package/lib/commands/issue/report.js +1 -1
  141. package/lib/commands/issue/shared.js +1 -1
  142. package/lib/commands/kb/create.js +1 -1
  143. package/lib/commands/kb/delete.js +1 -1
  144. package/lib/commands/kb/detail.js +1 -1
  145. package/lib/commands/kb/index.js +1 -1
  146. package/lib/commands/kb/list.js +1 -1
  147. package/lib/commands/kb/search.js +1 -1
  148. package/lib/commands/kb/shared.js +1 -1
  149. package/lib/commands/kb/update.js +1 -1
  150. package/lib/commands/logs/index.js +1 -1
  151. package/lib/commands/menu/asset-update.js +1 -1
  152. package/lib/commands/menu/delete.js +1 -1
  153. package/lib/commands/menu/external-link-create.js +1 -1
  154. package/lib/commands/menu/external-link-update.js +1 -1
  155. package/lib/commands/menu/group-create.js +1 -1
  156. package/lib/commands/menu/group-update.js +1 -1
  157. package/lib/commands/menu/index.js +1 -1
  158. package/lib/commands/menu/list.js +1 -1
  159. package/lib/commands/menu/move.js +1 -1
  160. package/lib/commands/menu/regroup-start.js +1 -1
  161. package/lib/commands/menu/rename.js +1 -1
  162. package/lib/commands/menu/shared/compare-table.js +1 -1
  163. package/lib/commands/menu/shared/delete-plan.js +1 -1
  164. package/lib/commands/menu/shared/facts.js +1 -1
  165. package/lib/commands/menu/shared/index.js +1 -1
  166. package/lib/commands/menu/shared/inquirer.js +1 -1
  167. package/lib/commands/menu/shared/local-pages.js +1 -1
  168. package/lib/commands/menu/shared/logic.js +1 -1
  169. package/lib/commands/menu/shared/mutations.js +1 -1
  170. package/lib/commands/menu/shared/service.js +1 -1
  171. package/lib/commands/menu/shared/sync-core.js +1 -1
  172. package/lib/commands/menu/shared/update-core.js +1 -1
  173. package/lib/commands/menu/shared/valid-url.js +1 -1
  174. package/lib/commands/menu/sync.js +1 -1
  175. package/lib/commands/menu/visibility-update.js +1 -1
  176. package/lib/commands/notification/config-create.js +1 -1
  177. package/lib/commands/notification/config-delete.js +1 -1
  178. package/lib/commands/notification/config-list.js +1 -1
  179. package/lib/commands/notification/config-update.js +1 -1
  180. package/lib/commands/notification/index.js +1 -1
  181. package/lib/commands/notification/shared.js +1 -1
  182. package/lib/commands/ocr/index.js +1 -1
  183. package/lib/commands/page/create.js +1 -1
  184. package/lib/commands/page/custom/detail.js +1 -1
  185. package/lib/commands/page/custom/list.js +1 -1
  186. package/lib/commands/page/custom/publish.js +1 -1
  187. package/lib/commands/page/custom/shared.js +1 -1
  188. package/lib/commands/page/custom/syntax.js +1 -1
  189. package/lib/commands/page/custom/update.js +1 -1
  190. package/lib/commands/page/data-list-status.js +1 -1
  191. package/lib/commands/page/generate-start.js +1 -1
  192. package/lib/commands/page/generate-status.js +1 -1
  193. package/lib/commands/page/index.js +1 -1
  194. package/lib/commands/page/pull.js +1 -1
  195. package/lib/commands/page/push.js +1 -1
  196. package/lib/commands/page/relation-audit.js +1 -1
  197. package/lib/commands/page/restore.js +1 -1
  198. package/lib/commands/page/shared.js +1 -1
  199. package/lib/commands/page/sync.js +1 -1
  200. package/lib/commands/project/api-architecture-upgrade.js +1 -1
  201. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  202. package/lib/commands/project/create/format-elapsed.js +1 -1
  203. package/lib/commands/project/create/main.js +1 -1
  204. package/lib/commands/project/create/materialize-project-template.js +1 -1
  205. package/lib/commands/project/create/project-name.js +1 -1
  206. package/lib/commands/project/create/project-template-archive.js +1 -1
  207. package/lib/commands/project/create/project-template-path.js +1 -1
  208. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  209. package/lib/commands/project/create/use-format-code.js +1 -1
  210. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  211. package/lib/commands/project/domain-routing-sync.js +1 -1
  212. package/lib/commands/project/index.js +1 -1
  213. package/lib/commands/project/upgrade.js +1 -1
  214. package/lib/commands/registry.js +1 -1
  215. package/lib/commands/role/delete.js +1 -1
  216. package/lib/commands/role/detail.js +1 -1
  217. package/lib/commands/role/index.js +1 -1
  218. package/lib/commands/role/list.js +1 -1
  219. package/lib/commands/role/shared.js +1 -1
  220. package/lib/commands/role/update.js +1 -1
  221. package/lib/commands/role/user-add.js +1 -1
  222. package/lib/commands/role/user-remove.js +1 -1
  223. package/lib/commands/role/user-resolve.js +1 -1
  224. package/lib/commands/rule/get.js +1 -1
  225. package/lib/commands/rule/index.js +1 -1
  226. package/lib/commands/rule/list.js +1 -1
  227. package/lib/commands/rule/set.js +1 -1
  228. package/lib/commands/rule/shared.js +1 -1
  229. package/lib/commands/run/index.js +1 -1
  230. package/lib/commands/schema.js +1 -1
  231. package/lib/commands/sql/create.js +1 -1
  232. package/lib/commands/sql/delete.js +1 -1
  233. package/lib/commands/sql/detail.js +1 -1
  234. package/lib/commands/sql/exec.js +1 -1
  235. package/lib/commands/sql/index.js +1 -1
  236. package/lib/commands/sql/list.js +1 -1
  237. package/lib/commands/sql/pull.js +1 -1
  238. package/lib/commands/sql/push.js +1 -1
  239. package/lib/commands/sql/shared.js +1 -1
  240. package/lib/commands/sql/status.js +1 -1
  241. package/lib/commands/sql/validate.js +1 -1
  242. package/lib/commands/task/index.js +1 -1
  243. package/lib/commands/task/status.js +1 -1
  244. package/lib/commands/tenant/index.js +1 -1
  245. package/lib/commands/tenant/members-list.js +1 -1
  246. package/lib/commands/tenant/shared.js +1 -1
  247. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  248. package/lib/commands/user-account/index.js +1 -1
  249. package/lib/commands/workspace/add.js +1 -1
  250. package/lib/commands/workspace/index.js +1 -1
  251. package/lib/commands/workspace/remove.js +1 -1
  252. package/lib/config/domain-config.js +1 -1
  253. package/lib/config/project-domain-routing.js +1 -1
  254. package/lib/config/region-config.js +1 -1
  255. package/lib/config/schema.js +1 -1
  256. package/lib/constant/cdn.js +1 -1
  257. package/lib/constant/cli.js +1 -1
  258. package/lib/constant/defaults.js +1 -1
  259. package/lib/constant/domain.js +1 -1
  260. package/lib/constant/env.js +1 -1
  261. package/lib/constant/output.js +1 -1
  262. package/lib/constant/paths.js +1 -1
  263. package/lib/constant/region.js +1 -1
  264. package/lib/constant/risk.js +1 -1
  265. package/lib/constant/routing-profile.js +1 -1
  266. package/lib/context/app-resolver.js +1 -1
  267. package/lib/context/auth-resolver.js +1 -1
  268. package/lib/context/config-loader.js +1 -1
  269. package/lib/context.js +1 -1
  270. package/lib/core/alias-resolver.js +1 -1
  271. package/lib/core/api-client.js +1 -1
  272. package/lib/core/bff/config.js +1 -1
  273. package/lib/core/bff/file-system.js +1 -1
  274. package/lib/core/bff/hash.js +1 -1
  275. package/lib/core/bff/hook-directory.js +1 -1
  276. package/lib/core/bff/lock.js +1 -1
  277. package/lib/core/bff/utils.js +1 -1
  278. package/lib/core/cross-db-relation.js +1 -1
  279. package/lib/core/db-resolver.js +1 -1
  280. package/lib/core/flow-config.js +1 -1
  281. package/lib/core/instant-api-policy/config.js +1 -1
  282. package/lib/core/kb-search-client.js +1 -1
  283. package/lib/core/page/file-system.js +1 -1
  284. package/lib/core/page/hash.js +1 -1
  285. package/lib/core/page/lock.js +1 -1
  286. package/lib/core/page/lr-smart-jsx.js +1 -1
  287. package/lib/core/sql-index-auditor.js +1 -1
  288. package/lib/core/sql-sync/config.js +1 -1
  289. package/lib/core/sql-sync/file-system.js +1 -1
  290. package/lib/core/sql-sync/hash.js +1 -1
  291. package/lib/core/sql-sync/lock.js +1 -1
  292. package/lib/core/sql-sync/utils.js +1 -1
  293. package/lib/core/sql-validator.js +1 -1
  294. package/lib/errors.js +1 -1
  295. package/lib/framework/build-all-flags.js +1 -1
  296. package/lib/framework/error-output.js +1 -1
  297. package/lib/framework/explicit-yes.js +1 -1
  298. package/lib/framework/flags.js +1 -1
  299. package/lib/framework/help.js +1 -1
  300. package/lib/framework/index.js +1 -1
  301. package/lib/framework/output.js +1 -1
  302. package/lib/framework/response.js +1 -1
  303. package/lib/framework/runner-alias.js +1 -1
  304. package/lib/framework/runner.js +1 -1
  305. package/lib/framework/schema-export.js +1 -1
  306. package/lib/framework/supported-flags.js +1 -1
  307. package/lib/framework/types.js +1 -1
  308. package/lib/generated/build-info.d.ts +4 -4
  309. package/lib/generated/build-info.js +1 -1
  310. package/lib/generated/official-routing.js +1 -1
  311. package/lib/generated/routing-contract.js +1 -1
  312. package/lib/help.js +1 -1
  313. package/lib/postinstall.js +1 -1
  314. package/lib/runtime/confirmation.js +1 -1
  315. package/lib/runtime/event.js +1 -1
  316. package/lib/runtime/index.js +1 -1
  317. package/lib/runtime/queue.js +1 -1
  318. package/lib/runtime/resolve.js +1 -1
  319. package/lib/skills/builtin-skill.js +1 -1
  320. package/lib/skills/main.js +1 -1
  321. package/lib/skills/npx-skills-add.js +1 -1
  322. package/lib/skills/skill-presence.js +1 -1
  323. package/lib/telemetry/cli-command-trace.js +1 -1
  324. package/lib/telemetry/cli-help-trace.js +1 -1
  325. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  326. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  327. package/lib/telemetry/send-cli-trace-log.js +1 -1
  328. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  329. package/lib/utils/ai_config.js +1 -1
  330. package/lib/utils/apply-jq-filter.js +1 -1
  331. package/lib/utils/cdn-config.js +1 -1
  332. package/lib/utils/check-sdk-version.js +1 -1
  333. package/lib/utils/cli-version-check.js +1 -1
  334. package/lib/utils/cli-version-policy.js +1 -1
  335. package/lib/utils/config.js +1 -1
  336. package/lib/utils/entity-with-id.js +1 -1
  337. package/lib/utils/file-utils.js +1 -1
  338. package/lib/utils/guides-cdn.js +1 -1
  339. package/lib/utils/http-client.js +1 -1
  340. package/lib/utils/is-non-interactive.js +1 -1
  341. package/lib/utils/logger.js +1 -1
  342. package/lib/utils/params.js +1 -1
  343. package/lib/utils/platform.js +1 -1
  344. package/lib/utils/sleep.js +1 -1
  345. package/lib/utils/template-replacer.js +1 -1
  346. package/lib/utils/update-notice.js +1 -1
  347. package/lib/utils/version.js +1 -1
  348. package/lib/utils/with-active-cookie.js +1 -1
  349. package/lib/utils/write-cli-side-channel.js +1 -1
  350. package/package.json +1 -1
  351. package/skills/rabetbase/SKILL.md +1 -1
  352. package/skills/rabetbase.manifest.json +3 -3
@@ -1 +1 @@
1
- const a34_0x3a1b86=a34_0x5297;(function(_0x590be2,_0x3a0751){const _0x3dd8c9=a34_0x5297,_0x5c984e=_0x590be2();while(!![]){try{const _0x4a9d18=parseInt(_0x3dd8c9(0xd4))/0x1+parseInt(_0x3dd8c9(0xd2))/0x2+-parseInt(_0x3dd8c9(0xe9))/0x3+parseInt(_0x3dd8c9(0xd5))/0x4+parseInt(_0x3dd8c9(0xf0))/0x5*(parseInt(_0x3dd8c9(0xfb))/0x6)+-parseInt(_0x3dd8c9(0xc6))/0x7*(parseInt(_0x3dd8c9(0xfc))/0x8)+parseInt(_0x3dd8c9(0xf3))/0x9*(-parseInt(_0x3dd8c9(0xc2))/0xa);if(_0x4a9d18===_0x3a0751)break;else _0x5c984e['push'](_0x5c984e['shift']());}catch(_0x3d7703){_0x5c984e['push'](_0x5c984e['shift']());}}}(a34_0x3891,0xcacf8));import{access,readFile}from'node:fs/promises';import{CliErrors}from'../../errors.js';export const KEY_ARG={'name':a34_0x3a1b86(0xe1),'description':a34_0x3a1b86(0xbf),'required':!![]};export const VALUE_ARG={'name':a34_0x3a1b86(0xc0),'description':a34_0x3a1b86(0xdc),'required':![]};export const TAGS_FLAG={'name':a34_0x3a1b86(0xca),'type':'string','description':a34_0x3a1b86(0xfa)};export const STDIN_FLAG={'name':'stdin','type':a34_0x3a1b86(0xe6),'description':a34_0x3a1b86(0xbe),'default':![]};function a34_0x3891(){const _0xb8e44f=['Failed\x20to\x20','Reveal\x20the\x20sensitive\x20value\x20for\x20this\x20single\x20key','validation','error','path','22645mUPgmQ','reveal','env','27414pyafhN','Environment\x20variable\x20is\x20not\x20set:\x20','kind','hasValue','length','App\x20config\x20tags\x20length\x20cannot\x20exceed\x2032.','setEncoding','Config\x20tags\x20for\x20filtering/display\x20metadata','1032FVqmGH','32TIOdEq','file','join','str','appCode:\x20','utf8','args','data','Read\x20config\x20value\x20from\x20stdin','Runtime\x20app-config\x20key','value','gmtModified','3730tTwxWw','Missing\x20app-config\x20value\x20source.','argument','name','976409BdxEtr','before','gmtCreate','appCode','tags','stdin','\x20app\x20config.','operation','flag','Use\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','from-env','App\x20config\x20key\x20length\x20cannot\x20exceed\x20256.','1254374ypjeoj','App\x20config\x20value\x20source\x20is\x20ambiguous.','1480153OwBJIa','278188LCcelA','Use\x20exactly\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','apiError','string','warnings','Value\x20was\x20provided\x20as\x20a\x20command\x20argument;\x20prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','trim','Sensitive\x20config\x20value.\x20Prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','Value\x20file\x20is\x20not\x20readable:\x20','method','end','dryRun','key','url','bool','defineProperties','key:\x20','boolean','push','after','1293171iATQly','slice'];a34_0x3891=function(){return _0xb8e44f;};return a34_0x3891();}export const FROM_ENV_FLAG={'name':'from-env','type':a34_0x3a1b86(0xd8),'description':'Read\x20config\x20value\x20from\x20the\x20named\x20environment\x20variable'};export const REVEAL_FLAG={'name':a34_0x3a1b86(0xf1),'type':'boolean','description':a34_0x3a1b86(0xec),'default':![]};export function readKeyArg(_0x4dd56a){const _0x30ed30=a34_0x3a1b86,_0x4008da=_0x4dd56a['args'][0x0]?.[_0x30ed30(0xdb)]()??'';return validateKey(_0x4008da),_0x4008da;}export function readOptionalTags(_0x2bc0df){const _0x4ddf6c=a34_0x3a1b86,_0x49e847=_0x2bc0df[_0x4ddf6c(0xff)](_0x4ddf6c(0xca))['trim']();if(!_0x49e847)return undefined;if(_0x49e847[_0x4ddf6c(0xf7)]>0x20)throw CliErrors['validation'](_0x4ddf6c(0xf8));return _0x49e847;}function a34_0x5297(_0x2ca249,_0x3c899f){_0x2ca249=_0x2ca249-0xbe;const _0x3891ef=a34_0x3891();let _0x52974c=_0x3891ef[_0x2ca249];return _0x52974c;}export function validateKey(_0x59b40d){const _0x5b59a3=a34_0x3a1b86;if(!_0x59b40d)throw CliErrors[_0x5b59a3(0xed)]('Missing\x20app-config\x20key.');if(_0x59b40d['length']>0x100)throw CliErrors[_0x5b59a3(0xed)](_0x5b59a3(0xd1));}export function projectAppConfig(_0x47384b,_0x16c570){const _0x9ede22=a34_0x3a1b86,_0x53316e=_0x47384b[_0x9ede22(0xc0)]!==undefined&&_0x47384b[_0x9ede22(0xc0)]!==null&&_0x47384b['value']!=='',_0x5ee509={'appCode':_0x47384b[_0x9ede22(0xc9)],'key':_0x47384b['key'],'tags':_0x47384b[_0x9ede22(0xca)]??undefined,'hasValue':_0x53316e,'valueRedacted':_0x53316e&&!_0x16c570?.[_0x9ede22(0xf1)],'gmtCreate':_0x47384b[_0x9ede22(0xc8)],'gmtModified':_0x47384b[_0x9ede22(0xc1)]};return _0x16c570?.[_0x9ede22(0xf1)]&&(_0x5ee509['value']=_0x47384b[_0x9ede22(0xc0)]??'',_0x5ee509['valueRedacted']=![]),_0x5ee509;}export function plannedAppConfig(_0x59bd39){const _0x2d8d95=a34_0x3a1b86,_0x3c9e96=_0x59bd39[_0x2d8d95(0xf6)]??!![];return{'appCode':_0x59bd39[_0x2d8d95(0xc9)],'key':_0x59bd39['key'],'tags':_0x59bd39[_0x2d8d95(0xca)]??undefined,'hasValue':_0x3c9e96,'valueRedacted':_0x3c9e96};}export function buildMutationData(_0x107e3c){const _0x2c4fff=a34_0x3a1b86;return{'operation':_0x107e3c[_0x2c4fff(0xcd)],'selector':{'appCode':_0x107e3c[_0x2c4fff(0xc9)],'key':_0x107e3c[_0x2c4fff(0xe1)]},'before':_0x107e3c[_0x2c4fff(0xc7)],'after':_0x107e3c[_0x2c4fff(0xe8)],'dryRun':_0x107e3c[_0x2c4fff(0xe0)],'warnings':_0x107e3c[_0x2c4fff(0xd9)]??[]};}export async function withAppConfigApiBoundary(_0x36f1fb,_0xaa6cf0,_0x1749c9){const _0x694144=a34_0x3a1b86;try{return await _0x1749c9();}catch{const _0x4c8e84=[_0x694144(0x100)+_0xaa6cf0['appCode']];if(_0xaa6cf0['key'])_0x4c8e84[_0x694144(0xe7)](_0x694144(0xe5)+_0xaa6cf0[_0x694144(0xe1)]);_0x4c8e84['push']('value\x20is\x20redacted');throw CliErrors[_0x694144(0xd7)](_0x694144(0xeb)+_0x36f1fb+_0x694144(0xcc),_0x4c8e84[_0x694144(0xfe)](';\x20')+'.');}}export function asAppConfigDryRunResult(_0x562721,_0x17138a){const _0x3cc7bf=a34_0x3a1b86;return Object[_0x3cc7bf(0xe4)](_0x562721,{'method':{'value':_0x17138a[_0x3cc7bf(0xde)],'enumerable':![]},'url':{'value':_0x17138a[_0x3cc7bf(0xe2)],'enumerable':![]}});}export function assertSingleValueSource(_0x222a71){const _0x46288b=a34_0x3a1b86,_0x38ecff=[];_0x222a71[_0x46288b(0x102)]['length']>0x1&&_0x38ecff[_0x46288b(0xe7)]({'kind':_0x46288b(0xc4),'value':_0x222a71[_0x46288b(0x102)][_0x46288b(0xea)](0x1)[_0x46288b(0xfe)]('\x20')});const _0xcf8397=_0x222a71[_0x46288b(0xce)]('value');_0xcf8397!==undefined&&_0xcf8397!==null&&_0x38ecff['push']({'kind':_0x46288b(0xc4),'value':String(_0xcf8397)});_0x222a71[_0x46288b(0xe3)]('stdin')&&_0x38ecff[_0x46288b(0xe7)]({'kind':_0x46288b(0xcb)});const _0x78bb62=_0x222a71[_0x46288b(0xff)](_0x46288b(0xd0))[_0x46288b(0xdb)]();_0x78bb62&&_0x38ecff[_0x46288b(0xe7)]({'kind':_0x46288b(0xf2),'name':_0x78bb62});const _0xa89652=_0x222a71[_0x46288b(0xff)](_0x46288b(0xfd))['trim']();_0xa89652&&_0x38ecff[_0x46288b(0xe7)]({'kind':_0x46288b(0xfd),'path':_0xa89652});if(_0x38ecff[_0x46288b(0xf7)]===0x0)throw CliErrors['validation'](_0x46288b(0xc3),_0x46288b(0xcf));if(_0x38ecff['length']>0x1)throw CliErrors['validation'](_0x46288b(0xd3),_0x46288b(0xd6));return _0x38ecff[0x0];}export async function assertValueSourceReadable(_0x3f1d68){const _0x25e86e=a34_0x3a1b86;if(_0x3f1d68[_0x25e86e(0xf5)]===_0x25e86e(0xf2)&&!(_0x3f1d68[_0x25e86e(0xc5)]in process.env))throw CliErrors[_0x25e86e(0xed)]('Environment\x20variable\x20is\x20not\x20set:\x20'+_0x3f1d68[_0x25e86e(0xc5)]);if(_0x3f1d68[_0x25e86e(0xf5)]===_0x25e86e(0xfd))try{await access(_0x3f1d68['path']);}catch{throw CliErrors['validation'](_0x25e86e(0xdd)+_0x3f1d68[_0x25e86e(0xef)]);}}export async function readAppConfigValue(_0x3f9a06){const _0x297856=a34_0x3a1b86,_0x23f834=assertSingleValueSource(_0x3f9a06),_0x468e2a=[];if(_0x23f834['kind']===_0x297856(0xc4))return _0x468e2a[_0x297856(0xe7)](_0x297856(0xda)),{'value':_0x23f834[_0x297856(0xc0)]??'','source':_0x23f834['kind'],'warnings':_0x468e2a};if(_0x23f834[_0x297856(0xf5)]===_0x297856(0xcb))return{'value':await readStdin(),'source':_0x23f834[_0x297856(0xf5)],'warnings':_0x468e2a};if(_0x23f834[_0x297856(0xf5)]===_0x297856(0xf2)){if(!(_0x23f834[_0x297856(0xc5)]in process.env))throw CliErrors['validation'](_0x297856(0xf4)+_0x23f834[_0x297856(0xc5)]);return{'value':process.env[_0x23f834.name]??'','source':_0x23f834[_0x297856(0xf5)],'warnings':_0x468e2a};}return{'value':await readFile(_0x23f834[_0x297856(0xef)],_0x297856(0x101)),'source':_0x23f834['kind'],'warnings':_0x468e2a};}function readStdin(){return new Promise((_0x789b83,_0x411ac0)=>{const _0x5c22a4=a34_0x5297;let _0x4774e6='';process[_0x5c22a4(0xcb)][_0x5c22a4(0xf9)](_0x5c22a4(0x101)),process[_0x5c22a4(0xcb)]['on'](_0x5c22a4(0x103),_0x4a751=>{_0x4774e6+=_0x4a751;}),process[_0x5c22a4(0xcb)]['once'](_0x5c22a4(0xdf),()=>_0x789b83(_0x4774e6)),process[_0x5c22a4(0xcb)]['once'](_0x5c22a4(0xee),_0x411ac0);});}
1
+ const a34_0x1f1cf2=a34_0x428f;(function(_0x563f5b,_0x30ec00){const _0x3a472b=a34_0x428f,_0x2a2ec4=_0x563f5b();while(!![]){try{const _0x5ad581=-parseInt(_0x3a472b(0x10b))/0x1+-parseInt(_0x3a472b(0x133))/0x2*(-parseInt(_0x3a472b(0x105))/0x3)+parseInt(_0x3a472b(0x12b))/0x4*(parseInt(_0x3a472b(0x13b))/0x5)+-parseInt(_0x3a472b(0x11a))/0x6+-parseInt(_0x3a472b(0x10f))/0x7*(parseInt(_0x3a472b(0x113))/0x8)+parseInt(_0x3a472b(0x129))/0x9+parseInt(_0x3a472b(0x120))/0xa;if(_0x5ad581===_0x30ec00)break;else _0x2a2ec4['push'](_0x2a2ec4['shift']());}catch(_0x3b9e19){_0x2a2ec4['push'](_0x2a2ec4['shift']());}}}(a34_0x18a9,0x48a6c));import{access,readFile}from'node:fs/promises';import{CliErrors}from'../../errors.js';export const KEY_ARG={'name':a34_0x1f1cf2(0x12f),'description':'Runtime\x20app-config\x20key','required':!![]};export const VALUE_ARG={'name':a34_0x1f1cf2(0x115),'description':a34_0x1f1cf2(0x108),'required':![]};export const TAGS_FLAG={'name':a34_0x1f1cf2(0x123),'type':'string','description':'Config\x20tags\x20for\x20filtering/display\x20metadata'};export const STDIN_FLAG={'name':a34_0x1f1cf2(0x122),'type':a34_0x1f1cf2(0x118),'description':'Read\x20config\x20value\x20from\x20stdin','default':![]};export const FROM_ENV_FLAG={'name':'from-env','type':a34_0x1f1cf2(0x13d),'description':a34_0x1f1cf2(0x104)};export const REVEAL_FLAG={'name':a34_0x1f1cf2(0x13c),'type':a34_0x1f1cf2(0x118),'description':'Reveal\x20the\x20sensitive\x20value\x20for\x20this\x20single\x20key','default':![]};export function readKeyArg(_0x1866ad){const _0x472bf4=a34_0x1f1cf2,_0x81185c=_0x1866ad['args'][0x0]?.[_0x472bf4(0x114)]()??'';return validateKey(_0x81185c),_0x81185c;}export function readOptionalTags(_0x5a88eb){const _0x35abc0=a34_0x1f1cf2,_0x100b1b=_0x5a88eb[_0x35abc0(0x12a)](_0x35abc0(0x123))[_0x35abc0(0x114)]();if(!_0x100b1b)return undefined;if(_0x100b1b[_0x35abc0(0x137)]>0x20)throw CliErrors[_0x35abc0(0x11d)](_0x35abc0(0x107));return _0x100b1b;}function a34_0x428f(_0x4b3918,_0x411b19){_0x4b3918=_0x4b3918-0x102;const _0x18a945=a34_0x18a9();let _0x428ff9=_0x18a945[_0x4b3918];return _0x428ff9;}export function validateKey(_0x15e538){const _0x5405b2=a34_0x1f1cf2;if(!_0x15e538)throw CliErrors['validation'](_0x5405b2(0x124));if(_0x15e538['length']>0x100)throw CliErrors[_0x5405b2(0x11d)](_0x5405b2(0x139));}export function projectAppConfig(_0xab0df8,_0x5d321f){const _0x485e82=a34_0x1f1cf2,_0x291d89=_0xab0df8[_0x485e82(0x115)]!==undefined&&_0xab0df8[_0x485e82(0x115)]!==null&&_0xab0df8[_0x485e82(0x115)]!=='',_0x2a61b1={'appCode':_0xab0df8[_0x485e82(0x13f)],'key':_0xab0df8['key'],'tags':_0xab0df8[_0x485e82(0x123)]??undefined,'hasValue':_0x291d89,'valueRedacted':_0x291d89&&!_0x5d321f?.[_0x485e82(0x13c)],'gmtCreate':_0xab0df8['gmtCreate'],'gmtModified':_0xab0df8['gmtModified']};return _0x5d321f?.[_0x485e82(0x13c)]&&(_0x2a61b1['value']=_0xab0df8[_0x485e82(0x115)]??'',_0x2a61b1[_0x485e82(0x131)]=![]),_0x2a61b1;}export function plannedAppConfig(_0x464337){const _0x2d8c74=a34_0x1f1cf2,_0x42fc38=_0x464337[_0x2d8c74(0x12d)]??!![];return{'appCode':_0x464337['appCode'],'key':_0x464337[_0x2d8c74(0x12f)],'tags':_0x464337[_0x2d8c74(0x123)]??undefined,'hasValue':_0x42fc38,'valueRedacted':_0x42fc38};}export function buildMutationData(_0x503a7e){const _0x3b9fc4=a34_0x1f1cf2;return{'operation':_0x503a7e['operation'],'selector':{'appCode':_0x503a7e[_0x3b9fc4(0x13f)],'key':_0x503a7e[_0x3b9fc4(0x12f)]},'before':_0x503a7e[_0x3b9fc4(0x127)],'after':_0x503a7e[_0x3b9fc4(0x134)],'dryRun':_0x503a7e[_0x3b9fc4(0x11e)],'warnings':_0x503a7e[_0x3b9fc4(0x10a)]??[]};}function a34_0x18a9(){const _0x5e0893=['3782349qumuGH','str','479524VKUrZz','key:\x20','hasValue','path','key','Value\x20file\x20is\x20not\x20readable:\x20','valueRedacted','file','286azSKyr','after','from-env','apiError','length','Value\x20was\x20provided\x20as\x20a\x20command\x20argument;\x20prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','App\x20config\x20key\x20length\x20cannot\x20exceed\x20256.','appCode:\x20','5PWRURI','reveal','string','kind','appCode','setEncoding','Failed\x20to\x20','Read\x20config\x20value\x20from\x20the\x20named\x20environment\x20variable','1461aNFoge','env','App\x20config\x20tags\x20length\x20cannot\x20exceed\x2032.','Sensitive\x20config\x20value.\x20Prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','App\x20config\x20value\x20source\x20is\x20ambiguous.','warnings','552043XGqjRw','slice','once','\x20app\x20config.','1513176lCLTtk','error','join','utf8','16GVLNuA','trim','value','name','value\x20is\x20redacted','boolean','push','1415100EqfVpt','defineProperties','Missing\x20app-config\x20value\x20source.','validation','dryRun','argument','9080260ximCac','url','stdin','tags','Missing\x20app-config\x20key.','bool','args','before','Use\x20exactly\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.'];a34_0x18a9=function(){return _0x5e0893;};return a34_0x18a9();}export async function withAppConfigApiBoundary(_0xe8c547,_0x5c325f,_0x3d8bf6){const _0x22d5fa=a34_0x1f1cf2;try{return await _0x3d8bf6();}catch{const _0xfc283f=[_0x22d5fa(0x13a)+_0x5c325f['appCode']];if(_0x5c325f[_0x22d5fa(0x12f)])_0xfc283f[_0x22d5fa(0x119)](_0x22d5fa(0x12c)+_0x5c325f[_0x22d5fa(0x12f)]);_0xfc283f[_0x22d5fa(0x119)](_0x22d5fa(0x117));throw CliErrors[_0x22d5fa(0x136)](_0x22d5fa(0x103)+_0xe8c547+_0x22d5fa(0x10e),_0xfc283f[_0x22d5fa(0x111)](';\x20')+'.');}}export function asAppConfigDryRunResult(_0x36a4d3,_0x3132aa){const _0xa777a3=a34_0x1f1cf2;return Object[_0xa777a3(0x11b)](_0x36a4d3,{'method':{'value':_0x3132aa['method'],'enumerable':![]},'url':{'value':_0x3132aa[_0xa777a3(0x121)],'enumerable':![]}});}export function assertSingleValueSource(_0x2e41dc){const _0x257f23=a34_0x1f1cf2,_0x34ca0c=[];_0x2e41dc[_0x257f23(0x126)][_0x257f23(0x137)]>0x1&&_0x34ca0c[_0x257f23(0x119)]({'kind':_0x257f23(0x11f),'value':_0x2e41dc['args'][_0x257f23(0x10c)](0x1)[_0x257f23(0x111)]('\x20')});const _0x594e18=_0x2e41dc['flag'](_0x257f23(0x115));_0x594e18!==undefined&&_0x594e18!==null&&_0x34ca0c[_0x257f23(0x119)]({'kind':_0x257f23(0x11f),'value':String(_0x594e18)});_0x2e41dc[_0x257f23(0x125)](_0x257f23(0x122))&&_0x34ca0c[_0x257f23(0x119)]({'kind':_0x257f23(0x122)});const _0x4e5400=_0x2e41dc[_0x257f23(0x12a)](_0x257f23(0x135))[_0x257f23(0x114)]();_0x4e5400&&_0x34ca0c[_0x257f23(0x119)]({'kind':_0x257f23(0x106),'name':_0x4e5400});const _0x51a480=_0x2e41dc[_0x257f23(0x12a)]('file')[_0x257f23(0x114)]();_0x51a480&&_0x34ca0c[_0x257f23(0x119)]({'kind':_0x257f23(0x132),'path':_0x51a480});if(_0x34ca0c['length']===0x0)throw CliErrors[_0x257f23(0x11d)](_0x257f23(0x11c),'Use\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.');if(_0x34ca0c[_0x257f23(0x137)]>0x1)throw CliErrors[_0x257f23(0x11d)](_0x257f23(0x109),_0x257f23(0x128));return _0x34ca0c[0x0];}export async function assertValueSourceReadable(_0x4fa408){const _0x424685=a34_0x1f1cf2;if(_0x4fa408[_0x424685(0x13e)]===_0x424685(0x106)&&!(_0x4fa408[_0x424685(0x116)]in process.env))throw CliErrors[_0x424685(0x11d)]('Environment\x20variable\x20is\x20not\x20set:\x20'+_0x4fa408[_0x424685(0x116)]);if(_0x4fa408['kind']===_0x424685(0x132))try{await access(_0x4fa408['path']);}catch{throw CliErrors['validation'](_0x424685(0x130)+_0x4fa408[_0x424685(0x12e)]);}}export async function readAppConfigValue(_0x16c222){const _0x494091=a34_0x1f1cf2,_0x4cbdbe=assertSingleValueSource(_0x16c222),_0x562736=[];if(_0x4cbdbe[_0x494091(0x13e)]===_0x494091(0x11f))return _0x562736[_0x494091(0x119)](_0x494091(0x138)),{'value':_0x4cbdbe['value']??'','source':_0x4cbdbe[_0x494091(0x13e)],'warnings':_0x562736};if(_0x4cbdbe[_0x494091(0x13e)]===_0x494091(0x122))return{'value':await readStdin(),'source':_0x4cbdbe['kind'],'warnings':_0x562736};if(_0x4cbdbe[_0x494091(0x13e)]===_0x494091(0x106)){if(!(_0x4cbdbe[_0x494091(0x116)]in process.env))throw CliErrors[_0x494091(0x11d)]('Environment\x20variable\x20is\x20not\x20set:\x20'+_0x4cbdbe[_0x494091(0x116)]);return{'value':process.env[_0x4cbdbe.name]??'','source':_0x4cbdbe[_0x494091(0x13e)],'warnings':_0x562736};}return{'value':await readFile(_0x4cbdbe['path'],_0x494091(0x112)),'source':_0x4cbdbe['kind'],'warnings':_0x562736};}function readStdin(){return new Promise((_0x2cb2a6,_0x35928b)=>{const _0x5041e2=a34_0x428f;let _0x33403a='';process[_0x5041e2(0x122)][_0x5041e2(0x102)](_0x5041e2(0x112)),process[_0x5041e2(0x122)]['on']('data',_0x168eb3=>{_0x33403a+=_0x168eb3;}),process[_0x5041e2(0x122)][_0x5041e2(0x10d)]('end',()=>_0x2cb2a6(_0x33403a)),process[_0x5041e2(0x122)][_0x5041e2(0x10d)](_0x5041e2(0x110),_0x35928b);});}
@@ -1 +1 @@
1
- function a35_0x3d90(){const _0x3889d8=['843821vJlmBS','1680MRcZak','143418lcYOsw','logout','✓\x20Logged\x20out','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','log','52885rfYInS','nonInteractive','auth','285114vQUDzN','!\x20Not\x20logged\x20in','40rpSGHz','Clear\x20login\x20session','16YLpOaG','bool','login','2510peTAFP','Login\x20via\x20browser','31568uXIHGd','yes','66mLuZlg','boolean','write','../../auth/auth-server-ui.js','384597ueZOmu'];a35_0x3d90=function(){return _0x3889d8;};return a35_0x3d90();}const a35_0x19ba80=a35_0x46e7;(function(_0x360e5f,_0x1b0c75){const _0x52f185=a35_0x46e7,_0x532079=_0x360e5f();while(!![]){try{const _0x1bc8cd=parseInt(_0x52f185(0x9c))/0x1+-parseInt(_0x52f185(0x94))/0x2+parseInt(_0x52f185(0xa7))/0x3*(-parseInt(_0x52f185(0xa5))/0x4)+-parseInt(_0x52f185(0xa3))/0x5*(parseInt(_0x52f185(0x93))/0x6)+parseInt(_0x52f185(0x99))/0x7+-parseInt(_0x52f185(0xa0))/0x8*(-parseInt(_0x52f185(0x91))/0x9)+parseInt(_0x52f185(0x9e))/0xa*(parseInt(_0x52f185(0x92))/0xb);if(_0x1bc8cd===_0x1b0c75)break;else _0x532079['push'](_0x532079['shift']());}catch(_0x300da5){_0x532079['push'](_0x532079['shift']());}}}(a35_0x3d90,0x4904e));function a35_0x46e7(_0x45475b,_0x1868c1){_0x45475b=_0x45475b-0x8f;const _0x3d9010=a35_0x3d90();let _0x46e75c=_0x3d9010[_0x45475b];return _0x46e75c;}import{unlinkSync,existsSync}from'node:fs';import{cookieFile}from'../../auth/constant.js';export const authDefinitions=[{'service':a35_0x19ba80(0x9b),'command':a35_0x19ba80(0xa2),'description':a35_0x19ba80(0xa4),'risk':a35_0x19ba80(0x8f),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a35_0x19ba80(0xa6),'type':a35_0x19ba80(0xa8),'description':a35_0x19ba80(0x97),'default':![]}],async 'execute'(_0x27644f){const _0x2bb15c=a35_0x19ba80,{runAuthServer:_0x165515}=await import(_0x2bb15c(0x90));return await _0x165515({'autoYes':_0x27644f[_0x2bb15c(0xa1)](_0x2bb15c(0xa6)),'nonInteractive':_0x27644f[_0x2bb15c(0x9a)]}),{'ok':!![]};}},{'service':a35_0x19ba80(0x9b),'command':a35_0x19ba80(0x95),'description':a35_0x19ba80(0x9f),'risk':a35_0x19ba80(0x8f),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x24f49e){const _0x37e78a=a35_0x19ba80;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x37e78a(0x98)](_0x37e78a(0x96))):console[_0x37e78a(0x98)](_0x37e78a(0x9d)),{'ok':!![]};}}];
1
+ function a35_0x49ee(_0x1ef625,_0x482e50){_0x1ef625=_0x1ef625-0x1d4;const _0x5eab11=a35_0x5eab();let _0x49eef0=_0x5eab11[_0x1ef625];return _0x49eef0;}const a35_0x52755c=a35_0x49ee;(function(_0x399ea5,_0x45a4e9){const _0xa38dc2=a35_0x49ee,_0x4cd84e=_0x399ea5();while(!![]){try{const _0x396d0f=parseInt(_0xa38dc2(0x1e3))/0x1*(parseInt(_0xa38dc2(0x1e0))/0x2)+parseInt(_0xa38dc2(0x1dc))/0x3+parseInt(_0xa38dc2(0x1e8))/0x4*(-parseInt(_0xa38dc2(0x1d5))/0x5)+-parseInt(_0xa38dc2(0x1ea))/0x6+-parseInt(_0xa38dc2(0x1e4))/0x7*(parseInt(_0xa38dc2(0x1e5))/0x8)+-parseInt(_0xa38dc2(0x1d8))/0x9+parseInt(_0xa38dc2(0x1e9))/0xa;if(_0x396d0f===_0x45a4e9)break;else _0x4cd84e['push'](_0x4cd84e['shift']());}catch(_0x506d93){_0x4cd84e['push'](_0x4cd84e['shift']());}}}(a35_0x5eab,0xb3ea1));import{unlinkSync,existsSync}from'node:fs';function a35_0x5eab(){const _0x518ea7=['486328hLwLAO','yes','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','4sfIkik','6823160DcATlK','733230TaGrVv','logout','3925645EGrmvt','nonInteractive','login','6177582ADvWgs','log','Clear\x20login\x20session','✓\x20Logged\x20out','853005XxfGMX','auth','../../auth/auth-server-ui.js','write','178AoMtnz','boolean','!\x20Not\x20logged\x20in','16009eGxJRN','7EJNcBN'];a35_0x5eab=function(){return _0x518ea7;};return a35_0x5eab();}import{cookieFile}from'../../auth/constant.js';export const authDefinitions=[{'service':'auth','command':a35_0x52755c(0x1d7),'description':'Login\x20via\x20browser','risk':a35_0x52755c(0x1df),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a35_0x52755c(0x1e6),'type':a35_0x52755c(0x1e1),'description':a35_0x52755c(0x1e7),'default':![]}],async 'execute'(_0x4f49af){const _0xc037b2=a35_0x52755c,{runAuthServer:_0x5d4bd5}=await import(_0xc037b2(0x1de));return await _0x5d4bd5({'autoYes':_0x4f49af['bool'](_0xc037b2(0x1e6)),'nonInteractive':_0x4f49af[_0xc037b2(0x1d6)]}),{'ok':!![]};}},{'service':a35_0x52755c(0x1dd),'command':a35_0x52755c(0x1d4),'description':a35_0x52755c(0x1da),'risk':a35_0x52755c(0x1df),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x33b247){const _0x5b4dd2=a35_0x52755c;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x5b4dd2(0x1d9)](_0x5b4dd2(0x1db))):console[_0x5b4dd2(0x1d9)](_0x5b4dd2(0x1e2)),{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a36_0x45984b=a36_0x52f9;(function(_0x370ec0,_0x2a6b14){const _0x5ab867=a36_0x52f9,_0x2aa2da=_0x370ec0();while(!![]){try{const _0x17e77f=-parseInt(_0x5ab867(0x201))/0x1*(-parseInt(_0x5ab867(0x1d3))/0x2)+-parseInt(_0x5ab867(0x1d6))/0x3+parseInt(_0x5ab867(0x1a3))/0x4+-parseInt(_0x5ab867(0x1a8))/0x5*(-parseInt(_0x5ab867(0x19b))/0x6)+parseInt(_0x5ab867(0x1fe))/0x7*(-parseInt(_0x5ab867(0x1b9))/0x8)+-parseInt(_0x5ab867(0x1c4))/0x9*(parseInt(_0x5ab867(0x1d1))/0xa)+parseInt(_0x5ab867(0x1e4))/0xb;if(_0x17e77f===_0x2a6b14)break;else _0x2aa2da['push'](_0x2aa2da['shift']());}catch(_0x74ef6e){_0x2aa2da['push'](_0x2aa2da['shift']());}}}(a36_0x5092,0xe4462));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';function a36_0x5092(){const _0xae0256=['.js','Alias\x20\x22','utf8','filePath','entries','962874DZHHfW','当前响应结果','write','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/','includes','\x0a\x20*\x20[平台配置]\x20','stdin','Function\x20name\x20(valid\x20JS\x20identifier)','trim','selectedAppName','/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.','after','30KIBOHP','stderr','2dFvGmq','function-node','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','1680900mCwqmN','keys','\x22\x20not\x20found\x20for\x20dataset\x20','Available\x20aliases:\x20','\x22,\x20params\x20})\x0a','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20HOOK\x0a\x20*\x20[脚本名称]\x20','string','ENDPOINT','operationType','read','length','name','find','HOOK\x20requires\x20alias/operation/node\x20options.','18948952Ufnpwo','/**\x0a\x20*\x20','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','appCode','Script\x20type','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20ENDPOINT\x0a\x20*\x20[脚本名称]\x20','Select\x20operation\x20type:','code','map','COMMON','Operation\x20type\x20\x22','UNKNOWN','str','\x20function:\x20','close','Select\x20dataset:','alias','parseInt','nonInteractive','datasetCode','description','\x0a\x20*\x20[接口路径]\x20POST\x20/api/','\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','scriptsRootDir','Dataset\x20not\x20found\x20for\x20code\x20\x22','isInteger','350PohxfL','operation-type','datasetId','153756gDqjLn','source','2717082VdfCBN','Invalid\x20function\x20name\x20\x22','validation','.js\x0a\x20*\x20[调用方式]\x20context.client.bff.execute({\x20scriptName:\x20\x22','defaultApp','No\x20datasets\x20found\x20for\x20this\x20app.','/data/dataset/','No\x20model\x20aliases\x20found.\x20Run\x20`','1797932bJgyYA','\x20api\x20pull`\x20to\x20refresh.','\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20','before','修改后的响应结果','5lptmEB','mergedCli','#api-list\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','question','Created\x20','type','Scaffold\x20a\x20new\x20Backend\x20Function\x20script\x20from\x20template','Trigger\x20node\x20(HOOK\x20only)','\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','create','Operation\x20type\x20(HOOK\x20only)','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','apiDir','No\x20operation\x20types\x20found\x20for\x20dataset\x20','修改后的请求参数','\x20*\x20[依赖数据集]\x20无(如有依赖,DB_TABLE\x20填物理表名;METADATA\x20填数据集编码与用途)\x0a\x20*\x20[调用\x20BF]\x20无(如有调用,填写脚本名称与用途)\x0a\x20*\x20[执行\x20SQL]\x20无(如有执行,填写\x20SQL\x20名称与用途)\x0a\x20*\x20[副作用]\x20无(如有通知或外部调用,说明影响与失败策略)','153992OMraXy','profileName','bff','\x22.\x20','functionNode','HOOK'];a36_0x5092=function(){return _0xae0256;};return a36_0x5092();}function a36_0x52f9(_0x19a828,_0x27a8ad){_0x19a828=_0x19a828-0x19b;const _0x5092f2=a36_0x5092();let _0x52f975=_0x5092f2[_0x19a828];return _0x52f975;}import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{fileExists}from'../../core/bff/file-system.js';import{DEFAULT_BFF_SCRIPT_DESCRIPTION,isValidBffFunctionName,normalizeHookFunctionNode}from'../../core/bff/utils.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{getAppBaseUrl}from'../../constant/domain.js';export const bffCreate={'service':a36_0x45984b(0x1bb),'command':a36_0x45984b(0x1b2),'description':a36_0x45984b(0x1ae),'risk':a36_0x45984b(0x1df),'flags':[{'name':a36_0x45984b(0x1ad),'type':a36_0x45984b(0x1dc),'required':!![],'enum':[a36_0x45984b(0x1ed),a36_0x45984b(0x1dd),'HOOK'],'description':a36_0x45984b(0x1e8)},{'name':a36_0x45984b(0x1e1),'type':a36_0x45984b(0x1dc),'required':!![],'description':a36_0x45984b(0x1cb)},{'name':a36_0x45984b(0x1f8),'type':'string','description':'Script\x20description'},{'name':a36_0x45984b(0x1f4),'type':a36_0x45984b(0x1dc),'description':'Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)'},{'name':'datasetcode','type':'string','description':a36_0x45984b(0x1d5)},{'name':a36_0x45984b(0x1ff),'type':a36_0x45984b(0x1dc),'description':a36_0x45984b(0x1b3)},{'name':a36_0x45984b(0x1d4),'type':'string','description':a36_0x45984b(0x1af),'enum':['before',a36_0x45984b(0x1d0)]}],async 'validate'(_0x5eea64){const _0x57715e=a36_0x45984b,_0x405d70=_0x5eea64[_0x57715e(0x1f0)](_0x57715e(0x1e1));if(!isValidBffFunctionName(_0x405d70))throw CliErrors[_0x57715e(0x19d)](_0x57715e(0x19c)+_0x405d70+'\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).');},async 'execute'(_0x1c2e17){const _0x133872=a36_0x45984b,_0x5b1d31=loadBffProjectConfig(_0x1c2e17['appCode']),_0x5b82e8=_0x1c2e17['str'](_0x133872(0x1ad)),_0x59c115=_0x1c2e17[_0x133872(0x1f0)]('name'),_0x3cbb58=_0x1c2e17['str']('description')||undefined,_0xcee513=_0x5b82e8===_0x133872(0x1be)?await resolveHookOptions(_0x5b1d31,_0x1c2e17):undefined,_0x24bda2=buildFilePath(_0x5b1d31,_0x5b82e8,_0x59c115,_0xcee513);if(await fileExists(_0x24bda2))throw CliErrors[_0x133872(0x19d)]('File\x20already\x20exists:\x20'+_0x24bda2);await mkdir(dirname(_0x24bda2),{'recursive':!![]});const _0x8496fb=generateTemplate(_0x5b82e8,_0x59c115,_0x1c2e17['appCode'],_0x3cbb58,_0xcee513);await writeFile(_0x24bda2,_0x8496fb,_0x133872(0x1c1));const _0x57ebd9={'type':_0x5b82e8,'name':_0x59c115,'path':_0x24bda2};if(_0x3cbb58)_0x57ebd9[_0x133872(0x1f8)]=_0x3cbb58;if(_0xcee513){if(_0xcee513['alias'])_0x57ebd9[_0x133872(0x1f4)]=_0xcee513['alias'];_0x57ebd9[_0x133872(0x1f7)]=_0xcee513['datasetCode'],_0x57ebd9['operationType']=_0xcee513[_0x133872(0x1de)],_0x57ebd9[_0x133872(0x1bd)]=_0xcee513['functionNode'];}return{'ok':!![],'data':_0x57ebd9,'message':_0x133872(0x1ac)+_0x5b82e8+_0x133872(0x1f1)+_0x59c115};}};async function resolveHookOptions(_0x45dc53,_0x5cdc96){const _0x114193=a36_0x45984b,_0x3d3ca6=resolveApiModelSource(_0x5cdc96['apiDir'],_0x5cdc96[_0x114193(0x1e7)],_0x5cdc96[_0x114193(0x1cd)]||_0x5cdc96[_0x114193(0x1a9)]?.['currentApp']||_0x5cdc96['mergedCli']?.[_0x114193(0x19f)]),_0xac3dd7=loadAliasMap(_0x5cdc96[_0x114193(0x1b5)],undefined,_0x3d3ca6[_0x114193(0x1c2)],_0x3d3ca6[_0x114193(0x1ba)]),_0x2ce739=_0xac3dd7[_0x114193(0x1e0)]>0x0;let _0x52ff13,_0x323b59,_0x1f034a;const _0x457329=_0x5cdc96['str'](_0x114193(0x1f4)),_0x325e90=_0x5cdc96[_0x114193(0x1f0)]('datasetcode');if(_0x457329){const _0x4149e5=resolveAlias(_0x5cdc96[_0x114193(0x1b5)],_0x457329,undefined,_0x3d3ca6['filePath'],_0x3d3ca6[_0x114193(0x1ba)]);if(!_0x4149e5){const _0x119e2d=_0x2ce739?_0x114193(0x1d9)+_0xac3dd7[_0x114193(0x1ec)](_0x1c8645=>_0x1c8645[_0x114193(0x1f4)])['join'](',\x20'):_0x114193(0x1a2)+CLI_BIN_NAME+'\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.';throw CliErrors[_0x114193(0x19d)](_0x114193(0x1c0)+_0x457329+'\x22\x20not\x20found.\x20'+_0x119e2d);}_0x52ff13=_0x457329,_0x323b59=_0x4149e5;}else{if(_0x325e90){_0x323b59=_0x325e90;const _0x2bb2f7=_0xac3dd7[_0x114193(0x1e2)](_0x21d321=>_0x21d321[_0x114193(0x1f7)]===_0x325e90);_0x52ff13=_0x2bb2f7?.[_0x114193(0x1f4)];}else{if(_0x5cdc96[_0x114193(0x1f6)])throw CliErrors[_0x114193(0x19d)]('--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');else{if(_0x2ce739){const _0x547c31=_0xac3dd7['map'](_0x4b2c04=>_0x4b2c04['alias']+'\x20('+_0x4b2c04['tableName']+')'),_0x364eb1=await promptSelect(_0x114193(0x1f3),_0x547c31),_0xab961a=_0xac3dd7[_0x364eb1];if(!_0xab961a)throw CliErrors[_0x114193(0x19d)]('Invalid\x20dataset\x20selection.');_0x52ff13=_0xab961a[_0x114193(0x1f4)],_0x323b59=_0xab961a[_0x114193(0x1f7)];}else{const _0x222855=await listDatasets(_0x5cdc96[_0x114193(0x1e7)]);if(_0x222855[_0x114193(0x1e0)]===0x0)throw CliErrors[_0x114193(0x19d)](_0x114193(0x1a0));const _0x2e67e3=_0x222855[_0x114193(0x1ec)](_0x4423fa=>_0x4423fa[_0x114193(0x1e1)]+'\x20['+(_0x4423fa[_0x114193(0x202)]??_0x114193(0x1ef))+']\x20('+_0x4423fa[_0x114193(0x1eb)]+')'),_0x4cd0d2=await promptSelect(_0x114193(0x1f3),_0x2e67e3),_0x23a482=_0x222855[_0x4cd0d2];if(!_0x23a482)throw CliErrors[_0x114193(0x19d)]('Invalid\x20dataset\x20selection.');_0x323b59=_0x23a482[_0x114193(0x1eb)],_0x52ff13=undefined;}}}}const _0x405b20=await listDatasets(_0x5cdc96[_0x114193(0x1e7)]),_0x1de604=_0x405b20[_0x114193(0x1e2)](_0x110544=>_0x110544['code']===_0x323b59);if(!_0x1de604)throw CliErrors['validation'](_0x114193(0x1fc)+_0x323b59+_0x114193(0x1bc)+(_0x52ff13?'The\x20generated\x20model\x20facts\x20may\x20be\x20stale\x20—\x20run\x20`'+CLI_BIN_NAME+_0x114193(0x1a4):''));_0x1f034a=_0x1de604['id'];const _0x5f04ea=_0x52ff13??_0x323b59,_0x2b75c4=await listBffDatasetOperations(_0x5cdc96['appCode'],_0x1f034a),_0x5acf25=_0x2b75c4?Object[_0x114193(0x1d7)](_0x2b75c4):[];if(_0x5acf25[_0x114193(0x1e0)]===0x0)throw CliErrors[_0x114193(0x19d)](_0x114193(0x1b6)+_0x5f04ea+'.');let _0x4037d5;const _0x3bcd38=_0x5cdc96['str'](_0x114193(0x1ff));if(_0x3bcd38){if(!_0x5acf25[_0x114193(0x1c8)](_0x3bcd38))throw CliErrors[_0x114193(0x19d)](_0x114193(0x1ee)+_0x3bcd38+_0x114193(0x1d8)+_0x5f04ea+'.\x20'+('Available:\x20'+_0x5acf25['join'](',\x20')));_0x4037d5=_0x3bcd38;}else{if(_0x5cdc96['nonInteractive'])throw CliErrors[_0x114193(0x19d)]('--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');const _0x3aa7fe=await promptSelect(_0x114193(0x1ea),_0x5acf25);_0x4037d5=_0x5acf25[_0x3aa7fe]??_0x5acf25[0x0];}let _0x13bad0=normalizeHookFunctionNode(_0x5cdc96[_0x114193(0x1f0)](_0x114193(0x1d4)));if(!_0x13bad0){if(_0x5cdc96[_0x114193(0x1f0)](_0x114193(0x1d4)))throw CliErrors[_0x114193(0x19d)](_0x114193(0x1cf));if(_0x5cdc96[_0x114193(0x1f6)])throw CliErrors[_0x114193(0x19d)]('--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');const _0x1f13a6=await promptSelect('Select\x20trigger\x20node:',[_0x114193(0x1a6),_0x114193(0x1d0)]);_0x13bad0=[_0x114193(0x1a6),_0x114193(0x1d0)][_0x1f13a6]??_0x114193(0x1a6);}return{'alias':_0x52ff13,'datasetCode':_0x323b59,'datasetId':_0x1f034a,'operationType':_0x4037d5,'functionNode':_0x13bad0};}async function promptSelect(_0x334a05,_0x21715b){const _0x55ffba=a36_0x45984b;if(_0x21715b[_0x55ffba(0x1e0)]===0x1)return 0x0;for(const [_0x59bcea,_0xa138a7]of _0x21715b[_0x55ffba(0x1c3)]()){process[_0x55ffba(0x1d2)][_0x55ffba(0x1c6)]('\x20\x20'+(_0x59bcea+0x1)+'.\x20'+_0xa138a7+'\x0a');}const _0x50fe95=createInterface({'input':process[_0x55ffba(0x1ca)],'output':process[_0x55ffba(0x1d2)]});while(!![]){const _0x199521=await new Promise(_0x1deead=>{const _0x514fe4=_0x55ffba;_0x50fe95[_0x514fe4(0x1ab)](_0x334a05+'\x20',_0x1deead);}),_0x3145c8=Number[_0x55ffba(0x1f5)](_0x199521[_0x55ffba(0x1cc)](),0xa);if(Number[_0x55ffba(0x1fd)](_0x3145c8)&&_0x3145c8>=0x1&&_0x3145c8<=_0x21715b['length'])return _0x50fe95[_0x55ffba(0x1f2)](),_0x3145c8-0x1;process['stderr']['write'](_0x55ffba(0x1b4)+_0x21715b[_0x55ffba(0x1e0)]+'.\x0a');}}function buildFilePath(_0x221741,_0x5843c9,_0x5451e3,_0x3073be){const _0x3fbf00=a36_0x45984b;if(_0x5843c9===_0x3fbf00(0x1be)){if(!_0x3073be)throw CliErrors[_0x3fbf00(0x19d)](_0x3fbf00(0x1e3));const _0x5a624c=_0x3073be[_0x3fbf00(0x1f4)]??_0x3073be['datasetCode'];return join(_0x221741[_0x3fbf00(0x1fb)],_0x3fbf00(0x1be),_0x5a624c,_0x3073be['operationType'],_0x3073be[_0x3fbf00(0x1bd)],_0x5451e3+_0x3fbf00(0x1bf));}return join(_0x221741[_0x3fbf00(0x1fb)],_0x5843c9,_0x5451e3+_0x3fbf00(0x1bf));}export function generateTemplate(_0x4615cf,_0xe2d8e7,_0x175c06,_0x18c429,_0x1e5fc1){const _0x408473=a36_0x45984b,_0x124e23=_0x18c429?.[_0x408473(0x1cc)]()||DEFAULT_BFF_SCRIPT_DESCRIPTION,_0x4511c1=getAppBaseUrl(_0x175c06),_0x1bca6b=_0x408473(0x1b8);if(_0x4615cf===_0x408473(0x1ed))return _0x408473(0x1e5)+_0x124e23+'\x0a\x20*\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[脚本名称]\x20'+_0xe2d8e7+'\x0a\x20*\x20[平台配置]\x20'+_0x4511c1+_0x408473(0x1ce)+_0x175c06+'/COMMON/'+_0xe2d8e7+_0x408473(0x19e)+_0xe2d8e7+_0x408473(0x1da)+_0x1bca6b+'\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20请求参数\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20TODO:\x20补充返回数据结构\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20'+_0xe2d8e7+_0x408473(0x1e6);if(_0x4615cf===_0x408473(0x1dd))return'/**\x0a\x20*\x20'+_0x124e23+_0x408473(0x1e9)+_0xe2d8e7+_0x408473(0x1c7)+_0x175c06+'/'+_0xe2d8e7+'\x0a\x20*\x20[平台配置]\x20'+_0x4511c1+_0x408473(0x1ce)+_0x175c06+'/ENDPOINT/'+_0xe2d8e7+'.js\x0a'+_0x1bca6b+'\x0a\x20*\x20[参数字段]\x20按实际请求体为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20HTTP\x20请求体参数\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20TODO:\x20补充业务返回数据结构\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20'+_0xe2d8e7+_0x408473(0x1e6);if(!_0x1e5fc1)throw CliErrors['validation'](_0x408473(0x1b1));const _0x13a410=_0x1e5fc1[_0x408473(0x1f4)]??_0x1e5fc1[_0x408473(0x1f7)],_0x2e1083=_0x1e5fc1['functionNode']===_0x408473(0x1a6)?'当前请求参数':_0x408473(0x1c5),_0x24da1c=_0x1e5fc1['functionNode']==='before'?_0x408473(0x1b7):_0x408473(0x1a7);return'/**\x0a\x20*\x20'+_0x124e23+_0x408473(0x1db)+_0xe2d8e7+_0x408473(0x1f9)+_0x175c06+'/'+_0x1e5fc1['datasetCode']+'/'+_0x1e5fc1[_0x408473(0x1de)]+_0x408473(0x1c9)+_0x4511c1+_0x408473(0x1a1)+_0x1e5fc1[_0x408473(0x200)]+_0x408473(0x1aa)+_0x175c06+'/HOOK/'+_0x13a410+'/'+_0x1e5fc1['operationType']+'/'+_0x1e5fc1[_0x408473(0x1bd)]+'/'+_0xe2d8e7+'.js\x0a\x20*\x20[触发节点]\x20'+_0x1e5fc1['functionNode']+'\x0a'+_0x1bca6b+_0x408473(0x1b0)+_0x2e1083+_0x408473(0x1a5)+_0x24da1c+_0x408473(0x1fa)+_0xe2d8e7+_0x408473(0x1e6);}
1
+ function a36_0x133b(_0x30b6e9,_0x17b132){_0x30b6e9=_0x30b6e9-0x9d;const _0x3b2366=a36_0x3b23();let _0x133b6b=_0x3b2366[_0x30b6e9];return _0x133b6b;}const a36_0x80de2c=a36_0x133b;(function(_0x56c2e3,_0x30a0cf){const _0x308bf9=a36_0x133b,_0x4a871f=_0x56c2e3();while(!![]){try{const _0x12693d=-parseInt(_0x308bf9(0x106))/0x1+parseInt(_0x308bf9(0xed))/0x2*(parseInt(_0x308bf9(0x104))/0x3)+-parseInt(_0x308bf9(0xa9))/0x4*(parseInt(_0x308bf9(0xe3))/0x5)+-parseInt(_0x308bf9(0xc1))/0x6+parseInt(_0x308bf9(0x107))/0x7*(-parseInt(_0x308bf9(0xaa))/0x8)+-parseInt(_0x308bf9(0xf7))/0x9*(parseInt(_0x308bf9(0xd8))/0xa)+-parseInt(_0x308bf9(0xca))/0xb*(-parseInt(_0x308bf9(0xb1))/0xc);if(_0x12693d===_0x30a0cf)break;else _0x4a871f['push'](_0x4a871f['shift']());}catch(_0x43857b){_0x4a871f['push'](_0x4a871f['shift']());}}}(a36_0x3b23,0xbdf1d));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';function a36_0x3b23(){const _0x4484cc=['utf8','--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','\x22\x20not\x20found.\x20','\x0a\x20*\x20[参数字段]\x20按实际请求体为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20HTTP\x20请求体参数\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20TODO:\x20补充业务返回数据结构\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','\x20function:\x20','Script\x20type','1555PbzxtX','Alias\x20\x22','Invalid\x20dataset\x20selection.','Select\x20operation\x20type:','\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20','\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).','Invalid\x20function\x20name\x20\x22','datasetCode','ENDPOINT','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[脚本名称]\x20','892042EJvPlY','trim','\x22.\x20','COMMON','Operation\x20type\x20\x22','question','name','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','File\x20already\x20exists:\x20','/HOOK/','621558EUbHjf','修改后的响应结果','code','after','HOOK\x20requires\x20alias/operation/node\x20options.','mergedCli','str','write','当前响应结果','parseInt','function-node','type','map','3qWnsyU','source','1178238ZsFeLw','168FxCRgx','appCode','--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','defaultApp','Script\x20description','/COMMON/','Select\x20dataset:','nonInteractive','bff','No\x20model\x20aliases\x20found.\x20Run\x20`','--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.','Available\x20aliases:\x20','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','14012UlOATm','517664pvrHgd','\x0a\x20*\x20[平台配置]\x20','datasetcode','No\x20operation\x20types\x20found\x20for\x20dataset\x20','.js\x0a\x20*\x20[触发节点]\x20','/data/dataset/','\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20','347040ThrUTL','profileName','当前请求参数','UNKNOWN','Select\x20trigger\x20node:','\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','alias','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','description','scriptsRootDir','operationType','length','join','.js\x0a',']\x20(','HOOK','1529106nflhHJ','/**\x0a\x20*\x20','Available:\x20','functionNode','tableName','stderr','operation-type','before','\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.','2123DIOTXX','validation','keys','includes','string','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20HOOK\x0a\x20*\x20[脚本名称]\x20','No\x20datasets\x20found\x20for\x20this\x20app.','/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','datasetId','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/','stdin','\x20*\x20[依赖数据集]\x20无(如有依赖,DB_TABLE\x20填物理表名;METADATA\x20填数据集编码与用途)\x0a\x20*\x20[调用\x20BF]\x20无(如有调用,填写脚本名称与用途)\x0a\x20*\x20[执行\x20SQL]\x20无(如有执行,填写\x20SQL\x20名称与用途)\x0a\x20*\x20[副作用]\x20无(如有通知或外部调用,说明影响与失败策略)','isInteger','Trigger\x20node\x20(HOOK\x20only)','170BvuZGm','Function\x20name\x20(valid\x20JS\x20identifier)','/ENDPOINT/','.js','apiDir'];a36_0x3b23=function(){return _0x4484cc;};return a36_0x3b23();}import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{fileExists}from'../../core/bff/file-system.js';import{DEFAULT_BFF_SCRIPT_DESCRIPTION,isValidBffFunctionName,normalizeHookFunctionNode}from'../../core/bff/utils.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{getAppBaseUrl}from'../../constant/domain.js';export const bffCreate={'service':a36_0x80de2c(0xa4),'command':'create','description':'Scaffold\x20a\x20new\x20Backend\x20Function\x20script\x20from\x20template','risk':'read','flags':[{'name':a36_0x80de2c(0x102),'type':'string','required':!![],'enum':[a36_0x80de2c(0xf0),a36_0x80de2c(0xeb),a36_0x80de2c(0xc0)],'description':a36_0x80de2c(0xe2)},{'name':a36_0x80de2c(0xf3),'type':a36_0x80de2c(0xce),'required':!![],'description':a36_0x80de2c(0xd9)},{'name':a36_0x80de2c(0xb9),'type':a36_0x80de2c(0xce),'description':a36_0x80de2c(0xa0)},{'name':a36_0x80de2c(0xb7),'type':a36_0x80de2c(0xce),'description':'Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)'},{'name':a36_0x80de2c(0xac),'type':a36_0x80de2c(0xce),'description':a36_0x80de2c(0xf4)},{'name':a36_0x80de2c(0xc7),'type':'string','description':'Operation\x20type\x20(HOOK\x20only)'},{'name':a36_0x80de2c(0x101),'type':a36_0x80de2c(0xce),'description':a36_0x80de2c(0xd7),'enum':[a36_0x80de2c(0xc8),a36_0x80de2c(0xfa)]}],async 'validate'(_0x2f9d41){const _0x182287=a36_0x80de2c,_0x3bf7d8=_0x2f9d41[_0x182287(0xfd)]('name');if(!isValidBffFunctionName(_0x3bf7d8))throw CliErrors['validation'](_0x182287(0xe9)+_0x3bf7d8+_0x182287(0xe8));},async 'execute'(_0x40ad02){const _0x1c3273=a36_0x80de2c,_0x374a7c=loadBffProjectConfig(_0x40ad02[_0x1c3273(0x9d)]),_0x494d9a=_0x40ad02['str'](_0x1c3273(0x102)),_0x3dd726=_0x40ad02[_0x1c3273(0xfd)](_0x1c3273(0xf3)),_0x4ce449=_0x40ad02['str'](_0x1c3273(0xb9))||undefined,_0x1bfa90=_0x494d9a===_0x1c3273(0xc0)?await resolveHookOptions(_0x374a7c,_0x40ad02):undefined,_0x7a3ed3=buildFilePath(_0x374a7c,_0x494d9a,_0x3dd726,_0x1bfa90);if(await fileExists(_0x7a3ed3))throw CliErrors[_0x1c3273(0xcb)](_0x1c3273(0xf5)+_0x7a3ed3);await mkdir(dirname(_0x7a3ed3),{'recursive':!![]});const _0x348391=generateTemplate(_0x494d9a,_0x3dd726,_0x40ad02[_0x1c3273(0x9d)],_0x4ce449,_0x1bfa90);await writeFile(_0x7a3ed3,_0x348391,_0x1c3273(0xdd));const _0x59c981={'type':_0x494d9a,'name':_0x3dd726,'path':_0x7a3ed3};if(_0x4ce449)_0x59c981[_0x1c3273(0xb9)]=_0x4ce449;if(_0x1bfa90){if(_0x1bfa90[_0x1c3273(0xb7)])_0x59c981[_0x1c3273(0xb7)]=_0x1bfa90[_0x1c3273(0xb7)];_0x59c981[_0x1c3273(0xea)]=_0x1bfa90[_0x1c3273(0xea)],_0x59c981['operationType']=_0x1bfa90[_0x1c3273(0xbb)],_0x59c981[_0x1c3273(0xc4)]=_0x1bfa90[_0x1c3273(0xc4)];}return{'ok':!![],'data':_0x59c981,'message':'Created\x20'+_0x494d9a+_0x1c3273(0xe1)+_0x3dd726};}};async function resolveHookOptions(_0x5d2eea,_0x550ae7){const _0x3607ce=a36_0x80de2c,_0x543f9d=resolveApiModelSource(_0x550ae7[_0x3607ce(0xdc)],_0x550ae7[_0x3607ce(0x9d)],_0x550ae7['selectedAppName']||_0x550ae7[_0x3607ce(0xfc)]?.['currentApp']||_0x550ae7[_0x3607ce(0xfc)]?.[_0x3607ce(0x9f)]),_0x19dcd7=loadAliasMap(_0x550ae7[_0x3607ce(0xdc)],undefined,_0x543f9d['filePath'],_0x543f9d[_0x3607ce(0xb2)]),_0x2f2f31=_0x19dcd7[_0x3607ce(0xbc)]>0x0;let _0x482a51,_0xba8bbe,_0xe8bf0c;const _0x1486aa=_0x550ae7[_0x3607ce(0xfd)]('alias'),_0x1fcfcd=_0x550ae7[_0x3607ce(0xfd)](_0x3607ce(0xac));if(_0x1486aa){const _0x4b7589=resolveAlias(_0x550ae7[_0x3607ce(0xdc)],_0x1486aa,undefined,_0x543f9d['filePath'],_0x543f9d[_0x3607ce(0xb2)]);if(!_0x4b7589){const _0x5357e1=_0x2f2f31?_0x3607ce(0xa7)+_0x19dcd7['map'](_0x9e1456=>_0x9e1456['alias'])['join'](',\x20'):_0x3607ce(0xa5)+CLI_BIN_NAME+_0x3607ce(0xc9);throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0xe4)+_0x1486aa+_0x3607ce(0xdf)+_0x5357e1);}_0x482a51=_0x1486aa,_0xba8bbe=_0x4b7589;}else{if(_0x1fcfcd){_0xba8bbe=_0x1fcfcd;const _0xd2f98a=_0x19dcd7['find'](_0x5cb899=>_0x5cb899['datasetCode']===_0x1fcfcd);_0x482a51=_0xd2f98a?.[_0x3607ce(0xb7)];}else{if(_0x550ae7[_0x3607ce(0xa3)])throw CliErrors[_0x3607ce(0xcb)]('--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');else{if(_0x2f2f31){const _0x2a4025=_0x19dcd7['map'](_0x22778c=>_0x22778c['alias']+'\x20('+_0x22778c[_0x3607ce(0xc5)]+')'),_0x410730=await promptSelect(_0x3607ce(0xa2),_0x2a4025),_0x38a68c=_0x19dcd7[_0x410730];if(!_0x38a68c)throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0xe5));_0x482a51=_0x38a68c[_0x3607ce(0xb7)],_0xba8bbe=_0x38a68c[_0x3607ce(0xea)];}else{const _0x4fca68=await listDatasets(_0x550ae7[_0x3607ce(0x9d)]);if(_0x4fca68[_0x3607ce(0xbc)]===0x0)throw CliErrors['validation'](_0x3607ce(0xd0));const _0x4338e4=_0x4fca68[_0x3607ce(0x103)](_0x35a749=>_0x35a749[_0x3607ce(0xf3)]+'\x20['+(_0x35a749[_0x3607ce(0x105)]??_0x3607ce(0xb4))+_0x3607ce(0xbf)+_0x35a749[_0x3607ce(0xf9)]+')'),_0x4571c3=await promptSelect(_0x3607ce(0xa2),_0x4338e4),_0x1a7774=_0x4fca68[_0x4571c3];if(!_0x1a7774)throw CliErrors['validation']('Invalid\x20dataset\x20selection.');_0xba8bbe=_0x1a7774[_0x3607ce(0xf9)],_0x482a51=undefined;}}}}const _0x10b38e=await listDatasets(_0x550ae7[_0x3607ce(0x9d)]),_0xd882a8=_0x10b38e['find'](_0x4db851=>_0x4db851[_0x3607ce(0xf9)]===_0xba8bbe);if(!_0xd882a8)throw CliErrors[_0x3607ce(0xcb)]('Dataset\x20not\x20found\x20for\x20code\x20\x22'+_0xba8bbe+_0x3607ce(0xef)+(_0x482a51?'The\x20generated\x20model\x20facts\x20may\x20be\x20stale\x20—\x20run\x20`'+CLI_BIN_NAME+'\x20api\x20pull`\x20to\x20refresh.':''));_0xe8bf0c=_0xd882a8['id'];const _0x2c0b3a=_0x482a51??_0xba8bbe,_0x3ac5bb=await listBffDatasetOperations(_0x550ae7[_0x3607ce(0x9d)],_0xe8bf0c),_0x1b191=_0x3ac5bb?Object[_0x3607ce(0xcc)](_0x3ac5bb):[];if(_0x1b191[_0x3607ce(0xbc)]===0x0)throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0xad)+_0x2c0b3a+'.');let _0x7812be;const _0x61a120=_0x550ae7['str'](_0x3607ce(0xc7));if(_0x61a120){if(!_0x1b191[_0x3607ce(0xcd)](_0x61a120))throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0xf1)+_0x61a120+'\x22\x20not\x20found\x20for\x20dataset\x20'+_0x2c0b3a+'.\x20'+(_0x3607ce(0xc3)+_0x1b191[_0x3607ce(0xbd)](',\x20')));_0x7812be=_0x61a120;}else{if(_0x550ae7['nonInteractive'])throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0x9e));const _0x28bf62=await promptSelect(_0x3607ce(0xe6),_0x1b191);_0x7812be=_0x1b191[_0x28bf62]??_0x1b191[0x0];}let _0x302035=normalizeHookFunctionNode(_0x550ae7[_0x3607ce(0xfd)](_0x3607ce(0x101)));if(!_0x302035){if(_0x550ae7[_0x3607ce(0xfd)](_0x3607ce(0x101)))throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0xa6));if(_0x550ae7['nonInteractive'])throw CliErrors[_0x3607ce(0xcb)](_0x3607ce(0xde));const _0xd2d4d8=await promptSelect(_0x3607ce(0xb5),[_0x3607ce(0xc8),_0x3607ce(0xfa)]);_0x302035=['before','after'][_0xd2d4d8]??_0x3607ce(0xc8);}return{'alias':_0x482a51,'datasetCode':_0xba8bbe,'datasetId':_0xe8bf0c,'operationType':_0x7812be,'functionNode':_0x302035};}async function promptSelect(_0x564838,_0x5686fb){const _0x5df207=a36_0x80de2c;if(_0x5686fb[_0x5df207(0xbc)]===0x1)return 0x0;for(const [_0x210c68,_0x21dc8b]of _0x5686fb['entries']()){process['stderr'][_0x5df207(0xfe)]('\x20\x20'+(_0x210c68+0x1)+'.\x20'+_0x21dc8b+'\x0a');}const _0x64626d=createInterface({'input':process[_0x5df207(0xd4)],'output':process[_0x5df207(0xc6)]});while(!![]){const _0x43e36e=await new Promise(_0x13cb20=>{const _0xc5f1ee=_0x5df207;_0x64626d[_0xc5f1ee(0xf2)](_0x564838+'\x20',_0x13cb20);}),_0x5033a7=Number[_0x5df207(0x100)](_0x43e36e[_0x5df207(0xee)](),0xa);if(Number[_0x5df207(0xd6)](_0x5033a7)&&_0x5033a7>=0x1&&_0x5033a7<=_0x5686fb['length'])return _0x64626d['close'](),_0x5033a7-0x1;process[_0x5df207(0xc6)][_0x5df207(0xfe)](_0x5df207(0xa8)+_0x5686fb['length']+'.\x0a');}}function buildFilePath(_0x1a0282,_0x17f3c4,_0x4c6a97,_0x3e1cc3){const _0x3fd55e=a36_0x80de2c;if(_0x17f3c4===_0x3fd55e(0xc0)){if(!_0x3e1cc3)throw CliErrors['validation'](_0x3fd55e(0xfb));const _0x4ab517=_0x3e1cc3[_0x3fd55e(0xb7)]??_0x3e1cc3[_0x3fd55e(0xea)];return join(_0x1a0282[_0x3fd55e(0xba)],'HOOK',_0x4ab517,_0x3e1cc3['operationType'],_0x3e1cc3['functionNode'],_0x4c6a97+_0x3fd55e(0xdb));}return join(_0x1a0282['scriptsRootDir'],_0x17f3c4,_0x4c6a97+_0x3fd55e(0xdb));}export function generateTemplate(_0x5446ba,_0x40acd6,_0x29ef5b,_0x16a055,_0x590fc6){const _0x4acb09=a36_0x80de2c,_0x2b58ea=_0x16a055?.[_0x4acb09(0xee)]()||DEFAULT_BFF_SCRIPT_DESCRIPTION,_0x36e89c=getAppBaseUrl(_0x29ef5b),_0x5778c3=_0x4acb09(0xd5);if(_0x5446ba===_0x4acb09(0xf0))return _0x4acb09(0xc2)+_0x2b58ea+_0x4acb09(0xec)+_0x40acd6+_0x4acb09(0xab)+_0x36e89c+_0x4acb09(0xd1)+_0x29ef5b+_0x4acb09(0xa1)+_0x40acd6+'.js\x0a\x20*\x20[调用方式]\x20context.client.bff.execute({\x20scriptName:\x20\x22'+_0x40acd6+'\x22,\x20params\x20})\x0a'+_0x5778c3+'\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20请求参数\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20TODO:\x20补充返回数据结构\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20'+_0x40acd6+_0x4acb09(0xb8);if(_0x5446ba===_0x4acb09(0xeb))return _0x4acb09(0xc2)+_0x2b58ea+'\x0a\x20*\x0a\x20*\x20[脚本类型]\x20ENDPOINT\x0a\x20*\x20[脚本名称]\x20'+_0x40acd6+_0x4acb09(0xd3)+_0x29ef5b+'/'+_0x40acd6+_0x4acb09(0xab)+_0x36e89c+_0x4acb09(0xd1)+_0x29ef5b+_0x4acb09(0xda)+_0x40acd6+_0x4acb09(0xbe)+_0x5778c3+_0x4acb09(0xe0)+_0x40acd6+'(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a';if(!_0x590fc6)throw CliErrors[_0x4acb09(0xcb)]('HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.');const _0x1a3fb3=_0x590fc6[_0x4acb09(0xb7)]??_0x590fc6[_0x4acb09(0xea)],_0x18a069=_0x590fc6['functionNode']===_0x4acb09(0xc8)?_0x4acb09(0xb3):_0x4acb09(0xff),_0x1f1040=_0x590fc6[_0x4acb09(0xc4)]===_0x4acb09(0xc8)?'修改后的请求参数':_0x4acb09(0xf8);return _0x4acb09(0xc2)+_0x2b58ea+_0x4acb09(0xcf)+_0x40acd6+'\x0a\x20*\x20[接口路径]\x20POST\x20/api/'+_0x29ef5b+'/'+_0x590fc6['datasetCode']+'/'+_0x590fc6[_0x4acb09(0xbb)]+'\x0a\x20*\x20[平台配置]\x20'+_0x36e89c+_0x4acb09(0xaf)+_0x590fc6[_0x4acb09(0xd2)]+'#api-list\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/'+_0x29ef5b+_0x4acb09(0xf6)+_0x1a3fb3+'/'+_0x590fc6[_0x4acb09(0xbb)]+'/'+_0x590fc6[_0x4acb09(0xc4)]+'/'+_0x40acd6+_0x4acb09(0xae)+_0x590fc6[_0x4acb09(0xc4)]+'\x0a'+_0x5778c3+_0x4acb09(0xb0)+_0x18a069+_0x4acb09(0xe7)+_0x1f1040+_0x4acb09(0xb6)+_0x40acd6+'(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a';}
@@ -1 +1 @@
1
- function a37_0x1764(){const _0x54873b=['Function\x20not\x20found:\x20','remoteId','scriptsRoot','high-risk-write','includes','trashedTo','1582pizaiU','find','stringify','6739182LUXUId','Would\x20delete\x20','map','No\x20lock\x20entry\x20found\x20for\x20\x22','1158SHtKvE','Deleted\x20','appCode','Lock\x20scope\x20for\x20app\x20\x22','lockFilePath','/api/management/library/scripts/delete','apps','trashDir','Backend\x20Function\x20lock\x20file\x20not\x20found.','validation','replace','keys','scriptsRootDir','toISOString','string','delete','Multiple\x20functions\x20match\x20\x22','Delete\x20a\x20Backend\x20Function\x20script\x20from\x20remote\x20and\x20local','functions','POST','parse','target','\x20\x20-\x20','1549952FwBTLz','\x22\x20not\x20found\x20after\x20ensureLockScope.','\x20(local\x20file\x20moved\x20to\x20trash)','Backend\x20Function\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','str','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a','2308NEJcAO','lastSync','split','filter','projectRoot','bff','217473IrBShA','Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name','1137330POswbv','1398MPjaym','length','Local\x20delete\x20not\x20settled\x20for\x20','89320dLtkRc'];a37_0x1764=function(){return _0x54873b;};return a37_0x1764();}const a37_0x50eb36=a37_0x598d;function a37_0x598d(_0x4557d3,_0x5d3612){_0x4557d3=_0x4557d3-0x1c9;const _0x1764bd=a37_0x1764();let _0x598d09=_0x1764bd[_0x4557d3];return _0x598d09;}(function(_0x1e82d7,_0x452c59){const _0x4001f5=a37_0x598d,_0x5f0864=_0x1e82d7();while(!![]){try{const _0x29618e=parseInt(_0x4001f5(0x1f3))/0x1+-parseInt(_0x4001f5(0x1f9))/0x2+parseInt(_0x4001f5(0x1cf))/0x3*(parseInt(_0x4001f5(0x1ed))/0x4)+parseInt(_0x4001f5(0x1f5))/0x5+-parseInt(_0x4001f5(0x1f6))/0x6*(-parseInt(_0x4001f5(0x200))/0x7)+parseInt(_0x4001f5(0x1e6))/0x8+-parseInt(_0x4001f5(0x1cb))/0x9;if(_0x29618e===_0x452c59)break;else _0x5f0864['push'](_0x5f0864['shift']());}catch(_0x54b1a2){_0x5f0864['push'](_0x5f0864['shift']());}}}(a37_0x1764,0x1d71d));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':a37_0x50eb36(0x1f2),'command':a37_0x50eb36(0x1de),'description':a37_0x50eb36(0x1e0),'risk':a37_0x50eb36(0x1fd),'flags':[{'name':'target','type':a37_0x50eb36(0x1dd),'required':!![],'description':a37_0x50eb36(0x1f4)}],async 'validate'(_0x37d926){const _0x2da553=a37_0x50eb36,_0x521247=loadBffProjectConfig(_0x37d926[_0x2da553(0x1d1)]),_0x404a19=await readBffLockFile(_0x521247[_0x2da553(0x1d3)]);if(!_0x404a19)throw CliErrors['validation'](_0x2da553(0x1e9));},async 'dryRun'(_0x402e52){const _0x4b3390=a37_0x50eb36,_0x256eff=loadBffProjectConfig(_0x402e52[_0x4b3390(0x1d1)]),_0x3dc1b5=await readBffLockFile(_0x256eff[_0x4b3390(0x1d3)]);if(!_0x3dc1b5)throw CliErrors['validation'](_0x4b3390(0x1d7));const {appLock:_0x11cb78}=ensureLockScope(_0x3dc1b5,_0x402e52[_0x4b3390(0x1d1)],_0x256eff['scriptsRoot'],_0x4b3390(0x1de)),_0x420e0f=_0x402e52[_0x4b3390(0x1ea)](_0x4b3390(0x1e4)),_0xc465a2=Object['keys'](_0x11cb78[_0x4b3390(0x1e1)]),_0x42f67e=resolveDeleteTarget(_0x420e0f,_0xc465a2),_0x5138db=_0x11cb78[_0x4b3390(0x1e1)][_0x42f67e];if(!_0x5138db)throw CliErrors[_0x4b3390(0x1d8)](_0x4b3390(0x1ce)+_0x42f67e+'\x22.');const _0x19818f=resolveLocalFilePathFromLockKey(_0x256eff,_0x42f67e),_0x15db0a=relative(_0x256eff['projectRoot'],_0x19818f),_0x2e4438=join(_0x256eff[_0x4b3390(0x1d6)],'<timestamp>',_0x15db0a);return{'method':_0x4b3390(0x1e2),'url':_0x4b3390(0x1d4),'body':{'appCode':_0x402e52[_0x4b3390(0x1d1)],'target':_0x42f67e,'remoteId':_0x5138db['remoteId'],'localFilePath':_0x19818f,'trashedPath':_0x2e4438},'description':_0x4b3390(0x1cc)+_0x42f67e+_0x4b3390(0x1eb)};},async 'execute'(_0x2753b1){const _0x3055fa=a37_0x50eb36,_0x23dd6c=loadBffProjectConfig(_0x2753b1['appCode']),_0x54bc45=await readBffLockFile(_0x23dd6c[_0x3055fa(0x1d3)]);if(!_0x54bc45)throw CliErrors[_0x3055fa(0x1d8)](_0x3055fa(0x1d7));const {lockData:_0x5ef65c,appLock:_0x14ff25}=ensureLockScope(_0x54bc45,_0x2753b1['appCode'],_0x23dd6c[_0x3055fa(0x1fc)],_0x3055fa(0x1de)),_0x5ba018=JSON[_0x3055fa(0x1e3)](JSON[_0x3055fa(0x1ca)](_0x5ef65c)),_0x56dbe4=_0x5ba018['apps'][_0x2753b1[_0x3055fa(0x1d1)]];if(!_0x56dbe4)throw new Error(_0x3055fa(0x1d2)+_0x2753b1[_0x3055fa(0x1d1)]+_0x3055fa(0x1e7));const _0x479c5f=_0x2753b1[_0x3055fa(0x1ea)](_0x3055fa(0x1e4)),_0x458c20=Object[_0x3055fa(0x1da)](_0x56dbe4['functions']),_0x3240f3=resolveDeleteTarget(_0x479c5f,_0x458c20),_0x15dcf6=_0x56dbe4['functions'][_0x3240f3];if(!_0x15dcf6)throw CliErrors[_0x3055fa(0x1d8)](_0x3055fa(0x1ce)+_0x3240f3+'\x22.');await deleteBffScript(_0x15dcf6['remoteId']),delete _0x56dbe4[_0x3055fa(0x1e1)][_0x3240f3],_0x56dbe4[_0x3055fa(0x1ee)]=new Date()['toISOString'](),await writeBffLockFile(_0x23dd6c['lockFilePath'],_0x5ba018);const _0x3ee12a=resolveLocalFilePathFromLockKey(_0x23dd6c,_0x3240f3);let _0x1d8a41;await fileExists(_0x3ee12a)&&(_0x1d8a41=await moveToTrash(_0x23dd6c[_0x3055fa(0x1f1)],_0x23dd6c['trashDir'],_0x3ee12a),await cleanupEmptyDirectories(dirname(_0x3ee12a),_0x23dd6c[_0x3055fa(0x1db)]));await waitForDeleteSettlement(_0x23dd6c[_0x3055fa(0x1d3)],_0x2753b1[_0x3055fa(0x1d1)],_0x3240f3,_0x3ee12a),await sleep(0x96);const _0x911190={'deleted':_0x3240f3,'remoteId':_0x15dcf6[_0x3055fa(0x1fb)]};if(_0x1d8a41)_0x911190[_0x3055fa(0x1ff)]=_0x1d8a41;return{'ok':!![],'data':_0x911190,'message':_0x3055fa(0x1d0)+_0x3240f3+(_0x1d8a41?_0x3055fa(0x1e8):'')};}};function resolveDeleteTarget(_0x3adb19,_0x404418){const _0x5dc50a=a37_0x50eb36;if(_0x3adb19[_0x5dc50a(0x1fe)]('/')){const _0x4ddc3d=_0x404418[_0x5dc50a(0x1c9)](_0x3cb548=>_0x3cb548===_0x3adb19);if(!_0x4ddc3d)throw CliErrors[_0x5dc50a(0x1d8)](_0x5dc50a(0x1fa)+_0x3adb19);return _0x4ddc3d;}const _0x45c6df=_0x404418[_0x5dc50a(0x1f0)](_0x327993=>_0x327993[_0x5dc50a(0x1ef)]('/')['at'](-0x1)===_0x3adb19);if(_0x45c6df[_0x5dc50a(0x1f7)]===0x0)throw CliErrors[_0x5dc50a(0x1d8)](_0x5dc50a(0x1fa)+_0x3adb19);if(_0x45c6df[_0x5dc50a(0x1f7)]>0x1)throw CliErrors[_0x5dc50a(0x1d8)](_0x5dc50a(0x1df)+_0x3adb19+_0x5dc50a(0x1ec)+_0x45c6df[_0x5dc50a(0x1cd)](_0x18312d=>_0x5dc50a(0x1e5)+_0x18312d)['join']('\x0a'));return _0x45c6df[0x0];}async function moveToTrash(_0x106a8e,_0x3ac8a5,_0x35e0e8){const _0x19af8d=a37_0x50eb36,_0x3b2ba6=new Date()[_0x19af8d(0x1dc)]()[_0x19af8d(0x1d9)](/[:.]/g,'-'),_0x1aec86=relative(_0x106a8e,_0x35e0e8),_0x31bf97=join(_0x3ac8a5,_0x3b2ba6,_0x1aec86);return await mkdir(dirname(_0x31bf97),{'recursive':!![]}),await rename(_0x35e0e8,_0x31bf97),_0x31bf97;}async function cleanupEmptyDirectories(_0x545ed3,_0x204837){const _0x1100f6=a37_0x50eb36;let _0x546155=resolve(_0x545ed3);const _0x1b8cea=resolve(_0x204837);while(_0x546155['startsWith'](''+_0x1b8cea+sep)||_0x546155===_0x1b8cea){if(_0x546155===_0x1b8cea)return;try{const _0x3b879a=await readdir(_0x546155);if(_0x3b879a[_0x1100f6(0x1f7)]>0x0)return;await rmdir(_0x546155);}catch{return;}_0x546155=dirname(_0x546155);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;async function waitForDeleteSettlement(_0x11500f,_0x5b03d0,_0x27950e,_0x1d6089){const _0x5511c1=a37_0x50eb36;for(let _0x3d6fb6=0x0;_0x3d6fb6<DELETE_SETTLE_RETRY_COUNT;_0x3d6fb6+=0x1){const _0x5311be=await readBffLockFile(_0x11500f),_0x4577a7=!!_0x5311be?.[_0x5511c1(0x1d5)]?.[_0x5b03d0]?.[_0x5511c1(0x1e1)]?.[_0x27950e],_0x432f2c=await fileExists(_0x1d6089);if(!_0x4577a7&&!_0x432f2c)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error(_0x5511c1(0x1f8)+_0x27950e+'.');}
1
+ const a37_0x2b0e0d=a37_0x488c;(function(_0x5c28c4,_0x1ca73a){const _0x2cb86c=a37_0x488c,_0x1cf871=_0x5c28c4();while(!![]){try{const _0x486e40=parseInt(_0x2cb86c(0x87))/0x1+-parseInt(_0x2cb86c(0xa6))/0x2*(-parseInt(_0x2cb86c(0xb3))/0x3)+-parseInt(_0x2cb86c(0xb5))/0x4*(-parseInt(_0x2cb86c(0xb8))/0x5)+-parseInt(_0x2cb86c(0xa9))/0x6*(-parseInt(_0x2cb86c(0x9e))/0x7)+parseInt(_0x2cb86c(0xa2))/0x8*(parseInt(_0x2cb86c(0x91))/0x9)+-parseInt(_0x2cb86c(0x8f))/0xa*(parseInt(_0x2cb86c(0xa1))/0xb)+parseInt(_0x2cb86c(0xb4))/0xc*(-parseInt(_0x2cb86c(0x94))/0xd);if(_0x486e40===_0x1ca73a)break;else _0x1cf871['push'](_0x1cf871['shift']());}catch(_0x16d979){_0x1cf871['push'](_0x1cf871['shift']());}}}(a37_0x1275,0xe2333));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a37_0x1275(){const _0x124c90=['4pLeJdK','parse','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','8446035wRIxDr','Backend\x20Function\x20lock\x20file\x20not\x20found.','scriptsRoot','length','projectRoot','join','1382490oGAPLy','replace','keys','No\x20lock\x20entry\x20found\x20for\x20\x22','/api/management/library/scripts/delete','map','Backend\x20Function\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','stringify','3166970yUSImO','str','27xiCjoy','includes','<timestamp>','13NdcWcV','remoteId','Would\x20delete\x20','find','appCode','validation','toISOString','delete','target','Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name','6343190XGmmoS','Function\x20not\x20found:\x20','functions','22OSEAlL','2505136eYBYIm','\x20\x20-\x20','high-risk-write','\x20(local\x20file\x20moved\x20to\x20trash)','542830KFwVUm','Lock\x20scope\x20for\x20app\x20\x22','bff','6QIubBN','split','Deleted\x20','trashDir','Local\x20delete\x20not\x20settled\x20for\x20','string','startsWith','apps','lockFilePath','\x22\x20not\x20found\x20after\x20ensureLockScope.','3MhHsFG','43545588NNsyrJ'];a37_0x1275=function(){return _0x124c90;};return a37_0x1275();}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':a37_0x2b0e0d(0xa8),'command':a37_0x2b0e0d(0x9b),'description':'Delete\x20a\x20Backend\x20Function\x20script\x20from\x20remote\x20and\x20local','risk':a37_0x2b0e0d(0xa4),'flags':[{'name':a37_0x2b0e0d(0x9c),'type':a37_0x2b0e0d(0xae),'required':!![],'description':a37_0x2b0e0d(0x9d)}],async 'validate'(_0x348a44){const _0x3830df=a37_0x2b0e0d,_0x442ecd=loadBffProjectConfig(_0x348a44[_0x3830df(0x98)]),_0x4ea009=await readBffLockFile(_0x442ecd[_0x3830df(0xb1)]);if(!_0x4ea009)throw CliErrors[_0x3830df(0x99)](_0x3830df(0x8d));},async 'dryRun'(_0x35b03b){const _0x341480=a37_0x2b0e0d,_0x188aa1=loadBffProjectConfig(_0x35b03b['appCode']),_0x4a8c2f=await readBffLockFile(_0x188aa1[_0x341480(0xb1)]);if(!_0x4a8c2f)throw CliErrors['validation']('Backend\x20Function\x20lock\x20file\x20not\x20found.');const {appLock:_0x230e67}=ensureLockScope(_0x4a8c2f,_0x35b03b['appCode'],_0x188aa1[_0x341480(0xba)],'delete'),_0x46951f=_0x35b03b[_0x341480(0x90)](_0x341480(0x9c)),_0x14ab2a=Object[_0x341480(0x89)](_0x230e67[_0x341480(0xa0)]),_0x3c63e1=resolveDeleteTarget(_0x46951f,_0x14ab2a),_0x1f8632=_0x230e67['functions'][_0x3c63e1];if(!_0x1f8632)throw CliErrors[_0x341480(0x99)](_0x341480(0x8a)+_0x3c63e1+'\x22.');const _0x14236f=resolveLocalFilePathFromLockKey(_0x188aa1,_0x3c63e1),_0x545658=relative(_0x188aa1[_0x341480(0x85)],_0x14236f),_0x443d44=join(_0x188aa1[_0x341480(0xac)],_0x341480(0x93),_0x545658);return{'method':'POST','url':_0x341480(0x8b),'body':{'appCode':_0x35b03b[_0x341480(0x98)],'target':_0x3c63e1,'remoteId':_0x1f8632[_0x341480(0x95)],'localFilePath':_0x14236f,'trashedPath':_0x443d44},'description':_0x341480(0x96)+_0x3c63e1+_0x341480(0xb7)};},async 'execute'(_0x319ed5){const _0x197c47=a37_0x2b0e0d,_0x412e1b=loadBffProjectConfig(_0x319ed5['appCode']),_0x423644=await readBffLockFile(_0x412e1b['lockFilePath']);if(!_0x423644)throw CliErrors[_0x197c47(0x99)](_0x197c47(0xb9));const {lockData:_0x5751f2,appLock:_0x262bab}=ensureLockScope(_0x423644,_0x319ed5[_0x197c47(0x98)],_0x412e1b[_0x197c47(0xba)],_0x197c47(0x9b)),_0x1bc088=JSON[_0x197c47(0xb6)](JSON[_0x197c47(0x8e)](_0x5751f2)),_0x25b528=_0x1bc088[_0x197c47(0xb0)][_0x319ed5[_0x197c47(0x98)]];if(!_0x25b528)throw new Error(_0x197c47(0xa7)+_0x319ed5[_0x197c47(0x98)]+_0x197c47(0xb2));const _0x1e08e8=_0x319ed5[_0x197c47(0x90)]('target'),_0x5d46c9=Object[_0x197c47(0x89)](_0x25b528[_0x197c47(0xa0)]),_0x4a9363=resolveDeleteTarget(_0x1e08e8,_0x5d46c9),_0x20960f=_0x25b528[_0x197c47(0xa0)][_0x4a9363];if(!_0x20960f)throw CliErrors[_0x197c47(0x99)](_0x197c47(0x8a)+_0x4a9363+'\x22.');await deleteBffScript(_0x20960f[_0x197c47(0x95)]),delete _0x25b528['functions'][_0x4a9363],_0x25b528['lastSync']=new Date()[_0x197c47(0x9a)](),await writeBffLockFile(_0x412e1b['lockFilePath'],_0x1bc088);const _0x5c8433=resolveLocalFilePathFromLockKey(_0x412e1b,_0x4a9363);let _0x113790;await fileExists(_0x5c8433)&&(_0x113790=await moveToTrash(_0x412e1b[_0x197c47(0x85)],_0x412e1b['trashDir'],_0x5c8433),await cleanupEmptyDirectories(dirname(_0x5c8433),_0x412e1b['scriptsRootDir']));await waitForDeleteSettlement(_0x412e1b['lockFilePath'],_0x319ed5[_0x197c47(0x98)],_0x4a9363,_0x5c8433),await sleep(0x96);const _0x3ff7b2={'deleted':_0x4a9363,'remoteId':_0x20960f[_0x197c47(0x95)]};if(_0x113790)_0x3ff7b2['trashedTo']=_0x113790;return{'ok':!![],'data':_0x3ff7b2,'message':_0x197c47(0xab)+_0x4a9363+(_0x113790?_0x197c47(0xa5):'')};}};function resolveDeleteTarget(_0x3f1872,_0x4bd09d){const _0x85ee12=a37_0x2b0e0d;if(_0x3f1872[_0x85ee12(0x92)]('/')){const _0x3aa3a9=_0x4bd09d[_0x85ee12(0x97)](_0x88b72d=>_0x88b72d===_0x3f1872);if(!_0x3aa3a9)throw CliErrors[_0x85ee12(0x99)]('Function\x20not\x20found:\x20'+_0x3f1872);return _0x3aa3a9;}const _0x1a61e4=_0x4bd09d['filter'](_0x103cdf=>_0x103cdf[_0x85ee12(0xaa)]('/')['at'](-0x1)===_0x3f1872);if(_0x1a61e4[_0x85ee12(0x84)]===0x0)throw CliErrors[_0x85ee12(0x99)](_0x85ee12(0x9f)+_0x3f1872);if(_0x1a61e4[_0x85ee12(0x84)]>0x1)throw CliErrors[_0x85ee12(0x99)]('Multiple\x20functions\x20match\x20\x22'+_0x3f1872+'\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a'+_0x1a61e4[_0x85ee12(0x8c)](_0x32a30b=>_0x85ee12(0xa3)+_0x32a30b)[_0x85ee12(0x86)]('\x0a'));return _0x1a61e4[0x0];}function a37_0x488c(_0x67f3ed,_0x1a546e){_0x67f3ed=_0x67f3ed-0x84;const _0x1275ba=a37_0x1275();let _0x488ccd=_0x1275ba[_0x67f3ed];return _0x488ccd;}async function moveToTrash(_0x242082,_0x59fcc9,_0x3cffba){const _0x4e262f=a37_0x2b0e0d,_0x2fc3d2=new Date()[_0x4e262f(0x9a)]()[_0x4e262f(0x88)](/[:.]/g,'-'),_0x18dd1b=relative(_0x242082,_0x3cffba),_0x17281a=join(_0x59fcc9,_0x2fc3d2,_0x18dd1b);return await mkdir(dirname(_0x17281a),{'recursive':!![]}),await rename(_0x3cffba,_0x17281a),_0x17281a;}async function cleanupEmptyDirectories(_0x5b33e7,_0x33c0e1){const _0x32d9d2=a37_0x2b0e0d;let _0x10253d=resolve(_0x5b33e7);const _0x514cc0=resolve(_0x33c0e1);while(_0x10253d[_0x32d9d2(0xaf)](''+_0x514cc0+sep)||_0x10253d===_0x514cc0){if(_0x10253d===_0x514cc0)return;try{const _0x333dd4=await readdir(_0x10253d);if(_0x333dd4['length']>0x0)return;await rmdir(_0x10253d);}catch{return;}_0x10253d=dirname(_0x10253d);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;async function waitForDeleteSettlement(_0x56f90e,_0x302ccf,_0xe0979a,_0x4dba71){const _0x28aa71=a37_0x2b0e0d;for(let _0x54548d=0x0;_0x54548d<DELETE_SETTLE_RETRY_COUNT;_0x54548d+=0x1){const _0x2ae93c=await readBffLockFile(_0x56f90e),_0x46796e=!!_0x2ae93c?.[_0x28aa71(0xb0)]?.[_0x302ccf]?.[_0x28aa71(0xa0)]?.[_0xe0979a],_0x1c6967=await fileExists(_0x4dba71);if(!_0x46796e&&!_0x1c6967)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error(_0x28aa71(0xad)+_0xe0979a+'.');}
@@ -1 +1 @@
1
- const a38_0x532ca5=a38_0xed54;(function(_0x4140b2,_0x3e7ad2){const _0x4dd535=a38_0xed54,_0x3375bb=_0x4140b2();while(!![]){try{const _0x4c8f9b=-parseInt(_0x4dd535(0xd6))/0x1+-parseInt(_0x4dd535(0xe1))/0x2*(parseInt(_0x4dd535(0xde))/0x3)+parseInt(_0x4dd535(0xcb))/0x4+parseInt(_0x4dd535(0xd2))/0x5*(parseInt(_0x4dd535(0xd0))/0x6)+parseInt(_0x4dd535(0xcc))/0x7+parseInt(_0x4dd535(0xcd))/0x8+-parseInt(_0x4dd535(0xd3))/0x9*(-parseInt(_0x4dd535(0xd7))/0xa);if(_0x4c8f9b===_0x3e7ad2)break;else _0x3375bb['push'](_0x3375bb['shift']());}catch(_0x22dcfe){_0x3375bb['push'](_0x3375bb['shift']());}}}(a38_0x56da,0xc8e8b));function a38_0x56da(){const _0x3eea1d=['138BBOeEg','number','21960fyQrfk','9wQoaPL','version','scriptContent','1519826xhNbrP','1213780zKFgqf','num','detail','read','(none)','description','verbose','4863yveBzZ','bff','scriptType','278UeVhRE','boolean','createdTime','functionName','updateUserName','132616FdTzDo','5663364KVTULt','12027744mRuwof','bool','Get\x20Backend\x20Function\x20script\x20details\x20by\x20ID'];a38_0x56da=function(){return _0x3eea1d;};return a38_0x56da();}import{getBffScriptInfo}from'../../core/api-client.js';function a38_0xed54(_0x1c079a,_0x5719ec){_0x1c079a=_0x1c079a-0xca;const _0x56da61=a38_0x56da();let _0xed5456=_0x56da61[_0x1c079a];return _0xed5456;}export const bffDetail={'service':a38_0x532ca5(0xdf),'command':a38_0x532ca5(0xd9),'description':a38_0x532ca5(0xcf),'risk':a38_0x532ca5(0xda),'flags':[{'name':'id','type':a38_0x532ca5(0xd1),'required':!![],'description':'Script\x20ID'},{'name':a38_0x532ca5(0xdd),'type':a38_0x532ca5(0xe2),'description':'Return\x20full\x20raw\x20script\x20object'}],async 'execute'(_0x4bbe9f){const _0x11d936=a38_0x532ca5,_0x4525eb=await getBffScriptInfo(_0x4bbe9f[_0x11d936(0xd8)]('id')),_0x21ddda=_0x4bbe9f[_0x11d936(0xce)]('verbose');if(_0x21ddda)return{'ok':!![],'data':_0x4525eb};return{'ok':!![],'data':{'id':_0x4525eb['id'],'functionName':_0x4525eb[_0x11d936(0xe4)]??'','version':_0x4525eb[_0x11d936(0xd4)]??'','updateUserName':_0x4525eb[_0x11d936(0xca)]??'','appCode':_0x4525eb['appCode'],'scriptType':_0x4525eb[_0x11d936(0xe0)],'description':_0x4525eb[_0x11d936(0xdc)]||_0x11d936(0xdb),'createdTime':_0x4525eb[_0x11d936(0xe3)]??'','updatedTime':_0x4525eb['updatedTime']??'','scriptContent':_0x4525eb[_0x11d936(0xd5)]??''}};}};
1
+ const a38_0x3c791f=a38_0xcf12;function a38_0xcf12(_0x345089,_0x50c047){_0x345089=_0x345089-0xf6;const _0x135e4d=a38_0x135e();let _0xcf12cb=_0x135e4d[_0x345089];return _0xcf12cb;}(function(_0x4ee615,_0xe4e22f){const _0xd9b6af=a38_0xcf12,_0x5713b9=_0x4ee615();while(!![]){try{const _0x53447a=-parseInt(_0xd9b6af(0x108))/0x1*(parseInt(_0xd9b6af(0xfa))/0x2)+parseInt(_0xd9b6af(0x110))/0x3*(parseInt(_0xd9b6af(0x111))/0x4)+-parseInt(_0xd9b6af(0xf7))/0x5*(parseInt(_0xd9b6af(0x10d))/0x6)+-parseInt(_0xd9b6af(0x101))/0x7*(parseInt(_0xd9b6af(0x10b))/0x8)+parseInt(_0xd9b6af(0x109))/0x9+parseInt(_0xd9b6af(0xff))/0xa*(parseInt(_0xd9b6af(0x107))/0xb)+parseInt(_0xd9b6af(0x103))/0xc;if(_0x53447a===_0xe4e22f)break;else _0x5713b9['push'](_0x5713b9['shift']());}catch(_0x56374d){_0x5713b9['push'](_0x5713b9['shift']());}}}(a38_0x135e,0x2fd74));import{getBffScriptInfo}from'../../core/api-client.js';export const bffDetail={'service':'bff','command':'detail','description':'Get\x20Backend\x20Function\x20script\x20details\x20by\x20ID','risk':a38_0x3c791f(0xfe),'flags':[{'name':'id','type':a38_0x3c791f(0xf9),'required':!![],'description':a38_0x3c791f(0x10f)},{'name':'verbose','type':a38_0x3c791f(0x104),'description':'Return\x20full\x20raw\x20script\x20object'}],async 'execute'(_0xcad2be){const _0x476b34=a38_0x3c791f,_0x1cf6db=await getBffScriptInfo(_0xcad2be[_0x476b34(0xfb)]('id')),_0x5cd881=_0xcad2be[_0x476b34(0xfd)](_0x476b34(0x10e));if(_0x5cd881)return{'ok':!![],'data':_0x1cf6db};return{'ok':!![],'data':{'id':_0x1cf6db['id'],'functionName':_0x1cf6db[_0x476b34(0xf8)]??'','version':_0x1cf6db[_0x476b34(0x105)]??'','updateUserName':_0x1cf6db[_0x476b34(0x100)]??'','appCode':_0x1cf6db[_0x476b34(0x10a)],'scriptType':_0x1cf6db[_0x476b34(0xf6)],'description':_0x1cf6db['description']||_0x476b34(0xfc),'createdTime':_0x1cf6db[_0x476b34(0x106)]??'','updatedTime':_0x1cf6db[_0x476b34(0x10c)]??'','scriptContent':_0x1cf6db[_0x476b34(0x102)]??''}};}};function a38_0x135e(){const _0x24c8cc=['(none)','bool','read','122530ohPFql','updateUserName','247653ReKeFK','scriptContent','5856924qyhlZW','boolean','version','createdTime','11whVOXK','48209aNCXBa','2925504pmwcBG','appCode','24PHViQQ','updatedTime','1150914eSqvHy','verbose','Script\x20ID','12363NRFFqK','192EPVidc','scriptType','10tyKxrI','functionName','number','14XmIQQC','num'];a38_0x135e=function(){return _0x24c8cc;};return a38_0x135e();}
@@ -1 +1 @@
1
- (function(_0x57379c,_0x6fb29b){const _0x200395=a39_0xf05b,_0x3cb6c=_0x57379c();while(!![]){try{const _0x45c120=parseInt(_0x200395(0xb7))/0x1+parseInt(_0x200395(0xba))/0x2*(-parseInt(_0x200395(0xbf))/0x3)+-parseInt(_0x200395(0xb8))/0x4*(-parseInt(_0x200395(0xc0))/0x5)+parseInt(_0x200395(0xbd))/0x6+parseInt(_0x200395(0xbc))/0x7+-parseInt(_0x200395(0xbb))/0x8+-parseInt(_0x200395(0xbe))/0x9*(parseInt(_0x200395(0xb9))/0xa);if(_0x45c120===_0x6fb29b)break;else _0x3cb6c['push'](_0x3cb6c['shift']());}catch(_0x52028a){_0x3cb6c['push'](_0x3cb6c['shift']());}}}(a39_0x1776,0x61097));import{bffList}from'../../commands/bff/list.js';function a39_0x1776(){const _0x295723=['2331822EoIwXs','5GRThzj','268805mYtqRb','3115516sXXtUH','11233070tNOobb','2PIWJtr','40560EjUwYt','5010852AjQXVv','3237564rVgKZs','9SueEqs'];a39_0x1776=function(){return _0x295723;};return a39_0x1776();}import{bffDetail}from'../../commands/bff/detail.js';function a39_0xf05b(_0x105fa1,_0x2162b1){_0x105fa1=_0x105fa1-0xb7;const _0x17769a=a39_0x1776();let _0xf05b48=_0x17769a[_0x105fa1];return _0xf05b48;}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';import{bffLogs}from'../../commands/bff/logs.js';export const bffDefinitions=[bffList,bffDetail,bffLogs,bffStatus,bffCreate,bffPush,bffPull,bffDelete];
1
+ (function(_0x50bae3,_0x46d665){const _0x4322af=a39_0x43bb,_0xef4b9d=_0x50bae3();while(!![]){try{const _0x3f5ac0=parseInt(_0x4322af(0x94))/0x1+parseInt(_0x4322af(0x95))/0x2+parseInt(_0x4322af(0x8f))/0x3*(parseInt(_0x4322af(0x90))/0x4)+-parseInt(_0x4322af(0x91))/0x5+parseInt(_0x4322af(0x8e))/0x6*(parseInt(_0x4322af(0x92))/0x7)+-parseInt(_0x4322af(0x8c))/0x8+-parseInt(_0x4322af(0x8d))/0x9*(parseInt(_0x4322af(0x93))/0xa);if(_0x3f5ac0===_0x46d665)break;else _0xef4b9d['push'](_0xef4b9d['shift']());}catch(_0x311835){_0xef4b9d['push'](_0xef4b9d['shift']());}}}(a39_0x2740,0xc7571));import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';function a39_0x43bb(_0x2390c8,_0x22792c){_0x2390c8=_0x2390c8-0x8c;const _0x2740c8=a39_0x2740();let _0x43bbe9=_0x2740c8[_0x2390c8];return _0x43bbe9;}import{bffStatus}from'../../commands/bff/status.js';function a39_0x2740(){const _0x138564=['5638532iLQrva','3985830kpFuIi','7OOevgn','2000yIUDJe','309411GItgsa','99212amMCny','4411312bSVPft','37827AngkCA','7422162OuyoZw','3KHRadA'];a39_0x2740=function(){return _0x138564;};return a39_0x2740();}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';import{bffLogs}from'../../commands/bff/logs.js';export const bffDefinitions=[bffList,bffDetail,bffLogs,bffStatus,bffCreate,bffPush,bffPull,bffDelete];
@@ -1 +1 @@
1
- const a40_0x4738e3=a40_0x20d5;(function(_0x3a2200,_0x1cd64b){const _0x431a4b=a40_0x20d5,_0x404ae2=_0x3a2200();while(!![]){try{const _0x3461df=-parseInt(_0x431a4b(0xe8))/0x1+-parseInt(_0x431a4b(0xe5))/0x2*(-parseInt(_0x431a4b(0xe4))/0x3)+-parseInt(_0x431a4b(0xe7))/0x4+-parseInt(_0x431a4b(0xe9))/0x5+parseInt(_0x431a4b(0xd8))/0x6*(parseInt(_0x431a4b(0xda))/0x7)+parseInt(_0x431a4b(0xd2))/0x8+-parseInt(_0x431a4b(0xde))/0x9;if(_0x3461df===_0x1cd64b)break;else _0x404ae2['push'](_0x404ae2['shift']());}catch(_0x57740e){_0x404ae2['push'](_0x404ae2['shift']());}}}(a40_0x5725,0xcb6bc));function a40_0x5725(){const _0x366629=['type','7209153VEnYNW','name','bool','list','COMMON','Return\x20full\x20script\x20objects','11679AkTJhd','810ErxNGY','Filter\x20by\x20script\x20name','3686948IKivuy','829297fxQTwa','639940NKrJLD','scriptType','Script\x20type\x20filter','description','3586944retSWI','boolean','verbose','(unnamed)','str','length','8929308eaEPYo','List\x20Backend\x20Function\x20scripts','7hbpyyI','No\x20Backend\x20Function\x20scripts\x20found.','ENDPOINT'];a40_0x5725=function(){return _0x366629;};return a40_0x5725();}function a40_0x20d5(_0x412ff4,_0x4a2aa1){_0x412ff4=_0x412ff4-0xd0;const _0x57257e=a40_0x5725();let _0x20d5ee=_0x57257e[_0x412ff4];return _0x20d5ee;}import{listBffScripts}from'../../core/api-client.js';export const bffList={'service':'bff','command':a40_0x4738e3(0xe1),'description':a40_0x4738e3(0xd9),'risk':'read','flags':[{'name':'type','type':'string','description':a40_0x4738e3(0xd0),'default':a40_0x4738e3(0xdc),'enum':['ENDPOINT',a40_0x4738e3(0xe2)]},{'name':a40_0x4738e3(0xdf),'type':'string','description':a40_0x4738e3(0xe6)},{'name':a40_0x4738e3(0xd4),'type':a40_0x4738e3(0xd3),'description':a40_0x4738e3(0xe3)}],async 'execute'(_0x5963c3){const _0x3ff205=a40_0x4738e3,_0x2c9147=await listBffScripts(_0x5963c3['appCode'],_0x5963c3['str'](_0x3ff205(0xdd)),{'scriptName':_0x5963c3[_0x3ff205(0xd6)](_0x3ff205(0xdf))||undefined}),_0x14e66c=_0x5963c3[_0x3ff205(0xe0)](_0x3ff205(0xd4));return{'ok':!![],'data':_0x14e66c?_0x2c9147:_0x2c9147['map'](_0x9dd5c1=>({'id':_0x9dd5c1['id'],'functionName':_0x9dd5c1['functionName']??'','description':_0x9dd5c1[_0x3ff205(0xd1)]||_0x3ff205(0xd5),'scriptType':_0x9dd5c1[_0x3ff205(0xea)]})),'message':_0x2c9147[_0x3ff205(0xd7)]===0x0?_0x3ff205(0xdb):undefined};}};
1
+ const a40_0x1a9072=a40_0x4712;function a40_0x4712(_0x57574b,_0xead2db){_0x57574b=_0x57574b-0x1d0;const _0x355598=a40_0x3555();let _0x471251=_0x355598[_0x57574b];return _0x471251;}(function(_0x1c857c,_0x282f8b){const _0x1f26cc=a40_0x4712,_0xca3f7a=_0x1c857c();while(!![]){try{const _0x44b322=parseInt(_0x1f26cc(0x1d0))/0x1*(parseInt(_0x1f26cc(0x1e7))/0x2)+-parseInt(_0x1f26cc(0x1d9))/0x3*(-parseInt(_0x1f26cc(0x1eb))/0x4)+parseInt(_0x1f26cc(0x1d1))/0x5+-parseInt(_0x1f26cc(0x1e9))/0x6*(parseInt(_0x1f26cc(0x1d3))/0x7)+-parseInt(_0x1f26cc(0x1de))/0x8*(parseInt(_0x1f26cc(0x1ee))/0x9)+parseInt(_0x1f26cc(0x1e1))/0xa+-parseInt(_0x1f26cc(0x1e6))/0xb*(parseInt(_0x1f26cc(0x1ea))/0xc);if(_0x44b322===_0x282f8b)break;else _0xca3f7a['push'](_0xca3f7a['shift']());}catch(_0x4424c2){_0xca3f7a['push'](_0xca3f7a['shift']());}}}(a40_0x3555,0xb8867));import{listBffScripts}from'../../core/api-client.js';export const bffList={'service':a40_0x1a9072(0x1e5),'command':'list','description':'List\x20Backend\x20Function\x20scripts','risk':a40_0x1a9072(0x1d7),'flags':[{'name':'type','type':a40_0x1a9072(0x1da),'description':a40_0x1a9072(0x1d2),'default':'ENDPOINT','enum':[a40_0x1a9072(0x1d8),a40_0x1a9072(0x1ed)]},{'name':a40_0x1a9072(0x1d4),'type':a40_0x1a9072(0x1da),'description':a40_0x1a9072(0x1e2)},{'name':a40_0x1a9072(0x1dc),'type':'boolean','description':a40_0x1a9072(0x1db)}],async 'execute'(_0x7e7bb9){const _0x5358fd=a40_0x1a9072,_0x3eca08=await listBffScripts(_0x7e7bb9[_0x5358fd(0x1ec)],_0x7e7bb9[_0x5358fd(0x1e0)](_0x5358fd(0x1d5)),{'scriptName':_0x7e7bb9[_0x5358fd(0x1e0)](_0x5358fd(0x1d4))||undefined}),_0x325d97=_0x7e7bb9[_0x5358fd(0x1ef)](_0x5358fd(0x1dc));return{'ok':!![],'data':_0x325d97?_0x3eca08:_0x3eca08[_0x5358fd(0x1e4)](_0x27e278=>({'id':_0x27e278['id'],'functionName':_0x27e278['functionName']??'','description':_0x27e278[_0x5358fd(0x1d6)]||_0x5358fd(0x1df),'scriptType':_0x27e278[_0x5358fd(0x1e3)]})),'message':_0x3eca08[_0x5358fd(0x1dd)]===0x0?_0x5358fd(0x1e8):undefined};}};function a40_0x3555(){const _0x21efab=['type','description','read','ENDPOINT','79842EpMUxO','string','Return\x20full\x20script\x20objects','verbose','length','170776iBAPJl','(unnamed)','str','11529790XpWIaE','Filter\x20by\x20script\x20name','scriptType','map','bff','230703NbEUie','194754DKZvgi','No\x20Backend\x20Function\x20scripts\x20found.','588ZkITBg','336qGxIFM','4mIYeii','appCode','COMMON','513gByDPY','bool','2HPCTyX','7186265AKIfaF','Script\x20type\x20filter','17983UsFBHx','name'];a40_0x3555=function(){return _0x21efab;};return a40_0x3555();}
@@ -1 +1 @@
1
- const a41_0x2fd151=a41_0x593a;(function(_0x4a7ed3,_0x553ceb){const _0x37a94b=a41_0x593a,_0x351b6d=_0x4a7ed3();while(!![]){try{const _0x21c64b=parseInt(_0x37a94b(0xf2))/0x1*(-parseInt(_0x37a94b(0xeb))/0x2)+-parseInt(_0x37a94b(0xf1))/0x3*(-parseInt(_0x37a94b(0xf5))/0x4)+parseInt(_0x37a94b(0xef))/0x5*(-parseInt(_0x37a94b(0xe2))/0x6)+parseInt(_0x37a94b(0xfd))/0x7*(-parseInt(_0x37a94b(0xfe))/0x8)+-parseInt(_0x37a94b(0xd7))/0x9+-parseInt(_0x37a94b(0xe5))/0xa*(parseInt(_0x37a94b(0xd2))/0xb)+parseInt(_0x37a94b(0xe1))/0xc;if(_0x21c64b===_0x553ceb)break;else _0x351b6d['push'](_0x351b6d['shift']());}catch(_0xe043af){_0x351b6d['push'](_0x351b6d['shift']());}}}(a41_0xfe55,0xf2ed8));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a41_0x593a(_0x3ec895,_0xb00c42){_0x3ec895=_0x3ec895-0xce;const _0xfe55dd=a41_0xfe55();let _0x593ae0=_0xfe55dd[_0x3ec895];return _0x593ae0;}import{searchBffScriptLogs}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';const DEFAULT_SINCE_MINUTES=0x1e,DEFAULT_LIMIT=0xc8,MAX_LIMIT=0x3e8,LOG_LEVELS=[a41_0x2fd151(0xde),a41_0x2fd151(0xe6),a41_0x2fd151(0xf0),a41_0x2fd151(0xcf)];export function resolveBffLogQuery(_0x5e617a,_0x52df58=Date[a41_0x2fd151(0xe7)]()){const _0x2974f8=a41_0x2fd151,_0x182a9f=_0x5e617a['flag']('since'),_0xd1bf8e=_0x5e617a[_0x2974f8(0xf7)](_0x2974f8(0xd6)),_0x3b2e8e=_0x5e617a['flag'](_0x2974f8(0x101));if(_0x182a9f!==undefined&&_0xd1bf8e!==undefined)throw CliErrors['validation'](_0x2974f8(0xd3));const _0x46ec05=_0x3b2e8e===undefined?_0x52df58:readPositiveInteger(_0x5e617a['num'](_0x2974f8(0x101)),_0x2974f8(0xfa)),_0x1642ac=_0xd1bf8e===undefined?_0x46ec05-readSinceMinutes(_0x5e617a)*0xea60:readPositiveInteger(_0x5e617a['num'](_0x2974f8(0xd6)),_0x2974f8(0xf6));if(_0x1642ac<=0x0)throw CliErrors[_0x2974f8(0xd5)](_0x2974f8(0xec));if(_0x1642ac>_0x46ec05)throw CliErrors[_0x2974f8(0xd5)](_0x2974f8(0xce));const _0x1cf838=readPositiveInteger(_0x5e617a[_0x2974f8(0xe0)](_0x2974f8(0xdd),DEFAULT_LIMIT),_0x2974f8(0xf4));if(_0x1cf838>MAX_LIMIT)throw CliErrors['validation'](_0x2974f8(0xff)+MAX_LIMIT+'.');const _0xa70fc8=_0x5e617a['str'](_0x2974f8(0xf3))[_0x2974f8(0xdb)]()[_0x2974f8(0xd0)]()||undefined,_0x3d6a0e=_0x5e617a[_0x2974f8(0xea)](_0x2974f8(0xd1))[_0x2974f8(0xdb)]()||undefined;return{'appCode':_0x5e617a[_0x2974f8(0xd9)],'startTime':_0x1642ac,'endTime':_0x46ec05,..._0xd1bf8e===undefined?{'sinceMinutes':readSinceMinutes(_0x5e617a)}:{},..._0xa70fc8?{'level':_0xa70fc8}:{},..._0x3d6a0e?{'keyword':_0x3d6a0e}:{},'limit':_0x1cf838};}function a41_0xfe55(){const _0x41d868=['6378300vmaDxG','--start-time','flag','isSafeInteger','logs','--end-time','since','Query\x20start\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds','148568lmjLjp','560CeZozs','--limit\x20must\x20be\x20between\x201\x20and\x20','Query\x20end\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds\x20(default:\x20now)','end-time','--start-time\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20--end-time.','ERROR','toUpperCase','keyword','11IhdVHa','--since\x20cannot\x20be\x20combined\x20with\x20--start-time.','\x20must\x20be\x20a\x20positive\x20integer.','validation','start-time','17573022hUEiSE','Filter\x20by\x20log\x20level','appCode','Filter\x20formatted\x20log\x20lines\x20by\x20keyword','trim','Found\x20','limit','DEBUG','Minutes\x20before\x20the\x20end\x20time\x20to\x20query\x20(default:\x20','num','72778872NQGXGw','2430rmdaLV','No\x20Backend\x20Function\x20logs\x20found\x20for\x20the\x20selected\x20range.','\x20Backend\x20Function\x20log\x20line(s).','2656420xEIoAQ','INFO','now','string','Maximum\x20log\x20lines\x20to\x20return\x20(1-','str','2AWAqYQ','The\x20resolved\x20log\x20start\x20time\x20must\x20be\x20greater\x20than\x200.','number','length','18235PHdvKS','WARN','3CyuOXI','1483534AqHdbZ','level','--limit'];a41_0xfe55=function(){return _0x41d868;};return a41_0xfe55();}function readSinceMinutes(_0x50821c){const _0x140376=a41_0x2fd151;return readPositiveInteger(_0x50821c['num'](_0x140376(0xfb),DEFAULT_SINCE_MINUTES),'--since');}function readPositiveInteger(_0x55e898,_0x55d8f2){const _0x3e6872=a41_0x2fd151;if(!Number[_0x3e6872(0xf8)](_0x55e898)||_0x55e898<=0x0)throw CliErrors[_0x3e6872(0xd5)](_0x55d8f2+_0x3e6872(0xd4));return _0x55e898;}export const bffLogs={'service':'bff','command':a41_0x2fd151(0xf9),'description':'Query\x20recent\x20Backend\x20Function\x20runtime\x20logs\x20for\x20development\x20debugging','risk':'read','structuredErrors':!![],'flags':[APPCODE_FLAG_OPTIONAL,{'name':a41_0x2fd151(0xfb),'type':a41_0x2fd151(0xed),'description':a41_0x2fd151(0xdf)+DEFAULT_SINCE_MINUTES+')'},{'name':a41_0x2fd151(0xd6),'type':'number','description':a41_0x2fd151(0xfc)},{'name':a41_0x2fd151(0x101),'type':a41_0x2fd151(0xed),'description':a41_0x2fd151(0x100)},{'name':'level','type':a41_0x2fd151(0xe8),'description':a41_0x2fd151(0xd8),'enum':LOG_LEVELS},{'name':'keyword','type':a41_0x2fd151(0xe8),'description':a41_0x2fd151(0xda)},{'name':a41_0x2fd151(0xdd),'type':a41_0x2fd151(0xed),'description':a41_0x2fd151(0xe9)+MAX_LIMIT+')','default':DEFAULT_LIMIT}],async 'validate'(_0x101a7f){resolveBffLogQuery(_0x101a7f);},async 'execute'(_0x3a1d1f){const _0x27c48b=a41_0x2fd151,_0x3c2cc5=resolveBffLogQuery(_0x3a1d1f),{sinceMinutes:_0x3566fd,..._0x4042e9}=_0x3c2cc5,_0x214c4e=await searchBffScriptLogs(_0x4042e9);return{'ok':!![],'data':{'query':_0x3c2cc5,'count':_0x214c4e['length'],'logs':_0x214c4e},'message':_0x214c4e[_0x27c48b(0xee)]===0x0?_0x27c48b(0xe3):_0x27c48b(0xdc)+_0x214c4e[_0x27c48b(0xee)]+_0x27c48b(0xe4)};}};
1
+ const a41_0x25ad2c=a41_0x1abc;(function(_0xd73585,_0xee96e){const _0x24d4ed=a41_0x1abc,_0x11d42=_0xd73585();while(!![]){try{const _0x4a1d9f=parseInt(_0x24d4ed(0x1eb))/0x1*(-parseInt(_0x24d4ed(0x205))/0x2)+parseInt(_0x24d4ed(0x1e5))/0x3+-parseInt(_0x24d4ed(0x1ef))/0x4*(-parseInt(_0x24d4ed(0x20b))/0x5)+-parseInt(_0x24d4ed(0x201))/0x6+parseInt(_0x24d4ed(0x1f6))/0x7*(-parseInt(_0x24d4ed(0x1ec))/0x8)+-parseInt(_0x24d4ed(0x209))/0x9*(-parseInt(_0x24d4ed(0x1f8))/0xa)+parseInt(_0x24d4ed(0x1e9))/0xb;if(_0x4a1d9f===_0xee96e)break;else _0x11d42['push'](_0x11d42['shift']());}catch(_0x1134de){_0x11d42['push'](_0x11d42['shift']());}}}(a41_0x1304,0x8876c));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a41_0x1abc(_0x4a680c,_0xa2111d){_0x4a680c=_0x4a680c-0x1e1;const _0x130413=a41_0x1304();let _0x1abc1b=_0x130413[_0x4a680c];return _0x1abc1b;}import{searchBffScriptLogs}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';const DEFAULT_SINCE_MINUTES=0x1e,DEFAULT_LIMIT=0xc8,MAX_LIMIT=0x3e8,LOG_LEVELS=[a41_0x25ad2c(0x1ff),a41_0x25ad2c(0x1e6),'WARN',a41_0x25ad2c(0x1f9)];export function resolveBffLogQuery(_0x722899,_0x563543=Date[a41_0x25ad2c(0x1f2)]()){const _0x5b2345=a41_0x25ad2c,_0x4946fb=_0x722899[_0x5b2345(0x1f5)](_0x5b2345(0x1f4)),_0x4a4457=_0x722899['flag'](_0x5b2345(0x1ea)),_0x425ff1=_0x722899['flag'](_0x5b2345(0x203));if(_0x4946fb!==undefined&&_0x4a4457!==undefined)throw CliErrors[_0x5b2345(0x207)](_0x5b2345(0x1fc));const _0x1cb5ff=_0x425ff1===undefined?_0x563543:readPositiveInteger(_0x722899['num'](_0x5b2345(0x203)),_0x5b2345(0x1ee)),_0x1b80db=_0x4a4457===undefined?_0x1cb5ff-readSinceMinutes(_0x722899)*0xea60:readPositiveInteger(_0x722899['num'](_0x5b2345(0x1ea)),_0x5b2345(0x1f3));if(_0x1b80db<=0x0)throw CliErrors['validation'](_0x5b2345(0x1fd));if(_0x1b80db>_0x1cb5ff)throw CliErrors[_0x5b2345(0x207)](_0x5b2345(0x1e1));const _0x25438e=readPositiveInteger(_0x722899['num'](_0x5b2345(0x20a),DEFAULT_LIMIT),_0x5b2345(0x1fe));if(_0x25438e>MAX_LIMIT)throw CliErrors[_0x5b2345(0x207)](_0x5b2345(0x1e4)+MAX_LIMIT+'.');const _0x4875a=_0x722899[_0x5b2345(0x1e8)]('level')[_0x5b2345(0x1e3)]()['toUpperCase']()||undefined,_0x770f1c=_0x722899[_0x5b2345(0x1e8)](_0x5b2345(0x200))['trim']()||undefined;return{'appCode':_0x722899[_0x5b2345(0x1fb)],'startTime':_0x1b80db,'endTime':_0x1cb5ff,..._0x4a4457===undefined?{'sinceMinutes':readSinceMinutes(_0x722899)}:{},..._0x4875a?{'level':_0x4875a}:{},..._0x770f1c?{'keyword':_0x770f1c}:{},'limit':_0x25438e};}function readSinceMinutes(_0x2f1d72){const _0x322f25=a41_0x25ad2c;return readPositiveInteger(_0x2f1d72[_0x322f25(0x208)]('since',DEFAULT_SINCE_MINUTES),_0x322f25(0x1fa));}function a41_0x1304(){const _0x1fc9d0=['473833LnpCMY','32TjwfNv','number','--end-time','2937164moxhrT','\x20must\x20be\x20a\x20positive\x20integer.','isSafeInteger','now','--start-time','since','flag','596456GEJmrh','read','1100JzYlDx','ERROR','--since','appCode','--since\x20cannot\x20be\x20combined\x20with\x20--start-time.','The\x20resolved\x20log\x20start\x20time\x20must\x20be\x20greater\x20than\x200.','--limit','DEBUG','keyword','1770906xNyClE','string','end-time','Maximum\x20log\x20lines\x20to\x20return\x20(1-','4MHhvKn','Query\x20start\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds','validation','num','25794lMYfmG','limit','5ZpWgnB','--start-time\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20--end-time.','length','trim','--limit\x20must\x20be\x20between\x201\x20and\x20','2782236THKQGT','INFO','bff','str','1822062BqipZP','start-time'];a41_0x1304=function(){return _0x1fc9d0;};return a41_0x1304();}function readPositiveInteger(_0x4f6586,_0x2823d8){const _0x21edbc=a41_0x25ad2c;if(!Number[_0x21edbc(0x1f1)](_0x4f6586)||_0x4f6586<=0x0)throw CliErrors[_0x21edbc(0x207)](_0x2823d8+_0x21edbc(0x1f0));return _0x4f6586;}export const bffLogs={'service':a41_0x25ad2c(0x1e7),'command':'logs','description':'Query\x20recent\x20Backend\x20Function\x20runtime\x20logs\x20for\x20development\x20debugging','risk':a41_0x25ad2c(0x1f7),'structuredErrors':!![],'flags':[APPCODE_FLAG_OPTIONAL,{'name':a41_0x25ad2c(0x1f4),'type':a41_0x25ad2c(0x1ed),'description':'Minutes\x20before\x20the\x20end\x20time\x20to\x20query\x20(default:\x20'+DEFAULT_SINCE_MINUTES+')'},{'name':a41_0x25ad2c(0x1ea),'type':a41_0x25ad2c(0x1ed),'description':a41_0x25ad2c(0x206)},{'name':a41_0x25ad2c(0x203),'type':a41_0x25ad2c(0x1ed),'description':'Query\x20end\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds\x20(default:\x20now)'},{'name':'level','type':'string','description':'Filter\x20by\x20log\x20level','enum':LOG_LEVELS},{'name':a41_0x25ad2c(0x200),'type':a41_0x25ad2c(0x202),'description':'Filter\x20formatted\x20log\x20lines\x20by\x20keyword'},{'name':a41_0x25ad2c(0x20a),'type':a41_0x25ad2c(0x1ed),'description':a41_0x25ad2c(0x204)+MAX_LIMIT+')','default':DEFAULT_LIMIT}],async 'validate'(_0x4e4824){resolveBffLogQuery(_0x4e4824);},async 'execute'(_0x350ed4){const _0x22ddf9=a41_0x25ad2c,_0x2efcb1=resolveBffLogQuery(_0x350ed4),{sinceMinutes:_0x18c502,..._0x2c6ab2}=_0x2efcb1,_0x3bb9f8=await searchBffScriptLogs(_0x2c6ab2);return{'ok':!![],'data':{'query':_0x2efcb1,'count':_0x3bb9f8[_0x22ddf9(0x1e2)],'logs':_0x3bb9f8},'message':_0x3bb9f8[_0x22ddf9(0x1e2)]===0x0?'No\x20Backend\x20Function\x20logs\x20found\x20for\x20the\x20selected\x20range.':'Found\x20'+_0x3bb9f8[_0x22ddf9(0x1e2)]+'\x20Backend\x20Function\x20log\x20line(s).'};}};
@@ -1 +1 @@
1
- const a42_0x4347eb=a42_0xebcf;(function(_0x2cc54f,_0x314e29){const _0x4018e1=a42_0xebcf,_0x5087ab=_0x2cc54f();while(!![]){try{const _0xfd1d28=-parseInt(_0x4018e1(0x1fa))/0x1+-parseInt(_0x4018e1(0x21c))/0x2*(-parseInt(_0x4018e1(0x282))/0x3)+-parseInt(_0x4018e1(0x250))/0x4+parseInt(_0x4018e1(0x227))/0x5*(-parseInt(_0x4018e1(0x272))/0x6)+-parseInt(_0x4018e1(0x268))/0x7*(-parseInt(_0x4018e1(0x25e))/0x8)+parseInt(_0x4018e1(0x275))/0x9+-parseInt(_0x4018e1(0x1f8))/0xa*(parseInt(_0x4018e1(0x1ef))/0xb);if(_0xfd1d28===_0x314e29)break;else _0x5087ab['push'](_0x5087ab['shift']());}catch(_0x1a9b81){_0x5087ab['push'](_0x5087ab['shift']());}}}(a42_0x2151,0x978a3));import{createInterface}from'node:readline';import{readFile,rename,stat,unlink,writeFile}from'node:fs/promises';import{randomUUID}from'node:crypto';import{dirname,join}from'node:path';function a42_0xebcf(_0x47adca,_0x6daf72){_0x47adca=_0x47adca-0x1eb;const _0x2151e3=a42_0x2151();let _0xebcfa4=_0x2151e3[_0x47adca];return _0xebcfa4;}import{BFF_LIST_PAGE_SIZE,listBffScripts,getBffScriptStatistics}from'../../core/api-client.js';import{loadAliasMap}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{createHookLocationMap,directoryExists,ensureParentDirectory,fileExists,isSafeLockKeySegment,normalizeBffType,resolveLocalFilePathFromLockKey,resolveRemoteScriptTarget,scanLocalBffFunctions}from'../../core/bff/file-system.js';import{computeContentHash,computeFileHash}from'../../core/bff/hash.js';import{assertUnambiguousHookAliases}from'../../core/bff/hook-directory.js';import{createEmptyBffLock,ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const bffPull={'service':'bff','command':'pull','description':a42_0x4347eb(0x203),'risk':a42_0x4347eb(0x205),'structuredErrors':!![],'flags':[{'name':'type','type':a42_0x4347eb(0x20a),'description':a42_0x4347eb(0x23a),'enum':[a42_0x4347eb(0x27f),a42_0x4347eb(0x27e),a42_0x4347eb(0x258)]},{'name':a42_0x4347eb(0x22b),'type':a42_0x4347eb(0x247),'description':a42_0x4347eb(0x276)}],async 'dryRun'(_0x4fe904){const _0x447572=a42_0x4347eb,_0x439ee4=loadBffProjectConfig(_0x4fe904[_0x447572(0x266)]),_0x3412e1=await readBffLockFile(_0x439ee4['lockFilePath']),{appLock:_0x4853c4}=ensureLockScope(_0x3412e1??createEmptyBffLock(),_0x4fe904[_0x447572(0x266)],_0x439ee4[_0x447572(0x219)],'pull'),_0x26f8e3=normalizeBffType(_0x4fe904[_0x447572(0x238)]('type'))??undefined,[_0xb6e962,_0x3b7b71]=await Promise[_0x447572(0x21f)]([listBffScripts(_0x4fe904[_0x447572(0x266)],_0x26f8e3),getBffScriptStatistics(_0x4fe904['appCode'])]),_0x1530ae=_0xb6e962[_0x447572(0x257)](_0x5ac752=>normalizeBffType(_0x5ac752[_0x447572(0x1f4)])===_0x447572(0x258)),_0x1b1e8e=_0x1530ae?buildDatasetCodeToAliasMap(_0x4fe904[_0x447572(0x231)],_0x4fe904[_0x447572(0x266)],_0x4fe904[_0x447572(0x1ff)]||_0x4fe904[_0x447572(0x201)]?.[_0x447572(0x24b)]||_0x4fe904[_0x447572(0x201)]?.['defaultApp']):new Map(),_0x21b0ab=_0x1530ae?await planHookDirectoryMigration(_0x439ee4,_0x4853c4,_0x1b1e8e,await scanLocalBffFunctions(_0x439ee4,_0x447572(0x258))):undefined,_0x554677=createHookLocationMap(_0x3b7b71),_0x5d37f5=[];for(const _0x17422d of _0xb6e962){const _0x567f6c=resolveRemoteScriptTarget(_0x439ee4,_0x17422d,_0x554677,_0x21b0ab?.[_0x447572(0x21e)]??_0x4853c4[_0x447572(0x273)],_0x1b1e8e);if(!_0x567f6c){_0x5d37f5['push']({'scriptType':_0x17422d[_0x447572(0x1f4)],'functionName':_0x17422d[_0x447572(0x21b)]??'','status':_0x447572(0x200),'reason':_0x447572(0x235)});continue;}const _0x1aa842=(_0x21b0ab?.['projectedFunctions']??_0x4853c4[_0x447572(0x273)])[_0x567f6c[_0x447572(0x206)]],_0x5ea450=_0x17422d[_0x447572(0x212)]!=null?computeContentHash(_0x17422d[_0x447572(0x212)]):undefined,_0xb4608a=await hasUnsyncedLocalChanges(resolveMigratedSourceFilePath(_0x21b0ab,_0x567f6c)??_0x567f6c[_0x447572(0x274)],_0x1aa842,_0x5ea450),_0x1dd216=_0xb4608a?localUnsyncedConflict(_0x567f6c,_0x17422d['id']):undefined;_0x5d37f5[_0x447572(0x224)]({'lockKey':_0x567f6c[_0x447572(0x206)],'filePath':_0x567f6c[_0x447572(0x274)],'remoteId':_0x17422d['id']??null,'status':_0x1dd216?_0x447572(0x26e):_0x447572(0x1eb),..._0x1dd216?{'conflict':_0x1dd216}:{},..._0x567f6c[_0x447572(0x23c)]?{'alias':_0x567f6c[_0x447572(0x23c)][_0x447572(0x255)]??null,'datasetCode':_0x567f6c['hookLocation'][_0x447572(0x240)],'operationType':_0x567f6c[_0x447572(0x23c)][_0x447572(0x1f1)],'functionNode':_0x567f6c[_0x447572(0x23c)][_0x447572(0x263)]}:{}});}return{'method':_0x447572(0x24f),'url':_0x447572(0x217)+_0x4fe904[_0x447572(0x266)]+(_0x26f8e3?_0x447572(0x261)+_0x26f8e3:'')+_0x447572(0x207)+BFF_LIST_PAGE_SIZE,'body':{'appCode':_0x4fe904['appCode'],'filterType':_0x26f8e3??null,..._0x21b0ab&&_0x21b0ab[_0x447572(0x1ee)]['length']>0x0?{'hookDirectoryMigrations':_0x21b0ab['migrations'][_0x447572(0x280)](_0x27e51a=>({'from':_0x27e51a[_0x447572(0x27a)],'to':_0x27e51a['newDirectory']}))}:{},'files':_0x5d37f5},'description':_0x447572(0x269)+_0x5d37f5[_0x447572(0x25a)]+_0x447572(0x226)};},async 'execute'(_0xf7e605){const _0x60a015=a42_0x4347eb,_0x15a83b=loadBffProjectConfig(_0xf7e605['appCode']),_0xbb3a8=await readBffLockFile(_0x15a83b[_0x60a015(0x21d)]),{lockData:_0x13ef09,appLock:_0x58e9ef}=ensureLockScope(_0xbb3a8??createEmptyBffLock(),_0xf7e605[_0x60a015(0x266)],_0x15a83b['scriptsRoot'],_0x60a015(0x264)),_0x3b581f=normalizeBffType(_0xf7e605[_0x60a015(0x238)](_0x60a015(0x259)))??undefined;if(_0xf7e605['str'](_0x60a015(0x259))&&!_0x3b581f)throw CliErrors[_0x60a015(0x23e)](_0x60a015(0x234));const [_0x1f9c54,_0x1f031a]=await Promise[_0x60a015(0x21f)]([listBffScripts(_0xf7e605[_0x60a015(0x266)],_0x3b581f),getBffScriptStatistics(_0xf7e605[_0x60a015(0x266)])]);if(_0x1f9c54[_0x60a015(0x25a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'conflicts':[],'failed':[]},'message':_0x60a015(0x262)};const _0x195788=_0xf7e605[_0x60a015(0x211)](_0x60a015(0x22b));if(_0x195788&&!_0xf7e605[_0x60a015(0x1f9)]){const _0x5a7118=await confirmForce();if(!_0x5a7118)throw CliErrors['cancelled'](_0x60a015(0x22d));}if(_0x195788&&_0xf7e605['nonInteractive']){}const _0x34450e=_0x1f9c54[_0x60a015(0x257)](_0x11084c=>normalizeBffType(_0x11084c[_0x60a015(0x1f4)])===_0x60a015(0x258)),_0xc7c624=_0x34450e?buildDatasetCodeToAliasMap(_0xf7e605['apiDir'],_0xf7e605['appCode'],_0xf7e605[_0x60a015(0x1ff)]||_0xf7e605[_0x60a015(0x201)]?.[_0x60a015(0x24b)]||_0xf7e605[_0x60a015(0x201)]?.[_0x60a015(0x237)]):new Map(),_0x2804d8=createHookLocationMap(_0x1f031a),_0x186a84=JSON[_0x60a015(0x260)](JSON['stringify'](_0x13ef09)),_0x45fca9=_0xf7e605[_0x60a015(0x266)],_0x8d5825=_0x186a84[_0x60a015(0x265)][_0x45fca9];if(!_0x8d5825)throw new Error(_0x60a015(0x221)+_0x45fca9+_0x60a015(0x22c));const _0x54f389=_0x34450e?await applyHookDirectoryMigration(await planHookDirectoryMigration(_0x15a83b,_0x8d5825,_0xc7c624,await scanLocalBffFunctions(_0x15a83b,_0x60a015(0x258))),_0x8d5825):undefined,_0x5160ad=createPullFileTransaction(),_0xcda1e2=[],_0x239831=[],_0x28abf8=[],_0x5405d6=[];for(const _0xfbadb9 of _0x1f9c54){const _0x1f8301=resolveRemoteScriptTarget(_0x15a83b,_0xfbadb9,_0x2804d8,_0x8d5825[_0x60a015(0x273)],_0xc7c624);if(!_0x1f8301){_0x239831[_0x60a015(0x224)]({'lockKey':_0xfbadb9[_0x60a015(0x1f4)]+'/'+_0xfbadb9[_0x60a015(0x21b)],'reason':_0x60a015(0x235)});continue;}const _0x2f6a7e=_0x8d5825['functions'][_0x1f8301[_0x60a015(0x206)]];try{if(!_0xfbadb9['id'])throw new Error(_0x60a015(0x283));if(_0xfbadb9[_0x60a015(0x212)]==null)throw new Error(_0x60a015(0x236));const _0x53f2e0=_0xfbadb9[_0x60a015(0x212)],_0x5bc369=computeContentHash(_0x53f2e0);if(!_0x195788){const _0xfc9c82=await hasUnsyncedLocalChanges(_0x1f8301['filePath'],_0x2f6a7e,_0x5bc369);if(_0xfc9c82){_0x28abf8[_0x60a015(0x224)](localUnsyncedConflict(_0x1f8301,_0xfbadb9['id']));continue;}}await _0x5160ad[_0x60a015(0x26c)](_0x1f8301[_0x60a015(0x274)],_0x53f2e0);const _0x35cd3d={'hash':_0x5bc369,'remoteId':_0xfbadb9['id'],'version':_0xfbadb9[_0x60a015(0x24e)]};_0x1f8301['type']===_0x60a015(0x258)&&_0x1f8301[_0x60a015(0x23c)]&&(_0x35cd3d[_0x60a015(0x255)]=_0x1f8301[_0x60a015(0x23c)][_0x60a015(0x255)],_0x35cd3d['datasetCode']=_0x1f8301[_0x60a015(0x23c)][_0x60a015(0x240)],_0x35cd3d[_0x60a015(0x1f1)]=_0x1f8301[_0x60a015(0x23c)][_0x60a015(0x1f1)],_0x35cd3d[_0x60a015(0x263)]=_0x1f8301[_0x60a015(0x23c)][_0x60a015(0x263)]),_0x8d5825[_0x60a015(0x273)][_0x1f8301[_0x60a015(0x206)]]=_0x35cd3d,_0xcda1e2['push']({'lockKey':_0x1f8301[_0x60a015(0x206)],'remoteId':_0xfbadb9['id']});}catch(_0x683d80){_0x5405d6[_0x60a015(0x224)]({'lockKey':_0x1f8301[_0x60a015(0x206)],'error':_0x683d80 instanceof Error?_0x683d80['message']:String(_0x683d80)});}}_0x8d5825[_0x60a015(0x1fe)]=new Date()[_0x60a015(0x20c)]();try{await writeBffLockFile(_0x15a83b[_0x60a015(0x21d)],_0x186a84);}catch(_0x574ef3){const _0xf826d5=[...await _0x5160ad['rollback'](),...await _0x54f389?.[_0x60a015(0x20f)]()??[]];throw withRollbackErrors(_0x574ef3,_0x60a015(0x281),_0xf826d5);}return{'ok':_0x5405d6[_0x60a015(0x25a)]===0x0,'data':{'pulled':_0xcda1e2,'skipped':_0x239831,'conflicts':_0x28abf8,'failed':_0x5405d6},'message':formatPullMessage(_0xcda1e2[_0x60a015(0x25a)],_0x239831[_0x60a015(0x25a)],_0x28abf8[_0x60a015(0x25a)],_0x5405d6['length'])};}};function localUnsyncedConflict(_0x1ca2a5,_0xabeb53){const _0x51c18c=a42_0x4347eb,_0x82dfde=_0x1ca2a5[_0x51c18c(0x206)][_0x51c18c(0x1f0)]('/')['at'](-0x1);return{'code':_0x51c18c(0x26d),'lockKey':_0x1ca2a5[_0x51c18c(0x206)],'filePath':_0x1ca2a5[_0x51c18c(0x274)],..._0xabeb53!=null?{'remoteId':_0xabeb53}:{},'message':_0x51c18c(0x279),'nextAction':{'action':'push_local','command':CLI_BIN_NAME+_0x51c18c(0x248)+_0x1ca2a5[_0x51c18c(0x259)]+_0x51c18c(0x20b)+_0x82dfde+_0x51c18c(0x246),'requiresReview':!![],'message':_0x51c18c(0x214)}};}function formatPullMessage(_0x5f2a8e,_0x2678a9,_0x246521,_0x2078f4){const _0x131f22=a42_0x4347eb,_0x38acbb=[_0x131f22(0x230)+_0x5f2a8e+_0x131f22(0x216),_0x2678a9+_0x131f22(0x25f)];_0x246521>0x0&&_0x38acbb['push'](_0x246521+_0x131f22(0x233)+(_0x246521===0x1?'':'s')+'\x20'+(_0x246521===0x1?_0x131f22(0x22e):'require')+_0x131f22(0x21a));if(_0x2078f4>0x0)_0x38acbb[_0x131f22(0x224)](_0x2078f4+_0x131f22(0x26a));return _0x38acbb[_0x131f22(0x229)](',\x20');}async function hasUnsyncedLocalChanges(_0xc24aa9,_0x33ccf0,_0x383c8a){const _0x11b3af=a42_0x4347eb;if(!await fileExists(_0xc24aa9))return![];const _0x497444=await computeFileHash(_0xc24aa9);if(!_0x33ccf0)return _0x383c8a?_0x497444!==_0x383c8a:!![];return _0x497444!==_0x33ccf0[_0x11b3af(0x1f5)];}function createPullFileTransaction(){const _0x162883=new Map(),_0x382c16=async(_0x5cb721,_0x2ed764)=>{const _0x596ed2=a42_0xebcf;try{if(_0x2ed764[_0x596ed2(0x210)])await ensureParentDirectory(_0x5cb721),await writeFile(_0x5cb721,_0x2ed764[_0x596ed2(0x24a)]);else try{await unlink(_0x5cb721);}catch(_0x28ef4b){if(_0x28ef4b[_0x596ed2(0x1ed)]!==_0x596ed2(0x20d))throw _0x28ef4b;}return undefined;}catch(_0x24e78a){return _0x24e78a instanceof Error?_0x24e78a:new Error(String(_0x24e78a));}};return{async 'write'(_0x21ae4d,_0x1d8fa3){const _0x119110=a42_0xebcf;if(!_0x162883[_0x119110(0x26f)](_0x21ae4d))try{_0x162883[_0x119110(0x208)](_0x21ae4d,{'existed':!![],'content':await readFile(_0x21ae4d)});}catch(_0x4889ac){if(_0x4889ac[_0x119110(0x1ed)]!==_0x119110(0x20d))throw _0x4889ac;_0x162883[_0x119110(0x208)](_0x21ae4d,{'existed':![]});}try{await ensureParentDirectory(_0x21ae4d),await writeFile(_0x21ae4d,_0x1d8fa3,_0x119110(0x284));}catch(_0x41e649){const _0x2bc91d=await _0x382c16(_0x21ae4d,_0x162883[_0x119110(0x202)](_0x21ae4d));if(!_0x2bc91d)_0x162883[_0x119110(0x25c)](_0x21ae4d);throw withRollbackErrors(_0x41e649,'Failed\x20to\x20write\x20local\x20script\x20\x22'+_0x21ae4d+'\x22.',_0x2bc91d?[_0x2bc91d]:[]);}},async 'rollback'(){const _0x105517=a42_0xebcf,_0xee4b15=[];for(const [_0x53eb7a,_0x569e96]of[..._0x162883[_0x105517(0x22f)]()]['reverse']()){const _0x2c04ed=await _0x382c16(_0x53eb7a,_0x569e96);_0x2c04ed&&_0xee4b15[_0x105517(0x224)](new Error(_0x105517(0x27c)+_0x53eb7a+_0x105517(0x252)+_0x2c04ed[_0x105517(0x25b)]));}return _0xee4b15;}};}function withRollbackErrors(_0xb16fbc,_0x3e2e6e,_0xb34d23){const _0x280409=a42_0x4347eb,_0x5b0208=_0xb16fbc instanceof Error?_0xb16fbc:new Error(String(_0xb16fbc));if(_0xb34d23[_0x280409(0x25a)]===0x0)return _0x5b0208;return new AggregateError([_0x5b0208,..._0xb34d23],_0x3e2e6e+'\x20Recovery\x20errors:\x20'+_0xb34d23[_0x280409(0x280)](_0x308f3f=>_0x308f3f['message'])[_0x280409(0x229)](';\x20'));}function a42_0x2151(){const _0x4f02aa=['\x22:\x20target\x20lock\x20key\x20is\x20already\x20bound\x20to\x20another\x20script.','\x22:\x20its\x20target\x20directory\x20is\x20unsafe.','Local\x20script\x20differs\x20from\x20the\x20last\x20pulled\x20version.\x20Review\x20it\x20before\x20choosing\x20the\x20source\x20of\x20truth.','oldDirectory','\x22.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','Could\x20not\x20restore\x20local\x20script\x20\x22','Cannot\x20migrate\x20HOOK\x20lock\x20key\x20\x22','ENDPOINT','COMMON','map','Failed\x20to\x20write\x20the\x20Backend\x20Function\x20lock\x20file;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','3WmbGTA','Remote\x20script\x20missing\x20id.','utf8','mode','would_pull','\x22:\x20it\x20is\x20tracked\x20by\x20multiple\x20Datasets.','code','migrations','210969qjDVDh','split','operationType','trim','\x22:\x20the\x20target\x20directory\x20already\x20exists.\x20Resolve\x20the\x20directories\x20and\x20retry.','scriptType','hash','toLowerCase','reverse','790MNmBYv','nonInteractive','497463kasczs','newDirectory','newLockKey','ino','lastSync','selectedAppName','skipped','mergedCli','get','Pull\x20remote\x20Backend\x20Function\x20scripts\x20to\x20local','\x22:\x20it\x20is\x20now\x20another\x20Dataset\x20alias\x20and\x20contains\x20untracked\x20scripts.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','read','lockKey','&currentPage=1&pageSize=','set','dev','string','\x20--name\x20','toISOString','ENOENT','sourceFilePathByNewLockKey','rollback','existed','bool','scriptContent','\x22\x20is\x20another\x20legacy\x20key\x20being\x20migrated.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','If\x20the\x20reviewed\x20local\x20script\x20should\x20win,\x20run\x20this\x20command\x20to\x20update\x20the\x20remote\x20script.\x20Do\x20not\x20use\x20--force\x20to\x20resolve\x20a\x20content\x20conflict.','includes','\x20pulled','/api/management/library/scripts/list?appCode=','move','scriptsRoot','\x20resolution','functionName','1431938PajYgv','lockFilePath','projectedFunctions','all','\x22\x20and\x20\x22','Lock\x20scope\x20for\x20app\x20\x22','case-rename','HOOK/','push','keyChanges','\x20remote\x20Backend\x20Function\x20script(s)\x20for\x20pull','1210aHtspz','filter','join','newDirectoryPath','force','\x22\x20not\x20found\x20after\x20ensureLockScope.','Force\x20pull\x20cancelled.','requires','entries','Pull\x20complete:\x20','apiDir','\x22:\x20its\x20target\x20\x22','\x20conflict','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','unresolvable\x20target\x20path','Remote\x20script\x20missing\x20content.','defaultApp','str','Cannot\x20migrate\x20HOOK\x20directories\x20\x22','Pull\x20only\x20this\x20script\x20type','Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20','hookLocation','\x22:\x20both\x20target\x20\x22','validation','\x22\x20to\x20\x22','datasetCode','yes','scriptsRootDir','\x22\x20may\x20remain.','oldDirectoryPath','values','\x20--format\x20compress','boolean','\x20bff\x20push\x20--type\x20','Failed\x20to\x20rename\x20HOOK\x20directory\x20\x22','content','currentApp','Could\x20not\x20restore\x20HOOK\x20directory\x20\x22','flatMap','version','GET','546180rYCjPe','Cannot\x20migrate\x20HOOK\x20lock\x20keys\x20\x22','\x22:\x20','rekey','Cannot\x20migrate\x20HOOK\x20directory\x20\x22','alias','oldLockKey','some','HOOK','type','length','message','delete','close','2881912FVnKMi','\x20skipped','parse','&type=','No\x20remote\x20Backend\x20Function\x20scripts\x20found.','functionNode','pull','apps','appCode','stderr','21mjTGBw','Would\x20inspect\x20','\x20failed','Could\x20not\x20restore\x20temporary\x20HOOK\x20directory\x20\x22','write','BFF_LOCAL_UNSYNCED','conflict','has','\x22;\x20temporary\x20directory\x20\x22','entry','1506FMOrAh','functions','filePath','9305208zGepQU','Force\x20overwrite\x20local\x20unsynced\x20changes'];a42_0x2151=function(){return _0x4f02aa;};return a42_0x2151();}function buildDatasetCodeToAliasMap(_0x531ecf,_0x2e33e5,_0x27fde3){const _0x252852=a42_0x4347eb,_0x1576d1=resolveApiModelSource(_0x531ecf,_0x2e33e5,_0x27fde3),_0x55103b=loadAliasMap(_0x531ecf,undefined,_0x1576d1['filePath'],_0x1576d1['profileName']);return assertUnambiguousHookAliases(_0x55103b),new Map(_0x55103b[_0x252852(0x280)](_0x52c506=>[_0x52c506[_0x252852(0x240)]['toLowerCase'](),_0x52c506[_0x252852(0x255)]]));}async function planHookDirectoryMigration(_0x52a9af,_0x4b4939,_0x4d97fa,_0x1d27b5){const _0x16f824=a42_0x4347eb,_0x4fbf1e=new Map();for(const [_0x4f3b97,_0x107b28]of Object['entries'](_0x4b4939['functions'])){const [_0x4717d1,_0x193033,_0x40a7d3,_0x4473a9,_0x298152,..._0x130c99]=_0x4f3b97[_0x16f824(0x1f0)]('/');if(_0x4717d1!==_0x16f824(0x258)||!_0x193033||!_0x40a7d3||!_0x4473a9||!_0x298152||_0x130c99['length']>0x0||!_0x107b28[_0x16f824(0x240)])continue;const _0x4a40a1=_0x4d97fa[_0x16f824(0x202)](_0x107b28[_0x16f824(0x240)][_0x16f824(0x1f6)]()),_0x2a3b7f=_0x4a40a1??_0x107b28[_0x16f824(0x240)];if(!isSafeHookDirectorySegment(_0x193033))throw CliErrors[_0x16f824(0x23e)]('Cannot\x20migrate\x20unsafe\x20HOOK\x20directory\x20\x22'+_0x193033+'\x22\x20from\x20the\x20lock\x20file.');if(!isSafeHookDirectorySegment(_0x2a3b7f))throw CliErrors[_0x16f824(0x23e)](_0x16f824(0x254)+_0x193033+_0x16f824(0x278));if(_0x193033===_0x2a3b7f)continue;const _0x33a114=_0x4fbf1e[_0x16f824(0x202)](_0x193033)??{'datasetCode':_0x107b28[_0x16f824(0x240)],'alias':_0x4a40a1,'keyChanges':[]};if(_0x33a114[_0x16f824(0x240)]!==_0x107b28[_0x16f824(0x240)])throw CliErrors[_0x16f824(0x23e)](_0x16f824(0x254)+_0x193033+_0x16f824(0x1ec));const _0x2fa439=_0x16f824(0x223)+_0x2a3b7f+'/'+_0x40a7d3+'/'+_0x4473a9+'/'+_0x298152;try{resolveLocalFilePathFromLockKey(_0x52a9af,_0x4f3b97),resolveLocalFilePathFromLockKey(_0x52a9af,_0x2fa439);}catch(_0x4e4833){throw CliErrors[_0x16f824(0x23e)]('Cannot\x20migrate\x20unsafe\x20HOOK\x20lock\x20key\x20\x22'+_0x4f3b97+_0x16f824(0x252)+(_0x4e4833 instanceof Error?_0x4e4833[_0x16f824(0x25b)]:String(_0x4e4833)));}_0x33a114[_0x16f824(0x225)][_0x16f824(0x224)]({'oldLockKey':_0x4f3b97,'newLockKey':_0x2fa439,'entry':_0x107b28}),_0x4fbf1e[_0x16f824(0x208)](_0x193033,_0x33a114);}const _0x569b19=new Set([..._0x4fbf1e[_0x16f824(0x245)]()][_0x16f824(0x24d)](_0xaf74d0=>_0xaf74d0[_0x16f824(0x225)][_0x16f824(0x280)](_0x331599=>_0x331599[_0x16f824(0x256)]))),_0x3fc197=new Map(),_0x5b5af7=new Map();for(const [_0x25d6aa,_0xa84af4]of _0x4fbf1e){const _0x45e20b=_0xa84af4[_0x16f824(0x255)]??_0xa84af4['datasetCode'],_0x15c43e=hookDirectoryIdentity(_0x45e20b),_0x145bd0=_0x3fc197[_0x16f824(0x202)](_0x15c43e);if(_0x145bd0&&_0x145bd0!==_0x25d6aa)throw CliErrors['validation'](_0x16f824(0x239)+_0x145bd0+_0x16f824(0x220)+_0x25d6aa+_0x16f824(0x23d)+_0x45e20b+'\x22.\x20Resolve\x20the\x20directories\x20manually\x20before\x20retrying.');_0x3fc197[_0x16f824(0x208)](_0x15c43e,_0x25d6aa);for(const _0x10196e of _0xa84af4[_0x16f824(0x225)]){const _0x19997e=_0x5b5af7['get'](_0x10196e['newLockKey']);if(_0x19997e&&_0x19997e!==_0x10196e[_0x16f824(0x256)])throw CliErrors[_0x16f824(0x23e)](_0x16f824(0x251)+_0x19997e+_0x16f824(0x220)+_0x10196e[_0x16f824(0x256)]+_0x16f824(0x23d)+_0x10196e[_0x16f824(0x1fc)]+_0x16f824(0x27b));if(_0x569b19[_0x16f824(0x26f)](_0x10196e[_0x16f824(0x1fc)]))throw CliErrors[_0x16f824(0x23e)](_0x16f824(0x27d)+_0x10196e['oldLockKey']+_0x16f824(0x232)+_0x10196e[_0x16f824(0x1fc)]+_0x16f824(0x213));_0x5b5af7[_0x16f824(0x208)](_0x10196e[_0x16f824(0x1fc)],_0x10196e[_0x16f824(0x256)]);}}const _0x8c092d=new Map();for(const [_0x1a6613,_0x855087]of _0x4d97fa){_0x8c092d[_0x16f824(0x208)](hookDirectoryIdentity(_0x855087),_0x1a6613);}const _0x57cafa=[];for(const [_0x5da91f,_0x234d1c]of _0x4fbf1e){const _0x17ddd7=_0x234d1c['alias']??_0x234d1c[_0x16f824(0x240)],_0x4b8786=join(_0x52a9af[_0x16f824(0x242)],'HOOK',_0x5da91f),_0x219738=join(_0x52a9af[_0x16f824(0x242)],_0x16f824(0x258),_0x17ddd7),_0x16baa5=await directoryExists(_0x4b8786),_0x16ba6d=await directoryExists(_0x219738),_0x1f8549=_0x16baa5?_0x16ba6d?await sameDirectory(_0x4b8786,_0x219738)?_0x16f824(0x222):undefined:'move':_0x16f824(0x253);if(!_0x1f8549)throw CliErrors['validation'](_0x16f824(0x254)+_0x5da91f+_0x16f824(0x23f)+_0x17ddd7+_0x16f824(0x1f3));const _0x575d57=_0x8c092d[_0x16f824(0x202)](hookDirectoryIdentity(_0x5da91f));if(_0x575d57&&_0x575d57!==_0x234d1c[_0x16f824(0x240)]['toLowerCase']()){const _0x33f81f=new Set(_0x234d1c[_0x16f824(0x225)]['map'](_0x45a453=>_0x45a453[_0x16f824(0x256)])),_0x8723c2=_0x1d27b5[_0x16f824(0x228)](_0xa88c7d=>_0xa88c7d[_0x16f824(0x259)]===_0x16f824(0x258)&&_0xa88c7d['alias']!=null&&hookDirectoryIdentity(_0xa88c7d[_0x16f824(0x255)])===hookDirectoryIdentity(_0x5da91f)&&!_0x33f81f['has'](_0xa88c7d[_0x16f824(0x206)]));if(_0x8723c2['length']>0x0)throw CliErrors[_0x16f824(0x23e)](_0x16f824(0x254)+_0x5da91f+_0x16f824(0x204));}const _0x490e80=_0x8c092d[_0x16f824(0x202)](hookDirectoryIdentity(_0x17ddd7));if(_0x490e80&&_0x490e80!==_0x234d1c[_0x16f824(0x240)][_0x16f824(0x1f6)]())throw CliErrors[_0x16f824(0x23e)](_0x16f824(0x254)+_0x5da91f+_0x16f824(0x23f)+_0x17ddd7+'\x22:\x20the\x20destination\x20is\x20another\x20Dataset\x20alias.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.');for(const _0x41a304 of _0x234d1c['keyChanges']){const _0x648856=_0x4b4939['functions'][_0x41a304[_0x16f824(0x1fc)]];if(_0x648856&&!_0x569b19[_0x16f824(0x26f)](_0x41a304[_0x16f824(0x1fc)])&&!sameHookIdentity(_0x41a304['entry'],_0x648856))throw CliErrors['validation'](_0x16f824(0x254)+_0x5da91f+_0x16f824(0x23f)+_0x17ddd7+_0x16f824(0x277));}_0x57cafa['push']({'oldDirectory':_0x5da91f,'newDirectory':_0x17ddd7,'oldDirectoryPath':_0x4b8786,'newDirectoryPath':_0x219738,'mode':_0x1f8549,'alias':_0x234d1c[_0x16f824(0x255)],'keyChanges':_0x234d1c[_0x16f824(0x225)]});}const _0x242ac6={..._0x4b4939[_0x16f824(0x273)]},_0x276957=new Map(),_0x53b7aa=new Map();for(const _0x4cbc5e of _0x57cafa){const _0x26fec7=_0x4cbc5e[_0x16f824(0x285)]!==_0x16f824(0x253);_0x26fec7&&_0x53b7aa['set'](hookDirectoryIdentity(_0x4cbc5e[_0x16f824(0x1fb)]),_0x4cbc5e['oldDirectoryPath']);for(const _0x2bbd07 of _0x4cbc5e[_0x16f824(0x225)]){const _0x4a6f24=_0x242ac6[_0x2bbd07[_0x16f824(0x1fc)]],_0x3acb9b=_0x26fec7?_0x2bbd07[_0x16f824(0x271)]:_0x4a6f24??_0x2bbd07[_0x16f824(0x271)];_0x242ac6[_0x2bbd07[_0x16f824(0x1fc)]]=canonicalizeHookEntry(_0x3acb9b,_0x4cbc5e[_0x16f824(0x255)]),delete _0x242ac6[_0x2bbd07['oldLockKey']],_0x26fec7&&_0x276957['set'](_0x2bbd07[_0x16f824(0x1fc)],resolveLocalFilePathFromLockKey(_0x52a9af,_0x2bbd07[_0x16f824(0x256)]));}}return{'migrations':_0x57cafa,'projectedFunctions':_0x242ac6,'sourceFilePathByNewLockKey':_0x276957,'sourceDirectoryPathByNewDirectory':_0x53b7aa};}function resolveMigratedSourceFilePath(_0x10f867,_0x3a5eca){const _0x5df7a1=a42_0x4347eb;if(!_0x10f867||!_0x3a5eca)return undefined;const _0x5d1c13=_0x10f867[_0x5df7a1(0x20e)][_0x5df7a1(0x202)](_0x3a5eca[_0x5df7a1(0x206)]);if(_0x5d1c13)return _0x5d1c13;if(_0x3a5eca[_0x5df7a1(0x259)]!=='HOOK')return undefined;const [,_0x4e8cf9,..._0x508d31]=_0x3a5eca['lockKey'][_0x5df7a1(0x1f0)]('/');if(!_0x4e8cf9||_0x508d31[_0x5df7a1(0x25a)]===0x0)return undefined;const _0xadbe30=_0x10f867['sourceDirectoryPathByNewDirectory'][_0x5df7a1(0x202)](hookDirectoryIdentity(_0x4e8cf9));return _0xadbe30?join(_0xadbe30,..._0x508d31)+'.js':undefined;}function sameHookIdentity(_0x360d7b,_0x4c4acc){const _0x561afa=a42_0x4347eb;return _0x360d7b['remoteId']===_0x4c4acc['remoteId']&&_0x360d7b[_0x561afa(0x240)]===_0x4c4acc[_0x561afa(0x240)]&&_0x360d7b[_0x561afa(0x1f1)]===_0x4c4acc['operationType']&&_0x360d7b[_0x561afa(0x263)]===_0x4c4acc['functionNode'];}function canonicalizeHookEntry(_0x1cdf53,_0x156d5a){const {alias:_0x1ad242,..._0x50eb3d}=_0x1cdf53;return _0x156d5a?{..._0x50eb3d,'alias':_0x156d5a}:_0x50eb3d;}function hookDirectoryIdentity(_0x3f4a3f){const _0x18d546=a42_0x4347eb;return _0x3f4a3f['normalize']('NFC')[_0x18d546(0x1f6)]();}function isSafeHookDirectorySegment(_0x33229c){return isSafeLockKeySegment(_0x33229c);}async function sameDirectory(_0x24caef,_0x73aaaa){const _0x18a83d=a42_0x4347eb,[_0x28fd66,_0x6aa05f]=await Promise[_0x18a83d(0x21f)]([stat(_0x24caef),stat(_0x73aaaa)]);return _0x28fd66[_0x18a83d(0x209)]===_0x6aa05f[_0x18a83d(0x209)]&&_0x28fd66[_0x18a83d(0x1fd)]===_0x6aa05f[_0x18a83d(0x1fd)];}async function applyHookDirectoryMigration(_0x521d69,_0xaa939f){const _0x28f8ea=a42_0x4347eb,_0x2e777b=_0xaa939f[_0x28f8ea(0x273)],_0x4026b8=_0xaa939f[_0x28f8ea(0x1fe)],_0x2f6339=[],_0xef035a=async()=>{const _0x9aaaea=_0x28f8ea,_0x536a78=[];_0xaa939f[_0x9aaaea(0x273)]=_0x2e777b,_0xaa939f[_0x9aaaea(0x1fe)]=_0x4026b8;for(const {migration:_0x3ee354,temporaryPath:_0x215386}of[..._0x2f6339][_0x9aaaea(0x1f7)]()){try{_0x215386?(await rename(_0x3ee354['newDirectoryPath'],_0x215386),await rename(_0x215386,_0x3ee354[_0x9aaaea(0x244)])):await rename(_0x3ee354[_0x9aaaea(0x22a)],_0x3ee354[_0x9aaaea(0x244)]);}catch(_0x33771e){_0x536a78['push'](new Error(_0x9aaaea(0x24c)+_0x3ee354[_0x9aaaea(0x27a)]+'\x22\x20from\x20\x22'+_0x3ee354[_0x9aaaea(0x1fb)]+'\x22:\x20'+(_0x33771e instanceof Error?_0x33771e[_0x9aaaea(0x25b)]:String(_0x33771e))));}}return _0x536a78;};try{for(const _0x37d059 of _0x521d69['migrations']){if(_0x37d059['mode']===_0x28f8ea(0x218))await ensureParentDirectory(_0x37d059['newDirectoryPath']),await rename(_0x37d059[_0x28f8ea(0x244)],_0x37d059['newDirectoryPath']),_0x2f6339['push']({'migration':_0x37d059});else{if(_0x37d059[_0x28f8ea(0x285)]===_0x28f8ea(0x222)){const _0x59377f=join(dirname(_0x37d059['oldDirectoryPath']),'.hook-directory-migrate-'+randomUUID());await rename(_0x37d059[_0x28f8ea(0x244)],_0x59377f);try{await rename(_0x59377f,_0x37d059['newDirectoryPath']);}catch(_0x1696cf){try{await rename(_0x59377f,_0x37d059[_0x28f8ea(0x244)]);}catch(_0x1aa01d){throw withRollbackErrors(_0x1696cf,_0x28f8ea(0x249)+_0x37d059['oldDirectory']+_0x28f8ea(0x23f)+_0x37d059['newDirectory']+_0x28f8ea(0x270)+_0x59377f+_0x28f8ea(0x243),[new Error(_0x28f8ea(0x26b)+_0x59377f+_0x28f8ea(0x23f)+_0x37d059[_0x28f8ea(0x27a)]+'\x22:\x20'+(_0x1aa01d instanceof Error?_0x1aa01d[_0x28f8ea(0x25b)]:String(_0x1aa01d)))]);}throw _0x1696cf;}_0x2f6339['push']({'migration':_0x37d059,'temporaryPath':_0x59377f});}}}return _0xaa939f['functions']=_0x521d69[_0x28f8ea(0x21e)],{'rollback':_0xef035a};}catch(_0x117e37){const _0xc2ce48=await _0xef035a();throw withRollbackErrors(_0x117e37,'Failed\x20to\x20migrate\x20HOOK\x20directories;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.',_0xc2ce48);}}async function confirmForce(){const _0x276add=a42_0x4347eb,_0x40305c=createInterface({'input':process['stdin'],'output':process[_0x276add(0x267)]}),_0xf9cc25=await new Promise(_0x38d63f=>{const _0x904eca=_0x276add;_0x40305c['question'](_0x904eca(0x23b),_0x38d63f);});return _0x40305c[_0x276add(0x25d)](),['y',_0x276add(0x241)][_0x276add(0x215)](_0xf9cc25[_0x276add(0x1f2)]()[_0x276add(0x1f6)]());}
1
+ const a42_0x1ed11b=a42_0x312a;(function(_0x25ef4d,_0x3f1494){const _0xc0654a=a42_0x312a,_0x282710=_0x25ef4d();while(!![]){try{const _0x2d5979=-parseInt(_0xc0654a(0xa8))/0x1+-parseInt(_0xc0654a(0xa7))/0x2*(-parseInt(_0xc0654a(0xcb))/0x3)+parseInt(_0xc0654a(0xc0))/0x4+parseInt(_0xc0654a(0x81))/0x5+parseInt(_0xc0654a(0x9f))/0x6*(parseInt(_0xc0654a(0xdc))/0x7)+-parseInt(_0xc0654a(0xde))/0x8*(parseInt(_0xc0654a(0x7c))/0x9)+parseInt(_0xc0654a(0x100))/0xa*(-parseInt(_0xc0654a(0x70))/0xb);if(_0x2d5979===_0x3f1494)break;else _0x282710['push'](_0x282710['shift']());}catch(_0x130c0f){_0x282710['push'](_0x282710['shift']());}}}(a42_0x27f3,0x7e54e));import{createInterface}from'node:readline';import{readFile,rename,stat,unlink,writeFile}from'node:fs/promises';import{randomUUID}from'node:crypto';import{dirname,join}from'node:path';import{BFF_LIST_PAGE_SIZE,listBffScripts,getBffScriptStatistics}from'../../core/api-client.js';import{loadAliasMap}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{createHookLocationMap,directoryExists,ensureParentDirectory,fileExists,isSafeLockKeySegment,normalizeBffType,resolveLocalFilePathFromLockKey,resolveRemoteScriptTarget,scanLocalBffFunctions}from'../../core/bff/file-system.js';import{computeContentHash,computeFileHash}from'../../core/bff/hash.js';import{assertUnambiguousHookAliases}from'../../core/bff/hook-directory.js';import{createEmptyBffLock,ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const bffPull={'service':a42_0x1ed11b(0xba),'command':a42_0x1ed11b(0x9c),'description':a42_0x1ed11b(0xd3),'risk':a42_0x1ed11b(0x87),'structuredErrors':!![],'flags':[{'name':a42_0x1ed11b(0xa4),'type':a42_0x1ed11b(0xac),'description':a42_0x1ed11b(0xbe),'enum':['COMMON',a42_0x1ed11b(0xa5),'HOOK']},{'name':a42_0x1ed11b(0xc2),'type':'boolean','description':a42_0x1ed11b(0xb7)}],async 'dryRun'(_0x41c5ba){const _0x479688=a42_0x1ed11b,_0x57697e=loadBffProjectConfig(_0x41c5ba[_0x479688(0xb5)]),_0x21934a=await readBffLockFile(_0x57697e[_0x479688(0x7d)]),{appLock:_0x397e1f}=ensureLockScope(_0x21934a??createEmptyBffLock(),_0x41c5ba[_0x479688(0xb5)],_0x57697e[_0x479688(0xa3)],_0x479688(0x9c)),_0x3f6bff=normalizeBffType(_0x41c5ba[_0x479688(0x8d)](_0x479688(0xa4)))??undefined,[_0x5d2e91,_0x29a83f]=await Promise[_0x479688(0xd0)]([listBffScripts(_0x41c5ba[_0x479688(0xb5)],_0x3f6bff),getBffScriptStatistics(_0x41c5ba[_0x479688(0xb5)])]),_0x485c7b=_0x5d2e91[_0x479688(0xf8)](_0x5c31b6=>normalizeBffType(_0x5c31b6[_0x479688(0xef)])===_0x479688(0x93)),_0x243147=_0x485c7b?buildDatasetCodeToAliasMap(_0x41c5ba[_0x479688(0xc7)],_0x41c5ba[_0x479688(0xb5)],_0x41c5ba[_0x479688(0x6f)]||_0x41c5ba['mergedCli']?.['currentApp']||_0x41c5ba[_0x479688(0x8b)]?.[_0x479688(0xf3)]):new Map(),_0x5ee1af=_0x485c7b?await planHookDirectoryMigration(_0x57697e,_0x397e1f,_0x243147,await scanLocalBffFunctions(_0x57697e,_0x479688(0x93))):undefined,_0x3ecf68=createHookLocationMap(_0x29a83f),_0x5ee889=[];for(const _0x57d25a of _0x5d2e91){const _0x2cb8c4=resolveRemoteScriptTarget(_0x57697e,_0x57d25a,_0x3ecf68,_0x5ee1af?.['projectedFunctions']??_0x397e1f[_0x479688(0xe7)],_0x243147);if(!_0x2cb8c4){_0x5ee889['push']({'scriptType':_0x57d25a['scriptType'],'functionName':_0x57d25a[_0x479688(0x76)]??'','status':_0x479688(0xf1),'reason':_0x479688(0x73)});continue;}const _0x1b42be=(_0x5ee1af?.[_0x479688(0xe8)]??_0x397e1f[_0x479688(0xe7)])[_0x2cb8c4['lockKey']],_0x577728=_0x57d25a[_0x479688(0x78)]!=null?computeContentHash(_0x57d25a[_0x479688(0x78)]):undefined,_0x4b128b=await hasUnsyncedLocalChanges(resolveMigratedSourceFilePath(_0x5ee1af,_0x2cb8c4)??_0x2cb8c4[_0x479688(0x6b)],_0x1b42be,_0x577728),_0x26b9a6=_0x4b128b?localUnsyncedConflict(_0x2cb8c4,_0x57d25a['id']):undefined;_0x5ee889[_0x479688(0xc5)]({'lockKey':_0x2cb8c4['lockKey'],'filePath':_0x2cb8c4[_0x479688(0x6b)],'remoteId':_0x57d25a['id']??null,'status':_0x26b9a6?_0x479688(0x6d):'would_pull',..._0x26b9a6?{'conflict':_0x26b9a6}:{},..._0x2cb8c4['hookLocation']?{'alias':_0x2cb8c4[_0x479688(0x84)][_0x479688(0xb9)]??null,'datasetCode':_0x2cb8c4['hookLocation'][_0x479688(0x82)],'operationType':_0x2cb8c4['hookLocation'][_0x479688(0xbb)],'functionNode':_0x2cb8c4[_0x479688(0x84)]['functionNode']}:{}});}return{'method':'GET','url':_0x479688(0xea)+_0x41c5ba['appCode']+(_0x3f6bff?_0x479688(0x7b)+_0x3f6bff:'')+'&currentPage=1&pageSize='+BFF_LIST_PAGE_SIZE,'body':{'appCode':_0x41c5ba[_0x479688(0xb5)],'filterType':_0x3f6bff??null,..._0x5ee1af&&_0x5ee1af[_0x479688(0xc1)][_0x479688(0xf2)]>0x0?{'hookDirectoryMigrations':_0x5ee1af[_0x479688(0xc1)]['map'](_0x1d1c34=>({'from':_0x1d1c34['oldDirectory'],'to':_0x1d1c34['newDirectory']}))}:{},'files':_0x5ee889},'description':_0x479688(0x6e)+_0x5ee889[_0x479688(0xf2)]+_0x479688(0xcd)};},async 'execute'(_0x3ef074){const _0x4ab50f=a42_0x1ed11b,_0x45fa9d=loadBffProjectConfig(_0x3ef074[_0x4ab50f(0xb5)]),_0x45650f=await readBffLockFile(_0x45fa9d[_0x4ab50f(0x7d)]),{lockData:_0x1a3d3e,appLock:_0x3c3014}=ensureLockScope(_0x45650f??createEmptyBffLock(),_0x3ef074[_0x4ab50f(0xb5)],_0x45fa9d[_0x4ab50f(0xa3)],_0x4ab50f(0x9c)),_0x5f58a0=normalizeBffType(_0x3ef074['str']('type'))??undefined;if(_0x3ef074[_0x4ab50f(0x8d)]('type')&&!_0x5f58a0)throw CliErrors[_0x4ab50f(0xf0)](_0x4ab50f(0xaf));const [_0xc8980c,_0x29f09c]=await Promise[_0x4ab50f(0xd0)]([listBffScripts(_0x3ef074[_0x4ab50f(0xb5)],_0x5f58a0),getBffScriptStatistics(_0x3ef074[_0x4ab50f(0xb5)])]);if(_0xc8980c[_0x4ab50f(0xf2)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'conflicts':[],'failed':[]},'message':_0x4ab50f(0xc6)};const _0x3e0ad7=_0x3ef074[_0x4ab50f(0x71)]('force');if(_0x3e0ad7&&!_0x3ef074[_0x4ab50f(0xfe)]){const _0x5c2419=await confirmForce();if(!_0x5c2419)throw CliErrors['cancelled'](_0x4ab50f(0xed));}if(_0x3e0ad7&&_0x3ef074['nonInteractive']){}const _0x1a025c=_0xc8980c[_0x4ab50f(0xf8)](_0x381907=>normalizeBffType(_0x381907[_0x4ab50f(0xef)])===_0x4ab50f(0x93)),_0x38818a=_0x1a025c?buildDatasetCodeToAliasMap(_0x3ef074[_0x4ab50f(0xc7)],_0x3ef074[_0x4ab50f(0xb5)],_0x3ef074[_0x4ab50f(0x6f)]||_0x3ef074['mergedCli']?.['currentApp']||_0x3ef074[_0x4ab50f(0x8b)]?.[_0x4ab50f(0xf3)]):new Map(),_0x137574=createHookLocationMap(_0x29f09c),_0x78b1b4=JSON[_0x4ab50f(0xd4)](JSON['stringify'](_0x1a3d3e)),_0x3f1c7d=_0x3ef074['appCode'],_0x584716=_0x78b1b4['apps'][_0x3f1c7d];if(!_0x584716)throw new Error(_0x4ab50f(0xad)+_0x3f1c7d+_0x4ab50f(0xe4));const _0x67e927=_0x1a025c?await applyHookDirectoryMigration(await planHookDirectoryMigration(_0x45fa9d,_0x584716,_0x38818a,await scanLocalBffFunctions(_0x45fa9d,_0x4ab50f(0x93))),_0x584716):undefined,_0x231ace=createPullFileTransaction(),_0xe9671e=[],_0x353c2b=[],_0x44e301=[],_0x2fa636=[];for(const _0x494b52 of _0xc8980c){const _0x808d87=resolveRemoteScriptTarget(_0x45fa9d,_0x494b52,_0x137574,_0x584716[_0x4ab50f(0xe7)],_0x38818a);if(!_0x808d87){_0x353c2b['push']({'lockKey':_0x494b52[_0x4ab50f(0xef)]+'/'+_0x494b52[_0x4ab50f(0x76)],'reason':_0x4ab50f(0x73)});continue;}const _0x1b0f29=_0x584716[_0x4ab50f(0xe7)][_0x808d87[_0x4ab50f(0x91)]];try{if(!_0x494b52['id'])throw new Error(_0x4ab50f(0xa6));if(_0x494b52[_0x4ab50f(0x78)]==null)throw new Error('Remote\x20script\x20missing\x20content.');const _0x529352=_0x494b52[_0x4ab50f(0x78)],_0x56f0ef=computeContentHash(_0x529352);if(!_0x3e0ad7){const _0x4549de=await hasUnsyncedLocalChanges(_0x808d87[_0x4ab50f(0x6b)],_0x1b0f29,_0x56f0ef);if(_0x4549de){_0x44e301[_0x4ab50f(0xc5)](localUnsyncedConflict(_0x808d87,_0x494b52['id']));continue;}}await _0x231ace['write'](_0x808d87['filePath'],_0x529352);const _0x2ee789={'hash':_0x56f0ef,'remoteId':_0x494b52['id'],'version':_0x494b52[_0x4ab50f(0xa9)]};_0x808d87['type']===_0x4ab50f(0x93)&&_0x808d87['hookLocation']&&(_0x2ee789[_0x4ab50f(0xb9)]=_0x808d87['hookLocation'][_0x4ab50f(0xb9)],_0x2ee789[_0x4ab50f(0x82)]=_0x808d87['hookLocation']['datasetCode'],_0x2ee789[_0x4ab50f(0xbb)]=_0x808d87[_0x4ab50f(0x84)][_0x4ab50f(0xbb)],_0x2ee789[_0x4ab50f(0x89)]=_0x808d87[_0x4ab50f(0x84)][_0x4ab50f(0x89)]),_0x584716[_0x4ab50f(0xe7)][_0x808d87['lockKey']]=_0x2ee789,_0xe9671e['push']({'lockKey':_0x808d87[_0x4ab50f(0x91)],'remoteId':_0x494b52['id']});}catch(_0x57d4c0){_0x2fa636[_0x4ab50f(0xc5)]({'lockKey':_0x808d87[_0x4ab50f(0x91)],'error':_0x57d4c0 instanceof Error?_0x57d4c0['message']:String(_0x57d4c0)});}}_0x584716[_0x4ab50f(0xce)]=new Date()[_0x4ab50f(0xc4)]();try{await writeBffLockFile(_0x45fa9d[_0x4ab50f(0x7d)],_0x78b1b4);}catch(_0x52efc5){const _0x5dcb05=[...await _0x231ace[_0x4ab50f(0xcc)](),...await _0x67e927?.[_0x4ab50f(0xcc)]()??[]];throw withRollbackErrors(_0x52efc5,_0x4ab50f(0xae),_0x5dcb05);}return{'ok':_0x2fa636['length']===0x0,'data':{'pulled':_0xe9671e,'skipped':_0x353c2b,'conflicts':_0x44e301,'failed':_0x2fa636},'message':formatPullMessage(_0xe9671e[_0x4ab50f(0xf2)],_0x353c2b[_0x4ab50f(0xf2)],_0x44e301['length'],_0x2fa636[_0x4ab50f(0xf2)])};}};function localUnsyncedConflict(_0x405d3e,_0x50d88f){const _0x4fc3bb=a42_0x1ed11b,_0x9e271f=_0x405d3e[_0x4fc3bb(0x91)][_0x4fc3bb(0x94)]('/')['at'](-0x1);return{'code':_0x4fc3bb(0xda),'lockKey':_0x405d3e['lockKey'],'filePath':_0x405d3e[_0x4fc3bb(0x6b)],..._0x50d88f!=null?{'remoteId':_0x50d88f}:{},'message':_0x4fc3bb(0x88),'nextAction':{'action':_0x4fc3bb(0xee),'command':CLI_BIN_NAME+_0x4fc3bb(0xb6)+_0x405d3e['type']+'\x20--name\x20'+_0x9e271f+_0x4fc3bb(0xb4),'requiresReview':!![],'message':_0x4fc3bb(0x97)}};}function formatPullMessage(_0x40532a,_0x2add83,_0xedcb4,_0xabc176){const _0x1d3425=a42_0x1ed11b,_0x2cc078=['Pull\x20complete:\x20'+_0x40532a+_0x1d3425(0xd7),_0x2add83+_0x1d3425(0xa1)];_0xedcb4>0x0&&_0x2cc078[_0x1d3425(0xc5)](_0xedcb4+'\x20conflict'+(_0xedcb4===0x1?'':'s')+'\x20'+(_0xedcb4===0x1?_0x1d3425(0xcf):_0x1d3425(0xe9))+'\x20resolution');if(_0xabc176>0x0)_0x2cc078[_0x1d3425(0xc5)](_0xabc176+_0x1d3425(0xb3));return _0x2cc078['join'](',\x20');}async function hasUnsyncedLocalChanges(_0x12a6ab,_0x25c697,_0x5445ee){const _0x2e5697=a42_0x1ed11b;if(!await fileExists(_0x12a6ab))return![];const _0x13bde1=await computeFileHash(_0x12a6ab);if(!_0x25c697)return _0x5445ee?_0x13bde1!==_0x5445ee:!![];return _0x13bde1!==_0x25c697[_0x2e5697(0x96)];}function createPullFileTransaction(){const _0x3f1aac=new Map(),_0x379f54=async(_0x247edd,_0x1ba3f9)=>{const _0x35390b=a42_0x312a;try{if(_0x1ba3f9['existed'])await ensureParentDirectory(_0x247edd),await writeFile(_0x247edd,_0x1ba3f9[_0x35390b(0xe0)]);else try{await unlink(_0x247edd);}catch(_0x1629e2){if(_0x1629e2['code']!==_0x35390b(0xbc))throw _0x1629e2;}return undefined;}catch(_0x4dcba9){return _0x4dcba9 instanceof Error?_0x4dcba9:new Error(String(_0x4dcba9));}};return{async 'write'(_0x4bd476,_0x40da09){const _0x1d4ae9=a42_0x312a;if(!_0x3f1aac['has'](_0x4bd476))try{_0x3f1aac['set'](_0x4bd476,{'existed':!![],'content':await readFile(_0x4bd476)});}catch(_0x520252){if(_0x520252[_0x1d4ae9(0x83)]!==_0x1d4ae9(0xbc))throw _0x520252;_0x3f1aac[_0x1d4ae9(0xaa)](_0x4bd476,{'existed':![]});}try{await ensureParentDirectory(_0x4bd476),await writeFile(_0x4bd476,_0x40da09,'utf8');}catch(_0x14524e){const _0x24f092=await _0x379f54(_0x4bd476,_0x3f1aac['get'](_0x4bd476));if(!_0x24f092)_0x3f1aac[_0x1d4ae9(0x95)](_0x4bd476);throw withRollbackErrors(_0x14524e,_0x1d4ae9(0x9b)+_0x4bd476+'\x22.',_0x24f092?[_0x24f092]:[]);}},async 'rollback'(){const _0x39e290=a42_0x312a,_0xb55393=[];for(const [_0x314c51,_0x40f927]of[..._0x3f1aac[_0x39e290(0xd9)]()][_0x39e290(0x85)]()){const _0x5bd8ef=await _0x379f54(_0x314c51,_0x40f927);_0x5bd8ef&&_0xb55393['push'](new Error(_0x39e290(0xa0)+_0x314c51+'\x22:\x20'+_0x5bd8ef[_0x39e290(0xd5)]));}return _0xb55393;}};}function withRollbackErrors(_0x25500e,_0x5b86bc,_0xda66a4){const _0x1373c0=a42_0x1ed11b,_0x29b933=_0x25500e instanceof Error?_0x25500e:new Error(String(_0x25500e));if(_0xda66a4[_0x1373c0(0xf2)]===0x0)return _0x29b933;return new AggregateError([_0x29b933,..._0xda66a4],_0x5b86bc+_0x1373c0(0xd8)+_0xda66a4[_0x1373c0(0x99)](_0x1330b0=>_0x1330b0[_0x1373c0(0xd5)])[_0x1373c0(0xf9)](';\x20'));}function buildDatasetCodeToAliasMap(_0x25faae,_0x55f02b,_0x4ff7ee){const _0x5dff79=a42_0x1ed11b,_0x46f60c=resolveApiModelSource(_0x25faae,_0x55f02b,_0x4ff7ee),_0x5cadc3=loadAliasMap(_0x25faae,undefined,_0x46f60c[_0x5dff79(0x6b)],_0x46f60c[_0x5dff79(0xe3)]);return assertUnambiguousHookAliases(_0x5cadc3),new Map(_0x5cadc3[_0x5dff79(0x99)](_0x1cd78d=>[_0x1cd78d['datasetCode'][_0x5dff79(0x7f)](),_0x1cd78d[_0x5dff79(0xb9)]]));}async function planHookDirectoryMigration(_0x422a07,_0x544819,_0x10c972,_0x4b0a99){const _0x2cdb7c=a42_0x1ed11b,_0xe8b908=new Map();for(const [_0x210066,_0x5ca5fe]of Object[_0x2cdb7c(0xd9)](_0x544819[_0x2cdb7c(0xe7)])){const [_0x4b029b,_0x2fb530,_0x32d61c,_0x4d90d9,_0x55f231,..._0x41818a]=_0x210066[_0x2cdb7c(0x94)]('/');if(_0x4b029b!==_0x2cdb7c(0x93)||!_0x2fb530||!_0x32d61c||!_0x4d90d9||!_0x55f231||_0x41818a['length']>0x0||!_0x5ca5fe[_0x2cdb7c(0x82)])continue;const _0x470cd1=_0x10c972['get'](_0x5ca5fe[_0x2cdb7c(0x82)][_0x2cdb7c(0x7f)]()),_0x35c732=_0x470cd1??_0x5ca5fe['datasetCode'];if(!isSafeHookDirectorySegment(_0x2fb530))throw CliErrors[_0x2cdb7c(0xf0)](_0x2cdb7c(0x74)+_0x2fb530+_0x2cdb7c(0x72));if(!isSafeHookDirectorySegment(_0x35c732))throw CliErrors[_0x2cdb7c(0xf0)](_0x2cdb7c(0xfd)+_0x2fb530+'\x22:\x20its\x20target\x20directory\x20is\x20unsafe.');if(_0x2fb530===_0x35c732)continue;const _0x23b91e=_0xe8b908['get'](_0x2fb530)??{'datasetCode':_0x5ca5fe[_0x2cdb7c(0x82)],'alias':_0x470cd1,'keyChanges':[]};if(_0x23b91e[_0x2cdb7c(0x82)]!==_0x5ca5fe[_0x2cdb7c(0x82)])throw CliErrors['validation'](_0x2cdb7c(0xfd)+_0x2fb530+'\x22:\x20it\x20is\x20tracked\x20by\x20multiple\x20Datasets.');const _0x27b52f=_0x2cdb7c(0xc3)+_0x35c732+'/'+_0x32d61c+'/'+_0x4d90d9+'/'+_0x55f231;try{resolveLocalFilePathFromLockKey(_0x422a07,_0x210066),resolveLocalFilePathFromLockKey(_0x422a07,_0x27b52f);}catch(_0x365dbb){throw CliErrors['validation'](_0x2cdb7c(0xe6)+_0x210066+_0x2cdb7c(0x75)+(_0x365dbb instanceof Error?_0x365dbb[_0x2cdb7c(0xd5)]:String(_0x365dbb)));}_0x23b91e['keyChanges']['push']({'oldLockKey':_0x210066,'newLockKey':_0x27b52f,'entry':_0x5ca5fe}),_0xe8b908[_0x2cdb7c(0xaa)](_0x2fb530,_0x23b91e);}const _0x116b0d=new Set([..._0xe8b908[_0x2cdb7c(0xd2)]()][_0x2cdb7c(0x8e)](_0x47e776=>_0x47e776[_0x2cdb7c(0x7e)]['map'](_0x4c4bc6=>_0x4c4bc6['oldLockKey']))),_0x26b5e8=new Map(),_0x86c4d1=new Map();for(const [_0x471883,_0x12d757]of _0xe8b908){const _0x41e939=_0x12d757['alias']??_0x12d757[_0x2cdb7c(0x82)],_0x52df9f=hookDirectoryIdentity(_0x41e939),_0x308b7d=_0x26b5e8[_0x2cdb7c(0xfa)](_0x52df9f);if(_0x308b7d&&_0x308b7d!==_0x471883)throw CliErrors[_0x2cdb7c(0xf0)](_0x2cdb7c(0xb1)+_0x308b7d+'\x22\x20and\x20\x22'+_0x471883+_0x2cdb7c(0xbf)+_0x41e939+_0x2cdb7c(0xe1));_0x26b5e8[_0x2cdb7c(0xaa)](_0x52df9f,_0x471883);for(const _0x35fa1d of _0x12d757[_0x2cdb7c(0x7e)]){const _0x59bfd2=_0x86c4d1[_0x2cdb7c(0xfa)](_0x35fa1d[_0x2cdb7c(0xab)]);if(_0x59bfd2&&_0x59bfd2!==_0x35fa1d['oldLockKey'])throw CliErrors['validation'](_0x2cdb7c(0xc8)+_0x59bfd2+'\x22\x20and\x20\x22'+_0x35fa1d[_0x2cdb7c(0xdb)]+_0x2cdb7c(0xbf)+_0x35fa1d[_0x2cdb7c(0xab)]+_0x2cdb7c(0x8c));if(_0x116b0d['has'](_0x35fa1d[_0x2cdb7c(0xab)]))throw CliErrors['validation']('Cannot\x20migrate\x20HOOK\x20lock\x20key\x20\x22'+_0x35fa1d['oldLockKey']+_0x2cdb7c(0xf6)+_0x35fa1d['newLockKey']+'\x22\x20is\x20another\x20legacy\x20key\x20being\x20migrated.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.');_0x86c4d1[_0x2cdb7c(0xaa)](_0x35fa1d[_0x2cdb7c(0xab)],_0x35fa1d[_0x2cdb7c(0xdb)]);}}const _0x347dbc=new Map();for(const [_0x2c3872,_0x254ea1]of _0x10c972){_0x347dbc['set'](hookDirectoryIdentity(_0x254ea1),_0x2c3872);}const _0x2dc6ee=[];for(const [_0x4ddd9e,_0x3fd6d2]of _0xe8b908){const _0x3c7139=_0x3fd6d2[_0x2cdb7c(0xb9)]??_0x3fd6d2['datasetCode'],_0x2c2471=join(_0x422a07['scriptsRootDir'],'HOOK',_0x4ddd9e),_0x32738b=join(_0x422a07[_0x2cdb7c(0x8f)],_0x2cdb7c(0x93),_0x3c7139),_0x452906=await directoryExists(_0x2c2471),_0x46df9a=await directoryExists(_0x32738b),_0x3050c8=_0x452906?_0x46df9a?await sameDirectory(_0x2c2471,_0x32738b)?_0x2cdb7c(0x6c):undefined:_0x2cdb7c(0x92):_0x2cdb7c(0xf7);if(!_0x3050c8)throw CliErrors[_0x2cdb7c(0xf0)](_0x2cdb7c(0xfd)+_0x4ddd9e+_0x2cdb7c(0xb2)+_0x3c7139+_0x2cdb7c(0xf5));const _0x1d9498=_0x347dbc['get'](hookDirectoryIdentity(_0x4ddd9e));if(_0x1d9498&&_0x1d9498!==_0x3fd6d2[_0x2cdb7c(0x82)]['toLowerCase']()){const _0x2d5494=new Set(_0x3fd6d2[_0x2cdb7c(0x7e)]['map'](_0x5bd060=>_0x5bd060[_0x2cdb7c(0xdb)])),_0x74d4d=_0x4b0a99[_0x2cdb7c(0x9d)](_0x1c6b9f=>_0x1c6b9f[_0x2cdb7c(0xa4)]==='HOOK'&&_0x1c6b9f[_0x2cdb7c(0xb9)]!=null&&hookDirectoryIdentity(_0x1c6b9f[_0x2cdb7c(0xb9)])===hookDirectoryIdentity(_0x4ddd9e)&&!_0x2d5494[_0x2cdb7c(0xfc)](_0x1c6b9f[_0x2cdb7c(0x91)]));if(_0x74d4d[_0x2cdb7c(0xf2)]>0x0)throw CliErrors[_0x2cdb7c(0xf0)](_0x2cdb7c(0xfd)+_0x4ddd9e+_0x2cdb7c(0xfb));}const _0x196143=_0x347dbc[_0x2cdb7c(0xfa)](hookDirectoryIdentity(_0x3c7139));if(_0x196143&&_0x196143!==_0x3fd6d2[_0x2cdb7c(0x82)]['toLowerCase']())throw CliErrors['validation'](_0x2cdb7c(0xfd)+_0x4ddd9e+_0x2cdb7c(0xb2)+_0x3c7139+_0x2cdb7c(0xca));for(const _0x100ca0 of _0x3fd6d2[_0x2cdb7c(0x7e)]){const _0x4f5996=_0x544819[_0x2cdb7c(0xe7)][_0x100ca0[_0x2cdb7c(0xab)]];if(_0x4f5996&&!_0x116b0d[_0x2cdb7c(0xfc)](_0x100ca0['newLockKey'])&&!sameHookIdentity(_0x100ca0[_0x2cdb7c(0x9a)],_0x4f5996))throw CliErrors['validation'](_0x2cdb7c(0xfd)+_0x4ddd9e+_0x2cdb7c(0xb2)+_0x3c7139+_0x2cdb7c(0xd6));}_0x2dc6ee[_0x2cdb7c(0xc5)]({'oldDirectory':_0x4ddd9e,'newDirectory':_0x3c7139,'oldDirectoryPath':_0x2c2471,'newDirectoryPath':_0x32738b,'mode':_0x3050c8,'alias':_0x3fd6d2['alias'],'keyChanges':_0x3fd6d2[_0x2cdb7c(0x7e)]});}const _0x1c8051={..._0x544819[_0x2cdb7c(0xe7)]},_0x1951c7=new Map(),_0x5dcf81=new Map();for(const _0x22aa23 of _0x2dc6ee){const _0x3df940=_0x22aa23[_0x2cdb7c(0xd1)]!==_0x2cdb7c(0xf7);_0x3df940&&_0x5dcf81['set'](hookDirectoryIdentity(_0x22aa23[_0x2cdb7c(0xc9)]),_0x22aa23['oldDirectoryPath']);for(const _0x39b573 of _0x22aa23[_0x2cdb7c(0x7e)]){const _0x298c11=_0x1c8051[_0x39b573['newLockKey']],_0x12eeee=_0x3df940?_0x39b573['entry']:_0x298c11??_0x39b573['entry'];_0x1c8051[_0x39b573[_0x2cdb7c(0xab)]]=canonicalizeHookEntry(_0x12eeee,_0x22aa23[_0x2cdb7c(0xb9)]),delete _0x1c8051[_0x39b573[_0x2cdb7c(0xdb)]],_0x3df940&&_0x1951c7[_0x2cdb7c(0xaa)](_0x39b573[_0x2cdb7c(0xab)],resolveLocalFilePathFromLockKey(_0x422a07,_0x39b573['oldLockKey']));}}return{'migrations':_0x2dc6ee,'projectedFunctions':_0x1c8051,'sourceFilePathByNewLockKey':_0x1951c7,'sourceDirectoryPathByNewDirectory':_0x5dcf81};}function a42_0x27f3(){const _0x43dfc7=['\x20skipped','remoteId','scriptsRoot','type','ENDPOINT','Remote\x20script\x20missing\x20id.','2GKoNxY','353496eqEjlR','version','set','newLockKey','string','Lock\x20scope\x20for\x20app\x20\x22','Failed\x20to\x20write\x20the\x20Backend\x20Function\x20lock\x20file;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','\x22;\x20temporary\x20directory\x20\x22','Cannot\x20migrate\x20HOOK\x20directories\x20\x22','\x22\x20to\x20\x22','\x20failed','\x20--format\x20compress','appCode','\x20bff\x20push\x20--type\x20','Force\x20overwrite\x20local\x20unsynced\x20changes','stdin','alias','bff','operationType','ENOENT','Failed\x20to\x20migrate\x20HOOK\x20directories;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','Pull\x20only\x20this\x20script\x20type','\x22:\x20both\x20target\x20\x22','1840788idJdxl','migrations','force','HOOK/','toISOString','push','No\x20remote\x20Backend\x20Function\x20scripts\x20found.','apiDir','Cannot\x20migrate\x20HOOK\x20lock\x20keys\x20\x22','newDirectory','\x22:\x20the\x20destination\x20is\x20another\x20Dataset\x20alias.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','1807833cUMzmI','rollback','\x20remote\x20Backend\x20Function\x20script(s)\x20for\x20pull','lastSync','requires','all','mode','values','Pull\x20remote\x20Backend\x20Function\x20scripts\x20to\x20local','parse','message','\x22:\x20target\x20lock\x20key\x20is\x20already\x20bound\x20to\x20another\x20script.','\x20pulled','\x20Recovery\x20errors:\x20','entries','BFF_LOCAL_UNSYNCED','oldLockKey','7qBdVYa','NFC','8Xpxleq','oldDirectory','content','\x22.\x20Resolve\x20the\x20directories\x20manually\x20before\x20retrying.','stderr','profileName','\x22\x20not\x20found\x20after\x20ensureLockScope.','.js','Cannot\x20migrate\x20unsafe\x20HOOK\x20lock\x20key\x20\x22','functions','projectedFunctions','require','/api/management/library/scripts/list?appCode=','sourceFilePathByNewLockKey','sourceDirectoryPathByNewDirectory','Force\x20pull\x20cancelled.','push_local','scriptType','validation','skipped','length','defaultApp','newDirectoryPath','\x22:\x20the\x20target\x20directory\x20already\x20exists.\x20Resolve\x20the\x20directories\x20and\x20retry.','\x22:\x20its\x20target\x20\x22','rekey','some','join','get','\x22:\x20it\x20is\x20now\x20another\x20Dataset\x20alias\x20and\x20contains\x20untracked\x20scripts.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','has','Cannot\x20migrate\x20HOOK\x20directory\x20\x22','nonInteractive','close','1470lsUaSt','filePath','case-rename','conflict','Would\x20inspect\x20','selectedAppName','22429rkaqjT','bool','\x22\x20from\x20the\x20lock\x20file.','unresolvable\x20target\x20path','Cannot\x20migrate\x20unsafe\x20HOOK\x20directory\x20\x22','\x22:\x20','functionName','Could\x20not\x20restore\x20temporary\x20HOOK\x20directory\x20\x22','scriptContent','yes','Failed\x20to\x20rename\x20HOOK\x20directory\x20\x22','&type=','6746121HKgZVq','lockFilePath','keyChanges','toLowerCase','normalize','2710160AbWVxw','datasetCode','code','hookLocation','reverse','ino','read','Local\x20script\x20differs\x20from\x20the\x20last\x20pulled\x20version.\x20Review\x20it\x20before\x20choosing\x20the\x20source\x20of\x20truth.','functionNode','Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20','mergedCli','\x22.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','str','flatMap','scriptsRootDir','includes','lockKey','move','HOOK','split','delete','hash','If\x20the\x20reviewed\x20local\x20script\x20should\x20win,\x20run\x20this\x20command\x20to\x20update\x20the\x20remote\x20script.\x20Do\x20not\x20use\x20--force\x20to\x20resolve\x20a\x20content\x20conflict.','dev','map','entry','Failed\x20to\x20write\x20local\x20script\x20\x22','pull','filter','oldDirectoryPath','1892472WPPBah','Could\x20not\x20restore\x20local\x20script\x20\x22'];a42_0x27f3=function(){return _0x43dfc7;};return a42_0x27f3();}function a42_0x312a(_0x6bf2a7,_0x1be3f0){_0x6bf2a7=_0x6bf2a7-0x6b;const _0x27f36d=a42_0x27f3();let _0x312abc=_0x27f36d[_0x6bf2a7];return _0x312abc;}function resolveMigratedSourceFilePath(_0x5a796c,_0x56fa5c){const _0x2e0333=a42_0x1ed11b;if(!_0x5a796c||!_0x56fa5c)return undefined;const _0x1b8ca6=_0x5a796c[_0x2e0333(0xeb)][_0x2e0333(0xfa)](_0x56fa5c[_0x2e0333(0x91)]);if(_0x1b8ca6)return _0x1b8ca6;if(_0x56fa5c['type']!==_0x2e0333(0x93))return undefined;const [,_0x32c7b3,..._0x45300b]=_0x56fa5c['lockKey']['split']('/');if(!_0x32c7b3||_0x45300b[_0x2e0333(0xf2)]===0x0)return undefined;const _0x1c17b7=_0x5a796c[_0x2e0333(0xec)]['get'](hookDirectoryIdentity(_0x32c7b3));return _0x1c17b7?join(_0x1c17b7,..._0x45300b)+_0x2e0333(0xe5):undefined;}function sameHookIdentity(_0x4ab39f,_0x11aa3a){const _0x285e5f=a42_0x1ed11b;return _0x4ab39f[_0x285e5f(0xa2)]===_0x11aa3a[_0x285e5f(0xa2)]&&_0x4ab39f[_0x285e5f(0x82)]===_0x11aa3a[_0x285e5f(0x82)]&&_0x4ab39f[_0x285e5f(0xbb)]===_0x11aa3a[_0x285e5f(0xbb)]&&_0x4ab39f[_0x285e5f(0x89)]===_0x11aa3a['functionNode'];}function canonicalizeHookEntry(_0x390bad,_0xeb4b03){const {alias:_0x3de7e5,..._0x4d2f15}=_0x390bad;return _0xeb4b03?{..._0x4d2f15,'alias':_0xeb4b03}:_0x4d2f15;}function hookDirectoryIdentity(_0x35812c){const _0x561c8d=a42_0x1ed11b;return _0x35812c[_0x561c8d(0x80)](_0x561c8d(0xdd))[_0x561c8d(0x7f)]();}function isSafeHookDirectorySegment(_0xc2a855){return isSafeLockKeySegment(_0xc2a855);}async function sameDirectory(_0x41eeb0,_0x44ef17){const _0x572ef5=a42_0x1ed11b,[_0x381a1c,_0x6cbd26]=await Promise[_0x572ef5(0xd0)]([stat(_0x41eeb0),stat(_0x44ef17)]);return _0x381a1c[_0x572ef5(0x98)]===_0x6cbd26[_0x572ef5(0x98)]&&_0x381a1c['ino']===_0x6cbd26[_0x572ef5(0x86)];}async function applyHookDirectoryMigration(_0x953492,_0x276013){const _0x1db7ba=a42_0x1ed11b,_0x2f8049=_0x276013[_0x1db7ba(0xe7)],_0x4ef8be=_0x276013[_0x1db7ba(0xce)],_0x41173b=[],_0x51590c=async()=>{const _0x57ed58=_0x1db7ba,_0x115324=[];_0x276013[_0x57ed58(0xe7)]=_0x2f8049,_0x276013[_0x57ed58(0xce)]=_0x4ef8be;for(const {migration:_0x2e6b0e,temporaryPath:_0x1d1ab1}of[..._0x41173b][_0x57ed58(0x85)]()){try{_0x1d1ab1?(await rename(_0x2e6b0e[_0x57ed58(0xf4)],_0x1d1ab1),await rename(_0x1d1ab1,_0x2e6b0e['oldDirectoryPath'])):await rename(_0x2e6b0e[_0x57ed58(0xf4)],_0x2e6b0e[_0x57ed58(0x9e)]);}catch(_0x2cef8c){_0x115324[_0x57ed58(0xc5)](new Error('Could\x20not\x20restore\x20HOOK\x20directory\x20\x22'+_0x2e6b0e[_0x57ed58(0xdf)]+'\x22\x20from\x20\x22'+_0x2e6b0e[_0x57ed58(0xc9)]+_0x57ed58(0x75)+(_0x2cef8c instanceof Error?_0x2cef8c['message']:String(_0x2cef8c))));}}return _0x115324;};try{for(const _0x267779 of _0x953492[_0x1db7ba(0xc1)]){if(_0x267779[_0x1db7ba(0xd1)]==='move')await ensureParentDirectory(_0x267779['newDirectoryPath']),await rename(_0x267779[_0x1db7ba(0x9e)],_0x267779[_0x1db7ba(0xf4)]),_0x41173b['push']({'migration':_0x267779});else{if(_0x267779[_0x1db7ba(0xd1)]==='case-rename'){const _0x1b2ea3=join(dirname(_0x267779['oldDirectoryPath']),'.hook-directory-migrate-'+randomUUID());await rename(_0x267779['oldDirectoryPath'],_0x1b2ea3);try{await rename(_0x1b2ea3,_0x267779[_0x1db7ba(0xf4)]);}catch(_0xc7a468){try{await rename(_0x1b2ea3,_0x267779[_0x1db7ba(0x9e)]);}catch(_0x945188){throw withRollbackErrors(_0xc7a468,_0x1db7ba(0x7a)+_0x267779['oldDirectory']+'\x22\x20to\x20\x22'+_0x267779['newDirectory']+_0x1db7ba(0xb0)+_0x1b2ea3+'\x22\x20may\x20remain.',[new Error(_0x1db7ba(0x77)+_0x1b2ea3+_0x1db7ba(0xb2)+_0x267779[_0x1db7ba(0xdf)]+_0x1db7ba(0x75)+(_0x945188 instanceof Error?_0x945188[_0x1db7ba(0xd5)]:String(_0x945188)))]);}throw _0xc7a468;}_0x41173b[_0x1db7ba(0xc5)]({'migration':_0x267779,'temporaryPath':_0x1b2ea3});}}}return _0x276013[_0x1db7ba(0xe7)]=_0x953492['projectedFunctions'],{'rollback':_0x51590c};}catch(_0x1fad42){const _0xc4ac25=await _0x51590c();throw withRollbackErrors(_0x1fad42,_0x1db7ba(0xbd),_0xc4ac25);}}async function confirmForce(){const _0x3af261=a42_0x1ed11b,_0xd61f43=createInterface({'input':process[_0x3af261(0xb8)],'output':process[_0x3af261(0xe2)]}),_0x6173e5=await new Promise(_0x310ac3=>{const _0x15da08=_0x3af261;_0xd61f43['question'](_0x15da08(0x8a),_0x310ac3);});return _0xd61f43[_0x3af261(0xff)](),['y',_0x3af261(0x79)][_0x3af261(0x90)](_0x6173e5['trim']()[_0x3af261(0x7f)]());}