@lovrabet/rabetbase-cli 2.5.3-beta.3 → 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 (361) 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.d.ts +5 -3
  257. package/lib/constant/cdn.js +1 -1
  258. package/lib/constant/cli.js +1 -1
  259. package/lib/constant/defaults.js +1 -1
  260. package/lib/constant/domain.js +1 -1
  261. package/lib/constant/env.js +1 -1
  262. package/lib/constant/output.js +1 -1
  263. package/lib/constant/paths.js +1 -1
  264. package/lib/constant/region.js +1 -1
  265. package/lib/constant/risk.js +1 -1
  266. package/lib/constant/routing-profile.js +1 -1
  267. package/lib/context/app-resolver.js +1 -1
  268. package/lib/context/auth-resolver.js +1 -1
  269. package/lib/context/config-loader.js +1 -1
  270. package/lib/context.js +1 -1
  271. package/lib/core/alias-resolver.js +1 -1
  272. package/lib/core/api-client.js +1 -1
  273. package/lib/core/bff/config.js +1 -1
  274. package/lib/core/bff/file-system.js +1 -1
  275. package/lib/core/bff/hash.js +1 -1
  276. package/lib/core/bff/hook-directory.js +1 -1
  277. package/lib/core/bff/lock.js +1 -1
  278. package/lib/core/bff/utils.js +1 -1
  279. package/lib/core/cross-db-relation.js +1 -1
  280. package/lib/core/db-resolver.js +1 -1
  281. package/lib/core/flow-config.js +1 -1
  282. package/lib/core/instant-api-policy/config.js +1 -1
  283. package/lib/core/kb-search-client.js +1 -1
  284. package/lib/core/page/file-system.js +1 -1
  285. package/lib/core/page/hash.js +1 -1
  286. package/lib/core/page/lock.js +1 -1
  287. package/lib/core/page/lr-smart-jsx.js +1 -1
  288. package/lib/core/sql-index-auditor.js +1 -1
  289. package/lib/core/sql-sync/config.js +1 -1
  290. package/lib/core/sql-sync/file-system.js +1 -1
  291. package/lib/core/sql-sync/hash.js +1 -1
  292. package/lib/core/sql-sync/lock.js +1 -1
  293. package/lib/core/sql-sync/utils.js +1 -1
  294. package/lib/core/sql-validator.js +1 -1
  295. package/lib/errors.js +1 -1
  296. package/lib/framework/build-all-flags.js +1 -1
  297. package/lib/framework/error-output.js +1 -1
  298. package/lib/framework/explicit-yes.js +1 -1
  299. package/lib/framework/flags.js +1 -1
  300. package/lib/framework/help.js +1 -1
  301. package/lib/framework/index.js +1 -1
  302. package/lib/framework/output.js +1 -1
  303. package/lib/framework/response.js +1 -1
  304. package/lib/framework/runner-alias.js +1 -1
  305. package/lib/framework/runner.js +1 -1
  306. package/lib/framework/schema-export.js +1 -1
  307. package/lib/framework/supported-flags.js +1 -1
  308. package/lib/framework/types.js +1 -1
  309. package/lib/generated/build-info.d.ts +4 -4
  310. package/lib/generated/build-info.js +1 -1
  311. package/lib/generated/official-routing.js +1 -1
  312. package/lib/generated/routing-contract.js +1 -1
  313. package/lib/help.js +1 -1
  314. package/lib/postinstall.js +1 -1
  315. package/lib/runtime/confirmation.js +1 -1
  316. package/lib/runtime/event.js +1 -1
  317. package/lib/runtime/index.js +1 -1
  318. package/lib/runtime/queue.js +1 -1
  319. package/lib/runtime/resolve.js +1 -1
  320. package/lib/skills/builtin-skill.js +1 -1
  321. package/lib/skills/main.js +1 -1
  322. package/lib/skills/npx-skills-add.js +1 -1
  323. package/lib/skills/skill-presence.js +1 -1
  324. package/lib/telemetry/cli-command-trace.js +1 -1
  325. package/lib/telemetry/cli-help-trace.js +1 -1
  326. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  327. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  328. package/lib/telemetry/send-cli-trace-log.js +1 -1
  329. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  330. package/lib/utils/ai_config.js +1 -1
  331. package/lib/utils/apply-jq-filter.js +1 -1
  332. package/lib/utils/cdn-config.js +1 -1
  333. package/lib/utils/check-sdk-version.js +1 -1
  334. package/lib/utils/cli-version-check.js +1 -1
  335. package/lib/utils/cli-version-policy.d.ts +7 -0
  336. package/lib/utils/cli-version-policy.js +1 -1
  337. package/lib/utils/config.js +1 -1
  338. package/lib/utils/entity-with-id.js +1 -1
  339. package/lib/utils/file-utils.js +1 -1
  340. package/lib/utils/guides-cdn.js +1 -1
  341. package/lib/utils/http-client.js +1 -1
  342. package/lib/utils/is-non-interactive.js +1 -1
  343. package/lib/utils/logger.js +1 -1
  344. package/lib/utils/params.js +1 -1
  345. package/lib/utils/platform.js +1 -1
  346. package/lib/utils/sleep.js +1 -1
  347. package/lib/utils/template-replacer.js +1 -1
  348. package/lib/utils/update-notice.js +1 -1
  349. package/lib/utils/version.js +1 -1
  350. package/lib/utils/with-active-cookie.js +1 -1
  351. package/lib/utils/write-cli-side-channel.js +1 -1
  352. package/package.json +3 -1
  353. package/skills/rabetbase/SKILL.md +7 -5
  354. package/skills/rabetbase/guides/backend-function.md +5 -1
  355. package/skills/rabetbase/guides/bff-creation-workflow.md +3 -1
  356. package/skills/rabetbase/guides/cross-database-bff.md +70 -0
  357. package/skills/rabetbase/guides/data-api-guidelines.md +35 -33
  358. package/skills/rabetbase/guides/sql-creation-workflow.md +2 -0
  359. package/skills/rabetbase/references/rabetbase-dataset-cross-relations.md +5 -1
  360. package/skills/rabetbase.manifest.json +4 -3
  361. package/templates/README.md +41 -13
