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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/api-group.d.ts +22 -0
  3. package/lib/api/api-group.js +1 -0
  4. package/lib/api/fetch-model-list.js +1 -1
  5. package/lib/api/generate-api-file.d.ts +18 -2
  6. package/lib/api/generate-api-file.js +1 -1
  7. package/lib/api/generate-sdk-config-file.js +1 -1
  8. package/lib/api/legacy-api-file.d.ts +11 -0
  9. package/lib/api/legacy-api-file.js +1 -0
  10. package/lib/api/model-registry-file.d.ts +36 -0
  11. package/lib/api/model-registry-file.js +1 -0
  12. package/lib/api/model-registry-scaffold.d.ts +7 -0
  13. package/lib/api/model-registry-scaffold.js +1 -0
  14. package/lib/api/model-source.d.ts +6 -0
  15. package/lib/api/model-source.js +1 -0
  16. package/lib/auth/auth-server-ui.js +1 -1
  17. package/lib/auth/auth-server.js +1 -1
  18. package/lib/auth/constant.js +1 -1
  19. package/lib/auth/get-cookie.js +1 -1
  20. package/lib/auth/get-session-user.js +1 -1
  21. package/lib/auth/is-session-valid.js +1 -1
  22. package/lib/auth/login-success-html.js +1 -1
  23. package/lib/auth/logout.js +1 -1
  24. package/lib/cli-flags.js +1 -1
  25. package/lib/cli.js +1 -1
  26. package/lib/commands/api/generate.js +1 -1
  27. package/lib/commands/api/index.js +1 -1
  28. package/lib/commands/api/list.js +1 -1
  29. package/lib/commands/api/pull.js +1 -1
  30. package/lib/commands/api/shared.js +1 -1
  31. package/lib/commands/app/index.js +1 -1
  32. package/lib/commands/app/list.js +1 -1
  33. package/lib/commands/app/members-list.js +1 -1
  34. package/lib/commands/app/remote-directory.js +1 -1
  35. package/lib/commands/app/shared.js +1 -1
  36. package/lib/commands/app-config/delete.js +1 -1
  37. package/lib/commands/app-config/get.js +1 -1
  38. package/lib/commands/app-config/index.js +1 -1
  39. package/lib/commands/app-config/list.js +1 -1
  40. package/lib/commands/app-config/set.js +1 -1
  41. package/lib/commands/app-config/shared.js +1 -1
  42. package/lib/commands/auth/index.js +1 -1
  43. package/lib/commands/bff/create.js +1 -1
  44. package/lib/commands/bff/delete.js +1 -1
  45. package/lib/commands/bff/detail.js +1 -1
  46. package/lib/commands/bff/index.js +1 -1
  47. package/lib/commands/bff/list.js +1 -1
  48. package/lib/commands/bff/logs.js +1 -1
  49. package/lib/commands/bff/pull.js +1 -1
  50. package/lib/commands/bff/push.js +1 -1
  51. package/lib/commands/bff/status.js +1 -1
  52. package/lib/commands/cli-skill/index.js +1 -1
  53. package/lib/commands/cli-update.js +1 -1
  54. package/lib/commands/codegen/index.js +1 -1
  55. package/lib/commands/codegen/sdk.js +1 -1
  56. package/lib/commands/codegen/sql.js +1 -1
  57. package/lib/commands/common/app-registry.js +1 -1
  58. package/lib/commands/common/app-selector.js +1 -1
  59. package/lib/commands/common/async-task.js +1 -1
  60. package/lib/commands/common/dry-run.js +1 -1
  61. package/lib/commands/common/flags.d.ts +7 -0
  62. package/lib/commands/common/flags.js +1 -1
  63. package/lib/commands/common/local-file.js +1 -1
  64. package/lib/commands/common/validate.js +1 -1
  65. package/lib/commands/config/delete.js +1 -1
  66. package/lib/commands/config/get.js +1 -1
  67. package/lib/commands/config/index.js +1 -1
  68. package/lib/commands/config/init.js +1 -1
  69. package/lib/commands/config/list.js +1 -1
  70. package/lib/commands/config/set.js +1 -1
  71. package/lib/commands/config/shared.js +1 -1
  72. package/lib/commands/dataset/batch-design.js +1 -1
  73. package/lib/commands/dataset/business-group-update.js +1 -1
  74. package/lib/commands/dataset/business-groups.js +1 -1
  75. package/lib/commands/dataset/capability.js +1 -1
  76. package/lib/commands/dataset/cross-relation-create.d.ts +2 -0
  77. package/lib/commands/dataset/cross-relation-create.js +1 -0
  78. package/lib/commands/dataset/cross-relation-delete.d.ts +2 -0
  79. package/lib/commands/dataset/cross-relation-delete.js +1 -0
  80. package/lib/commands/dataset/cross-relation-list.d.ts +2 -0
  81. package/lib/commands/dataset/cross-relation-list.js +1 -0
  82. package/lib/commands/dataset/cross-relation-shared.d.ts +190 -0
  83. package/lib/commands/dataset/cross-relation-shared.js +1 -0
  84. package/lib/commands/dataset/cross-relation-update.d.ts +2 -0
  85. package/lib/commands/dataset/cross-relation-update.js +1 -0
  86. package/lib/commands/dataset/delete.js +1 -1
  87. package/lib/commands/dataset/detail.js +1 -1
  88. package/lib/commands/dataset/extend-update.js +1 -1
  89. package/lib/commands/dataset/field-restore.js +1 -1
  90. package/lib/commands/dataset/field-update.js +1 -1
  91. package/lib/commands/dataset/generate.js +1 -1
  92. package/lib/commands/dataset/index.js +1 -1
  93. package/lib/commands/dataset/list.js +1 -1
  94. package/lib/commands/dataset/operations.js +1 -1
  95. package/lib/commands/dataset/relation-audit.js +1 -1
  96. package/lib/commands/dataset/relation-create.js +1 -1
  97. package/lib/commands/dataset/relation-delete.js +1 -1
  98. package/lib/commands/dataset/relation-shared.js +1 -1
  99. package/lib/commands/dataset/relation-update.js +1 -1
  100. package/lib/commands/dataset/relations.js +1 -1
  101. package/lib/commands/dataset/rename.js +1 -1
  102. package/lib/commands/dataset/restore.js +1 -1
  103. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  104. package/lib/commands/db/analysis-batching.js +1 -1
  105. package/lib/commands/db/analyze-batch-plan.js +1 -1
  106. package/lib/commands/db/analyze-cancel.js +1 -1
  107. package/lib/commands/db/analyze-start.js +1 -1
  108. package/lib/commands/db/analyze-status.js +1 -1
  109. package/lib/commands/db/create.js +1 -1
  110. package/lib/commands/db/delete.js +1 -1
  111. package/lib/commands/db/detail.js +1 -1
  112. package/lib/commands/db/diff-refresh-start.js +1 -1
  113. package/lib/commands/db/diff-refresh-status.js +1 -1
  114. package/lib/commands/db/diff.js +1 -1
  115. package/lib/commands/db/index.js +1 -1
  116. package/lib/commands/db/list.js +1 -1
  117. package/lib/commands/db/shared.js +1 -1
  118. package/lib/commands/db/table-diff-shared.js +1 -1
  119. package/lib/commands/db/tables.js +1 -1
  120. package/lib/commands/db/test.js +1 -1
  121. package/lib/commands/db/update.js +1 -1
  122. package/lib/commands/deployment/index.js +1 -1
  123. package/lib/commands/deployment/sync-all.js +1 -1
  124. package/lib/commands/deployment/sync-jobs.js +1 -1
  125. package/lib/commands/deployment/sync-status.js +1 -1
  126. package/lib/commands/doctor.js +1 -1
  127. package/lib/commands/file/index.js +1 -1
  128. package/lib/commands/flow/create.js +1 -1
  129. package/lib/commands/flow/detail.js +1 -1
  130. package/lib/commands/flow/index.js +1 -1
  131. package/lib/commands/flow/list.js +1 -1
  132. package/lib/commands/flow/publish.js +1 -1
  133. package/lib/commands/flow/runtime-resources-shared.js +1 -1
  134. package/lib/commands/flow/runtime-role-list.js +1 -1
  135. package/lib/commands/flow/runtime-role-user-list.js +1 -1
  136. package/lib/commands/flow/runtime-user-search.js +1 -1
  137. package/lib/commands/flow/shared.js +1 -1
  138. package/lib/commands/flow/update.js +1 -1
  139. package/lib/commands/flow/validate.js +1 -1
  140. package/lib/commands/instant-api-policy/current.js +1 -1
  141. package/lib/commands/instant-api-policy/index.js +1 -1
  142. package/lib/commands/instant-api-policy/init.js +1 -1
  143. package/lib/commands/instant-api-policy/publish.js +1 -1
  144. package/lib/commands/instant-api-policy/pull.js +1 -1
  145. package/lib/commands/instant-api-policy/revision.js +1 -1
  146. package/lib/commands/instant-api-policy/revisions.js +1 -1
  147. package/lib/commands/instant-api-policy/rollback.js +1 -1
  148. package/lib/commands/instant-api-policy/shared.js +1 -1
  149. package/lib/commands/instant-api-policy/validate.js +1 -1
  150. package/lib/commands/issue/index.js +1 -1
  151. package/lib/commands/issue/nudge.js +1 -1
  152. package/lib/commands/issue/report.js +1 -1
  153. package/lib/commands/issue/shared.js +1 -1
  154. package/lib/commands/kb/create.js +1 -1
  155. package/lib/commands/kb/delete.js +1 -1
  156. package/lib/commands/kb/detail.js +1 -1
  157. package/lib/commands/kb/index.js +1 -1
  158. package/lib/commands/kb/list.js +1 -1
  159. package/lib/commands/kb/search.js +1 -1
  160. package/lib/commands/kb/shared.js +1 -1
  161. package/lib/commands/kb/update.js +1 -1
  162. package/lib/commands/logs/index.js +1 -1
  163. package/lib/commands/menu/asset-update.js +1 -1
  164. package/lib/commands/menu/delete.js +1 -1
  165. package/lib/commands/menu/external-link-create.js +1 -1
  166. package/lib/commands/menu/external-link-update.js +1 -1
  167. package/lib/commands/menu/group-create.js +1 -1
  168. package/lib/commands/menu/group-update.js +1 -1
  169. package/lib/commands/menu/index.js +1 -1
  170. package/lib/commands/menu/list.js +1 -1
  171. package/lib/commands/menu/move.js +1 -1
  172. package/lib/commands/menu/regroup-start.js +1 -1
  173. package/lib/commands/menu/rename.js +1 -1
  174. package/lib/commands/menu/shared/compare-table.js +1 -1
  175. package/lib/commands/menu/shared/delete-plan.js +1 -1
  176. package/lib/commands/menu/shared/facts.js +1 -1
  177. package/lib/commands/menu/shared/index.js +1 -1
  178. package/lib/commands/menu/shared/inquirer.js +1 -1
  179. package/lib/commands/menu/shared/local-pages.js +1 -1
  180. package/lib/commands/menu/shared/logic.js +1 -1
  181. package/lib/commands/menu/shared/mutations.js +1 -1
  182. package/lib/commands/menu/shared/service.js +1 -1
  183. package/lib/commands/menu/shared/sync-core.js +1 -1
  184. package/lib/commands/menu/shared/update-core.js +1 -1
  185. package/lib/commands/menu/shared/valid-url.js +1 -1
  186. package/lib/commands/menu/sync.js +1 -1
  187. package/lib/commands/menu/visibility-update.js +1 -1
  188. package/lib/commands/notification/config-create.js +1 -1
  189. package/lib/commands/notification/config-delete.js +1 -1
  190. package/lib/commands/notification/config-list.js +1 -1
  191. package/lib/commands/notification/config-update.js +1 -1
  192. package/lib/commands/notification/index.js +1 -1
  193. package/lib/commands/notification/shared.js +1 -1
  194. package/lib/commands/ocr/index.js +1 -1
  195. package/lib/commands/page/create.js +1 -1
  196. package/lib/commands/page/custom/detail.js +1 -1
  197. package/lib/commands/page/custom/list.js +1 -1
  198. package/lib/commands/page/custom/publish.js +1 -1
  199. package/lib/commands/page/custom/shared.js +1 -1
  200. package/lib/commands/page/custom/syntax.js +1 -1
  201. package/lib/commands/page/custom/update.js +1 -1
  202. package/lib/commands/page/data-list-status.js +1 -1
  203. package/lib/commands/page/generate-start.js +1 -1
  204. package/lib/commands/page/generate-status.js +1 -1
  205. package/lib/commands/page/index.js +1 -1
  206. package/lib/commands/page/pull.js +1 -1
  207. package/lib/commands/page/push.js +1 -1
  208. package/lib/commands/page/relation-audit.js +1 -1
  209. package/lib/commands/page/restore.js +1 -1
  210. package/lib/commands/page/shared.js +1 -1
  211. package/lib/commands/page/sync.js +1 -1
  212. package/lib/commands/project/api-architecture-upgrade.d.ts +28 -0
  213. package/lib/commands/project/api-architecture-upgrade.js +1 -0
  214. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  215. package/lib/commands/project/create/format-elapsed.js +1 -1
  216. package/lib/commands/project/create/main.js +1 -1
  217. package/lib/commands/project/create/materialize-project-template.js +1 -1
  218. package/lib/commands/project/create/project-name.js +1 -1
  219. package/lib/commands/project/create/project-template-archive.js +1 -1
  220. package/lib/commands/project/create/project-template-path.js +1 -1
  221. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  222. package/lib/commands/project/create/use-format-code.js +1 -1
  223. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  224. package/lib/commands/project/domain-routing-sync.js +1 -1
  225. package/lib/commands/project/index.js +1 -1
  226. package/lib/commands/project/upgrade.d.ts +30 -1
  227. package/lib/commands/project/upgrade.js +1 -1
  228. package/lib/commands/registry.js +1 -1
  229. package/lib/commands/role/delete.js +1 -1
  230. package/lib/commands/role/detail.js +1 -1
  231. package/lib/commands/role/index.js +1 -1
  232. package/lib/commands/role/list.js +1 -1
  233. package/lib/commands/role/shared.js +1 -1
  234. package/lib/commands/role/update.js +1 -1
  235. package/lib/commands/role/user-add.js +1 -1
  236. package/lib/commands/role/user-remove.js +1 -1
  237. package/lib/commands/role/user-resolve.js +1 -1
  238. package/lib/commands/rule/get.js +1 -1
  239. package/lib/commands/rule/index.js +1 -1
  240. package/lib/commands/rule/list.js +1 -1
  241. package/lib/commands/rule/set.js +1 -1
  242. package/lib/commands/rule/shared.js +1 -1
  243. package/lib/commands/run/index.js +1 -1
  244. package/lib/commands/schema.js +1 -1
  245. package/lib/commands/sql/create.js +1 -1
  246. package/lib/commands/sql/delete.js +1 -1
  247. package/lib/commands/sql/detail.js +1 -1
  248. package/lib/commands/sql/exec.js +1 -1
  249. package/lib/commands/sql/index.js +1 -1
  250. package/lib/commands/sql/list.js +1 -1
  251. package/lib/commands/sql/pull.js +1 -1
  252. package/lib/commands/sql/push.js +1 -1
  253. package/lib/commands/sql/shared.js +1 -1
  254. package/lib/commands/sql/status.js +1 -1
  255. package/lib/commands/sql/validate.js +1 -1
  256. package/lib/commands/task/index.js +1 -1
  257. package/lib/commands/task/status.js +1 -1
  258. package/lib/commands/tenant/index.js +1 -1
  259. package/lib/commands/tenant/members-list.js +1 -1
  260. package/lib/commands/tenant/shared.js +1 -1
  261. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  262. package/lib/commands/user-account/index.js +1 -1
  263. package/lib/commands/workspace/add.js +1 -1
  264. package/lib/commands/workspace/index.js +1 -1
  265. package/lib/commands/workspace/remove.js +1 -1
  266. package/lib/config/domain-config.js +1 -1
  267. package/lib/config/project-domain-routing.js +1 -1
  268. package/lib/config/region-config.js +1 -1
  269. package/lib/config/schema.js +1 -1
  270. package/lib/constant/cdn.js +1 -1
  271. package/lib/constant/cli.js +1 -1
  272. package/lib/constant/defaults.js +1 -1
  273. package/lib/constant/domain.js +1 -1
  274. package/lib/constant/env.js +1 -1
  275. package/lib/constant/output.js +1 -1
  276. package/lib/constant/paths.js +1 -1
  277. package/lib/constant/region.js +1 -1
  278. package/lib/constant/risk.js +1 -1
  279. package/lib/constant/routing-profile.js +1 -1
  280. package/lib/context/app-resolver.d.ts +2 -0
  281. package/lib/context/app-resolver.js +1 -1
  282. package/lib/context/auth-resolver.js +1 -1
  283. package/lib/context/config-loader.js +1 -1
  284. package/lib/context.d.ts +2 -1
  285. package/lib/context.js +1 -1
  286. package/lib/core/alias-resolver.d.ts +13 -17
  287. package/lib/core/alias-resolver.js +1 -1
  288. package/lib/core/api-client.d.ts +6 -0
  289. package/lib/core/api-client.js +1 -1
  290. package/lib/core/bff/config.js +1 -1
  291. package/lib/core/bff/file-system.js +1 -1
  292. package/lib/core/bff/hash.js +1 -1
  293. package/lib/core/bff/hook-directory.js +1 -1
  294. package/lib/core/bff/lock.js +1 -1
  295. package/lib/core/bff/utils.js +1 -1
  296. package/lib/core/cross-db-relation.d.ts +41 -0
  297. package/lib/core/cross-db-relation.js +1 -0
  298. package/lib/core/db-resolver.js +1 -1
  299. package/lib/core/flow-config.js +1 -1
  300. package/lib/core/instant-api-policy/config.js +1 -1
  301. package/lib/core/kb-search-client.js +1 -1
  302. package/lib/core/page/file-system.js +1 -1
  303. package/lib/core/page/hash.js +1 -1
  304. package/lib/core/page/lock.js +1 -1
  305. package/lib/core/page/lr-smart-jsx.js +1 -1
  306. package/lib/core/sql-index-auditor.js +1 -1
  307. package/lib/core/sql-sync/config.js +1 -1
  308. package/lib/core/sql-sync/file-system.js +1 -1
  309. package/lib/core/sql-sync/hash.js +1 -1
  310. package/lib/core/sql-sync/lock.js +1 -1
  311. package/lib/core/sql-sync/utils.js +1 -1
  312. package/lib/core/sql-validator.js +1 -1
  313. package/lib/errors.js +1 -1
  314. package/lib/framework/build-all-flags.js +1 -1
  315. package/lib/framework/error-output.js +1 -1
  316. package/lib/framework/explicit-yes.js +1 -1
  317. package/lib/framework/flags.js +1 -1
  318. package/lib/framework/help.js +1 -1
  319. package/lib/framework/index.js +1 -1
  320. package/lib/framework/output.js +1 -1
  321. package/lib/framework/response.js +1 -1
  322. package/lib/framework/runner-alias.d.ts +1 -1
  323. package/lib/framework/runner-alias.js +1 -1
  324. package/lib/framework/runner.js +1 -1
  325. package/lib/framework/schema-export.js +1 -1
  326. package/lib/framework/supported-flags.js +1 -1
  327. package/lib/framework/types.js +1 -1
  328. package/lib/generated/build-info.d.ts +4 -4
  329. package/lib/generated/build-info.js +1 -1
  330. package/lib/generated/official-routing.js +1 -1
  331. package/lib/generated/routing-contract.js +1 -1
  332. package/lib/help.js +1 -1
  333. package/lib/postinstall.js +1 -1
  334. package/lib/runtime/confirmation.js +1 -1
  335. package/lib/runtime/event.js +1 -1
  336. package/lib/runtime/index.js +1 -1
  337. package/lib/runtime/queue.js +1 -1
  338. package/lib/runtime/resolve.js +1 -1
  339. package/lib/skills/builtin-skill.js +1 -1
  340. package/lib/skills/main.js +1 -1
  341. package/lib/skills/npx-skills-add.d.ts +0 -10
  342. package/lib/skills/npx-skills-add.js +1 -1
  343. package/lib/skills/skill-presence.js +1 -1
  344. package/lib/telemetry/cli-command-trace.js +1 -1
  345. package/lib/telemetry/cli-help-trace.js +1 -1
  346. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  347. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  348. package/lib/telemetry/send-cli-trace-log.js +1 -1
  349. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  350. package/lib/types/index.d.ts +11 -1
  351. package/lib/utils/ai_config.js +1 -1
  352. package/lib/utils/apply-jq-filter.js +1 -1
  353. package/lib/utils/cdn-config.js +1 -1
  354. package/lib/utils/check-sdk-version.js +1 -1
  355. package/lib/utils/cli-version-check.js +1 -1
  356. package/lib/utils/cli-version-policy.d.ts +12 -0
  357. package/lib/utils/cli-version-policy.js +1 -1
  358. package/lib/utils/config.js +1 -1
  359. package/lib/utils/entity-with-id.js +1 -1
  360. package/lib/utils/file-utils.js +1 -1
  361. package/lib/utils/guides-cdn.js +1 -1
  362. package/lib/utils/http-client.js +1 -1
  363. package/lib/utils/is-non-interactive.js +1 -1
  364. package/lib/utils/logger.js +1 -1
  365. package/lib/utils/params.js +1 -1
  366. package/lib/utils/platform.js +1 -1
  367. package/lib/utils/sleep.js +1 -1
  368. package/lib/utils/template-replacer.js +1 -1
  369. package/lib/utils/update-notice.js +1 -1
  370. package/lib/utils/version.js +1 -1
  371. package/lib/utils/with-active-cookie.js +1 -1
  372. package/lib/utils/write-cli-side-channel.js +1 -1
  373. package/package.json +4 -1
  374. package/skills/rabetbase/SKILL.md +10 -6
  375. package/skills/rabetbase/guides/sdk-client-generation.md +112 -61
  376. package/skills/rabetbase/guides/typescript-sdk.md +9 -0
  377. package/skills/rabetbase/references/rabetbase-api-pull.md +30 -19
  378. package/skills/rabetbase/references/rabetbase-app-list.md +1 -1
  379. package/skills/rabetbase/references/rabetbase-config.md +2 -1
  380. package/skills/rabetbase/references/rabetbase-dataset-cross-relations.md +60 -0
  381. package/skills/rabetbase/references/rabetbase-project-create.md +3 -3
  382. package/skills/rabetbase/references/rabetbase-project-upgrade.md +24 -13
  383. package/skills/rabetbase.manifest.json +4 -3
  384. package/templates/README.md +16 -4
  385. package/templates/generate-api/model-runtime.ts.tpl +101 -0
  386. package/templates/generate-api/profile-api.ts.tpl +21 -0
  387. package/templates/generate-api/profile-client.ts.tpl +14 -0
