@lovrabet/rabetbase-cli 2.5.3 → 2.5.4-beta.2

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 (389) hide show
  1. package/README.md +11 -0
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/api-group.js +1 -1
  4. package/lib/api/fetch-model-list.js +1 -1
  5. package/lib/api/generate-api-file.js +1 -1
  6. package/lib/api/generate-sdk-config-file.js +1 -1
  7. package/lib/api/legacy-api-file.js +1 -1
  8. package/lib/api/model-registry-file.js +1 -1
  9. package/lib/api/model-registry-scaffold.js +1 -1
  10. package/lib/api/model-source.js +1 -1
  11. package/lib/auth/auth-server-ui.js +1 -1
  12. package/lib/auth/auth-server.js +1 -1
  13. package/lib/auth/constant.js +1 -1
  14. package/lib/auth/get-cookie.js +1 -1
  15. package/lib/auth/get-session-user.js +1 -1
  16. package/lib/auth/is-session-valid.js +1 -1
  17. package/lib/auth/login-success-html.js +1 -1
  18. package/lib/auth/logout.js +1 -1
  19. package/lib/cli-flags.js +1 -1
  20. package/lib/cli.js +1 -1
  21. package/lib/commands/api/generate.js +1 -1
  22. package/lib/commands/api/index.js +1 -1
  23. package/lib/commands/api/list.js +1 -1
  24. package/lib/commands/api/pull.js +1 -1
  25. package/lib/commands/api/shared.js +1 -1
  26. package/lib/commands/app/index.js +1 -1
  27. package/lib/commands/app/list.js +1 -1
  28. package/lib/commands/app/members-list.js +1 -1
  29. package/lib/commands/app/remote-directory.js +1 -1
  30. package/lib/commands/app/shared.js +1 -1
  31. package/lib/commands/app-config/delete.js +1 -1
  32. package/lib/commands/app-config/get.js +1 -1
  33. package/lib/commands/app-config/index.js +1 -1
  34. package/lib/commands/app-config/list.js +1 -1
  35. package/lib/commands/app-config/set.js +1 -1
  36. package/lib/commands/app-config/shared.js +1 -1
  37. package/lib/commands/auth/index.js +1 -1
  38. package/lib/commands/bff/create.js +1 -1
  39. package/lib/commands/bff/delete.js +1 -1
  40. package/lib/commands/bff/detail.js +1 -1
  41. package/lib/commands/bff/index.js +1 -1
  42. package/lib/commands/bff/list.js +1 -1
  43. package/lib/commands/bff/logs.js +1 -1
  44. package/lib/commands/bff/pull.js +1 -1
  45. package/lib/commands/bff/push.js +1 -1
  46. package/lib/commands/bff/status.js +1 -1
  47. package/lib/commands/cli-skill/index.js +1 -1
  48. package/lib/commands/cli-update.js +1 -1
  49. package/lib/commands/codegen/index.js +1 -1
  50. package/lib/commands/codegen/sdk.js +1 -1
  51. package/lib/commands/codegen/sql.js +1 -1
  52. package/lib/commands/common/app-registry.js +1 -1
  53. package/lib/commands/common/app-selector.js +1 -1
  54. package/lib/commands/common/async-task.js +1 -1
  55. package/lib/commands/common/dry-run.js +1 -1
  56. package/lib/commands/common/flags.js +1 -1
  57. package/lib/commands/common/local-file.js +1 -1
  58. package/lib/commands/common/validate.js +1 -1
  59. package/lib/commands/config/delete.js +1 -1
  60. package/lib/commands/config/get.js +1 -1
  61. package/lib/commands/config/index.js +1 -1
  62. package/lib/commands/config/init.d.ts +1 -1
  63. package/lib/commands/config/init.js +1 -1
  64. package/lib/commands/config/list.js +1 -1
  65. package/lib/commands/config/set.js +1 -1
  66. package/lib/commands/config/shared.js +1 -1
  67. package/lib/commands/dataset/batch-design.js +1 -1
  68. package/lib/commands/dataset/business-group-update.js +1 -1
  69. package/lib/commands/dataset/business-groups.js +1 -1
  70. package/lib/commands/dataset/capability.js +1 -1
  71. package/lib/commands/dataset/cross-relation-create.js +1 -1
  72. package/lib/commands/dataset/cross-relation-delete.js +1 -1
  73. package/lib/commands/dataset/cross-relation-list.js +1 -1
  74. package/lib/commands/dataset/cross-relation-shared.js +1 -1
  75. package/lib/commands/dataset/cross-relation-update.js +1 -1
  76. package/lib/commands/dataset/delete.js +1 -1
  77. package/lib/commands/dataset/detail.js +1 -1
  78. package/lib/commands/dataset/extend-update.js +1 -1
  79. package/lib/commands/dataset/field-restore.js +1 -1
  80. package/lib/commands/dataset/field-update.js +1 -1
  81. package/lib/commands/dataset/generate.js +1 -1
  82. package/lib/commands/dataset/index.js +1 -1
  83. package/lib/commands/dataset/list.js +1 -1
  84. package/lib/commands/dataset/operations.js +1 -1
  85. package/lib/commands/dataset/relation-audit.js +1 -1
  86. package/lib/commands/dataset/relation-create.js +1 -1
  87. package/lib/commands/dataset/relation-delete.js +1 -1
  88. package/lib/commands/dataset/relation-shared.js +1 -1
  89. package/lib/commands/dataset/relation-update.js +1 -1
  90. package/lib/commands/dataset/relations.js +1 -1
  91. package/lib/commands/dataset/rename.js +1 -1
  92. package/lib/commands/dataset/restore.js +1 -1
  93. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  94. package/lib/commands/db/analysis-batching.js +1 -1
  95. package/lib/commands/db/analyze-batch-plan.js +1 -1
  96. package/lib/commands/db/analyze-cancel.js +1 -1
  97. package/lib/commands/db/analyze-start.js +1 -1
  98. package/lib/commands/db/analyze-status.js +1 -1
  99. package/lib/commands/db/create.js +1 -1
  100. package/lib/commands/db/delete.js +1 -1
  101. package/lib/commands/db/detail.js +1 -1
  102. package/lib/commands/db/diff-refresh-start.js +1 -1
  103. package/lib/commands/db/diff-refresh-status.js +1 -1
  104. package/lib/commands/db/diff.js +1 -1
  105. package/lib/commands/db/index.js +1 -1
  106. package/lib/commands/db/list.js +1 -1
  107. package/lib/commands/db/shared.js +1 -1
  108. package/lib/commands/db/table-diff-shared.js +1 -1
  109. package/lib/commands/db/tables.js +1 -1
  110. package/lib/commands/db/test.js +1 -1
  111. package/lib/commands/db/update.js +1 -1
  112. package/lib/commands/deployment/index.js +1 -1
  113. package/lib/commands/deployment/sync-all.js +1 -1
  114. package/lib/commands/deployment/sync-jobs.js +1 -1
  115. package/lib/commands/deployment/sync-status.js +1 -1
  116. package/lib/commands/doctor.js +1 -1
  117. package/lib/commands/file/index.js +1 -1
  118. package/lib/commands/flow/create.js +1 -1
  119. package/lib/commands/flow/detail.js +1 -1
  120. package/lib/commands/flow/index.js +1 -1
  121. package/lib/commands/flow/list.js +1 -1
  122. package/lib/commands/flow/publish.js +1 -1
  123. package/lib/commands/flow/runtime-resources-shared.js +1 -1
  124. package/lib/commands/flow/runtime-role-list.js +1 -1
  125. package/lib/commands/flow/runtime-role-user-list.js +1 -1
  126. package/lib/commands/flow/runtime-user-search.js +1 -1
  127. package/lib/commands/flow/shared.d.ts +2 -0
  128. package/lib/commands/flow/shared.js +1 -1
  129. package/lib/commands/flow/update.js +1 -1
  130. package/lib/commands/flow/validate.js +1 -1
  131. package/lib/commands/instant-api-policy/current.js +1 -1
  132. package/lib/commands/instant-api-policy/index.js +1 -1
  133. package/lib/commands/instant-api-policy/init.js +1 -1
  134. package/lib/commands/instant-api-policy/publish.js +1 -1
  135. package/lib/commands/instant-api-policy/pull.js +1 -1
  136. package/lib/commands/instant-api-policy/revision.js +1 -1
  137. package/lib/commands/instant-api-policy/revisions.js +1 -1
  138. package/lib/commands/instant-api-policy/rollback.js +1 -1
  139. package/lib/commands/instant-api-policy/shared.js +1 -1
  140. package/lib/commands/instant-api-policy/validate.js +1 -1
  141. package/lib/commands/issue/index.js +1 -1
  142. package/lib/commands/issue/nudge.js +1 -1
  143. package/lib/commands/issue/report.js +1 -1
  144. package/lib/commands/issue/shared.js +1 -1
  145. package/lib/commands/kb/create.js +1 -1
  146. package/lib/commands/kb/delete.js +1 -1
  147. package/lib/commands/kb/detail.js +1 -1
  148. package/lib/commands/kb/index.js +1 -1
  149. package/lib/commands/kb/list.js +1 -1
  150. package/lib/commands/kb/search.js +1 -1
  151. package/lib/commands/kb/shared.js +1 -1
  152. package/lib/commands/kb/update.js +1 -1
  153. package/lib/commands/logs/index.js +1 -1
  154. package/lib/commands/menu/asset-update.js +1 -1
  155. package/lib/commands/menu/delete.js +1 -1
  156. package/lib/commands/menu/external-link-create.js +1 -1
  157. package/lib/commands/menu/external-link-update.js +1 -1
  158. package/lib/commands/menu/group-create.js +1 -1
  159. package/lib/commands/menu/group-update.js +1 -1
  160. package/lib/commands/menu/index.js +1 -1
  161. package/lib/commands/menu/list.js +1 -1
  162. package/lib/commands/menu/move.js +1 -1
  163. package/lib/commands/menu/regroup-start.js +1 -1
  164. package/lib/commands/menu/rename.js +1 -1
  165. package/lib/commands/menu/shared/compare-table.js +1 -1
  166. package/lib/commands/menu/shared/delete-plan.js +1 -1
  167. package/lib/commands/menu/shared/facts.js +1 -1
  168. package/lib/commands/menu/shared/index.js +1 -1
  169. package/lib/commands/menu/shared/inquirer.js +1 -1
  170. package/lib/commands/menu/shared/local-pages.js +1 -1
  171. package/lib/commands/menu/shared/logic.js +1 -1
  172. package/lib/commands/menu/shared/mutations.js +1 -1
  173. package/lib/commands/menu/shared/service.js +1 -1
  174. package/lib/commands/menu/shared/sync-core.js +1 -1
  175. package/lib/commands/menu/shared/update-core.js +1 -1
  176. package/lib/commands/menu/shared/valid-url.js +1 -1
  177. package/lib/commands/menu/sync.js +1 -1
  178. package/lib/commands/menu/visibility-update.js +1 -1
  179. package/lib/commands/notification/config-create.js +1 -1
  180. package/lib/commands/notification/config-delete.js +1 -1
  181. package/lib/commands/notification/config-list.js +1 -1
  182. package/lib/commands/notification/config-update.js +1 -1
  183. package/lib/commands/notification/index.js +1 -1
  184. package/lib/commands/notification/shared.js +1 -1
  185. package/lib/commands/ocr/index.js +1 -1
  186. package/lib/commands/page/create.js +1 -1
  187. package/lib/commands/page/custom/detail.js +1 -1
  188. package/lib/commands/page/custom/list.js +1 -1
  189. package/lib/commands/page/custom/publish.js +1 -1
  190. package/lib/commands/page/custom/shared.js +1 -1
  191. package/lib/commands/page/custom/syntax.js +1 -1
  192. package/lib/commands/page/custom/update.js +1 -1
  193. package/lib/commands/page/data-list-status.js +1 -1
  194. package/lib/commands/page/generate-start.js +1 -1
  195. package/lib/commands/page/generate-status.js +1 -1
  196. package/lib/commands/page/index.js +1 -1
  197. package/lib/commands/page/pull.js +1 -1
  198. package/lib/commands/page/push.js +1 -1
  199. package/lib/commands/page/relation-audit.js +1 -1
  200. package/lib/commands/page/restore.js +1 -1
  201. package/lib/commands/page/shared.js +1 -1
  202. package/lib/commands/page/sync.js +1 -1
  203. package/lib/commands/project/api-architecture-upgrade.js +1 -1
  204. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  205. package/lib/commands/project/create/format-elapsed.js +1 -1
  206. package/lib/commands/project/create/main.js +1 -1
  207. package/lib/commands/project/create/materialize-project-template.js +1 -1
  208. package/lib/commands/project/create/project-name.js +1 -1
  209. package/lib/commands/project/create/project-template-archive.js +1 -1
  210. package/lib/commands/project/create/project-template-path.js +1 -1
  211. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  212. package/lib/commands/project/create/use-format-code.js +1 -1
  213. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  214. package/lib/commands/project/domain-routing-sync.js +1 -1
  215. package/lib/commands/project/index.js +1 -1
  216. package/lib/commands/project/upgrade.js +1 -1
  217. package/lib/commands/registry.js +1 -1
  218. package/lib/commands/role/delete.js +1 -1
  219. package/lib/commands/role/detail.js +1 -1
  220. package/lib/commands/role/index.js +1 -1
  221. package/lib/commands/role/list.js +1 -1
  222. package/lib/commands/role/shared.js +1 -1
  223. package/lib/commands/role/update.js +1 -1
  224. package/lib/commands/role/user-add.js +1 -1
  225. package/lib/commands/role/user-remove.js +1 -1
  226. package/lib/commands/role/user-resolve.js +1 -1
  227. package/lib/commands/rule/get.js +1 -1
  228. package/lib/commands/rule/index.js +1 -1
  229. package/lib/commands/rule/list.js +1 -1
  230. package/lib/commands/rule/set.js +1 -1
  231. package/lib/commands/rule/shared.js +1 -1
  232. package/lib/commands/run/index.js +1 -1
  233. package/lib/commands/schema.js +1 -1
  234. package/lib/commands/sql/create.js +1 -1
  235. package/lib/commands/sql/delete.js +1 -1
  236. package/lib/commands/sql/detail.js +1 -1
  237. package/lib/commands/sql/exec.js +1 -1
  238. package/lib/commands/sql/index.js +1 -1
  239. package/lib/commands/sql/list.js +1 -1
  240. package/lib/commands/sql/pull.js +1 -1
  241. package/lib/commands/sql/push.js +1 -1
  242. package/lib/commands/sql/shared.js +1 -1
  243. package/lib/commands/sql/status.js +1 -1
  244. package/lib/commands/sql/validate.js +1 -1
  245. package/lib/commands/task/index.js +1 -1
  246. package/lib/commands/task/status.js +1 -1
  247. package/lib/commands/tenant/index.js +1 -1
  248. package/lib/commands/tenant/members-list.js +1 -1
  249. package/lib/commands/tenant/shared.js +1 -1
  250. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  251. package/lib/commands/user-account/index.js +1 -1
  252. package/lib/commands/workspace/add.js +1 -1
  253. package/lib/commands/workspace/index.js +1 -1
  254. package/lib/commands/workspace/remove.js +1 -1
  255. package/lib/config/domain-config.d.ts +1 -1
  256. package/lib/config/domain-config.js +1 -1
  257. package/lib/config/project-domain-routing.js +1 -1
  258. package/lib/config/region-config.js +1 -1
  259. package/lib/config/schema.d.ts +1 -1
  260. package/lib/config/schema.js +1 -1
  261. package/lib/constant/cdn.js +1 -1
  262. package/lib/constant/cli.js +1 -1
  263. package/lib/constant/defaults.js +1 -1
  264. package/lib/constant/domain.d.ts +4 -0
  265. package/lib/constant/domain.js +1 -1
  266. package/lib/constant/env.js +1 -1
  267. package/lib/constant/output.js +1 -1
  268. package/lib/constant/paths.js +1 -1
  269. package/lib/constant/region.d.ts +1 -1
  270. package/lib/constant/region.js +1 -1
  271. package/lib/constant/risk.js +1 -1
  272. package/lib/constant/routing-profile.d.ts +14 -1
  273. package/lib/constant/routing-profile.js +1 -1
  274. package/lib/context/app-resolver.d.ts +1 -0
  275. package/lib/context/app-resolver.js +1 -1
  276. package/lib/context/auth-resolver.js +1 -1
  277. package/lib/context/config-loader.js +1 -1
  278. package/lib/context.js +1 -1
  279. package/lib/core/alias-resolver.js +1 -1
  280. package/lib/core/api-client.js +1 -1
  281. package/lib/core/bff/config.js +1 -1
  282. package/lib/core/bff/file-system.js +1 -1
  283. package/lib/core/bff/hash.js +1 -1
  284. package/lib/core/bff/hook-directory.js +1 -1
  285. package/lib/core/bff/lock.js +1 -1
  286. package/lib/core/bff/utils.js +1 -1
  287. package/lib/core/cross-db-relation.js +1 -1
  288. package/lib/core/db-resolver.js +1 -1
  289. package/lib/core/flow-config.d.ts +11 -10
  290. package/lib/core/flow-config.js +1 -1
  291. package/lib/core/instant-api-policy/config.js +1 -1
  292. package/lib/core/kb-search-client.d.ts +7 -1
  293. package/lib/core/kb-search-client.js +1 -1
  294. package/lib/core/page/file-system.js +1 -1
  295. package/lib/core/page/hash.js +1 -1
  296. package/lib/core/page/lock.js +1 -1
  297. package/lib/core/page/lr-smart-jsx.js +1 -1
  298. package/lib/core/sql-index-auditor.js +1 -1
  299. package/lib/core/sql-sync/config.js +1 -1
  300. package/lib/core/sql-sync/file-system.js +1 -1
  301. package/lib/core/sql-sync/hash.js +1 -1
  302. package/lib/core/sql-sync/lock.js +1 -1
  303. package/lib/core/sql-sync/utils.js +1 -1
  304. package/lib/core/sql-validator.d.ts +5 -2
  305. package/lib/core/sql-validator.js +1 -1
  306. package/lib/errors.js +1 -1
  307. package/lib/framework/build-all-flags.js +1 -1
  308. package/lib/framework/error-output.js +1 -1
  309. package/lib/framework/explicit-yes.js +1 -1
  310. package/lib/framework/flags.js +1 -1
  311. package/lib/framework/help.js +1 -1
  312. package/lib/framework/index.js +1 -1
  313. package/lib/framework/output.js +1 -1
  314. package/lib/framework/response.js +1 -1
  315. package/lib/framework/runner-alias.js +1 -1
  316. package/lib/framework/runner.js +1 -1
  317. package/lib/framework/schema-export.js +1 -1
  318. package/lib/framework/supported-flags.js +1 -1
  319. package/lib/framework/types.js +1 -1
  320. package/lib/generated/build-info.d.ts +4 -4
  321. package/lib/generated/build-info.js +1 -1
  322. package/lib/generated/official-routing.d.ts +15 -3
  323. package/lib/generated/official-routing.js +1 -1
  324. package/lib/generated/routing-contract.d.ts +2 -2
  325. package/lib/generated/routing-contract.js +1 -1
  326. package/lib/help.js +1 -1
  327. package/lib/postinstall.js +1 -1
  328. package/lib/runtime/confirmation.js +1 -1
  329. package/lib/runtime/event.js +1 -1
  330. package/lib/runtime/index.js +1 -1
  331. package/lib/runtime/queue.js +1 -1
  332. package/lib/runtime/resolve.js +1 -1
  333. package/lib/skills/builtin-skill.js +1 -1
  334. package/lib/skills/main.js +1 -1
  335. package/lib/skills/npx-skills-add.d.ts +5 -0
  336. package/lib/skills/npx-skills-add.js +1 -1
  337. package/lib/skills/skill-presence.js +1 -1
  338. package/lib/telemetry/cli-command-trace.js +1 -1
  339. package/lib/telemetry/cli-help-trace.js +1 -1
  340. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  341. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  342. package/lib/telemetry/send-cli-trace-log.js +1 -1
  343. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  344. package/lib/utils/ai_config.js +1 -1
  345. package/lib/utils/apply-jq-filter.js +1 -1
  346. package/lib/utils/cdn-config.js +1 -1
  347. package/lib/utils/check-sdk-version.js +1 -1
  348. package/lib/utils/cli-version-check.js +1 -1
  349. package/lib/utils/cli-version-policy.js +1 -1
  350. package/lib/utils/config.js +1 -1
  351. package/lib/utils/entity-with-id.js +1 -1
  352. package/lib/utils/file-utils.js +1 -1
  353. package/lib/utils/guides-cdn.js +1 -1
  354. package/lib/utils/http-client.js +1 -1
  355. package/lib/utils/is-non-interactive.js +1 -1
  356. package/lib/utils/logger.js +1 -1
  357. package/lib/utils/params.js +1 -1
  358. package/lib/utils/platform.js +1 -1
  359. package/lib/utils/sleep.js +1 -1
  360. package/lib/utils/template-replacer.js +1 -1
  361. package/lib/utils/update-notice.js +1 -1
  362. package/lib/utils/version.js +1 -1
  363. package/lib/utils/with-active-cookie.js +1 -1
  364. package/lib/utils/write-cli-side-channel.js +1 -1
  365. package/package.json +1 -1
  366. package/skills/rabetbase/SKILL.md +31 -17
  367. package/skills/rabetbase/guides/approval-flow-development-workflow.md +33 -11
  368. package/skills/rabetbase/guides/best-practices.md +1 -1
  369. package/skills/rabetbase/guides/conflict-detection.md +44 -92
  370. package/skills/rabetbase/guides/custom-page-flow-sdk.md +642 -0
  371. package/skills/rabetbase/guides/custom-page-flow-timeline-display.md +289 -0
  372. package/skills/rabetbase/guides/custom-page-workflow.md +12 -3
  373. package/skills/rabetbase/guides/sql-creation-workflow.md +44 -26
  374. package/skills/rabetbase/guides/sql-mybatis.md +18 -49
  375. package/skills/rabetbase/guides/typescript-sdk.md +18 -0
  376. package/skills/rabetbase/knowledge/approval-flow/config-json-schema.md +22 -6
  377. package/skills/rabetbase/knowledge/components.md +34 -28
  378. package/skills/rabetbase/knowledge/custom-page/generation-standards.md +2 -0
  379. package/skills/rabetbase/references/rabetbase-config.md +6 -4
  380. package/skills/rabetbase/references/rabetbase-flow-commands.md +8 -4
  381. package/skills/rabetbase/references/rabetbase-flow-resources.md +3 -3
  382. package/skills/rabetbase/references/rabetbase-flow-runtime-boundary.md +2 -0
  383. package/skills/rabetbase/references/rabetbase-init.md +7 -5
  384. package/skills/rabetbase/references/rabetbase-kb.md +14 -4
  385. package/skills/rabetbase/references/rabetbase-page-custom-detail.md +3 -1
  386. package/skills/rabetbase/references/rabetbase-page-custom-list.md +3 -0
  387. package/skills/rabetbase/references/rabetbase-sql-push.md +5 -0
  388. package/skills/rabetbase/references/rabetbase-sql-validate.md +12 -6
  389. package/skills/rabetbase.manifest.json +5 -3