@@ -1 +1 @@
1
- const a34_0x198d66=a34_0xa516;(function(_0x1438b9,_0x5bd0b9){const _0x4d0840=a34_0xa516,_0x232e53=_0x1438b9();while(!![]){try{const _0xd4a480=-parseInt(_0x4d0840(0x120))/0x1+-parseInt(_0x4d0840(0xf3))/0x2*(-parseInt(_0x4d0840(0x108))/0x3)+-parseInt(_0x4d0840(0x109))/0x4*(parseInt(_0x4d0840(0x106))/0x5)+-parseInt(_0x4d0840(0x11b))/0x6+-parseInt(_0x4d0840(0x124))/0x7+parseInt(_0x4d0840(0xfe))/0x8*(parseInt(_0x4d0840(0xf8))/0x9)+parseInt(_0x4d0840(0x10a))/0xa;if(_0xd4a480===_0x5bd0b9)break;else _0x232e53['push'](_0x232e53['shift']());}catch(_0x4058f4){_0x232e53['push'](_0x232e53['shift']());}}}(a34_0x169c,0xd402a));import{access,readFile}from'node:fs/promises';import{CliErrors}from'../../errors.js';export const KEY_ARG={'name':'key','description':a34_0x198d66(0x11f),'required':!![]};export const VALUE_ARG={'name':a34_0x198d66(0xf6),'description':a34_0x198d66(0x12c),'required':![]};export const TAGS_FLAG={'name':a34_0x198d66(0x118),'type':'string','description':'Config\x20tags\x20for\x20filtering/display\x20metadata'};export const STDIN_FLAG={'name':'stdin','type':'boolean','description':a34_0x198d66(0x12a),'default':![]};export const FROM_ENV_FLAG={'name':a34_0x198d66(0x100),'type':'string','description':a34_0x198d66(0x113)};export const REVEAL_FLAG={'name':a34_0x198d66(0x102),'type':a34_0x198d66(0x105),'description':a34_0x198d66(0x12f),'default':![]};export function readKeyArg(_0x4e422b){const _0x9a98fd=a34_0x198d66,_0x3a9bf7=_0x4e422b[_0x9a98fd(0xfb)][0x0]?.['trim']()??'';return validateKey(_0x3a9bf7),_0x3a9bf7;}export function readOptionalTags(_0x2d147d){const _0x1ac370=a34_0x198d66,_0x404b30=_0x2d147d['str'](_0x1ac370(0x118))['trim']();if(!_0x404b30)return undefined;if(_0x404b30[_0x1ac370(0x10e)]>0x20)throw CliErrors[_0x1ac370(0x11e)](_0x1ac370(0x126));return _0x404b30;}export function validateKey(_0x495cb3){const _0x381dda=a34_0x198d66;if(!_0x495cb3)throw CliErrors[_0x381dda(0x11e)]('Missing\x20app-config\x20key.');if(_0x495cb3[_0x381dda(0x10e)]>0x100)throw CliErrors['validation'](_0x381dda(0xfa));}function a34_0xa516(_0x4cad98,_0x3bdd0f){_0x4cad98=_0x4cad98-0xf1;const _0x169ce9=a34_0x169c();let _0xa516d8=_0x169ce9[_0x4cad98];return _0xa516d8;}export function projectAppConfig(_0xcbb3de,_0xb3425c){const _0x4cb01d=a34_0x198d66,_0x26e407=_0xcbb3de[_0x4cb01d(0xf6)]!==undefined&&_0xcbb3de['value']!==null&&_0xcbb3de['value']!=='',_0x5e204c={'appCode':_0xcbb3de[_0x4cb01d(0x114)],'key':_0xcbb3de[_0x4cb01d(0x12b)],'tags':_0xcbb3de[_0x4cb01d(0x118)]??undefined,'hasValue':_0x26e407,'valueRedacted':_0x26e407&&!_0xb3425c?.['reveal'],'gmtCreate':_0xcbb3de[_0x4cb01d(0x121)],'gmtModified':_0xcbb3de[_0x4cb01d(0x11a)]};return _0xb3425c?.[_0x4cb01d(0x102)]&&(_0x5e204c[_0x4cb01d(0xf6)]=_0xcbb3de['value']??'',_0x5e204c[_0x4cb01d(0x123)]=![]),_0x5e204c;}export function plannedAppConfig(_0xb6f99e){const _0x4f2fb8=a34_0x198d66,_0xd771ab=_0xb6f99e['hasValue']??!![];return{'appCode':_0xb6f99e['appCode'],'key':_0xb6f99e['key'],'tags':_0xb6f99e[_0x4f2fb8(0x118)]??undefined,'hasValue':_0xd771ab,'valueRedacted':_0xd771ab};}function a34_0x169c(){const _0x5d41d5=['18NryfqF','value\x20is\x20redacted','App\x20config\x20key\x20length\x20cannot\x20exceed\x20256.','args','file','error','4328320jtUkzL','apiError','from-env','App\x20config\x20value\x20source\x20is\x20ambiguous.','reveal','after','slice','boolean','34795AlHhTa','env','3zYFLIF','332OIEMYZ','21207380HSFJar','utf8','defineProperties','method','length','warnings','Value\x20file\x20is\x20not\x20readable:\x20','key:\x20','Environment\x20variable\x20is\x20not\x20set:\x20','Read\x20config\x20value\x20from\x20the\x20named\x20environment\x20variable','appCode','end','stdin','name','tags','url','gmtModified','7766214bflrkc','kind','push','validation','Runtime\x20app-config\x20key','922225ABpOhF','gmtCreate','path','valueRedacted','8355158XCudCO','dryRun','App\x20config\x20tags\x20length\x20cannot\x20exceed\x2032.','Use\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','once','appCode:\x20','Read\x20config\x20value\x20from\x20stdin','key','Sensitive\x20config\x20value.\x20Prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','\x20app\x20config.','argument','Reveal\x20the\x20sensitive\x20value\x20for\x20this\x20single\x20key','trim','str','3306722PQkPBl','bool','join','value','before'];a34_0x169c=function(){return _0x5d41d5;};return a34_0x169c();}export function buildMutationData(_0x23a2c4){const _0x187c45=a34_0x198d66;return{'operation':_0x23a2c4['operation'],'selector':{'appCode':_0x23a2c4[_0x187c45(0x114)],'key':_0x23a2c4[_0x187c45(0x12b)]},'before':_0x23a2c4[_0x187c45(0xf7)],'after':_0x23a2c4[_0x187c45(0x103)],'dryRun':_0x23a2c4[_0x187c45(0x125)],'warnings':_0x23a2c4[_0x187c45(0x10f)]??[]};}export async function withAppConfigApiBoundary(_0x13fc24,_0x39e8d5,_0x36b4be){const _0x2d0d1d=a34_0x198d66;try{return await _0x36b4be();}catch{const _0xd8ab75=[_0x2d0d1d(0x129)+_0x39e8d5[_0x2d0d1d(0x114)]];if(_0x39e8d5['key'])_0xd8ab75[_0x2d0d1d(0x11d)](_0x2d0d1d(0x111)+_0x39e8d5['key']);_0xd8ab75[_0x2d0d1d(0x11d)](_0x2d0d1d(0xf9));throw CliErrors[_0x2d0d1d(0xff)]('Failed\x20to\x20'+_0x13fc24+_0x2d0d1d(0x12d),_0xd8ab75[_0x2d0d1d(0xf5)](';\x20')+'.');}}export function asAppConfigDryRunResult(_0x22d16c,_0x58059f){const _0x4cc802=a34_0x198d66;return Object[_0x4cc802(0x10c)](_0x22d16c,{'method':{'value':_0x58059f[_0x4cc802(0x10d)],'enumerable':![]},'url':{'value':_0x58059f[_0x4cc802(0x119)],'enumerable':![]}});}export function assertSingleValueSource(_0x9762d3){const _0x3eac99=a34_0x198d66,_0x2356aa=[];_0x9762d3['args'][_0x3eac99(0x10e)]>0x1&&_0x2356aa[_0x3eac99(0x11d)]({'kind':'argument','value':_0x9762d3['args'][_0x3eac99(0x104)](0x1)['join']('\x20')});const _0x3e1454=_0x9762d3['flag'](_0x3eac99(0xf6));_0x3e1454!==undefined&&_0x3e1454!==null&&_0x2356aa[_0x3eac99(0x11d)]({'kind':'argument','value':String(_0x3e1454)});_0x9762d3[_0x3eac99(0xf4)](_0x3eac99(0x116))&&_0x2356aa[_0x3eac99(0x11d)]({'kind':_0x3eac99(0x116)});const _0x26e183=_0x9762d3[_0x3eac99(0xf2)](_0x3eac99(0x100))['trim']();_0x26e183&&_0x2356aa['push']({'kind':_0x3eac99(0x107),'name':_0x26e183});const _0x17e764=_0x9762d3[_0x3eac99(0xf2)](_0x3eac99(0xfc))[_0x3eac99(0xf1)]();_0x17e764&&_0x2356aa[_0x3eac99(0x11d)]({'kind':'file','path':_0x17e764});if(_0x2356aa[_0x3eac99(0x10e)]===0x0)throw CliErrors['validation']('Missing\x20app-config\x20value\x20source.',_0x3eac99(0x127));if(_0x2356aa[_0x3eac99(0x10e)]>0x1)throw CliErrors[_0x3eac99(0x11e)](_0x3eac99(0x101),'Use\x20exactly\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.');return _0x2356aa[0x0];}export async function assertValueSourceReadable(_0x1e456c){const _0x18e183=a34_0x198d66;if(_0x1e456c[_0x18e183(0x11c)]===_0x18e183(0x107)&&!(_0x1e456c[_0x18e183(0x117)]in process.env))throw CliErrors[_0x18e183(0x11e)](_0x18e183(0x112)+_0x1e456c[_0x18e183(0x117)]);if(_0x1e456c['kind']===_0x18e183(0xfc))try{await access(_0x1e456c[_0x18e183(0x122)]);}catch{throw CliErrors[_0x18e183(0x11e)](_0x18e183(0x110)+_0x1e456c[_0x18e183(0x122)]);}}export async function readAppConfigValue(_0x39c14d){const _0x20e17d=a34_0x198d66,_0x262165=assertSingleValueSource(_0x39c14d),_0x1e4a33=[];if(_0x262165[_0x20e17d(0x11c)]===_0x20e17d(0x12e))return _0x1e4a33[_0x20e17d(0x11d)]('Value\x20was\x20provided\x20as\x20a\x20command\x20argument;\x20prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.'),{'value':_0x262165['value']??'','source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};if(_0x262165[_0x20e17d(0x11c)]==='stdin')return{'value':await readStdin(),'source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};if(_0x262165[_0x20e17d(0x11c)]==='env'){if(!(_0x262165[_0x20e17d(0x117)]in process.env))throw CliErrors['validation'](_0x20e17d(0x112)+_0x262165[_0x20e17d(0x117)]);return{'value':process.env[_0x262165.name]??'','source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};}return{'value':await readFile(_0x262165['path'],'utf8'),'source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};}function readStdin(){return new Promise((_0x117e0b,_0x3078a6)=>{const _0x543dc2=a34_0xa516;let _0x59ec2f='';process[_0x543dc2(0x116)]['setEncoding'](_0x543dc2(0x10b)),process['stdin']['on']('data',_0x1a9c8e=>{_0x59ec2f+=_0x1a9c8e;}),process['stdin'][_0x543dc2(0x128)](_0x543dc2(0x115),()=>_0x117e0b(_0x59ec2f)),process['stdin'][_0x543dc2(0x128)](_0x543dc2(0xfd),_0x3078a6);});}
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
- const a35_0xad34d0=a35_0x4db4;(function(_0x5f4194,_0x237f56){const _0x5ac0ac=a35_0x4db4,_0x43721e=_0x5f4194();while(!![]){try{const _0x57d9fb=parseInt(_0x5ac0ac(0xd1))/0x1*(-parseInt(_0x5ac0ac(0xce))/0x2)+parseInt(_0x5ac0ac(0xc5))/0x3+-parseInt(_0x5ac0ac(0xd4))/0x4+-parseInt(_0x5ac0ac(0xd5))/0x5*(parseInt(_0x5ac0ac(0xc6))/0x6)+parseInt(_0x5ac0ac(0xcf))/0x7+-parseInt(_0x5ac0ac(0xd2))/0x8+parseInt(_0x5ac0ac(0xc9))/0x9;if(_0x57d9fb===_0x237f56)break;else _0x43721e['push'](_0x43721e['shift']());}catch(_0x1a43aa){_0x43721e['push'](_0x43721e['shift']());}}}(a35_0x2875,0xdc197));import{unlinkSync,existsSync}from'node:fs';function a35_0x4db4(_0x47cbe8,_0x209f89){_0x47cbe8=_0x47cbe8-0xc4;const _0x2875f2=a35_0x2875();let _0x4db435=_0x2875f2[_0x47cbe8];return _0x4db435;}import{cookieFile}from'../../auth/constant.js';function a35_0x2875(){const _0x3ca97d=['8259456vsJKaw','nonInteractive','3737028AGjOBp','230vVMWYX','auth','write','yes','login','4338822ziBEGy','30960EgkLyc','log','bool','16899345WjLTPr','!\x20Not\x20logged\x20in','Login\x20via\x20browser','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','Clear\x20login\x20session','8LkZfHU','3831275mBIdcw','✓\x20Logged\x20out','191432GTfzIs'];a35_0x2875=function(){return _0x3ca97d;};return a35_0x2875();}export const authDefinitions=[{'service':a35_0xad34d0(0xd6),'command':a35_0xad34d0(0xc4),'description':a35_0xad34d0(0xcb),'risk':a35_0xad34d0(0xd7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a35_0xad34d0(0xd8),'type':'boolean','description':a35_0xad34d0(0xcc),'default':![]}],async 'execute'(_0x4a6342){const _0x34e353=a35_0xad34d0,{runAuthServer:_0x28ad72}=await import('../../auth/auth-server-ui.js');return await _0x28ad72({'autoYes':_0x4a6342[_0x34e353(0xc8)](_0x34e353(0xd8)),'nonInteractive':_0x4a6342[_0x34e353(0xd3)]}),{'ok':!![]};}},{'service':a35_0xad34d0(0xd6),'command':'logout','description':a35_0xad34d0(0xcd),'risk':a35_0xad34d0(0xd7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x57e0af){const _0x17c405=a35_0xad34d0;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x17c405(0xc7)](_0x17c405(0xd0))):console[_0x17c405(0xc7)](_0x17c405(0xca)),{'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_0x5721ca=a36_0x2943;(function(_0x42e405,_0x2523ce){const _0x41fc2f=a36_0x2943,_0x199da4=_0x42e405();while(!![]){try{const _0x170b2a=-parseInt(_0x41fc2f(0x111))/0x1*(-parseInt(_0x41fc2f(0x118))/0x2)+parseInt(_0x41fc2f(0x101))/0x3+parseInt(_0x41fc2f(0xe5))/0x4+-parseInt(_0x41fc2f(0xc8))/0x5+-parseInt(_0x41fc2f(0xe7))/0x6*(parseInt(_0x41fc2f(0x100))/0x7)+parseInt(_0x41fc2f(0xe4))/0x8+-parseInt(_0x41fc2f(0xc6))/0x9;if(_0x170b2a===_0x2523ce)break;else _0x199da4['push'](_0x199da4['shift']());}catch(_0x242a91){_0x199da4['push'](_0x199da4['shift']());}}}(a36_0x5796,0xdbdd0));import{createInterface}from'node:readline';import{mkdir,writeFile}from'node:fs/promises';import{dirname,join}from'node:path';function a36_0x2943(_0x4b9af8,_0x405716){_0x4b9af8=_0x4b9af8-0xbe;const _0x5796d7=a36_0x5796();let _0x2943e=_0x5796d7[_0x4b9af8];return _0x2943e;}import{listDatasets,listBffDatasetOperations}from'../../core/api-client.js';import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';function a36_0x5796(){const _0x453cd3=['6393248RbHQpS','Function\x20name\x20(valid\x20JS\x20identifier)','372WDABiI','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','create','Created\x20','--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','parseInt','datasetcode','\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','Script\x20type','str','Invalid\x20dataset\x20selection.','HOOK','Operation\x20type\x20(HOOK\x20only)','\x0a\x20*\x20[平台配置]\x20',']\x20(','.js\x0a\x20*\x20[调用方式]\x20context.client.bff.execute({\x20scriptName:\x20\x22','datasetCode','stderr','--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.','No\x20datasets\x20found\x20for\x20this\x20app.','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[脚本名称]\x20','/**\x0a\x20*\x20','/ENDPOINT/','\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20','78253UVKfXM','1157523ryyCPv','No\x20model\x20aliases\x20found.\x20Run\x20`','appCode','No\x20operation\x20types\x20found\x20for\x20dataset\x20','HOOK\x20requires\x20alias/operation/node\x20options.','question','\x20*\x20[依赖数据集]\x20无(如有依赖,DB_TABLE\x20填物理表名;METADATA\x20填数据集编码与用途)\x0a\x20*\x20[调用\x20BF]\x20无(如有调用,填写脚本名称与用途)\x0a\x20*\x20[执行\x20SQL]\x20无(如有执行,填写\x20SQL\x20名称与用途)\x0a\x20*\x20[副作用]\x20无(如有通知或外部调用,说明影响与失败策略)','datasetId','The\x20generated\x20model\x20facts\x20may\x20be\x20stale\x20—\x20run\x20`','apiDir','write','validation','isInteger','before','Trigger\x20node\x20(HOOK\x20only)','includes','9JISiSj','filePath','name','\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','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20ENDPOINT\x0a\x20*\x20[脚本名称]\x20','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','map','201944xzlHVT','Alias\x20\x22','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','\x20api\x20pull`\x20to\x20refresh.','code','string','after','修改后的请求参数','operationType','nonInteractive','functionNode','\x22\x20not\x20found.\x20','Script\x20description','Dataset\x20not\x20found\x20for\x20code\x20\x22','/COMMON/','.js\x0a','type','10637550mOumPJ','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20HOOK\x0a\x20*\x20[脚本名称]\x20','7040945TaosIP','currentApp','Scaffold\x20a\x20new\x20Backend\x20Function\x20script\x20from\x20template','\x22.\x20','/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','alias','COMMON','length','/HOOK/','profileName','Available:\x20','read','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/','\x22,\x20params\x20})\x0a','Invalid\x20function\x20name\x20\x22','Select\x20operation\x20type:','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','ENDPOINT','scriptsRootDir','join','function-node','find','当前响应结果','operation-type','--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','keys','description','Select\x20dataset:','10327168udLqUw'];a36_0x5796=function(){return _0x453cd3;};return a36_0x5796();}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':'bff','command':a36_0x5721ca(0xea),'description':a36_0x5721ca(0xca),'risk':a36_0x5721ca(0xd3),'flags':[{'name':a36_0x5721ca(0xc5),'type':a36_0x5721ca(0x11d),'required':!![],'enum':[a36_0x5721ca(0xce),'ENDPOINT',a36_0x5721ca(0xf3)],'description':a36_0x5721ca(0xf0)},{'name':a36_0x5721ca(0x113),'type':'string','required':!![],'description':a36_0x5721ca(0xe6)},{'name':'description','type':'string','description':a36_0x5721ca(0xc1)},{'name':a36_0x5721ca(0xcd),'type':a36_0x5721ca(0x11d),'description':'Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)'},{'name':a36_0x5721ca(0xee),'type':a36_0x5721ca(0x11d),'description':a36_0x5721ca(0x116)},{'name':'operation-type','type':a36_0x5721ca(0x11d),'description':a36_0x5721ca(0xf4)},{'name':a36_0x5721ca(0xdc),'type':a36_0x5721ca(0x11d),'description':a36_0x5721ca(0x10f),'enum':[a36_0x5721ca(0x10e),a36_0x5721ca(0x11e)]}],async 'validate'(_0x438949){const _0x3210c8=a36_0x5721ca,_0x52d735=_0x438949[_0x3210c8(0xf1)](_0x3210c8(0x113));if(!isValidBffFunctionName(_0x52d735))throw CliErrors['validation'](_0x3210c8(0xd6)+_0x52d735+'\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).');},async 'execute'(_0x34ec3c){const _0x51b7ff=a36_0x5721ca,_0x27a237=loadBffProjectConfig(_0x34ec3c['appCode']),_0x3c37fc=_0x34ec3c[_0x51b7ff(0xf1)](_0x51b7ff(0xc5)),_0x282698=_0x34ec3c[_0x51b7ff(0xf1)]('name'),_0x4c7a30=_0x34ec3c[_0x51b7ff(0xf1)]('description')||undefined,_0x39f032=_0x3c37fc===_0x51b7ff(0xf3)?await resolveHookOptions(_0x27a237,_0x34ec3c):undefined,_0x5c71a9=buildFilePath(_0x27a237,_0x3c37fc,_0x282698,_0x39f032);if(await fileExists(_0x5c71a9))throw CliErrors['validation']('File\x20already\x20exists:\x20'+_0x5c71a9);await mkdir(dirname(_0x5c71a9),{'recursive':!![]});const _0x1ec34a=generateTemplate(_0x3c37fc,_0x282698,_0x34ec3c[_0x51b7ff(0x103)],_0x4c7a30,_0x39f032);await writeFile(_0x5c71a9,_0x1ec34a,'utf8');const _0x18448d={'type':_0x3c37fc,'name':_0x282698,'path':_0x5c71a9};if(_0x4c7a30)_0x18448d[_0x51b7ff(0xe2)]=_0x4c7a30;if(_0x39f032){if(_0x39f032['alias'])_0x18448d[_0x51b7ff(0xcd)]=_0x39f032[_0x51b7ff(0xcd)];_0x18448d[_0x51b7ff(0xf8)]=_0x39f032[_0x51b7ff(0xf8)],_0x18448d['operationType']=_0x39f032[_0x51b7ff(0x120)],_0x18448d[_0x51b7ff(0xbf)]=_0x39f032[_0x51b7ff(0xbf)];}return{'ok':!![],'data':_0x18448d,'message':_0x51b7ff(0xeb)+_0x3c37fc+'\x20function:\x20'+_0x282698};}};async function resolveHookOptions(_0x309b5d,_0x31322e){const _0x295108=a36_0x5721ca,_0x1351e4=resolveApiModelSource(_0x31322e[_0x295108(0x10a)],_0x31322e[_0x295108(0x103)],_0x31322e['selectedAppName']||_0x31322e['mergedCli']?.[_0x295108(0xc9)]||_0x31322e['mergedCli']?.['defaultApp']),_0x3ce4b6=loadAliasMap(_0x31322e[_0x295108(0x10a)],undefined,_0x1351e4[_0x295108(0x112)],_0x1351e4[_0x295108(0xd1)]),_0x3dd41e=_0x3ce4b6[_0x295108(0xcf)]>0x0;let _0x20835a,_0x5d5423,_0x29b9fa;const _0x3a8536=_0x31322e['str'](_0x295108(0xcd)),_0x43f7f3=_0x31322e[_0x295108(0xf1)]('datasetcode');if(_0x3a8536){const _0x33acfc=resolveAlias(_0x31322e[_0x295108(0x10a)],_0x3a8536,undefined,_0x1351e4[_0x295108(0x112)],_0x1351e4[_0x295108(0xd1)]);if(!_0x33acfc){const _0xde619e=_0x3dd41e?'Available\x20aliases:\x20'+_0x3ce4b6[_0x295108(0x117)](_0x211f21=>_0x211f21['alias'])[_0x295108(0xdb)](',\x20'):_0x295108(0x102)+CLI_BIN_NAME+'\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.';throw CliErrors[_0x295108(0x10c)](_0x295108(0x119)+_0x3a8536+_0x295108(0xc0)+_0xde619e);}_0x20835a=_0x3a8536,_0x5d5423=_0x33acfc;}else{if(_0x43f7f3){_0x5d5423=_0x43f7f3;const _0x4f9daa=_0x3ce4b6[_0x295108(0xdd)](_0x1303eb=>_0x1303eb[_0x295108(0xf8)]===_0x43f7f3);_0x20835a=_0x4f9daa?.[_0x295108(0xcd)];}else{if(_0x31322e[_0x295108(0xbe)])throw CliErrors['validation'](_0x295108(0xe0));else{if(_0x3dd41e){const _0x58f335=_0x3ce4b6['map'](_0x5e3795=>_0x5e3795['alias']+'\x20('+_0x5e3795['tableName']+')'),_0x4e94dc=await promptSelect(_0x295108(0xe3),_0x58f335),_0x4849ee=_0x3ce4b6[_0x4e94dc];if(!_0x4849ee)throw CliErrors['validation'](_0x295108(0xf2));_0x20835a=_0x4849ee['alias'],_0x5d5423=_0x4849ee[_0x295108(0xf8)];}else{const _0x5eb1ea=await listDatasets(_0x31322e['appCode']);if(_0x5eb1ea['length']===0x0)throw CliErrors[_0x295108(0x10c)](_0x295108(0xfb));const _0x2ad5e5=_0x5eb1ea['map'](_0x58fb5a=>_0x58fb5a[_0x295108(0x113)]+'\x20['+(_0x58fb5a['source']??'UNKNOWN')+_0x295108(0xf6)+_0x58fb5a[_0x295108(0x11c)]+')'),_0x272f2b=await promptSelect(_0x295108(0xe3),_0x2ad5e5),_0x3aa307=_0x5eb1ea[_0x272f2b];if(!_0x3aa307)throw CliErrors['validation']('Invalid\x20dataset\x20selection.');_0x5d5423=_0x3aa307[_0x295108(0x11c)],_0x20835a=undefined;}}}}const _0x2add64=await listDatasets(_0x31322e['appCode']),_0x164fd3=_0x2add64['find'](_0x50766a=>_0x50766a[_0x295108(0x11c)]===_0x5d5423);if(!_0x164fd3)throw CliErrors[_0x295108(0x10c)](_0x295108(0xc2)+_0x5d5423+_0x295108(0xcb)+(_0x20835a?_0x295108(0x109)+CLI_BIN_NAME+_0x295108(0x11b):''));_0x29b9fa=_0x164fd3['id'];const _0x3f954d=_0x20835a??_0x5d5423,_0x461450=await listBffDatasetOperations(_0x31322e[_0x295108(0x103)],_0x29b9fa),_0x5e4bac=_0x461450?Object[_0x295108(0xe1)](_0x461450):[];if(_0x5e4bac[_0x295108(0xcf)]===0x0)throw CliErrors[_0x295108(0x10c)](_0x295108(0x104)+_0x3f954d+'.');let _0x817576;const _0x8863dc=_0x31322e[_0x295108(0xf1)](_0x295108(0xdf));if(_0x8863dc){if(!_0x5e4bac[_0x295108(0x110)](_0x8863dc))throw CliErrors['validation']('Operation\x20type\x20\x22'+_0x8863dc+'\x22\x20not\x20found\x20for\x20dataset\x20'+_0x3f954d+'.\x20'+(_0x295108(0xd2)+_0x5e4bac[_0x295108(0xdb)](',\x20')));_0x817576=_0x8863dc;}else{if(_0x31322e['nonInteractive'])throw CliErrors[_0x295108(0x10c)]('--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');const _0x479c9a=await promptSelect(_0x295108(0xd7),_0x5e4bac);_0x817576=_0x5e4bac[_0x479c9a]??_0x5e4bac[0x0];}let _0x408eb6=normalizeHookFunctionNode(_0x31322e['str'](_0x295108(0xdc)));if(!_0x408eb6){if(_0x31322e[_0x295108(0xf1)](_0x295108(0xdc)))throw CliErrors['validation'](_0x295108(0xfa));if(_0x31322e[_0x295108(0xbe)])throw CliErrors[_0x295108(0x10c)](_0x295108(0xec));const _0x52b545=await promptSelect('Select\x20trigger\x20node:',[_0x295108(0x10e),'after']);_0x408eb6=[_0x295108(0x10e),_0x295108(0x11e)][_0x52b545]??_0x295108(0x10e);}return{'alias':_0x20835a,'datasetCode':_0x5d5423,'datasetId':_0x29b9fa,'operationType':_0x817576,'functionNode':_0x408eb6};}async function promptSelect(_0x3d3aa,_0x200dc1){const _0x39101a=a36_0x5721ca;if(_0x200dc1['length']===0x1)return 0x0;for(const [_0x4ce069,_0x19b33f]of _0x200dc1['entries']()){process['stderr'][_0x39101a(0x10b)]('\x20\x20'+(_0x4ce069+0x1)+'.\x20'+_0x19b33f+'\x0a');}const _0x236300=createInterface({'input':process['stdin'],'output':process['stderr']});while(!![]){const _0xc7ef41=await new Promise(_0x1daab1=>{const _0x35336b=_0x39101a;_0x236300[_0x35336b(0x106)](_0x3d3aa+'\x20',_0x1daab1);}),_0x4f48dc=Number[_0x39101a(0xed)](_0xc7ef41['trim'](),0xa);if(Number[_0x39101a(0x10d)](_0x4f48dc)&&_0x4f48dc>=0x1&&_0x4f48dc<=_0x200dc1['length'])return _0x236300['close'](),_0x4f48dc-0x1;process[_0x39101a(0xf9)][_0x39101a(0x10b)](_0x39101a(0xe8)+_0x200dc1[_0x39101a(0xcf)]+'.\x0a');}}function buildFilePath(_0x2cfeef,_0x8b9cdd,_0x521f7b,_0x594eb7){const _0x583e25=a36_0x5721ca;if(_0x8b9cdd===_0x583e25(0xf3)){if(!_0x594eb7)throw CliErrors[_0x583e25(0x10c)](_0x583e25(0x105));const _0x1f9395=_0x594eb7[_0x583e25(0xcd)]??_0x594eb7[_0x583e25(0xf8)];return join(_0x2cfeef[_0x583e25(0xda)],_0x583e25(0xf3),_0x1f9395,_0x594eb7['operationType'],_0x594eb7['functionNode'],_0x521f7b+'.js');}return join(_0x2cfeef[_0x583e25(0xda)],_0x8b9cdd,_0x521f7b+'.js');}export function generateTemplate(_0x4c2b3f,_0x4864db,_0x1acd2e,_0x156169,_0x43b52c){const _0x11a48a=a36_0x5721ca,_0x5d0df6=_0x156169?.['trim']()||DEFAULT_BFF_SCRIPT_DESCRIPTION,_0x35eb47=getAppBaseUrl(_0x1acd2e),_0x311c31=_0x11a48a(0x107);if(_0x4c2b3f===_0x11a48a(0xce))return _0x11a48a(0xfd)+_0x5d0df6+_0x11a48a(0xfc)+_0x4864db+'\x0a\x20*\x20[平台配置]\x20'+_0x35eb47+'/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/'+_0x1acd2e+_0x11a48a(0xc3)+_0x4864db+_0x11a48a(0xf7)+_0x4864db+_0x11a48a(0xd5)+_0x311c31+_0x11a48a(0x114)+_0x4864db+_0x11a48a(0x11a);if(_0x4c2b3f===_0x11a48a(0xd9))return _0x11a48a(0xfd)+_0x5d0df6+_0x11a48a(0x115)+_0x4864db+_0x11a48a(0xd4)+_0x1acd2e+'/'+_0x4864db+_0x11a48a(0xf5)+_0x35eb47+_0x11a48a(0xcc)+_0x1acd2e+_0x11a48a(0xfe)+_0x4864db+_0x11a48a(0xc4)+_0x311c31+_0x11a48a(0xef)+_0x4864db+_0x11a48a(0x11a);if(!_0x43b52c)throw CliErrors['validation'](_0x11a48a(0xd8));const _0x577df2=_0x43b52c[_0x11a48a(0xcd)]??_0x43b52c['datasetCode'],_0x178e61=_0x43b52c[_0x11a48a(0xbf)]===_0x11a48a(0x10e)?'当前请求参数':_0x11a48a(0xde),_0x514894=_0x43b52c['functionNode']===_0x11a48a(0x10e)?_0x11a48a(0x11f):'修改后的响应结果';return _0x11a48a(0xfd)+_0x5d0df6+_0x11a48a(0xc7)+_0x4864db+'\x0a\x20*\x20[接口路径]\x20POST\x20/api/'+_0x1acd2e+'/'+_0x43b52c[_0x11a48a(0xf8)]+'/'+_0x43b52c[_0x11a48a(0x120)]+_0x11a48a(0xf5)+_0x35eb47+'/data/dataset/'+_0x43b52c[_0x11a48a(0x108)]+'#api-list\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/'+_0x1acd2e+_0x11a48a(0xd0)+_0x577df2+'/'+_0x43b52c[_0x11a48a(0x120)]+'/'+_0x43b52c[_0x11a48a(0xbf)]+'/'+_0x4864db+'.js\x0a\x20*\x20[触发节点]\x20'+_0x43b52c[_0x11a48a(0xbf)]+'\x0a'+_0x311c31+'\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20'+_0x178e61+_0x11a48a(0xff)+_0x514894+_0x11a48a(0xe9)+_0x4864db+'(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a';}
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
- const a37_0x56f779=a37_0x3c64;(function(_0x4c43d7,_0x34b4ad){const _0x13f3d3=a37_0x3c64,_0x185d30=_0x4c43d7();while(!![]){try{const _0x39497c=-parseInt(_0x13f3d3(0xf1))/0x1*(-parseInt(_0x13f3d3(0x10f))/0x2)+parseInt(_0x13f3d3(0x106))/0x3*(-parseInt(_0x13f3d3(0xdc))/0x4)+parseInt(_0x13f3d3(0xe2))/0x5*(parseInt(_0x13f3d3(0xda))/0x6)+-parseInt(_0x13f3d3(0xfa))/0x7*(-parseInt(_0x13f3d3(0x10b))/0x8)+-parseInt(_0x13f3d3(0xf4))/0x9*(-parseInt(_0x13f3d3(0xea))/0xa)+-parseInt(_0x13f3d3(0xf6))/0xb*(parseInt(_0x13f3d3(0xe5))/0xc)+-parseInt(_0x13f3d3(0x10a))/0xd;if(_0x39497c===_0x34b4ad)break;else _0x185d30['push'](_0x185d30['shift']());}catch(_0x1c2af6){_0x185d30['push'](_0x185d30['shift']());}}}(a37_0x4111,0x4e2f4));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';function a37_0x4111(){const _0x358599=['split','trashDir','Multiple\x20functions\x20match\x20\x22','trashedTo','2214SxfSwM','delete','644aZmbPV','<timestamp>','Backend\x20Function\x20lock\x20file\x20not\x20found.','startsWith','\x20\x20-\x20','Backend\x20Function\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','5575ROlYtw','toISOString','Local\x20delete\x20not\x20settled\x20for\x20','12kxOBvQ','POST','includes','str','validation','4017200YfiGQF','Lock\x20scope\x20for\x20app\x20\x22','apps','target','join','Delete\x20a\x20Backend\x20Function\x20script\x20from\x20remote\x20and\x20local','scriptsRoot','17SmZeDH','appCode','scriptsRootDir','9YemWbO','map','2439041PatzHL','functions','lockFilePath','find','7KZrUaY','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','parse','replace','/api/management/library/scripts/delete','keys','\x22\x20not\x20found\x20after\x20ensureLockScope.','projectRoot','remoteId','No\x20lock\x20entry\x20found\x20for\x20\x22','string','Function\x20not\x20found:\x20','10623MHCnDM','Would\x20delete\x20','\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a','lastSync','6655805tjmDqX','3235216QPiMft','\x20(local\x20file\x20moved\x20to\x20trash)','high-risk-write','bff','47824JFUWFE'];a37_0x4111=function(){return _0x358599;};return a37_0x4111();}export const bffDelete={'service':a37_0x56f779(0x10e),'command':'delete','description':a37_0x56f779(0xef),'risk':a37_0x56f779(0x10d),'flags':[{'name':a37_0x56f779(0xed),'type':a37_0x56f779(0x104),'required':!![],'description':'Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name'}],async 'validate'(_0x1295fe){const _0x31d29d=a37_0x56f779,_0x42bb55=loadBffProjectConfig(_0x1295fe['appCode']),_0x3224d1=await readBffLockFile(_0x42bb55[_0x31d29d(0xf8)]);if(!_0x3224d1)throw CliErrors[_0x31d29d(0xe9)](_0x31d29d(0xe1));},async 'dryRun'(_0x318631){const _0x10df36=a37_0x56f779,_0x3eab9e=loadBffProjectConfig(_0x318631[_0x10df36(0xf2)]),_0x4a7d6b=await readBffLockFile(_0x3eab9e['lockFilePath']);if(!_0x4a7d6b)throw CliErrors['validation'](_0x10df36(0xde));const {appLock:_0x515572}=ensureLockScope(_0x4a7d6b,_0x318631[_0x10df36(0xf2)],_0x3eab9e[_0x10df36(0xf0)],_0x10df36(0xdb)),_0x268ca2=_0x318631[_0x10df36(0xe8)](_0x10df36(0xed)),_0x2d2b60=Object[_0x10df36(0xff)](_0x515572[_0x10df36(0xf7)]),_0x3488ad=resolveDeleteTarget(_0x268ca2,_0x2d2b60),_0xe05935=_0x515572[_0x10df36(0xf7)][_0x3488ad];if(!_0xe05935)throw CliErrors['validation'](_0x10df36(0x103)+_0x3488ad+'\x22.');const _0x3aa5be=resolveLocalFilePathFromLockKey(_0x3eab9e,_0x3488ad),_0x2bd29e=relative(_0x3eab9e[_0x10df36(0x101)],_0x3aa5be),_0x21eb35=join(_0x3eab9e[_0x10df36(0x111)],_0x10df36(0xdd),_0x2bd29e);return{'method':_0x10df36(0xe6),'url':_0x10df36(0xfe),'body':{'appCode':_0x318631['appCode'],'target':_0x3488ad,'remoteId':_0xe05935['remoteId'],'localFilePath':_0x3aa5be,'trashedPath':_0x21eb35},'description':_0x10df36(0x107)+_0x3488ad+_0x10df36(0xfb)};},async 'execute'(_0xaedb04){const _0x102b1a=a37_0x56f779,_0x41a8c0=loadBffProjectConfig(_0xaedb04[_0x102b1a(0xf2)]),_0x5b57f0=await readBffLockFile(_0x41a8c0[_0x102b1a(0xf8)]);if(!_0x5b57f0)throw CliErrors[_0x102b1a(0xe9)](_0x102b1a(0xde));const {lockData:_0x49ffe5,appLock:_0x3ada8e}=ensureLockScope(_0x5b57f0,_0xaedb04[_0x102b1a(0xf2)],_0x41a8c0[_0x102b1a(0xf0)],_0x102b1a(0xdb)),_0x23531c=JSON[_0x102b1a(0xfc)](JSON['stringify'](_0x49ffe5)),_0x39980d=_0x23531c[_0x102b1a(0xec)][_0xaedb04['appCode']];if(!_0x39980d)throw new Error(_0x102b1a(0xeb)+_0xaedb04[_0x102b1a(0xf2)]+_0x102b1a(0x100));const _0x4a7542=_0xaedb04[_0x102b1a(0xe8)](_0x102b1a(0xed)),_0x57460e=Object[_0x102b1a(0xff)](_0x39980d[_0x102b1a(0xf7)]),_0x560d20=resolveDeleteTarget(_0x4a7542,_0x57460e),_0x5ecfef=_0x39980d['functions'][_0x560d20];if(!_0x5ecfef)throw CliErrors[_0x102b1a(0xe9)](_0x102b1a(0x103)+_0x560d20+'\x22.');await deleteBffScript(_0x5ecfef['remoteId']),delete _0x39980d['functions'][_0x560d20],_0x39980d[_0x102b1a(0x109)]=new Date()[_0x102b1a(0xe3)](),await writeBffLockFile(_0x41a8c0[_0x102b1a(0xf8)],_0x23531c);const _0x2ed96c=resolveLocalFilePathFromLockKey(_0x41a8c0,_0x560d20);let _0x50b5e2;await fileExists(_0x2ed96c)&&(_0x50b5e2=await moveToTrash(_0x41a8c0[_0x102b1a(0x101)],_0x41a8c0[_0x102b1a(0x111)],_0x2ed96c),await cleanupEmptyDirectories(dirname(_0x2ed96c),_0x41a8c0[_0x102b1a(0xf3)]));await waitForDeleteSettlement(_0x41a8c0[_0x102b1a(0xf8)],_0xaedb04[_0x102b1a(0xf2)],_0x560d20,_0x2ed96c),await sleep(0x96);const _0x1600a3={'deleted':_0x560d20,'remoteId':_0x5ecfef[_0x102b1a(0x102)]};if(_0x50b5e2)_0x1600a3[_0x102b1a(0x113)]=_0x50b5e2;return{'ok':!![],'data':_0x1600a3,'message':'Deleted\x20'+_0x560d20+(_0x50b5e2?_0x102b1a(0x10c):'')};}};function a37_0x3c64(_0x235da1,_0x532af3){_0x235da1=_0x235da1-0xda;const _0x411180=a37_0x4111();let _0x3c649b=_0x411180[_0x235da1];return _0x3c649b;}function resolveDeleteTarget(_0x1ca24c,_0x239264){const _0x28e5f0=a37_0x56f779;if(_0x1ca24c[_0x28e5f0(0xe7)]('/')){const _0x21bd55=_0x239264[_0x28e5f0(0xf9)](_0x307e73=>_0x307e73===_0x1ca24c);if(!_0x21bd55)throw CliErrors[_0x28e5f0(0xe9)](_0x28e5f0(0x105)+_0x1ca24c);return _0x21bd55;}const _0x4dc66f=_0x239264['filter'](_0x51f745=>_0x51f745[_0x28e5f0(0x110)]('/')['at'](-0x1)===_0x1ca24c);if(_0x4dc66f['length']===0x0)throw CliErrors[_0x28e5f0(0xe9)](_0x28e5f0(0x105)+_0x1ca24c);if(_0x4dc66f['length']>0x1)throw CliErrors[_0x28e5f0(0xe9)](_0x28e5f0(0x112)+_0x1ca24c+_0x28e5f0(0x108)+_0x4dc66f[_0x28e5f0(0xf5)](_0x559cda=>_0x28e5f0(0xe0)+_0x559cda)[_0x28e5f0(0xee)]('\x0a'));return _0x4dc66f[0x0];}async function moveToTrash(_0x46f4db,_0x29cbce,_0x237bcf){const _0x54da01=a37_0x56f779,_0x4b8709=new Date()['toISOString']()[_0x54da01(0xfd)](/[:.]/g,'-'),_0x19446c=relative(_0x46f4db,_0x237bcf),_0x55987f=join(_0x29cbce,_0x4b8709,_0x19446c);return await mkdir(dirname(_0x55987f),{'recursive':!![]}),await rename(_0x237bcf,_0x55987f),_0x55987f;}async function cleanupEmptyDirectories(_0xaefdbb,_0xc75540){const _0x3d9063=a37_0x56f779;let _0x2d2115=resolve(_0xaefdbb);const _0x4de05c=resolve(_0xc75540);while(_0x2d2115[_0x3d9063(0xdf)](''+_0x4de05c+sep)||_0x2d2115===_0x4de05c){if(_0x2d2115===_0x4de05c)return;try{const _0x68c960=await readdir(_0x2d2115);if(_0x68c960['length']>0x0)return;await rmdir(_0x2d2115);}catch{return;}_0x2d2115=dirname(_0x2d2115);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;async function waitForDeleteSettlement(_0x1152ad,_0xd029ed,_0x735f64,_0x33bc95){const _0x137c02=a37_0x56f779;for(let _0x189bae=0x0;_0x189bae<DELETE_SETTLE_RETRY_COUNT;_0x189bae+=0x1){const _0x2c2f67=await readBffLockFile(_0x1152ad),_0x18818b=!!_0x2c2f67?.[_0x137c02(0xec)]?.[_0xd029ed]?.['functions']?.[_0x735f64],_0x3927af=await fileExists(_0x33bc95);if(!_0x18818b&&!_0x3927af)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error(_0x137c02(0xe4)+_0x735f64+'.');}
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_0x198170=a38_0x4524;(function(_0x50ca6a,_0x39f2f2){const _0x59c77b=a38_0x4524,_0xd74c6b=_0x50ca6a();while(!![]){try{const _0x9aeab3=parseInt(_0x59c77b(0xc9))/0x1*(parseInt(_0x59c77b(0xd3))/0x2)+-parseInt(_0x59c77b(0xc7))/0x3+parseInt(_0x59c77b(0xd4))/0x4*(-parseInt(_0x59c77b(0xd0))/0x5)+-parseInt(_0x59c77b(0xca))/0x6*(parseInt(_0x59c77b(0xbd))/0x7)+-parseInt(_0x59c77b(0xc2))/0x8*(parseInt(_0x59c77b(0xba))/0x9)+parseInt(_0x59c77b(0xc4))/0xa*(-parseInt(_0x59c77b(0xc5))/0xb)+parseInt(_0x59c77b(0xc1))/0xc;if(_0x9aeab3===_0x39f2f2)break;else _0xd74c6b['push'](_0xd74c6b['shift']());}catch(_0x11f9ce){_0xd74c6b['push'](_0xd74c6b['shift']());}}}(a38_0x34ea,0x3f914));import{getBffScriptInfo}from'../../core/api-client.js';function a38_0x34ea(){const _0x243645=['Script\x20ID','7dPXzdW','bff','appCode','Return\x20full\x20raw\x20script\x20object','24251496ONMjDQ','1112oCBwLq','read','10220NRLwtq','5049uqaZeD','scriptType','696510nCtUbi','Get\x20Backend\x20Function\x20script\x20details\x20by\x20ID','9886jMTyWq','2371866Kmbcmh','(none)','verbose','scriptContent','detail','updatedTime','1229230biEdsR','boolean','description','38Lrowik','8wsKQvn','23319ZhejIk','updateUserName'];a38_0x34ea=function(){return _0x243645;};return a38_0x34ea();}function a38_0x4524(_0x185a98,_0x309ef6){_0x185a98=_0x185a98-0xba;const _0x34eae2=a38_0x34ea();let _0x45240b=_0x34eae2[_0x185a98];return _0x45240b;}export const bffDetail={'service':a38_0x198170(0xbe),'command':a38_0x198170(0xce),'description':a38_0x198170(0xc8),'risk':a38_0x198170(0xc3),'flags':[{'name':'id','type':'number','required':!![],'description':a38_0x198170(0xbc)},{'name':a38_0x198170(0xcc),'type':a38_0x198170(0xd1),'description':a38_0x198170(0xc0)}],async 'execute'(_0x26f7ab){const _0x5783b9=a38_0x198170,_0x4bbf93=await getBffScriptInfo(_0x26f7ab['num']('id')),_0x1a5217=_0x26f7ab['bool'](_0x5783b9(0xcc));if(_0x1a5217)return{'ok':!![],'data':_0x4bbf93};return{'ok':!![],'data':{'id':_0x4bbf93['id'],'functionName':_0x4bbf93['functionName']??'','version':_0x4bbf93['version']??'','updateUserName':_0x4bbf93[_0x5783b9(0xbb)]??'','appCode':_0x4bbf93[_0x5783b9(0xbf)],'scriptType':_0x4bbf93[_0x5783b9(0xc6)],'description':_0x4bbf93[_0x5783b9(0xd2)]||_0x5783b9(0xcb),'createdTime':_0x4bbf93['createdTime']??'','updatedTime':_0x4bbf93[_0x5783b9(0xcf)]??'','scriptContent':_0x4bbf93[_0x5783b9(0xcd)]??''}};}};
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 a39_0x9222(_0x520d90,_0x502382){_0x520d90=_0x520d90-0xa8;const _0x5eb146=a39_0x5eb1();let _0x9222c=_0x5eb146[_0x520d90];return _0x9222c;}(function(_0x2a3605,_0x3b4e15){const _0x33a88b=a39_0x9222,_0xc8698c=_0x2a3605();while(!![]){try{const _0x401808=-parseInt(_0x33a88b(0xaf))/0x1*(-parseInt(_0x33a88b(0xb1))/0x2)+parseInt(_0x33a88b(0xa9))/0x3*(-parseInt(_0x33a88b(0xb0))/0x4)+parseInt(_0x33a88b(0xad))/0x5+parseInt(_0x33a88b(0xac))/0x6+-parseInt(_0x33a88b(0xa8))/0x7+parseInt(_0x33a88b(0xaa))/0x8*(parseInt(_0x33a88b(0xab))/0x9)+parseInt(_0x33a88b(0xae))/0xa*(-parseInt(_0x33a88b(0xb2))/0xb);if(_0x401808===_0x3b4e15)break;else _0xc8698c['push'](_0xc8698c['shift']());}catch(_0x4b9cca){_0xc8698c['push'](_0xc8698c['shift']());}}}(a39_0x5eb1,0xea65d));import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';function a39_0x5eb1(){const _0x2bcd15=['1268FSmjSU','144016fDhtBi','2407922nkUuqx','699881RINPzK','17742TckRim','3228256vlhhhk','18bQgtvQ','5033346DVPDvg','2498245LUYfPl','10GtbzbC','14mwNdfU'];a39_0x5eb1=function(){return _0x2bcd15;};return a39_0x5eb1();}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_0x51e2c4=a40_0x4c0a;function a40_0x4b7c(){const _0x27bea1=['COMMON','14TDonqI','19997lckLBf','type','No\x20Backend\x20Function\x20scripts\x20found.','scriptType','str','bff','4053310zOkoKp','ENDPOINT','functionName','Script\x20type\x20filter','544QxBPdS','1145064CXlWHj','appCode','verbose','string','9tCUbFJ','map','bool','name','329235pqGrVP','5529UjJClE','description','length','read','164790smMwom','1447439oEXbHT','(unnamed)'];a40_0x4b7c=function(){return _0x27bea1;};return a40_0x4b7c();}(function(_0x3c2d6f,_0x136069){const _0xae0ef3=a40_0x4c0a,_0x1ff426=_0x3c2d6f();while(!![]){try{const _0x4d6205=-parseInt(_0xae0ef3(0x187))/0x1*(parseInt(_0xae0ef3(0x186))/0x2)+-parseInt(_0xae0ef3(0x17e))/0x3*(-parseInt(_0xae0ef3(0x174))/0x4)+-parseInt(_0xae0ef3(0x17d))/0x5+parseInt(_0xae0ef3(0x182))/0x6+-parseInt(_0xae0ef3(0x183))/0x7+-parseInt(_0xae0ef3(0x175))/0x8*(parseInt(_0xae0ef3(0x179))/0x9)+parseInt(_0xae0ef3(0x170))/0xa;if(_0x4d6205===_0x136069)break;else _0x1ff426['push'](_0x1ff426['shift']());}catch(_0x2f658e){_0x1ff426['push'](_0x1ff426['shift']());}}}(a40_0x4b7c,0x1f2dc));import{listBffScripts}from'../../core/api-client.js';function a40_0x4c0a(_0x30481f,_0x21e617){_0x30481f=_0x30481f-0x16f;const _0x4b7ce6=a40_0x4b7c();let _0x4c0a7f=_0x4b7ce6[_0x30481f];return _0x4c0a7f;}export const bffList={'service':a40_0x51e2c4(0x16f),'command':'list','description':'List\x20Backend\x20Function\x20scripts','risk':a40_0x51e2c4(0x181),'flags':[{'name':a40_0x51e2c4(0x188),'type':a40_0x51e2c4(0x178),'description':a40_0x51e2c4(0x173),'default':a40_0x51e2c4(0x171),'enum':[a40_0x51e2c4(0x171),a40_0x51e2c4(0x185)]},{'name':a40_0x51e2c4(0x17c),'type':'string','description':'Filter\x20by\x20script\x20name'},{'name':a40_0x51e2c4(0x177),'type':'boolean','description':'Return\x20full\x20script\x20objects'}],async 'execute'(_0x3fc0a2){const _0x55b49d=a40_0x51e2c4,_0x2c6bc3=await listBffScripts(_0x3fc0a2[_0x55b49d(0x176)],_0x3fc0a2[_0x55b49d(0x18b)](_0x55b49d(0x188)),{'scriptName':_0x3fc0a2[_0x55b49d(0x18b)]('name')||undefined}),_0x58ec7f=_0x3fc0a2[_0x55b49d(0x17b)](_0x55b49d(0x177));return{'ok':!![],'data':_0x58ec7f?_0x2c6bc3:_0x2c6bc3[_0x55b49d(0x17a)](_0x611feb=>({'id':_0x611feb['id'],'functionName':_0x611feb[_0x55b49d(0x172)]??'','description':_0x611feb[_0x55b49d(0x17f)]||_0x55b49d(0x184),'scriptType':_0x611feb[_0x55b49d(0x18a)]})),'message':_0x2c6bc3[_0x55b49d(0x180)]===0x0?_0x55b49d(0x189):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
- function a41_0x15cc(){const _0x1ed1c6=['DEBUG','--start-time','2950EajpGV','Query\x20end\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds\x20(default:\x20now)','\x20must\x20be\x20a\x20positive\x20integer.','12rGuxAm','6324nErSWs','str','flag','Query\x20recent\x20Backend\x20Function\x20runtime\x20logs\x20for\x20development\x20debugging','logs','Maximum\x20log\x20lines\x20to\x20return\x20(1-','length','num','714411NFSOWm','ERROR','bff','--limit','408787GlTMIZ','keyword','read','--end-time','6lscWlt','validation','9091918tmxFFK','Filter\x20by\x20log\x20level','Filter\x20formatted\x20log\x20lines\x20by\x20keyword','limit','number','--since','trim','1931661DrXuTc','toUpperCase','end-time','6dJTSLs','24lgDjhd','--start-time\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20--end-time.','--limit\x20must\x20be\x20between\x201\x20and\x20','8030660zNXuBJ','Minutes\x20before\x20the\x20end\x20time\x20to\x20query\x20(default:\x20','start-time','since','now','917203taycyZ','level','WARN','--since\x20cannot\x20be\x20combined\x20with\x20--start-time.'];a41_0x15cc=function(){return _0x1ed1c6;};return a41_0x15cc();}const a41_0x49885b=a41_0x1de7;(function(_0x62ba7e,_0x41c974){const _0xfb1494=a41_0x1de7,_0x4c99fe=_0x62ba7e();while(!![]){try{const _0x43b190=-parseInt(_0xfb1494(0x1b8))/0x1+parseInt(_0xfb1494(0x1bc))/0x2*(-parseInt(_0xfb1494(0x1b4))/0x3)+parseInt(_0xfb1494(0x1ac))/0x4*(parseInt(_0xfb1494(0x1a8))/0x5)+-parseInt(_0xfb1494(0x1c8))/0x6*(-parseInt(_0xfb1494(0x1d1))/0x7)+parseInt(_0xfb1494(0x1c9))/0x8*(parseInt(_0xfb1494(0x1c5))/0x9)+parseInt(_0xfb1494(0x1cc))/0xa+-parseInt(_0xfb1494(0x1be))/0xb*(parseInt(_0xfb1494(0x1ab))/0xc);if(_0x43b190===_0x41c974)break;else _0x4c99fe['push'](_0x4c99fe['shift']());}catch(_0x4916dc){_0x4c99fe['push'](_0x4c99fe['shift']());}}}(a41_0x15cc,0x88f8c));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';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_0x49885b(0x1d5),'INFO',a41_0x49885b(0x1d3),a41_0x49885b(0x1b5)];export function resolveBffLogQuery(_0x1aefc4,_0x1f31b0=Date[a41_0x49885b(0x1d0)]()){const _0x167dff=a41_0x49885b,_0x303422=_0x1aefc4[_0x167dff(0x1ae)](_0x167dff(0x1cf)),_0x276643=_0x1aefc4[_0x167dff(0x1ae)](_0x167dff(0x1ce)),_0x4b00e7=_0x1aefc4[_0x167dff(0x1ae)](_0x167dff(0x1c7));if(_0x303422!==undefined&&_0x276643!==undefined)throw CliErrors['validation'](_0x167dff(0x1d4));const _0x4edd6b=_0x4b00e7===undefined?_0x1f31b0:readPositiveInteger(_0x1aefc4['num'](_0x167dff(0x1c7)),_0x167dff(0x1bb)),_0x1c45a8=_0x276643===undefined?_0x4edd6b-readSinceMinutes(_0x1aefc4)*0xea60:readPositiveInteger(_0x1aefc4[_0x167dff(0x1b3)](_0x167dff(0x1ce)),_0x167dff(0x1a7));if(_0x1c45a8<=0x0)throw CliErrors[_0x167dff(0x1bd)]('The\x20resolved\x20log\x20start\x20time\x20must\x20be\x20greater\x20than\x200.');if(_0x1c45a8>_0x4edd6b)throw CliErrors[_0x167dff(0x1bd)](_0x167dff(0x1ca));const _0x3f9bf1=readPositiveInteger(_0x1aefc4[_0x167dff(0x1b3)](_0x167dff(0x1c1),DEFAULT_LIMIT),_0x167dff(0x1b7));if(_0x3f9bf1>MAX_LIMIT)throw CliErrors[_0x167dff(0x1bd)](_0x167dff(0x1cb)+MAX_LIMIT+'.');const _0x16afc1=_0x1aefc4['str'](_0x167dff(0x1d2))[_0x167dff(0x1c4)]()[_0x167dff(0x1c6)]()||undefined,_0x3d8fc3=_0x1aefc4[_0x167dff(0x1ad)](_0x167dff(0x1b9))[_0x167dff(0x1c4)]()||undefined;return{'appCode':_0x1aefc4['appCode'],'startTime':_0x1c45a8,'endTime':_0x4edd6b,..._0x276643===undefined?{'sinceMinutes':readSinceMinutes(_0x1aefc4)}:{},..._0x16afc1?{'level':_0x16afc1}:{},..._0x3d8fc3?{'keyword':_0x3d8fc3}:{},'limit':_0x3f9bf1};}function readSinceMinutes(_0x50956e){const _0x311af5=a41_0x49885b;return readPositiveInteger(_0x50956e['num'](_0x311af5(0x1cf),DEFAULT_SINCE_MINUTES),_0x311af5(0x1c3));}function a41_0x1de7(_0x35f28d,_0xa790cc){_0x35f28d=_0x35f28d-0x1a7;const _0x15ccb1=a41_0x15cc();let _0x1de78b=_0x15ccb1[_0x35f28d];return _0x1de78b;}function readPositiveInteger(_0x5a562f,_0x126504){const _0x1da2d4=a41_0x49885b;if(!Number['isSafeInteger'](_0x5a562f)||_0x5a562f<=0x0)throw CliErrors['validation'](_0x126504+_0x1da2d4(0x1aa));return _0x5a562f;}export const bffLogs={'service':a41_0x49885b(0x1b6),'command':a41_0x49885b(0x1b0),'description':a41_0x49885b(0x1af),'risk':a41_0x49885b(0x1ba),'structuredErrors':!![],'flags':[APPCODE_FLAG_OPTIONAL,{'name':a41_0x49885b(0x1cf),'type':a41_0x49885b(0x1c2),'description':a41_0x49885b(0x1cd)+DEFAULT_SINCE_MINUTES+')'},{'name':a41_0x49885b(0x1ce),'type':'number','description':'Query\x20start\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds'},{'name':a41_0x49885b(0x1c7),'type':a41_0x49885b(0x1c2),'description':a41_0x49885b(0x1a9)},{'name':'level','type':'string','description':a41_0x49885b(0x1bf),'enum':LOG_LEVELS},{'name':'keyword','type':'string','description':a41_0x49885b(0x1c0)},{'name':a41_0x49885b(0x1c1),'type':'number','description':a41_0x49885b(0x1b1)+MAX_LIMIT+')','default':DEFAULT_LIMIT}],async 'validate'(_0x36e86e){resolveBffLogQuery(_0x36e86e);},async 'execute'(_0xc032ba){const _0x313862=a41_0x49885b,_0x4cdced=resolveBffLogQuery(_0xc032ba),{sinceMinutes:_0x3f2de0,..._0x297fe9}=_0x4cdced,_0x4bd60e=await searchBffScriptLogs(_0x297fe9);return{'ok':!![],'data':{'query':_0x4cdced,'count':_0x4bd60e['length'],'logs':_0x4bd60e},'message':_0x4bd60e[_0x313862(0x1b2)]===0x0?'No\x20Backend\x20Function\x20logs\x20found\x20for\x20the\x20selected\x20range.':'Found\x20'+_0x4bd60e[_0x313862(0x1b2)]+'\x20Backend\x20Function\x20log\x20line(s).'};}};
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_0x346709=a42_0x3677;(function(_0x14845d,_0x212d8b){const _0x4a95a6=a42_0x3677,_0x44b4d7=_0x14845d();while(!![]){try{const _0x63e061=parseInt(_0x4a95a6(0x169))/0x1+-parseInt(_0x4a95a6(0x10b))/0x2*(-parseInt(_0x4a95a6(0x146))/0x3)+parseInt(_0x4a95a6(0x117))/0x4+-parseInt(_0x4a95a6(0x112))/0x5*(-parseInt(_0x4a95a6(0x118))/0x6)+-parseInt(_0x4a95a6(0x17d))/0x7+parseInt(_0x4a95a6(0x14b))/0x8*(-parseInt(_0x4a95a6(0x11e))/0x9)+-parseInt(_0x4a95a6(0x134))/0xa;if(_0x63e061===_0x212d8b)break;else _0x44b4d7['push'](_0x44b4d7['shift']());}catch(_0x597bc2){_0x44b4d7['push'](_0x44b4d7['shift']());}}}(a42_0x4fd5,0xaa6cb));function a42_0x4fd5(){const _0x3c3915=['alias','rollback','boolean','functions','bool','remoteId','scriptType','\x20--name\x20','map','\x22:\x20','Force\x20overwrite\x20local\x20unsynced\x20changes','\x22.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','.hook-directory-migrate-','22hSQtIg','push','HOOK/','Pull\x20only\x20this\x20script\x20type','delete','filePath','stringify','5BmBAOB','datasetCode','Cannot\x20migrate\x20HOOK\x20lock\x20key\x20\x22','\x20pulled','\x22:\x20both\x20target\x20\x22','1956324QaZZCZ','4153422HexpIp','hookLocation','appCode','keyChanges','Cannot\x20migrate\x20HOOK\x20directories\x20\x22','HOOK','26127rRiaOy','code','type','\x20Recovery\x20errors:\x20','write','utf8','pull','NFC','dev','apps','oldDirectoryPath','\x22:\x20its\x20target\x20\x22','migrations','selectedAppName','all','Would\x20inspect\x20','oldLockKey','bff','some','\x22\x20not\x20found\x20after\x20ensureLockScope.','Could\x20not\x20restore\x20HOOK\x20directory\x20\x22','sourceDirectoryPathByNewDirectory','12919010aaQFNq','\x20conflict','str','newLockKey','require','\x22:\x20it\x20is\x20tracked\x20by\x20multiple\x20Datasets.','length','ino','move','newDirectoryPath','Cannot\x20migrate\x20unsafe\x20HOOK\x20directory\x20\x22','Failed\x20to\x20write\x20the\x20Backend\x20Function\x20lock\x20file;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','Cannot\x20migrate\x20HOOK\x20directory\x20\x22','Failed\x20to\x20migrate\x20HOOK\x20directories;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','toISOString','cancelled','Failed\x20to\x20write\x20local\x20script\x20\x22','parse','276063xdZyFC','&currentPage=1&pageSize=','\x22\x20to\x20\x22','lockKey','scriptContent','2776ncQskd','\x20--format\x20compress','mode','\x22:\x20the\x20destination\x20is\x20another\x20Dataset\x20alias.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','COMMON','\x22:\x20target\x20lock\x20key\x20is\x20already\x20bound\x20to\x20another\x20script.','scriptsRoot','would_pull','message','toLowerCase','\x22\x20is\x20another\x20legacy\x20key\x20being\x20migrated.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','apiDir','flatMap','nonInteractive','string','scriptsRootDir','skipped','Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20','content','\x22:\x20it\x20is\x20now\x20another\x20Dataset\x20alias\x20and\x20contains\x20untracked\x20scripts.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','split','\x22\x20and\x20\x22','\x22:\x20the\x20target\x20directory\x20already\x20exists.\x20Resolve\x20the\x20directories\x20and\x20retry.','mergedCli','profileName','close','Cannot\x20migrate\x20HOOK\x20lock\x20keys\x20\x22','lastSync','functionName','force','1374882ElyWzj','has','ENOENT','reverse','projectedFunctions','\x20bff\x20push\x20--type\x20','stdin','\x20failed','trim','sourceFilePathByNewLockKey','operationType','entry','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','Could\x20not\x20restore\x20local\x20script\x20\x22','read','question','.js','functionNode','currentApp','Force\x20pull\x20cancelled.','3997910EMHxTj','set','&type=','newDirectory','lockFilePath','case-rename','join','Cannot\x20migrate\x20unsafe\x20HOOK\x20lock\x20key\x20\x22','rekey','Lock\x20scope\x20for\x20app\x20\x22','existed','push_local','\x22:\x20its\x20target\x20directory\x20is\x20unsafe.','\x20resolution','Remote\x20script\x20missing\x20id.','unresolvable\x20target\x20path','requires','\x22\x20from\x20\x22','oldDirectory','includes','defaultApp','entries','get','validation','BFF_LOCAL_UNSYNCED'];a42_0x4fd5=function(){return _0x3c3915;};return a42_0x4fd5();}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_0x346709(0x12f),'command':a42_0x346709(0x124),'description':'Pull\x20remote\x20Backend\x20Function\x20scripts\x20to\x20local','risk':a42_0x346709(0x177),'structuredErrors':!![],'flags':[{'name':a42_0x346709(0x120),'type':a42_0x346709(0x159),'description':a42_0x346709(0x10e),'enum':[a42_0x346709(0x14f),'ENDPOINT','HOOK']},{'name':a42_0x346709(0x168),'type':a42_0x346709(0x100),'description':a42_0x346709(0x108)}],async 'dryRun'(_0x2026ef){const _0x577863=a42_0x346709,_0x258c7f=loadBffProjectConfig(_0x2026ef[_0x577863(0x11a)]),_0x15601d=await readBffLockFile(_0x258c7f[_0x577863(0x181)]),{appLock:_0x4e697d}=ensureLockScope(_0x15601d??createEmptyBffLock(),_0x2026ef['appCode'],_0x258c7f[_0x577863(0x151)],_0x577863(0x124)),_0x4a881b=normalizeBffType(_0x2026ef[_0x577863(0x136)](_0x577863(0x120)))??undefined,[_0x343b29,_0x71614c]=await Promise['all']([listBffScripts(_0x2026ef['appCode'],_0x4a881b),getBffScriptStatistics(_0x2026ef[_0x577863(0x11a)])]),_0x245448=_0x343b29['some'](_0x28f6ba=>normalizeBffType(_0x28f6ba['scriptType'])===_0x577863(0x11d)),_0x4b6a88=_0x245448?buildDatasetCodeToAliasMap(_0x2026ef[_0x577863(0x156)],_0x2026ef['appCode'],_0x2026ef[_0x577863(0x12b)]||_0x2026ef['mergedCli']?.[_0x577863(0x17b)]||_0x2026ef['mergedCli']?.[_0x577863(0xf9)]):new Map(),_0x29e478=_0x245448?await planHookDirectoryMigration(_0x258c7f,_0x4e697d,_0x4b6a88,await scanLocalBffFunctions(_0x258c7f,'HOOK')):undefined,_0x22de7c=createHookLocationMap(_0x71614c),_0x161bed=[];for(const _0x1e07c8 of _0x343b29){const _0x4b4002=resolveRemoteScriptTarget(_0x258c7f,_0x1e07c8,_0x22de7c,_0x29e478?.[_0x577863(0x16d)]??_0x4e697d['functions'],_0x4b6a88);if(!_0x4b4002){_0x161bed[_0x577863(0x10c)]({'scriptType':_0x1e07c8[_0x577863(0x104)],'functionName':_0x1e07c8['functionName']??'','status':_0x577863(0x15b),'reason':_0x577863(0x18c)});continue;}const _0x9f679c=(_0x29e478?.[_0x577863(0x16d)]??_0x4e697d[_0x577863(0x101)])[_0x4b4002[_0x577863(0x149)]],_0x200703=_0x1e07c8[_0x577863(0x14a)]!=null?computeContentHash(_0x1e07c8[_0x577863(0x14a)]):undefined,_0x2cbf6e=await hasUnsyncedLocalChanges(resolveMigratedSourceFilePath(_0x29e478,_0x4b4002)??_0x4b4002[_0x577863(0x110)],_0x9f679c,_0x200703),_0x3c00cb=_0x2cbf6e?localUnsyncedConflict(_0x4b4002,_0x1e07c8['id']):undefined;_0x161bed[_0x577863(0x10c)]({'lockKey':_0x4b4002[_0x577863(0x149)],'filePath':_0x4b4002[_0x577863(0x110)],'remoteId':_0x1e07c8['id']??null,'status':_0x3c00cb?'conflict':_0x577863(0x152),..._0x3c00cb?{'conflict':_0x3c00cb}:{},..._0x4b4002['hookLocation']?{'alias':_0x4b4002[_0x577863(0x119)]['alias']??null,'datasetCode':_0x4b4002[_0x577863(0x119)]['datasetCode'],'operationType':_0x4b4002[_0x577863(0x119)][_0x577863(0x173)],'functionNode':_0x4b4002['hookLocation'][_0x577863(0x17a)]}:{}});}return{'method':'GET','url':'/api/management/library/scripts/list?appCode='+_0x2026ef[_0x577863(0x11a)]+(_0x4a881b?_0x577863(0x17f)+_0x4a881b:'')+_0x577863(0x147)+BFF_LIST_PAGE_SIZE,'body':{'appCode':_0x2026ef[_0x577863(0x11a)],'filterType':_0x4a881b??null,..._0x29e478&&_0x29e478[_0x577863(0x12a)][_0x577863(0x13a)]>0x0?{'hookDirectoryMigrations':_0x29e478['migrations'][_0x577863(0x106)](_0x5374b7=>({'from':_0x5374b7[_0x577863(0xf7)],'to':_0x5374b7[_0x577863(0x180)]}))}:{},'files':_0x161bed},'description':_0x577863(0x12d)+_0x161bed[_0x577863(0x13a)]+'\x20remote\x20Backend\x20Function\x20script(s)\x20for\x20pull'};},async 'execute'(_0xe67e87){const _0x258be4=a42_0x346709,_0x4d18a3=loadBffProjectConfig(_0xe67e87[_0x258be4(0x11a)]),_0x1e5457=await readBffLockFile(_0x4d18a3[_0x258be4(0x181)]),{lockData:_0x19da7f,appLock:_0x58e51b}=ensureLockScope(_0x1e5457??createEmptyBffLock(),_0xe67e87[_0x258be4(0x11a)],_0x4d18a3[_0x258be4(0x151)],_0x258be4(0x124)),_0x7e8f76=normalizeBffType(_0xe67e87[_0x258be4(0x136)]('type'))??undefined;if(_0xe67e87['str'](_0x258be4(0x120))&&!_0x7e8f76)throw CliErrors[_0x258be4(0xfc)](_0x258be4(0x175));const [_0x2f71e0,_0x4c2f11]=await Promise['all']([listBffScripts(_0xe67e87['appCode'],_0x7e8f76),getBffScriptStatistics(_0xe67e87[_0x258be4(0x11a)])]);if(_0x2f71e0[_0x258be4(0x13a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'conflicts':[],'failed':[]},'message':'No\x20remote\x20Backend\x20Function\x20scripts\x20found.'};const _0x10a193=_0xe67e87[_0x258be4(0x102)](_0x258be4(0x168));if(_0x10a193&&!_0xe67e87[_0x258be4(0x158)]){const _0x2440fd=await confirmForce();if(!_0x2440fd)throw CliErrors[_0x258be4(0x143)](_0x258be4(0x17c));}if(_0x10a193&&_0xe67e87[_0x258be4(0x158)]){}const _0x2fffd1=_0x2f71e0[_0x258be4(0x130)](_0x2cc5da=>normalizeBffType(_0x2cc5da[_0x258be4(0x104)])===_0x258be4(0x11d)),_0x10e3b5=_0x2fffd1?buildDatasetCodeToAliasMap(_0xe67e87[_0x258be4(0x156)],_0xe67e87[_0x258be4(0x11a)],_0xe67e87[_0x258be4(0x12b)]||_0xe67e87[_0x258be4(0x162)]?.[_0x258be4(0x17b)]||_0xe67e87['mergedCli']?.[_0x258be4(0xf9)]):new Map(),_0x719014=createHookLocationMap(_0x4c2f11),_0x72d963=JSON[_0x258be4(0x145)](JSON[_0x258be4(0x111)](_0x19da7f)),_0x71452f=_0xe67e87['appCode'],_0x7d0b00=_0x72d963[_0x258be4(0x127)][_0x71452f];if(!_0x7d0b00)throw new Error(_0x258be4(0x186)+_0x71452f+_0x258be4(0x131));const _0x3003c7=_0x2fffd1?await applyHookDirectoryMigration(await planHookDirectoryMigration(_0x4d18a3,_0x7d0b00,_0x10e3b5,await scanLocalBffFunctions(_0x4d18a3,_0x258be4(0x11d))),_0x7d0b00):undefined,_0x196aba=createPullFileTransaction(),_0x56f7b5=[],_0x53ee36=[],_0x5a94ec=[],_0x5dee9e=[];for(const _0x4e6b14 of _0x2f71e0){const _0x272c5c=resolveRemoteScriptTarget(_0x4d18a3,_0x4e6b14,_0x719014,_0x7d0b00[_0x258be4(0x101)],_0x10e3b5);if(!_0x272c5c){_0x53ee36[_0x258be4(0x10c)]({'lockKey':_0x4e6b14['scriptType']+'/'+_0x4e6b14[_0x258be4(0x167)],'reason':_0x258be4(0x18c)});continue;}const _0x275491=_0x7d0b00[_0x258be4(0x101)][_0x272c5c[_0x258be4(0x149)]];try{if(!_0x4e6b14['id'])throw new Error(_0x258be4(0x18b));if(_0x4e6b14[_0x258be4(0x14a)]==null)throw new Error('Remote\x20script\x20missing\x20content.');const _0x409bef=_0x4e6b14['scriptContent'],_0x2840da=computeContentHash(_0x409bef);if(!_0x10a193){const _0x3ee432=await hasUnsyncedLocalChanges(_0x272c5c[_0x258be4(0x110)],_0x275491,_0x2840da);if(_0x3ee432){_0x5a94ec[_0x258be4(0x10c)](localUnsyncedConflict(_0x272c5c,_0x4e6b14['id']));continue;}}await _0x196aba[_0x258be4(0x122)](_0x272c5c['filePath'],_0x409bef);const _0xac86f6={'hash':_0x2840da,'remoteId':_0x4e6b14['id'],'version':_0x4e6b14['version']};_0x272c5c[_0x258be4(0x120)]===_0x258be4(0x11d)&&_0x272c5c[_0x258be4(0x119)]&&(_0xac86f6[_0x258be4(0xfe)]=_0x272c5c[_0x258be4(0x119)][_0x258be4(0xfe)],_0xac86f6[_0x258be4(0x113)]=_0x272c5c['hookLocation'][_0x258be4(0x113)],_0xac86f6[_0x258be4(0x173)]=_0x272c5c['hookLocation'][_0x258be4(0x173)],_0xac86f6['functionNode']=_0x272c5c[_0x258be4(0x119)][_0x258be4(0x17a)]),_0x7d0b00[_0x258be4(0x101)][_0x272c5c[_0x258be4(0x149)]]=_0xac86f6,_0x56f7b5[_0x258be4(0x10c)]({'lockKey':_0x272c5c['lockKey'],'remoteId':_0x4e6b14['id']});}catch(_0x27bebf){_0x5dee9e[_0x258be4(0x10c)]({'lockKey':_0x272c5c[_0x258be4(0x149)],'error':_0x27bebf instanceof Error?_0x27bebf[_0x258be4(0x153)]:String(_0x27bebf)});}}_0x7d0b00[_0x258be4(0x166)]=new Date()[_0x258be4(0x142)]();try{await writeBffLockFile(_0x4d18a3['lockFilePath'],_0x72d963);}catch(_0x2bbfc6){const _0x1501e5=[...await _0x196aba[_0x258be4(0xff)](),...await _0x3003c7?.['rollback']()??[]];throw withRollbackErrors(_0x2bbfc6,_0x258be4(0x13f),_0x1501e5);}return{'ok':_0x5dee9e['length']===0x0,'data':{'pulled':_0x56f7b5,'skipped':_0x53ee36,'conflicts':_0x5a94ec,'failed':_0x5dee9e},'message':formatPullMessage(_0x56f7b5[_0x258be4(0x13a)],_0x53ee36[_0x258be4(0x13a)],_0x5a94ec['length'],_0x5dee9e[_0x258be4(0x13a)])};}};function localUnsyncedConflict(_0x52ef4f,_0x4c1d42){const _0x3c8e5d=a42_0x346709,_0x1e0f12=_0x52ef4f[_0x3c8e5d(0x149)][_0x3c8e5d(0x15f)]('/')['at'](-0x1);return{'code':_0x3c8e5d(0xfd),'lockKey':_0x52ef4f['lockKey'],'filePath':_0x52ef4f[_0x3c8e5d(0x110)],..._0x4c1d42!=null?{'remoteId':_0x4c1d42}:{},'message':'Local\x20script\x20differs\x20from\x20the\x20last\x20pulled\x20version.\x20Review\x20it\x20before\x20choosing\x20the\x20source\x20of\x20truth.','nextAction':{'action':_0x3c8e5d(0x188),'command':CLI_BIN_NAME+_0x3c8e5d(0x16e)+_0x52ef4f['type']+_0x3c8e5d(0x105)+_0x1e0f12+_0x3c8e5d(0x14c),'requiresReview':!![],'message':'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.'}};}function formatPullMessage(_0x3c8336,_0x2cfd9b,_0x3deef3,_0x13e951){const _0x5372f7=a42_0x346709,_0x93e2ca=['Pull\x20complete:\x20'+_0x3c8336+_0x5372f7(0x115),_0x2cfd9b+'\x20skipped'];_0x3deef3>0x0&&_0x93e2ca[_0x5372f7(0x10c)](_0x3deef3+_0x5372f7(0x135)+(_0x3deef3===0x1?'':'s')+'\x20'+(_0x3deef3===0x1?_0x5372f7(0x18d):_0x5372f7(0x138))+_0x5372f7(0x18a));if(_0x13e951>0x0)_0x93e2ca['push'](_0x13e951+_0x5372f7(0x170));return _0x93e2ca[_0x5372f7(0x183)](',\x20');}async function hasUnsyncedLocalChanges(_0x26a4a2,_0x3ac702,_0x4ad5f7){if(!await fileExists(_0x26a4a2))return![];const _0x55ee36=await computeFileHash(_0x26a4a2);if(!_0x3ac702)return _0x4ad5f7?_0x55ee36!==_0x4ad5f7:!![];return _0x55ee36!==_0x3ac702['hash'];}function createPullFileTransaction(){const _0x3e5800=new Map(),_0x274e5b=async(_0x5d4b58,_0x4bb3bb)=>{const _0x4bfd80=a42_0x3677;try{if(_0x4bb3bb[_0x4bfd80(0x187)])await ensureParentDirectory(_0x5d4b58),await writeFile(_0x5d4b58,_0x4bb3bb[_0x4bfd80(0x15d)]);else try{await unlink(_0x5d4b58);}catch(_0x2dfb87){if(_0x2dfb87['code']!=='ENOENT')throw _0x2dfb87;}return undefined;}catch(_0x56a07b){return _0x56a07b instanceof Error?_0x56a07b:new Error(String(_0x56a07b));}};return{async 'write'(_0x13d65c,_0x2eb6ee){const _0x4ff43e=a42_0x3677;if(!_0x3e5800[_0x4ff43e(0x16a)](_0x13d65c))try{_0x3e5800[_0x4ff43e(0x17e)](_0x13d65c,{'existed':!![],'content':await readFile(_0x13d65c)});}catch(_0x2fdf69){if(_0x2fdf69[_0x4ff43e(0x11f)]!==_0x4ff43e(0x16b))throw _0x2fdf69;_0x3e5800[_0x4ff43e(0x17e)](_0x13d65c,{'existed':![]});}try{await ensureParentDirectory(_0x13d65c),await writeFile(_0x13d65c,_0x2eb6ee,_0x4ff43e(0x123));}catch(_0x28eca4){const _0x2b8585=await _0x274e5b(_0x13d65c,_0x3e5800[_0x4ff43e(0xfb)](_0x13d65c));if(!_0x2b8585)_0x3e5800[_0x4ff43e(0x10f)](_0x13d65c);throw withRollbackErrors(_0x28eca4,_0x4ff43e(0x144)+_0x13d65c+'\x22.',_0x2b8585?[_0x2b8585]:[]);}},async 'rollback'(){const _0x2aee4c=a42_0x3677,_0xb11421=[];for(const [_0x3f497c,_0x3b21b9]of[..._0x3e5800[_0x2aee4c(0xfa)]()]['reverse']()){const _0x1089b4=await _0x274e5b(_0x3f497c,_0x3b21b9);_0x1089b4&&_0xb11421[_0x2aee4c(0x10c)](new Error(_0x2aee4c(0x176)+_0x3f497c+_0x2aee4c(0x107)+_0x1089b4[_0x2aee4c(0x153)]));}return _0xb11421;}};}function withRollbackErrors(_0x4a5b22,_0x14e0bf,_0x4aa728){const _0x35574c=a42_0x346709,_0x48bfff=_0x4a5b22 instanceof Error?_0x4a5b22:new Error(String(_0x4a5b22));if(_0x4aa728['length']===0x0)return _0x48bfff;return new AggregateError([_0x48bfff,..._0x4aa728],_0x14e0bf+_0x35574c(0x121)+_0x4aa728[_0x35574c(0x106)](_0xb72283=>_0xb72283[_0x35574c(0x153)])[_0x35574c(0x183)](';\x20'));}function buildDatasetCodeToAliasMap(_0x251952,_0x43ff8e,_0x446401){const _0x5ce698=a42_0x346709,_0x255bbf=resolveApiModelSource(_0x251952,_0x43ff8e,_0x446401),_0x39b3cc=loadAliasMap(_0x251952,undefined,_0x255bbf[_0x5ce698(0x110)],_0x255bbf[_0x5ce698(0x163)]);return assertUnambiguousHookAliases(_0x39b3cc),new Map(_0x39b3cc['map'](_0x235a7e=>[_0x235a7e['datasetCode'][_0x5ce698(0x154)](),_0x235a7e[_0x5ce698(0xfe)]]));}async function planHookDirectoryMigration(_0x330b4d,_0x4e13cb,_0x57191c,_0x5da2ec){const _0x37b4a2=a42_0x346709,_0x69ef0a=new Map();for(const [_0x7f6451,_0x1a3aee]of Object[_0x37b4a2(0xfa)](_0x4e13cb[_0x37b4a2(0x101)])){const [_0x18f368,_0x1506ef,_0x57c54a,_0x37ec79,_0x31ca4a,..._0x14658a]=_0x7f6451['split']('/');if(_0x18f368!==_0x37b4a2(0x11d)||!_0x1506ef||!_0x57c54a||!_0x37ec79||!_0x31ca4a||_0x14658a[_0x37b4a2(0x13a)]>0x0||!_0x1a3aee[_0x37b4a2(0x113)])continue;const _0x1411c5=_0x57191c[_0x37b4a2(0xfb)](_0x1a3aee[_0x37b4a2(0x113)][_0x37b4a2(0x154)]()),_0x5ed6a1=_0x1411c5??_0x1a3aee[_0x37b4a2(0x113)];if(!isSafeHookDirectorySegment(_0x1506ef))throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x13e)+_0x1506ef+'\x22\x20from\x20the\x20lock\x20file.');if(!isSafeHookDirectorySegment(_0x5ed6a1))throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x1506ef+_0x37b4a2(0x189));if(_0x1506ef===_0x5ed6a1)continue;const _0x24ab3f=_0x69ef0a[_0x37b4a2(0xfb)](_0x1506ef)??{'datasetCode':_0x1a3aee[_0x37b4a2(0x113)],'alias':_0x1411c5,'keyChanges':[]};if(_0x24ab3f[_0x37b4a2(0x113)]!==_0x1a3aee[_0x37b4a2(0x113)])throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x1506ef+_0x37b4a2(0x139));const _0x37c4b5=_0x37b4a2(0x10d)+_0x5ed6a1+'/'+_0x57c54a+'/'+_0x37ec79+'/'+_0x31ca4a;try{resolveLocalFilePathFromLockKey(_0x330b4d,_0x7f6451),resolveLocalFilePathFromLockKey(_0x330b4d,_0x37c4b5);}catch(_0x5eadc2){throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x184)+_0x7f6451+_0x37b4a2(0x107)+(_0x5eadc2 instanceof Error?_0x5eadc2[_0x37b4a2(0x153)]:String(_0x5eadc2)));}_0x24ab3f[_0x37b4a2(0x11b)][_0x37b4a2(0x10c)]({'oldLockKey':_0x7f6451,'newLockKey':_0x37c4b5,'entry':_0x1a3aee}),_0x69ef0a[_0x37b4a2(0x17e)](_0x1506ef,_0x24ab3f);}const _0x56cdf6=new Set([..._0x69ef0a['values']()][_0x37b4a2(0x157)](_0x16adf1=>_0x16adf1[_0x37b4a2(0x11b)][_0x37b4a2(0x106)](_0x3d9d97=>_0x3d9d97['oldLockKey']))),_0x3577fb=new Map(),_0x1dfd3f=new Map();for(const [_0x5659f2,_0x4ae4cd]of _0x69ef0a){const _0x2970e3=_0x4ae4cd[_0x37b4a2(0xfe)]??_0x4ae4cd['datasetCode'],_0x48e8f1=hookDirectoryIdentity(_0x2970e3),_0xebe2ed=_0x3577fb[_0x37b4a2(0xfb)](_0x48e8f1);if(_0xebe2ed&&_0xebe2ed!==_0x5659f2)throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x11c)+_0xebe2ed+_0x37b4a2(0x160)+_0x5659f2+_0x37b4a2(0x116)+_0x2970e3+'\x22.\x20Resolve\x20the\x20directories\x20manually\x20before\x20retrying.');_0x3577fb[_0x37b4a2(0x17e)](_0x48e8f1,_0x5659f2);for(const _0x207cff of _0x4ae4cd[_0x37b4a2(0x11b)]){const _0x47ac7f=_0x1dfd3f[_0x37b4a2(0xfb)](_0x207cff['newLockKey']);if(_0x47ac7f&&_0x47ac7f!==_0x207cff[_0x37b4a2(0x12e)])throw CliErrors['validation'](_0x37b4a2(0x165)+_0x47ac7f+_0x37b4a2(0x160)+_0x207cff['oldLockKey']+'\x22:\x20both\x20target\x20\x22'+_0x207cff[_0x37b4a2(0x137)]+_0x37b4a2(0x109));if(_0x56cdf6[_0x37b4a2(0x16a)](_0x207cff[_0x37b4a2(0x137)]))throw CliErrors['validation'](_0x37b4a2(0x114)+_0x207cff[_0x37b4a2(0x12e)]+_0x37b4a2(0x129)+_0x207cff[_0x37b4a2(0x137)]+_0x37b4a2(0x155));_0x1dfd3f[_0x37b4a2(0x17e)](_0x207cff[_0x37b4a2(0x137)],_0x207cff['oldLockKey']);}}const _0x6b3f6d=new Map();for(const [_0x486729,_0x489ca2]of _0x57191c){_0x6b3f6d[_0x37b4a2(0x17e)](hookDirectoryIdentity(_0x489ca2),_0x486729);}const _0x2fce06=[];for(const [_0x2fb24e,_0x2da0e3]of _0x69ef0a){const _0x5882b2=_0x2da0e3['alias']??_0x2da0e3[_0x37b4a2(0x113)],_0x305c71=join(_0x330b4d[_0x37b4a2(0x15a)],_0x37b4a2(0x11d),_0x2fb24e),_0x135126=join(_0x330b4d[_0x37b4a2(0x15a)],_0x37b4a2(0x11d),_0x5882b2),_0x2e44db=await directoryExists(_0x305c71),_0x38e02e=await directoryExists(_0x135126),_0x4801cf=_0x2e44db?_0x38e02e?await sameDirectory(_0x305c71,_0x135126)?_0x37b4a2(0x182):undefined:_0x37b4a2(0x13c):_0x37b4a2(0x185);if(!_0x4801cf)throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x148)+_0x5882b2+_0x37b4a2(0x161));const _0x32fe09=_0x6b3f6d[_0x37b4a2(0xfb)](hookDirectoryIdentity(_0x2fb24e));if(_0x32fe09&&_0x32fe09!==_0x2da0e3[_0x37b4a2(0x113)][_0x37b4a2(0x154)]()){const _0x990774=new Set(_0x2da0e3[_0x37b4a2(0x11b)]['map'](_0x1b4f8f=>_0x1b4f8f['oldLockKey'])),_0x502a19=_0x5da2ec['filter'](_0x4ecaf2=>_0x4ecaf2[_0x37b4a2(0x120)]===_0x37b4a2(0x11d)&&_0x4ecaf2[_0x37b4a2(0xfe)]!=null&&hookDirectoryIdentity(_0x4ecaf2[_0x37b4a2(0xfe)])===hookDirectoryIdentity(_0x2fb24e)&&!_0x990774[_0x37b4a2(0x16a)](_0x4ecaf2[_0x37b4a2(0x149)]));if(_0x502a19[_0x37b4a2(0x13a)]>0x0)throw CliErrors['validation'](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x15e));}const _0x59758a=_0x6b3f6d['get'](hookDirectoryIdentity(_0x5882b2));if(_0x59758a&&_0x59758a!==_0x2da0e3['datasetCode'][_0x37b4a2(0x154)]())throw CliErrors['validation'](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x148)+_0x5882b2+_0x37b4a2(0x14e));for(const _0x58e1da of _0x2da0e3[_0x37b4a2(0x11b)]){const _0x25873b=_0x4e13cb[_0x37b4a2(0x101)][_0x58e1da[_0x37b4a2(0x137)]];if(_0x25873b&&!_0x56cdf6[_0x37b4a2(0x16a)](_0x58e1da['newLockKey'])&&!sameHookIdentity(_0x58e1da[_0x37b4a2(0x174)],_0x25873b))throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x148)+_0x5882b2+_0x37b4a2(0x150));}_0x2fce06[_0x37b4a2(0x10c)]({'oldDirectory':_0x2fb24e,'newDirectory':_0x5882b2,'oldDirectoryPath':_0x305c71,'newDirectoryPath':_0x135126,'mode':_0x4801cf,'alias':_0x2da0e3[_0x37b4a2(0xfe)],'keyChanges':_0x2da0e3[_0x37b4a2(0x11b)]});}const _0x32845f={..._0x4e13cb['functions']},_0x3c03e9=new Map(),_0x3af3ac=new Map();for(const _0x39782e of _0x2fce06){const _0xbb3dff=_0x39782e['mode']!==_0x37b4a2(0x185);_0xbb3dff&&_0x3af3ac[_0x37b4a2(0x17e)](hookDirectoryIdentity(_0x39782e[_0x37b4a2(0x180)]),_0x39782e['oldDirectoryPath']);for(const _0xc8c796 of _0x39782e[_0x37b4a2(0x11b)]){const _0x1a41b1=_0x32845f[_0xc8c796['newLockKey']],_0x53c083=_0xbb3dff?_0xc8c796[_0x37b4a2(0x174)]:_0x1a41b1??_0xc8c796['entry'];_0x32845f[_0xc8c796[_0x37b4a2(0x137)]]=canonicalizeHookEntry(_0x53c083,_0x39782e[_0x37b4a2(0xfe)]),delete _0x32845f[_0xc8c796[_0x37b4a2(0x12e)]],_0xbb3dff&&_0x3c03e9['set'](_0xc8c796['newLockKey'],resolveLocalFilePathFromLockKey(_0x330b4d,_0xc8c796[_0x37b4a2(0x12e)]));}}return{'migrations':_0x2fce06,'projectedFunctions':_0x32845f,'sourceFilePathByNewLockKey':_0x3c03e9,'sourceDirectoryPathByNewDirectory':_0x3af3ac};}function resolveMigratedSourceFilePath(_0x4b739f,_0x40ecfb){const _0x2409bc=a42_0x346709;if(!_0x4b739f||!_0x40ecfb)return undefined;const _0x1be3bb=_0x4b739f[_0x2409bc(0x172)]['get'](_0x40ecfb[_0x2409bc(0x149)]);if(_0x1be3bb)return _0x1be3bb;if(_0x40ecfb[_0x2409bc(0x120)]!==_0x2409bc(0x11d))return undefined;const [,_0x1f49c6,..._0x46a470]=_0x40ecfb[_0x2409bc(0x149)]['split']('/');if(!_0x1f49c6||_0x46a470[_0x2409bc(0x13a)]===0x0)return undefined;const _0x57778c=_0x4b739f[_0x2409bc(0x133)][_0x2409bc(0xfb)](hookDirectoryIdentity(_0x1f49c6));return _0x57778c?join(_0x57778c,..._0x46a470)+_0x2409bc(0x179):undefined;}function sameHookIdentity(_0x2bd441,_0x7f9c94){const _0x366fe1=a42_0x346709;return _0x2bd441[_0x366fe1(0x103)]===_0x7f9c94[_0x366fe1(0x103)]&&_0x2bd441[_0x366fe1(0x113)]===_0x7f9c94[_0x366fe1(0x113)]&&_0x2bd441[_0x366fe1(0x173)]===_0x7f9c94['operationType']&&_0x2bd441['functionNode']===_0x7f9c94['functionNode'];}function a42_0x3677(_0x2f3520,_0x18654b){_0x2f3520=_0x2f3520-0xf6;const _0x4fd575=a42_0x4fd5();let _0x367787=_0x4fd575[_0x2f3520];return _0x367787;}function canonicalizeHookEntry(_0x4bd1ac,_0x25c848){const {alias:_0x1b8c55,..._0x5b6892}=_0x4bd1ac;return _0x25c848?{..._0x5b6892,'alias':_0x25c848}:_0x5b6892;}function hookDirectoryIdentity(_0x240488){const _0xb13916=a42_0x346709;return _0x240488['normalize'](_0xb13916(0x125))['toLowerCase']();}function isSafeHookDirectorySegment(_0xe3422){return isSafeLockKeySegment(_0xe3422);}async function sameDirectory(_0x21cd83,_0x6e698c){const _0xc5954b=a42_0x346709,[_0x4d14c0,_0x4d1a05]=await Promise[_0xc5954b(0x12c)]([stat(_0x21cd83),stat(_0x6e698c)]);return _0x4d14c0[_0xc5954b(0x126)]===_0x4d1a05[_0xc5954b(0x126)]&&_0x4d14c0[_0xc5954b(0x13b)]===_0x4d1a05[_0xc5954b(0x13b)];}async function applyHookDirectoryMigration(_0x5191a3,_0x4b7892){const _0x2cca76=a42_0x346709,_0x17c2ea=_0x4b7892[_0x2cca76(0x101)],_0xa40d5c=_0x4b7892[_0x2cca76(0x166)],_0x184d3d=[],_0x245f3a=async()=>{const _0x317293=_0x2cca76,_0x40e64f=[];_0x4b7892[_0x317293(0x101)]=_0x17c2ea,_0x4b7892['lastSync']=_0xa40d5c;for(const {migration:_0x5941a8,temporaryPath:_0x42a772}of[..._0x184d3d][_0x317293(0x16c)]()){try{_0x42a772?(await rename(_0x5941a8[_0x317293(0x13d)],_0x42a772),await rename(_0x42a772,_0x5941a8[_0x317293(0x128)])):await rename(_0x5941a8['newDirectoryPath'],_0x5941a8['oldDirectoryPath']);}catch(_0x367543){_0x40e64f[_0x317293(0x10c)](new Error(_0x317293(0x132)+_0x5941a8[_0x317293(0xf7)]+_0x317293(0xf6)+_0x5941a8[_0x317293(0x180)]+_0x317293(0x107)+(_0x367543 instanceof Error?_0x367543[_0x317293(0x153)]:String(_0x367543))));}}return _0x40e64f;};try{for(const _0x1faeb4 of _0x5191a3['migrations']){if(_0x1faeb4[_0x2cca76(0x14d)]===_0x2cca76(0x13c))await ensureParentDirectory(_0x1faeb4[_0x2cca76(0x13d)]),await rename(_0x1faeb4['oldDirectoryPath'],_0x1faeb4[_0x2cca76(0x13d)]),_0x184d3d[_0x2cca76(0x10c)]({'migration':_0x1faeb4});else{if(_0x1faeb4[_0x2cca76(0x14d)]==='case-rename'){const _0x4559c0=join(dirname(_0x1faeb4[_0x2cca76(0x128)]),_0x2cca76(0x10a)+randomUUID());await rename(_0x1faeb4[_0x2cca76(0x128)],_0x4559c0);try{await rename(_0x4559c0,_0x1faeb4[_0x2cca76(0x13d)]);}catch(_0x29531e){try{await rename(_0x4559c0,_0x1faeb4[_0x2cca76(0x128)]);}catch(_0x4df7ad){throw withRollbackErrors(_0x29531e,'Failed\x20to\x20rename\x20HOOK\x20directory\x20\x22'+_0x1faeb4[_0x2cca76(0xf7)]+'\x22\x20to\x20\x22'+_0x1faeb4[_0x2cca76(0x180)]+'\x22;\x20temporary\x20directory\x20\x22'+_0x4559c0+'\x22\x20may\x20remain.',[new Error('Could\x20not\x20restore\x20temporary\x20HOOK\x20directory\x20\x22'+_0x4559c0+'\x22\x20to\x20\x22'+_0x1faeb4['oldDirectory']+_0x2cca76(0x107)+(_0x4df7ad instanceof Error?_0x4df7ad[_0x2cca76(0x153)]:String(_0x4df7ad)))]);}throw _0x29531e;}_0x184d3d[_0x2cca76(0x10c)]({'migration':_0x1faeb4,'temporaryPath':_0x4559c0});}}}return _0x4b7892[_0x2cca76(0x101)]=_0x5191a3['projectedFunctions'],{'rollback':_0x245f3a};}catch(_0x77eb79){const _0x57addf=await _0x245f3a();throw withRollbackErrors(_0x77eb79,_0x2cca76(0x141),_0x57addf);}}async function confirmForce(){const _0x193439=a42_0x346709,_0x5b0544=createInterface({'input':process[_0x193439(0x16f)],'output':process['stderr']}),_0x4fd12f=await new Promise(_0x2a857e=>{const _0x299b78=_0x193439;_0x5b0544[_0x299b78(0x178)](_0x299b78(0x15c),_0x2a857e);});return _0x5b0544[_0x193439(0x164)](),['y','yes'][_0x193439(0xf8)](_0x4fd12f[_0x193439(0x171)]()[_0x193439(0x154)]());}
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)]());}