@@ -1 +1 @@
1
- function a29_0x1a98(){const _0x680690=['slice','6255iEnGEW','setEncoding','448180pVxUvh','before','args','url','method','env','Environment\x20variable\x20is\x20not\x20set:\x20','Value\x20file\x20is\x20not\x20readable:\x20','length','from-env','Runtime\x20app-config\x20key','reveal','value','kind','key:\x20','stdin','data','name','boolean','appCode','argument','str','Missing\x20app-config\x20value\x20source.','846VHhxlo','push','3356223lUlqgn','utf8','3818576lHpWJZ','App\x20config\x20value\x20source\x20is\x20ambiguous.','gmtModified','App\x20config\x20tags\x20length\x20cannot\x20exceed\x2032.','Use\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','string','Use\x20exactly\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','validation','5556cHzlDy','6670195xCCQZo','trim','error','gmtCreate','path','App\x20config\x20key\x20length\x20cannot\x20exceed\x20256.','Reveal\x20the\x20sensitive\x20value\x20for\x20this\x20single\x20key','bool','after','flag','tags','Config\x20tags\x20for\x20filtering/display\x20metadata','Value\x20was\x20provided\x20as\x20a\x20command\x20argument;\x20prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','key','1294484bEzDJN','appCode:\x20','Failed\x20to\x20','Missing\x20app-config\x20key.','7053904skwplz','1cJxrOI','file','Read\x20config\x20value\x20from\x20the\x20named\x20environment\x20variable'];a29_0x1a98=function(){return _0x680690;};return a29_0x1a98();}const a29_0x45e249=a29_0x4c6c;(function(_0x5a5c31,_0x2d8f95){const _0x5c8464=a29_0x4c6c,_0x1b2ede=_0x5a5c31();while(!![]){try{const _0x47f72b=parseInt(_0x5c8464(0x6f))/0x1*(-parseInt(_0x5c8464(0x6a))/0x2)+parseInt(_0x5c8464(0x8e))/0x3+-parseInt(_0x5c8464(0x90))/0x4+-parseInt(_0x5c8464(0x73))/0x5*(parseInt(_0x5c8464(0x98))/0x6)+-parseInt(_0x5c8464(0x99))/0x7+-parseInt(_0x5c8464(0x6e))/0x8+-parseInt(_0x5c8464(0x8c))/0x9*(-parseInt(_0x5c8464(0x75))/0xa);if(_0x47f72b===_0x2d8f95)break;else _0x1b2ede['push'](_0x1b2ede['shift']());}catch(_0xc7f908){_0x1b2ede['push'](_0x1b2ede['shift']());}}}(a29_0x1a98,0xb3dba));import{access,readFile}from'node:fs/promises';function a29_0x4c6c(_0x877266,_0x3fc9d1){_0x877266=_0x877266-0x66;const _0x1a98b2=a29_0x1a98();let _0x4c6c2b=_0x1a98b2[_0x877266];return _0x4c6c2b;}import{CliErrors}from'../../errors.js';export const KEY_ARG={'name':a29_0x45e249(0x69),'description':a29_0x45e249(0x7f),'required':!![]};export const VALUE_ARG={'name':'value','description':'Sensitive\x20config\x20value.\x20Prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','required':![]};export const TAGS_FLAG={'name':'tags','type':a29_0x45e249(0x95),'description':a29_0x45e249(0x67)};export const STDIN_FLAG={'name':a29_0x45e249(0x84),'type':'boolean','description':'Read\x20config\x20value\x20from\x20stdin','default':![]};export const FROM_ENV_FLAG={'name':a29_0x45e249(0x7e),'type':a29_0x45e249(0x95),'description':a29_0x45e249(0x71)};export const REVEAL_FLAG={'name':a29_0x45e249(0x80),'type':a29_0x45e249(0x87),'description':a29_0x45e249(0x9f),'default':![]};export function readKeyArg(_0x19096a){const _0x2104bc=a29_0x45e249,_0x64540=_0x19096a[_0x2104bc(0x77)][0x0]?.['trim']()??'';return validateKey(_0x64540),_0x64540;}export function readOptionalTags(_0x4e53a7){const _0x2647ae=a29_0x45e249,_0x272566=_0x4e53a7['str'](_0x2647ae(0x66))[_0x2647ae(0x9a)]();if(!_0x272566)return undefined;if(_0x272566[_0x2647ae(0x7d)]>0x20)throw CliErrors[_0x2647ae(0x97)](_0x2647ae(0x93));return _0x272566;}export function validateKey(_0x41c0de){const _0x21618c=a29_0x45e249;if(!_0x41c0de)throw CliErrors['validation'](_0x21618c(0x6d));if(_0x41c0de['length']>0x100)throw CliErrors['validation'](_0x21618c(0x9e));}export function projectAppConfig(_0x4170f8,_0x33a6c7){const _0x3820ce=a29_0x45e249,_0x39620f=_0x4170f8['value']!==undefined&&_0x4170f8[_0x3820ce(0x81)]!==null&&_0x4170f8[_0x3820ce(0x81)]!=='',_0x1ad027={'appCode':_0x4170f8[_0x3820ce(0x88)],'key':_0x4170f8[_0x3820ce(0x69)],'tags':_0x4170f8[_0x3820ce(0x66)]??undefined,'hasValue':_0x39620f,'valueRedacted':_0x39620f&&!_0x33a6c7?.[_0x3820ce(0x80)],'gmtCreate':_0x4170f8[_0x3820ce(0x9c)],'gmtModified':_0x4170f8[_0x3820ce(0x92)]};return _0x33a6c7?.[_0x3820ce(0x80)]&&(_0x1ad027[_0x3820ce(0x81)]=_0x4170f8['value']??'',_0x1ad027['valueRedacted']=![]),_0x1ad027;}export function plannedAppConfig(_0x573291){const _0x20dc55=a29_0x45e249,_0xca0296=_0x573291['hasValue']??!![];return{'appCode':_0x573291['appCode'],'key':_0x573291['key'],'tags':_0x573291[_0x20dc55(0x66)]??undefined,'hasValue':_0xca0296,'valueRedacted':_0xca0296};}export function buildMutationData(_0x510138){const _0x346c15=a29_0x45e249;return{'operation':_0x510138['operation'],'selector':{'appCode':_0x510138[_0x346c15(0x88)],'key':_0x510138[_0x346c15(0x69)]},'before':_0x510138[_0x346c15(0x76)],'after':_0x510138[_0x346c15(0xa1)],'dryRun':_0x510138['dryRun'],'warnings':_0x510138['warnings']??[]};}export async function withAppConfigApiBoundary(_0x339870,_0x42b82e,_0x1980ba){const _0x31e049=a29_0x45e249;try{return await _0x1980ba();}catch{const _0x500432=[_0x31e049(0x6b)+_0x42b82e[_0x31e049(0x88)]];if(_0x42b82e['key'])_0x500432[_0x31e049(0x8d)](_0x31e049(0x83)+_0x42b82e[_0x31e049(0x69)]);_0x500432[_0x31e049(0x8d)]('value\x20is\x20redacted');throw CliErrors['apiError'](_0x31e049(0x6c)+_0x339870+'\x20app\x20config.',_0x500432['join'](';\x20')+'.');}}export function asAppConfigDryRunResult(_0x40454e,_0x187093){const _0x511483=a29_0x45e249;return Object['defineProperties'](_0x40454e,{'method':{'value':_0x187093[_0x511483(0x79)],'enumerable':![]},'url':{'value':_0x187093[_0x511483(0x78)],'enumerable':![]}});}export function assertSingleValueSource(_0x46530c){const _0x5dadbf=a29_0x45e249,_0x2cb9f5=[];_0x46530c[_0x5dadbf(0x77)]['length']>0x1&&_0x2cb9f5['push']({'kind':_0x5dadbf(0x89),'value':_0x46530c[_0x5dadbf(0x77)][_0x5dadbf(0x72)](0x1)['join']('\x20')});const _0x591f93=_0x46530c[_0x5dadbf(0xa2)](_0x5dadbf(0x81));_0x591f93!==undefined&&_0x591f93!==null&&_0x2cb9f5[_0x5dadbf(0x8d)]({'kind':_0x5dadbf(0x89),'value':String(_0x591f93)});_0x46530c[_0x5dadbf(0xa0)](_0x5dadbf(0x84))&&_0x2cb9f5[_0x5dadbf(0x8d)]({'kind':'stdin'});const _0x7e1b49=_0x46530c[_0x5dadbf(0x8a)]('from-env')['trim']();_0x7e1b49&&_0x2cb9f5[_0x5dadbf(0x8d)]({'kind':_0x5dadbf(0x7a),'name':_0x7e1b49});const _0x435f33=_0x46530c['str']('file')[_0x5dadbf(0x9a)]();_0x435f33&&_0x2cb9f5[_0x5dadbf(0x8d)]({'kind':_0x5dadbf(0x70),'path':_0x435f33});if(_0x2cb9f5[_0x5dadbf(0x7d)]===0x0)throw CliErrors[_0x5dadbf(0x97)](_0x5dadbf(0x8b),_0x5dadbf(0x94));if(_0x2cb9f5['length']>0x1)throw CliErrors[_0x5dadbf(0x97)](_0x5dadbf(0x91),_0x5dadbf(0x96));return _0x2cb9f5[0x0];}export async function assertValueSourceReadable(_0x5341c3){const _0x2e8686=a29_0x45e249;if(_0x5341c3[_0x2e8686(0x82)]==='env'&&!(_0x5341c3[_0x2e8686(0x86)]in process.env))throw CliErrors['validation'](_0x2e8686(0x7b)+_0x5341c3[_0x2e8686(0x86)]);if(_0x5341c3['kind']==='file')try{await access(_0x5341c3['path']);}catch{throw CliErrors[_0x2e8686(0x97)](_0x2e8686(0x7c)+_0x5341c3[_0x2e8686(0x9d)]);}}export async function readAppConfigValue(_0x54abba){const _0x187ef3=a29_0x45e249,_0xf420c4=assertSingleValueSource(_0x54abba),_0x2f1106=[];if(_0xf420c4[_0x187ef3(0x82)]===_0x187ef3(0x89))return _0x2f1106[_0x187ef3(0x8d)](_0x187ef3(0x68)),{'value':_0xf420c4[_0x187ef3(0x81)]??'','source':_0xf420c4[_0x187ef3(0x82)],'warnings':_0x2f1106};if(_0xf420c4[_0x187ef3(0x82)]===_0x187ef3(0x84))return{'value':await readStdin(),'source':_0xf420c4[_0x187ef3(0x82)],'warnings':_0x2f1106};if(_0xf420c4['kind']==='env'){if(!(_0xf420c4[_0x187ef3(0x86)]in process.env))throw CliErrors[_0x187ef3(0x97)](_0x187ef3(0x7b)+_0xf420c4[_0x187ef3(0x86)]);return{'value':process.env[_0xf420c4.name]??'','source':_0xf420c4[_0x187ef3(0x82)],'warnings':_0x2f1106};}return{'value':await readFile(_0xf420c4['path'],_0x187ef3(0x8f)),'source':_0xf420c4[_0x187ef3(0x82)],'warnings':_0x2f1106};}function readStdin(){return new Promise((_0x1a9a49,_0x2f7263)=>{const _0x452d36=a29_0x4c6c;let _0xc59609='';process[_0x452d36(0x84)][_0x452d36(0x74)](_0x452d36(0x8f)),process[_0x452d36(0x84)]['on'](_0x452d36(0x85),_0x3ad8cc=>{_0xc59609+=_0x3ad8cc;}),process[_0x452d36(0x84)]['once']('end',()=>_0x1a9a49(_0xc59609)),process['stdin']['once'](_0x452d36(0x9b),_0x2f7263);});}
1
+ const a34_0x198d66=a34_0xa516;(function(_0x1438b9,_0x5bd0b9){const _0x4d0840=a34_0xa516,_0x232e53=_0x1438b9();while(!![]){try{const _0xd4a480=-parseInt(_0x4d0840(0x120))/0x1+-parseInt(_0x4d0840(0xf3))/0x2*(-parseInt(_0x4d0840(0x108))/0x3)+-parseInt(_0x4d0840(0x109))/0x4*(parseInt(_0x4d0840(0x106))/0x5)+-parseInt(_0x4d0840(0x11b))/0x6+-parseInt(_0x4d0840(0x124))/0x7+parseInt(_0x4d0840(0xfe))/0x8*(parseInt(_0x4d0840(0xf8))/0x9)+parseInt(_0x4d0840(0x10a))/0xa;if(_0xd4a480===_0x5bd0b9)break;else _0x232e53['push'](_0x232e53['shift']());}catch(_0x4058f4){_0x232e53['push'](_0x232e53['shift']());}}}(a34_0x169c,0xd402a));import{access,readFile}from'node:fs/promises';import{CliErrors}from'../../errors.js';export const KEY_ARG={'name':'key','description':a34_0x198d66(0x11f),'required':!![]};export const VALUE_ARG={'name':a34_0x198d66(0xf6),'description':a34_0x198d66(0x12c),'required':![]};export const TAGS_FLAG={'name':a34_0x198d66(0x118),'type':'string','description':'Config\x20tags\x20for\x20filtering/display\x20metadata'};export const STDIN_FLAG={'name':'stdin','type':'boolean','description':a34_0x198d66(0x12a),'default':![]};export const FROM_ENV_FLAG={'name':a34_0x198d66(0x100),'type':'string','description':a34_0x198d66(0x113)};export const REVEAL_FLAG={'name':a34_0x198d66(0x102),'type':a34_0x198d66(0x105),'description':a34_0x198d66(0x12f),'default':![]};export function readKeyArg(_0x4e422b){const _0x9a98fd=a34_0x198d66,_0x3a9bf7=_0x4e422b[_0x9a98fd(0xfb)][0x0]?.['trim']()??'';return validateKey(_0x3a9bf7),_0x3a9bf7;}export function readOptionalTags(_0x2d147d){const _0x1ac370=a34_0x198d66,_0x404b30=_0x2d147d['str'](_0x1ac370(0x118))['trim']();if(!_0x404b30)return undefined;if(_0x404b30[_0x1ac370(0x10e)]>0x20)throw CliErrors[_0x1ac370(0x11e)](_0x1ac370(0x126));return _0x404b30;}export function validateKey(_0x495cb3){const _0x381dda=a34_0x198d66;if(!_0x495cb3)throw CliErrors[_0x381dda(0x11e)]('Missing\x20app-config\x20key.');if(_0x495cb3[_0x381dda(0x10e)]>0x100)throw CliErrors['validation'](_0x381dda(0xfa));}function a34_0xa516(_0x4cad98,_0x3bdd0f){_0x4cad98=_0x4cad98-0xf1;const _0x169ce9=a34_0x169c();let _0xa516d8=_0x169ce9[_0x4cad98];return _0xa516d8;}export function projectAppConfig(_0xcbb3de,_0xb3425c){const _0x4cb01d=a34_0x198d66,_0x26e407=_0xcbb3de[_0x4cb01d(0xf6)]!==undefined&&_0xcbb3de['value']!==null&&_0xcbb3de['value']!=='',_0x5e204c={'appCode':_0xcbb3de[_0x4cb01d(0x114)],'key':_0xcbb3de[_0x4cb01d(0x12b)],'tags':_0xcbb3de[_0x4cb01d(0x118)]??undefined,'hasValue':_0x26e407,'valueRedacted':_0x26e407&&!_0xb3425c?.['reveal'],'gmtCreate':_0xcbb3de[_0x4cb01d(0x121)],'gmtModified':_0xcbb3de[_0x4cb01d(0x11a)]};return _0xb3425c?.[_0x4cb01d(0x102)]&&(_0x5e204c[_0x4cb01d(0xf6)]=_0xcbb3de['value']??'',_0x5e204c[_0x4cb01d(0x123)]=![]),_0x5e204c;}export function plannedAppConfig(_0xb6f99e){const _0x4f2fb8=a34_0x198d66,_0xd771ab=_0xb6f99e['hasValue']??!![];return{'appCode':_0xb6f99e['appCode'],'key':_0xb6f99e['key'],'tags':_0xb6f99e[_0x4f2fb8(0x118)]??undefined,'hasValue':_0xd771ab,'valueRedacted':_0xd771ab};}function a34_0x169c(){const _0x5d41d5=['18NryfqF','value\x20is\x20redacted','App\x20config\x20key\x20length\x20cannot\x20exceed\x20256.','args','file','error','4328320jtUkzL','apiError','from-env','App\x20config\x20value\x20source\x20is\x20ambiguous.','reveal','after','slice','boolean','34795AlHhTa','env','3zYFLIF','332OIEMYZ','21207380HSFJar','utf8','defineProperties','method','length','warnings','Value\x20file\x20is\x20not\x20readable:\x20','key:\x20','Environment\x20variable\x20is\x20not\x20set:\x20','Read\x20config\x20value\x20from\x20the\x20named\x20environment\x20variable','appCode','end','stdin','name','tags','url','gmtModified','7766214bflrkc','kind','push','validation','Runtime\x20app-config\x20key','922225ABpOhF','gmtCreate','path','valueRedacted','8355158XCudCO','dryRun','App\x20config\x20tags\x20length\x20cannot\x20exceed\x2032.','Use\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.','once','appCode:\x20','Read\x20config\x20value\x20from\x20stdin','key','Sensitive\x20config\x20value.\x20Prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.','\x20app\x20config.','argument','Reveal\x20the\x20sensitive\x20value\x20for\x20this\x20single\x20key','trim','str','3306722PQkPBl','bool','join','value','before'];a34_0x169c=function(){return _0x5d41d5;};return a34_0x169c();}export function buildMutationData(_0x23a2c4){const _0x187c45=a34_0x198d66;return{'operation':_0x23a2c4['operation'],'selector':{'appCode':_0x23a2c4[_0x187c45(0x114)],'key':_0x23a2c4[_0x187c45(0x12b)]},'before':_0x23a2c4[_0x187c45(0xf7)],'after':_0x23a2c4[_0x187c45(0x103)],'dryRun':_0x23a2c4[_0x187c45(0x125)],'warnings':_0x23a2c4[_0x187c45(0x10f)]??[]};}export async function withAppConfigApiBoundary(_0x13fc24,_0x39e8d5,_0x36b4be){const _0x2d0d1d=a34_0x198d66;try{return await _0x36b4be();}catch{const _0xd8ab75=[_0x2d0d1d(0x129)+_0x39e8d5[_0x2d0d1d(0x114)]];if(_0x39e8d5['key'])_0xd8ab75[_0x2d0d1d(0x11d)](_0x2d0d1d(0x111)+_0x39e8d5['key']);_0xd8ab75[_0x2d0d1d(0x11d)](_0x2d0d1d(0xf9));throw CliErrors[_0x2d0d1d(0xff)]('Failed\x20to\x20'+_0x13fc24+_0x2d0d1d(0x12d),_0xd8ab75[_0x2d0d1d(0xf5)](';\x20')+'.');}}export function asAppConfigDryRunResult(_0x22d16c,_0x58059f){const _0x4cc802=a34_0x198d66;return Object[_0x4cc802(0x10c)](_0x22d16c,{'method':{'value':_0x58059f[_0x4cc802(0x10d)],'enumerable':![]},'url':{'value':_0x58059f[_0x4cc802(0x119)],'enumerable':![]}});}export function assertSingleValueSource(_0x9762d3){const _0x3eac99=a34_0x198d66,_0x2356aa=[];_0x9762d3['args'][_0x3eac99(0x10e)]>0x1&&_0x2356aa[_0x3eac99(0x11d)]({'kind':'argument','value':_0x9762d3['args'][_0x3eac99(0x104)](0x1)['join']('\x20')});const _0x3e1454=_0x9762d3['flag'](_0x3eac99(0xf6));_0x3e1454!==undefined&&_0x3e1454!==null&&_0x2356aa[_0x3eac99(0x11d)]({'kind':'argument','value':String(_0x3e1454)});_0x9762d3[_0x3eac99(0xf4)](_0x3eac99(0x116))&&_0x2356aa[_0x3eac99(0x11d)]({'kind':_0x3eac99(0x116)});const _0x26e183=_0x9762d3[_0x3eac99(0xf2)](_0x3eac99(0x100))['trim']();_0x26e183&&_0x2356aa['push']({'kind':_0x3eac99(0x107),'name':_0x26e183});const _0x17e764=_0x9762d3[_0x3eac99(0xf2)](_0x3eac99(0xfc))[_0x3eac99(0xf1)]();_0x17e764&&_0x2356aa[_0x3eac99(0x11d)]({'kind':'file','path':_0x17e764});if(_0x2356aa[_0x3eac99(0x10e)]===0x0)throw CliErrors['validation']('Missing\x20app-config\x20value\x20source.',_0x3eac99(0x127));if(_0x2356aa[_0x3eac99(0x10e)]>0x1)throw CliErrors[_0x3eac99(0x11e)](_0x3eac99(0x101),'Use\x20exactly\x20one\x20of:\x20positional\x20<value>,\x20--stdin,\x20--from-env\x20<NAME>,\x20or\x20--file\x20<path>.');return _0x2356aa[0x0];}export async function assertValueSourceReadable(_0x1e456c){const _0x18e183=a34_0x198d66;if(_0x1e456c[_0x18e183(0x11c)]===_0x18e183(0x107)&&!(_0x1e456c[_0x18e183(0x117)]in process.env))throw CliErrors[_0x18e183(0x11e)](_0x18e183(0x112)+_0x1e456c[_0x18e183(0x117)]);if(_0x1e456c['kind']===_0x18e183(0xfc))try{await access(_0x1e456c[_0x18e183(0x122)]);}catch{throw CliErrors[_0x18e183(0x11e)](_0x18e183(0x110)+_0x1e456c[_0x18e183(0x122)]);}}export async function readAppConfigValue(_0x39c14d){const _0x20e17d=a34_0x198d66,_0x262165=assertSingleValueSource(_0x39c14d),_0x1e4a33=[];if(_0x262165[_0x20e17d(0x11c)]===_0x20e17d(0x12e))return _0x1e4a33[_0x20e17d(0x11d)]('Value\x20was\x20provided\x20as\x20a\x20command\x20argument;\x20prefer\x20--stdin,\x20--from-env,\x20or\x20--file\x20for\x20secrets.'),{'value':_0x262165['value']??'','source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};if(_0x262165[_0x20e17d(0x11c)]==='stdin')return{'value':await readStdin(),'source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};if(_0x262165[_0x20e17d(0x11c)]==='env'){if(!(_0x262165[_0x20e17d(0x117)]in process.env))throw CliErrors['validation'](_0x20e17d(0x112)+_0x262165[_0x20e17d(0x117)]);return{'value':process.env[_0x262165.name]??'','source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};}return{'value':await readFile(_0x262165['path'],'utf8'),'source':_0x262165[_0x20e17d(0x11c)],'warnings':_0x1e4a33};}function readStdin(){return new Promise((_0x117e0b,_0x3078a6)=>{const _0x543dc2=a34_0xa516;let _0x59ec2f='';process[_0x543dc2(0x116)]['setEncoding'](_0x543dc2(0x10b)),process['stdin']['on']('data',_0x1a9c8e=>{_0x59ec2f+=_0x1a9c8e;}),process['stdin'][_0x543dc2(0x128)](_0x543dc2(0x115),()=>_0x117e0b(_0x59ec2f)),process['stdin'][_0x543dc2(0x128)](_0x543dc2(0xfd),_0x3078a6);});}
@@ -1 +1 @@
1
- const a30_0x5d7cee=a30_0x120a;function a30_0x120a(_0x5ac96c,_0x388fa1){_0x5ac96c=_0x5ac96c-0x1e1;const _0x3581ac=a30_0x3581();let _0x120a7f=_0x3581ac[_0x5ac96c];return _0x120a7f;}function a30_0x3581(){const _0x148ec9=['11Cmrvbz','1967382ZUcikq','574400bAcsvp','268352XoAHVw','731820KhiwNF','1211pDQTJf','../../auth/auth-server-ui.js','22MCmejZ','32792uCXTBD','!\x20Not\x20logged\x20in','5qMBRwF','auth','nonInteractive','bool','Clear\x20login\x20session','boolean','Login\x20via\x20browser','write','log','login','54561ckWqeM','yes','3486324lFqJVl'];a30_0x3581=function(){return _0x148ec9;};return a30_0x3581();}(function(_0x5d90f2,_0x22fb39){const _0x73af0a=a30_0x120a,_0x32c84c=_0x5d90f2();while(!![]){try{const _0xf5a6af=parseInt(_0x73af0a(0x1ec))/0x1+-parseInt(_0x73af0a(0x1f1))/0x2*(-parseInt(_0x73af0a(0x1e7))/0x3)+-parseInt(_0x73af0a(0x1ed))/0x4+parseInt(_0x73af0a(0x1f4))/0x5*(parseInt(_0x73af0a(0x1e9))/0x6)+-parseInt(_0x73af0a(0x1ef))/0x7*(parseInt(_0x73af0a(0x1f2))/0x8)+-parseInt(_0x73af0a(0x1eb))/0x9+-parseInt(_0x73af0a(0x1ee))/0xa*(-parseInt(_0x73af0a(0x1ea))/0xb);if(_0xf5a6af===_0x22fb39)break;else _0x32c84c['push'](_0x32c84c['shift']());}catch(_0x2861f9){_0x32c84c['push'](_0x32c84c['shift']());}}}(a30_0x3581,0x69ed8));import{unlinkSync,existsSync}from'node:fs';import{cookieFile}from'../../auth/constant.js';export const authDefinitions=[{'service':a30_0x5d7cee(0x1f5),'command':a30_0x5d7cee(0x1e6),'description':a30_0x5d7cee(0x1e3),'risk':'write','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':'yes','type':a30_0x5d7cee(0x1e2),'description':'Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','default':![]}],async 'execute'(_0x14d37c){const _0x2fbca0=a30_0x5d7cee,{runAuthServer:_0x24d9e6}=await import(_0x2fbca0(0x1f0));return await _0x24d9e6({'autoYes':_0x14d37c[_0x2fbca0(0x1f7)](_0x2fbca0(0x1e8)),'nonInteractive':_0x14d37c[_0x2fbca0(0x1f6)]}),{'ok':!![]};}},{'service':a30_0x5d7cee(0x1f5),'command':'logout','description':a30_0x5d7cee(0x1e1),'risk':a30_0x5d7cee(0x1e4),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x127d8e){const _0x40c0a4=a30_0x5d7cee;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x40c0a4(0x1e5)]('✓\x20Logged\x20out')):console[_0x40c0a4(0x1e5)](_0x40c0a4(0x1f3)),{'ok':!![]};}}];
1
+ const a35_0xad34d0=a35_0x4db4;(function(_0x5f4194,_0x237f56){const _0x5ac0ac=a35_0x4db4,_0x43721e=_0x5f4194();while(!![]){try{const _0x57d9fb=parseInt(_0x5ac0ac(0xd1))/0x1*(-parseInt(_0x5ac0ac(0xce))/0x2)+parseInt(_0x5ac0ac(0xc5))/0x3+-parseInt(_0x5ac0ac(0xd4))/0x4+-parseInt(_0x5ac0ac(0xd5))/0x5*(parseInt(_0x5ac0ac(0xc6))/0x6)+parseInt(_0x5ac0ac(0xcf))/0x7+-parseInt(_0x5ac0ac(0xd2))/0x8+parseInt(_0x5ac0ac(0xc9))/0x9;if(_0x57d9fb===_0x237f56)break;else _0x43721e['push'](_0x43721e['shift']());}catch(_0x1a43aa){_0x43721e['push'](_0x43721e['shift']());}}}(a35_0x2875,0xdc197));import{unlinkSync,existsSync}from'node:fs';function a35_0x4db4(_0x47cbe8,_0x209f89){_0x47cbe8=_0x47cbe8-0xc4;const _0x2875f2=a35_0x2875();let _0x4db435=_0x2875f2[_0x47cbe8];return _0x4db435;}import{cookieFile}from'../../auth/constant.js';function a35_0x2875(){const _0x3ca97d=['8259456vsJKaw','nonInteractive','3737028AGjOBp','230vVMWYX','auth','write','yes','login','4338822ziBEGy','30960EgkLyc','log','bool','16899345WjLTPr','!\x20Not\x20logged\x20in','Login\x20via\x20browser','Skip\x20login\x20confirmation\x20and\x20start\x20browser\x20auth\x20immediately','Clear\x20login\x20session','8LkZfHU','3831275mBIdcw','✓\x20Logged\x20out','191432GTfzIs'];a35_0x2875=function(){return _0x3ca97d;};return a35_0x2875();}export const authDefinitions=[{'service':a35_0xad34d0(0xd6),'command':a35_0xad34d0(0xc4),'description':a35_0xad34d0(0xcb),'risk':a35_0xad34d0(0xd7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[{'name':a35_0xad34d0(0xd8),'type':'boolean','description':a35_0xad34d0(0xcc),'default':![]}],async 'execute'(_0x4a6342){const _0x34e353=a35_0xad34d0,{runAuthServer:_0x28ad72}=await import('../../auth/auth-server-ui.js');return await _0x28ad72({'autoYes':_0x4a6342[_0x34e353(0xc8)](_0x34e353(0xd8)),'nonInteractive':_0x4a6342[_0x34e353(0xd3)]}),{'ok':!![]};}},{'service':a35_0xad34d0(0xd6),'command':'logout','description':a35_0xad34d0(0xcd),'risk':a35_0xad34d0(0xd7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x57e0af){const _0x17c405=a35_0xad34d0;return existsSync(cookieFile)?(unlinkSync(cookieFile),console[_0x17c405(0xc7)](_0x17c405(0xd0))):console[_0x17c405(0xc7)](_0x17c405(0xca)),{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a31_0x4ac471=a31_0x5487;(function(_0x5ade3f,_0x12ce3f){const _0xdf3bcd=a31_0x5487,_0x57b33b=_0x5ade3f();while(!![]){try{const _0x179b27=-parseInt(_0xdf3bcd(0x13c))/0x1*(parseInt(_0xdf3bcd(0x16d))/0x2)+-parseInt(_0xdf3bcd(0x126))/0x3+-parseInt(_0xdf3bcd(0x15f))/0x4*(parseInt(_0xdf3bcd(0x159))/0x5)+-parseInt(_0xdf3bcd(0x171))/0x6+-parseInt(_0xdf3bcd(0x15d))/0x7+-parseInt(_0xdf3bcd(0x11c))/0x8+parseInt(_0xdf3bcd(0x128))/0x9;if(_0x179b27===_0x12ce3f)break;else _0x57b33b['push'](_0x57b33b['shift']());}catch(_0x1e68fa){_0x57b33b['push'](_0x57b33b['shift']());}}}(a31_0xeafb,0x5fd7b));import{createInterface}from'node:readline';import{mkdir,writeFile}from'node:fs/promises';import{dirname,join}from'node:path';import{listDatasets,listBffDatasetOperations}from'../../core/api-client.js';import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiFilePath}from'../../context.js';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':a31_0x4ac471(0x160),'command':a31_0x4ac471(0x16a),'description':a31_0x4ac471(0x129),'risk':a31_0x4ac471(0x12b),'flags':[{'name':'type','type':'string','required':!![],'enum':[a31_0x4ac471(0x13d),a31_0x4ac471(0x17e),a31_0x4ac471(0x17d)],'description':a31_0x4ac471(0x143)},{'name':a31_0x4ac471(0x158),'type':a31_0x4ac471(0x12c),'required':!![],'description':'Function\x20name\x20(valid\x20JS\x20identifier)'},{'name':a31_0x4ac471(0x153),'type':'string','description':a31_0x4ac471(0x125)},{'name':a31_0x4ac471(0x164),'type':a31_0x4ac471(0x12c),'description':a31_0x4ac471(0x124)},{'name':a31_0x4ac471(0x16f),'type':a31_0x4ac471(0x12c),'description':a31_0x4ac471(0x11e)},{'name':a31_0x4ac471(0x13b),'type':'string','description':a31_0x4ac471(0x145)},{'name':'function-node','type':'string','description':a31_0x4ac471(0x123),'enum':[a31_0x4ac471(0x139),a31_0x4ac471(0x12d)]}],async 'validate'(_0x1d5aca){const _0x3d02e1=a31_0x4ac471,_0x2b98f1=_0x1d5aca[_0x3d02e1(0x135)](_0x3d02e1(0x158));if(!isValidBffFunctionName(_0x2b98f1))throw CliErrors[_0x3d02e1(0x13e)](_0x3d02e1(0x147)+_0x2b98f1+_0x3d02e1(0x168));},async 'execute'(_0x32e4b3){const _0x4c944c=a31_0x4ac471,_0x411fd0=loadBffProjectConfig(_0x32e4b3[_0x4c944c(0x14b)]),_0x581405=_0x32e4b3[_0x4c944c(0x135)]('type'),_0x3c9600=_0x32e4b3[_0x4c944c(0x135)](_0x4c944c(0x158)),_0x4c89e7=_0x32e4b3[_0x4c944c(0x135)](_0x4c944c(0x153))||undefined,_0x47077f=_0x581405===_0x4c944c(0x17d)?await resolveHookOptions(_0x411fd0,_0x32e4b3):undefined,_0x55a10e=buildFilePath(_0x411fd0,_0x581405,_0x3c9600,_0x47077f);if(await fileExists(_0x55a10e))throw CliErrors[_0x4c944c(0x13e)](_0x4c944c(0x155)+_0x55a10e);await mkdir(dirname(_0x55a10e),{'recursive':!![]});const _0x42996d=generateTemplate(_0x581405,_0x3c9600,_0x32e4b3[_0x4c944c(0x14b)],_0x4c89e7,_0x47077f);await writeFile(_0x55a10e,_0x42996d,'utf8');const _0xfde8ad={'type':_0x581405,'name':_0x3c9600,'path':_0x55a10e};if(_0x4c89e7)_0xfde8ad[_0x4c944c(0x153)]=_0x4c89e7;if(_0x47077f){if(_0x47077f[_0x4c944c(0x164)])_0xfde8ad[_0x4c944c(0x164)]=_0x47077f['alias'];_0xfde8ad[_0x4c944c(0x140)]=_0x47077f[_0x4c944c(0x140)],_0xfde8ad[_0x4c944c(0x17a)]=_0x47077f[_0x4c944c(0x17a)],_0xfde8ad['functionNode']=_0x47077f['functionNode'];}return{'ok':!![],'data':_0xfde8ad,'message':_0x4c944c(0x14d)+_0x581405+_0x4c944c(0x120)+_0x3c9600};}};function a31_0x5487(_0x1d1bfe,_0x6c6b3d){_0x1d1bfe=_0x1d1bfe-0x11a;const _0xeafbab=a31_0xeafb();let _0x5487c8=_0xeafbab[_0x1d1bfe];return _0x5487c8;}async function resolveHookOptions(_0x4296c5,_0x19ecfa){const _0x5aea4e=a31_0x4ac471,_0x43cf1a=loadAliasMap(_0x19ecfa[_0x5aea4e(0x122)],undefined,resolveApiFilePath(_0x19ecfa[_0x5aea4e(0x122)],_0x19ecfa['appCode'])),_0x1de279=_0x43cf1a[_0x5aea4e(0x142)]>0x0;let _0x13962e,_0x2e9bc4,_0x4eb0dd;const _0x9d205b=_0x19ecfa[_0x5aea4e(0x135)](_0x5aea4e(0x164)),_0x1dc31e=_0x19ecfa[_0x5aea4e(0x135)]('datasetcode');if(_0x9d205b){const _0x453636=resolveAlias(_0x19ecfa['apiDir'],_0x9d205b,undefined,resolveApiFilePath(_0x19ecfa[_0x5aea4e(0x122)],_0x19ecfa['appCode']));if(!_0x453636){const _0x3d13dc=_0x1de279?_0x5aea4e(0x121)+_0x43cf1a['map'](_0x45daf7=>_0x45daf7[_0x5aea4e(0x164)])[_0x5aea4e(0x152)](',\x20'):_0x5aea4e(0x13f)+CLI_BIN_NAME+'\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.';throw CliErrors[_0x5aea4e(0x13e)]('Alias\x20\x22'+_0x9d205b+_0x5aea4e(0x167)+_0x3d13dc);}_0x13962e=_0x9d205b,_0x2e9bc4=_0x453636;}else{if(_0x1dc31e){_0x2e9bc4=_0x1dc31e;const _0x1bf59b=_0x43cf1a['find'](_0x589f26=>_0x589f26[_0x5aea4e(0x140)]===_0x1dc31e);_0x13962e=_0x1bf59b?.[_0x5aea4e(0x164)];}else{if(_0x19ecfa[_0x5aea4e(0x162)])throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x175));else{if(_0x1de279){const _0x3fb155=_0x43cf1a[_0x5aea4e(0x12a)](_0x72a23=>_0x72a23[_0x5aea4e(0x164)]+'\x20('+_0x72a23[_0x5aea4e(0x11b)]+')'),_0x277b28=await promptSelect('Select\x20dataset:',_0x3fb155),_0x176761=_0x43cf1a[_0x277b28];if(!_0x176761)throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x172));_0x13962e=_0x176761[_0x5aea4e(0x164)],_0x2e9bc4=_0x176761[_0x5aea4e(0x140)];}else{const _0x26134a=await listDatasets(_0x19ecfa['appCode']);if(_0x26134a[_0x5aea4e(0x142)]===0x0)throw CliErrors[_0x5aea4e(0x13e)]('No\x20datasets\x20found\x20for\x20this\x20app.');const _0x7301c8=_0x26134a['map'](_0x3d2d44=>_0x3d2d44[_0x5aea4e(0x158)]+'\x20['+(_0x3d2d44[_0x5aea4e(0x131)]??_0x5aea4e(0x15a))+_0x5aea4e(0x15b)+_0x3d2d44[_0x5aea4e(0x132)]+')'),_0x322ad3=await promptSelect('Select\x20dataset:',_0x7301c8),_0x26849d=_0x26134a[_0x322ad3];if(!_0x26849d)throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x172));_0x2e9bc4=_0x26849d[_0x5aea4e(0x132)],_0x13962e=undefined;}}}}const _0x5b6f64=await listDatasets(_0x19ecfa['appCode']),_0x1c346c=_0x5b6f64[_0x5aea4e(0x149)](_0x29236b=>_0x29236b[_0x5aea4e(0x132)]===_0x2e9bc4);if(!_0x1c346c)throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x161)+_0x2e9bc4+_0x5aea4e(0x136)+(_0x13962e?'The\x20api.ts\x20may\x20be\x20stale\x20—\x20run\x20`'+CLI_BIN_NAME+'\x20api\x20pull`\x20to\x20refresh.':''));_0x4eb0dd=_0x1c346c['id'];const _0x4db4f9=_0x13962e??_0x2e9bc4,_0x42971d=await listBffDatasetOperations(_0x19ecfa[_0x5aea4e(0x14b)],_0x4eb0dd),_0xa7b317=_0x42971d?Object[_0x5aea4e(0x154)](_0x42971d):[];if(_0xa7b317[_0x5aea4e(0x142)]===0x0)throw CliErrors[_0x5aea4e(0x13e)]('No\x20operation\x20types\x20found\x20for\x20dataset\x20'+_0x4db4f9+'.');let _0x3b6efa;const _0x5685ee=_0x19ecfa[_0x5aea4e(0x135)](_0x5aea4e(0x13b));if(_0x5685ee){if(!_0xa7b317[_0x5aea4e(0x173)](_0x5685ee))throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x174)+_0x5685ee+'\x22\x20not\x20found\x20for\x20dataset\x20'+_0x4db4f9+'.\x20'+(_0x5aea4e(0x163)+_0xa7b317['join'](',\x20')));_0x3b6efa=_0x5685ee;}else{if(_0x19ecfa[_0x5aea4e(0x162)])throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x11f));const _0x2fd9d3=await promptSelect('Select\x20operation\x20type:',_0xa7b317);_0x3b6efa=_0xa7b317[_0x2fd9d3]??_0xa7b317[0x0];}let _0x2714bd=normalizeHookFunctionNode(_0x19ecfa[_0x5aea4e(0x135)](_0x5aea4e(0x146)));if(!_0x2714bd){if(_0x19ecfa['str'](_0x5aea4e(0x146)))throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x148));if(_0x19ecfa[_0x5aea4e(0x162)])throw CliErrors[_0x5aea4e(0x13e)](_0x5aea4e(0x138));const _0x8aa6fd=await promptSelect('Select\x20trigger\x20node:',[_0x5aea4e(0x139),_0x5aea4e(0x12d)]);_0x2714bd=['before',_0x5aea4e(0x12d)][_0x8aa6fd]??'before';}return{'alias':_0x13962e,'datasetCode':_0x2e9bc4,'datasetId':_0x4eb0dd,'operationType':_0x3b6efa,'functionNode':_0x2714bd};}async function promptSelect(_0xdaed20,_0x2d3960){const _0x304178=a31_0x4ac471;if(_0x2d3960['length']===0x1)return 0x0;for(const [_0x1b6588,_0x28009f]of _0x2d3960['entries']()){process[_0x304178(0x141)][_0x304178(0x178)]('\x20\x20'+(_0x1b6588+0x1)+'.\x20'+_0x28009f+'\x0a');}const _0x3dc73b=createInterface({'input':process[_0x304178(0x17b)],'output':process['stderr']});while(!![]){const _0x55ebbf=await new Promise(_0x437311=>{const _0x3db0a5=_0x304178;_0x3dc73b[_0x3db0a5(0x12e)](_0xdaed20+'\x20',_0x437311);}),_0x37bf65=Number['parseInt'](_0x55ebbf[_0x304178(0x14c)](),0xa);if(Number[_0x304178(0x151)](_0x37bf65)&&_0x37bf65>=0x1&&_0x37bf65<=_0x2d3960['length'])return _0x3dc73b[_0x304178(0x15e)](),_0x37bf65-0x1;process['stderr'][_0x304178(0x178)](_0x304178(0x130)+_0x2d3960[_0x304178(0x142)]+'.\x0a');}}function buildFilePath(_0x2c786c,_0x2e1930,_0x5e3215,_0x5f15a1){const _0x45c0a9=a31_0x4ac471;if(_0x2e1930===_0x45c0a9(0x17d)){if(!_0x5f15a1)throw CliErrors['validation'](_0x45c0a9(0x170));const _0x109ea3=_0x5f15a1[_0x45c0a9(0x164)]??_0x5f15a1[_0x45c0a9(0x140)];return join(_0x2c786c['scriptsRootDir'],_0x45c0a9(0x17d),_0x109ea3,_0x5f15a1[_0x45c0a9(0x17a)],_0x5f15a1['functionNode'],_0x5e3215+_0x45c0a9(0x133));}return join(_0x2c786c['scriptsRootDir'],_0x2e1930,_0x5e3215+_0x45c0a9(0x133));}function a31_0xeafb(){const _0x303bac=['172PlRgfD','COMMON','validation','No\x20api.ts\x20found.\x20Run\x20`','datasetCode','stderr','length','Script\x20type','functionNode','Operation\x20type\x20(HOOK\x20only)','function-node','Invalid\x20function\x20name\x20\x22','--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.','find','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20ENDPOINT\x0a\x20*\x20[脚本名称]\x20','appCode','trim','Created\x20','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[脚本名称]\x20','\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','/COMMON/','isInteger','join','description','keys','File\x20already\x20exists:\x20','datasetId','/HOOK/','name','5WUrySF','UNKNOWN',']\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','5351255swxbnz','close','60596JokMoc','bff','Dataset\x20not\x20found\x20for\x20code\x20\x22','nonInteractive','Available:\x20','alias','.js\x0a\x20*\x20[调用方式]\x20context.client.bff.execute({\x20scriptName:\x20\x22','.js\x0a','\x22\x20not\x20found.\x20','\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).','#api-list\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','create','\x22,\x20params\x20})\x0a','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','8684mSwkCy','/ENDPOINT/','datasetcode','HOOK\x20requires\x20alias/operation/node\x20options.','4046682scobfg','Invalid\x20dataset\x20selection.','includes','Operation\x20type\x20\x22','--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','\x0a\x20*\x20[接口路径]\x20POST\x20/api/','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20HOOK\x0a\x20*\x20[脚本名称]\x20','write','\x0a\x20*\x20[平台配置]\x20','operationType','stdin','.js\x0a\x20*\x20[触发节点]\x20','HOOK','ENDPOINT','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','tableName','5524904nCoTvJ','/data/dataset/','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','\x20function:\x20','Available\x20aliases:\x20','apiDir','Trigger\x20node\x20(HOOK\x20only)','Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)','Script\x20description','679452RRAiRl','/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','31594977JmnskS','Scaffold\x20a\x20new\x20Backend\x20Function\x20script\x20from\x20template','map','read','string','after','question','\x20*\x20[依赖数据集]\x20无(如有依赖,DB_TABLE\x20填物理表名;METADATA\x20填数据集编码与用途)\x0a\x20*\x20[调用\x20BF]\x20无(如有调用,填写脚本名称与用途)\x0a\x20*\x20[执行\x20SQL]\x20无(如有执行,填写\x20SQL\x20名称与用途)\x0a\x20*\x20[副作用]\x20无(如有通知或外部调用,说明影响与失败策略)','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','source','code','.js','/**\x0a\x20*\x20','str','\x22.\x20','\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20','--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','before','当前响应结果','operation-type'];a31_0xeafb=function(){return _0x303bac;};return a31_0xeafb();}export function generateTemplate(_0x4d16c5,_0xba5b5c,_0x757594,_0x1fe7ea,_0x7f5be6){const _0x46ce79=a31_0x4ac471,_0x95d73c=_0x1fe7ea?.[_0x46ce79(0x14c)]()||DEFAULT_BFF_SCRIPT_DESCRIPTION,_0x3cd8b2=getAppBaseUrl(_0x757594),_0x192baa=_0x46ce79(0x12f);if(_0x4d16c5==='COMMON')return _0x46ce79(0x134)+_0x95d73c+_0x46ce79(0x14e)+_0xba5b5c+'\x0a\x20*\x20[平台配置]\x20'+_0x3cd8b2+_0x46ce79(0x127)+_0x757594+_0x46ce79(0x150)+_0xba5b5c+_0x46ce79(0x165)+_0xba5b5c+_0x46ce79(0x16b)+_0x192baa+_0x46ce79(0x14f)+_0xba5b5c+_0x46ce79(0x11a);if(_0x4d16c5===_0x46ce79(0x17e))return _0x46ce79(0x134)+_0x95d73c+_0x46ce79(0x14a)+_0xba5b5c+'\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/'+_0x757594+'/'+_0xba5b5c+_0x46ce79(0x179)+_0x3cd8b2+_0x46ce79(0x127)+_0x757594+_0x46ce79(0x16e)+_0xba5b5c+_0x46ce79(0x166)+_0x192baa+_0x46ce79(0x15c)+_0xba5b5c+_0x46ce79(0x11a);if(!_0x7f5be6)throw CliErrors[_0x46ce79(0x13e)](_0x46ce79(0x16c));const _0x39d637=_0x7f5be6[_0x46ce79(0x164)]??_0x7f5be6[_0x46ce79(0x140)],_0x2923bf=_0x7f5be6[_0x46ce79(0x144)]===_0x46ce79(0x139)?'当前请求参数':_0x46ce79(0x13a),_0x2a0727=_0x7f5be6[_0x46ce79(0x144)]==='before'?'修改后的请求参数':'修改后的响应结果';return _0x46ce79(0x134)+_0x95d73c+_0x46ce79(0x177)+_0xba5b5c+_0x46ce79(0x176)+_0x757594+'/'+_0x7f5be6[_0x46ce79(0x140)]+'/'+_0x7f5be6[_0x46ce79(0x17a)]+_0x46ce79(0x179)+_0x3cd8b2+_0x46ce79(0x11d)+_0x7f5be6[_0x46ce79(0x156)]+_0x46ce79(0x169)+_0x757594+_0x46ce79(0x157)+_0x39d637+'/'+_0x7f5be6[_0x46ce79(0x17a)]+'/'+_0x7f5be6['functionNode']+'/'+_0xba5b5c+_0x46ce79(0x17c)+_0x7f5be6['functionNode']+'\x0a'+_0x192baa+'\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20'+_0x2923bf+_0x46ce79(0x137)+_0x2a0727+'\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20'+_0xba5b5c+_0x46ce79(0x11a);}
1
+ const a36_0x5721ca=a36_0x2943;(function(_0x42e405,_0x2523ce){const _0x41fc2f=a36_0x2943,_0x199da4=_0x42e405();while(!![]){try{const _0x170b2a=-parseInt(_0x41fc2f(0x111))/0x1*(-parseInt(_0x41fc2f(0x118))/0x2)+parseInt(_0x41fc2f(0x101))/0x3+parseInt(_0x41fc2f(0xe5))/0x4+-parseInt(_0x41fc2f(0xc8))/0x5+-parseInt(_0x41fc2f(0xe7))/0x6*(parseInt(_0x41fc2f(0x100))/0x7)+parseInt(_0x41fc2f(0xe4))/0x8+-parseInt(_0x41fc2f(0xc6))/0x9;if(_0x170b2a===_0x2523ce)break;else _0x199da4['push'](_0x199da4['shift']());}catch(_0x242a91){_0x199da4['push'](_0x199da4['shift']());}}}(a36_0x5796,0xdbdd0));import{createInterface}from'node:readline';import{mkdir,writeFile}from'node:fs/promises';import{dirname,join}from'node:path';function a36_0x2943(_0x4b9af8,_0x405716){_0x4b9af8=_0x4b9af8-0xbe;const _0x5796d7=a36_0x5796();let _0x2943e=_0x5796d7[_0x4b9af8];return _0x2943e;}import{listDatasets,listBffDatasetOperations}from'../../core/api-client.js';import{loadAliasMap,resolveAlias}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';function a36_0x5796(){const _0x453cd3=['6393248RbHQpS','Function\x20name\x20(valid\x20JS\x20identifier)','372WDABiI','\x20\x20Enter\x20a\x20number\x20between\x201\x20and\x20','\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','create','Created\x20','--function-node\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','parseInt','datasetcode','\x0a\x20*\x20[参数字段]\x20按实际请求体为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20HTTP\x20请求体参数\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20TODO:\x20补充业务返回数据结构\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','Script\x20type','str','Invalid\x20dataset\x20selection.','HOOK','Operation\x20type\x20(HOOK\x20only)','\x0a\x20*\x20[平台配置]\x20',']\x20(','.js\x0a\x20*\x20[调用方式]\x20context.client.bff.execute({\x20scriptName:\x20\x22','datasetCode','stderr','--function-node\x20must\x20be\x20\x27before\x27\x20or\x20\x27after\x27.','No\x20datasets\x20found\x20for\x20this\x20app.','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20COMMON\x0a\x20*\x20[脚本名称]\x20','/**\x0a\x20*\x20','/ENDPOINT/','\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20','78253UVKfXM','1157523ryyCPv','No\x20model\x20aliases\x20found.\x20Run\x20`','appCode','No\x20operation\x20types\x20found\x20for\x20dataset\x20','HOOK\x20requires\x20alias/operation/node\x20options.','question','\x20*\x20[依赖数据集]\x20无(如有依赖,DB_TABLE\x20填物理表名;METADATA\x20填数据集编码与用途)\x0a\x20*\x20[调用\x20BF]\x20无(如有调用,填写脚本名称与用途)\x0a\x20*\x20[执行\x20SQL]\x20无(如有执行,填写\x20SQL\x20名称与用途)\x0a\x20*\x20[副作用]\x20无(如有通知或外部调用,说明影响与失败策略)','datasetId','The\x20generated\x20model\x20facts\x20may\x20be\x20stale\x20—\x20run\x20`','apiDir','write','validation','isInteger','before','Trigger\x20node\x20(HOOK\x20only)','includes','9JISiSj','filePath','name','\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20请求参数\x0a\x20*\x20@param\x20{Object}\x20context\x20平台注入的执行上下文\x0a\x20*\x20@returns\x20{Promise<Object>}\x20TODO:\x20补充返回数据结构\x0a\x20*/\x0aexport\x20default\x20async\x20function\x20','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20ENDPOINT\x0a\x20*\x20[脚本名称]\x20','Dataset\x20code\x20(HOOK\x20only,\x20fallback\x20when\x20alias\x20unavailable)','map','201944xzlHVT','Alias\x20\x22','(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a','\x20api\x20pull`\x20to\x20refresh.','code','string','after','修改后的请求参数','operationType','nonInteractive','functionNode','\x22\x20not\x20found.\x20','Script\x20description','Dataset\x20not\x20found\x20for\x20code\x20\x22','/COMMON/','.js\x0a','type','10637550mOumPJ','\x0a\x20*\x0a\x20*\x20[脚本类型]\x20HOOK\x0a\x20*\x20[脚本名称]\x20','7040945TaosIP','currentApp','Scaffold\x20a\x20new\x20Backend\x20Function\x20script\x20from\x20template','\x22.\x20','/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/','alias','COMMON','length','/HOOK/','profileName','Available:\x20','read','\x0a\x20*\x20[接口路径]\x20POST\x20/api/endpoint/','\x22,\x20params\x20})\x0a','Invalid\x20function\x20name\x20\x22','Select\x20operation\x20type:','HOOK\x20requires\x20hookOptions\x20for\x20template\x20generation.','ENDPOINT','scriptsRootDir','join','function-node','find','当前响应结果','operation-type','--alias\x20or\x20--datasetcode\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.','keys','description','Select\x20dataset:','10327168udLqUw'];a36_0x5796=function(){return _0x453cd3;};return a36_0x5796();}import{fileExists}from'../../core/bff/file-system.js';import{DEFAULT_BFF_SCRIPT_DESCRIPTION,isValidBffFunctionName,normalizeHookFunctionNode}from'../../core/bff/utils.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{getAppBaseUrl}from'../../constant/domain.js';export const bffCreate={'service':'bff','command':a36_0x5721ca(0xea),'description':a36_0x5721ca(0xca),'risk':a36_0x5721ca(0xd3),'flags':[{'name':a36_0x5721ca(0xc5),'type':a36_0x5721ca(0x11d),'required':!![],'enum':[a36_0x5721ca(0xce),'ENDPOINT',a36_0x5721ca(0xf3)],'description':a36_0x5721ca(0xf0)},{'name':a36_0x5721ca(0x113),'type':'string','required':!![],'description':a36_0x5721ca(0xe6)},{'name':'description','type':'string','description':a36_0x5721ca(0xc1)},{'name':a36_0x5721ca(0xcd),'type':a36_0x5721ca(0x11d),'description':'Dataset\x20alias\x20from\x20api.ts\x20(HOOK\x20only,\x20preferred)'},{'name':a36_0x5721ca(0xee),'type':a36_0x5721ca(0x11d),'description':a36_0x5721ca(0x116)},{'name':'operation-type','type':a36_0x5721ca(0x11d),'description':a36_0x5721ca(0xf4)},{'name':a36_0x5721ca(0xdc),'type':a36_0x5721ca(0x11d),'description':a36_0x5721ca(0x10f),'enum':[a36_0x5721ca(0x10e),a36_0x5721ca(0x11e)]}],async 'validate'(_0x438949){const _0x3210c8=a36_0x5721ca,_0x52d735=_0x438949[_0x3210c8(0xf1)](_0x3210c8(0x113));if(!isValidBffFunctionName(_0x52d735))throw CliErrors['validation'](_0x3210c8(0xd6)+_0x52d735+'\x22.\x20Must\x20be\x20a\x20valid\x20JS\x20identifier\x20(e.g.\x20createOrder,\x20beforeFilter).');},async 'execute'(_0x34ec3c){const _0x51b7ff=a36_0x5721ca,_0x27a237=loadBffProjectConfig(_0x34ec3c['appCode']),_0x3c37fc=_0x34ec3c[_0x51b7ff(0xf1)](_0x51b7ff(0xc5)),_0x282698=_0x34ec3c[_0x51b7ff(0xf1)]('name'),_0x4c7a30=_0x34ec3c[_0x51b7ff(0xf1)]('description')||undefined,_0x39f032=_0x3c37fc===_0x51b7ff(0xf3)?await resolveHookOptions(_0x27a237,_0x34ec3c):undefined,_0x5c71a9=buildFilePath(_0x27a237,_0x3c37fc,_0x282698,_0x39f032);if(await fileExists(_0x5c71a9))throw CliErrors['validation']('File\x20already\x20exists:\x20'+_0x5c71a9);await mkdir(dirname(_0x5c71a9),{'recursive':!![]});const _0x1ec34a=generateTemplate(_0x3c37fc,_0x282698,_0x34ec3c[_0x51b7ff(0x103)],_0x4c7a30,_0x39f032);await writeFile(_0x5c71a9,_0x1ec34a,'utf8');const _0x18448d={'type':_0x3c37fc,'name':_0x282698,'path':_0x5c71a9};if(_0x4c7a30)_0x18448d[_0x51b7ff(0xe2)]=_0x4c7a30;if(_0x39f032){if(_0x39f032['alias'])_0x18448d[_0x51b7ff(0xcd)]=_0x39f032[_0x51b7ff(0xcd)];_0x18448d[_0x51b7ff(0xf8)]=_0x39f032[_0x51b7ff(0xf8)],_0x18448d['operationType']=_0x39f032[_0x51b7ff(0x120)],_0x18448d[_0x51b7ff(0xbf)]=_0x39f032[_0x51b7ff(0xbf)];}return{'ok':!![],'data':_0x18448d,'message':_0x51b7ff(0xeb)+_0x3c37fc+'\x20function:\x20'+_0x282698};}};async function resolveHookOptions(_0x309b5d,_0x31322e){const _0x295108=a36_0x5721ca,_0x1351e4=resolveApiModelSource(_0x31322e[_0x295108(0x10a)],_0x31322e[_0x295108(0x103)],_0x31322e['selectedAppName']||_0x31322e['mergedCli']?.[_0x295108(0xc9)]||_0x31322e['mergedCli']?.['defaultApp']),_0x3ce4b6=loadAliasMap(_0x31322e[_0x295108(0x10a)],undefined,_0x1351e4[_0x295108(0x112)],_0x1351e4[_0x295108(0xd1)]),_0x3dd41e=_0x3ce4b6[_0x295108(0xcf)]>0x0;let _0x20835a,_0x5d5423,_0x29b9fa;const _0x3a8536=_0x31322e['str'](_0x295108(0xcd)),_0x43f7f3=_0x31322e[_0x295108(0xf1)]('datasetcode');if(_0x3a8536){const _0x33acfc=resolveAlias(_0x31322e[_0x295108(0x10a)],_0x3a8536,undefined,_0x1351e4[_0x295108(0x112)],_0x1351e4[_0x295108(0xd1)]);if(!_0x33acfc){const _0xde619e=_0x3dd41e?'Available\x20aliases:\x20'+_0x3ce4b6[_0x295108(0x117)](_0x211f21=>_0x211f21['alias'])[_0x295108(0xdb)](',\x20'):_0x295108(0x102)+CLI_BIN_NAME+'\x20api\x20pull`\x20first,\x20or\x20use\x20--datasetcode\x20instead.';throw CliErrors[_0x295108(0x10c)](_0x295108(0x119)+_0x3a8536+_0x295108(0xc0)+_0xde619e);}_0x20835a=_0x3a8536,_0x5d5423=_0x33acfc;}else{if(_0x43f7f3){_0x5d5423=_0x43f7f3;const _0x4f9daa=_0x3ce4b6[_0x295108(0xdd)](_0x1303eb=>_0x1303eb[_0x295108(0xf8)]===_0x43f7f3);_0x20835a=_0x4f9daa?.[_0x295108(0xcd)];}else{if(_0x31322e[_0x295108(0xbe)])throw CliErrors['validation'](_0x295108(0xe0));else{if(_0x3dd41e){const _0x58f335=_0x3ce4b6['map'](_0x5e3795=>_0x5e3795['alias']+'\x20('+_0x5e3795['tableName']+')'),_0x4e94dc=await promptSelect(_0x295108(0xe3),_0x58f335),_0x4849ee=_0x3ce4b6[_0x4e94dc];if(!_0x4849ee)throw CliErrors['validation'](_0x295108(0xf2));_0x20835a=_0x4849ee['alias'],_0x5d5423=_0x4849ee[_0x295108(0xf8)];}else{const _0x5eb1ea=await listDatasets(_0x31322e['appCode']);if(_0x5eb1ea['length']===0x0)throw CliErrors[_0x295108(0x10c)](_0x295108(0xfb));const _0x2ad5e5=_0x5eb1ea['map'](_0x58fb5a=>_0x58fb5a[_0x295108(0x113)]+'\x20['+(_0x58fb5a['source']??'UNKNOWN')+_0x295108(0xf6)+_0x58fb5a[_0x295108(0x11c)]+')'),_0x272f2b=await promptSelect(_0x295108(0xe3),_0x2ad5e5),_0x3aa307=_0x5eb1ea[_0x272f2b];if(!_0x3aa307)throw CliErrors['validation']('Invalid\x20dataset\x20selection.');_0x5d5423=_0x3aa307[_0x295108(0x11c)],_0x20835a=undefined;}}}}const _0x2add64=await listDatasets(_0x31322e['appCode']),_0x164fd3=_0x2add64['find'](_0x50766a=>_0x50766a[_0x295108(0x11c)]===_0x5d5423);if(!_0x164fd3)throw CliErrors[_0x295108(0x10c)](_0x295108(0xc2)+_0x5d5423+_0x295108(0xcb)+(_0x20835a?_0x295108(0x109)+CLI_BIN_NAME+_0x295108(0x11b):''));_0x29b9fa=_0x164fd3['id'];const _0x3f954d=_0x20835a??_0x5d5423,_0x461450=await listBffDatasetOperations(_0x31322e[_0x295108(0x103)],_0x29b9fa),_0x5e4bac=_0x461450?Object[_0x295108(0xe1)](_0x461450):[];if(_0x5e4bac[_0x295108(0xcf)]===0x0)throw CliErrors[_0x295108(0x10c)](_0x295108(0x104)+_0x3f954d+'.');let _0x817576;const _0x8863dc=_0x31322e[_0x295108(0xf1)](_0x295108(0xdf));if(_0x8863dc){if(!_0x5e4bac[_0x295108(0x110)](_0x8863dc))throw CliErrors['validation']('Operation\x20type\x20\x22'+_0x8863dc+'\x22\x20not\x20found\x20for\x20dataset\x20'+_0x3f954d+'.\x20'+(_0x295108(0xd2)+_0x5e4bac[_0x295108(0xdb)](',\x20')));_0x817576=_0x8863dc;}else{if(_0x31322e['nonInteractive'])throw CliErrors[_0x295108(0x10c)]('--operation-type\x20is\x20required\x20for\x20HOOK\x20in\x20non-interactive\x20mode.');const _0x479c9a=await promptSelect(_0x295108(0xd7),_0x5e4bac);_0x817576=_0x5e4bac[_0x479c9a]??_0x5e4bac[0x0];}let _0x408eb6=normalizeHookFunctionNode(_0x31322e['str'](_0x295108(0xdc)));if(!_0x408eb6){if(_0x31322e[_0x295108(0xf1)](_0x295108(0xdc)))throw CliErrors['validation'](_0x295108(0xfa));if(_0x31322e[_0x295108(0xbe)])throw CliErrors[_0x295108(0x10c)](_0x295108(0xec));const _0x52b545=await promptSelect('Select\x20trigger\x20node:',[_0x295108(0x10e),'after']);_0x408eb6=[_0x295108(0x10e),_0x295108(0x11e)][_0x52b545]??_0x295108(0x10e);}return{'alias':_0x20835a,'datasetCode':_0x5d5423,'datasetId':_0x29b9fa,'operationType':_0x817576,'functionNode':_0x408eb6};}async function promptSelect(_0x3d3aa,_0x200dc1){const _0x39101a=a36_0x5721ca;if(_0x200dc1['length']===0x1)return 0x0;for(const [_0x4ce069,_0x19b33f]of _0x200dc1['entries']()){process['stderr'][_0x39101a(0x10b)]('\x20\x20'+(_0x4ce069+0x1)+'.\x20'+_0x19b33f+'\x0a');}const _0x236300=createInterface({'input':process['stdin'],'output':process['stderr']});while(!![]){const _0xc7ef41=await new Promise(_0x1daab1=>{const _0x35336b=_0x39101a;_0x236300[_0x35336b(0x106)](_0x3d3aa+'\x20',_0x1daab1);}),_0x4f48dc=Number[_0x39101a(0xed)](_0xc7ef41['trim'](),0xa);if(Number[_0x39101a(0x10d)](_0x4f48dc)&&_0x4f48dc>=0x1&&_0x4f48dc<=_0x200dc1['length'])return _0x236300['close'](),_0x4f48dc-0x1;process[_0x39101a(0xf9)][_0x39101a(0x10b)](_0x39101a(0xe8)+_0x200dc1[_0x39101a(0xcf)]+'.\x0a');}}function buildFilePath(_0x2cfeef,_0x8b9cdd,_0x521f7b,_0x594eb7){const _0x583e25=a36_0x5721ca;if(_0x8b9cdd===_0x583e25(0xf3)){if(!_0x594eb7)throw CliErrors[_0x583e25(0x10c)](_0x583e25(0x105));const _0x1f9395=_0x594eb7[_0x583e25(0xcd)]??_0x594eb7[_0x583e25(0xf8)];return join(_0x2cfeef[_0x583e25(0xda)],_0x583e25(0xf3),_0x1f9395,_0x594eb7['operationType'],_0x594eb7['functionNode'],_0x521f7b+'.js');}return join(_0x2cfeef[_0x583e25(0xda)],_0x8b9cdd,_0x521f7b+'.js');}export function generateTemplate(_0x4c2b3f,_0x4864db,_0x1acd2e,_0x156169,_0x43b52c){const _0x11a48a=a36_0x5721ca,_0x5d0df6=_0x156169?.['trim']()||DEFAULT_BFF_SCRIPT_DESCRIPTION,_0x35eb47=getAppBaseUrl(_0x1acd2e),_0x311c31=_0x11a48a(0x107);if(_0x4c2b3f===_0x11a48a(0xce))return _0x11a48a(0xfd)+_0x5d0df6+_0x11a48a(0xfc)+_0x4864db+'\x0a\x20*\x20[平台配置]\x20'+_0x35eb47+'/data/backend-function\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/'+_0x1acd2e+_0x11a48a(0xc3)+_0x4864db+_0x11a48a(0xf7)+_0x4864db+_0x11a48a(0xd5)+_0x311c31+_0x11a48a(0x114)+_0x4864db+_0x11a48a(0x11a);if(_0x4c2b3f===_0x11a48a(0xd9))return _0x11a48a(0xfd)+_0x5d0df6+_0x11a48a(0x115)+_0x4864db+_0x11a48a(0xd4)+_0x1acd2e+'/'+_0x4864db+_0x11a48a(0xf5)+_0x35eb47+_0x11a48a(0xcc)+_0x1acd2e+_0x11a48a(0xfe)+_0x4864db+_0x11a48a(0xc4)+_0x311c31+_0x11a48a(0xef)+_0x4864db+_0x11a48a(0x11a);if(!_0x43b52c)throw CliErrors['validation'](_0x11a48a(0xd8));const _0x577df2=_0x43b52c[_0x11a48a(0xcd)]??_0x43b52c['datasetCode'],_0x178e61=_0x43b52c[_0x11a48a(0xbf)]===_0x11a48a(0x10e)?'当前请求参数':_0x11a48a(0xde),_0x514894=_0x43b52c['functionNode']===_0x11a48a(0x10e)?_0x11a48a(0x11f):'修改后的响应结果';return _0x11a48a(0xfd)+_0x5d0df6+_0x11a48a(0xc7)+_0x4864db+'\x0a\x20*\x20[接口路径]\x20POST\x20/api/'+_0x1acd2e+'/'+_0x43b52c[_0x11a48a(0xf8)]+'/'+_0x43b52c[_0x11a48a(0x120)]+_0x11a48a(0xf5)+_0x35eb47+'/data/dataset/'+_0x43b52c[_0x11a48a(0x108)]+'#api-list\x0a\x20*\x20[本地路径]\x20.rabetbase/bff/'+_0x1acd2e+_0x11a48a(0xd0)+_0x577df2+'/'+_0x43b52c[_0x11a48a(0x120)]+'/'+_0x43b52c[_0x11a48a(0xbf)]+'/'+_0x4864db+'.js\x0a\x20*\x20[触发节点]\x20'+_0x43b52c[_0x11a48a(0xbf)]+'\x0a'+_0x311c31+'\x0a\x20*\x20[参数字段]\x20按实际输入为\x20params.<字段名>\x20补充\x20JSDoc\x20参数标签;无字段时仅保留根参数\x0a\x20*\x20[异常说明]\x20无;显式抛出异常时补充异常类型与触发条件\x0a\x20*\x0a\x20*\x20@param\x20{Object}\x20params\x20'+_0x178e61+_0x11a48a(0xff)+_0x514894+_0x11a48a(0xe9)+_0x4864db+'(params,\x20context)\x20{\x0a\x20\x20return\x20params;\x0a}\x0a';}
@@ -1 +1 @@
1
- const a32_0x32af4f=a32_0x3139;(function(_0x57297a,_0x28e51d){const _0xe04cc4=a32_0x3139,_0x1a3de4=_0x57297a();while(!![]){try{const _0x42d5bb=parseInt(_0xe04cc4(0x159))/0x1+-parseInt(_0xe04cc4(0x15e))/0x2+-parseInt(_0xe04cc4(0x143))/0x3*(-parseInt(_0xe04cc4(0x170))/0x4)+parseInt(_0xe04cc4(0x16b))/0x5*(parseInt(_0xe04cc4(0x14e))/0x6)+-parseInt(_0xe04cc4(0x161))/0x7*(-parseInt(_0xe04cc4(0x175))/0x8)+-parseInt(_0xe04cc4(0x165))/0x9*(-parseInt(_0xe04cc4(0x142))/0xa)+parseInt(_0xe04cc4(0x177))/0xb*(-parseInt(_0xe04cc4(0x174))/0xc);if(_0x42d5bb===_0x28e51d)break;else _0x1a3de4['push'](_0x1a3de4['shift']());}catch(_0x2ddd80){_0x1a3de4['push'](_0x1a3de4['shift']());}}}(a32_0x4001,0x630be));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';function a32_0x3139(_0x2e0962,_0x592b07){_0x2e0962=_0x2e0962-0x142;const _0x4001f6=a32_0x4001();let _0x3139d6=_0x4001f6[_0x2e0962];return _0x3139d6;}function a32_0x4001(){const _0x181709=['Backend\x20Function\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','1539016RIyGck','\x20(local\x20file\x20moved\x20to\x20trash)','map','10829AASkMW','find','functions','stringify','45LDaGVt','keys','\x20\x20-\x20','validation','No\x20lock\x20entry\x20found\x20for\x20\x22','startsWith','1467705PTjaXQ','target','split','Function\x20not\x20found:\x20','filter','4CQHioN','Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name','/api/management/library/scripts/delete','scriptsRootDir','7536bDCbxd','3704JDdEqt','trashDir','26708sNUzDZ','scriptsRoot','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','1360460nctSFS','632013prfVCL','Delete\x20a\x20Backend\x20Function\x20script\x20from\x20remote\x20and\x20local','toISOString','POST','trashedTo','join','replace','remoteId','delete','high-risk-write','string','12RNqHug','appCode','str','apps','length','parse','Would\x20delete\x20','Multiple\x20functions\x20match\x20\x22','Lock\x20scope\x20for\x20app\x20\x22','Backend\x20Function\x20lock\x20file\x20not\x20found.','\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a','505742elTBPl','projectRoot','lockFilePath','bff'];a32_0x4001=function(){return _0x181709;};return a32_0x4001();}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':a32_0x32af4f(0x15c),'command':a32_0x32af4f(0x14b),'description':a32_0x32af4f(0x144),'risk':a32_0x32af4f(0x14c),'flags':[{'name':'target','type':a32_0x32af4f(0x14d),'required':!![],'description':a32_0x32af4f(0x171)}],async 'validate'(_0xb9588d){const _0x27663b=a32_0x32af4f,_0x126e02=loadBffProjectConfig(_0xb9588d[_0x27663b(0x14f)]),_0x3848db=await readBffLockFile(_0x126e02['lockFilePath']);if(!_0x3848db)throw CliErrors[_0x27663b(0x168)](_0x27663b(0x15d));},async 'dryRun'(_0x4ef389){const _0x5af110=a32_0x32af4f,_0xcab1b1=loadBffProjectConfig(_0x4ef389['appCode']),_0x39592e=await readBffLockFile(_0xcab1b1[_0x5af110(0x15b)]);if(!_0x39592e)throw CliErrors[_0x5af110(0x168)](_0x5af110(0x157));const {appLock:_0x1b466d}=ensureLockScope(_0x39592e,_0x4ef389[_0x5af110(0x14f)],_0xcab1b1['scriptsRoot'],_0x5af110(0x14b)),_0x2d22e1=_0x4ef389[_0x5af110(0x150)](_0x5af110(0x16c)),_0x3e5b8d=Object[_0x5af110(0x166)](_0x1b466d[_0x5af110(0x163)]),_0x452660=resolveDeleteTarget(_0x2d22e1,_0x3e5b8d),_0x4445e7=_0x1b466d['functions'][_0x452660];if(!_0x4445e7)throw CliErrors[_0x5af110(0x168)](_0x5af110(0x169)+_0x452660+'\x22.');const _0x4e76b4=resolveLocalFilePathFromLockKey(_0xcab1b1,_0x452660),_0x120e4e=relative(_0xcab1b1[_0x5af110(0x15a)],_0x4e76b4),_0x55cc72=join(_0xcab1b1[_0x5af110(0x176)],'<timestamp>',_0x120e4e);return{'method':_0x5af110(0x146),'url':_0x5af110(0x172),'body':{'appCode':_0x4ef389['appCode'],'target':_0x452660,'remoteId':_0x4445e7[_0x5af110(0x14a)],'localFilePath':_0x4e76b4,'trashedPath':_0x55cc72},'description':_0x5af110(0x154)+_0x452660+_0x5af110(0x179)};},async 'execute'(_0xf43c7d){const _0x591c9a=a32_0x32af4f,_0xaa0da5=loadBffProjectConfig(_0xf43c7d[_0x591c9a(0x14f)]),_0x33c727=await readBffLockFile(_0xaa0da5['lockFilePath']);if(!_0x33c727)throw CliErrors[_0x591c9a(0x168)](_0x591c9a(0x157));const {lockData:_0x5c68b0,appLock:_0x4e0c30}=ensureLockScope(_0x33c727,_0xf43c7d[_0x591c9a(0x14f)],_0xaa0da5[_0x591c9a(0x178)],_0x591c9a(0x14b)),_0x27f179=JSON[_0x591c9a(0x153)](JSON[_0x591c9a(0x164)](_0x5c68b0)),_0x2b4bef=_0x27f179[_0x591c9a(0x151)][_0xf43c7d[_0x591c9a(0x14f)]];if(!_0x2b4bef)throw new Error(_0x591c9a(0x156)+_0xf43c7d[_0x591c9a(0x14f)]+'\x22\x20not\x20found\x20after\x20ensureLockScope.');const _0x55e2db=_0xf43c7d['str'](_0x591c9a(0x16c)),_0x3009c5=Object[_0x591c9a(0x166)](_0x2b4bef['functions']),_0x141846=resolveDeleteTarget(_0x55e2db,_0x3009c5),_0x1bb261=_0x2b4bef[_0x591c9a(0x163)][_0x141846];if(!_0x1bb261)throw CliErrors[_0x591c9a(0x168)](_0x591c9a(0x169)+_0x141846+'\x22.');await deleteBffScript(_0x1bb261[_0x591c9a(0x14a)]),delete _0x2b4bef[_0x591c9a(0x163)][_0x141846],_0x2b4bef['lastSync']=new Date()[_0x591c9a(0x145)](),await writeBffLockFile(_0xaa0da5[_0x591c9a(0x15b)],_0x27f179);const _0x56b7e5=resolveLocalFilePathFromLockKey(_0xaa0da5,_0x141846);let _0x5b022c;await fileExists(_0x56b7e5)&&(_0x5b022c=await moveToTrash(_0xaa0da5[_0x591c9a(0x15a)],_0xaa0da5[_0x591c9a(0x176)],_0x56b7e5),await cleanupEmptyDirectories(dirname(_0x56b7e5),_0xaa0da5[_0x591c9a(0x173)]));await waitForDeleteSettlement(_0xaa0da5[_0x591c9a(0x15b)],_0xf43c7d[_0x591c9a(0x14f)],_0x141846,_0x56b7e5),await sleep(0x96);const _0x4eef80={'deleted':_0x141846,'remoteId':_0x1bb261[_0x591c9a(0x14a)]};if(_0x5b022c)_0x4eef80[_0x591c9a(0x147)]=_0x5b022c;return{'ok':!![],'data':_0x4eef80,'message':'Deleted\x20'+_0x141846+(_0x5b022c?_0x591c9a(0x15f):'')};}};function resolveDeleteTarget(_0x525e31,_0x4a3e85){const _0x234f5e=a32_0x32af4f;if(_0x525e31['includes']('/')){const _0x1568a7=_0x4a3e85[_0x234f5e(0x162)](_0x549d7e=>_0x549d7e===_0x525e31);if(!_0x1568a7)throw CliErrors['validation'](_0x234f5e(0x16e)+_0x525e31);return _0x1568a7;}const _0x34ea38=_0x4a3e85[_0x234f5e(0x16f)](_0x4ac6a2=>_0x4ac6a2[_0x234f5e(0x16d)]('/')['at'](-0x1)===_0x525e31);if(_0x34ea38[_0x234f5e(0x152)]===0x0)throw CliErrors[_0x234f5e(0x168)]('Function\x20not\x20found:\x20'+_0x525e31);if(_0x34ea38['length']>0x1)throw CliErrors[_0x234f5e(0x168)](_0x234f5e(0x155)+_0x525e31+_0x234f5e(0x158)+_0x34ea38[_0x234f5e(0x160)](_0x44dfd6=>_0x234f5e(0x167)+_0x44dfd6)[_0x234f5e(0x148)]('\x0a'));return _0x34ea38[0x0];}async function moveToTrash(_0x3a44a7,_0x12ca74,_0x2946cf){const _0xb26f76=a32_0x32af4f,_0x10d4ee=new Date()[_0xb26f76(0x145)]()[_0xb26f76(0x149)](/[:.]/g,'-'),_0x31825d=relative(_0x3a44a7,_0x2946cf),_0x30f124=join(_0x12ca74,_0x10d4ee,_0x31825d);return await mkdir(dirname(_0x30f124),{'recursive':!![]}),await rename(_0x2946cf,_0x30f124),_0x30f124;}async function cleanupEmptyDirectories(_0x1db6f7,_0x55f3a5){const _0x1a9369=a32_0x32af4f;let _0x425b01=resolve(_0x1db6f7);const _0x47c846=resolve(_0x55f3a5);while(_0x425b01[_0x1a9369(0x16a)](''+_0x47c846+sep)||_0x425b01===_0x47c846){if(_0x425b01===_0x47c846)return;try{const _0x429b93=await readdir(_0x425b01);if(_0x429b93[_0x1a9369(0x152)]>0x0)return;await rmdir(_0x425b01);}catch{return;}_0x425b01=dirname(_0x425b01);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;async function waitForDeleteSettlement(_0x3dd83b,_0x1b40a7,_0x2173ec,_0x1d7fd0){const _0x8a11e8=a32_0x32af4f;for(let _0x513ef0=0x0;_0x513ef0<DELETE_SETTLE_RETRY_COUNT;_0x513ef0+=0x1){const _0x49ed84=await readBffLockFile(_0x3dd83b),_0x528978=!!_0x49ed84?.[_0x8a11e8(0x151)]?.[_0x1b40a7]?.[_0x8a11e8(0x163)]?.[_0x2173ec],_0x5ab59c=await fileExists(_0x1d7fd0);if(!_0x528978&&!_0x5ab59c)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error('Local\x20delete\x20not\x20settled\x20for\x20'+_0x2173ec+'.');}
1
+ const a37_0x56f779=a37_0x3c64;(function(_0x4c43d7,_0x34b4ad){const _0x13f3d3=a37_0x3c64,_0x185d30=_0x4c43d7();while(!![]){try{const _0x39497c=-parseInt(_0x13f3d3(0xf1))/0x1*(-parseInt(_0x13f3d3(0x10f))/0x2)+parseInt(_0x13f3d3(0x106))/0x3*(-parseInt(_0x13f3d3(0xdc))/0x4)+parseInt(_0x13f3d3(0xe2))/0x5*(parseInt(_0x13f3d3(0xda))/0x6)+-parseInt(_0x13f3d3(0xfa))/0x7*(-parseInt(_0x13f3d3(0x10b))/0x8)+-parseInt(_0x13f3d3(0xf4))/0x9*(-parseInt(_0x13f3d3(0xea))/0xa)+-parseInt(_0x13f3d3(0xf6))/0xb*(parseInt(_0x13f3d3(0xe5))/0xc)+-parseInt(_0x13f3d3(0x10a))/0xd;if(_0x39497c===_0x34b4ad)break;else _0x185d30['push'](_0x185d30['shift']());}catch(_0x1c2af6){_0x185d30['push'](_0x185d30['shift']());}}}(a37_0x4111,0x4e2f4));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteBffScript}from'../../core/api-client.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{fileExists,resolveLocalFilePathFromLockKey}from'../../core/bff/file-system.js';import{ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{CliErrors}from'../../errors.js';import{sleep}from'../../utils/sleep.js';function a37_0x4111(){const _0x358599=['split','trashDir','Multiple\x20functions\x20match\x20\x22','trashedTo','2214SxfSwM','delete','644aZmbPV','<timestamp>','Backend\x20Function\x20lock\x20file\x20not\x20found.','startsWith','\x20\x20-\x20','Backend\x20Function\x20lock\x20file\x20not\x20found.\x20Run\x20`push`\x20or\x20`pull`\x20first\x20to\x20initialize\x20sync\x20state.','5575ROlYtw','toISOString','Local\x20delete\x20not\x20settled\x20for\x20','12kxOBvQ','POST','includes','str','validation','4017200YfiGQF','Lock\x20scope\x20for\x20app\x20\x22','apps','target','join','Delete\x20a\x20Backend\x20Function\x20script\x20from\x20remote\x20and\x20local','scriptsRoot','17SmZeDH','appCode','scriptsRootDir','9YemWbO','map','2439041PatzHL','functions','lockFilePath','find','7KZrUaY','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20trash','parse','replace','/api/management/library/scripts/delete','keys','\x22\x20not\x20found\x20after\x20ensureLockScope.','projectRoot','remoteId','No\x20lock\x20entry\x20found\x20for\x20\x22','string','Function\x20not\x20found:\x20','10623MHCnDM','Would\x20delete\x20','\x22.\x20Use\x20the\x20full\x20lock\x20key:\x0a','lastSync','6655805tjmDqX','3235216QPiMft','\x20(local\x20file\x20moved\x20to\x20trash)','high-risk-write','bff','47824JFUWFE'];a37_0x4111=function(){return _0x358599;};return a37_0x4111();}export const bffDelete={'service':a37_0x56f779(0x10e),'command':'delete','description':a37_0x56f779(0xef),'risk':a37_0x56f779(0x10d),'flags':[{'name':a37_0x56f779(0xed),'type':a37_0x56f779(0x104),'required':!![],'description':'Lock\x20key\x20(e.g.\x20ENDPOINT/createOrder)\x20or\x20short\x20function\x20name'}],async 'validate'(_0x1295fe){const _0x31d29d=a37_0x56f779,_0x42bb55=loadBffProjectConfig(_0x1295fe['appCode']),_0x3224d1=await readBffLockFile(_0x42bb55[_0x31d29d(0xf8)]);if(!_0x3224d1)throw CliErrors[_0x31d29d(0xe9)](_0x31d29d(0xe1));},async 'dryRun'(_0x318631){const _0x10df36=a37_0x56f779,_0x3eab9e=loadBffProjectConfig(_0x318631[_0x10df36(0xf2)]),_0x4a7d6b=await readBffLockFile(_0x3eab9e['lockFilePath']);if(!_0x4a7d6b)throw CliErrors['validation'](_0x10df36(0xde));const {appLock:_0x515572}=ensureLockScope(_0x4a7d6b,_0x318631[_0x10df36(0xf2)],_0x3eab9e[_0x10df36(0xf0)],_0x10df36(0xdb)),_0x268ca2=_0x318631[_0x10df36(0xe8)](_0x10df36(0xed)),_0x2d2b60=Object[_0x10df36(0xff)](_0x515572[_0x10df36(0xf7)]),_0x3488ad=resolveDeleteTarget(_0x268ca2,_0x2d2b60),_0xe05935=_0x515572[_0x10df36(0xf7)][_0x3488ad];if(!_0xe05935)throw CliErrors['validation'](_0x10df36(0x103)+_0x3488ad+'\x22.');const _0x3aa5be=resolveLocalFilePathFromLockKey(_0x3eab9e,_0x3488ad),_0x2bd29e=relative(_0x3eab9e[_0x10df36(0x101)],_0x3aa5be),_0x21eb35=join(_0x3eab9e[_0x10df36(0x111)],_0x10df36(0xdd),_0x2bd29e);return{'method':_0x10df36(0xe6),'url':_0x10df36(0xfe),'body':{'appCode':_0x318631['appCode'],'target':_0x3488ad,'remoteId':_0xe05935['remoteId'],'localFilePath':_0x3aa5be,'trashedPath':_0x21eb35},'description':_0x10df36(0x107)+_0x3488ad+_0x10df36(0xfb)};},async 'execute'(_0xaedb04){const _0x102b1a=a37_0x56f779,_0x41a8c0=loadBffProjectConfig(_0xaedb04[_0x102b1a(0xf2)]),_0x5b57f0=await readBffLockFile(_0x41a8c0[_0x102b1a(0xf8)]);if(!_0x5b57f0)throw CliErrors[_0x102b1a(0xe9)](_0x102b1a(0xde));const {lockData:_0x49ffe5,appLock:_0x3ada8e}=ensureLockScope(_0x5b57f0,_0xaedb04[_0x102b1a(0xf2)],_0x41a8c0[_0x102b1a(0xf0)],_0x102b1a(0xdb)),_0x23531c=JSON[_0x102b1a(0xfc)](JSON['stringify'](_0x49ffe5)),_0x39980d=_0x23531c[_0x102b1a(0xec)][_0xaedb04['appCode']];if(!_0x39980d)throw new Error(_0x102b1a(0xeb)+_0xaedb04[_0x102b1a(0xf2)]+_0x102b1a(0x100));const _0x4a7542=_0xaedb04[_0x102b1a(0xe8)](_0x102b1a(0xed)),_0x57460e=Object[_0x102b1a(0xff)](_0x39980d[_0x102b1a(0xf7)]),_0x560d20=resolveDeleteTarget(_0x4a7542,_0x57460e),_0x5ecfef=_0x39980d['functions'][_0x560d20];if(!_0x5ecfef)throw CliErrors[_0x102b1a(0xe9)](_0x102b1a(0x103)+_0x560d20+'\x22.');await deleteBffScript(_0x5ecfef['remoteId']),delete _0x39980d['functions'][_0x560d20],_0x39980d[_0x102b1a(0x109)]=new Date()[_0x102b1a(0xe3)](),await writeBffLockFile(_0x41a8c0[_0x102b1a(0xf8)],_0x23531c);const _0x2ed96c=resolveLocalFilePathFromLockKey(_0x41a8c0,_0x560d20);let _0x50b5e2;await fileExists(_0x2ed96c)&&(_0x50b5e2=await moveToTrash(_0x41a8c0[_0x102b1a(0x101)],_0x41a8c0[_0x102b1a(0x111)],_0x2ed96c),await cleanupEmptyDirectories(dirname(_0x2ed96c),_0x41a8c0[_0x102b1a(0xf3)]));await waitForDeleteSettlement(_0x41a8c0[_0x102b1a(0xf8)],_0xaedb04[_0x102b1a(0xf2)],_0x560d20,_0x2ed96c),await sleep(0x96);const _0x1600a3={'deleted':_0x560d20,'remoteId':_0x5ecfef[_0x102b1a(0x102)]};if(_0x50b5e2)_0x1600a3[_0x102b1a(0x113)]=_0x50b5e2;return{'ok':!![],'data':_0x1600a3,'message':'Deleted\x20'+_0x560d20+(_0x50b5e2?_0x102b1a(0x10c):'')};}};function a37_0x3c64(_0x235da1,_0x532af3){_0x235da1=_0x235da1-0xda;const _0x411180=a37_0x4111();let _0x3c649b=_0x411180[_0x235da1];return _0x3c649b;}function resolveDeleteTarget(_0x1ca24c,_0x239264){const _0x28e5f0=a37_0x56f779;if(_0x1ca24c[_0x28e5f0(0xe7)]('/')){const _0x21bd55=_0x239264[_0x28e5f0(0xf9)](_0x307e73=>_0x307e73===_0x1ca24c);if(!_0x21bd55)throw CliErrors[_0x28e5f0(0xe9)](_0x28e5f0(0x105)+_0x1ca24c);return _0x21bd55;}const _0x4dc66f=_0x239264['filter'](_0x51f745=>_0x51f745[_0x28e5f0(0x110)]('/')['at'](-0x1)===_0x1ca24c);if(_0x4dc66f['length']===0x0)throw CliErrors[_0x28e5f0(0xe9)](_0x28e5f0(0x105)+_0x1ca24c);if(_0x4dc66f['length']>0x1)throw CliErrors[_0x28e5f0(0xe9)](_0x28e5f0(0x112)+_0x1ca24c+_0x28e5f0(0x108)+_0x4dc66f[_0x28e5f0(0xf5)](_0x559cda=>_0x28e5f0(0xe0)+_0x559cda)[_0x28e5f0(0xee)]('\x0a'));return _0x4dc66f[0x0];}async function moveToTrash(_0x46f4db,_0x29cbce,_0x237bcf){const _0x54da01=a37_0x56f779,_0x4b8709=new Date()['toISOString']()[_0x54da01(0xfd)](/[:.]/g,'-'),_0x19446c=relative(_0x46f4db,_0x237bcf),_0x55987f=join(_0x29cbce,_0x4b8709,_0x19446c);return await mkdir(dirname(_0x55987f),{'recursive':!![]}),await rename(_0x237bcf,_0x55987f),_0x55987f;}async function cleanupEmptyDirectories(_0xaefdbb,_0xc75540){const _0x3d9063=a37_0x56f779;let _0x2d2115=resolve(_0xaefdbb);const _0x4de05c=resolve(_0xc75540);while(_0x2d2115[_0x3d9063(0xdf)](''+_0x4de05c+sep)||_0x2d2115===_0x4de05c){if(_0x2d2115===_0x4de05c)return;try{const _0x68c960=await readdir(_0x2d2115);if(_0x68c960['length']>0x0)return;await rmdir(_0x2d2115);}catch{return;}_0x2d2115=dirname(_0x2d2115);}}const DELETE_SETTLE_RETRY_COUNT=0x14,DELETE_SETTLE_DELAY_MS=0x64;async function waitForDeleteSettlement(_0x1152ad,_0xd029ed,_0x735f64,_0x33bc95){const _0x137c02=a37_0x56f779;for(let _0x189bae=0x0;_0x189bae<DELETE_SETTLE_RETRY_COUNT;_0x189bae+=0x1){const _0x2c2f67=await readBffLockFile(_0x1152ad),_0x18818b=!!_0x2c2f67?.[_0x137c02(0xec)]?.[_0xd029ed]?.['functions']?.[_0x735f64],_0x3927af=await fileExists(_0x33bc95);if(!_0x18818b&&!_0x3927af)return;await sleep(DELETE_SETTLE_DELAY_MS);}throw new Error(_0x137c02(0xe4)+_0x735f64+'.');}
@@ -1 +1 @@
1
- function a33_0x280e(_0x5b1cb9,_0x3eee8b){_0x5b1cb9=_0x5b1cb9-0x125;const _0x129664=a33_0x1296();let _0x280eae=_0x129664[_0x5b1cb9];return _0x280eae;}const a33_0x592c54=a33_0x280e;(function(_0x4cda98,_0x194fd8){const _0x309c53=a33_0x280e,_0x14e694=_0x4cda98();while(!![]){try{const _0x2a9bf3=parseInt(_0x309c53(0x12c))/0x1+parseInt(_0x309c53(0x12b))/0x2*(-parseInt(_0x309c53(0x136))/0x3)+-parseInt(_0x309c53(0x132))/0x4+-parseInt(_0x309c53(0x127))/0x5*(-parseInt(_0x309c53(0x13c))/0x6)+parseInt(_0x309c53(0x126))/0x7*(parseInt(_0x309c53(0x125))/0x8)+parseInt(_0x309c53(0x139))/0x9+-parseInt(_0x309c53(0x12a))/0xa;if(_0x2a9bf3===_0x194fd8)break;else _0x14e694['push'](_0x14e694['shift']());}catch(_0x5b57d8){_0x14e694['push'](_0x14e694['shift']());}}}(a33_0x1296,0xde1c4));import{getBffScriptInfo}from'../../core/api-client.js';export const bffDetail={'service':a33_0x592c54(0x138),'command':a33_0x592c54(0x128),'description':a33_0x592c54(0x131),'risk':'read','flags':[{'name':'id','type':a33_0x592c54(0x135),'required':!![],'description':a33_0x592c54(0x12e)},{'name':a33_0x592c54(0x133),'type':a33_0x592c54(0x12f),'description':'Return\x20full\x20raw\x20script\x20object'}],async 'execute'(_0x3e277e){const _0x185bdf=a33_0x592c54,_0x2e78cf=await getBffScriptInfo(_0x3e277e[_0x185bdf(0x13b)]('id')),_0x20cc97=_0x3e277e['bool'](_0x185bdf(0x133));if(_0x20cc97)return{'ok':!![],'data':_0x2e78cf};return{'ok':!![],'data':{'id':_0x2e78cf['id'],'functionName':_0x2e78cf['functionName']??'','version':_0x2e78cf['version']??'','updateUserName':_0x2e78cf[_0x185bdf(0x137)]??'','appCode':_0x2e78cf[_0x185bdf(0x13d)],'scriptType':_0x2e78cf[_0x185bdf(0x129)],'description':_0x2e78cf[_0x185bdf(0x12d)]||'(none)','createdTime':_0x2e78cf[_0x185bdf(0x134)]??'','updatedTime':_0x2e78cf[_0x185bdf(0x130)]??'','scriptContent':_0x2e78cf[_0x185bdf(0x13a)]??''}};}};function a33_0x1296(){const _0x388c55=['2417760ovzjOR','scriptContent','num','12QZUauD','appCode','53488vRpsAJ','1561dcfcHI','552395QlyLgx','detail','scriptType','6477140WkUlIB','2TNTjaD','628802rukmVO','description','Script\x20ID','boolean','updatedTime','Get\x20Backend\x20Function\x20script\x20details\x20by\x20ID','2967356naFJdD','verbose','createdTime','number','930183XcVUOm','updateUserName','bff'];a33_0x1296=function(){return _0x388c55;};return a33_0x1296();}
1
+ const a38_0x198170=a38_0x4524;(function(_0x50ca6a,_0x39f2f2){const _0x59c77b=a38_0x4524,_0xd74c6b=_0x50ca6a();while(!![]){try{const _0x9aeab3=parseInt(_0x59c77b(0xc9))/0x1*(parseInt(_0x59c77b(0xd3))/0x2)+-parseInt(_0x59c77b(0xc7))/0x3+parseInt(_0x59c77b(0xd4))/0x4*(-parseInt(_0x59c77b(0xd0))/0x5)+-parseInt(_0x59c77b(0xca))/0x6*(parseInt(_0x59c77b(0xbd))/0x7)+-parseInt(_0x59c77b(0xc2))/0x8*(parseInt(_0x59c77b(0xba))/0x9)+parseInt(_0x59c77b(0xc4))/0xa*(-parseInt(_0x59c77b(0xc5))/0xb)+parseInt(_0x59c77b(0xc1))/0xc;if(_0x9aeab3===_0x39f2f2)break;else _0xd74c6b['push'](_0xd74c6b['shift']());}catch(_0x11f9ce){_0xd74c6b['push'](_0xd74c6b['shift']());}}}(a38_0x34ea,0x3f914));import{getBffScriptInfo}from'../../core/api-client.js';function a38_0x34ea(){const _0x243645=['Script\x20ID','7dPXzdW','bff','appCode','Return\x20full\x20raw\x20script\x20object','24251496ONMjDQ','1112oCBwLq','read','10220NRLwtq','5049uqaZeD','scriptType','696510nCtUbi','Get\x20Backend\x20Function\x20script\x20details\x20by\x20ID','9886jMTyWq','2371866Kmbcmh','(none)','verbose','scriptContent','detail','updatedTime','1229230biEdsR','boolean','description','38Lrowik','8wsKQvn','23319ZhejIk','updateUserName'];a38_0x34ea=function(){return _0x243645;};return a38_0x34ea();}function a38_0x4524(_0x185a98,_0x309ef6){_0x185a98=_0x185a98-0xba;const _0x34eae2=a38_0x34ea();let _0x45240b=_0x34eae2[_0x185a98];return _0x45240b;}export const bffDetail={'service':a38_0x198170(0xbe),'command':a38_0x198170(0xce),'description':a38_0x198170(0xc8),'risk':a38_0x198170(0xc3),'flags':[{'name':'id','type':'number','required':!![],'description':a38_0x198170(0xbc)},{'name':a38_0x198170(0xcc),'type':a38_0x198170(0xd1),'description':a38_0x198170(0xc0)}],async 'execute'(_0x26f7ab){const _0x5783b9=a38_0x198170,_0x4bbf93=await getBffScriptInfo(_0x26f7ab['num']('id')),_0x1a5217=_0x26f7ab['bool'](_0x5783b9(0xcc));if(_0x1a5217)return{'ok':!![],'data':_0x4bbf93};return{'ok':!![],'data':{'id':_0x4bbf93['id'],'functionName':_0x4bbf93['functionName']??'','version':_0x4bbf93['version']??'','updateUserName':_0x4bbf93[_0x5783b9(0xbb)]??'','appCode':_0x4bbf93[_0x5783b9(0xbf)],'scriptType':_0x4bbf93[_0x5783b9(0xc6)],'description':_0x4bbf93[_0x5783b9(0xd2)]||_0x5783b9(0xcb),'createdTime':_0x4bbf93['createdTime']??'','updatedTime':_0x4bbf93[_0x5783b9(0xcf)]??'','scriptContent':_0x4bbf93[_0x5783b9(0xcd)]??''}};}};
@@ -1 +1 @@
1
- (function(_0x191737,_0x406fd0){const _0x1e47a2=a34_0x38ac,_0x52fd8e=_0x191737();while(!![]){try{const _0x560eff=-parseInt(_0x1e47a2(0x1c0))/0x1+parseInt(_0x1e47a2(0x1c2))/0x2+-parseInt(_0x1e47a2(0x1bf))/0x3*(-parseInt(_0x1e47a2(0x1c4))/0x4)+parseInt(_0x1e47a2(0x1be))/0x5+-parseInt(_0x1e47a2(0x1bd))/0x6+parseInt(_0x1e47a2(0x1c5))/0x7+parseInt(_0x1e47a2(0x1c1))/0x8*(-parseInt(_0x1e47a2(0x1c3))/0x9);if(_0x560eff===_0x406fd0)break;else _0x52fd8e['push'](_0x52fd8e['shift']());}catch(_0x3372e4){_0x52fd8e['push'](_0x52fd8e['shift']());}}}(a34_0x1fcc,0x9b48a));import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';function a34_0x38ac(_0x7be074,_0x2a1152){_0x7be074=_0x7be074-0x1bd;const _0x1fcc06=a34_0x1fcc();let _0x38ac52=_0x1fcc06[_0x7be074];return _0x38ac52;}import{bffStatus}from'../../commands/bff/status.js';import{bffCreate}from'../../commands/bff/create.js';import{bffPush}from'../../commands/bff/push.js';import{bffPull}from'../../commands/bff/pull.js';import{bffDelete}from'../../commands/bff/delete.js';function a34_0x1fcc(){const _0x428b2d=['4340042bRbdfo','6761778EatROh','4877405ODxGMj','1621026pKYIpA','733112dndmYf','4072ekOFYV','1519706yESZrg','7065VVLAVf','4SKWpwd'];a34_0x1fcc=function(){return _0x428b2d;};return a34_0x1fcc();}import{bffLogs}from'../../commands/bff/logs.js';export const bffDefinitions=[bffList,bffDetail,bffLogs,bffStatus,bffCreate,bffPush,bffPull,bffDelete];
1
+ function a39_0x9222(_0x520d90,_0x502382){_0x520d90=_0x520d90-0xa8;const _0x5eb146=a39_0x5eb1();let _0x9222c=_0x5eb146[_0x520d90];return _0x9222c;}(function(_0x2a3605,_0x3b4e15){const _0x33a88b=a39_0x9222,_0xc8698c=_0x2a3605();while(!![]){try{const _0x401808=-parseInt(_0x33a88b(0xaf))/0x1*(-parseInt(_0x33a88b(0xb1))/0x2)+parseInt(_0x33a88b(0xa9))/0x3*(-parseInt(_0x33a88b(0xb0))/0x4)+parseInt(_0x33a88b(0xad))/0x5+parseInt(_0x33a88b(0xac))/0x6+-parseInt(_0x33a88b(0xa8))/0x7+parseInt(_0x33a88b(0xaa))/0x8*(parseInt(_0x33a88b(0xab))/0x9)+parseInt(_0x33a88b(0xae))/0xa*(-parseInt(_0x33a88b(0xb2))/0xb);if(_0x401808===_0x3b4e15)break;else _0xc8698c['push'](_0xc8698c['shift']());}catch(_0x4b9cca){_0xc8698c['push'](_0xc8698c['shift']());}}}(a39_0x5eb1,0xea65d));import{bffList}from'../../commands/bff/list.js';import{bffDetail}from'../../commands/bff/detail.js';function a39_0x5eb1(){const _0x2bcd15=['1268FSmjSU','144016fDhtBi','2407922nkUuqx','699881RINPzK','17742TckRim','3228256vlhhhk','18bQgtvQ','5033346DVPDvg','2498245LUYfPl','10GtbzbC','14mwNdfU'];a39_0x5eb1=function(){return _0x2bcd15;};return a39_0x5eb1();}import{bffStatus}from'../../commands/bff/status.js';import{bffCreate}from'../../commands/bff/create.js';import{bffPush}from'../../commands/bff/push.js';import{bffPull}from'../../commands/bff/pull.js';import{bffDelete}from'../../commands/bff/delete.js';import{bffLogs}from'../../commands/bff/logs.js';export const bffDefinitions=[bffList,bffDetail,bffLogs,bffStatus,bffCreate,bffPush,bffPull,bffDelete];
@@ -1 +1 @@
1
- const a35_0x319be2=a35_0x5f4c;function a35_0x3d39(){const _0x53acd9=['COMMON','10YLHuaS','2712GJzKFu','1rwoFMh','name','ENDPOINT','No\x20Backend\x20Function\x20scripts\x20found.','functionName','12zZhAml','4374VNCJNL','length','2060388puvMuK','map','602277FQSnAn','type','bff','28535ddEspw','appCode','Filter\x20by\x20script\x20name','1581362zeuixa','7eHCSVl','verbose','scriptType','str','2637459HZANOj','2460318wCHwKG','read','list','description','Script\x20type\x20filter','string'];a35_0x3d39=function(){return _0x53acd9;};return a35_0x3d39();}(function(_0x1193ef,_0x20ea44){const _0x1c66cb=a35_0x5f4c,_0x49e746=_0x1193ef();while(!![]){try{const _0xf017c4=-parseInt(_0x1c66cb(0x9d))/0x1*(-parseInt(_0x1c66cb(0x8e))/0x2)+parseInt(_0x1c66cb(0x88))/0x3+-parseInt(_0x1c66cb(0x83))/0x4*(parseInt(_0x1c66cb(0x8b))/0x5)+-parseInt(_0x1c66cb(0x94))/0x6*(parseInt(_0x1c66cb(0x8f))/0x7)+parseInt(_0x1c66cb(0x9c))/0x8*(-parseInt(_0x1c66cb(0x84))/0x9)+parseInt(_0x1c66cb(0x9b))/0xa*(parseInt(_0x1c66cb(0x93))/0xb)+parseInt(_0x1c66cb(0x86))/0xc;if(_0xf017c4===_0x20ea44)break;else _0x49e746['push'](_0x49e746['shift']());}catch(_0x2d2a3c){_0x49e746['push'](_0x49e746['shift']());}}}(a35_0x3d39,0xc5fe4));function a35_0x5f4c(_0x403537,_0x1ea75c){_0x403537=_0x403537-0x80;const _0x3d39cb=a35_0x3d39();let _0x5f4c05=_0x3d39cb[_0x403537];return _0x5f4c05;}import{listBffScripts}from'../../core/api-client.js';export const bffList={'service':a35_0x319be2(0x8a),'command':a35_0x319be2(0x96),'description':'List\x20Backend\x20Function\x20scripts','risk':a35_0x319be2(0x95),'flags':[{'name':'type','type':a35_0x319be2(0x99),'description':a35_0x319be2(0x98),'default':'ENDPOINT','enum':[a35_0x319be2(0x80),a35_0x319be2(0x9a)]},{'name':a35_0x319be2(0x9e),'type':a35_0x319be2(0x99),'description':a35_0x319be2(0x8d)},{'name':'verbose','type':'boolean','description':'Return\x20full\x20script\x20objects'}],async 'execute'(_0x46c463){const _0x39c8ab=a35_0x319be2,_0x35196b=await listBffScripts(_0x46c463[_0x39c8ab(0x8c)],_0x46c463[_0x39c8ab(0x92)](_0x39c8ab(0x89)),{'scriptName':_0x46c463[_0x39c8ab(0x92)](_0x39c8ab(0x9e))||undefined}),_0xd8d0c=_0x46c463['bool'](_0x39c8ab(0x90));return{'ok':!![],'data':_0xd8d0c?_0x35196b:_0x35196b[_0x39c8ab(0x87)](_0x4cdae2=>({'id':_0x4cdae2['id'],'functionName':_0x4cdae2[_0x39c8ab(0x82)]??'','description':_0x4cdae2[_0x39c8ab(0x97)]||'(unnamed)','scriptType':_0x4cdae2[_0x39c8ab(0x91)]})),'message':_0x35196b[_0x39c8ab(0x85)]===0x0?_0x39c8ab(0x81):undefined};}};
1
+ const a40_0x51e2c4=a40_0x4c0a;function a40_0x4b7c(){const _0x27bea1=['COMMON','14TDonqI','19997lckLBf','type','No\x20Backend\x20Function\x20scripts\x20found.','scriptType','str','bff','4053310zOkoKp','ENDPOINT','functionName','Script\x20type\x20filter','544QxBPdS','1145064CXlWHj','appCode','verbose','string','9tCUbFJ','map','bool','name','329235pqGrVP','5529UjJClE','description','length','read','164790smMwom','1447439oEXbHT','(unnamed)'];a40_0x4b7c=function(){return _0x27bea1;};return a40_0x4b7c();}(function(_0x3c2d6f,_0x136069){const _0xae0ef3=a40_0x4c0a,_0x1ff426=_0x3c2d6f();while(!![]){try{const _0x4d6205=-parseInt(_0xae0ef3(0x187))/0x1*(parseInt(_0xae0ef3(0x186))/0x2)+-parseInt(_0xae0ef3(0x17e))/0x3*(-parseInt(_0xae0ef3(0x174))/0x4)+-parseInt(_0xae0ef3(0x17d))/0x5+parseInt(_0xae0ef3(0x182))/0x6+-parseInt(_0xae0ef3(0x183))/0x7+-parseInt(_0xae0ef3(0x175))/0x8*(parseInt(_0xae0ef3(0x179))/0x9)+parseInt(_0xae0ef3(0x170))/0xa;if(_0x4d6205===_0x136069)break;else _0x1ff426['push'](_0x1ff426['shift']());}catch(_0x2f658e){_0x1ff426['push'](_0x1ff426['shift']());}}}(a40_0x4b7c,0x1f2dc));import{listBffScripts}from'../../core/api-client.js';function a40_0x4c0a(_0x30481f,_0x21e617){_0x30481f=_0x30481f-0x16f;const _0x4b7ce6=a40_0x4b7c();let _0x4c0a7f=_0x4b7ce6[_0x30481f];return _0x4c0a7f;}export const bffList={'service':a40_0x51e2c4(0x16f),'command':'list','description':'List\x20Backend\x20Function\x20scripts','risk':a40_0x51e2c4(0x181),'flags':[{'name':a40_0x51e2c4(0x188),'type':a40_0x51e2c4(0x178),'description':a40_0x51e2c4(0x173),'default':a40_0x51e2c4(0x171),'enum':[a40_0x51e2c4(0x171),a40_0x51e2c4(0x185)]},{'name':a40_0x51e2c4(0x17c),'type':'string','description':'Filter\x20by\x20script\x20name'},{'name':a40_0x51e2c4(0x177),'type':'boolean','description':'Return\x20full\x20script\x20objects'}],async 'execute'(_0x3fc0a2){const _0x55b49d=a40_0x51e2c4,_0x2c6bc3=await listBffScripts(_0x3fc0a2[_0x55b49d(0x176)],_0x3fc0a2[_0x55b49d(0x18b)](_0x55b49d(0x188)),{'scriptName':_0x3fc0a2[_0x55b49d(0x18b)]('name')||undefined}),_0x58ec7f=_0x3fc0a2[_0x55b49d(0x17b)](_0x55b49d(0x177));return{'ok':!![],'data':_0x58ec7f?_0x2c6bc3:_0x2c6bc3[_0x55b49d(0x17a)](_0x611feb=>({'id':_0x611feb['id'],'functionName':_0x611feb[_0x55b49d(0x172)]??'','description':_0x611feb[_0x55b49d(0x17f)]||_0x55b49d(0x184),'scriptType':_0x611feb[_0x55b49d(0x18a)]})),'message':_0x2c6bc3[_0x55b49d(0x180)]===0x0?_0x55b49d(0x189):undefined};}};
@@ -1 +1 @@
1
- const a36_0x5d302b=a36_0x59ad;function a36_0x59ad(_0x5cdd10,_0x54073e){_0x5cdd10=_0x5cdd10-0x18c;const _0xe86340=a36_0xe863();let _0x59ade1=_0xe86340[_0x5cdd10];return _0x59ade1;}(function(_0x1da448,_0x29a309){const _0x2248bb=a36_0x59ad,_0x309e05=_0x1da448();while(!![]){try{const _0x292ca4=parseInt(_0x2248bb(0x19c))/0x1*(-parseInt(_0x2248bb(0x1b3))/0x2)+parseInt(_0x2248bb(0x1b0))/0x3*(parseInt(_0x2248bb(0x195))/0x4)+parseInt(_0x2248bb(0x18f))/0x5*(-parseInt(_0x2248bb(0x1a7))/0x6)+parseInt(_0x2248bb(0x18d))/0x7*(parseInt(_0x2248bb(0x198))/0x8)+-parseInt(_0x2248bb(0x1a0))/0x9*(parseInt(_0x2248bb(0x1aa))/0xa)+-parseInt(_0x2248bb(0x196))/0xb+-parseInt(_0x2248bb(0x1b6))/0xc;if(_0x292ca4===_0x29a309)break;else _0x309e05['push'](_0x309e05['shift']());}catch(_0x7fe018){_0x309e05['push'](_0x309e05['shift']());}}}(a36_0xe863,0xd4659));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=[a36_0x5d302b(0x1a1),a36_0x5d302b(0x19f),'WARN',a36_0x5d302b(0x1ad)];export function resolveBffLogQuery(_0x18d0fd,_0x3fa1a4=Date[a36_0x5d302b(0x1b8)]()){const _0x10f64f=a36_0x5d302b,_0x2a6f74=_0x18d0fd[_0x10f64f(0x1af)](_0x10f64f(0x18e)),_0x1e784c=_0x18d0fd[_0x10f64f(0x1af)](_0x10f64f(0x1a8)),_0x3eb225=_0x18d0fd[_0x10f64f(0x1af)]('end-time');if(_0x2a6f74!==undefined&&_0x1e784c!==undefined)throw CliErrors[_0x10f64f(0x1ae)](_0x10f64f(0x19b));const _0x3e01cf=_0x3eb225===undefined?_0x3fa1a4:readPositiveInteger(_0x18d0fd['num'](_0x10f64f(0x1b2)),'--end-time'),_0x502d47=_0x1e784c===undefined?_0x3e01cf-readSinceMinutes(_0x18d0fd)*0xea60:readPositiveInteger(_0x18d0fd[_0x10f64f(0x190)](_0x10f64f(0x1a8)),_0x10f64f(0x1b9));if(_0x502d47<=0x0)throw CliErrors[_0x10f64f(0x1ae)](_0x10f64f(0x191));if(_0x502d47>_0x3e01cf)throw CliErrors[_0x10f64f(0x1ae)]('--start-time\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20--end-time.');const _0x1d2ad7=readPositiveInteger(_0x18d0fd[_0x10f64f(0x190)](_0x10f64f(0x1a4),DEFAULT_LIMIT),'--limit');if(_0x1d2ad7>MAX_LIMIT)throw CliErrors['validation'](_0x10f64f(0x19d)+MAX_LIMIT+'.');const _0xd26123=_0x18d0fd[_0x10f64f(0x1b7)]('level')[_0x10f64f(0x193)]()['toUpperCase']()||undefined,_0x5d7a57=_0x18d0fd[_0x10f64f(0x1b7)](_0x10f64f(0x1a3))[_0x10f64f(0x193)]()||undefined;return{'appCode':_0x18d0fd[_0x10f64f(0x1ac)],'startTime':_0x502d47,'endTime':_0x3e01cf,..._0x1e784c===undefined?{'sinceMinutes':readSinceMinutes(_0x18d0fd)}:{},..._0xd26123?{'level':_0xd26123}:{},..._0x5d7a57?{'keyword':_0x5d7a57}:{},'limit':_0x1d2ad7};}function readSinceMinutes(_0x155038){const _0x2fc33e=a36_0x5d302b;return readPositiveInteger(_0x155038['num'](_0x2fc33e(0x18e),DEFAULT_SINCE_MINUTES),_0x2fc33e(0x1a6));}function a36_0xe863(){const _0x27f54a=['--since','1308IwpRGw','start-time','read','41830oQJflt','Query\x20end\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds\x20(default:\x20now)','appCode','ERROR','validation','flag','39bMNSZd','Query\x20start\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds','end-time','19498HkkZoJ','Found\x20','length','161172GpfPVx','str','now','--start-time','Minutes\x20before\x20the\x20end\x20time\x20to\x20query\x20(default:\x20','number','145523QmgzGZ','since','23995olFpag','num','The\x20resolved\x20log\x20start\x20time\x20must\x20be\x20greater\x20than\x200.','No\x20Backend\x20Function\x20logs\x20found\x20for\x20the\x20selected\x20range.','trim','Maximum\x20log\x20lines\x20to\x20return\x20(1-','532324kHUmjU','71181PkSFaF','logs','568WdeIVx','Filter\x20by\x20log\x20level','isSafeInteger','--since\x20cannot\x20be\x20combined\x20with\x20--start-time.','20GbapxR','--limit\x20must\x20be\x20between\x201\x20and\x20','Query\x20recent\x20Backend\x20Function\x20runtime\x20logs\x20for\x20development\x20debugging','INFO','2313ESeDPb','DEBUG','string','keyword','limit','\x20must\x20be\x20a\x20positive\x20integer.'];a36_0xe863=function(){return _0x27f54a;};return a36_0xe863();}function readPositiveInteger(_0x81d0ac,_0xaf65b8){const _0x1df005=a36_0x5d302b;if(!Number[_0x1df005(0x19a)](_0x81d0ac)||_0x81d0ac<=0x0)throw CliErrors[_0x1df005(0x1ae)](_0xaf65b8+_0x1df005(0x1a5));return _0x81d0ac;}export const bffLogs={'service':'bff','command':a36_0x5d302b(0x197),'description':a36_0x5d302b(0x19e),'risk':a36_0x5d302b(0x1a9),'structuredErrors':!![],'flags':[APPCODE_FLAG_OPTIONAL,{'name':a36_0x5d302b(0x18e),'type':'number','description':a36_0x5d302b(0x1ba)+DEFAULT_SINCE_MINUTES+')'},{'name':a36_0x5d302b(0x1a8),'type':a36_0x5d302b(0x18c),'description':a36_0x5d302b(0x1b1)},{'name':a36_0x5d302b(0x1b2),'type':a36_0x5d302b(0x18c),'description':a36_0x5d302b(0x1ab)},{'name':'level','type':'string','description':a36_0x5d302b(0x199),'enum':LOG_LEVELS},{'name':a36_0x5d302b(0x1a3),'type':a36_0x5d302b(0x1a2),'description':'Filter\x20formatted\x20log\x20lines\x20by\x20keyword'},{'name':a36_0x5d302b(0x1a4),'type':a36_0x5d302b(0x18c),'description':a36_0x5d302b(0x194)+MAX_LIMIT+')','default':DEFAULT_LIMIT}],async 'validate'(_0x3c0b08){resolveBffLogQuery(_0x3c0b08);},async 'execute'(_0x12a447){const _0x29d481=a36_0x5d302b,_0x40e7de=resolveBffLogQuery(_0x12a447),{sinceMinutes:_0x152a0f,..._0x2d7e03}=_0x40e7de,_0x2b8f0b=await searchBffScriptLogs(_0x2d7e03);return{'ok':!![],'data':{'query':_0x40e7de,'count':_0x2b8f0b['length'],'logs':_0x2b8f0b},'message':_0x2b8f0b[_0x29d481(0x1b5)]===0x0?_0x29d481(0x192):_0x29d481(0x1b4)+_0x2b8f0b['length']+'\x20Backend\x20Function\x20log\x20line(s).'};}};
1
+ function a41_0x15cc(){const _0x1ed1c6=['DEBUG','--start-time','2950EajpGV','Query\x20end\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds\x20(default:\x20now)','\x20must\x20be\x20a\x20positive\x20integer.','12rGuxAm','6324nErSWs','str','flag','Query\x20recent\x20Backend\x20Function\x20runtime\x20logs\x20for\x20development\x20debugging','logs','Maximum\x20log\x20lines\x20to\x20return\x20(1-','length','num','714411NFSOWm','ERROR','bff','--limit','408787GlTMIZ','keyword','read','--end-time','6lscWlt','validation','9091918tmxFFK','Filter\x20by\x20log\x20level','Filter\x20formatted\x20log\x20lines\x20by\x20keyword','limit','number','--since','trim','1931661DrXuTc','toUpperCase','end-time','6dJTSLs','24lgDjhd','--start-time\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20--end-time.','--limit\x20must\x20be\x20between\x201\x20and\x20','8030660zNXuBJ','Minutes\x20before\x20the\x20end\x20time\x20to\x20query\x20(default:\x20','start-time','since','now','917203taycyZ','level','WARN','--since\x20cannot\x20be\x20combined\x20with\x20--start-time.'];a41_0x15cc=function(){return _0x1ed1c6;};return a41_0x15cc();}const a41_0x49885b=a41_0x1de7;(function(_0x62ba7e,_0x41c974){const _0xfb1494=a41_0x1de7,_0x4c99fe=_0x62ba7e();while(!![]){try{const _0x43b190=-parseInt(_0xfb1494(0x1b8))/0x1+parseInt(_0xfb1494(0x1bc))/0x2*(-parseInt(_0xfb1494(0x1b4))/0x3)+parseInt(_0xfb1494(0x1ac))/0x4*(parseInt(_0xfb1494(0x1a8))/0x5)+-parseInt(_0xfb1494(0x1c8))/0x6*(-parseInt(_0xfb1494(0x1d1))/0x7)+parseInt(_0xfb1494(0x1c9))/0x8*(parseInt(_0xfb1494(0x1c5))/0x9)+parseInt(_0xfb1494(0x1cc))/0xa+-parseInt(_0xfb1494(0x1be))/0xb*(parseInt(_0xfb1494(0x1ab))/0xc);if(_0x43b190===_0x41c974)break;else _0x4c99fe['push'](_0x4c99fe['shift']());}catch(_0x4916dc){_0x4c99fe['push'](_0x4c99fe['shift']());}}}(a41_0x15cc,0x88f8c));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{searchBffScriptLogs}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';const DEFAULT_SINCE_MINUTES=0x1e,DEFAULT_LIMIT=0xc8,MAX_LIMIT=0x3e8,LOG_LEVELS=[a41_0x49885b(0x1d5),'INFO',a41_0x49885b(0x1d3),a41_0x49885b(0x1b5)];export function resolveBffLogQuery(_0x1aefc4,_0x1f31b0=Date[a41_0x49885b(0x1d0)]()){const _0x167dff=a41_0x49885b,_0x303422=_0x1aefc4[_0x167dff(0x1ae)](_0x167dff(0x1cf)),_0x276643=_0x1aefc4[_0x167dff(0x1ae)](_0x167dff(0x1ce)),_0x4b00e7=_0x1aefc4[_0x167dff(0x1ae)](_0x167dff(0x1c7));if(_0x303422!==undefined&&_0x276643!==undefined)throw CliErrors['validation'](_0x167dff(0x1d4));const _0x4edd6b=_0x4b00e7===undefined?_0x1f31b0:readPositiveInteger(_0x1aefc4['num'](_0x167dff(0x1c7)),_0x167dff(0x1bb)),_0x1c45a8=_0x276643===undefined?_0x4edd6b-readSinceMinutes(_0x1aefc4)*0xea60:readPositiveInteger(_0x1aefc4[_0x167dff(0x1b3)](_0x167dff(0x1ce)),_0x167dff(0x1a7));if(_0x1c45a8<=0x0)throw CliErrors[_0x167dff(0x1bd)]('The\x20resolved\x20log\x20start\x20time\x20must\x20be\x20greater\x20than\x200.');if(_0x1c45a8>_0x4edd6b)throw CliErrors[_0x167dff(0x1bd)](_0x167dff(0x1ca));const _0x3f9bf1=readPositiveInteger(_0x1aefc4[_0x167dff(0x1b3)](_0x167dff(0x1c1),DEFAULT_LIMIT),_0x167dff(0x1b7));if(_0x3f9bf1>MAX_LIMIT)throw CliErrors[_0x167dff(0x1bd)](_0x167dff(0x1cb)+MAX_LIMIT+'.');const _0x16afc1=_0x1aefc4['str'](_0x167dff(0x1d2))[_0x167dff(0x1c4)]()[_0x167dff(0x1c6)]()||undefined,_0x3d8fc3=_0x1aefc4[_0x167dff(0x1ad)](_0x167dff(0x1b9))[_0x167dff(0x1c4)]()||undefined;return{'appCode':_0x1aefc4['appCode'],'startTime':_0x1c45a8,'endTime':_0x4edd6b,..._0x276643===undefined?{'sinceMinutes':readSinceMinutes(_0x1aefc4)}:{},..._0x16afc1?{'level':_0x16afc1}:{},..._0x3d8fc3?{'keyword':_0x3d8fc3}:{},'limit':_0x3f9bf1};}function readSinceMinutes(_0x50956e){const _0x311af5=a41_0x49885b;return readPositiveInteger(_0x50956e['num'](_0x311af5(0x1cf),DEFAULT_SINCE_MINUTES),_0x311af5(0x1c3));}function a41_0x1de7(_0x35f28d,_0xa790cc){_0x35f28d=_0x35f28d-0x1a7;const _0x15ccb1=a41_0x15cc();let _0x1de78b=_0x15ccb1[_0x35f28d];return _0x1de78b;}function readPositiveInteger(_0x5a562f,_0x126504){const _0x1da2d4=a41_0x49885b;if(!Number['isSafeInteger'](_0x5a562f)||_0x5a562f<=0x0)throw CliErrors['validation'](_0x126504+_0x1da2d4(0x1aa));return _0x5a562f;}export const bffLogs={'service':a41_0x49885b(0x1b6),'command':a41_0x49885b(0x1b0),'description':a41_0x49885b(0x1af),'risk':a41_0x49885b(0x1ba),'structuredErrors':!![],'flags':[APPCODE_FLAG_OPTIONAL,{'name':a41_0x49885b(0x1cf),'type':a41_0x49885b(0x1c2),'description':a41_0x49885b(0x1cd)+DEFAULT_SINCE_MINUTES+')'},{'name':a41_0x49885b(0x1ce),'type':'number','description':'Query\x20start\x20time\x20as\x20a\x20Unix\x20timestamp\x20in\x20milliseconds'},{'name':a41_0x49885b(0x1c7),'type':a41_0x49885b(0x1c2),'description':a41_0x49885b(0x1a9)},{'name':'level','type':'string','description':a41_0x49885b(0x1bf),'enum':LOG_LEVELS},{'name':'keyword','type':'string','description':a41_0x49885b(0x1c0)},{'name':a41_0x49885b(0x1c1),'type':'number','description':a41_0x49885b(0x1b1)+MAX_LIMIT+')','default':DEFAULT_LIMIT}],async 'validate'(_0x36e86e){resolveBffLogQuery(_0x36e86e);},async 'execute'(_0xc032ba){const _0x313862=a41_0x49885b,_0x4cdced=resolveBffLogQuery(_0xc032ba),{sinceMinutes:_0x3f2de0,..._0x297fe9}=_0x4cdced,_0x4bd60e=await searchBffScriptLogs(_0x297fe9);return{'ok':!![],'data':{'query':_0x4cdced,'count':_0x4bd60e['length'],'logs':_0x4bd60e},'message':_0x4bd60e[_0x313862(0x1b2)]===0x0?'No\x20Backend\x20Function\x20logs\x20found\x20for\x20the\x20selected\x20range.':'Found\x20'+_0x4bd60e[_0x313862(0x1b2)]+'\x20Backend\x20Function\x20log\x20line(s).'};}};
@@ -1 +1 @@
1
- const a37_0x388fe5=a37_0xc32f;(function(_0x21c068,_0x1db5d0){const _0x4fd599=a37_0xc32f,_0x30221f=_0x21c068();while(!![]){try{const _0x3bc70a=-parseInt(_0x4fd599(0x12c))/0x1*(parseInt(_0x4fd599(0x18f))/0x2)+parseInt(_0x4fd599(0x11c))/0x3*(parseInt(_0x4fd599(0x19c))/0x4)+parseInt(_0x4fd599(0x11d))/0x5*(parseInt(_0x4fd599(0x159))/0x6)+-parseInt(_0x4fd599(0x191))/0x7+parseInt(_0x4fd599(0x14f))/0x8*(-parseInt(_0x4fd599(0x11a))/0x9)+parseInt(_0x4fd599(0x16d))/0xa+parseInt(_0x4fd599(0x136))/0xb*(parseInt(_0x4fd599(0x187))/0xc);if(_0x3bc70a===_0x1db5d0)break;else _0x30221f['push'](_0x30221f['shift']());}catch(_0x15a9a8){_0x30221f['push'](_0x30221f['shift']());}}}(a37_0xc97c,0xebbcc));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{resolveApiFilePath}from'../../context.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';function a37_0xc32f(_0x4e4516,_0x3ce64f){_0x4e4516=_0x4e4516-0x11a;const _0xc97c18=a37_0xc97c();let _0xc32f37=_0xc97c18[_0x4e4516];return _0xc32f37;}import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const bffPull={'service':a37_0x388fe5(0x135),'command':a37_0x388fe5(0x15a),'description':'Pull\x20remote\x20Backend\x20Function\x20scripts\x20to\x20local','risk':a37_0x388fe5(0x172),'structuredErrors':!![],'flags':[{'name':'type','type':a37_0x388fe5(0x19b),'description':a37_0x388fe5(0x183),'enum':['COMMON',a37_0x388fe5(0x13d),'HOOK']},{'name':a37_0x388fe5(0x14d),'type':'boolean','description':a37_0x388fe5(0x11e)}],async 'dryRun'(_0xb31f22){const _0x56b758=a37_0x388fe5,_0x3105d6=loadBffProjectConfig(_0xb31f22[_0x56b758(0x17e)]),_0x3c7693=await readBffLockFile(_0x3105d6[_0x56b758(0x139)]),{appLock:_0x2313a9}=ensureLockScope(_0x3c7693??createEmptyBffLock(),_0xb31f22[_0x56b758(0x17e)],_0x3105d6[_0x56b758(0x170)],_0x56b758(0x15a)),_0x4990cb=normalizeBffType(_0xb31f22[_0x56b758(0x120)]('type'))??undefined,[_0x2c75c4,_0x1ea3d7]=await Promise[_0x56b758(0x174)]([listBffScripts(_0xb31f22[_0x56b758(0x17e)],_0x4990cb),getBffScriptStatistics(_0xb31f22[_0x56b758(0x17e)])]),_0x52c9da=_0x2c75c4[_0x56b758(0x15e)](_0x1f3d83=>normalizeBffType(_0x1f3d83[_0x56b758(0x16e)])===_0x56b758(0x1a3)),_0x56f43c=_0x52c9da?buildDatasetCodeToAliasMap(_0xb31f22['apiDir'],_0xb31f22[_0x56b758(0x17e)]):new Map(),_0x1c9cb3=_0x52c9da?await planHookDirectoryMigration(_0x3105d6,_0x2313a9,_0x56f43c,await scanLocalBffFunctions(_0x3105d6,_0x56b758(0x1a3))):undefined,_0x4cdbe4=createHookLocationMap(_0x1ea3d7),_0x2dff39=[];for(const _0x3b225e of _0x2c75c4){const _0x2735f8=resolveRemoteScriptTarget(_0x3105d6,_0x3b225e,_0x4cdbe4,_0x1c9cb3?.[_0x56b758(0x198)]??_0x2313a9[_0x56b758(0x121)],_0x56f43c);if(!_0x2735f8){_0x2dff39['push']({'scriptType':_0x3b225e[_0x56b758(0x16e)],'functionName':_0x3b225e['functionName']??'','status':_0x56b758(0x1aa),'reason':_0x56b758(0x143)});continue;}const _0x3234cb=(_0x1c9cb3?.['projectedFunctions']??_0x2313a9[_0x56b758(0x121)])[_0x2735f8[_0x56b758(0x123)]],_0x4c122f=_0x3b225e['scriptContent']!=null?computeContentHash(_0x3b225e[_0x56b758(0x144)]):undefined,_0x4301c8=await hasUnsyncedLocalChanges(resolveMigratedSourceFilePath(_0x1c9cb3,_0x2735f8)??_0x2735f8[_0x56b758(0x13e)],_0x3234cb,_0x4c122f),_0x29b703=_0x4301c8?localUnsyncedConflict(_0x2735f8,_0x3b225e['id']):undefined;_0x2dff39[_0x56b758(0x13f)]({'lockKey':_0x2735f8[_0x56b758(0x123)],'filePath':_0x2735f8[_0x56b758(0x13e)],'remoteId':_0x3b225e['id']??null,'status':_0x29b703?_0x56b758(0x1a4):_0x56b758(0x169),..._0x29b703?{'conflict':_0x29b703}:{},..._0x2735f8['hookLocation']?{'alias':_0x2735f8['hookLocation'][_0x56b758(0x134)]??null,'datasetCode':_0x2735f8['hookLocation'][_0x56b758(0x19d)],'operationType':_0x2735f8[_0x56b758(0x161)][_0x56b758(0x12b)],'functionNode':_0x2735f8[_0x56b758(0x161)][_0x56b758(0x1a6)]}:{}});}return{'method':_0x56b758(0x175),'url':'/api/management/library/scripts/list?appCode='+_0xb31f22[_0x56b758(0x17e)]+(_0x4990cb?_0x56b758(0x167)+_0x4990cb:'')+'&currentPage=1&pageSize='+BFF_LIST_PAGE_SIZE,'body':{'appCode':_0xb31f22[_0x56b758(0x17e)],'filterType':_0x4990cb??null,..._0x1c9cb3&&_0x1c9cb3['migrations'][_0x56b758(0x127)]>0x0?{'hookDirectoryMigrations':_0x1c9cb3[_0x56b758(0x168)][_0x56b758(0x128)](_0x318e98=>({'from':_0x318e98[_0x56b758(0x130)],'to':_0x318e98[_0x56b758(0x182)]}))}:{},'files':_0x2dff39},'description':'Would\x20inspect\x20'+_0x2dff39[_0x56b758(0x127)]+_0x56b758(0x19a)};},async 'execute'(_0x5d1edc){const _0x1d83c9=a37_0x388fe5,_0x30bf65=loadBffProjectConfig(_0x5d1edc[_0x1d83c9(0x17e)]),_0x4115d9=await readBffLockFile(_0x30bf65['lockFilePath']),{lockData:_0x167b1c,appLock:_0x19ec63}=ensureLockScope(_0x4115d9??createEmptyBffLock(),_0x5d1edc['appCode'],_0x30bf65['scriptsRoot'],_0x1d83c9(0x15a)),_0x568fe4=normalizeBffType(_0x5d1edc[_0x1d83c9(0x120)](_0x1d83c9(0x14a)))??undefined;if(_0x5d1edc[_0x1d83c9(0x120)](_0x1d83c9(0x14a))&&!_0x568fe4)throw CliErrors[_0x1d83c9(0x178)](_0x1d83c9(0x14c));const [_0x333a5c,_0x557fe7]=await Promise[_0x1d83c9(0x174)]([listBffScripts(_0x5d1edc[_0x1d83c9(0x17e)],_0x568fe4),getBffScriptStatistics(_0x5d1edc[_0x1d83c9(0x17e)])]);if(_0x333a5c[_0x1d83c9(0x127)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'conflicts':[],'failed':[]},'message':_0x1d83c9(0x156)};const _0x46a419=_0x5d1edc['bool']('force');if(_0x46a419&&!_0x5d1edc[_0x1d83c9(0x196)]){const _0x13f8b4=await confirmForce();if(!_0x13f8b4)throw CliErrors['cancelled'](_0x1d83c9(0x153));}if(_0x46a419&&_0x5d1edc[_0x1d83c9(0x196)]){}const _0x2ead55=_0x333a5c[_0x1d83c9(0x15e)](_0x1687af=>normalizeBffType(_0x1687af['scriptType'])===_0x1d83c9(0x1a3)),_0xe3b6e9=_0x2ead55?buildDatasetCodeToAliasMap(_0x5d1edc[_0x1d83c9(0x1a5)],_0x5d1edc[_0x1d83c9(0x17e)]):new Map(),_0x35e7e0=createHookLocationMap(_0x557fe7),_0x1819f5=JSON[_0x1d83c9(0x13a)](JSON[_0x1d83c9(0x16b)](_0x167b1c)),_0x546923=_0x5d1edc[_0x1d83c9(0x17e)],_0x32ca42=_0x1819f5[_0x1d83c9(0x19f)][_0x546923];if(!_0x32ca42)throw new Error(_0x1d83c9(0x16c)+_0x546923+_0x1d83c9(0x15f));const _0x16890a=_0x2ead55?await applyHookDirectoryMigration(await planHookDirectoryMigration(_0x30bf65,_0x32ca42,_0xe3b6e9,await scanLocalBffFunctions(_0x30bf65,_0x1d83c9(0x1a3))),_0x32ca42):undefined,_0x14de53=createPullFileTransaction(),_0x822413=[],_0x2acba9=[],_0x5bd3a9=[],_0x2e9154=[];for(const _0x3aad22 of _0x333a5c){const _0x31de3b=resolveRemoteScriptTarget(_0x30bf65,_0x3aad22,_0x35e7e0,_0x32ca42['functions'],_0xe3b6e9);if(!_0x31de3b){_0x2acba9['push']({'lockKey':_0x3aad22[_0x1d83c9(0x16e)]+'/'+_0x3aad22['functionName'],'reason':'unresolvable\x20target\x20path'});continue;}const _0x736453=_0x32ca42[_0x1d83c9(0x121)][_0x31de3b[_0x1d83c9(0x123)]];try{if(!_0x3aad22['id'])throw new Error(_0x1d83c9(0x124));if(_0x3aad22[_0x1d83c9(0x144)]==null)throw new Error(_0x1d83c9(0x140));const _0x4c6ce9=_0x3aad22[_0x1d83c9(0x144)],_0x4c7672=computeContentHash(_0x4c6ce9);if(!_0x46a419){const _0x421c4f=await hasUnsyncedLocalChanges(_0x31de3b[_0x1d83c9(0x13e)],_0x736453,_0x4c7672);if(_0x421c4f){_0x5bd3a9[_0x1d83c9(0x13f)](localUnsyncedConflict(_0x31de3b,_0x3aad22['id']));continue;}}await _0x14de53[_0x1d83c9(0x148)](_0x31de3b[_0x1d83c9(0x13e)],_0x4c6ce9);const _0x34ffee={'hash':_0x4c7672,'remoteId':_0x3aad22['id'],'version':_0x3aad22[_0x1d83c9(0x145)]};_0x31de3b[_0x1d83c9(0x14a)]===_0x1d83c9(0x1a3)&&_0x31de3b['hookLocation']&&(_0x34ffee['alias']=_0x31de3b[_0x1d83c9(0x161)]['alias'],_0x34ffee[_0x1d83c9(0x19d)]=_0x31de3b[_0x1d83c9(0x161)][_0x1d83c9(0x19d)],_0x34ffee[_0x1d83c9(0x12b)]=_0x31de3b[_0x1d83c9(0x161)][_0x1d83c9(0x12b)],_0x34ffee[_0x1d83c9(0x1a6)]=_0x31de3b[_0x1d83c9(0x161)][_0x1d83c9(0x1a6)]),_0x32ca42[_0x1d83c9(0x121)][_0x31de3b['lockKey']]=_0x34ffee,_0x822413['push']({'lockKey':_0x31de3b[_0x1d83c9(0x123)],'remoteId':_0x3aad22['id']});}catch(_0x425c4e){_0x2e9154[_0x1d83c9(0x13f)]({'lockKey':_0x31de3b[_0x1d83c9(0x123)],'error':_0x425c4e instanceof Error?_0x425c4e[_0x1d83c9(0x15d)]:String(_0x425c4e)});}}_0x32ca42['lastSync']=new Date()[_0x1d83c9(0x162)]();try{await writeBffLockFile(_0x30bf65[_0x1d83c9(0x139)],_0x1819f5);}catch(_0x5f4e55){const _0x3e531d=[...await _0x14de53['rollback'](),...await _0x16890a?.[_0x1d83c9(0x1a9)]()??[]];throw withRollbackErrors(_0x5f4e55,_0x1d83c9(0x14e),_0x3e531d);}return{'ok':_0x2e9154[_0x1d83c9(0x127)]===0x0,'data':{'pulled':_0x822413,'skipped':_0x2acba9,'conflicts':_0x5bd3a9,'failed':_0x2e9154},'message':formatPullMessage(_0x822413['length'],_0x2acba9[_0x1d83c9(0x127)],_0x5bd3a9[_0x1d83c9(0x127)],_0x2e9154['length'])};}};function localUnsyncedConflict(_0x2aa6a6,_0x3c00b5){const _0x1afc89=a37_0x388fe5,_0x20bd68=_0x2aa6a6[_0x1afc89(0x123)][_0x1afc89(0x131)]('/')['at'](-0x1);return{'code':_0x1afc89(0x199),'lockKey':_0x2aa6a6[_0x1afc89(0x123)],'filePath':_0x2aa6a6[_0x1afc89(0x13e)],..._0x3c00b5!=null?{'remoteId':_0x3c00b5}:{},'message':_0x1afc89(0x173),'nextAction':{'action':_0x1afc89(0x15c),'command':CLI_BIN_NAME+_0x1afc89(0x1a2)+_0x2aa6a6[_0x1afc89(0x14a)]+_0x1afc89(0x1a1)+_0x20bd68+_0x1afc89(0x126),'requiresReview':!![],'message':'If\x20the\x20reviewed\x20local\x20script\x20should\x20win,\x20run\x20this\x20command\x20to\x20update\x20the\x20remote\x20script.\x20Do\x20not\x20use\x20--force\x20to\x20resolve\x20a\x20content\x20conflict.'}};}function formatPullMessage(_0x1159ad,_0x2a9f44,_0x23b771,_0x17617f){const _0x59f02c=a37_0x388fe5,_0x5e0510=[_0x59f02c(0x171)+_0x1159ad+_0x59f02c(0x17d),_0x2a9f44+_0x59f02c(0x163)];_0x23b771>0x0&&_0x5e0510[_0x59f02c(0x13f)](_0x23b771+_0x59f02c(0x18d)+(_0x23b771===0x1?'':'s')+'\x20'+(_0x23b771===0x1?_0x59f02c(0x184):_0x59f02c(0x15b))+_0x59f02c(0x11f));if(_0x17617f>0x0)_0x5e0510['push'](_0x17617f+_0x59f02c(0x193));return _0x5e0510['join'](',\x20');}async function hasUnsyncedLocalChanges(_0x17d15a,_0x19bc6c,_0x3a8417){const _0x771d65=a37_0x388fe5;if(!await fileExists(_0x17d15a))return![];const _0x31518a=await computeFileHash(_0x17d15a);if(!_0x19bc6c)return _0x3a8417?_0x31518a!==_0x3a8417:!![];return _0x31518a!==_0x19bc6c[_0x771d65(0x1ab)];}function createPullFileTransaction(){const _0x2c5790=new Map(),_0x563309=async(_0x3a08ce,_0x54db8e)=>{const _0x19cfc5=a37_0xc32f;try{if(_0x54db8e[_0x19cfc5(0x17a)])await ensureParentDirectory(_0x3a08ce),await writeFile(_0x3a08ce,_0x54db8e[_0x19cfc5(0x165)]);else try{await unlink(_0x3a08ce);}catch(_0x39c96c){if(_0x39c96c[_0x19cfc5(0x188)]!==_0x19cfc5(0x14b))throw _0x39c96c;}return undefined;}catch(_0x20fc64){return _0x20fc64 instanceof Error?_0x20fc64:new Error(String(_0x20fc64));}};return{async 'write'(_0xda249d,_0x4a4327){const _0x48fa2b=a37_0xc32f;if(!_0x2c5790[_0x48fa2b(0x180)](_0xda249d))try{_0x2c5790[_0x48fa2b(0x189)](_0xda249d,{'existed':!![],'content':await readFile(_0xda249d)});}catch(_0x6194ef){if(_0x6194ef[_0x48fa2b(0x188)]!==_0x48fa2b(0x14b))throw _0x6194ef;_0x2c5790[_0x48fa2b(0x189)](_0xda249d,{'existed':![]});}try{await ensureParentDirectory(_0xda249d),await writeFile(_0xda249d,_0x4a4327,_0x48fa2b(0x158));}catch(_0x396c3f){const _0x4a3c0f=await _0x563309(_0xda249d,_0x2c5790[_0x48fa2b(0x157)](_0xda249d));if(!_0x4a3c0f)_0x2c5790[_0x48fa2b(0x12e)](_0xda249d);throw withRollbackErrors(_0x396c3f,_0x48fa2b(0x152)+_0xda249d+'\x22.',_0x4a3c0f?[_0x4a3c0f]:[]);}},async 'rollback'(){const _0x3bada8=a37_0xc32f,_0x27ca3c=[];for(const [_0x576a3a,_0x135898]of[..._0x2c5790['entries']()]['reverse']()){const _0x2025c2=await _0x563309(_0x576a3a,_0x135898);_0x2025c2&&_0x27ca3c['push'](new Error('Could\x20not\x20restore\x20local\x20script\x20\x22'+_0x576a3a+_0x3bada8(0x155)+_0x2025c2[_0x3bada8(0x15d)]));}return _0x27ca3c;}};}function withRollbackErrors(_0x4194ef,_0xb0d1aa,_0x4b8ec3){const _0x1eb9ff=a37_0x388fe5,_0xedfe2b=_0x4194ef instanceof Error?_0x4194ef:new Error(String(_0x4194ef));if(_0x4b8ec3[_0x1eb9ff(0x127)]===0x0)return _0xedfe2b;return new AggregateError([_0xedfe2b,..._0x4b8ec3],_0xb0d1aa+_0x1eb9ff(0x138)+_0x4b8ec3['map'](_0x368671=>_0x368671[_0x1eb9ff(0x15d)])['join'](';\x20'));}function buildDatasetCodeToAliasMap(_0x4c7c0f,_0x264e8b){const _0xab3b50=a37_0x388fe5,_0x318528=loadAliasMap(_0x4c7c0f,undefined,resolveApiFilePath(_0x4c7c0f,_0x264e8b));return assertUnambiguousHookAliases(_0x318528),new Map(_0x318528[_0xab3b50(0x128)](_0xc16d5c=>[_0xc16d5c[_0xab3b50(0x19d)][_0xab3b50(0x1a0)](),_0xc16d5c[_0xab3b50(0x134)]]));}async function planHookDirectoryMigration(_0x5f0b50,_0x9d1ee1,_0x252769,_0x8000a9){const _0x252a3f=a37_0x388fe5,_0x23156d=new Map();for(const [_0x4f6481,_0x412830]of Object['entries'](_0x9d1ee1[_0x252a3f(0x121)])){const [_0xbdba65,_0x25c8d9,_0x3e7042,_0x4e7754,_0x5586e3,..._0xdf7f44]=_0x4f6481[_0x252a3f(0x131)]('/');if(_0xbdba65!==_0x252a3f(0x1a3)||!_0x25c8d9||!_0x3e7042||!_0x4e7754||!_0x5586e3||_0xdf7f44['length']>0x0||!_0x412830[_0x252a3f(0x19d)])continue;const _0x5e0bef=_0x252769[_0x252a3f(0x157)](_0x412830[_0x252a3f(0x19d)][_0x252a3f(0x1a0)]()),_0xa70268=_0x5e0bef??_0x412830['datasetCode'];if(!isSafeHookDirectorySegment(_0x25c8d9))throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x154)+_0x25c8d9+'\x22\x20from\x20the\x20lock\x20file.');if(!isSafeHookDirectorySegment(_0xa70268))throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x13c)+_0x25c8d9+'\x22:\x20its\x20target\x20directory\x20is\x20unsafe.');if(_0x25c8d9===_0xa70268)continue;const _0x2383e9=_0x23156d[_0x252a3f(0x157)](_0x25c8d9)??{'datasetCode':_0x412830[_0x252a3f(0x19d)],'alias':_0x5e0bef,'keyChanges':[]};if(_0x2383e9[_0x252a3f(0x19d)]!==_0x412830[_0x252a3f(0x19d)])throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x13c)+_0x25c8d9+_0x252a3f(0x137));const _0x1613dd=_0x252a3f(0x194)+_0xa70268+'/'+_0x3e7042+'/'+_0x4e7754+'/'+_0x5586e3;try{resolveLocalFilePathFromLockKey(_0x5f0b50,_0x4f6481),resolveLocalFilePathFromLockKey(_0x5f0b50,_0x1613dd);}catch(_0x34ba68){throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x186)+_0x4f6481+_0x252a3f(0x155)+(_0x34ba68 instanceof Error?_0x34ba68[_0x252a3f(0x15d)]:String(_0x34ba68)));}_0x2383e9[_0x252a3f(0x179)]['push']({'oldLockKey':_0x4f6481,'newLockKey':_0x1613dd,'entry':_0x412830}),_0x23156d[_0x252a3f(0x189)](_0x25c8d9,_0x2383e9);}const _0x57ca33=new Set([..._0x23156d[_0x252a3f(0x11b)]()][_0x252a3f(0x133)](_0x159f09=>_0x159f09[_0x252a3f(0x179)][_0x252a3f(0x128)](_0x18bd17=>_0x18bd17[_0x252a3f(0x192)]))),_0x4cd525=new Map(),_0x15fa76=new Map();for(const [_0x6a83ad,_0x5edfee]of _0x23156d){const _0x5dbf39=_0x5edfee['alias']??_0x5edfee[_0x252a3f(0x19d)],_0x1439a3=hookDirectoryIdentity(_0x5dbf39),_0x3fca59=_0x4cd525[_0x252a3f(0x157)](_0x1439a3);if(_0x3fca59&&_0x3fca59!==_0x6a83ad)throw CliErrors[_0x252a3f(0x178)]('Cannot\x20migrate\x20HOOK\x20directories\x20\x22'+_0x3fca59+_0x252a3f(0x160)+_0x6a83ad+_0x252a3f(0x1a8)+_0x5dbf39+_0x252a3f(0x141));_0x4cd525[_0x252a3f(0x189)](_0x1439a3,_0x6a83ad);for(const _0x2d0cbc of _0x5edfee[_0x252a3f(0x179)]){const _0x5cd9ab=_0x15fa76[_0x252a3f(0x157)](_0x2d0cbc[_0x252a3f(0x17f)]);if(_0x5cd9ab&&_0x5cd9ab!==_0x2d0cbc[_0x252a3f(0x192)])throw CliErrors[_0x252a3f(0x178)]('Cannot\x20migrate\x20HOOK\x20lock\x20keys\x20\x22'+_0x5cd9ab+_0x252a3f(0x160)+_0x2d0cbc[_0x252a3f(0x192)]+_0x252a3f(0x1a8)+_0x2d0cbc[_0x252a3f(0x17f)]+_0x252a3f(0x146));if(_0x57ca33[_0x252a3f(0x180)](_0x2d0cbc[_0x252a3f(0x17f)]))throw CliErrors['validation']('Cannot\x20migrate\x20HOOK\x20lock\x20key\x20\x22'+_0x2d0cbc['oldLockKey']+_0x252a3f(0x151)+_0x2d0cbc['newLockKey']+'\x22\x20is\x20another\x20legacy\x20key\x20being\x20migrated.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.');_0x15fa76[_0x252a3f(0x189)](_0x2d0cbc['newLockKey'],_0x2d0cbc['oldLockKey']);}}const _0x40550b=new Map();for(const [_0x202bb1,_0x2e856a]of _0x252769){_0x40550b[_0x252a3f(0x189)](hookDirectoryIdentity(_0x2e856a),_0x202bb1);}const _0x1e3038=[];for(const [_0x48c375,_0x16fab1]of _0x23156d){const _0xb23a70=_0x16fab1[_0x252a3f(0x134)]??_0x16fab1[_0x252a3f(0x19d)],_0x356f57=join(_0x5f0b50[_0x252a3f(0x18c)],_0x252a3f(0x1a3),_0x48c375),_0x48adf0=join(_0x5f0b50[_0x252a3f(0x18c)],_0x252a3f(0x1a3),_0xb23a70),_0x2e657e=await directoryExists(_0x356f57),_0x2a04e2=await directoryExists(_0x48adf0),_0x42db59=_0x2e657e?_0x2a04e2?await sameDirectory(_0x356f57,_0x48adf0)?_0x252a3f(0x185):undefined:'move':_0x252a3f(0x1ad);if(!_0x42db59)throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x13c)+_0x48c375+_0x252a3f(0x166)+_0xb23a70+_0x252a3f(0x190));const _0x8237bd=_0x40550b['get'](hookDirectoryIdentity(_0x48c375));if(_0x8237bd&&_0x8237bd!==_0x16fab1[_0x252a3f(0x19d)][_0x252a3f(0x1a0)]()){const _0x6a5bb1=new Set(_0x16fab1[_0x252a3f(0x179)]['map'](_0x196bc4=>_0x196bc4[_0x252a3f(0x192)])),_0x50b983=_0x8000a9[_0x252a3f(0x12a)](_0x5a7018=>_0x5a7018[_0x252a3f(0x14a)]===_0x252a3f(0x1a3)&&_0x5a7018[_0x252a3f(0x134)]!=null&&hookDirectoryIdentity(_0x5a7018[_0x252a3f(0x134)])===hookDirectoryIdentity(_0x48c375)&&!_0x6a5bb1[_0x252a3f(0x180)](_0x5a7018[_0x252a3f(0x123)]));if(_0x50b983['length']>0x0)throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x13c)+_0x48c375+_0x252a3f(0x129));}const _0x49e5ae=_0x40550b[_0x252a3f(0x157)](hookDirectoryIdentity(_0xb23a70));if(_0x49e5ae&&_0x49e5ae!==_0x16fab1[_0x252a3f(0x19d)][_0x252a3f(0x1a0)]())throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x13c)+_0x48c375+_0x252a3f(0x166)+_0xb23a70+_0x252a3f(0x164));for(const _0x2bacb0 of _0x16fab1[_0x252a3f(0x179)]){const _0x4dfa32=_0x9d1ee1[_0x252a3f(0x121)][_0x2bacb0[_0x252a3f(0x17f)]];if(_0x4dfa32&&!_0x57ca33['has'](_0x2bacb0[_0x252a3f(0x17f)])&&!sameHookIdentity(_0x2bacb0[_0x252a3f(0x177)],_0x4dfa32))throw CliErrors[_0x252a3f(0x178)](_0x252a3f(0x13c)+_0x48c375+_0x252a3f(0x166)+_0xb23a70+_0x252a3f(0x12f));}_0x1e3038[_0x252a3f(0x13f)]({'oldDirectory':_0x48c375,'newDirectory':_0xb23a70,'oldDirectoryPath':_0x356f57,'newDirectoryPath':_0x48adf0,'mode':_0x42db59,'alias':_0x16fab1['alias'],'keyChanges':_0x16fab1['keyChanges']});}const _0x41923a={..._0x9d1ee1['functions']},_0x2a410=new Map(),_0x19e943=new Map();for(const _0x12443f of _0x1e3038){const _0x22cd15=_0x12443f[_0x252a3f(0x19e)]!==_0x252a3f(0x1ad);_0x22cd15&&_0x19e943[_0x252a3f(0x189)](hookDirectoryIdentity(_0x12443f[_0x252a3f(0x182)]),_0x12443f[_0x252a3f(0x149)]);for(const _0x3653a7 of _0x12443f[_0x252a3f(0x179)]){const _0x4edb68=_0x41923a[_0x3653a7['newLockKey']],_0x25942d=_0x22cd15?_0x3653a7[_0x252a3f(0x177)]:_0x4edb68??_0x3653a7[_0x252a3f(0x177)];_0x41923a[_0x3653a7[_0x252a3f(0x17f)]]=canonicalizeHookEntry(_0x25942d,_0x12443f[_0x252a3f(0x134)]),delete _0x41923a[_0x3653a7[_0x252a3f(0x192)]],_0x22cd15&&_0x2a410['set'](_0x3653a7[_0x252a3f(0x17f)],resolveLocalFilePathFromLockKey(_0x5f0b50,_0x3653a7[_0x252a3f(0x192)]));}}return{'migrations':_0x1e3038,'projectedFunctions':_0x41923a,'sourceFilePathByNewLockKey':_0x2a410,'sourceDirectoryPathByNewDirectory':_0x19e943};}function resolveMigratedSourceFilePath(_0x40dcd8,_0x24864f){const _0x5ae936=a37_0x388fe5;if(!_0x40dcd8||!_0x24864f)return undefined;const _0x53cc1a=_0x40dcd8[_0x5ae936(0x125)][_0x5ae936(0x157)](_0x24864f[_0x5ae936(0x123)]);if(_0x53cc1a)return _0x53cc1a;if(_0x24864f['type']!==_0x5ae936(0x1a3))return undefined;const [,_0x1bc043,..._0x4c147e]=_0x24864f[_0x5ae936(0x123)][_0x5ae936(0x131)]('/');if(!_0x1bc043||_0x4c147e['length']===0x0)return undefined;const _0x11d93c=_0x40dcd8[_0x5ae936(0x181)][_0x5ae936(0x157)](hookDirectoryIdentity(_0x1bc043));return _0x11d93c?join(_0x11d93c,..._0x4c147e)+_0x5ae936(0x18b):undefined;}function sameHookIdentity(_0x155a20,_0x19dc85){const _0x5c10d6=a37_0x388fe5;return _0x155a20[_0x5c10d6(0x12d)]===_0x19dc85[_0x5c10d6(0x12d)]&&_0x155a20[_0x5c10d6(0x19d)]===_0x19dc85[_0x5c10d6(0x19d)]&&_0x155a20['operationType']===_0x19dc85[_0x5c10d6(0x12b)]&&_0x155a20[_0x5c10d6(0x1a6)]===_0x19dc85[_0x5c10d6(0x1a6)];}function canonicalizeHookEntry(_0x23dcd9,_0x4c07fe){const {alias:_0x346f4c,..._0xab5d28}=_0x23dcd9;return _0x4c07fe?{..._0xab5d28,'alias':_0x4c07fe}:_0xab5d28;}function hookDirectoryIdentity(_0x380c63){const _0x562763=a37_0x388fe5;return _0x380c63['normalize'](_0x562763(0x18a))['toLowerCase']();}function a37_0xc97c(){const _0x3ae493=['14007540RjkcFA','code','set','NFC','.js','scriptsRootDir','\x20conflict','stdin','2yLRCZf','\x22:\x20the\x20target\x20directory\x20already\x20exists.\x20Resolve\x20the\x20directories\x20and\x20retry.','5022514BnFjvx','oldLockKey','\x20failed','HOOK/','ino','nonInteractive','yes','projectedFunctions','BFF_LOCAL_UNSYNCED','\x20remote\x20Backend\x20Function\x20script(s)\x20for\x20pull','string','4544IdEQlY','datasetCode','mode','apps','toLowerCase','\x20--name\x20','\x20bff\x20push\x20--type\x20','HOOK','conflict','apiDir','functionNode','\x22;\x20temporary\x20directory\x20\x22','\x22:\x20both\x20target\x20\x22','rollback','skipped','hash','Could\x20not\x20restore\x20temporary\x20HOOK\x20directory\x20\x22','rekey','197937hCtPrT','values','2118ljGJsD','5711105etqyYx','Force\x20overwrite\x20local\x20unsynced\x20changes','\x20resolution','str','functions','\x22\x20from\x20\x22','lockKey','Remote\x20script\x20missing\x20id.','sourceFilePathByNewLockKey','\x20--format\x20compress','length','map','\x22:\x20it\x20is\x20now\x20another\x20Dataset\x20alias\x20and\x20contains\x20untracked\x20scripts.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','filter','operationType','1121699rfgOGu','remoteId','delete','\x22:\x20target\x20lock\x20key\x20is\x20already\x20bound\x20to\x20another\x20script.','oldDirectory','split','close','flatMap','alias','bff','11CEcicB','\x22:\x20it\x20is\x20tracked\x20by\x20multiple\x20Datasets.','\x20Recovery\x20errors:\x20','lockFilePath','parse','stderr','Cannot\x20migrate\x20HOOK\x20directory\x20\x22','ENDPOINT','filePath','push','Remote\x20script\x20missing\x20content.','\x22.\x20Resolve\x20the\x20directories\x20manually\x20before\x20retrying.','trim','unresolvable\x20target\x20path','scriptContent','version','\x22.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','Could\x20not\x20restore\x20HOOK\x20directory\x20\x22','write','oldDirectoryPath','type','ENOENT','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','force','Failed\x20to\x20write\x20the\x20Backend\x20Function\x20lock\x20file;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','352ivBqBb','newDirectoryPath','\x22:\x20its\x20target\x20\x22','Failed\x20to\x20write\x20local\x20script\x20\x22','Force\x20pull\x20cancelled.','Cannot\x20migrate\x20unsafe\x20HOOK\x20directory\x20\x22','\x22:\x20','No\x20remote\x20Backend\x20Function\x20scripts\x20found.','get','utf8','6sZsGEl','pull','require','push_local','message','some','\x22\x20not\x20found\x20after\x20ensureLockScope.','\x22\x20and\x20\x22','hookLocation','toISOString','\x20skipped','\x22:\x20the\x20destination\x20is\x20another\x20Dataset\x20alias.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','content','\x22\x20to\x20\x22','&type=','migrations','would_pull','Failed\x20to\x20rename\x20HOOK\x20directory\x20\x22','stringify','Lock\x20scope\x20for\x20app\x20\x22','6609410FeGDiL','scriptType','question','scriptsRoot','Pull\x20complete:\x20','read','Local\x20script\x20differs\x20from\x20the\x20last\x20pulled\x20version.\x20Review\x20it\x20before\x20choosing\x20the\x20source\x20of\x20truth.','all','GET','dev','entry','validation','keyChanges','existed','Failed\x20to\x20migrate\x20HOOK\x20directories;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','lastSync','\x20pulled','appCode','newLockKey','has','sourceDirectoryPathByNewDirectory','newDirectory','Pull\x20only\x20this\x20script\x20type','requires','case-rename','Cannot\x20migrate\x20unsafe\x20HOOK\x20lock\x20key\x20\x22'];a37_0xc97c=function(){return _0x3ae493;};return a37_0xc97c();}function isSafeHookDirectorySegment(_0x651970){return isSafeLockKeySegment(_0x651970);}async function sameDirectory(_0x2cc64f,_0x4f41a1){const _0x254ec2=a37_0x388fe5,[_0x569352,_0x541ba2]=await Promise[_0x254ec2(0x174)]([stat(_0x2cc64f),stat(_0x4f41a1)]);return _0x569352['dev']===_0x541ba2[_0x254ec2(0x176)]&&_0x569352[_0x254ec2(0x195)]===_0x541ba2[_0x254ec2(0x195)];}async function applyHookDirectoryMigration(_0x4622c8,_0x4c8ac7){const _0x356e37=a37_0x388fe5,_0x34e6f0=_0x4c8ac7[_0x356e37(0x121)],_0x5c6be4=_0x4c8ac7['lastSync'],_0x2b3c23=[],_0x2850e8=async()=>{const _0x36bb52=_0x356e37,_0x568c49=[];_0x4c8ac7[_0x36bb52(0x121)]=_0x34e6f0,_0x4c8ac7[_0x36bb52(0x17c)]=_0x5c6be4;for(const {migration:_0x50c799,temporaryPath:_0x1acd3b}of[..._0x2b3c23]['reverse']()){try{_0x1acd3b?(await rename(_0x50c799[_0x36bb52(0x150)],_0x1acd3b),await rename(_0x1acd3b,_0x50c799[_0x36bb52(0x149)])):await rename(_0x50c799[_0x36bb52(0x150)],_0x50c799['oldDirectoryPath']);}catch(_0x3a5ff2){_0x568c49['push'](new Error(_0x36bb52(0x147)+_0x50c799[_0x36bb52(0x130)]+_0x36bb52(0x122)+_0x50c799[_0x36bb52(0x182)]+_0x36bb52(0x155)+(_0x3a5ff2 instanceof Error?_0x3a5ff2[_0x36bb52(0x15d)]:String(_0x3a5ff2))));}}return _0x568c49;};try{for(const _0x119122 of _0x4622c8[_0x356e37(0x168)]){if(_0x119122['mode']==='move')await ensureParentDirectory(_0x119122[_0x356e37(0x150)]),await rename(_0x119122[_0x356e37(0x149)],_0x119122['newDirectoryPath']),_0x2b3c23[_0x356e37(0x13f)]({'migration':_0x119122});else{if(_0x119122[_0x356e37(0x19e)]===_0x356e37(0x185)){const _0x82798e=join(dirname(_0x119122['oldDirectoryPath']),'.hook-directory-migrate-'+randomUUID());await rename(_0x119122[_0x356e37(0x149)],_0x82798e);try{await rename(_0x82798e,_0x119122[_0x356e37(0x150)]);}catch(_0x4de02c){try{await rename(_0x82798e,_0x119122[_0x356e37(0x149)]);}catch(_0x3d9543){throw withRollbackErrors(_0x4de02c,_0x356e37(0x16a)+_0x119122['oldDirectory']+_0x356e37(0x166)+_0x119122['newDirectory']+_0x356e37(0x1a7)+_0x82798e+'\x22\x20may\x20remain.',[new Error(_0x356e37(0x1ac)+_0x82798e+_0x356e37(0x166)+_0x119122['oldDirectory']+_0x356e37(0x155)+(_0x3d9543 instanceof Error?_0x3d9543[_0x356e37(0x15d)]:String(_0x3d9543)))]);}throw _0x4de02c;}_0x2b3c23[_0x356e37(0x13f)]({'migration':_0x119122,'temporaryPath':_0x82798e});}}}return _0x4c8ac7['functions']=_0x4622c8[_0x356e37(0x198)],{'rollback':_0x2850e8};}catch(_0x27d8b1){const _0x4cba80=await _0x2850e8();throw withRollbackErrors(_0x27d8b1,_0x356e37(0x17b),_0x4cba80);}}async function confirmForce(){const _0x237845=a37_0x388fe5,_0x272b77=createInterface({'input':process[_0x237845(0x18e)],'output':process[_0x237845(0x13b)]}),_0x35bfc4=await new Promise(_0x245d79=>{const _0x56cebc=_0x237845;_0x272b77[_0x56cebc(0x16f)]('Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20',_0x245d79);});return _0x272b77[_0x237845(0x132)](),['y',_0x237845(0x197)]['includes'](_0x35bfc4[_0x237845(0x142)]()[_0x237845(0x1a0)]());}
1
+ const a42_0x346709=a42_0x3677;(function(_0x14845d,_0x212d8b){const _0x4a95a6=a42_0x3677,_0x44b4d7=_0x14845d();while(!![]){try{const _0x63e061=parseInt(_0x4a95a6(0x169))/0x1+-parseInt(_0x4a95a6(0x10b))/0x2*(-parseInt(_0x4a95a6(0x146))/0x3)+parseInt(_0x4a95a6(0x117))/0x4+-parseInt(_0x4a95a6(0x112))/0x5*(-parseInt(_0x4a95a6(0x118))/0x6)+-parseInt(_0x4a95a6(0x17d))/0x7+parseInt(_0x4a95a6(0x14b))/0x8*(-parseInt(_0x4a95a6(0x11e))/0x9)+-parseInt(_0x4a95a6(0x134))/0xa;if(_0x63e061===_0x212d8b)break;else _0x44b4d7['push'](_0x44b4d7['shift']());}catch(_0x597bc2){_0x44b4d7['push'](_0x44b4d7['shift']());}}}(a42_0x4fd5,0xaa6cb));function a42_0x4fd5(){const _0x3c3915=['alias','rollback','boolean','functions','bool','remoteId','scriptType','\x20--name\x20','map','\x22:\x20','Force\x20overwrite\x20local\x20unsynced\x20changes','\x22.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','.hook-directory-migrate-','22hSQtIg','push','HOOK/','Pull\x20only\x20this\x20script\x20type','delete','filePath','stringify','5BmBAOB','datasetCode','Cannot\x20migrate\x20HOOK\x20lock\x20key\x20\x22','\x20pulled','\x22:\x20both\x20target\x20\x22','1956324QaZZCZ','4153422HexpIp','hookLocation','appCode','keyChanges','Cannot\x20migrate\x20HOOK\x20directories\x20\x22','HOOK','26127rRiaOy','code','type','\x20Recovery\x20errors:\x20','write','utf8','pull','NFC','dev','apps','oldDirectoryPath','\x22:\x20its\x20target\x20\x22','migrations','selectedAppName','all','Would\x20inspect\x20','oldLockKey','bff','some','\x22\x20not\x20found\x20after\x20ensureLockScope.','Could\x20not\x20restore\x20HOOK\x20directory\x20\x22','sourceDirectoryPathByNewDirectory','12919010aaQFNq','\x20conflict','str','newLockKey','require','\x22:\x20it\x20is\x20tracked\x20by\x20multiple\x20Datasets.','length','ino','move','newDirectoryPath','Cannot\x20migrate\x20unsafe\x20HOOK\x20directory\x20\x22','Failed\x20to\x20write\x20the\x20Backend\x20Function\x20lock\x20file;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','Cannot\x20migrate\x20HOOK\x20directory\x20\x22','Failed\x20to\x20migrate\x20HOOK\x20directories;\x20local\x20changes\x20could\x20not\x20be\x20completely\x20rolled\x20back.','toISOString','cancelled','Failed\x20to\x20write\x20local\x20script\x20\x22','parse','276063xdZyFC','&currentPage=1&pageSize=','\x22\x20to\x20\x22','lockKey','scriptContent','2776ncQskd','\x20--format\x20compress','mode','\x22:\x20the\x20destination\x20is\x20another\x20Dataset\x20alias.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','COMMON','\x22:\x20target\x20lock\x20key\x20is\x20already\x20bound\x20to\x20another\x20script.','scriptsRoot','would_pull','message','toLowerCase','\x22\x20is\x20another\x20legacy\x20key\x20being\x20migrated.\x20Resolve\x20the\x20lock\x20entries\x20manually\x20before\x20retrying.','apiDir','flatMap','nonInteractive','string','scriptsRootDir','skipped','Force\x20pull\x20will\x20overwrite\x20local\x20unsynced\x20changes.\x20Continue?\x20[y/N]\x20','content','\x22:\x20it\x20is\x20now\x20another\x20Dataset\x20alias\x20and\x20contains\x20untracked\x20scripts.\x20Resolve\x20the\x20directory\x20manually\x20before\x20retrying.','split','\x22\x20and\x20\x22','\x22:\x20the\x20target\x20directory\x20already\x20exists.\x20Resolve\x20the\x20directories\x20and\x20retry.','mergedCli','profileName','close','Cannot\x20migrate\x20HOOK\x20lock\x20keys\x20\x22','lastSync','functionName','force','1374882ElyWzj','has','ENOENT','reverse','projectedFunctions','\x20bff\x20push\x20--type\x20','stdin','\x20failed','trim','sourceFilePathByNewLockKey','operationType','entry','--type\x20must\x20be\x20COMMON,\x20ENDPOINT,\x20or\x20HOOK.','Could\x20not\x20restore\x20local\x20script\x20\x22','read','question','.js','functionNode','currentApp','Force\x20pull\x20cancelled.','3997910EMHxTj','set','&type=','newDirectory','lockFilePath','case-rename','join','Cannot\x20migrate\x20unsafe\x20HOOK\x20lock\x20key\x20\x22','rekey','Lock\x20scope\x20for\x20app\x20\x22','existed','push_local','\x22:\x20its\x20target\x20directory\x20is\x20unsafe.','\x20resolution','Remote\x20script\x20missing\x20id.','unresolvable\x20target\x20path','requires','\x22\x20from\x20\x22','oldDirectory','includes','defaultApp','entries','get','validation','BFF_LOCAL_UNSYNCED'];a42_0x4fd5=function(){return _0x3c3915;};return a42_0x4fd5();}import{createInterface}from'node:readline';import{readFile,rename,stat,unlink,writeFile}from'node:fs/promises';import{randomUUID}from'node:crypto';import{dirname,join}from'node:path';import{BFF_LIST_PAGE_SIZE,listBffScripts,getBffScriptStatistics}from'../../core/api-client.js';import{loadAliasMap}from'../../core/alias-resolver.js';import{resolveApiModelSource}from'../../api/model-source.js';import{loadBffProjectConfig}from'../../core/bff/config.js';import{createHookLocationMap,directoryExists,ensureParentDirectory,fileExists,isSafeLockKeySegment,normalizeBffType,resolveLocalFilePathFromLockKey,resolveRemoteScriptTarget,scanLocalBffFunctions}from'../../core/bff/file-system.js';import{computeContentHash,computeFileHash}from'../../core/bff/hash.js';import{assertUnambiguousHookAliases}from'../../core/bff/hook-directory.js';import{createEmptyBffLock,ensureLockScope,readBffLockFile,writeBffLockFile}from'../../core/bff/lock.js';import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export const bffPull={'service':a42_0x346709(0x12f),'command':a42_0x346709(0x124),'description':'Pull\x20remote\x20Backend\x20Function\x20scripts\x20to\x20local','risk':a42_0x346709(0x177),'structuredErrors':!![],'flags':[{'name':a42_0x346709(0x120),'type':a42_0x346709(0x159),'description':a42_0x346709(0x10e),'enum':[a42_0x346709(0x14f),'ENDPOINT','HOOK']},{'name':a42_0x346709(0x168),'type':a42_0x346709(0x100),'description':a42_0x346709(0x108)}],async 'dryRun'(_0x2026ef){const _0x577863=a42_0x346709,_0x258c7f=loadBffProjectConfig(_0x2026ef[_0x577863(0x11a)]),_0x15601d=await readBffLockFile(_0x258c7f[_0x577863(0x181)]),{appLock:_0x4e697d}=ensureLockScope(_0x15601d??createEmptyBffLock(),_0x2026ef['appCode'],_0x258c7f[_0x577863(0x151)],_0x577863(0x124)),_0x4a881b=normalizeBffType(_0x2026ef[_0x577863(0x136)](_0x577863(0x120)))??undefined,[_0x343b29,_0x71614c]=await Promise['all']([listBffScripts(_0x2026ef['appCode'],_0x4a881b),getBffScriptStatistics(_0x2026ef[_0x577863(0x11a)])]),_0x245448=_0x343b29['some'](_0x28f6ba=>normalizeBffType(_0x28f6ba['scriptType'])===_0x577863(0x11d)),_0x4b6a88=_0x245448?buildDatasetCodeToAliasMap(_0x2026ef[_0x577863(0x156)],_0x2026ef['appCode'],_0x2026ef[_0x577863(0x12b)]||_0x2026ef['mergedCli']?.[_0x577863(0x17b)]||_0x2026ef['mergedCli']?.[_0x577863(0xf9)]):new Map(),_0x29e478=_0x245448?await planHookDirectoryMigration(_0x258c7f,_0x4e697d,_0x4b6a88,await scanLocalBffFunctions(_0x258c7f,'HOOK')):undefined,_0x22de7c=createHookLocationMap(_0x71614c),_0x161bed=[];for(const _0x1e07c8 of _0x343b29){const _0x4b4002=resolveRemoteScriptTarget(_0x258c7f,_0x1e07c8,_0x22de7c,_0x29e478?.[_0x577863(0x16d)]??_0x4e697d['functions'],_0x4b6a88);if(!_0x4b4002){_0x161bed[_0x577863(0x10c)]({'scriptType':_0x1e07c8[_0x577863(0x104)],'functionName':_0x1e07c8['functionName']??'','status':_0x577863(0x15b),'reason':_0x577863(0x18c)});continue;}const _0x9f679c=(_0x29e478?.[_0x577863(0x16d)]??_0x4e697d[_0x577863(0x101)])[_0x4b4002[_0x577863(0x149)]],_0x200703=_0x1e07c8[_0x577863(0x14a)]!=null?computeContentHash(_0x1e07c8[_0x577863(0x14a)]):undefined,_0x2cbf6e=await hasUnsyncedLocalChanges(resolveMigratedSourceFilePath(_0x29e478,_0x4b4002)??_0x4b4002[_0x577863(0x110)],_0x9f679c,_0x200703),_0x3c00cb=_0x2cbf6e?localUnsyncedConflict(_0x4b4002,_0x1e07c8['id']):undefined;_0x161bed[_0x577863(0x10c)]({'lockKey':_0x4b4002[_0x577863(0x149)],'filePath':_0x4b4002[_0x577863(0x110)],'remoteId':_0x1e07c8['id']??null,'status':_0x3c00cb?'conflict':_0x577863(0x152),..._0x3c00cb?{'conflict':_0x3c00cb}:{},..._0x4b4002['hookLocation']?{'alias':_0x4b4002[_0x577863(0x119)]['alias']??null,'datasetCode':_0x4b4002[_0x577863(0x119)]['datasetCode'],'operationType':_0x4b4002[_0x577863(0x119)][_0x577863(0x173)],'functionNode':_0x4b4002['hookLocation'][_0x577863(0x17a)]}:{}});}return{'method':'GET','url':'/api/management/library/scripts/list?appCode='+_0x2026ef[_0x577863(0x11a)]+(_0x4a881b?_0x577863(0x17f)+_0x4a881b:'')+_0x577863(0x147)+BFF_LIST_PAGE_SIZE,'body':{'appCode':_0x2026ef[_0x577863(0x11a)],'filterType':_0x4a881b??null,..._0x29e478&&_0x29e478[_0x577863(0x12a)][_0x577863(0x13a)]>0x0?{'hookDirectoryMigrations':_0x29e478['migrations'][_0x577863(0x106)](_0x5374b7=>({'from':_0x5374b7[_0x577863(0xf7)],'to':_0x5374b7[_0x577863(0x180)]}))}:{},'files':_0x161bed},'description':_0x577863(0x12d)+_0x161bed[_0x577863(0x13a)]+'\x20remote\x20Backend\x20Function\x20script(s)\x20for\x20pull'};},async 'execute'(_0xe67e87){const _0x258be4=a42_0x346709,_0x4d18a3=loadBffProjectConfig(_0xe67e87[_0x258be4(0x11a)]),_0x1e5457=await readBffLockFile(_0x4d18a3[_0x258be4(0x181)]),{lockData:_0x19da7f,appLock:_0x58e51b}=ensureLockScope(_0x1e5457??createEmptyBffLock(),_0xe67e87[_0x258be4(0x11a)],_0x4d18a3[_0x258be4(0x151)],_0x258be4(0x124)),_0x7e8f76=normalizeBffType(_0xe67e87[_0x258be4(0x136)]('type'))??undefined;if(_0xe67e87['str'](_0x258be4(0x120))&&!_0x7e8f76)throw CliErrors[_0x258be4(0xfc)](_0x258be4(0x175));const [_0x2f71e0,_0x4c2f11]=await Promise['all']([listBffScripts(_0xe67e87['appCode'],_0x7e8f76),getBffScriptStatistics(_0xe67e87[_0x258be4(0x11a)])]);if(_0x2f71e0[_0x258be4(0x13a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'conflicts':[],'failed':[]},'message':'No\x20remote\x20Backend\x20Function\x20scripts\x20found.'};const _0x10a193=_0xe67e87[_0x258be4(0x102)](_0x258be4(0x168));if(_0x10a193&&!_0xe67e87[_0x258be4(0x158)]){const _0x2440fd=await confirmForce();if(!_0x2440fd)throw CliErrors[_0x258be4(0x143)](_0x258be4(0x17c));}if(_0x10a193&&_0xe67e87[_0x258be4(0x158)]){}const _0x2fffd1=_0x2f71e0[_0x258be4(0x130)](_0x2cc5da=>normalizeBffType(_0x2cc5da[_0x258be4(0x104)])===_0x258be4(0x11d)),_0x10e3b5=_0x2fffd1?buildDatasetCodeToAliasMap(_0xe67e87[_0x258be4(0x156)],_0xe67e87[_0x258be4(0x11a)],_0xe67e87[_0x258be4(0x12b)]||_0xe67e87[_0x258be4(0x162)]?.[_0x258be4(0x17b)]||_0xe67e87['mergedCli']?.[_0x258be4(0xf9)]):new Map(),_0x719014=createHookLocationMap(_0x4c2f11),_0x72d963=JSON[_0x258be4(0x145)](JSON[_0x258be4(0x111)](_0x19da7f)),_0x71452f=_0xe67e87['appCode'],_0x7d0b00=_0x72d963[_0x258be4(0x127)][_0x71452f];if(!_0x7d0b00)throw new Error(_0x258be4(0x186)+_0x71452f+_0x258be4(0x131));const _0x3003c7=_0x2fffd1?await applyHookDirectoryMigration(await planHookDirectoryMigration(_0x4d18a3,_0x7d0b00,_0x10e3b5,await scanLocalBffFunctions(_0x4d18a3,_0x258be4(0x11d))),_0x7d0b00):undefined,_0x196aba=createPullFileTransaction(),_0x56f7b5=[],_0x53ee36=[],_0x5a94ec=[],_0x5dee9e=[];for(const _0x4e6b14 of _0x2f71e0){const _0x272c5c=resolveRemoteScriptTarget(_0x4d18a3,_0x4e6b14,_0x719014,_0x7d0b00[_0x258be4(0x101)],_0x10e3b5);if(!_0x272c5c){_0x53ee36[_0x258be4(0x10c)]({'lockKey':_0x4e6b14['scriptType']+'/'+_0x4e6b14[_0x258be4(0x167)],'reason':_0x258be4(0x18c)});continue;}const _0x275491=_0x7d0b00[_0x258be4(0x101)][_0x272c5c[_0x258be4(0x149)]];try{if(!_0x4e6b14['id'])throw new Error(_0x258be4(0x18b));if(_0x4e6b14[_0x258be4(0x14a)]==null)throw new Error('Remote\x20script\x20missing\x20content.');const _0x409bef=_0x4e6b14['scriptContent'],_0x2840da=computeContentHash(_0x409bef);if(!_0x10a193){const _0x3ee432=await hasUnsyncedLocalChanges(_0x272c5c[_0x258be4(0x110)],_0x275491,_0x2840da);if(_0x3ee432){_0x5a94ec[_0x258be4(0x10c)](localUnsyncedConflict(_0x272c5c,_0x4e6b14['id']));continue;}}await _0x196aba[_0x258be4(0x122)](_0x272c5c['filePath'],_0x409bef);const _0xac86f6={'hash':_0x2840da,'remoteId':_0x4e6b14['id'],'version':_0x4e6b14['version']};_0x272c5c[_0x258be4(0x120)]===_0x258be4(0x11d)&&_0x272c5c[_0x258be4(0x119)]&&(_0xac86f6[_0x258be4(0xfe)]=_0x272c5c[_0x258be4(0x119)][_0x258be4(0xfe)],_0xac86f6[_0x258be4(0x113)]=_0x272c5c['hookLocation'][_0x258be4(0x113)],_0xac86f6[_0x258be4(0x173)]=_0x272c5c['hookLocation'][_0x258be4(0x173)],_0xac86f6['functionNode']=_0x272c5c[_0x258be4(0x119)][_0x258be4(0x17a)]),_0x7d0b00[_0x258be4(0x101)][_0x272c5c[_0x258be4(0x149)]]=_0xac86f6,_0x56f7b5[_0x258be4(0x10c)]({'lockKey':_0x272c5c['lockKey'],'remoteId':_0x4e6b14['id']});}catch(_0x27bebf){_0x5dee9e[_0x258be4(0x10c)]({'lockKey':_0x272c5c[_0x258be4(0x149)],'error':_0x27bebf instanceof Error?_0x27bebf[_0x258be4(0x153)]:String(_0x27bebf)});}}_0x7d0b00[_0x258be4(0x166)]=new Date()[_0x258be4(0x142)]();try{await writeBffLockFile(_0x4d18a3['lockFilePath'],_0x72d963);}catch(_0x2bbfc6){const _0x1501e5=[...await _0x196aba[_0x258be4(0xff)](),...await _0x3003c7?.['rollback']()??[]];throw withRollbackErrors(_0x2bbfc6,_0x258be4(0x13f),_0x1501e5);}return{'ok':_0x5dee9e['length']===0x0,'data':{'pulled':_0x56f7b5,'skipped':_0x53ee36,'conflicts':_0x5a94ec,'failed':_0x5dee9e},'message':formatPullMessage(_0x56f7b5[_0x258be4(0x13a)],_0x53ee36[_0x258be4(0x13a)],_0x5a94ec['length'],_0x5dee9e[_0x258be4(0x13a)])};}};function localUnsyncedConflict(_0x52ef4f,_0x4c1d42){const _0x3c8e5d=a42_0x346709,_0x1e0f12=_0x52ef4f[_0x3c8e5d(0x149)][_0x3c8e5d(0x15f)]('/')['at'](-0x1);return{'code':_0x3c8e5d(0xfd),'lockKey':_0x52ef4f['lockKey'],'filePath':_0x52ef4f[_0x3c8e5d(0x110)],..._0x4c1d42!=null?{'remoteId':_0x4c1d42}:{},'message':'Local\x20script\x20differs\x20from\x20the\x20last\x20pulled\x20version.\x20Review\x20it\x20before\x20choosing\x20the\x20source\x20of\x20truth.','nextAction':{'action':_0x3c8e5d(0x188),'command':CLI_BIN_NAME+_0x3c8e5d(0x16e)+_0x52ef4f['type']+_0x3c8e5d(0x105)+_0x1e0f12+_0x3c8e5d(0x14c),'requiresReview':!![],'message':'If\x20the\x20reviewed\x20local\x20script\x20should\x20win,\x20run\x20this\x20command\x20to\x20update\x20the\x20remote\x20script.\x20Do\x20not\x20use\x20--force\x20to\x20resolve\x20a\x20content\x20conflict.'}};}function formatPullMessage(_0x3c8336,_0x2cfd9b,_0x3deef3,_0x13e951){const _0x5372f7=a42_0x346709,_0x93e2ca=['Pull\x20complete:\x20'+_0x3c8336+_0x5372f7(0x115),_0x2cfd9b+'\x20skipped'];_0x3deef3>0x0&&_0x93e2ca[_0x5372f7(0x10c)](_0x3deef3+_0x5372f7(0x135)+(_0x3deef3===0x1?'':'s')+'\x20'+(_0x3deef3===0x1?_0x5372f7(0x18d):_0x5372f7(0x138))+_0x5372f7(0x18a));if(_0x13e951>0x0)_0x93e2ca['push'](_0x13e951+_0x5372f7(0x170));return _0x93e2ca[_0x5372f7(0x183)](',\x20');}async function hasUnsyncedLocalChanges(_0x26a4a2,_0x3ac702,_0x4ad5f7){if(!await fileExists(_0x26a4a2))return![];const _0x55ee36=await computeFileHash(_0x26a4a2);if(!_0x3ac702)return _0x4ad5f7?_0x55ee36!==_0x4ad5f7:!![];return _0x55ee36!==_0x3ac702['hash'];}function createPullFileTransaction(){const _0x3e5800=new Map(),_0x274e5b=async(_0x5d4b58,_0x4bb3bb)=>{const _0x4bfd80=a42_0x3677;try{if(_0x4bb3bb[_0x4bfd80(0x187)])await ensureParentDirectory(_0x5d4b58),await writeFile(_0x5d4b58,_0x4bb3bb[_0x4bfd80(0x15d)]);else try{await unlink(_0x5d4b58);}catch(_0x2dfb87){if(_0x2dfb87['code']!=='ENOENT')throw _0x2dfb87;}return undefined;}catch(_0x56a07b){return _0x56a07b instanceof Error?_0x56a07b:new Error(String(_0x56a07b));}};return{async 'write'(_0x13d65c,_0x2eb6ee){const _0x4ff43e=a42_0x3677;if(!_0x3e5800[_0x4ff43e(0x16a)](_0x13d65c))try{_0x3e5800[_0x4ff43e(0x17e)](_0x13d65c,{'existed':!![],'content':await readFile(_0x13d65c)});}catch(_0x2fdf69){if(_0x2fdf69[_0x4ff43e(0x11f)]!==_0x4ff43e(0x16b))throw _0x2fdf69;_0x3e5800[_0x4ff43e(0x17e)](_0x13d65c,{'existed':![]});}try{await ensureParentDirectory(_0x13d65c),await writeFile(_0x13d65c,_0x2eb6ee,_0x4ff43e(0x123));}catch(_0x28eca4){const _0x2b8585=await _0x274e5b(_0x13d65c,_0x3e5800[_0x4ff43e(0xfb)](_0x13d65c));if(!_0x2b8585)_0x3e5800[_0x4ff43e(0x10f)](_0x13d65c);throw withRollbackErrors(_0x28eca4,_0x4ff43e(0x144)+_0x13d65c+'\x22.',_0x2b8585?[_0x2b8585]:[]);}},async 'rollback'(){const _0x2aee4c=a42_0x3677,_0xb11421=[];for(const [_0x3f497c,_0x3b21b9]of[..._0x3e5800[_0x2aee4c(0xfa)]()]['reverse']()){const _0x1089b4=await _0x274e5b(_0x3f497c,_0x3b21b9);_0x1089b4&&_0xb11421[_0x2aee4c(0x10c)](new Error(_0x2aee4c(0x176)+_0x3f497c+_0x2aee4c(0x107)+_0x1089b4[_0x2aee4c(0x153)]));}return _0xb11421;}};}function withRollbackErrors(_0x4a5b22,_0x14e0bf,_0x4aa728){const _0x35574c=a42_0x346709,_0x48bfff=_0x4a5b22 instanceof Error?_0x4a5b22:new Error(String(_0x4a5b22));if(_0x4aa728['length']===0x0)return _0x48bfff;return new AggregateError([_0x48bfff,..._0x4aa728],_0x14e0bf+_0x35574c(0x121)+_0x4aa728[_0x35574c(0x106)](_0xb72283=>_0xb72283[_0x35574c(0x153)])[_0x35574c(0x183)](';\x20'));}function buildDatasetCodeToAliasMap(_0x251952,_0x43ff8e,_0x446401){const _0x5ce698=a42_0x346709,_0x255bbf=resolveApiModelSource(_0x251952,_0x43ff8e,_0x446401),_0x39b3cc=loadAliasMap(_0x251952,undefined,_0x255bbf[_0x5ce698(0x110)],_0x255bbf[_0x5ce698(0x163)]);return assertUnambiguousHookAliases(_0x39b3cc),new Map(_0x39b3cc['map'](_0x235a7e=>[_0x235a7e['datasetCode'][_0x5ce698(0x154)](),_0x235a7e[_0x5ce698(0xfe)]]));}async function planHookDirectoryMigration(_0x330b4d,_0x4e13cb,_0x57191c,_0x5da2ec){const _0x37b4a2=a42_0x346709,_0x69ef0a=new Map();for(const [_0x7f6451,_0x1a3aee]of Object[_0x37b4a2(0xfa)](_0x4e13cb[_0x37b4a2(0x101)])){const [_0x18f368,_0x1506ef,_0x57c54a,_0x37ec79,_0x31ca4a,..._0x14658a]=_0x7f6451['split']('/');if(_0x18f368!==_0x37b4a2(0x11d)||!_0x1506ef||!_0x57c54a||!_0x37ec79||!_0x31ca4a||_0x14658a[_0x37b4a2(0x13a)]>0x0||!_0x1a3aee[_0x37b4a2(0x113)])continue;const _0x1411c5=_0x57191c[_0x37b4a2(0xfb)](_0x1a3aee[_0x37b4a2(0x113)][_0x37b4a2(0x154)]()),_0x5ed6a1=_0x1411c5??_0x1a3aee[_0x37b4a2(0x113)];if(!isSafeHookDirectorySegment(_0x1506ef))throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x13e)+_0x1506ef+'\x22\x20from\x20the\x20lock\x20file.');if(!isSafeHookDirectorySegment(_0x5ed6a1))throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x1506ef+_0x37b4a2(0x189));if(_0x1506ef===_0x5ed6a1)continue;const _0x24ab3f=_0x69ef0a[_0x37b4a2(0xfb)](_0x1506ef)??{'datasetCode':_0x1a3aee[_0x37b4a2(0x113)],'alias':_0x1411c5,'keyChanges':[]};if(_0x24ab3f[_0x37b4a2(0x113)]!==_0x1a3aee[_0x37b4a2(0x113)])throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x1506ef+_0x37b4a2(0x139));const _0x37c4b5=_0x37b4a2(0x10d)+_0x5ed6a1+'/'+_0x57c54a+'/'+_0x37ec79+'/'+_0x31ca4a;try{resolveLocalFilePathFromLockKey(_0x330b4d,_0x7f6451),resolveLocalFilePathFromLockKey(_0x330b4d,_0x37c4b5);}catch(_0x5eadc2){throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x184)+_0x7f6451+_0x37b4a2(0x107)+(_0x5eadc2 instanceof Error?_0x5eadc2[_0x37b4a2(0x153)]:String(_0x5eadc2)));}_0x24ab3f[_0x37b4a2(0x11b)][_0x37b4a2(0x10c)]({'oldLockKey':_0x7f6451,'newLockKey':_0x37c4b5,'entry':_0x1a3aee}),_0x69ef0a[_0x37b4a2(0x17e)](_0x1506ef,_0x24ab3f);}const _0x56cdf6=new Set([..._0x69ef0a['values']()][_0x37b4a2(0x157)](_0x16adf1=>_0x16adf1[_0x37b4a2(0x11b)][_0x37b4a2(0x106)](_0x3d9d97=>_0x3d9d97['oldLockKey']))),_0x3577fb=new Map(),_0x1dfd3f=new Map();for(const [_0x5659f2,_0x4ae4cd]of _0x69ef0a){const _0x2970e3=_0x4ae4cd[_0x37b4a2(0xfe)]??_0x4ae4cd['datasetCode'],_0x48e8f1=hookDirectoryIdentity(_0x2970e3),_0xebe2ed=_0x3577fb[_0x37b4a2(0xfb)](_0x48e8f1);if(_0xebe2ed&&_0xebe2ed!==_0x5659f2)throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x11c)+_0xebe2ed+_0x37b4a2(0x160)+_0x5659f2+_0x37b4a2(0x116)+_0x2970e3+'\x22.\x20Resolve\x20the\x20directories\x20manually\x20before\x20retrying.');_0x3577fb[_0x37b4a2(0x17e)](_0x48e8f1,_0x5659f2);for(const _0x207cff of _0x4ae4cd[_0x37b4a2(0x11b)]){const _0x47ac7f=_0x1dfd3f[_0x37b4a2(0xfb)](_0x207cff['newLockKey']);if(_0x47ac7f&&_0x47ac7f!==_0x207cff[_0x37b4a2(0x12e)])throw CliErrors['validation'](_0x37b4a2(0x165)+_0x47ac7f+_0x37b4a2(0x160)+_0x207cff['oldLockKey']+'\x22:\x20both\x20target\x20\x22'+_0x207cff[_0x37b4a2(0x137)]+_0x37b4a2(0x109));if(_0x56cdf6[_0x37b4a2(0x16a)](_0x207cff[_0x37b4a2(0x137)]))throw CliErrors['validation'](_0x37b4a2(0x114)+_0x207cff[_0x37b4a2(0x12e)]+_0x37b4a2(0x129)+_0x207cff[_0x37b4a2(0x137)]+_0x37b4a2(0x155));_0x1dfd3f[_0x37b4a2(0x17e)](_0x207cff[_0x37b4a2(0x137)],_0x207cff['oldLockKey']);}}const _0x6b3f6d=new Map();for(const [_0x486729,_0x489ca2]of _0x57191c){_0x6b3f6d[_0x37b4a2(0x17e)](hookDirectoryIdentity(_0x489ca2),_0x486729);}const _0x2fce06=[];for(const [_0x2fb24e,_0x2da0e3]of _0x69ef0a){const _0x5882b2=_0x2da0e3['alias']??_0x2da0e3[_0x37b4a2(0x113)],_0x305c71=join(_0x330b4d[_0x37b4a2(0x15a)],_0x37b4a2(0x11d),_0x2fb24e),_0x135126=join(_0x330b4d[_0x37b4a2(0x15a)],_0x37b4a2(0x11d),_0x5882b2),_0x2e44db=await directoryExists(_0x305c71),_0x38e02e=await directoryExists(_0x135126),_0x4801cf=_0x2e44db?_0x38e02e?await sameDirectory(_0x305c71,_0x135126)?_0x37b4a2(0x182):undefined:_0x37b4a2(0x13c):_0x37b4a2(0x185);if(!_0x4801cf)throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x148)+_0x5882b2+_0x37b4a2(0x161));const _0x32fe09=_0x6b3f6d[_0x37b4a2(0xfb)](hookDirectoryIdentity(_0x2fb24e));if(_0x32fe09&&_0x32fe09!==_0x2da0e3[_0x37b4a2(0x113)][_0x37b4a2(0x154)]()){const _0x990774=new Set(_0x2da0e3[_0x37b4a2(0x11b)]['map'](_0x1b4f8f=>_0x1b4f8f['oldLockKey'])),_0x502a19=_0x5da2ec['filter'](_0x4ecaf2=>_0x4ecaf2[_0x37b4a2(0x120)]===_0x37b4a2(0x11d)&&_0x4ecaf2[_0x37b4a2(0xfe)]!=null&&hookDirectoryIdentity(_0x4ecaf2[_0x37b4a2(0xfe)])===hookDirectoryIdentity(_0x2fb24e)&&!_0x990774[_0x37b4a2(0x16a)](_0x4ecaf2[_0x37b4a2(0x149)]));if(_0x502a19[_0x37b4a2(0x13a)]>0x0)throw CliErrors['validation'](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x15e));}const _0x59758a=_0x6b3f6d['get'](hookDirectoryIdentity(_0x5882b2));if(_0x59758a&&_0x59758a!==_0x2da0e3['datasetCode'][_0x37b4a2(0x154)]())throw CliErrors['validation'](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x148)+_0x5882b2+_0x37b4a2(0x14e));for(const _0x58e1da of _0x2da0e3[_0x37b4a2(0x11b)]){const _0x25873b=_0x4e13cb[_0x37b4a2(0x101)][_0x58e1da[_0x37b4a2(0x137)]];if(_0x25873b&&!_0x56cdf6[_0x37b4a2(0x16a)](_0x58e1da['newLockKey'])&&!sameHookIdentity(_0x58e1da[_0x37b4a2(0x174)],_0x25873b))throw CliErrors[_0x37b4a2(0xfc)](_0x37b4a2(0x140)+_0x2fb24e+_0x37b4a2(0x148)+_0x5882b2+_0x37b4a2(0x150));}_0x2fce06[_0x37b4a2(0x10c)]({'oldDirectory':_0x2fb24e,'newDirectory':_0x5882b2,'oldDirectoryPath':_0x305c71,'newDirectoryPath':_0x135126,'mode':_0x4801cf,'alias':_0x2da0e3[_0x37b4a2(0xfe)],'keyChanges':_0x2da0e3[_0x37b4a2(0x11b)]});}const _0x32845f={..._0x4e13cb['functions']},_0x3c03e9=new Map(),_0x3af3ac=new Map();for(const _0x39782e of _0x2fce06){const _0xbb3dff=_0x39782e['mode']!==_0x37b4a2(0x185);_0xbb3dff&&_0x3af3ac[_0x37b4a2(0x17e)](hookDirectoryIdentity(_0x39782e[_0x37b4a2(0x180)]),_0x39782e['oldDirectoryPath']);for(const _0xc8c796 of _0x39782e[_0x37b4a2(0x11b)]){const _0x1a41b1=_0x32845f[_0xc8c796['newLockKey']],_0x53c083=_0xbb3dff?_0xc8c796[_0x37b4a2(0x174)]:_0x1a41b1??_0xc8c796['entry'];_0x32845f[_0xc8c796[_0x37b4a2(0x137)]]=canonicalizeHookEntry(_0x53c083,_0x39782e[_0x37b4a2(0xfe)]),delete _0x32845f[_0xc8c796[_0x37b4a2(0x12e)]],_0xbb3dff&&_0x3c03e9['set'](_0xc8c796['newLockKey'],resolveLocalFilePathFromLockKey(_0x330b4d,_0xc8c796[_0x37b4a2(0x12e)]));}}return{'migrations':_0x2fce06,'projectedFunctions':_0x32845f,'sourceFilePathByNewLockKey':_0x3c03e9,'sourceDirectoryPathByNewDirectory':_0x3af3ac};}function resolveMigratedSourceFilePath(_0x4b739f,_0x40ecfb){const _0x2409bc=a42_0x346709;if(!_0x4b739f||!_0x40ecfb)return undefined;const _0x1be3bb=_0x4b739f[_0x2409bc(0x172)]['get'](_0x40ecfb[_0x2409bc(0x149)]);if(_0x1be3bb)return _0x1be3bb;if(_0x40ecfb[_0x2409bc(0x120)]!==_0x2409bc(0x11d))return undefined;const [,_0x1f49c6,..._0x46a470]=_0x40ecfb[_0x2409bc(0x149)]['split']('/');if(!_0x1f49c6||_0x46a470[_0x2409bc(0x13a)]===0x0)return undefined;const _0x57778c=_0x4b739f[_0x2409bc(0x133)][_0x2409bc(0xfb)](hookDirectoryIdentity(_0x1f49c6));return _0x57778c?join(_0x57778c,..._0x46a470)+_0x2409bc(0x179):undefined;}function sameHookIdentity(_0x2bd441,_0x7f9c94){const _0x366fe1=a42_0x346709;return _0x2bd441[_0x366fe1(0x103)]===_0x7f9c94[_0x366fe1(0x103)]&&_0x2bd441[_0x366fe1(0x113)]===_0x7f9c94[_0x366fe1(0x113)]&&_0x2bd441[_0x366fe1(0x173)]===_0x7f9c94['operationType']&&_0x2bd441['functionNode']===_0x7f9c94['functionNode'];}function a42_0x3677(_0x2f3520,_0x18654b){_0x2f3520=_0x2f3520-0xf6;const _0x4fd575=a42_0x4fd5();let _0x367787=_0x4fd575[_0x2f3520];return _0x367787;}function canonicalizeHookEntry(_0x4bd1ac,_0x25c848){const {alias:_0x1b8c55,..._0x5b6892}=_0x4bd1ac;return _0x25c848?{..._0x5b6892,'alias':_0x25c848}:_0x5b6892;}function hookDirectoryIdentity(_0x240488){const _0xb13916=a42_0x346709;return _0x240488['normalize'](_0xb13916(0x125))['toLowerCase']();}function isSafeHookDirectorySegment(_0xe3422){return isSafeLockKeySegment(_0xe3422);}async function sameDirectory(_0x21cd83,_0x6e698c){const _0xc5954b=a42_0x346709,[_0x4d14c0,_0x4d1a05]=await Promise[_0xc5954b(0x12c)]([stat(_0x21cd83),stat(_0x6e698c)]);return _0x4d14c0[_0xc5954b(0x126)]===_0x4d1a05[_0xc5954b(0x126)]&&_0x4d14c0[_0xc5954b(0x13b)]===_0x4d1a05[_0xc5954b(0x13b)];}async function applyHookDirectoryMigration(_0x5191a3,_0x4b7892){const _0x2cca76=a42_0x346709,_0x17c2ea=_0x4b7892[_0x2cca76(0x101)],_0xa40d5c=_0x4b7892[_0x2cca76(0x166)],_0x184d3d=[],_0x245f3a=async()=>{const _0x317293=_0x2cca76,_0x40e64f=[];_0x4b7892[_0x317293(0x101)]=_0x17c2ea,_0x4b7892['lastSync']=_0xa40d5c;for(const {migration:_0x5941a8,temporaryPath:_0x42a772}of[..._0x184d3d][_0x317293(0x16c)]()){try{_0x42a772?(await rename(_0x5941a8[_0x317293(0x13d)],_0x42a772),await rename(_0x42a772,_0x5941a8[_0x317293(0x128)])):await rename(_0x5941a8['newDirectoryPath'],_0x5941a8['oldDirectoryPath']);}catch(_0x367543){_0x40e64f[_0x317293(0x10c)](new Error(_0x317293(0x132)+_0x5941a8[_0x317293(0xf7)]+_0x317293(0xf6)+_0x5941a8[_0x317293(0x180)]+_0x317293(0x107)+(_0x367543 instanceof Error?_0x367543[_0x317293(0x153)]:String(_0x367543))));}}return _0x40e64f;};try{for(const _0x1faeb4 of _0x5191a3['migrations']){if(_0x1faeb4[_0x2cca76(0x14d)]===_0x2cca76(0x13c))await ensureParentDirectory(_0x1faeb4[_0x2cca76(0x13d)]),await rename(_0x1faeb4['oldDirectoryPath'],_0x1faeb4[_0x2cca76(0x13d)]),_0x184d3d[_0x2cca76(0x10c)]({'migration':_0x1faeb4});else{if(_0x1faeb4[_0x2cca76(0x14d)]==='case-rename'){const _0x4559c0=join(dirname(_0x1faeb4[_0x2cca76(0x128)]),_0x2cca76(0x10a)+randomUUID());await rename(_0x1faeb4[_0x2cca76(0x128)],_0x4559c0);try{await rename(_0x4559c0,_0x1faeb4[_0x2cca76(0x13d)]);}catch(_0x29531e){try{await rename(_0x4559c0,_0x1faeb4[_0x2cca76(0x128)]);}catch(_0x4df7ad){throw withRollbackErrors(_0x29531e,'Failed\x20to\x20rename\x20HOOK\x20directory\x20\x22'+_0x1faeb4[_0x2cca76(0xf7)]+'\x22\x20to\x20\x22'+_0x1faeb4[_0x2cca76(0x180)]+'\x22;\x20temporary\x20directory\x20\x22'+_0x4559c0+'\x22\x20may\x20remain.',[new Error('Could\x20not\x20restore\x20temporary\x20HOOK\x20directory\x20\x22'+_0x4559c0+'\x22\x20to\x20\x22'+_0x1faeb4['oldDirectory']+_0x2cca76(0x107)+(_0x4df7ad instanceof Error?_0x4df7ad[_0x2cca76(0x153)]:String(_0x4df7ad)))]);}throw _0x29531e;}_0x184d3d[_0x2cca76(0x10c)]({'migration':_0x1faeb4,'temporaryPath':_0x4559c0});}}}return _0x4b7892[_0x2cca76(0x101)]=_0x5191a3['projectedFunctions'],{'rollback':_0x245f3a};}catch(_0x77eb79){const _0x57addf=await _0x245f3a();throw withRollbackErrors(_0x77eb79,_0x2cca76(0x141),_0x57addf);}}async function confirmForce(){const _0x193439=a42_0x346709,_0x5b0544=createInterface({'input':process[_0x193439(0x16f)],'output':process['stderr']}),_0x4fd12f=await new Promise(_0x2a857e=>{const _0x299b78=_0x193439;_0x5b0544[_0x299b78(0x178)](_0x299b78(0x15c),_0x2a857e);});return _0x5b0544[_0x193439(0x164)](),['y','yes'][_0x193439(0xf8)](_0x4fd12f[_0x193439(0x171)]()[_0x193439(0x154)]());}