@@ -1 +1 @@
1
- const a33_0x3e2df5=a33_0x5b5a;(function(_0x303c98,_0x2a0466){const _0x4bbaa0=a33_0x5b5a,_0xb6c101=_0x303c98();while(!![]){try{const _0x135f79=-parseInt(_0x4bbaa0(0x1d2))/0x1*(parseInt(_0x4bbaa0(0x1cf))/0x2)+parseInt(_0x4bbaa0(0x1c6))/0x3+-parseInt(_0x4bbaa0(0x1c2))/0x4+-parseInt(_0x4bbaa0(0x1d3))/0x5+parseInt(_0x4bbaa0(0x1d0))/0x6+-parseInt(_0x4bbaa0(0x1da))/0x7*(parseInt(_0x4bbaa0(0x1cb))/0x8)+-parseInt(_0x4bbaa0(0x1d4))/0x9;if(_0x135f79===_0x2a0466)break;else _0xb6c101['push'](_0xb6c101['shift']());}catch(_0x3c2262){_0xb6c101['push'](_0xb6c101['shift']());}}}(a33_0x567c,0x32204));import{createAppConfig,getAppConfigByKey,updateAppConfig}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{assertSingleValueSource,assertValueSourceReadable,asAppConfigDryRunResult,buildMutationData,FROM_ENV_FLAG,KEY_ARG,plannedAppConfig,projectAppConfig,readAppConfigValue,readKeyArg,readOptionalTags,STDIN_FLAG,TAGS_FLAG,VALUE_ARG,withAppConfigApiBoundary}from'../../commands/app-config/shared.js';const CREATE_PATH=a33_0x3e2df5(0x1c3),UPDATE_PATH=a33_0x3e2df5(0x1ce);export const appConfigSet={'service':a33_0x3e2df5(0x1cc),'command':a33_0x3e2df5(0x1d9),'description':a33_0x3e2df5(0x1cd),'risk':a33_0x3e2df5(0x1c8),'args':[KEY_ARG,VALUE_ARG],'flags':[APPCODE_FLAG_OPTIONAL,TAGS_FLAG,STDIN_FLAG,FROM_ENV_FLAG,{'name':a33_0x3e2df5(0x1d8),'type':a33_0x3e2df5(0x1c9),'description':'Read\x20config\x20value\x20from\x20file'}],async 'validate'(_0x379e53){readKeyArg(_0x379e53),readOptionalTags(_0x379e53),assertSingleValueSource(_0x379e53);},async 'dryRun'(_0x4792f5){const _0x510582=a33_0x3e2df5,_0x98c100=readKeyArg(_0x4792f5),_0x788d23=readOptionalTags(_0x4792f5),_0x216374=assertSingleValueSource(_0x4792f5);await assertValueSourceReadable(_0x216374);const _0x5ed22b=await withAppConfigApiBoundary('get',{'appCode':_0x4792f5['appCode'],'key':_0x98c100},()=>getAppConfigByKey(_0x4792f5[_0x510582(0x1d5)],_0x98c100)),_0x3095c6=_0x5ed22b?_0x510582(0x1ca):_0x510582(0x1dc),_0x45b0d2=_0x5ed22b?projectAppConfig(_0x5ed22b):null,_0x5ce340=plannedAppConfig({'appCode':_0x4792f5[_0x510582(0x1d5)],'key':_0x98c100,'tags':_0x788d23??_0x5ed22b?.[_0x510582(0x1c7)],'hasValue':!![]});return asAppConfigDryRunResult(buildMutationData({'operation':_0x3095c6,'appCode':_0x4792f5[_0x510582(0x1d5)],'key':_0x98c100,'before':_0x45b0d2,'after':_0x5ce340,'dryRun':!![]}),{'method':_0x510582(0x1d6),'url':_0x3095c6===_0x510582(0x1ca)?UPDATE_PATH:CREATE_PATH});},async 'execute'(_0x540df9){const _0x253968=a33_0x3e2df5,_0x32ad22=readKeyArg(_0x540df9),_0x48982f=readOptionalTags(_0x540df9),_0x56d008=await withAppConfigApiBoundary(_0x253968(0x1c4),{'appCode':_0x540df9['appCode'],'key':_0x32ad22},()=>getAppConfigByKey(_0x540df9[_0x253968(0x1d5)],_0x32ad22)),_0x4abc5d=_0x56d008?projectAppConfig(_0x56d008):null,_0x427351=_0x56d008?_0x253968(0x1ca):_0x253968(0x1dc),{value:_0x1f9ff6,warnings:_0x3a4ee0}=await readAppConfigValue(_0x540df9),_0x13d138={'appCode':_0x540df9['appCode'],'key':_0x32ad22,'value':_0x1f9ff6,'tags':_0x48982f??_0x56d008?.[_0x253968(0x1c7)]??undefined};await withAppConfigApiBoundary(_0x427351,{'appCode':_0x540df9['appCode'],'key':_0x32ad22},async()=>{const _0x2ecc5c=_0x253968;_0x56d008?await updateAppConfig({..._0x13d138,'id':requireAppConfigId(_0x56d008,_0x32ad22,_0x540df9[_0x2ecc5c(0x1d5)])}):await createAppConfig(_0x13d138);});const _0x3b3b9f=await withAppConfigApiBoundary(_0x253968(0x1c4),{'appCode':_0x540df9[_0x253968(0x1d5)],'key':_0x32ad22},()=>getAppConfigByKey(_0x540df9[_0x253968(0x1d5)],_0x32ad22)),_0x212c43=_0x3b3b9f?projectAppConfig(_0x3b3b9f):plannedAppConfig({'appCode':_0x540df9[_0x253968(0x1d5)],'key':_0x32ad22,'tags':_0x13d138[_0x253968(0x1c7)],'hasValue':_0x1f9ff6!==''});return{'ok':!![],'data':buildMutationData({'operation':_0x427351,'appCode':_0x540df9['appCode'],'key':_0x32ad22,'before':_0x4abc5d,'after':_0x212c43,'dryRun':![],'warnings':_0x3a4ee0}),'message':(_0x427351===_0x253968(0x1ca)?_0x253968(0x1db):_0x253968(0x1d7))+'\x20app\x20config\x20'+_0x32ad22};}};function requireAppConfigId(_0x33b05c,_0x2a1397,_0x353254){const _0x353d16=a33_0x3e2df5;if(typeof _0x33b05c['id']==='number'&&Number['isFinite'](_0x33b05c['id'])&&_0x33b05c['id']>0x0)return _0x33b05c['id'];throw CliErrors[_0x353d16(0x1d1)]('App\x20config\x20server\x20id\x20missing\x20for\x20key='+_0x2a1397+_0x353d16(0x1c5)+_0x353254);}function a33_0x5b5a(_0x300cc3,_0x12df8b){_0x300cc3=_0x300cc3-0x1c2;const _0x567c9d=a33_0x567c();let _0x5b5a1f=_0x567c9d[_0x300cc3];return _0x5b5a1f;}function a33_0x567c(){const _0x3b0077=['1235124lbxkOk','apiError','2prZpfR','168255IxXzao','586026KxHvGR','appCode','POST','Created','file','set','38542GlGYIp','Updated','create','686416YCWBbT','/smartapi/app-config/create','get',',\x20appCode=','1230681UbRXhT','tags','write','string','update','200oHDnid','app-config','Create\x20or\x20update\x20one\x20runtime\x20app-config\x20key','/smartapi/app-config/update','2746eOYNGz'];a33_0x567c=function(){return _0x3b0077;};return a33_0x567c();}
1
+ const a33_0x4af6cb=a33_0x4cff;(function(_0x32aec9,_0x3b17f9){const _0xf0f88e=a33_0x4cff,_0x38aa8e=_0x32aec9();while(!![]){try{const _0x53f27a=parseInt(_0xf0f88e(0x1ab))/0x1+-parseInt(_0xf0f88e(0x1b4))/0x2+parseInt(_0xf0f88e(0x1b2))/0x3+-parseInt(_0xf0f88e(0x1aa))/0x4*(parseInt(_0xf0f88e(0x1bc))/0x5)+parseInt(_0xf0f88e(0x1b7))/0x6*(parseInt(_0xf0f88e(0x1a4))/0x7)+-parseInt(_0xf0f88e(0x1b8))/0x8*(-parseInt(_0xf0f88e(0x1a3))/0x9)+-parseInt(_0xf0f88e(0x1ad))/0xa;if(_0x53f27a===_0x3b17f9)break;else _0x38aa8e['push'](_0x38aa8e['shift']());}catch(_0x37a61d){_0x38aa8e['push'](_0x38aa8e['shift']());}}}(a33_0x5c12,0x80571));function a33_0x5c12(){const _0x1379e3=['Create\x20or\x20update\x20one\x20runtime\x20app-config\x20key','isFinite',',\x20appCode=','/smartapi/app-config/create','apiError','461356VGYFQt','963785JsDxRr','number','18532360sMQoJS','tags','set','update','Read\x20config\x20value\x20from\x20file','553128roqEFN','app-config','125272XowIgG','get','create','392478qhYsyj','3943592zkkmWj','appCode','string','\x20app\x20config\x20','5bzpWHh','Updated','/smartapi/app-config/update','9ZWTmkN','98oSTuaB'];a33_0x5c12=function(){return _0x1379e3;};return a33_0x5c12();}import{createAppConfig,getAppConfigByKey,updateAppConfig}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{assertSingleValueSource,assertValueSourceReadable,asAppConfigDryRunResult,buildMutationData,FROM_ENV_FLAG,KEY_ARG,plannedAppConfig,projectAppConfig,readAppConfigValue,readKeyArg,readOptionalTags,STDIN_FLAG,TAGS_FLAG,VALUE_ARG,withAppConfigApiBoundary}from'../../commands/app-config/shared.js';function a33_0x4cff(_0x284b14,_0x3748a9){_0x284b14=_0x284b14-0x1a3;const _0x5c1278=a33_0x5c12();let _0x4cff2d=_0x5c1278[_0x284b14];return _0x4cff2d;}const CREATE_PATH=a33_0x4af6cb(0x1a8),UPDATE_PATH=a33_0x4af6cb(0x1be);export const appConfigSet={'service':a33_0x4af6cb(0x1b3),'command':a33_0x4af6cb(0x1af),'description':a33_0x4af6cb(0x1a5),'risk':'write','args':[KEY_ARG,VALUE_ARG],'flags':[APPCODE_FLAG_OPTIONAL,TAGS_FLAG,STDIN_FLAG,FROM_ENV_FLAG,{'name':'file','type':a33_0x4af6cb(0x1ba),'description':a33_0x4af6cb(0x1b1)}],async 'validate'(_0x44c8de){readKeyArg(_0x44c8de),readOptionalTags(_0x44c8de),assertSingleValueSource(_0x44c8de);},async 'dryRun'(_0x407db4){const _0x58210a=a33_0x4af6cb,_0x8cee95=readKeyArg(_0x407db4),_0x4f828f=readOptionalTags(_0x407db4),_0x22a7fe=assertSingleValueSource(_0x407db4);await assertValueSourceReadable(_0x22a7fe);const _0x3978b5=await withAppConfigApiBoundary(_0x58210a(0x1b5),{'appCode':_0x407db4[_0x58210a(0x1b9)],'key':_0x8cee95},()=>getAppConfigByKey(_0x407db4['appCode'],_0x8cee95)),_0x3b3ae4=_0x3978b5?_0x58210a(0x1b0):_0x58210a(0x1b6),_0x200bcc=_0x3978b5?projectAppConfig(_0x3978b5):null,_0xa532e=plannedAppConfig({'appCode':_0x407db4['appCode'],'key':_0x8cee95,'tags':_0x4f828f??_0x3978b5?.[_0x58210a(0x1ae)],'hasValue':!![]});return asAppConfigDryRunResult(buildMutationData({'operation':_0x3b3ae4,'appCode':_0x407db4['appCode'],'key':_0x8cee95,'before':_0x200bcc,'after':_0xa532e,'dryRun':!![]}),{'method':'POST','url':_0x3b3ae4==='update'?UPDATE_PATH:CREATE_PATH});},async 'execute'(_0x40e93e){const _0x5e5b11=a33_0x4af6cb,_0x4a73bc=readKeyArg(_0x40e93e),_0x44ec52=readOptionalTags(_0x40e93e),_0x196b16=await withAppConfigApiBoundary(_0x5e5b11(0x1b5),{'appCode':_0x40e93e[_0x5e5b11(0x1b9)],'key':_0x4a73bc},()=>getAppConfigByKey(_0x40e93e[_0x5e5b11(0x1b9)],_0x4a73bc)),_0x236d89=_0x196b16?projectAppConfig(_0x196b16):null,_0xe71890=_0x196b16?_0x5e5b11(0x1b0):_0x5e5b11(0x1b6),{value:_0x54754c,warnings:_0x200023}=await readAppConfigValue(_0x40e93e),_0x265675={'appCode':_0x40e93e[_0x5e5b11(0x1b9)],'key':_0x4a73bc,'value':_0x54754c,'tags':_0x44ec52??_0x196b16?.[_0x5e5b11(0x1ae)]??undefined};await withAppConfigApiBoundary(_0xe71890,{'appCode':_0x40e93e[_0x5e5b11(0x1b9)],'key':_0x4a73bc},async()=>{const _0x5bedd7=_0x5e5b11;_0x196b16?await updateAppConfig({..._0x265675,'id':requireAppConfigId(_0x196b16,_0x4a73bc,_0x40e93e[_0x5bedd7(0x1b9)])}):await createAppConfig(_0x265675);});const _0x5d18ed=await withAppConfigApiBoundary('get',{'appCode':_0x40e93e[_0x5e5b11(0x1b9)],'key':_0x4a73bc},()=>getAppConfigByKey(_0x40e93e[_0x5e5b11(0x1b9)],_0x4a73bc)),_0x3b2511=_0x5d18ed?projectAppConfig(_0x5d18ed):plannedAppConfig({'appCode':_0x40e93e[_0x5e5b11(0x1b9)],'key':_0x4a73bc,'tags':_0x265675['tags'],'hasValue':_0x54754c!==''});return{'ok':!![],'data':buildMutationData({'operation':_0xe71890,'appCode':_0x40e93e[_0x5e5b11(0x1b9)],'key':_0x4a73bc,'before':_0x236d89,'after':_0x3b2511,'dryRun':![],'warnings':_0x200023}),'message':(_0xe71890==='update'?_0x5e5b11(0x1bd):'Created')+_0x5e5b11(0x1bb)+_0x4a73bc};}};function requireAppConfigId(_0x25061b,_0x980fdd,_0x2c42bb){const _0x265ecf=a33_0x4af6cb;if(typeof _0x25061b['id']===_0x265ecf(0x1ac)&&Number[_0x265ecf(0x1a6)](_0x25061b['id'])&&_0x25061b['id']>0x0)return _0x25061b['id'];throw CliErrors[_0x265ecf(0x1a9)]('App\x20config\x20server\x20id\x20missing\x20for\x20key='+_0x980fdd+_0x265ecf(0x1a7)+_0x2c42bb);}
@@ -1 +1 @@
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
+ const a34_0x416c6c=a34_0x5cb2;(function(_0x16945b,_0x205d9a){const _0x57ffaf=a34_0x5cb2,_0x577d7c=_0x16945b();while(!![]){try{const _0x2830f2=-parseInt(_0x57ffaf(0xa4))/0x1+-parseInt(_0x57ffaf(0x6d))/0x2+parseInt(_0x57ffaf(0xa2))/0x3*(parseInt(_0x57ffaf(0x7c))/0x4)+-parseInt(_0x57ffaf(0x6e))/0x5+-parseInt(_0x57ffaf(0x9e))/0x6*(parseInt(_0x57ffaf(0x79))/0x7)+parseInt(_0x57ffaf(0x8f))/0x8+-parseInt(_0x57ffaf(0x98))/0x9*(-parseInt(_0x57ffaf(0x6a))/0xa);if(_0x2830f2===_0x205d9a)break;else _0x577d7c['push'](_0x577d7c['shift']());}catch(_0x467f70){_0x577d7c['push'](_0x577d7c['shift']());}}}(a34_0x3943,0x7ecff));import{access,readFile}from'node:fs/promises';import{CliErrors}from'../../errors.js';export const KEY_ARG={'name':'key','description':a34_0x416c6c(0xa9),'required':!![]};function a34_0x3943(){const _0x420660=['gmtModified','Runtime\x20app-config\x20key','utf8','Value\x20file\x20is\x20not\x20readable:\x20','apiError','appCode:\x20','Missing\x20app-config\x20value\x20source.','4609370JzcYGW','warnings','Read\x20config\x20value\x20from\x20the\x20named\x20environment\x20variable','1215068xdepON','2496325bqgDeM','reveal','path','Config\x20tags\x20for\x20filtering/display\x20metadata','file','bool','length','url','flag','args','key:\x20','1429078NCTwVY','key','Failed\x20to\x20','63988DTHLja','\x20app\x20config.','string','value','stdin','before','valueRedacted','Read\x20config\x20value\x20from\x20stdin','from-env','appCode','push','tags','App\x20config\x20key\x20length\x20cannot\x20exceed\x20256.','setEncoding','slice','Missing\x20app-config\x20key.','data','env','Value\x20was\x20provided\x20as\x20a\x20command\x20argument;\x20prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','5785664xOXJgs','name','argument','once','boolean','Use\x20exactly\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','value\x20is\x20redacted','dryRun','trim','27kBchLu','Environment\x20variable\x20is\x20not\x20set:\x20','Reveal\x20the\x20sensitive\x20value\x20for\x20this\x20single\x20key','gmtCreate','validation','App\x20config\x20tags\x20length\x20cannot\x20exceed\x2032.','6prCDpW','method','operation','kind','93eMFBWq','str','771550gvEcxD','after','defineProperties','join'];a34_0x3943=function(){return _0x420660;};return a34_0x3943();}export const VALUE_ARG={'name':a34_0x416c6c(0x7f),'description':'Sensitive\x20config\x20value.\x20Prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','required':![]};export const TAGS_FLAG={'name':a34_0x416c6c(0x87),'type':a34_0x416c6c(0x7e),'description':a34_0x416c6c(0x71)};export const STDIN_FLAG={'name':a34_0x416c6c(0x80),'type':a34_0x416c6c(0x93),'description':a34_0x416c6c(0x83),'default':![]};export const FROM_ENV_FLAG={'name':a34_0x416c6c(0x84),'type':a34_0x416c6c(0x7e),'description':a34_0x416c6c(0x6c)};export const REVEAL_FLAG={'name':a34_0x416c6c(0x6f),'type':'boolean','description':a34_0x416c6c(0x9a),'default':![]};export function readKeyArg(_0x26f01c){const _0x48f836=a34_0x416c6c,_0x22b332=_0x26f01c[_0x48f836(0x77)][0x0]?.[_0x48f836(0x97)]()??'';return validateKey(_0x22b332),_0x22b332;}function a34_0x5cb2(_0x15927f,_0xf15b8d){_0x15927f=_0x15927f-0x65;const _0x3943bc=a34_0x3943();let _0x5cb264=_0x3943bc[_0x15927f];return _0x5cb264;}export function readOptionalTags(_0x1739d9){const _0x235699=a34_0x416c6c,_0x440622=_0x1739d9['str'](_0x235699(0x87))['trim']();if(!_0x440622)return undefined;if(_0x440622[_0x235699(0x74)]>0x20)throw CliErrors[_0x235699(0x9c)](_0x235699(0x9d));return _0x440622;}export function validateKey(_0x32590b){const _0x54952d=a34_0x416c6c;if(!_0x32590b)throw CliErrors[_0x54952d(0x9c)](_0x54952d(0x8b));if(_0x32590b[_0x54952d(0x74)]>0x100)throw CliErrors[_0x54952d(0x9c)](_0x54952d(0x88));}export function projectAppConfig(_0x260439,_0x4bc732){const _0x55d822=a34_0x416c6c,_0x4ae4c3=_0x260439['value']!==undefined&&_0x260439[_0x55d822(0x7f)]!==null&&_0x260439[_0x55d822(0x7f)]!=='',_0x4ea85f={'appCode':_0x260439[_0x55d822(0x85)],'key':_0x260439['key'],'tags':_0x260439[_0x55d822(0x87)]??undefined,'hasValue':_0x4ae4c3,'valueRedacted':_0x4ae4c3&&!_0x4bc732?.[_0x55d822(0x6f)],'gmtCreate':_0x260439[_0x55d822(0x9b)],'gmtModified':_0x260439[_0x55d822(0xa8)]};return _0x4bc732?.['reveal']&&(_0x4ea85f[_0x55d822(0x7f)]=_0x260439[_0x55d822(0x7f)]??'',_0x4ea85f[_0x55d822(0x82)]=![]),_0x4ea85f;}export function plannedAppConfig(_0x1c611c){const _0x4ee540=a34_0x416c6c,_0x109c80=_0x1c611c['hasValue']??!![];return{'appCode':_0x1c611c[_0x4ee540(0x85)],'key':_0x1c611c['key'],'tags':_0x1c611c['tags']??undefined,'hasValue':_0x109c80,'valueRedacted':_0x109c80};}export function buildMutationData(_0x2209cd){const _0x3cd757=a34_0x416c6c;return{'operation':_0x2209cd[_0x3cd757(0xa0)],'selector':{'appCode':_0x2209cd[_0x3cd757(0x85)],'key':_0x2209cd[_0x3cd757(0x7a)]},'before':_0x2209cd[_0x3cd757(0x81)],'after':_0x2209cd[_0x3cd757(0xa5)],'dryRun':_0x2209cd[_0x3cd757(0x96)],'warnings':_0x2209cd[_0x3cd757(0x6b)]??[]};}export async function withAppConfigApiBoundary(_0x5c44ea,_0x1078ba,_0x3ca897){const _0x23c215=a34_0x416c6c;try{return await _0x3ca897();}catch{const _0x6b8ed9=[_0x23c215(0x68)+_0x1078ba[_0x23c215(0x85)]];if(_0x1078ba[_0x23c215(0x7a)])_0x6b8ed9['push'](_0x23c215(0x78)+_0x1078ba[_0x23c215(0x7a)]);_0x6b8ed9[_0x23c215(0x86)](_0x23c215(0x95));throw CliErrors[_0x23c215(0x67)](_0x23c215(0x7b)+_0x5c44ea+_0x23c215(0x7d),_0x6b8ed9['join'](';\x20')+'.');}}export function asAppConfigDryRunResult(_0x29a4b1,_0x3829b6){const _0x5a9569=a34_0x416c6c;return Object[_0x5a9569(0xa6)](_0x29a4b1,{'method':{'value':_0x3829b6[_0x5a9569(0x9f)],'enumerable':![]},'url':{'value':_0x3829b6[_0x5a9569(0x75)],'enumerable':![]}});}export function assertSingleValueSource(_0x4d7b45){const _0x568bd0=a34_0x416c6c,_0x323334=[];_0x4d7b45[_0x568bd0(0x77)][_0x568bd0(0x74)]>0x1&&_0x323334[_0x568bd0(0x86)]({'kind':_0x568bd0(0x91),'value':_0x4d7b45[_0x568bd0(0x77)][_0x568bd0(0x8a)](0x1)[_0x568bd0(0xa7)]('\x20')});const _0x5f5a3f=_0x4d7b45[_0x568bd0(0x76)](_0x568bd0(0x7f));_0x5f5a3f!==undefined&&_0x5f5a3f!==null&&_0x323334[_0x568bd0(0x86)]({'kind':_0x568bd0(0x91),'value':String(_0x5f5a3f)});_0x4d7b45[_0x568bd0(0x73)](_0x568bd0(0x80))&&_0x323334[_0x568bd0(0x86)]({'kind':_0x568bd0(0x80)});const _0x59a9cb=_0x4d7b45['str'](_0x568bd0(0x84))[_0x568bd0(0x97)]();_0x59a9cb&&_0x323334[_0x568bd0(0x86)]({'kind':_0x568bd0(0x8d),'name':_0x59a9cb});const _0xe19835=_0x4d7b45[_0x568bd0(0xa3)](_0x568bd0(0x72))['trim']();_0xe19835&&_0x323334['push']({'kind':_0x568bd0(0x72),'path':_0xe19835});if(_0x323334[_0x568bd0(0x74)]===0x0)throw CliErrors['validation'](_0x568bd0(0x69),'Use\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.');if(_0x323334[_0x568bd0(0x74)]>0x1)throw CliErrors[_0x568bd0(0x9c)]('App\x20config\x20value\x20source\x20is\x20ambiguous.',_0x568bd0(0x94));return _0x323334[0x0];}export async function assertValueSourceReadable(_0x1da7d4){const _0x526de7=a34_0x416c6c;if(_0x1da7d4[_0x526de7(0xa1)]===_0x526de7(0x8d)&&!(_0x1da7d4[_0x526de7(0x90)]in process.env))throw CliErrors[_0x526de7(0x9c)](_0x526de7(0x99)+_0x1da7d4[_0x526de7(0x90)]);if(_0x1da7d4[_0x526de7(0xa1)]===_0x526de7(0x72))try{await access(_0x1da7d4['path']);}catch{throw CliErrors[_0x526de7(0x9c)](_0x526de7(0x66)+_0x1da7d4['path']);}}export async function readAppConfigValue(_0x40048b){const _0x5953c2=a34_0x416c6c,_0x12100b=assertSingleValueSource(_0x40048b),_0xc7fc06=[];if(_0x12100b[_0x5953c2(0xa1)]===_0x5953c2(0x91))return _0xc7fc06[_0x5953c2(0x86)](_0x5953c2(0x8e)),{'value':_0x12100b[_0x5953c2(0x7f)]??'','source':_0x12100b['kind'],'warnings':_0xc7fc06};if(_0x12100b[_0x5953c2(0xa1)]===_0x5953c2(0x80))return{'value':await readStdin(),'source':_0x12100b[_0x5953c2(0xa1)],'warnings':_0xc7fc06};if(_0x12100b[_0x5953c2(0xa1)]===_0x5953c2(0x8d)){if(!(_0x12100b[_0x5953c2(0x90)]in process.env))throw CliErrors[_0x5953c2(0x9c)]('Environment\x20variable\x20is\x20not\x20set:\x20'+_0x12100b[_0x5953c2(0x90)]);return{'value':process.env[_0x12100b.name]??'','source':_0x12100b[_0x5953c2(0xa1)],'warnings':_0xc7fc06};}return{'value':await readFile(_0x12100b[_0x5953c2(0x70)],_0x5953c2(0x65)),'source':_0x12100b[_0x5953c2(0xa1)],'warnings':_0xc7fc06};}function readStdin(){return new Promise((_0x1fa69f,_0x3800e2)=>{const _0x433632=a34_0x5cb2;let _0xd50447='';process[_0x433632(0x80)][_0x433632(0x89)](_0x433632(0x65)),process['stdin']['on'](_0x433632(0x8c),_0x5cbaa4=>{_0xd50447+=_0x5cbaa4;}),process[_0x433632(0x80)]['once']('end',()=>_0x1fa69f(_0xd50447)),process[_0x433632(0x80)][_0x433632(0x92)]('error',_0x3800e2);});}
@@ -1 +1 @@
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
+ function a35_0x4900(){const _0x4cb0b3=['nonInteractive','yes','1dMBsUe','../../auth/auth-server-ui.js','boolean','1328000EOGxfS','16uuFXxL','155604FGlbZX','!\x20Not\x20logged\x20in','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','logout','20DxzSsC','Clear\x20login\x20session','7438878UdCMos','161606SeHKSs','8792ZHrHRY','Login\x20via\x20browser','login','726xKVqQu','write','2400534wjpObd','bool','233658wJlAAs','3367wLjvZY','log'];a35_0x4900=function(){return _0x4cb0b3;};return a35_0x4900();}const a35_0x2b92b7=a35_0x7551;(function(_0x544701,_0xf78adf){const _0xe4a041=a35_0x7551,_0x2be85d=_0x544701();while(!![]){try{const _0x3ac556=parseInt(_0xe4a041(0x1b3))/0x1*(-parseInt(_0xe4a041(0x1a6))/0x2)+parseInt(_0xe4a041(0x1ae))/0x3*(-parseInt(_0xe4a041(0x1b7))/0x4)+parseInt(_0xe4a041(0x1b6))/0x5+parseInt(_0xe4a041(0x1a5))/0x6+-parseInt(_0xe4a041(0x1af))/0x7*(parseInt(_0xe4a041(0x1a7))/0x8)+parseInt(_0xe4a041(0x1ac))/0x9*(-parseInt(_0xe4a041(0x1a3))/0xa)+-parseInt(_0xe4a041(0x1aa))/0xb*(-parseInt(_0xe4a041(0x1b8))/0xc);if(_0x3ac556===_0xf78adf)break;else _0x2be85d['push'](_0x2be85d['shift']());}catch(_0x291a36){_0x2be85d['push'](_0x2be85d['shift']());}}}(a35_0x4900,0xdd641));function a35_0x7551(_0x506be4,_0x4f08cc){_0x506be4=_0x506be4-0x1a0;const _0x490057=a35_0x4900();let _0x75519a=_0x490057[_0x506be4];return _0x75519a;}import{unlinkSync,existsSync}from'node:fs';import{cookieFile}from'../../auth/constant.js';export const authDefinitions=[{'service':'auth','command':a35_0x2b92b7(0x1a9),'description':a35_0x2b92b7(0x1a8),'risk':a35_0x2b92b7(0x1ab),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'yes','type':a35_0x2b92b7(0x1b5),'description':a35_0x2b92b7(0x1a1),'default':![]}],async 'execute'(_0x446ff1){const _0x22e290=a35_0x2b92b7,{runAuthServer:_0x35c827}=await import(_0x22e290(0x1b4));return await _0x35c827({'autoYes':_0x446ff1[_0x22e290(0x1ad)](_0x22e290(0x1b2)),'nonInteractive':_0x446ff1[_0x22e290(0x1b1)]}),{'ok':!![]};}},{'service':'auth','command':a35_0x2b92b7(0x1a2),'description':a35_0x2b92b7(0x1a4),'risk':a35_0x2b92b7(0x1ab),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x43abcd){const _0x21f827=a35_0x2b92b7;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x21f827(0x1b0)]('✓\x20Logged\x20out')):console[_0x21f827(0x1b0)](_0x21f827(0x1a0)),{'ok':!![]};}}];
@@ -1 +1 @@
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
+ function a36_0x3e2f(){const _0x54bbae=['trim','40036NaAQnY','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20HOOK\x0a\x20*\x20[脚本名称]\x20','utf8','functionNode',']\x20(','read','currentApp','\x0a\x20*\x20[接口路径]\x20POST\x20/api/','name','2BOjtAN','Dataset\x20not\x20found\x20for\x20code\x20\x22','before','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\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','修改后的请求参数','.js','operationType','/COMMON/','Select\x20operation\x20type:','Function\x20name\x20(valid\x20JS\x20identifier)','282635VboGkV','code','\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).','stderr','Script\x20type','8356956qLMXYX','1339688EIgYRO','datasetId','9930agvnzl','length','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20ENDPOINT\x0a\x20*\x20[脚本名称]\x20','Created\x20','Select\x20trigger\x20node:','datasetcode','\x20api\x20pull`\x20to\x20refresh.','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/','No\x20datasets\x20found\x20for\x20this\x20app.','includes','join','--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','scriptsRootDir','--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','Scaffold\x20a\x20new\x20Backend\x20Function\x20script\x20from\x20template','11AWIxmb','nonInteractive','\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','type','\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20','source','create','Invalid\x20dataset\x20selection.','354YHVHlF','.js\x0a','\x20function:\x20','tableName','bff','Available\x20aliases:\x20','Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)','UNKNOWN','validation','defaultApp','\x22,\x20params\x20})\x0a','stdin','HOOK\x20requires\x20alias/operation/node\x20options.','mergedCli','当前响应结果','COMMON','1837520MOFJHp','/ENDPOINT/','after','write','function-node','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.','selectedAppName','6392okWufu','keys','\x22\x20not\x20found.\x20','str','isInteger','HOOK','--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','string','\x0a\x20*\x20[平台配置]\x20','\x22\x20not\x20found\x20for\x20dataset\x20','appCode','Select\x20dataset:','33ULYIRR','apiDir','修改后的响应结果','/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','profileName','operation-type','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[脚本名称]\x20','\x20*\x20[依赖数据集]\x20无(如有依赖,DB_TABLE\x20填物理表名;METADATA\x20填数据集编码与用途)\x0a\x20*\x20[调用\x20BF]\x20无(如有调用,填写脚本名称与用途)\x0a\x20*\x20[执行\x20SQL]\x20无(如有执行,填写\x20SQL\x20名称与用途)\x0a\x20*\x20[副作用]\x20无(如有通知或外部调用,说明影响与失败策略)','\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20','当前请求参数','alias','find','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','ENDPOINT','/**\x0a\x20*\x20','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','map','No\x20model\x20aliases\x20found.\x20Run\x20`','423JsrpWU','datasetCode','Operation\x20type\x20\x22'];a36_0x3e2f=function(){return _0x54bbae;};return a36_0x3e2f();}const a36_0x1c0946=a36_0x4377;(function(_0x113a28,_0x49b94b){const _0xa31ee2=a36_0x4377,_0xc1b0b8=_0x113a28();while(!![]){try{const _0xdcce54=-parseInt(_0xa31ee2(0x106))/0x1*(parseInt(_0xa31ee2(0xfb))/0x2)+parseInt(_0xa31ee2(0xdc))/0x3*(-parseInt(_0xa31ee2(0xf2))/0x4)+parseInt(_0xa31ee2(0x10e))/0x5*(-parseInt(_0xa31ee2(0x125))/0x6)+-parseInt(_0xa31ee2(0x10c))/0x7+parseInt(_0xa31ee2(0xd0))/0x8*(-parseInt(_0xa31ee2(0xee))/0x9)+parseInt(_0xa31ee2(0xc8))/0xa+parseInt(_0xa31ee2(0x11d))/0xb*(parseInt(_0xa31ee2(0x10b))/0xc);if(_0xdcce54===_0x49b94b)break;else _0xc1b0b8['push'](_0xc1b0b8['shift']());}catch(_0x3ef2c9){_0xc1b0b8['push'](_0xc1b0b8['shift']());}}}(a36_0x3e2f,0x22808));import{createInterface}from'node:readline';import{mkdir,writeFile}from'node:fs/promises';import{dirname,join}from'node:path';import{listDatasets,listBffDatasetOperations}from'../../core/api-client.js';import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{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';function a36_0x4377(_0x27a671,_0x596285){_0x27a671=_0x27a671-0xc7;const _0x3e2ff1=a36_0x3e2f();let _0x437727=_0x3e2ff1[_0x27a671];return _0x437727;}export const bffCreate={'service':a36_0x1c0946(0x129),'command':a36_0x1c0946(0x123),'description':a36_0x1c0946(0x11c),'risk':a36_0x1c0946(0xf7),'flags':[{'name':a36_0x1c0946(0x120),'type':a36_0x1c0946(0xd7),'required':!![],'enum':[a36_0x1c0946(0xc7),a36_0x1c0946(0xe9),a36_0x1c0946(0xd5)],'description':a36_0x1c0946(0x10a)},{'name':a36_0x1c0946(0xfa),'type':a36_0x1c0946(0xd7),'required':!![],'description':a36_0x1c0946(0x105)},{'name':'description','type':a36_0x1c0946(0xd7),'description':'Script\x20description'},{'name':a36_0x1c0946(0xe6),'type':a36_0x1c0946(0xd7),'description':a36_0x1c0946(0x12b)},{'name':a36_0x1c0946(0x113),'type':'string','description':a36_0x1c0946(0xe8)},{'name':a36_0x1c0946(0xe1),'type':a36_0x1c0946(0xd7),'description':'Operation\x20type\x20(HOOK\x20only)'},{'name':a36_0x1c0946(0xcc),'type':a36_0x1c0946(0xd7),'description':'Trigger\x20node\x20(HOOK\x20only)','enum':[a36_0x1c0946(0xfd),a36_0x1c0946(0xca)]}],async 'validate'(_0x4a7273){const _0x5568b7=a36_0x1c0946,_0xbe1d71=_0x4a7273[_0x5568b7(0xd3)](_0x5568b7(0xfa));if(!isValidBffFunctionName(_0xbe1d71))throw CliErrors[_0x5568b7(0x12d)]('Invalid\x20function\x20name\x20\x22'+_0xbe1d71+_0x5568b7(0x108));},async 'execute'(_0x1d5d4f){const _0x227eae=a36_0x1c0946,_0x14b59a=loadBffProjectConfig(_0x1d5d4f[_0x227eae(0xda)]),_0x43efd2=_0x1d5d4f['str'](_0x227eae(0x120)),_0x367c10=_0x1d5d4f[_0x227eae(0xd3)](_0x227eae(0xfa)),_0x40c4fe=_0x1d5d4f[_0x227eae(0xd3)]('description')||undefined,_0x3669b9=_0x43efd2==='HOOK'?await resolveHookOptions(_0x14b59a,_0x1d5d4f):undefined,_0x110a4f=buildFilePath(_0x14b59a,_0x43efd2,_0x367c10,_0x3669b9);if(await fileExists(_0x110a4f))throw CliErrors[_0x227eae(0x12d)]('File\x20already\x20exists:\x20'+_0x110a4f);await mkdir(dirname(_0x110a4f),{'recursive':!![]});const _0x2a92bc=generateTemplate(_0x43efd2,_0x367c10,_0x1d5d4f['appCode'],_0x40c4fe,_0x3669b9);await writeFile(_0x110a4f,_0x2a92bc,_0x227eae(0xf4));const _0x22c1b9={'type':_0x43efd2,'name':_0x367c10,'path':_0x110a4f};if(_0x40c4fe)_0x22c1b9['description']=_0x40c4fe;if(_0x3669b9){if(_0x3669b9[_0x227eae(0xe6)])_0x22c1b9[_0x227eae(0xe6)]=_0x3669b9['alias'];_0x22c1b9['datasetCode']=_0x3669b9[_0x227eae(0xef)],_0x22c1b9[_0x227eae(0x102)]=_0x3669b9[_0x227eae(0x102)],_0x22c1b9[_0x227eae(0xf5)]=_0x3669b9[_0x227eae(0xf5)];}return{'ok':!![],'data':_0x22c1b9,'message':_0x227eae(0x111)+_0x43efd2+_0x227eae(0x127)+_0x367c10};}};async function resolveHookOptions(_0x26f422,_0x14eb71){const _0xbae30a=a36_0x1c0946,_0x56dd86=resolveApiModelSource(_0x14eb71[_0xbae30a(0xdd)],_0x14eb71['appCode'],_0x14eb71[_0xbae30a(0xcf)]||_0x14eb71[_0xbae30a(0x132)]?.[_0xbae30a(0xf8)]||_0x14eb71[_0xbae30a(0x132)]?.[_0xbae30a(0x12e)]),_0x3677be=loadAliasMap(_0x14eb71[_0xbae30a(0xdd)],undefined,_0x56dd86['filePath'],_0x56dd86[_0xbae30a(0xe0)]),_0x35a4a9=_0x3677be[_0xbae30a(0x10f)]>0x0;let _0x4f615e,_0x2de30f,_0x4c2c12;const _0x518cbd=_0x14eb71[_0xbae30a(0xd3)](_0xbae30a(0xe6)),_0xb41087=_0x14eb71['str'](_0xbae30a(0x113));if(_0x518cbd){const _0x3c3904=resolveAlias(_0x14eb71[_0xbae30a(0xdd)],_0x518cbd,undefined,_0x56dd86['filePath'],_0x56dd86[_0xbae30a(0xe0)]);if(!_0x3c3904){const _0x38db2e=_0x35a4a9?_0xbae30a(0x12a)+_0x3677be[_0xbae30a(0xec)](_0x30a49a=>_0x30a49a[_0xbae30a(0xe6)])['join'](',\x20'):_0xbae30a(0xed)+CLI_BIN_NAME+_0xbae30a(0xce);throw CliErrors[_0xbae30a(0x12d)]('Alias\x20\x22'+_0x518cbd+_0xbae30a(0xd2)+_0x38db2e);}_0x4f615e=_0x518cbd,_0x2de30f=_0x3c3904;}else{if(_0xb41087){_0x2de30f=_0xb41087;const _0x4a984f=_0x3677be[_0xbae30a(0xe7)](_0x5d0443=>_0x5d0443[_0xbae30a(0xef)]===_0xb41087);_0x4f615e=_0x4a984f?.[_0xbae30a(0xe6)];}else{if(_0x14eb71[_0xbae30a(0x11e)])throw CliErrors[_0xbae30a(0x12d)](_0xbae30a(0xd6));else{if(_0x35a4a9){const _0x101ece=_0x3677be['map'](_0x53028f=>_0x53028f[_0xbae30a(0xe6)]+'\x20('+_0x53028f[_0xbae30a(0x128)]+')'),_0x335eed=await promptSelect(_0xbae30a(0xdb),_0x101ece),_0x1919f6=_0x3677be[_0x335eed];if(!_0x1919f6)throw CliErrors['validation'](_0xbae30a(0x124));_0x4f615e=_0x1919f6[_0xbae30a(0xe6)],_0x2de30f=_0x1919f6['datasetCode'];}else{const _0x4bb164=await listDatasets(_0x14eb71[_0xbae30a(0xda)]);if(_0x4bb164[_0xbae30a(0x10f)]===0x0)throw CliErrors[_0xbae30a(0x12d)](_0xbae30a(0x116));const _0x41c20e=_0x4bb164['map'](_0x14d6cf=>_0x14d6cf['name']+'\x20['+(_0x14d6cf[_0xbae30a(0x122)]??_0xbae30a(0x12c))+_0xbae30a(0xf6)+_0x14d6cf[_0xbae30a(0x107)]+')'),_0x31317e=await promptSelect(_0xbae30a(0xdb),_0x41c20e),_0x153571=_0x4bb164[_0x31317e];if(!_0x153571)throw CliErrors['validation'](_0xbae30a(0x124));_0x2de30f=_0x153571[_0xbae30a(0x107)],_0x4f615e=undefined;}}}}const _0x2068c4=await listDatasets(_0x14eb71[_0xbae30a(0xda)]),_0x1764c3=_0x2068c4[_0xbae30a(0xe7)](_0x29a319=>_0x29a319['code']===_0x2de30f);if(!_0x1764c3)throw CliErrors[_0xbae30a(0x12d)](_0xbae30a(0xfc)+_0x2de30f+'\x22.\x20'+(_0x4f615e?'The\x20generated\x20model\x20facts\x20may\x20be\x20stale\x20—\x20run\x20`'+CLI_BIN_NAME+_0xbae30a(0x114):''));_0x4c2c12=_0x1764c3['id'];const _0x17dc25=_0x4f615e??_0x2de30f,_0x3ff1e2=await listBffDatasetOperations(_0x14eb71[_0xbae30a(0xda)],_0x4c2c12),_0x3cf648=_0x3ff1e2?Object[_0xbae30a(0xd1)](_0x3ff1e2):[];if(_0x3cf648[_0xbae30a(0x10f)]===0x0)throw CliErrors['validation']('No\x20operation\x20types\x20found\x20for\x20dataset\x20'+_0x17dc25+'.');let _0x514538;const _0x3d9d8e=_0x14eb71[_0xbae30a(0xd3)](_0xbae30a(0xe1));if(_0x3d9d8e){if(!_0x3cf648[_0xbae30a(0x117)](_0x3d9d8e))throw CliErrors['validation'](_0xbae30a(0xf0)+_0x3d9d8e+_0xbae30a(0xd9)+_0x17dc25+'.\x20'+('Available:\x20'+_0x3cf648[_0xbae30a(0x118)](',\x20')));_0x514538=_0x3d9d8e;}else{if(_0x14eb71['nonInteractive'])throw CliErrors[_0xbae30a(0x12d)](_0xbae30a(0x11b));const _0x314ae0=await promptSelect(_0xbae30a(0x104),_0x3cf648);_0x514538=_0x3cf648[_0x314ae0]??_0x3cf648[0x0];}let _0xdd1864=normalizeHookFunctionNode(_0x14eb71['str'](_0xbae30a(0xcc)));if(!_0xdd1864){if(_0x14eb71[_0xbae30a(0xd3)](_0xbae30a(0xcc)))throw CliErrors['validation']('--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.');if(_0x14eb71[_0xbae30a(0x11e)])throw CliErrors['validation'](_0xbae30a(0x119));const _0x29f8de=await promptSelect(_0xbae30a(0x112),['before','after']);_0xdd1864=[_0xbae30a(0xfd),_0xbae30a(0xca)][_0x29f8de]??_0xbae30a(0xfd);}return{'alias':_0x4f615e,'datasetCode':_0x2de30f,'datasetId':_0x4c2c12,'operationType':_0x514538,'functionNode':_0xdd1864};}async function promptSelect(_0x15a38c,_0x4ac5f5){const _0x428ad8=a36_0x1c0946;if(_0x4ac5f5['length']===0x1)return 0x0;for(const [_0x5fd435,_0x3ee12b]of _0x4ac5f5['entries']()){process['stderr'][_0x428ad8(0xcb)]('\x20\x20'+(_0x5fd435+0x1)+'.\x20'+_0x3ee12b+'\x0a');}const _0x2973ff=createInterface({'input':process[_0x428ad8(0x130)],'output':process[_0x428ad8(0x109)]});while(!![]){const _0x37c281=await new Promise(_0x20fcfb=>{_0x2973ff['question'](_0x15a38c+'\x20',_0x20fcfb);}),_0x13278d=Number['parseInt'](_0x37c281[_0x428ad8(0xf1)](),0xa);if(Number[_0x428ad8(0xd4)](_0x13278d)&&_0x13278d>=0x1&&_0x13278d<=_0x4ac5f5['length'])return _0x2973ff['close'](),_0x13278d-0x1;process[_0x428ad8(0x109)]['write'](_0x428ad8(0xfe)+_0x4ac5f5[_0x428ad8(0x10f)]+'.\x0a');}}function buildFilePath(_0x4211ed,_0x5e45d7,_0x1534c4,_0x41fc10){const _0xb8088e=a36_0x1c0946;if(_0x5e45d7===_0xb8088e(0xd5)){if(!_0x41fc10)throw CliErrors[_0xb8088e(0x12d)](_0xb8088e(0x131));const _0x31eb48=_0x41fc10[_0xb8088e(0xe6)]??_0x41fc10['datasetCode'];return join(_0x4211ed[_0xb8088e(0x11a)],_0xb8088e(0xd5),_0x31eb48,_0x41fc10[_0xb8088e(0x102)],_0x41fc10[_0xb8088e(0xf5)],_0x1534c4+_0xb8088e(0x101));}return join(_0x4211ed[_0xb8088e(0x11a)],_0x5e45d7,_0x1534c4+'.js');}export function generateTemplate(_0x4e1dd1,_0x586a07,_0x4e3f69,_0x30ea59,_0x4b683b){const _0x53d6ff=a36_0x1c0946,_0x4b4069=_0x30ea59?.[_0x53d6ff(0xf1)]()||DEFAULT_BFF_SCRIPT_DESCRIPTION,_0x4ce654=getAppBaseUrl(_0x4e3f69),_0xae5630=_0x53d6ff(0xe3);if(_0x4e1dd1===_0x53d6ff(0xc7))return'/**\x0a\x20*\x20'+_0x4b4069+_0x53d6ff(0xe2)+_0x586a07+_0x53d6ff(0xd8)+_0x4ce654+_0x53d6ff(0xdf)+_0x4e3f69+_0x53d6ff(0x103)+_0x586a07+'.js\x0a\x20*\x20[调用方式]\x20context.client.bff.execute({\x20scriptName:\x20\x22'+_0x586a07+_0x53d6ff(0x12f)+_0xae5630+'\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'+_0x586a07+_0x53d6ff(0xcd);if(_0x4e1dd1===_0x53d6ff(0xe9))return _0x53d6ff(0xea)+_0x4b4069+_0x53d6ff(0x110)+_0x586a07+_0x53d6ff(0x115)+_0x4e3f69+'/'+_0x586a07+_0x53d6ff(0xd8)+_0x4ce654+_0x53d6ff(0xdf)+_0x4e3f69+_0x53d6ff(0xc9)+_0x586a07+_0x53d6ff(0x126)+_0xae5630+_0x53d6ff(0xff)+_0x586a07+'(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a';if(!_0x4b683b)throw CliErrors['validation'](_0x53d6ff(0xeb));const _0xaaaa0c=_0x4b683b[_0x53d6ff(0xe6)]??_0x4b683b[_0x53d6ff(0xef)],_0x26ad21=_0x4b683b[_0x53d6ff(0xf5)]===_0x53d6ff(0xfd)?_0x53d6ff(0xe5):_0x53d6ff(0x133),_0x5cdd0d=_0x4b683b[_0x53d6ff(0xf5)]===_0x53d6ff(0xfd)?_0x53d6ff(0x100):_0x53d6ff(0xde);return _0x53d6ff(0xea)+_0x4b4069+_0x53d6ff(0xf3)+_0x586a07+_0x53d6ff(0xf9)+_0x4e3f69+'/'+_0x4b683b[_0x53d6ff(0xef)]+'/'+_0x4b683b['operationType']+_0x53d6ff(0xd8)+_0x4ce654+'/data/dataset/'+_0x4b683b[_0x53d6ff(0x10d)]+'#api-list\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/'+_0x4e3f69+'/HOOK/'+_0xaaaa0c+'/'+_0x4b683b[_0x53d6ff(0x102)]+'/'+_0x4b683b[_0x53d6ff(0xf5)]+'/'+_0x586a07+'.js\x0a\x20*\x20[触发节点]\x20'+_0x4b683b[_0x53d6ff(0xf5)]+'\x0a'+_0xae5630+_0x53d6ff(0x121)+_0x26ad21+_0x53d6ff(0xe4)+_0x5cdd0d+_0x53d6ff(0x11f)+_0x586a07+_0x53d6ff(0xcd);}
@@ -1 +1 @@
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
+ const a37_0x2ce4af=a37_0x59a5;(function(_0x1c4b73,_0x2fcb7b){const _0x256a2c=a37_0x59a5,_0x246a06=_0x1c4b73();while(!![]){try{const _0x78c9b0=parseInt(_0x256a2c(0x11b))/0x1+-parseInt(_0x256a2c(0x140))/0x2*(parseInt(_0x256a2c(0x13c))/0x3)+-parseInt(_0x256a2c(0x11f))/0x4*(parseInt(_0x256a2c(0x12d))/0x5)+-parseInt(_0x256a2c(0x124))/0x6+parseInt(_0x256a2c(0x129))/0x7+-parseInt(_0x256a2c(0x12f))/0x8*(-parseInt(_0x256a2c(0x11c))/0x9)+parseInt(_0x256a2c(0x127))/0xa;if(_0x78c9b0===_0x2fcb7b)break;else _0x246a06['push'](_0x246a06['shift']());}catch(_0x3b5c24){_0x246a06['push'](_0x246a06['shift']());}}}(a37_0x1d56,0xe2265));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_0x1d56(){const _0xcd41b=['stringify','map','delete','validation','appCode','521979KOqeCJ','join','string','scriptsRoot','16wDTzRf','target','Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name','\x22\x20not\x20found\x20after\x20ensureLockScope.','keys','trashDir','<timestamp>','lockFilePath','functions','apps','toISOString','projectRoot','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','remoteId','find','parse','1200848rfhPBa','459HmLGVm','\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a','startsWith','1272woqpBJ','Delete\x20a\x20Backend\x20Function\x20script\x20from\x20remote\x20and\x20local','Backend\x20Function\x20lock\x20file\x20not\x20found.','\x20\x20-\x20','POST','9261954tnmtpO','Would\x20delete\x20','Function\x20not\x20found:\x20','10052040aQNTyZ','Multiple\x20functions\x20match\x20\x22','12914062uabrkj','length','Backend\x20Function\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','Local\x20delete\x20not\x20settled\x20for\x20','10795LuWidR','No\x20lock\x20entry\x20found\x20for\x20\x22','78048OCGsKv','includes','lastSync','filter','scriptsRootDir','str','Lock\x20scope\x20for\x20app\x20\x22','Deleted\x20'];a37_0x1d56=function(){return _0xcd41b;};return a37_0x1d56();}export const bffDelete={'service':'bff','command':'delete','description':a37_0x2ce4af(0x120),'risk':'high-risk-write','flags':[{'name':a37_0x2ce4af(0x141),'type':a37_0x2ce4af(0x13e),'required':!![],'description':a37_0x2ce4af(0x142)}],async 'validate'(_0x57cc23){const _0xb899c0=a37_0x2ce4af,_0x3bd064=loadBffProjectConfig(_0x57cc23['appCode']),_0x5465d6=await readBffLockFile(_0x3bd064['lockFilePath']);if(!_0x5465d6)throw CliErrors[_0xb899c0(0x13a)](_0xb899c0(0x12b));},async 'dryRun'(_0x486c18){const _0x6f3885=a37_0x2ce4af,_0x3eb3f0=loadBffProjectConfig(_0x486c18['appCode']),_0x125c82=await readBffLockFile(_0x3eb3f0[_0x6f3885(0x112)]);if(!_0x125c82)throw CliErrors[_0x6f3885(0x13a)](_0x6f3885(0x121));const {appLock:_0x1fafeb}=ensureLockScope(_0x125c82,_0x486c18['appCode'],_0x3eb3f0['scriptsRoot'],_0x6f3885(0x139)),_0x55d0a7=_0x486c18[_0x6f3885(0x134)](_0x6f3885(0x141)),_0x5d00c9=Object[_0x6f3885(0x10f)](_0x1fafeb[_0x6f3885(0x113)]),_0x3376c0=resolveDeleteTarget(_0x55d0a7,_0x5d00c9),_0x27f779=_0x1fafeb[_0x6f3885(0x113)][_0x3376c0];if(!_0x27f779)throw CliErrors[_0x6f3885(0x13a)](_0x6f3885(0x12e)+_0x3376c0+'\x22.');const _0x4c5ec3=resolveLocalFilePathFromLockKey(_0x3eb3f0,_0x3376c0),_0x48eeaf=relative(_0x3eb3f0[_0x6f3885(0x116)],_0x4c5ec3),_0x2a6ebd=join(_0x3eb3f0[_0x6f3885(0x110)],_0x6f3885(0x111),_0x48eeaf);return{'method':_0x6f3885(0x123),'url':'/api/management/library/scripts/delete','body':{'appCode':_0x486c18[_0x6f3885(0x13b)],'target':_0x3376c0,'remoteId':_0x27f779[_0x6f3885(0x118)],'localFilePath':_0x4c5ec3,'trashedPath':_0x2a6ebd},'description':_0x6f3885(0x125)+_0x3376c0+_0x6f3885(0x117)};},async 'execute'(_0x35c90b){const _0x5f3e75=a37_0x2ce4af,_0x240b8a=loadBffProjectConfig(_0x35c90b[_0x5f3e75(0x13b)]),_0x39dc41=await readBffLockFile(_0x240b8a['lockFilePath']);if(!_0x39dc41)throw CliErrors[_0x5f3e75(0x13a)](_0x5f3e75(0x121));const {lockData:_0x1a83fe,appLock:_0x79a66e}=ensureLockScope(_0x39dc41,_0x35c90b[_0x5f3e75(0x13b)],_0x240b8a[_0x5f3e75(0x13f)],_0x5f3e75(0x139)),_0x6ffabd=JSON[_0x5f3e75(0x11a)](JSON[_0x5f3e75(0x137)](_0x1a83fe)),_0x1ad679=_0x6ffabd[_0x5f3e75(0x114)][_0x35c90b[_0x5f3e75(0x13b)]];if(!_0x1ad679)throw new Error(_0x5f3e75(0x135)+_0x35c90b[_0x5f3e75(0x13b)]+_0x5f3e75(0x10e));const _0x3a3528=_0x35c90b[_0x5f3e75(0x134)](_0x5f3e75(0x141)),_0x272320=Object[_0x5f3e75(0x10f)](_0x1ad679[_0x5f3e75(0x113)]),_0x340c58=resolveDeleteTarget(_0x3a3528,_0x272320),_0x41daa7=_0x1ad679[_0x5f3e75(0x113)][_0x340c58];if(!_0x41daa7)throw CliErrors[_0x5f3e75(0x13a)]('No\x20lock\x20entry\x20found\x20for\x20\x22'+_0x340c58+'\x22.');await deleteBffScript(_0x41daa7['remoteId']),delete _0x1ad679[_0x5f3e75(0x113)][_0x340c58],_0x1ad679[_0x5f3e75(0x131)]=new Date()[_0x5f3e75(0x115)](),await writeBffLockFile(_0x240b8a[_0x5f3e75(0x112)],_0x6ffabd);const _0x14c5bc=resolveLocalFilePathFromLockKey(_0x240b8a,_0x340c58);let _0x2f297c;await fileExists(_0x14c5bc)&&(_0x2f297c=await moveToTrash(_0x240b8a['projectRoot'],_0x240b8a[_0x5f3e75(0x110)],_0x14c5bc),await cleanupEmptyDirectories(dirname(_0x14c5bc),_0x240b8a[_0x5f3e75(0x133)]));await waitForDeleteSettlement(_0x240b8a['lockFilePath'],_0x35c90b[_0x5f3e75(0x13b)],_0x340c58,_0x14c5bc),await sleep(0x96);const _0x15f810={'deleted':_0x340c58,'remoteId':_0x41daa7[_0x5f3e75(0x118)]};if(_0x2f297c)_0x15f810['trashedTo']=_0x2f297c;return{'ok':!![],'data':_0x15f810,'message':_0x5f3e75(0x136)+_0x340c58+(_0x2f297c?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function resolveDeleteTarget(_0x33602b,_0x2139e9){const _0x371fee=a37_0x2ce4af;if(_0x33602b[_0x371fee(0x130)]('/')){const _0x5e957e=_0x2139e9[_0x371fee(0x119)](_0x21d3aa=>_0x21d3aa===_0x33602b);if(!_0x5e957e)throw CliErrors[_0x371fee(0x13a)]('Function\x20not\x20found:\x20'+_0x33602b);return _0x5e957e;}const _0x383a1f=_0x2139e9[_0x371fee(0x132)](_0x32f863=>_0x32f863['split']('/')['at'](-0x1)===_0x33602b);if(_0x383a1f[_0x371fee(0x12a)]===0x0)throw CliErrors['validation'](_0x371fee(0x126)+_0x33602b);if(_0x383a1f[_0x371fee(0x12a)]>0x1)throw CliErrors['validation'](_0x371fee(0x128)+_0x33602b+_0x371fee(0x11d)+_0x383a1f[_0x371fee(0x138)](_0x3ab081=>_0x371fee(0x122)+_0x3ab081)[_0x371fee(0x13d)]('\x0a'));return _0x383a1f[0x0];}async function moveToTrash(_0x3000d6,_0xc7c087,_0x457867){const _0x57b6b3=a37_0x2ce4af,_0xbcaa21=new Date()[_0x57b6b3(0x115)]()['replace'](/[:.]/g,'-'),_0x812ade=relative(_0x3000d6,_0x457867),_0x1520dc=join(_0xc7c087,_0xbcaa21,_0x812ade);return await mkdir(dirname(_0x1520dc),{'recursive':!![]}),await rename(_0x457867,_0x1520dc),_0x1520dc;}function a37_0x59a5(_0x1abef5,_0x401b02){_0x1abef5=_0x1abef5-0x10e;const _0x1d565b=a37_0x1d56();let _0x59a57c=_0x1d565b[_0x1abef5];return _0x59a57c;}async function cleanupEmptyDirectories(_0x17b75a,_0x5113ba){const _0x3e5b9c=a37_0x2ce4af;let _0x3723fc=resolve(_0x17b75a);const _0x17665c=resolve(_0x5113ba);while(_0x3723fc[_0x3e5b9c(0x11e)](''+_0x17665c+sep)||_0x3723fc===_0x17665c){if(_0x3723fc===_0x17665c)return;try{const _0x4821ad=await readdir(_0x3723fc);if(_0x4821ad['length']>0x0)return;await rmdir(_0x3723fc);}catch{return;}_0x3723fc=dirname(_0x3723fc);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;async function waitForDeleteSettlement(_0xaf7376,_0x501a9a,_0x516033,_0x24090c){const _0xf68fcd=a37_0x2ce4af;for(let _0x3d3a09=0x0;_0x3d3a09<DELETE_SETTLE_RETRY_COUNT;_0x3d3a09+=0x1){const _0x1c350e=await readBffLockFile(_0xaf7376),_0x45187e=!!_0x1c350e?.[_0xf68fcd(0x114)]?.[_0x501a9a]?.['functions']?.[_0x516033],_0x30275f=await fileExists(_0x24090c);if(!_0x45187e&&!_0x30275f)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error(_0xf68fcd(0x12c)+_0x516033+'.');}
@@ -1 +1 @@
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
+ const a38_0x277482=a38_0x23c2;(function(_0x10b560,_0x4f15dd){const _0xf633c5=a38_0x23c2,_0x5d6f78=_0x10b560();while(!![]){try{const _0x1baf7e=-parseInt(_0xf633c5(0x1e9))/0x1*(-parseInt(_0xf633c5(0x1f5))/0x2)+parseInt(_0xf633c5(0x1e2))/0x3+parseInt(_0xf633c5(0x1dd))/0x4*(-parseInt(_0xf633c5(0x1e3))/0x5)+parseInt(_0xf633c5(0x1e1))/0x6*(-parseInt(_0xf633c5(0x1e4))/0x7)+parseInt(_0xf633c5(0x1f2))/0x8+-parseInt(_0xf633c5(0x1f6))/0x9+parseInt(_0xf633c5(0x1f0))/0xa;if(_0x1baf7e===_0x4f15dd)break;else _0x5d6f78['push'](_0x5d6f78['shift']());}catch(_0x61724a){_0x5d6f78['push'](_0x5d6f78['shift']());}}}(a38_0x229d,0xca606));import{getBffScriptInfo}from'../../core/api-client.js';export const bffDetail={'service':a38_0x277482(0x1f1),'command':a38_0x277482(0x1df),'description':a38_0x277482(0x1ee),'risk':a38_0x277482(0x1ec),'flags':[{'name':'id','type':a38_0x277482(0x1e6),'required':!![],'description':a38_0x277482(0x1db)},{'name':a38_0x277482(0x1e8),'type':a38_0x277482(0x1e5),'description':a38_0x277482(0x1eb)}],async 'execute'(_0x19906e){const _0x37ee60=a38_0x277482,_0xe9c6a7=await getBffScriptInfo(_0x19906e[_0x37ee60(0x1e7)]('id')),_0x11377e=_0x19906e[_0x37ee60(0x1ed)](_0x37ee60(0x1e8));if(_0x11377e)return{'ok':!![],'data':_0xe9c6a7};return{'ok':!![],'data':{'id':_0xe9c6a7['id'],'functionName':_0xe9c6a7[_0x37ee60(0x1f3)]??'','version':_0xe9c6a7[_0x37ee60(0x1ef)]??'','updateUserName':_0xe9c6a7[_0x37ee60(0x1dc)]??'','appCode':_0xe9c6a7['appCode'],'scriptType':_0xe9c6a7['scriptType'],'description':_0xe9c6a7['description']||_0x37ee60(0x1e0),'createdTime':_0xe9c6a7[_0x37ee60(0x1ea)]??'','updatedTime':_0xe9c6a7[_0x37ee60(0x1f4)]??'','scriptContent':_0xe9c6a7[_0x37ee60(0x1de)]??''}};}};function a38_0x23c2(_0x4daaa8,_0x4b2247){_0x4daaa8=_0x4daaa8-0x1db;const _0x229d5c=a38_0x229d();let _0x23c217=_0x229d5c[_0x4daaa8];return _0x23c217;}function a38_0x229d(){const _0x11b61a=['number','num','verbose','66043HTkpSR','createdTime','Return\x20full\x20raw\x20script\x20object','read','bool','Get\x20Backend\x20Function\x20script\x20details\x20by\x20ID','version','5937930gBHYfJ','bff','7497360QYRqdK','functionName','updatedTime','14aWKeBn','9206703LdfVsk','Script\x20ID','updateUserName','3748QCvxnw','scriptContent','detail','(none)','6Xsqusq','3146013pfjboL','5645DCuicN','925127DcCNzZ','boolean'];a38_0x229d=function(){return _0x11b61a;};return a38_0x229d();}
@@ -1 +1 @@
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
+ (function(_0x1f09fb,_0x32d96a){const _0x454565=a39_0x2fe9,_0x5c977c=_0x1f09fb();while(!![]){try{const _0x587588=parseInt(_0x454565(0x9b))/0x1+parseInt(_0x454565(0x9f))/0x2*(parseInt(_0x454565(0x99))/0x3)+-parseInt(_0x454565(0x9d))/0x4*(parseInt(_0x454565(0x9c))/0x5)+-parseInt(_0x454565(0x98))/0x6*(-parseInt(_0x454565(0x9a))/0x7)+-parseInt(_0x454565(0x96))/0x8*(-parseInt(_0x454565(0x97))/0x9)+-parseInt(_0x454565(0x95))/0xa*(parseInt(_0x454565(0x9e))/0xb)+-parseInt(_0x454565(0xa0))/0xc;if(_0x587588===_0x32d96a)break;else _0x5c977c['push'](_0x5c977c['shift']());}catch(_0x116624){_0x5c977c['push'](_0x5c977c['shift']());}}}(a39_0x5373,0x272cd));import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';import{bffStatus}from'../../commands/bff/status.js';import{bffCreate}from'../../commands/bff/create.js';function a39_0x2fe9(_0x668265,_0x4539c7){_0x668265=_0x668265-0x95;const _0x53730=a39_0x5373();let _0x2fe9e9=_0x53730[_0x668265];return _0x2fe9e9;}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];function a39_0x5373(){const _0x5ff752=['2395NXonzx','284QHRSqt','9944XXESMv','12964uVRyqC','3470064sVfGyw','1400wzIdNI','1886808VjFvNk','9mpzSUa','198GKIaHJ','66orIXHU','32466eVvVrt','78693bjkEfL'];a39_0x5373=function(){return _0x5ff752;};return a39_0x5373();}
@@ -1 +1 @@
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
+ const a40_0x43e1c6=a40_0x1b86;function a40_0x1b86(_0x5458af,_0x16a386){_0x5458af=_0x5458af-0xee;const _0x10fc10=a40_0x10fc();let _0x1b8665=_0x10fc10[_0x5458af];return _0x1b8665;}(function(_0x1fa052,_0x2af1c3){const _0xdf9e98=a40_0x1b86,_0x47c6ac=_0x1fa052();while(!![]){try{const _0x4f976e=parseInt(_0xdf9e98(0xf8))/0x1+parseInt(_0xdf9e98(0x107))/0x2+parseInt(_0xdf9e98(0xf0))/0x3+-parseInt(_0xdf9e98(0x10a))/0x4+parseInt(_0xdf9e98(0xfd))/0x5*(parseInt(_0xdf9e98(0x108))/0x6)+-parseInt(_0xdf9e98(0xf2))/0x7+parseInt(_0xdf9e98(0xf7))/0x8;if(_0x4f976e===_0x2af1c3)break;else _0x47c6ac['push'](_0x47c6ac['shift']());}catch(_0x5a9e34){_0x47c6ac['push'](_0x47c6ac['shift']());}}}(a40_0x10fc,0xdeb7e));import{listBffScripts}from'../../core/api-client.js';function a40_0x10fc(){const _0x44b365=['map','703810ArzQoR','12396zVFKpE','List\x20Backend\x20Function\x20scripts','1183808tjmeif','appCode','boolean','Script\x20type\x20filter','str','184704VUMFNP','bool','10676442XdntQB','type','functionName','string','Filter\x20by\x20script\x20name','6939072BcJJFg','712927ZwDwbE','list','description','bff','scriptType','1790ckuEEQ','ENDPOINT','verbose','name','COMMON','No\x20Backend\x20Function\x20scripts\x20found.','read','(unnamed)','Return\x20full\x20script\x20objects'];a40_0x10fc=function(){return _0x44b365;};return a40_0x10fc();}export const bffList={'service':a40_0x43e1c6(0xfb),'command':a40_0x43e1c6(0xf9),'description':a40_0x43e1c6(0x109),'risk':a40_0x43e1c6(0x103),'flags':[{'name':a40_0x43e1c6(0xf3),'type':a40_0x43e1c6(0xf5),'description':a40_0x43e1c6(0xee),'default':a40_0x43e1c6(0xfe),'enum':[a40_0x43e1c6(0xfe),a40_0x43e1c6(0x101)]},{'name':a40_0x43e1c6(0x100),'type':a40_0x43e1c6(0xf5),'description':a40_0x43e1c6(0xf6)},{'name':a40_0x43e1c6(0xff),'type':a40_0x43e1c6(0x10c),'description':a40_0x43e1c6(0x105)}],async 'execute'(_0x3f524a){const _0x5c4718=a40_0x43e1c6,_0x444db8=await listBffScripts(_0x3f524a[_0x5c4718(0x10b)],_0x3f524a['str'](_0x5c4718(0xf3)),{'scriptName':_0x3f524a[_0x5c4718(0xef)](_0x5c4718(0x100))||undefined}),_0x3cf68c=_0x3f524a[_0x5c4718(0xf1)](_0x5c4718(0xff));return{'ok':!![],'data':_0x3cf68c?_0x444db8:_0x444db8[_0x5c4718(0x106)](_0x568760=>({'id':_0x568760['id'],'functionName':_0x568760[_0x5c4718(0xf4)]??'','description':_0x568760[_0x5c4718(0xfa)]||_0x5c4718(0x104),'scriptType':_0x568760[_0x5c4718(0xfc)]})),'message':_0x444db8['length']===0x0?_0x5c4718(0x102):undefined};}};
@@ -1 +1 @@
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
+ const a41_0x51380e=a41_0x1629;(function(_0x436b7e,_0x8274fe){const _0x9cfc16=a41_0x1629,_0x3f68b1=_0x436b7e();while(!![]){try{const _0x57a21d=parseInt(_0x9cfc16(0x147))/0x1*(-parseInt(_0x9cfc16(0x148))/0x2)+parseInt(_0x9cfc16(0x157))/0x3*(-parseInt(_0x9cfc16(0x156))/0x4)+parseInt(_0x9cfc16(0x13a))/0x5+-parseInt(_0x9cfc16(0x151))/0x6*(parseInt(_0x9cfc16(0x13c))/0x7)+-parseInt(_0x9cfc16(0x14f))/0x8+-parseInt(_0x9cfc16(0x153))/0x9+parseInt(_0x9cfc16(0x134))/0xa*(parseInt(_0x9cfc16(0x13b))/0xb);if(_0x57a21d===_0x8274fe)break;else _0x3f68b1['push'](_0x3f68b1['shift']());}catch(_0x4525d5){_0x3f68b1['push'](_0x3f68b1['shift']());}}}(a41_0x1371,0x4344f));function a41_0x1629(_0x408cfa,_0x5d6ee6){_0x408cfa=_0x408cfa-0x128;const _0x13718a=a41_0x1371();let _0x162993=_0x13718a[_0x408cfa];return _0x162993;}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_0x51380e(0x14d),a41_0x51380e(0x13e),a41_0x51380e(0x145),a41_0x51380e(0x152)];export function resolveBffLogQuery(_0x19e2b0,_0x4a9ab7=Date[a41_0x51380e(0x12f)]()){const _0x1855b1=a41_0x51380e,_0x2fcae8=_0x19e2b0[_0x1855b1(0x12c)](_0x1855b1(0x144)),_0xfe0eba=_0x19e2b0[_0x1855b1(0x12c)](_0x1855b1(0x12a)),_0x502cc7=_0x19e2b0['flag']('end-time');if(_0x2fcae8!==undefined&&_0xfe0eba!==undefined)throw CliErrors['validation'](_0x1855b1(0x132));const _0x58ad1e=_0x502cc7===undefined?_0x4a9ab7:readPositiveInteger(_0x19e2b0[_0x1855b1(0x131)](_0x1855b1(0x133)),_0x1855b1(0x140)),_0x433b2a=_0xfe0eba===undefined?_0x58ad1e-readSinceMinutes(_0x19e2b0)*0xea60:readPositiveInteger(_0x19e2b0['num'](_0x1855b1(0x12a)),_0x1855b1(0x129));if(_0x433b2a<=0x0)throw CliErrors[_0x1855b1(0x155)](_0x1855b1(0x15b));if(_0x433b2a>_0x58ad1e)throw CliErrors['validation'](_0x1855b1(0x12e));const _0x56eeb2=readPositiveInteger(_0x19e2b0[_0x1855b1(0x131)]('limit',DEFAULT_LIMIT),_0x1855b1(0x13d));if(_0x56eeb2>MAX_LIMIT)throw CliErrors[_0x1855b1(0x155)](_0x1855b1(0x15c)+MAX_LIMIT+'.');const _0x1b85e6=_0x19e2b0['str'](_0x1855b1(0x158))[_0x1855b1(0x141)]()[_0x1855b1(0x142)]()||undefined,_0x3c095a=_0x19e2b0[_0x1855b1(0x14b)](_0x1855b1(0x143))['trim']()||undefined;return{'appCode':_0x19e2b0[_0x1855b1(0x150)],'startTime':_0x433b2a,'endTime':_0x58ad1e,..._0xfe0eba===undefined?{'sinceMinutes':readSinceMinutes(_0x19e2b0)}:{},..._0x1b85e6?{'level':_0x1b85e6}:{},..._0x3c095a?{'keyword':_0x3c095a}:{},'limit':_0x56eeb2};}function readSinceMinutes(_0x5d5846){const _0xbe0733=a41_0x51380e;return readPositiveInteger(_0x5d5846[_0xbe0733(0x131)]('since',DEFAULT_SINCE_MINUTES),_0xbe0733(0x138));}function readPositiveInteger(_0x3175f9,_0x22297d){const _0x3547be=a41_0x51380e;if(!Number[_0x3547be(0x12d)](_0x3175f9)||_0x3175f9<=0x0)throw CliErrors[_0x3547be(0x155)](_0x22297d+_0x3547be(0x159));return _0x3175f9;}function a41_0x1371(){const _0x316433=['6830BciRIE','length','Query\x20end\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds\x20(default:\x20now)','Filter\x20formatted\x20log\x20lines\x20by\x20keyword','--since','Query\x20recent\x20Backend\x20Function\x20runtime\x20logs\x20for\x20development\x20debugging','550590kEnqOY','23573iCDnpZ','91sSvtSw','--limit','INFO','string','--end-time','trim','toUpperCase','keyword','since','WARN','Minutes\x20before\x20the\x20end\x20time\x20to\x20query\x20(default:\x20','1PwLard','741154Hvvcvg','Filter\x20by\x20log\x20level','\x20Backend\x20Function\x20log\x20line(s).','str','read','DEBUG','Query\x20start\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds','3371008EHXERK','appCode','144426lXtPkC','ERROR','1299951jJEShA','logs','validation','28hBrgqy','20973siTlti','level','\x20must\x20be\x20a\x20positive\x20integer.','limit','The\x20resolved\x20log\x20start\x20time\x20must\x20be\x20greater\x20than\x200.','--limit\x20must\x20be\x20between\x201\x20and\x20','Found\x20','--start-time','start-time','Maximum\x20log\x20lines\x20to\x20return\x20(1-','flag','isSafeInteger','--start-time\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20--end-time.','now','number','num','--since\x20cannot\x20be\x20combined\x20with\x20--start-time.','end-time'];a41_0x1371=function(){return _0x316433;};return a41_0x1371();}export const bffLogs={'service':'bff','command':a41_0x51380e(0x154),'description':a41_0x51380e(0x139),'risk':a41_0x51380e(0x14c),'structuredErrors':!![],'flags':[APPCODE_FLAG_OPTIONAL,{'name':a41_0x51380e(0x144),'type':a41_0x51380e(0x130),'description':a41_0x51380e(0x146)+DEFAULT_SINCE_MINUTES+')'},{'name':a41_0x51380e(0x12a),'type':'number','description':a41_0x51380e(0x14e)},{'name':a41_0x51380e(0x133),'type':a41_0x51380e(0x130),'description':a41_0x51380e(0x136)},{'name':a41_0x51380e(0x158),'type':'string','description':a41_0x51380e(0x149),'enum':LOG_LEVELS},{'name':a41_0x51380e(0x143),'type':a41_0x51380e(0x13f),'description':a41_0x51380e(0x137)},{'name':a41_0x51380e(0x15a),'type':a41_0x51380e(0x130),'description':a41_0x51380e(0x12b)+MAX_LIMIT+')','default':DEFAULT_LIMIT}],async 'validate'(_0x29427b){resolveBffLogQuery(_0x29427b);},async 'execute'(_0x2b57ba){const _0x1de943=a41_0x51380e,_0xd09bda=resolveBffLogQuery(_0x2b57ba),{sinceMinutes:_0xfe2062,..._0x5a62e5}=_0xd09bda,_0x5499eb=await searchBffScriptLogs(_0x5a62e5);return{'ok':!![],'data':{'query':_0xd09bda,'count':_0x5499eb[_0x1de943(0x135)],'logs':_0x5499eb},'message':_0x5499eb[_0x1de943(0x135)]===0x0?'No\x20Backend\x20Function\x20logs\x20found\x20for\x20the\x20selected\x20range.':_0x1de943(0x128)+_0x5499eb[_0x1de943(0x135)]+_0x1de943(0x14a)};}};
@@ -1 +1 @@
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)]());}
1
+ const a42_0x4ab5f9=a42_0x18ac;(function(_0x2a931f,_0x5dccf9){const _0x448f93=a42_0x18ac,_0x126622=_0x2a931f();while(!![]){try{const _0x2bfc8a=-parseInt(_0x448f93(0x18b))/0x1+-parseInt(_0x448f93(0x1c0))/0x2*(-parseInt(_0x448f93(0x182))/0x3)+parseInt(_0x448f93(0x17d))/0x4+parseInt(_0x448f93(0x1d0))/0x5*(parseInt(_0x448f93(0x1a6))/0x6)+parseInt(_0x448f93(0x1a1))/0x7*(parseInt(_0x448f93(0x1b4))/0x8)+parseInt(_0x448f93(0x1ea))/0x9+-parseInt(_0x448f93(0x1c8))/0xa;if(_0x2bfc8a===_0x5dccf9)break;else _0x126622['push'](_0x126622['shift']());}catch(_0x2ce378){_0x126622['push'](_0x126622['shift']());}}}(a42_0x2d5a,0x49ba2));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_0x4ab5f9(0x1b0),'command':a42_0x4ab5f9(0x173),'description':a42_0x4ab5f9(0x15f),'risk':'read','structuredErrors':!![],'flags':[{'name':a42_0x4ab5f9(0x174),'type':a42_0x4ab5f9(0x198),'description':a42_0x4ab5f9(0x195),'enum':[a42_0x4ab5f9(0x158),'ENDPOINT',a42_0x4ab5f9(0x16a)]},{'name':a42_0x4ab5f9(0x175),'type':a42_0x4ab5f9(0x161),'description':a42_0x4ab5f9(0x16c)}],async 'dryRun'(_0x5d7df0){const _0x170e09=a42_0x4ab5f9,_0x423c24=loadBffProjectConfig(_0x5d7df0['appCode']),_0x361002=await readBffLockFile(_0x423c24[_0x170e09(0x1eb)]),{appLock:_0x1d4066}=ensureLockScope(_0x361002??createEmptyBffLock(),_0x5d7df0[_0x170e09(0x1b1)],_0x423c24[_0x170e09(0x194)],_0x170e09(0x173)),_0x11e957=normalizeBffType(_0x5d7df0['str']('type'))??undefined,[_0x5840e0,_0x159f23]=await Promise[_0x170e09(0x1e7)]([listBffScripts(_0x5d7df0[_0x170e09(0x1b1)],_0x11e957),getBffScriptStatistics(_0x5d7df0['appCode'])]),_0x10c60e=_0x5840e0[_0x170e09(0x1d4)](_0x558b92=>normalizeBffType(_0x558b92[_0x170e09(0x1dc)])===_0x170e09(0x16a)),_0x7e1f50=_0x10c60e?buildDatasetCodeToAliasMap(_0x5d7df0[_0x170e09(0x1dd)],_0x5d7df0[_0x170e09(0x1b1)],_0x5d7df0['selectedAppName']||_0x5d7df0[_0x170e09(0x1d6)]?.['currentApp']||_0x5d7df0[_0x170e09(0x1d6)]?.[_0x170e09(0x1e4)]):new Map(),_0x785e82=_0x10c60e?await planHookDirectoryMigration(_0x423c24,_0x1d4066,_0x7e1f50,await scanLocalBffFunctions(_0x423c24,_0x170e09(0x16a))):undefined,_0x420e16=createHookLocationMap(_0x159f23),_0x69736d=[];for(const _0x2e5fe2 of _0x5840e0){const _0x14ad1e=resolveRemoteScriptTarget(_0x423c24,_0x2e5fe2,_0x420e16,_0x785e82?.[_0x170e09(0x18d)]??_0x1d4066[_0x170e09(0x1d8)],_0x7e1f50);if(!_0x14ad1e){_0x69736d[_0x170e09(0x1c2)]({'scriptType':_0x2e5fe2[_0x170e09(0x1dc)],'functionName':_0x2e5fe2[_0x170e09(0x1d9)]??'','status':'skipped','reason':'unresolvable\x20target\x20path'});continue;}const _0x353407=(_0x785e82?.[_0x170e09(0x18d)]??_0x1d4066[_0x170e09(0x1d8)])[_0x14ad1e[_0x170e09(0x17f)]],_0x440b8d=_0x2e5fe2[_0x170e09(0x1b2)]!=null?computeContentHash(_0x2e5fe2[_0x170e09(0x1b2)]):undefined,_0x367adb=await hasUnsyncedLocalChanges(resolveMigratedSourceFilePath(_0x785e82,_0x14ad1e)??_0x14ad1e[_0x170e09(0x19a)],_0x353407,_0x440b8d),_0x524256=_0x367adb?localUnsyncedConflict(_0x14ad1e,_0x2e5fe2['id']):undefined;_0x69736d[_0x170e09(0x1c2)]({'lockKey':_0x14ad1e[_0x170e09(0x17f)],'filePath':_0x14ad1e[_0x170e09(0x19a)],'remoteId':_0x2e5fe2['id']??null,'status':_0x524256?_0x170e09(0x18c):_0x170e09(0x1d7),..._0x524256?{'conflict':_0x524256}:{},..._0x14ad1e[_0x170e09(0x18e)]?{'alias':_0x14ad1e[_0x170e09(0x18e)]['alias']??null,'datasetCode':_0x14ad1e[_0x170e09(0x18e)][_0x170e09(0x193)],'operationType':_0x14ad1e[_0x170e09(0x18e)][_0x170e09(0x19c)],'functionNode':_0x14ad1e[_0x170e09(0x18e)][_0x170e09(0x1a5)]}:{}});}return{'method':_0x170e09(0x1e5),'url':_0x170e09(0x1ca)+_0x5d7df0['appCode']+(_0x11e957?'&type='+_0x11e957:'')+_0x170e09(0x166)+BFF_LIST_PAGE_SIZE,'body':{'appCode':_0x5d7df0[_0x170e09(0x1b1)],'filterType':_0x11e957??null,..._0x785e82&&_0x785e82[_0x170e09(0x1bb)][_0x170e09(0x187)]>0x0?{'hookDirectoryMigrations':_0x785e82['migrations'][_0x170e09(0x1a3)](_0x3e9f9f=>({'from':_0x3e9f9f[_0x170e09(0x1e1)],'to':_0x3e9f9f[_0x170e09(0x179)]}))}:{},'files':_0x69736d},'description':'Would\x20inspect\x20'+_0x69736d['length']+_0x170e09(0x171)};},async 'execute'(_0x439ec1){const _0x4e9b10=a42_0x4ab5f9,_0x60023f=loadBffProjectConfig(_0x439ec1[_0x4e9b10(0x1b1)]),_0x3754f3=await readBffLockFile(_0x60023f['lockFilePath']),{lockData:_0x1ac3ff,appLock:_0x24843b}=ensureLockScope(_0x3754f3??createEmptyBffLock(),_0x439ec1['appCode'],_0x60023f['scriptsRoot'],_0x4e9b10(0x173)),_0x464efd=normalizeBffType(_0x439ec1['str'](_0x4e9b10(0x174)))??undefined;if(_0x439ec1[_0x4e9b10(0x184)]('type')&&!_0x464efd)throw CliErrors[_0x4e9b10(0x170)]('--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.');const [_0x34f656,_0x9c04c8]=await Promise[_0x4e9b10(0x1e7)]([listBffScripts(_0x439ec1[_0x4e9b10(0x1b1)],_0x464efd),getBffScriptStatistics(_0x439ec1[_0x4e9b10(0x1b1)])]);if(_0x34f656[_0x4e9b10(0x187)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'conflicts':[],'failed':[]},'message':_0x4e9b10(0x1a2)};const _0x3b8525=_0x439ec1[_0x4e9b10(0x1ab)](_0x4e9b10(0x175));if(_0x3b8525&&!_0x439ec1[_0x4e9b10(0x1aa)]){const _0x2464ae=await confirmForce();if(!_0x2464ae)throw CliErrors[_0x4e9b10(0x172)](_0x4e9b10(0x1ec));}if(_0x3b8525&&_0x439ec1[_0x4e9b10(0x1aa)]){}const _0x289df3=_0x34f656['some'](_0x1a63f0=>normalizeBffType(_0x1a63f0['scriptType'])===_0x4e9b10(0x16a)),_0x346cbe=_0x289df3?buildDatasetCodeToAliasMap(_0x439ec1[_0x4e9b10(0x1dd)],_0x439ec1['appCode'],_0x439ec1[_0x4e9b10(0x18f)]||_0x439ec1[_0x4e9b10(0x1d6)]?.[_0x4e9b10(0x169)]||_0x439ec1['mergedCli']?.[_0x4e9b10(0x1e4)]):new Map(),_0x3d27a6=createHookLocationMap(_0x9c04c8),_0x7f9b4a=JSON[_0x4e9b10(0x15d)](JSON['stringify'](_0x1ac3ff)),_0x17c9e6=_0x439ec1['appCode'],_0xe4ae68=_0x7f9b4a[_0x4e9b10(0x1a9)][_0x17c9e6];if(!_0xe4ae68)throw new Error(_0x4e9b10(0x1a0)+_0x17c9e6+_0x4e9b10(0x1cb));const _0x399b68=_0x289df3?await applyHookDirectoryMigration(await planHookDirectoryMigration(_0x60023f,_0xe4ae68,_0x346cbe,await scanLocalBffFunctions(_0x60023f,'HOOK')),_0xe4ae68):undefined,_0x31b9d8=createPullFileTransaction(),_0x4b7ba2=[],_0x4af7cb=[],_0x3bec16=[],_0x1f90da=[];for(const _0x31ffee of _0x34f656){const _0x55dae7=resolveRemoteScriptTarget(_0x60023f,_0x31ffee,_0x3d27a6,_0xe4ae68[_0x4e9b10(0x1d8)],_0x346cbe);if(!_0x55dae7){_0x4af7cb[_0x4e9b10(0x1c2)]({'lockKey':_0x31ffee[_0x4e9b10(0x1dc)]+'/'+_0x31ffee[_0x4e9b10(0x1d9)],'reason':_0x4e9b10(0x15b)});continue;}const _0x329299=_0xe4ae68[_0x4e9b10(0x1d8)][_0x55dae7[_0x4e9b10(0x17f)]];try{if(!_0x31ffee['id'])throw new Error(_0x4e9b10(0x167));if(_0x31ffee[_0x4e9b10(0x1b2)]==null)throw new Error(_0x4e9b10(0x1a4));const _0x2d5e83=_0x31ffee['scriptContent'],_0x4715d0=computeContentHash(_0x2d5e83);if(!_0x3b8525){const _0x12cff0=await hasUnsyncedLocalChanges(_0x55dae7['filePath'],_0x329299,_0x4715d0);if(_0x12cff0){_0x3bec16[_0x4e9b10(0x1c2)](localUnsyncedConflict(_0x55dae7,_0x31ffee['id']));continue;}}await _0x31b9d8['write'](_0x55dae7[_0x4e9b10(0x19a)],_0x2d5e83);const _0x338dbf={'hash':_0x4715d0,'remoteId':_0x31ffee['id'],'version':_0x31ffee[_0x4e9b10(0x186)]};_0x55dae7[_0x4e9b10(0x174)]==='HOOK'&&_0x55dae7[_0x4e9b10(0x18e)]&&(_0x338dbf[_0x4e9b10(0x1ce)]=_0x55dae7['hookLocation'][_0x4e9b10(0x1ce)],_0x338dbf[_0x4e9b10(0x193)]=_0x55dae7[_0x4e9b10(0x18e)]['datasetCode'],_0x338dbf[_0x4e9b10(0x19c)]=_0x55dae7[_0x4e9b10(0x18e)][_0x4e9b10(0x19c)],_0x338dbf[_0x4e9b10(0x1a5)]=_0x55dae7[_0x4e9b10(0x18e)][_0x4e9b10(0x1a5)]),_0xe4ae68[_0x4e9b10(0x1d8)][_0x55dae7[_0x4e9b10(0x17f)]]=_0x338dbf,_0x4b7ba2[_0x4e9b10(0x1c2)]({'lockKey':_0x55dae7['lockKey'],'remoteId':_0x31ffee['id']});}catch(_0x178519){_0x1f90da[_0x4e9b10(0x1c2)]({'lockKey':_0x55dae7[_0x4e9b10(0x17f)],'error':_0x178519 instanceof Error?_0x178519['message']:String(_0x178519)});}}_0xe4ae68['lastSync']=new Date()[_0x4e9b10(0x1e8)]();try{await writeBffLockFile(_0x60023f[_0x4e9b10(0x1eb)],_0x7f9b4a);}catch(_0x1fbf17){const _0x498b85=[...await _0x31b9d8[_0x4e9b10(0x160)](),...await _0x399b68?.[_0x4e9b10(0x160)]()??[]];throw withRollbackErrors(_0x1fbf17,'Failed\x20to\x20write\x20the\x20Backend\x20Function\x20lock\x20file;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.',_0x498b85);}return{'ok':_0x1f90da[_0x4e9b10(0x187)]===0x0,'data':{'pulled':_0x4b7ba2,'skipped':_0x4af7cb,'conflicts':_0x3bec16,'failed':_0x1f90da},'message':formatPullMessage(_0x4b7ba2['length'],_0x4af7cb[_0x4e9b10(0x187)],_0x3bec16['length'],_0x1f90da['length'])};}};function localUnsyncedConflict(_0x1c3158,_0x592abc){const _0x3a767b=a42_0x4ab5f9,_0x9a59fa=_0x1c3158[_0x3a767b(0x17f)][_0x3a767b(0x19e)]('/')['at'](-0x1);return{'code':_0x3a767b(0x196),'lockKey':_0x1c3158[_0x3a767b(0x17f)],'filePath':_0x1c3158[_0x3a767b(0x19a)],..._0x592abc!=null?{'remoteId':_0x592abc}:{},'message':'Local\x20script\x20differs\x20from\x20the\x20last\x20pulled\x20version.\x20Review\x20it\x20before\x20choosing\x20the\x20source\x20of\x20truth.','nextAction':{'action':'push_local','command':CLI_BIN_NAME+_0x3a767b(0x1da)+_0x1c3158[_0x3a767b(0x174)]+'\x20--name\x20'+_0x9a59fa+_0x3a767b(0x1c1),'requiresReview':!![],'message':_0x3a767b(0x192)}};}function formatPullMessage(_0xa98a,_0x2eee46,_0x485c82,_0x58101f){const _0x2671be=a42_0x4ab5f9,_0xaec6b7=[_0x2671be(0x190)+_0xa98a+_0x2671be(0x1e9),_0x2eee46+_0x2671be(0x1e0)];_0x485c82>0x0&&_0xaec6b7[_0x2671be(0x1c2)](_0x485c82+_0x2671be(0x1bd)+(_0x485c82===0x1?'':'s')+'\x20'+(_0x485c82===0x1?_0x2671be(0x1a7):'require')+_0x2671be(0x17b));if(_0x58101f>0x0)_0xaec6b7[_0x2671be(0x1c2)](_0x58101f+_0x2671be(0x183));return _0xaec6b7[_0x2671be(0x1db)](',\x20');}async function hasUnsyncedLocalChanges(_0x432377,_0xb209c6,_0x20352){const _0x32ac82=a42_0x4ab5f9;if(!await fileExists(_0x432377))return![];const _0x462ce6=await computeFileHash(_0x432377);if(!_0xb209c6)return _0x20352?_0x462ce6!==_0x20352:!![];return _0x462ce6!==_0xb209c6[_0x32ac82(0x1cd)];}function a42_0x18ac(_0x126667,_0x367d2b){_0x126667=_0x126667-0x156;const _0x2d5aa0=a42_0x2d5a();let _0x18ac31=_0x2d5aa0[_0x126667];return _0x18ac31;}function createPullFileTransaction(){const _0x2921eb=new Map(),_0x19dc6f=async(_0x3dfb22,_0x37bbaa)=>{const _0x5cd72d=a42_0x18ac;try{if(_0x37bbaa[_0x5cd72d(0x17e)])await ensureParentDirectory(_0x3dfb22),await writeFile(_0x3dfb22,_0x37bbaa[_0x5cd72d(0x1b6)]);else try{await unlink(_0x3dfb22);}catch(_0x59c8d0){if(_0x59c8d0[_0x5cd72d(0x189)]!==_0x5cd72d(0x1bc))throw _0x59c8d0;}return undefined;}catch(_0x327d3e){return _0x327d3e instanceof Error?_0x327d3e:new Error(String(_0x327d3e));}};return{async 'write'(_0x226037,_0x1cd6b9){const _0x5c5e3c=a42_0x18ac;if(!_0x2921eb['has'](_0x226037))try{_0x2921eb[_0x5c5e3c(0x1c4)](_0x226037,{'existed':!![],'content':await readFile(_0x226037)});}catch(_0x3500e6){if(_0x3500e6['code']!==_0x5c5e3c(0x1bc))throw _0x3500e6;_0x2921eb[_0x5c5e3c(0x1c4)](_0x226037,{'existed':![]});}try{await ensureParentDirectory(_0x226037),await writeFile(_0x226037,_0x1cd6b9,'utf8');}catch(_0x17656a){const _0x409029=await _0x19dc6f(_0x226037,_0x2921eb[_0x5c5e3c(0x15e)](_0x226037));if(!_0x409029)_0x2921eb['delete'](_0x226037);throw withRollbackErrors(_0x17656a,_0x5c5e3c(0x199)+_0x226037+'\x22.',_0x409029?[_0x409029]:[]);}},async 'rollback'(){const _0x47ad61=a42_0x18ac,_0x53a913=[];for(const [_0x261002,_0x13dbe9]of[..._0x2921eb['entries']()][_0x47ad61(0x19b)]()){const _0x4062a1=await _0x19dc6f(_0x261002,_0x13dbe9);_0x4062a1&&_0x53a913[_0x47ad61(0x1c2)](new Error(_0x47ad61(0x178)+_0x261002+'\x22:\x20'+_0x4062a1[_0x47ad61(0x1d1)]));}return _0x53a913;}};}function withRollbackErrors(_0x3baf92,_0x25545f,_0x92b16d){const _0x4a7651=a42_0x4ab5f9,_0x4dfb6e=_0x3baf92 instanceof Error?_0x3baf92:new Error(String(_0x3baf92));if(_0x92b16d[_0x4a7651(0x187)]===0x0)return _0x4dfb6e;return new AggregateError([_0x4dfb6e,..._0x92b16d],_0x25545f+_0x4a7651(0x180)+_0x92b16d['map'](_0x3aa61b=>_0x3aa61b[_0x4a7651(0x1d1)])[_0x4a7651(0x1db)](';\x20'));}function buildDatasetCodeToAliasMap(_0x58751c,_0x43141d,_0x19cddd){const _0x3cddd4=a42_0x4ab5f9,_0x221126=resolveApiModelSource(_0x58751c,_0x43141d,_0x19cddd),_0x40c2dd=loadAliasMap(_0x58751c,undefined,_0x221126[_0x3cddd4(0x19a)],_0x221126[_0x3cddd4(0x1b5)]);return assertUnambiguousHookAliases(_0x40c2dd),new Map(_0x40c2dd['map'](_0x54169b=>[_0x54169b[_0x3cddd4(0x193)][_0x3cddd4(0x1c9)](),_0x54169b[_0x3cddd4(0x1ce)]]));}async function planHookDirectoryMigration(_0x1ff0ed,_0x306fb6,_0x1b8129,_0x4cf5c2){const _0x1e13ae=a42_0x4ab5f9,_0x2c449d=new Map();for(const [_0x2eeb61,_0x37e6f8]of Object[_0x1e13ae(0x1bf)](_0x306fb6[_0x1e13ae(0x1d8)])){const [_0x1596ab,_0x71db35,_0x5dd872,_0x115a91,_0x2af047,..._0x5742e4]=_0x2eeb61['split']('/');if(_0x1596ab!=='HOOK'||!_0x71db35||!_0x5dd872||!_0x115a91||!_0x2af047||_0x5742e4['length']>0x0||!_0x37e6f8[_0x1e13ae(0x193)])continue;const _0x2ec244=_0x1b8129[_0x1e13ae(0x15e)](_0x37e6f8['datasetCode'][_0x1e13ae(0x1c9)]()),_0x3b55e8=_0x2ec244??_0x37e6f8[_0x1e13ae(0x193)];if(!isSafeHookDirectorySegment(_0x71db35))throw CliErrors[_0x1e13ae(0x170)](_0x1e13ae(0x197)+_0x71db35+_0x1e13ae(0x159));if(!isSafeHookDirectorySegment(_0x3b55e8))throw CliErrors['validation']('Cannot\x20migrate\x20HOOK\x20directory\x20\x22'+_0x71db35+'\x22:\x20its\x20target\x20directory\x20is\x20unsafe.');if(_0x71db35===_0x3b55e8)continue;const _0x5da982=_0x2c449d[_0x1e13ae(0x15e)](_0x71db35)??{'datasetCode':_0x37e6f8['datasetCode'],'alias':_0x2ec244,'keyChanges':[]};if(_0x5da982[_0x1e13ae(0x193)]!==_0x37e6f8[_0x1e13ae(0x193)])throw CliErrors['validation'](_0x1e13ae(0x177)+_0x71db35+'\x22:\x20it\x20is\x20tracked\x20by\x20multiple\x20Datasets.');const _0x2c648e=_0x1e13ae(0x1b8)+_0x3b55e8+'/'+_0x5dd872+'/'+_0x115a91+'/'+_0x2af047;try{resolveLocalFilePathFromLockKey(_0x1ff0ed,_0x2eeb61),resolveLocalFilePathFromLockKey(_0x1ff0ed,_0x2c648e);}catch(_0x4d13be){throw CliErrors[_0x1e13ae(0x170)](_0x1e13ae(0x1b3)+_0x2eeb61+_0x1e13ae(0x191)+(_0x4d13be instanceof Error?_0x4d13be[_0x1e13ae(0x1d1)]:String(_0x4d13be)));}_0x5da982[_0x1e13ae(0x1b9)][_0x1e13ae(0x1c2)]({'oldLockKey':_0x2eeb61,'newLockKey':_0x2c648e,'entry':_0x37e6f8}),_0x2c449d['set'](_0x71db35,_0x5da982);}const _0x410858=new Set([..._0x2c449d[_0x1e13ae(0x1d3)]()][_0x1e13ae(0x17a)](_0x227d0c=>_0x227d0c[_0x1e13ae(0x1b9)][_0x1e13ae(0x1a3)](_0x355547=>_0x355547['oldLockKey']))),_0x462c73=new Map(),_0xc58e47=new Map();for(const [_0x568fce,_0x246e65]of _0x2c449d){const _0x1d6182=_0x246e65[_0x1e13ae(0x1ce)]??_0x246e65[_0x1e13ae(0x193)],_0xf91b26=hookDirectoryIdentity(_0x1d6182),_0x582887=_0x462c73['get'](_0xf91b26);if(_0x582887&&_0x582887!==_0x568fce)throw CliErrors[_0x1e13ae(0x170)](_0x1e13ae(0x1c5)+_0x582887+_0x1e13ae(0x156)+_0x568fce+_0x1e13ae(0x163)+_0x1d6182+_0x1e13ae(0x1c6));_0x462c73['set'](_0xf91b26,_0x568fce);for(const _0x46f121 of _0x246e65[_0x1e13ae(0x1b9)]){const _0x167a81=_0xc58e47['get'](_0x46f121[_0x1e13ae(0x16e)]);if(_0x167a81&&_0x167a81!==_0x46f121[_0x1e13ae(0x19f)])throw CliErrors[_0x1e13ae(0x170)](_0x1e13ae(0x1be)+_0x167a81+_0x1e13ae(0x156)+_0x46f121[_0x1e13ae(0x19f)]+_0x1e13ae(0x163)+_0x46f121[_0x1e13ae(0x16e)]+_0x1e13ae(0x181));if(_0x410858[_0x1e13ae(0x1cc)](_0x46f121[_0x1e13ae(0x16e)]))throw CliErrors[_0x1e13ae(0x170)]('Cannot\x20migrate\x20HOOK\x20lock\x20key\x20\x22'+_0x46f121[_0x1e13ae(0x19f)]+_0x1e13ae(0x17c)+_0x46f121[_0x1e13ae(0x16e)]+_0x1e13ae(0x176));_0xc58e47[_0x1e13ae(0x1c4)](_0x46f121['newLockKey'],_0x46f121[_0x1e13ae(0x19f)]);}}const _0x195882=new Map();for(const [_0xa4a4d3,_0x33e3ba]of _0x1b8129){_0x195882[_0x1e13ae(0x1c4)](hookDirectoryIdentity(_0x33e3ba),_0xa4a4d3);}const _0x372331=[];for(const [_0x1a9060,_0x1bad6e]of _0x2c449d){const _0x28461c=_0x1bad6e[_0x1e13ae(0x1ce)]??_0x1bad6e[_0x1e13ae(0x193)],_0x1a2c0a=join(_0x1ff0ed[_0x1e13ae(0x165)],'HOOK',_0x1a9060),_0x52e965=join(_0x1ff0ed[_0x1e13ae(0x165)],'HOOK',_0x28461c),_0x56d12e=await directoryExists(_0x1a2c0a),_0x1445d7=await directoryExists(_0x52e965),_0x41b32e=_0x56d12e?_0x1445d7?await sameDirectory(_0x1a2c0a,_0x52e965)?'case-rename':undefined:'move':_0x1e13ae(0x168);if(!_0x41b32e)throw CliErrors['validation'](_0x1e13ae(0x177)+_0x1a9060+'\x22\x20to\x20\x22'+_0x28461c+'\x22:\x20the\x20target\x20directory\x20already\x20exists.\x20Resolve\x20the\x20directories\x20and\x20retry.');const _0x33d102=_0x195882[_0x1e13ae(0x15e)](hookDirectoryIdentity(_0x1a9060));if(_0x33d102&&_0x33d102!==_0x1bad6e[_0x1e13ae(0x193)]['toLowerCase']()){const _0x4287c9=new Set(_0x1bad6e[_0x1e13ae(0x1b9)][_0x1e13ae(0x1a3)](_0x8c14ab=>_0x8c14ab['oldLockKey'])),_0x5b9228=_0x4cf5c2['filter'](_0x2afa37=>_0x2afa37[_0x1e13ae(0x174)]===_0x1e13ae(0x16a)&&_0x2afa37[_0x1e13ae(0x1ce)]!=null&&hookDirectoryIdentity(_0x2afa37[_0x1e13ae(0x1ce)])===hookDirectoryIdentity(_0x1a9060)&&!_0x4287c9[_0x1e13ae(0x1cc)](_0x2afa37['lockKey']));if(_0x5b9228[_0x1e13ae(0x187)]>0x0)throw CliErrors[_0x1e13ae(0x170)](_0x1e13ae(0x177)+_0x1a9060+_0x1e13ae(0x1de));}const _0x4627f7=_0x195882[_0x1e13ae(0x15e)](hookDirectoryIdentity(_0x28461c));if(_0x4627f7&&_0x4627f7!==_0x1bad6e[_0x1e13ae(0x193)][_0x1e13ae(0x1c9)]())throw CliErrors['validation'](_0x1e13ae(0x177)+_0x1a9060+_0x1e13ae(0x1af)+_0x28461c+'\x22:\x20the\x20destination\x20is\x20another\x20Dataset\x20alias.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.');for(const _0x3ac060 of _0x1bad6e['keyChanges']){const _0xf95933=_0x306fb6['functions'][_0x3ac060['newLockKey']];if(_0xf95933&&!_0x410858[_0x1e13ae(0x1cc)](_0x3ac060['newLockKey'])&&!sameHookIdentity(_0x3ac060[_0x1e13ae(0x18a)],_0xf95933))throw CliErrors[_0x1e13ae(0x170)](_0x1e13ae(0x177)+_0x1a9060+_0x1e13ae(0x1af)+_0x28461c+_0x1e13ae(0x15a));}_0x372331[_0x1e13ae(0x1c2)]({'oldDirectory':_0x1a9060,'newDirectory':_0x28461c,'oldDirectoryPath':_0x1a2c0a,'newDirectoryPath':_0x52e965,'mode':_0x41b32e,'alias':_0x1bad6e[_0x1e13ae(0x1ce)],'keyChanges':_0x1bad6e[_0x1e13ae(0x1b9)]});}const _0x2bab66={..._0x306fb6[_0x1e13ae(0x1d8)]},_0x36b84d=new Map(),_0x3a694c=new Map();for(const _0x51801c of _0x372331){const _0x4a07d4=_0x51801c[_0x1e13ae(0x162)]!==_0x1e13ae(0x168);_0x4a07d4&&_0x3a694c[_0x1e13ae(0x1c4)](hookDirectoryIdentity(_0x51801c[_0x1e13ae(0x179)]),_0x51801c[_0x1e13ae(0x19d)]);for(const _0x2fd12c of _0x51801c[_0x1e13ae(0x1b9)]){const _0x1105f7=_0x2bab66[_0x2fd12c[_0x1e13ae(0x16e)]],_0xae46f=_0x4a07d4?_0x2fd12c['entry']:_0x1105f7??_0x2fd12c[_0x1e13ae(0x18a)];_0x2bab66[_0x2fd12c[_0x1e13ae(0x16e)]]=canonicalizeHookEntry(_0xae46f,_0x51801c[_0x1e13ae(0x1ce)]),delete _0x2bab66[_0x2fd12c['oldLockKey']],_0x4a07d4&&_0x36b84d[_0x1e13ae(0x1c4)](_0x2fd12c[_0x1e13ae(0x16e)],resolveLocalFilePathFromLockKey(_0x1ff0ed,_0x2fd12c[_0x1e13ae(0x19f)]));}}return{'migrations':_0x372331,'projectedFunctions':_0x2bab66,'sourceFilePathByNewLockKey':_0x36b84d,'sourceDirectoryPathByNewDirectory':_0x3a694c};}function a42_0x2d5a(){const _0x31b4a2=['newDirectoryPath','all','toISOString','\x20pulled','4647942kqzHxY','lockFilePath','Force\x20pull\x20cancelled.','\x22\x20and\x20\x22','sourceDirectoryPathByNewDirectory','COMMON','\x22\x20from\x20the\x20lock\x20file.','\x22:\x20target\x20lock\x20key\x20is\x20already\x20bound\x20to\x20another\x20script.','unresolvable\x20target\x20path','NFC','parse','get','Pull\x20remote\x20Backend\x20Function\x20scripts\x20to\x20local','rollback','boolean','mode','\x22:\x20both\x20target\x20\x22','normalize','scriptsRootDir','&currentPage=1&pageSize=','Remote\x20script\x20missing\x20id.','rekey','currentApp','HOOK','\x22;\x20temporary\x20directory\x20\x22','Force\x20overwrite\x20local\x20unsynced\x20changes','move','newLockKey','stderr','validation','\x20remote\x20Backend\x20Function\x20script(s)\x20for\x20pull','cancelled','pull','type','force','\x22\x20is\x20another\x20legacy\x20key\x20being\x20migrated.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','Cannot\x20migrate\x20HOOK\x20directory\x20\x22','Could\x20not\x20restore\x20local\x20script\x20\x22','newDirectory','flatMap','\x20resolution','\x22:\x20its\x20target\x20\x22','1262528GFAJqU','existed','lockKey','\x20Recovery\x20errors:\x20','\x22.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','3MXDqXs','\x20failed','str','Could\x20not\x20restore\x20temporary\x20HOOK\x20directory\x20\x22','version','length','case-rename','code','entry','225941LNZzuy','conflict','projectedFunctions','hookLocation','selectedAppName','Pull\x20complete:\x20','\x22:\x20','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.','datasetCode','scriptsRoot','Pull\x20only\x20this\x20script\x20type','BFF_LOCAL_UNSYNCED','Cannot\x20migrate\x20unsafe\x20HOOK\x20directory\x20\x22','string','Failed\x20to\x20write\x20local\x20script\x20\x22','filePath','reverse','operationType','oldDirectoryPath','split','oldLockKey','Lock\x20scope\x20for\x20app\x20\x22','3094854pNjCtU','No\x20remote\x20Backend\x20Function\x20scripts\x20found.','map','Remote\x20script\x20missing\x20content.','functionNode','834jhvbmt','requires','\x22\x20may\x20remain.','apps','nonInteractive','bool','.hook-directory-migrate-','\x22\x20from\x20\x22','includes','\x22\x20to\x20\x22','bff','appCode','scriptContent','Cannot\x20migrate\x20unsafe\x20HOOK\x20lock\x20key\x20\x22','8tlmWYr','profileName','content','yes','HOOK/','keyChanges','ino','migrations','ENOENT','\x20conflict','Cannot\x20migrate\x20HOOK\x20lock\x20keys\x20\x22','entries','542802qXVoiX','\x20--format\x20compress','push','remoteId','set','Cannot\x20migrate\x20HOOK\x20directories\x20\x22','\x22.\x20Resolve\x20the\x20directories\x20manually\x20before\x20retrying.','stdin','14883200hiyOiP','toLowerCase','/api/management/library/scripts/list?appCode=','\x22\x20not\x20found\x20after\x20ensureLockScope.','has','hash','alias','lastSync','16930UmWFvT','message','sourceFilePathByNewLockKey','values','some','.js','mergedCli','would_pull','functions','functionName','\x20bff\x20push\x20--type\x20','join','scriptType','apiDir','\x22:\x20it\x20is\x20now\x20another\x20Dataset\x20alias\x20and\x20contains\x20untracked\x20scripts.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','trim','\x20skipped','oldDirectory','question','dev','defaultApp','GET'];a42_0x2d5a=function(){return _0x31b4a2;};return a42_0x2d5a();}function resolveMigratedSourceFilePath(_0x298c6e,_0x1cef02){const _0x4801f8=a42_0x4ab5f9;if(!_0x298c6e||!_0x1cef02)return undefined;const _0x4b9086=_0x298c6e[_0x4801f8(0x1d2)][_0x4801f8(0x15e)](_0x1cef02['lockKey']);if(_0x4b9086)return _0x4b9086;if(_0x1cef02[_0x4801f8(0x174)]!==_0x4801f8(0x16a))return undefined;const [,_0x5304cb,..._0x2c9dcb]=_0x1cef02['lockKey']['split']('/');if(!_0x5304cb||_0x2c9dcb['length']===0x0)return undefined;const _0xe2fee8=_0x298c6e[_0x4801f8(0x157)]['get'](hookDirectoryIdentity(_0x5304cb));return _0xe2fee8?join(_0xe2fee8,..._0x2c9dcb)+_0x4801f8(0x1d5):undefined;}function sameHookIdentity(_0x13ccb6,_0x8c085c){const _0x495943=a42_0x4ab5f9;return _0x13ccb6['remoteId']===_0x8c085c[_0x495943(0x1c3)]&&_0x13ccb6[_0x495943(0x193)]===_0x8c085c[_0x495943(0x193)]&&_0x13ccb6[_0x495943(0x19c)]===_0x8c085c[_0x495943(0x19c)]&&_0x13ccb6[_0x495943(0x1a5)]===_0x8c085c['functionNode'];}function canonicalizeHookEntry(_0x7c7d1b,_0x45a337){const {alias:_0x16c2ed,..._0x52cef4}=_0x7c7d1b;return _0x45a337?{..._0x52cef4,'alias':_0x45a337}:_0x52cef4;}function hookDirectoryIdentity(_0x389255){const _0x323d1c=a42_0x4ab5f9;return _0x389255[_0x323d1c(0x164)](_0x323d1c(0x15c))['toLowerCase']();}function isSafeHookDirectorySegment(_0x390680){return isSafeLockKeySegment(_0x390680);}async function sameDirectory(_0x4d45bb,_0x39066f){const _0x2f54a0=a42_0x4ab5f9,[_0x1e8691,_0xdc5a6d]=await Promise['all']([stat(_0x4d45bb),stat(_0x39066f)]);return _0x1e8691['dev']===_0xdc5a6d[_0x2f54a0(0x1e3)]&&_0x1e8691['ino']===_0xdc5a6d[_0x2f54a0(0x1ba)];}async function applyHookDirectoryMigration(_0x2f46e7,_0x6ec92){const _0x50ffea=a42_0x4ab5f9,_0x229cc4=_0x6ec92['functions'],_0x519db9=_0x6ec92['lastSync'],_0x5db29c=[],_0x5addbc=async()=>{const _0x5724f6=a42_0x18ac,_0x1e64bb=[];_0x6ec92[_0x5724f6(0x1d8)]=_0x229cc4,_0x6ec92[_0x5724f6(0x1cf)]=_0x519db9;for(const {migration:_0x1a3ae5,temporaryPath:_0x5092a7}of[..._0x5db29c][_0x5724f6(0x19b)]()){try{_0x5092a7?(await rename(_0x1a3ae5[_0x5724f6(0x1e6)],_0x5092a7),await rename(_0x5092a7,_0x1a3ae5['oldDirectoryPath'])):await rename(_0x1a3ae5['newDirectoryPath'],_0x1a3ae5[_0x5724f6(0x19d)]);}catch(_0x3103f2){_0x1e64bb[_0x5724f6(0x1c2)](new Error('Could\x20not\x20restore\x20HOOK\x20directory\x20\x22'+_0x1a3ae5['oldDirectory']+_0x5724f6(0x1ad)+_0x1a3ae5[_0x5724f6(0x179)]+_0x5724f6(0x191)+(_0x3103f2 instanceof Error?_0x3103f2['message']:String(_0x3103f2))));}}return _0x1e64bb;};try{for(const _0x47d974 of _0x2f46e7[_0x50ffea(0x1bb)]){if(_0x47d974['mode']===_0x50ffea(0x16d))await ensureParentDirectory(_0x47d974[_0x50ffea(0x1e6)]),await rename(_0x47d974[_0x50ffea(0x19d)],_0x47d974[_0x50ffea(0x1e6)]),_0x5db29c[_0x50ffea(0x1c2)]({'migration':_0x47d974});else{if(_0x47d974[_0x50ffea(0x162)]===_0x50ffea(0x188)){const _0x2b469e=join(dirname(_0x47d974[_0x50ffea(0x19d)]),_0x50ffea(0x1ac)+randomUUID());await rename(_0x47d974['oldDirectoryPath'],_0x2b469e);try{await rename(_0x2b469e,_0x47d974[_0x50ffea(0x1e6)]);}catch(_0x9d7187){try{await rename(_0x2b469e,_0x47d974[_0x50ffea(0x19d)]);}catch(_0x1a2b77){throw withRollbackErrors(_0x9d7187,'Failed\x20to\x20rename\x20HOOK\x20directory\x20\x22'+_0x47d974[_0x50ffea(0x1e1)]+'\x22\x20to\x20\x22'+_0x47d974[_0x50ffea(0x179)]+_0x50ffea(0x16b)+_0x2b469e+_0x50ffea(0x1a8),[new Error(_0x50ffea(0x185)+_0x2b469e+_0x50ffea(0x1af)+_0x47d974[_0x50ffea(0x1e1)]+_0x50ffea(0x191)+(_0x1a2b77 instanceof Error?_0x1a2b77[_0x50ffea(0x1d1)]:String(_0x1a2b77)))]);}throw _0x9d7187;}_0x5db29c[_0x50ffea(0x1c2)]({'migration':_0x47d974,'temporaryPath':_0x2b469e});}}}return _0x6ec92['functions']=_0x2f46e7[_0x50ffea(0x18d)],{'rollback':_0x5addbc};}catch(_0x58d785){const _0x21adb6=await _0x5addbc();throw withRollbackErrors(_0x58d785,'Failed\x20to\x20migrate\x20HOOK\x20directories;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.',_0x21adb6);}}async function confirmForce(){const _0x2c8a20=a42_0x4ab5f9,_0x49e1f0=createInterface({'input':process[_0x2c8a20(0x1c7)],'output':process[_0x2c8a20(0x16f)]}),_0x14fca3=await new Promise(_0x1c8bcd=>{const _0x59461d=_0x2c8a20;_0x49e1f0[_0x59461d(0x1e2)]('Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20',_0x1c8bcd);});return _0x49e1f0['close'](),['y',_0x2c8a20(0x1b7)][_0x2c8a20(0x1ae)](_0x14fca3[_0x2c8a20(0x1df)]()['toLowerCase']());}