@lovrabet/rabetbase-cli 2.4.4 → 2.4.5-beta.1

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 (330) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/index.js +1 -1
  20. package/lib/commands/app/list.js +1 -1
  21. package/lib/commands/app/members-list.js +1 -1
  22. package/lib/commands/app/remote-directory.js +1 -1
  23. package/lib/commands/app/shared.js +1 -1
  24. package/lib/commands/app-config/delete.js +1 -1
  25. package/lib/commands/app-config/get.js +1 -1
  26. package/lib/commands/app-config/index.js +1 -1
  27. package/lib/commands/app-config/list.js +1 -1
  28. package/lib/commands/app-config/set.js +1 -1
  29. package/lib/commands/app-config/shared.js +1 -1
  30. package/lib/commands/auth/index.js +1 -1
  31. package/lib/commands/bff/create.js +1 -1
  32. package/lib/commands/bff/delete.js +1 -1
  33. package/lib/commands/bff/detail.js +1 -1
  34. package/lib/commands/bff/index.js +1 -1
  35. package/lib/commands/bff/list.js +1 -1
  36. package/lib/commands/bff/pull.js +1 -1
  37. package/lib/commands/bff/push.js +1 -1
  38. package/lib/commands/bff/status.js +1 -1
  39. package/lib/commands/cli-skill/index.js +1 -1
  40. package/lib/commands/cli-update.js +1 -1
  41. package/lib/commands/codegen/index.js +1 -1
  42. package/lib/commands/codegen/sdk.js +1 -1
  43. package/lib/commands/codegen/sql.js +1 -1
  44. package/lib/commands/common/app-registry.js +1 -1
  45. package/lib/commands/common/app-selector.js +1 -1
  46. package/lib/commands/common/async-task.js +1 -1
  47. package/lib/commands/common/dry-run.js +1 -1
  48. package/lib/commands/common/flags.d.ts +1 -0
  49. package/lib/commands/common/flags.js +1 -1
  50. package/lib/commands/common/local-file.js +1 -1
  51. package/lib/commands/common/validate.js +1 -1
  52. package/lib/commands/config/get.js +1 -1
  53. package/lib/commands/config/index.js +1 -1
  54. package/lib/commands/config/list.js +1 -1
  55. package/lib/commands/config/set.js +1 -1
  56. package/lib/commands/config/shared.js +1 -1
  57. package/lib/commands/data/filter.js +1 -1
  58. package/lib/commands/data/getOne.js +1 -1
  59. package/lib/commands/data/index.js +1 -1
  60. package/lib/commands/data/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/{permit/index.d.ts → dataset/business-groups.d.ts} +1 -1
  63. package/lib/commands/dataset/business-groups.js +1 -0
  64. package/lib/commands/dataset/capability.js +1 -1
  65. package/lib/commands/dataset/delete.js +1 -1
  66. package/lib/commands/dataset/detail.js +1 -1
  67. package/lib/commands/dataset/extend-update.js +1 -1
  68. package/lib/commands/dataset/field-update.js +1 -1
  69. package/lib/commands/dataset/generate.js +1 -1
  70. package/lib/commands/dataset/index.js +1 -1
  71. package/lib/commands/dataset/list.js +1 -1
  72. package/lib/commands/dataset/operations.js +1 -1
  73. package/lib/commands/dataset/relation-audit.js +1 -1
  74. package/lib/commands/dataset/relation-create.js +1 -1
  75. package/lib/commands/dataset/relation-delete.js +1 -1
  76. package/lib/commands/dataset/relation-shared.js +1 -1
  77. package/lib/commands/dataset/relation-update.js +1 -1
  78. package/lib/commands/dataset/relations.js +1 -1
  79. package/lib/commands/dataset/rename.js +1 -1
  80. package/lib/commands/dataset/restore.js +1 -1
  81. package/lib/commands/db/analysis-batching.js +1 -1
  82. package/lib/commands/db/analyze-batch-plan.js +1 -1
  83. package/lib/commands/db/analyze-cancel.js +1 -1
  84. package/lib/commands/db/analyze-start.js +1 -1
  85. package/lib/commands/db/analyze-status.js +1 -1
  86. package/lib/commands/db/create.js +1 -1
  87. package/lib/commands/db/delete.js +1 -1
  88. package/lib/commands/db/detail.js +1 -1
  89. package/lib/commands/db/diff-refresh-start.js +1 -1
  90. package/lib/commands/db/diff-refresh-status.js +1 -1
  91. package/lib/commands/db/diff.js +1 -1
  92. package/lib/commands/db/index.js +1 -1
  93. package/lib/commands/db/list.js +1 -1
  94. package/lib/commands/db/shared.d.ts +15 -1
  95. package/lib/commands/db/shared.js +1 -1
  96. package/lib/commands/db/tables.js +1 -1
  97. package/lib/commands/db/test.js +1 -1
  98. package/lib/commands/db/update.js +1 -1
  99. package/lib/commands/doctor.js +1 -1
  100. package/lib/commands/file/index.js +1 -1
  101. package/lib/commands/init/index.js +1 -1
  102. package/lib/commands/issue/index.js +1 -1
  103. package/lib/commands/issue/nudge.js +1 -1
  104. package/lib/commands/issue/report.js +1 -1
  105. package/lib/commands/issue/shared.js +1 -1
  106. package/lib/commands/kb/create.js +1 -1
  107. package/lib/commands/kb/delete.js +1 -1
  108. package/lib/commands/kb/detail.js +1 -1
  109. package/lib/commands/kb/index.js +1 -1
  110. package/lib/commands/kb/list.js +1 -1
  111. package/lib/commands/kb/shared.js +1 -1
  112. package/lib/commands/kb/update.js +1 -1
  113. package/lib/commands/logs/index.js +1 -1
  114. package/lib/commands/menu/asset-update.js +1 -1
  115. package/lib/commands/menu/delete.js +1 -1
  116. package/lib/commands/menu/external-link-create.js +1 -1
  117. package/lib/commands/menu/external-link-update.js +1 -1
  118. package/lib/commands/menu/group-create.js +1 -1
  119. package/lib/commands/menu/group-update.js +1 -1
  120. package/lib/commands/menu/index.js +1 -1
  121. package/lib/commands/menu/list.js +1 -1
  122. package/lib/commands/menu/move.js +1 -1
  123. package/lib/commands/menu/regroup-start.js +1 -1
  124. package/lib/commands/menu/rename.js +1 -1
  125. package/lib/commands/menu/shared/compare-table.js +1 -1
  126. package/lib/commands/menu/shared/delete-plan.js +1 -1
  127. package/lib/commands/menu/shared/facts.js +1 -1
  128. package/lib/commands/menu/shared/index.js +1 -1
  129. package/lib/commands/menu/shared/inquirer.js +1 -1
  130. package/lib/commands/menu/shared/local-pages.js +1 -1
  131. package/lib/commands/menu/shared/logic.js +1 -1
  132. package/lib/commands/menu/shared/mutations.js +1 -1
  133. package/lib/commands/menu/shared/service.js +1 -1
  134. package/lib/commands/menu/shared/sync-core.js +1 -1
  135. package/lib/commands/menu/shared/update-core.js +1 -1
  136. package/lib/commands/menu/shared/valid-url.js +1 -1
  137. package/lib/commands/menu/sync.js +1 -1
  138. package/lib/commands/notification/config-create.js +1 -1
  139. package/lib/commands/notification/config-delete.js +1 -1
  140. package/lib/commands/notification/config-list.js +1 -1
  141. package/lib/commands/notification/config-update.js +1 -1
  142. package/lib/commands/notification/index.js +1 -1
  143. package/lib/commands/notification/shared.js +1 -1
  144. package/lib/commands/ocr/index.js +1 -1
  145. package/lib/commands/page/generate-start.js +1 -1
  146. package/lib/commands/page/generate-status.js +1 -1
  147. package/lib/commands/page/index.js +1 -1
  148. package/lib/commands/page/pull.js +1 -1
  149. package/lib/commands/page/push.js +1 -1
  150. package/lib/commands/page/react/create.js +1 -1
  151. package/lib/commands/page/react/detail.js +1 -1
  152. package/lib/commands/page/react/list.js +1 -1
  153. package/lib/commands/page/react/publish.js +1 -1
  154. package/lib/commands/page/react/shared.js +1 -1
  155. package/lib/commands/page/react/syntax.js +1 -1
  156. package/lib/commands/page/react/template.js +1 -1
  157. package/lib/commands/page/react/update.js +1 -1
  158. package/lib/commands/page/relation-audit.js +1 -1
  159. package/lib/commands/page/restore.js +1 -1
  160. package/lib/commands/page/shared.js +1 -1
  161. package/lib/commands/page/standard-page-status.js +1 -1
  162. package/lib/commands/page/sync.js +1 -1
  163. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  164. package/lib/commands/project/create/format-elapsed.js +1 -1
  165. package/lib/commands/project/create/main.js +1 -1
  166. package/lib/commands/project/create/materialize-project-template.js +1 -1
  167. package/lib/commands/project/create/project-name.js +1 -1
  168. package/lib/commands/project/create/project-template-archive.js +1 -1
  169. package/lib/commands/project/create/project-template-path.js +1 -1
  170. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  171. package/lib/commands/project/create/use-format-code.js +1 -1
  172. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  173. package/lib/commands/project/index.js +1 -1
  174. package/lib/commands/project/upgrade.js +1 -1
  175. package/lib/commands/registry.js +1 -1
  176. package/lib/commands/role/delete.js +1 -1
  177. package/lib/commands/role/detail.js +1 -1
  178. package/lib/commands/role/index.js +1 -1
  179. package/lib/commands/role/list.js +1 -1
  180. package/lib/commands/role/shared.d.ts +15 -17
  181. package/lib/commands/role/shared.js +1 -1
  182. package/lib/commands/role/update.js +1 -1
  183. package/lib/commands/role/user-add.js +1 -1
  184. package/lib/commands/role/user-remove.js +1 -1
  185. package/lib/commands/role/user-resolve.js +1 -1
  186. package/lib/commands/run/index.js +1 -1
  187. package/lib/commands/schema.js +1 -1
  188. package/lib/commands/sql/create.js +1 -1
  189. package/lib/commands/sql/delete.js +1 -1
  190. package/lib/commands/sql/detail.js +1 -1
  191. package/lib/commands/sql/exec.js +1 -1
  192. package/lib/commands/sql/index.js +1 -1
  193. package/lib/commands/sql/list.js +1 -1
  194. package/lib/commands/sql/pull.js +1 -1
  195. package/lib/commands/sql/push.js +1 -1
  196. package/lib/commands/sql/shared.js +1 -1
  197. package/lib/commands/sql/status.js +1 -1
  198. package/lib/commands/sql/validate.js +1 -1
  199. package/lib/commands/task/index.js +1 -1
  200. package/lib/commands/task/status.js +1 -1
  201. package/lib/commands/tenant/index.js +1 -1
  202. package/lib/commands/tenant/members-list.js +1 -1
  203. package/lib/commands/tenant/shared.js +1 -1
  204. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  205. package/lib/commands/user-account/index.js +1 -1
  206. package/lib/commands/workspace/add.js +1 -1
  207. package/lib/commands/workspace/index.js +1 -1
  208. package/lib/commands/workspace/remove.js +1 -1
  209. package/lib/config/schema.js +1 -1
  210. package/lib/constant/cdn.js +1 -1
  211. package/lib/constant/cli.js +1 -1
  212. package/lib/constant/defaults.js +1 -1
  213. package/lib/constant/domain.js +1 -1
  214. package/lib/constant/env.js +1 -1
  215. package/lib/constant/output.js +1 -1
  216. package/lib/constant/paths.js +1 -1
  217. package/lib/constant/risk.js +1 -1
  218. package/lib/context/app-resolver.js +1 -1
  219. package/lib/context/auth-resolver.js +1 -1
  220. package/lib/context/config-loader.js +1 -1
  221. package/lib/context.js +1 -1
  222. package/lib/core/alias-resolver.js +1 -1
  223. package/lib/core/api-client.d.ts +70 -79
  224. package/lib/core/api-client.js +1 -1
  225. package/lib/core/bff/config.js +1 -1
  226. package/lib/core/bff/file-system.d.ts +1 -0
  227. package/lib/core/bff/file-system.js +1 -1
  228. package/lib/core/bff/hash.js +1 -1
  229. package/lib/core/bff/lock.js +1 -1
  230. package/lib/core/bff/utils.js +1 -1
  231. package/lib/core/db-resolver.js +1 -1
  232. package/lib/core/page/file-system.js +1 -1
  233. package/lib/core/page/hash.js +1 -1
  234. package/lib/core/page/lock.js +1 -1
  235. package/lib/core/sql-index-auditor.js +1 -1
  236. package/lib/core/sql-sync/config.js +1 -1
  237. package/lib/core/sql-sync/file-system.js +1 -1
  238. package/lib/core/sql-sync/hash.js +1 -1
  239. package/lib/core/sql-sync/lock.js +1 -1
  240. package/lib/core/sql-sync/utils.js +1 -1
  241. package/lib/core/sql-validator.js +1 -1
  242. package/lib/errors.js +1 -1
  243. package/lib/framework/build-all-flags.js +1 -1
  244. package/lib/framework/error-output.js +1 -1
  245. package/lib/framework/explicit-yes.js +1 -1
  246. package/lib/framework/flags.js +1 -1
  247. package/lib/framework/help.js +1 -1
  248. package/lib/framework/index.js +1 -1
  249. package/lib/framework/output.js +1 -1
  250. package/lib/framework/response.js +1 -1
  251. package/lib/framework/runner-alias.js +1 -1
  252. package/lib/framework/runner.js +1 -1
  253. package/lib/framework/schema-export.js +1 -1
  254. package/lib/framework/types.js +1 -1
  255. package/lib/generated/build-info.d.ts +4 -4
  256. package/lib/generated/build-info.js +1 -1
  257. package/lib/help.js +1 -1
  258. package/lib/postinstall.js +1 -1
  259. package/lib/runtime/confirmation.js +1 -1
  260. package/lib/runtime/event.js +1 -1
  261. package/lib/runtime/index.js +1 -1
  262. package/lib/runtime/queue.js +1 -1
  263. package/lib/runtime/resolve.js +1 -1
  264. package/lib/skills/builtin-skill.js +1 -1
  265. package/lib/skills/main.js +1 -1
  266. package/lib/skills/npx-skills-add.js +1 -1
  267. package/lib/skills/skill-presence.js +1 -1
  268. package/lib/telemetry/cli-command-trace.js +1 -1
  269. package/lib/telemetry/cli-help-trace.js +1 -1
  270. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  271. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  272. package/lib/telemetry/send-cli-trace-log.js +1 -1
  273. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  274. package/lib/utils/ai_config.js +1 -1
  275. package/lib/utils/apply-jq-filter.js +1 -1
  276. package/lib/utils/cdn-config.js +1 -1
  277. package/lib/utils/check-sdk-version.js +1 -1
  278. package/lib/utils/cli-version-check.js +1 -1
  279. package/lib/utils/cli-version-policy.js +1 -1
  280. package/lib/utils/config.js +1 -1
  281. package/lib/utils/entity-with-id.js +1 -1
  282. package/lib/utils/file-utils.js +1 -1
  283. package/lib/utils/guides-cdn.js +1 -1
  284. package/lib/utils/http-client.js +1 -1
  285. package/lib/utils/is-non-interactive.js +1 -1
  286. package/lib/utils/logger.js +1 -1
  287. package/lib/utils/params.js +1 -1
  288. package/lib/utils/platform.js +1 -1
  289. package/lib/utils/rules-cdn.js +1 -1
  290. package/lib/utils/sleep.js +1 -1
  291. package/lib/utils/template-replacer.js +1 -1
  292. package/lib/utils/update-notice.js +1 -1
  293. package/lib/utils/version.js +1 -1
  294. package/lib/utils/with-active-cookie.js +1 -1
  295. package/lib/utils/write-cli-side-channel.js +1 -1
  296. package/package.json +1 -1
  297. package/skills/rabetbase/SKILL.md +18 -24
  298. package/skills/rabetbase/guides/database-connection-workflow.md +6 -2
  299. package/skills/rabetbase/references/rabetbase-dataset-business-groups.md +28 -0
  300. package/skills/rabetbase/references/rabetbase-dataset-delete.md +7 -5
  301. package/skills/rabetbase/references/rabetbase-dataset-list.md +6 -6
  302. package/skills/rabetbase/references/rabetbase-dataset-restore.md +5 -5
  303. package/skills/rabetbase/references/rabetbase-db-create.md +3 -0
  304. package/skills/rabetbase/references/rabetbase-db-delete.md +10 -2
  305. package/skills/rabetbase/references/rabetbase-db-detail.md +2 -0
  306. package/skills/rabetbase/references/rabetbase-db-list.md +3 -2
  307. package/skills/rabetbase/references/rabetbase-db-update.md +4 -2
  308. package/skills/rabetbase/references/rabetbase-role-list.md +9 -17
  309. package/skills/rabetbase/references/rabetbase-role-user-add.md +44 -16
  310. package/skills/rabetbase/references/rabetbase-role-user-resolve.md +2 -2
  311. package/skills/rabetbase.manifest.json +4 -7
  312. package/lib/commands/permit/index.js +0 -1
  313. package/lib/commands/permit/page-get.d.ts +0 -2
  314. package/lib/commands/permit/page-get.js +0 -1
  315. package/lib/commands/permit/page-set.d.ts +0 -2
  316. package/lib/commands/permit/page-set.js +0 -1
  317. package/lib/commands/permit/role-apis-set.d.ts +0 -2
  318. package/lib/commands/permit/role-apis-set.js +0 -1
  319. package/lib/commands/permit/role-menus-set.d.ts +0 -2
  320. package/lib/commands/permit/role-menus-set.js +0 -1
  321. package/lib/commands/permit/role-menus.d.ts +0 -2
  322. package/lib/commands/permit/role-menus.js +0 -1
  323. package/lib/commands/permit/shared.d.ts +0 -74
  324. package/lib/commands/permit/shared.js +0 -1
  325. package/lib/commands/role/create.d.ts +0 -2
  326. package/lib/commands/role/create.js +0 -1
  327. package/skills/rabetbase/guides/role-permit-workflow.md +0 -127
  328. package/skills/rabetbase/references/rabetbase-permit-page-set.md +0 -69
  329. package/skills/rabetbase/references/rabetbase-permit-role-apis-set.md +0 -53
  330. package/skills/rabetbase/references/rabetbase-permit-role-menus-set.md +0 -57
@@ -1 +1 @@
1
- function a171_0x3b1f(){const _0x41d947=['3275454VtpPhD','has','once','resolve','Project\x20template\x20ZIP\x20exceeds\x20','26TxcrYY','replace','openReadStream','45qVLLum','close','fileName','toLocaleLowerCase','startsWith','16347090vzeYEp','readEntry','isEncrypted','get','2031666WqtDkH','endsWith','Unable\x20to\x20read\x20ZIP\x20entry:\x20','44854iISJXc','1073164nSJJAJ','Unsafe\x20absolute\x20ZIP\x20entry\x20path:\x20','join','10VebhPF','test','set','Case-conflicting\x20ZIP\x20entry\x20path:\x20','dirname','open','3115086XnOxQq','sep','length','split','923408flYaKL','add','\x20entries.','slice','mkdir','catch'];a171_0x3b1f=function(){return _0x41d947;};return a171_0x3b1f();}(function(_0xdf71dc,_0x4224f1){const _0x500e50=a171_0x1a1f,_0x9248d5=_0xdf71dc();while(!![]){try{const _0x5409dc=-parseInt(_0x500e50(0xa7))/0x1*(-parseInt(_0x500e50(0x98))/0x2)+-parseInt(_0x500e50(0xa4))/0x3+-parseInt(_0x500e50(0xa8))/0x4*(parseInt(_0x500e50(0xab))/0x5)+-parseInt(_0x500e50(0xb1))/0x6+parseInt(_0x500e50(0x93))/0x7+parseInt(_0x500e50(0xb5))/0x8*(-parseInt(_0x500e50(0x9b))/0x9)+parseInt(_0x500e50(0xa0))/0xa;if(_0x5409dc===_0x4224f1)break;else _0x9248d5['push'](_0x9248d5['shift']());}catch(_0x395c1b){_0x9248d5['push'](_0x9248d5['shift']());}}}(a171_0x3b1f,0x5bb42));import{createWriteStream}from'node:fs';import a171_0x580ff9 from'node:fs/promises';import a171_0x558d41 from'node:path';import{pipeline}from'node:stream/promises';import a171_0x25caf0 from'yauzl';const MAX_ENTRY_COUNT=0x7d0,MAX_UNCOMPRESSED_SIZE=0x32*0x400*0x400,WINDOWS_RESERVED_NAME=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i,WINDOWS_INVALID_CHAR=/[<>:"|?*\x00-\x1f]/;function openZip(_0x2a4170){return new Promise((_0x501f1b,_0x220371)=>{const _0x19de26=a171_0x1a1f;a171_0x25caf0[_0x19de26(0xb0)](_0x2a4170,{'lazyEntries':!![],'decodeStrings':!![],'strictFileNames':!![],'validateEntrySizes':!![]},(_0x51d756,_0x50ae26)=>{if(_0x51d756||!_0x50ae26){_0x220371(_0x51d756||new Error('Unable\x20to\x20open\x20project\x20template\x20archive.'));return;}_0x501f1b(_0x50ae26);});});}function openEntryStream(_0x5a8d1e,_0x1acd09){return new Promise((_0x3e01c5,_0x1a53d1)=>{const _0xff94a3=a171_0x1a1f;_0x5a8d1e[_0xff94a3(0x9a)](_0x1acd09,(_0x1d3c58,_0x31801f)=>{const _0x467b93=_0xff94a3;if(_0x1d3c58||!_0x31801f){_0x1a53d1(_0x1d3c58||new Error(_0x467b93(0xa6)+_0x1acd09[_0x467b93(0x9d)]));return;}_0x3e01c5(_0x31801f);});});}function validateEntryPath(_0xfad2da){const _0x3a9e94=a171_0x1a1f,_0x3b5818=_0xfad2da[_0x3a9e94(0x99)](/\\/g,'/'),_0x3ad25a=_0x3b5818[_0x3a9e94(0xa5)]('/'),_0x45c93e=_0x3ad25a?_0x3b5818[_0x3a9e94(0x90)](0x0,-0x1):_0x3b5818;if(!_0x45c93e||_0x3b5818[_0x3a9e94(0x9f)]('/')||/^[A-Za-z]:\//['test'](_0x3b5818))throw new Error(_0x3a9e94(0xa9)+_0xfad2da);const _0xb74eb4=_0x45c93e[_0x3a9e94(0xb4)]('/');for(const _0x120b58 of _0xb74eb4){if(!_0x120b58||_0x120b58==='.'||_0x120b58==='..'||_0x120b58['endsWith']('.')||_0x120b58[_0x3a9e94(0xa5)]('\x20')||WINDOWS_INVALID_CHAR[_0x3a9e94(0xac)](_0x120b58)||WINDOWS_RESERVED_NAME[_0x3a9e94(0xac)](_0x120b58))throw new Error('Unsafe\x20or\x20non-portable\x20ZIP\x20entry\x20path:\x20'+_0xfad2da);}return{'relativePath':_0xb74eb4[_0x3a9e94(0xaa)](a171_0x558d41[_0x3a9e94(0xb2)]),'directory':_0x3ad25a};}function a171_0x1a1f(_0x1e4abd,_0x3b156b){_0x1e4abd=_0x1e4abd-0x90;const _0x3b1f01=a171_0x3b1f();let _0x1a1fab=_0x3b1f01[_0x1e4abd];return _0x1a1fab;}function isSymbolicLink(_0x595010){const _0xce63ce=_0x595010['externalFileAttributes']>>>0x10&0xffff;return(_0xce63ce&0xf000)===0xa000;}export async function extractProjectTemplateArchive(_0x54dbac,_0x16f7a2){const _0x2f608a=a171_0x1a1f,_0x4f0bac=await openZip(_0x54dbac),_0x50997f=a171_0x558d41[_0x2f608a(0x96)](_0x16f7a2),_0x317f10=new Set(),_0x326a09=new Map();let _0x4d7e0b=0x0,_0x2eea46=0x0;await a171_0x580ff9[_0x2f608a(0x91)](_0x50997f,{'recursive':!![]}),await new Promise((_0x21f171,_0x1f2d3b)=>{const _0x3bd46c=_0x2f608a;let _0x266780=![];const _0x557e74=_0x42f1bc=>{const _0x225074=a171_0x1a1f;if(_0x266780)return;_0x266780=!![],_0x4f0bac[_0x225074(0x9c)](),_0x1f2d3b(_0x42f1bc instanceof Error?_0x42f1bc:new Error(String(_0x42f1bc)));};_0x4f0bac[_0x3bd46c(0x95)]('error',_0x557e74),_0x4f0bac[_0x3bd46c(0x95)]('end',()=>{if(_0x266780)return;_0x266780=!![],_0x21f171();}),_0x4f0bac['on']('entry',_0x4a6221=>{const _0x2a4cac=_0x3bd46c;void(async()=>{const _0x551a9a=a171_0x1a1f;_0x4d7e0b+=0x1,_0x2eea46+=_0x4a6221['uncompressedSize'];if(_0x4d7e0b>MAX_ENTRY_COUNT)throw new Error(_0x551a9a(0x97)+MAX_ENTRY_COUNT+_0x551a9a(0xb7));if(_0x2eea46>MAX_UNCOMPRESSED_SIZE)throw new Error('Project\x20template\x20ZIP\x20expands\x20beyond\x20the\x2050\x20MB\x20safety\x20limit.');if(_0x4a6221[_0x551a9a(0xa2)]())throw new Error('Encrypted\x20ZIP\x20entries\x20are\x20not\x20supported:\x20'+_0x4a6221[_0x551a9a(0x9d)]);if(isSymbolicLink(_0x4a6221))throw new Error('Symbolic\x20links\x20are\x20not\x20allowed\x20in\x20project\x20templates:\x20'+_0x4a6221[_0x551a9a(0x9d)]);const {relativePath:_0x22f4c5,directory:_0x57da93}=validateEntryPath(_0x4a6221['fileName']),_0x24dacb=_0x22f4c5[_0x551a9a(0xb4)](a171_0x558d41[_0x551a9a(0xb2)]);for(let _0x5613c6=0x1;_0x5613c6<=_0x24dacb[_0x551a9a(0xb3)];_0x5613c6+=0x1){const _0x4425e3=_0x24dacb[_0x551a9a(0x90)](0x0,_0x5613c6)[_0x551a9a(0xaa)](a171_0x558d41[_0x551a9a(0xb2)]),_0x5693cd=_0x4425e3['toLocaleLowerCase']('en-US'),_0x698c78=_0x326a09[_0x551a9a(0xa3)](_0x5693cd);if(_0x698c78&&_0x698c78!==_0x4425e3)throw new Error(_0x551a9a(0xae)+_0x4a6221['fileName']);_0x326a09[_0x551a9a(0xad)](_0x5693cd,_0x4425e3);}const _0xfcb664=_0x22f4c5[_0x551a9a(0x9e)]('en-US');if(_0x317f10[_0x551a9a(0x94)](_0xfcb664))throw new Error('Duplicate\x20or\x20case-conflicting\x20ZIP\x20entry:\x20'+_0x4a6221[_0x551a9a(0x9d)]);_0x317f10[_0x551a9a(0xb6)](_0xfcb664);const _0x1cf96b=a171_0x558d41[_0x551a9a(0x96)](_0x50997f,_0x22f4c5);if(_0x1cf96b!==_0x50997f&&!_0x1cf96b[_0x551a9a(0x9f)](''+_0x50997f+a171_0x558d41[_0x551a9a(0xb2)]))throw new Error('ZIP\x20entry\x20escapes\x20the\x20destination\x20directory:\x20'+_0x4a6221[_0x551a9a(0x9d)]);if(_0x57da93)await a171_0x580ff9['mkdir'](_0x1cf96b,{'recursive':!![]});else{await a171_0x580ff9['mkdir'](a171_0x558d41[_0x551a9a(0xaf)](_0x1cf96b),{'recursive':!![]});const _0x3e03d4=await openEntryStream(_0x4f0bac,_0x4a6221);await pipeline(_0x3e03d4,createWriteStream(_0x1cf96b,{'flags':'wx','mode':0x1a4}));}_0x4f0bac[_0x551a9a(0xa1)]();})()[_0x2a4cac(0x92)](_0x557e74);}),_0x4f0bac[_0x3bd46c(0xa1)]();});}
1
+ (function(_0x15eeb6,_0x4dd7d3){const _0x1a0cac=a165_0x1fbc,_0x18317c=_0x15eeb6();while(!![]){try{const _0x2e8141=parseInt(_0x1a0cac(0x161))/0x1+parseInt(_0x1a0cac(0x150))/0x2*(parseInt(_0x1a0cac(0x154))/0x3)+-parseInt(_0x1a0cac(0x14c))/0x4+-parseInt(_0x1a0cac(0x141))/0x5+-parseInt(_0x1a0cac(0x156))/0x6+-parseInt(_0x1a0cac(0x13e))/0x7+-parseInt(_0x1a0cac(0x155))/0x8*(-parseInt(_0x1a0cac(0x15c))/0x9);if(_0x2e8141===_0x4dd7d3)break;else _0x18317c['push'](_0x18317c['shift']());}catch(_0x1b21b8){_0x18317c['push'](_0x18317c['shift']());}}}(a165_0x2529,0x86284));import{createWriteStream}from'node:fs';import a165_0x118f06 from'node:fs/promises';function a165_0x2529(){const _0x5a199e=['27322iidnXU','endsWith','readEntry','uncompressedSize','141uVZAXQ','16271336BFOQTb','4292670XWwAEL','Case-conflicting\x20ZIP\x20entry\x20path:\x20','join','split','test','fileName','9HpqZxU','isEncrypted','Unsafe\x20absolute\x20ZIP\x20entry\x20path:\x20','get','sep','179394aZXJsg','en-US','open','openReadStream','startsWith','1699187EASNgg','Unsafe\x20or\x20non-portable\x20ZIP\x20entry\x20path:\x20','end','2866625zZZgoJ','add','dirname','ZIP\x20entry\x20escapes\x20the\x20destination\x20directory:\x20','toLocaleLowerCase','entry','mkdir','error','externalFileAttributes','Project\x20template\x20ZIP\x20expands\x20beyond\x20the\x2050\x20MB\x20safety\x20limit.','has','3097436xLRupM','catch','Encrypted\x20ZIP\x20entries\x20are\x20not\x20supported:\x20','\x20entries.'];a165_0x2529=function(){return _0x5a199e;};return a165_0x2529();}function a165_0x1fbc(_0x2d8a62,_0x2be1aa){_0x2d8a62=_0x2d8a62-0x13e;const _0x2529fc=a165_0x2529();let _0x1fbc8e=_0x2529fc[_0x2d8a62];return _0x1fbc8e;}import a165_0x3ecd4d from'node:path';import{pipeline}from'node:stream/promises';import a165_0x223c4b from'yauzl';const MAX_ENTRY_COUNT=0x7d0,MAX_UNCOMPRESSED_SIZE=0x32*0x400*0x400,WINDOWS_RESERVED_NAME=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i,WINDOWS_INVALID_CHAR=/[<>:"|?*\x00-\x1f]/;function openZip(_0x45c898){return new Promise((_0x140911,_0x44a3ac)=>{const _0x484c43=a165_0x1fbc;a165_0x223c4b[_0x484c43(0x163)](_0x45c898,{'lazyEntries':!![],'decodeStrings':!![],'strictFileNames':!![],'validateEntrySizes':!![]},(_0x2779b0,_0x48e314)=>{if(_0x2779b0||!_0x48e314){_0x44a3ac(_0x2779b0||new Error('Unable\x20to\x20open\x20project\x20template\x20archive.'));return;}_0x140911(_0x48e314);});});}function openEntryStream(_0x37af53,_0x596799){return new Promise((_0x42b3b8,_0x213ac5)=>{const _0x3438f6=a165_0x1fbc;_0x37af53[_0x3438f6(0x164)](_0x596799,(_0x1508e2,_0x131ee3)=>{if(_0x1508e2||!_0x131ee3){_0x213ac5(_0x1508e2||new Error('Unable\x20to\x20read\x20ZIP\x20entry:\x20'+_0x596799['fileName']));return;}_0x42b3b8(_0x131ee3);});});}function validateEntryPath(_0x143d42){const _0xf0041c=a165_0x1fbc,_0x43471f=_0x143d42['replace'](/\\/g,'/'),_0x4b90d8=_0x43471f['endsWith']('/'),_0x5f2bbb=_0x4b90d8?_0x43471f['slice'](0x0,-0x1):_0x43471f;if(!_0x5f2bbb||_0x43471f[_0xf0041c(0x165)]('/')||/^[A-Za-z]:\//[_0xf0041c(0x15a)](_0x43471f))throw new Error(_0xf0041c(0x15e)+_0x143d42);const _0x522de9=_0x5f2bbb[_0xf0041c(0x159)]('/');for(const _0x502f3b of _0x522de9){if(!_0x502f3b||_0x502f3b==='.'||_0x502f3b==='..'||_0x502f3b[_0xf0041c(0x151)]('.')||_0x502f3b[_0xf0041c(0x151)]('\x20')||WINDOWS_INVALID_CHAR['test'](_0x502f3b)||WINDOWS_RESERVED_NAME[_0xf0041c(0x15a)](_0x502f3b))throw new Error(_0xf0041c(0x13f)+_0x143d42);}return{'relativePath':_0x522de9[_0xf0041c(0x158)](a165_0x3ecd4d[_0xf0041c(0x160)]),'directory':_0x4b90d8};}function isSymbolicLink(_0x279d56){const _0x228f19=a165_0x1fbc,_0x4c4744=_0x279d56[_0x228f19(0x149)]>>>0x10&0xffff;return(_0x4c4744&0xf000)===0xa000;}export async function extractProjectTemplateArchive(_0x3e364a,_0x16d688){const _0x8fa384=a165_0x1fbc,_0x3d2e59=await openZip(_0x3e364a),_0x1e0c18=a165_0x3ecd4d['resolve'](_0x16d688),_0x22c6bd=new Set(),_0x422f60=new Map();let _0x4452a4=0x0,_0x5ac555=0x0;await a165_0x118f06[_0x8fa384(0x147)](_0x1e0c18,{'recursive':!![]}),await new Promise((_0x3bdad9,_0x2180e1)=>{const _0x2a710d=_0x8fa384;let _0x522992=![];const _0x17c963=_0x2f49b3=>{if(_0x522992)return;_0x522992=!![],_0x3d2e59['close'](),_0x2180e1(_0x2f49b3 instanceof Error?_0x2f49b3:new Error(String(_0x2f49b3)));};_0x3d2e59['once'](_0x2a710d(0x148),_0x17c963),_0x3d2e59['once'](_0x2a710d(0x140),()=>{if(_0x522992)return;_0x522992=!![],_0x3bdad9();}),_0x3d2e59['on'](_0x2a710d(0x146),_0x169f08=>{const _0x221d07=_0x2a710d;void(async()=>{const _0x4002f3=a165_0x1fbc;_0x4452a4+=0x1,_0x5ac555+=_0x169f08[_0x4002f3(0x153)];if(_0x4452a4>MAX_ENTRY_COUNT)throw new Error('Project\x20template\x20ZIP\x20exceeds\x20'+MAX_ENTRY_COUNT+_0x4002f3(0x14f));if(_0x5ac555>MAX_UNCOMPRESSED_SIZE)throw new Error(_0x4002f3(0x14a));if(_0x169f08[_0x4002f3(0x15d)]())throw new Error(_0x4002f3(0x14e)+_0x169f08[_0x4002f3(0x15b)]);if(isSymbolicLink(_0x169f08))throw new Error('Symbolic\x20links\x20are\x20not\x20allowed\x20in\x20project\x20templates:\x20'+_0x169f08[_0x4002f3(0x15b)]);const {relativePath:_0x51ecc7,directory:_0x1fdc1e}=validateEntryPath(_0x169f08[_0x4002f3(0x15b)]),_0x26f957=_0x51ecc7[_0x4002f3(0x159)](a165_0x3ecd4d[_0x4002f3(0x160)]);for(let _0x905046=0x1;_0x905046<=_0x26f957['length'];_0x905046+=0x1){const _0x30a049=_0x26f957['slice'](0x0,_0x905046)[_0x4002f3(0x158)](a165_0x3ecd4d[_0x4002f3(0x160)]),_0x4cc7b2=_0x30a049[_0x4002f3(0x145)]('en-US'),_0x1e0853=_0x422f60[_0x4002f3(0x15f)](_0x4cc7b2);if(_0x1e0853&&_0x1e0853!==_0x30a049)throw new Error(_0x4002f3(0x157)+_0x169f08[_0x4002f3(0x15b)]);_0x422f60['set'](_0x4cc7b2,_0x30a049);}const _0x45a69c=_0x51ecc7[_0x4002f3(0x145)](_0x4002f3(0x162));if(_0x22c6bd[_0x4002f3(0x14b)](_0x45a69c))throw new Error('Duplicate\x20or\x20case-conflicting\x20ZIP\x20entry:\x20'+_0x169f08[_0x4002f3(0x15b)]);_0x22c6bd[_0x4002f3(0x142)](_0x45a69c);const _0x67f745=a165_0x3ecd4d['resolve'](_0x1e0c18,_0x51ecc7);if(_0x67f745!==_0x1e0c18&&!_0x67f745[_0x4002f3(0x165)](''+_0x1e0c18+a165_0x3ecd4d[_0x4002f3(0x160)]))throw new Error(_0x4002f3(0x144)+_0x169f08['fileName']);if(_0x1fdc1e)await a165_0x118f06[_0x4002f3(0x147)](_0x67f745,{'recursive':!![]});else{await a165_0x118f06['mkdir'](a165_0x3ecd4d[_0x4002f3(0x143)](_0x67f745),{'recursive':!![]});const _0x29f5c0=await openEntryStream(_0x3d2e59,_0x169f08);await pipeline(_0x29f5c0,createWriteStream(_0x67f745,{'flags':'wx','mode':0x1a4}));}_0x3d2e59[_0x4002f3(0x152)]();})()[_0x221d07(0x14d)](_0x17c963);}),_0x3d2e59[_0x2a710d(0x152)]();});}
@@ -1 +1 @@
1
- const a172_0x390b5d=a172_0x3d15;(function(_0x5a19ed,_0x3e90f1){const _0x3ab9a2=a172_0x3d15,_0x2a7905=_0x5a19ed();while(!![]){try{const _0x4d2c35=parseInt(_0x3ab9a2(0x10b))/0x1+-parseInt(_0x3ab9a2(0x111))/0x2+-parseInt(_0x3ab9a2(0x10c))/0x3+-parseInt(_0x3ab9a2(0x108))/0x4+-parseInt(_0x3ab9a2(0x109))/0x5*(-parseInt(_0x3ab9a2(0x10e))/0x6)+-parseInt(_0x3ab9a2(0x10d))/0x7+parseInt(_0x3ab9a2(0x110))/0x8;if(_0x4d2c35===_0x3e90f1)break;else _0x2a7905['push'](_0x2a7905['shift']());}catch(_0x12759a){_0x2a7905['push'](_0x2a7905['shift']());}}}(a172_0x24a0,0x4024d));import a172_0xcff20 from'node:path';function a172_0x3d15(_0x4a89f7,_0xade9be){_0x4a89f7=_0x4a89f7-0x108;const _0x24a06a=a172_0x24a0();let _0x3d1543=_0x24a06a[_0x4a89f7];return _0x3d1543;}import{fileURLToPath}from'node:url';function a172_0x24a0(){const _0x56e3d6=['173538cNUvdY','1550295uBFcVw','2198245ulPoZz','930OYXwxs','dirname','9915112FWEPdP','231610GpTgda','978656MIpPsK','1325ikjBAZ','resolve'];a172_0x24a0=function(){return _0x56e3d6;};return a172_0x24a0();}const __dirname=a172_0xcff20[a172_0x390b5d(0x10f)](fileURLToPath(import.meta.url));export function getRabetbaseCliPackageRoot(){const _0x19cbed=a172_0x390b5d;return a172_0xcff20[_0x19cbed(0x10a)](__dirname,'../../../../');}
1
+ function a166_0xe77d(_0x3f7b0e,_0xc032cb){_0x3f7b0e=_0x3f7b0e-0x74;const _0xf44c75=a166_0xf44c();let _0xe77d31=_0xf44c75[_0x3f7b0e];return _0xe77d31;}(function(_0x1a8eb1,_0x3a05b3){const _0x3b9864=a166_0xe77d,_0x4d3c25=_0x1a8eb1();while(!![]){try{const _0x275716=-parseInt(_0x3b9864(0x7d))/0x1+-parseInt(_0x3b9864(0x76))/0x2*(-parseInt(_0x3b9864(0x7c))/0x3)+parseInt(_0x3b9864(0x77))/0x4+parseInt(_0x3b9864(0x7b))/0x5+-parseInt(_0x3b9864(0x75))/0x6+-parseInt(_0x3b9864(0x7e))/0x7*(-parseInt(_0x3b9864(0x74))/0x8)+-parseInt(_0x3b9864(0x7a))/0x9*(parseInt(_0x3b9864(0x78))/0xa);if(_0x275716===_0x3a05b3)break;else _0x4d3c25['push'](_0x4d3c25['shift']());}catch(_0x3fe758){_0x4d3c25['push'](_0x4d3c25['shift']());}}}(a166_0xf44c,0x27f1d));import a166_0x56fb2f from'node:path';import{fileURLToPath}from'node:url';const __dirname=a166_0x56fb2f['dirname'](fileURLToPath(import.meta.url));export function getRabetbaseCliPackageRoot(){const _0x3e8bc4=a166_0xe77d;return a166_0x56fb2f[_0x3e8bc4(0x79)](__dirname,_0x3e8bc4(0x7f));}function a166_0xf44c(){const _0x14c572=['837QKjSZa','170234euAhOs','754439dLHMLr','../../../../','16ivSuMA','1296324yCZoDJ','1914bNYzmb','485784qmZGIO','430vRGECh','resolve','30240MMCYGU','451890FmCIsd'];a166_0xf44c=function(){return _0x14c572;};return a166_0xf44c();}
@@ -1 +1 @@
1
- (function(_0x57c659,_0x1bb603){const _0x4e23b2=a173_0x5814,_0x2d22c2=_0x57c659();while(!![]){try{const _0x2c2f72=parseInt(_0x4e23b2(0x1dd))/0x1*(-parseInt(_0x4e23b2(0x1e9))/0x2)+-parseInt(_0x4e23b2(0x1e6))/0x3*(parseInt(_0x4e23b2(0x1ec))/0x4)+-parseInt(_0x4e23b2(0x1f0))/0x5*(parseInt(_0x4e23b2(0x1e2))/0x6)+parseInt(_0x4e23b2(0x1de))/0x7*(parseInt(_0x4e23b2(0x1ea))/0x8)+-parseInt(_0x4e23b2(0x1f1))/0x9*(parseInt(_0x4e23b2(0x1e7))/0xa)+parseInt(_0x4e23b2(0x1e3))/0xb+parseInt(_0x4e23b2(0x1ed))/0xc*(parseInt(_0x4e23b2(0x1f2))/0xd);if(_0x2c2f72===_0x1bb603)break;else _0x2d22c2['push'](_0x2d22c2['shift']());}catch(_0x14d937){_0x2d22c2['push'](_0x2d22c2['shift']());}}}(a173_0x10cb,0xba69c));import a173_0x290436 from'node:path';function a173_0x5814(_0x25974a,_0x42d032){_0x25974a=_0x25974a-0x1dc;const _0x10cb33=a173_0x10cb();let _0x58141d=_0x10cb33[_0x25974a];return _0x58141d;}function a173_0x10cb(){const _0x2bf6e1=['5361dYLmwZ','14123020QNrwzn','项目模板创建完成','199724LYlhSl','969896cgLGzf','success','2316RiJEKZ','22104WlFVpU','copy','resolve','260855azVcBX','9GhUMNL','18317waUbgW','now','1jkWxHP','49KCEaDw','source','项目模板复制失败','info','102jbHgtS','8285805OPGbWX','version','开始创建项目模板'];a173_0x10cb=function(){return _0x2bf6e1;};return a173_0x10cb();}import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';import{logger}from'../../../utils/logger.js';import{materializeProjectTemplate}from'../../../commands/project/create/materialize-project-template.js';export async function copyProjectTemplate(_0xaeb44d,_0x51e2ab){const _0x183f5c=a173_0x5814,_0xade008=Date[_0x183f5c(0x1dc)](),_0x2f88c8=a173_0x290436[_0x183f5c(0x1ef)](process['cwd'](),_0xaeb44d);try{logger[_0x183f5c(0x1e1)](_0x183f5c(0x1ee),_0x183f5c(0x1e5),{'projectCode':_0xaeb44d});const _0xfba7e9=await materializeProjectTemplate(_0x2f88c8,_0x51e2ab),_0x1b3a1e=Date[_0x183f5c(0x1dc)]()-_0xade008;logger[_0x183f5c(0x1eb)]('copy',_0x183f5c(0x1e8),_0x1b3a1e,{'projectCode':_0xaeb44d,'templateSource':_0xfba7e9[_0x183f5c(0x1df)],'templateVersion':_0xfba7e9[_0x183f5c(0x1e4)]});}catch(_0x3c9c56){const _0x54ecd4=Date['now']()-_0xade008;logger['error']('copy',_0x183f5c(0x1e0),{'projectCode':_0xaeb44d,'error':_0x3c9c56 instanceof Error?_0x3c9c56['message']:String(_0x3c9c56),'duration':_0x54ecd4});throw _0x3c9c56;}return formatElapsed(_0xade008);}
1
+ (function(_0x214204,_0x26902c){const _0x12d2d6=a167_0x5bb3,_0x3849e2=_0x214204();while(!![]){try{const _0x32f8af=-parseInt(_0x12d2d6(0x1b3))/0x1+parseInt(_0x12d2d6(0x1b7))/0x2*(-parseInt(_0x12d2d6(0x1bb))/0x3)+-parseInt(_0x12d2d6(0x1c1))/0x4*(parseInt(_0x12d2d6(0x1c2))/0x5)+-parseInt(_0x12d2d6(0x1b0))/0x6*(parseInt(_0x12d2d6(0x1b8))/0x7)+-parseInt(_0x12d2d6(0x1b6))/0x8*(parseInt(_0x12d2d6(0x1ae))/0x9)+-parseInt(_0x12d2d6(0x1bf))/0xa*(-parseInt(_0x12d2d6(0x1ad))/0xb)+-parseInt(_0x12d2d6(0x1ab))/0xc*(-parseInt(_0x12d2d6(0x1b1))/0xd);if(_0x32f8af===_0x26902c)break;else _0x3849e2['push'](_0x3849e2['shift']());}catch(_0x11afc9){_0x3849e2['push'](_0x3849e2['shift']());}}}(a167_0x4073,0x83491));function a167_0x5bb3(_0x5558f9,_0x3fc4f7){_0x5558f9=_0x5558f9-0x1ab;const _0x4073cf=a167_0x4073();let _0x5bb3ff=_0x4073cf[_0x5558f9];return _0x5bb3ff;}import a167_0x416b7b from'node:path';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';import{logger}from'../../../utils/logger.js';import{materializeProjectTemplate}from'../../../commands/project/create/materialize-project-template.js';export async function copyProjectTemplate(_0x55b70b,_0x3f02ec){const _0x5d944b=a167_0x5bb3,_0x40f9ca=Date['now'](),_0x40c00d=a167_0x416b7b[_0x5d944b(0x1c3)](process[_0x5d944b(0x1b5)](),_0x55b70b);try{logger[_0x5d944b(0x1bd)](_0x5d944b(0x1bc),'开始创建项目模板',{'projectCode':_0x55b70b});const _0x1bfd82=await materializeProjectTemplate(_0x40c00d,_0x3f02ec),_0x2ebd47=Date[_0x5d944b(0x1b2)]()-_0x40f9ca;logger[_0x5d944b(0x1ac)]('copy',_0x5d944b(0x1b9),_0x2ebd47,{'projectCode':_0x55b70b,'templateSource':_0x1bfd82[_0x5d944b(0x1ba)],'templateVersion':_0x1bfd82[_0x5d944b(0x1be)]});}catch(_0x8787c8){const _0x11a428=Date[_0x5d944b(0x1b2)]()-_0x40f9ca;logger[_0x5d944b(0x1af)]('copy',_0x5d944b(0x1c0),{'projectCode':_0x55b70b,'error':_0x8787c8 instanceof Error?_0x8787c8[_0x5d944b(0x1b4)]:String(_0x8787c8),'duration':_0x11a428});throw _0x8787c8;}return formatElapsed(_0x40f9ca);}function a167_0x4073(){const _0x5ef565=['项目模板创建完成','source','156366QackSs','copy','info','version','5580DUpWrv','项目模板复制失败','5044xckVHz','3270aAxbEt','resolve','12QJNkhu','success','5709AjSqfL','8748981sQczWB','error','3633102syVWZt','43063787tKOGQg','now','193038VWcMeX','message','cwd','8mGEZbl','18HzGbeq','7tUIsnD'];a167_0x4073=function(){return _0x5ef565;};return a167_0x4073();}
@@ -1 +1 @@
1
- function a174_0xf2f1(_0x3c8376,_0x27f2c3){_0x3c8376=_0x3c8376-0x124;const _0x4d31c5=a174_0x4d31();let _0xf2f144=_0x4d31c5[_0x3c8376];return _0xf2f144;}(function(_0x4ae6f9,_0x161f81){const _0x3589af=a174_0xf2f1,_0x5139d3=_0x4ae6f9();while(!![]){try{const _0x49a551=parseInt(_0x3589af(0x129))/0x1*(parseInt(_0x3589af(0x12e))/0x2)+-parseInt(_0x3589af(0x127))/0x3+-parseInt(_0x3589af(0x131))/0x4*(parseInt(_0x3589af(0x132))/0x5)+-parseInt(_0x3589af(0x130))/0x6+-parseInt(_0x3589af(0x135))/0x7*(parseInt(_0x3589af(0x133))/0x8)+parseInt(_0x3589af(0x12a))/0x9+parseInt(_0x3589af(0x136))/0xa*(parseInt(_0x3589af(0x139))/0xb);if(_0x49a551===_0x161f81)break;else _0x5139d3['push'](_0x5139d3['shift']());}catch(_0x9e9579){_0x5139d3['push'](_0x5139d3['shift']());}}}(a174_0x4d31,0xe53cf));import a174_0x2d571b from'node:path';import{execa}from'execa';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';function a174_0x4d31(){const _0x2e3bac=['2KDwjSI','resolve','7780146ILmmtk','20HsvoBx','1328060VZbHzM','120304AAwGii','开始格式化代码','28pJXtLN','6726060FMOvJi','message','--write','33ZaPXpI','error','prettier','info','5396403ruRdzw','npx','1832969RqYpvi','14146884ceciUZ','代码格式化失败','now','format'];a174_0x4d31=function(){return _0x2e3bac;};return a174_0x4d31();}export async function formatProjectCode(_0x14c607){const _0x2c13ae=a174_0xf2f1,_0x3112d1=Date[_0x2c13ae(0x12c)](),_0x5a9a0d=a174_0x2d571b[_0x2c13ae(0x12f)](process['cwd'](),_0x14c607);try{logger[_0x2c13ae(0x126)](_0x2c13ae(0x12d),_0x2c13ae(0x134),{'projectCode':_0x14c607}),await execa(resolveNpmBin(_0x2c13ae(0x128)),[_0x2c13ae(0x125),_0x2c13ae(0x138),'.'],{'cwd':_0x5a9a0d});const _0x561f9d=Date[_0x2c13ae(0x12c)]()-_0x3112d1;logger['success'](_0x2c13ae(0x12d),'代码格式化完成',_0x561f9d,{'projectCode':_0x14c607});}catch(_0x1aff54){const _0xa1284d=Date[_0x2c13ae(0x12c)]()-_0x3112d1;logger[_0x2c13ae(0x124)]('format',_0x2c13ae(0x12b),{'projectCode':_0x14c607,'error':_0x1aff54 instanceof Error?_0x1aff54[_0x2c13ae(0x137)]:String(_0x1aff54),'duration':_0xa1284d});throw _0x1aff54;}return formatElapsed(_0x3112d1);}
1
+ (function(_0x22eb50,_0x40a07f){const _0x1899d5=a168_0x41ee,_0x2d8838=_0x22eb50();while(!![]){try{const _0x584cb3=parseInt(_0x1899d5(0x148))/0x1+-parseInt(_0x1899d5(0x13f))/0x2*(-parseInt(_0x1899d5(0x13a))/0x3)+-parseInt(_0x1899d5(0x138))/0x4*(-parseInt(_0x1899d5(0x140))/0x5)+parseInt(_0x1899d5(0x146))/0x6+-parseInt(_0x1899d5(0x13e))/0x7*(parseInt(_0x1899d5(0x147))/0x8)+parseInt(_0x1899d5(0x142))/0x9*(-parseInt(_0x1899d5(0x139))/0xa)+-parseInt(_0x1899d5(0x149))/0xb;if(_0x584cb3===_0x40a07f)break;else _0x2d8838['push'](_0x2d8838['shift']());}catch(_0x30a795){_0x2d8838['push'](_0x2d8838['shift']());}}}(a168_0x562e,0xa32ff));import a168_0x398006 from'node:path';import{execa}from'execa';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';function a168_0x41ee(_0x307cf4,_0x31320e){_0x307cf4=_0x307cf4-0x135;const _0x562ee1=a168_0x562e();let _0x41eea8=_0x562ee1[_0x307cf4];return _0x41eea8;}function a168_0x562e(){const _0x31d93b=['--write','54HcPOio','npx','info','cwd','5153268JXvSxs','1998488teptth','1308247aPSnFC','21431190dFncIx','format','message','error','代码格式化完成','代码格式化失败','开始格式化代码','1220iGFqTR','1398730nwKmJG','289329HZvhkz','resolve','now','prettier','7ehSuDm','26xVSeDX','4670oKKgRQ'];a168_0x562e=function(){return _0x31d93b;};return a168_0x562e();}import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';export async function formatProjectCode(_0x4e3d3d){const _0x2872bd=a168_0x41ee,_0x23f49f=Date[_0x2872bd(0x13c)](),_0x5a6479=a168_0x398006[_0x2872bd(0x13b)](process[_0x2872bd(0x145)](),_0x4e3d3d);try{logger[_0x2872bd(0x144)](_0x2872bd(0x14a),_0x2872bd(0x137),{'projectCode':_0x4e3d3d}),await execa(resolveNpmBin(_0x2872bd(0x143)),[_0x2872bd(0x13d),_0x2872bd(0x141),'.'],{'cwd':_0x5a6479});const _0x40a475=Date[_0x2872bd(0x13c)]()-_0x23f49f;logger['success']('format',_0x2872bd(0x135),_0x40a475,{'projectCode':_0x4e3d3d});}catch(_0xaf4660){const _0x4ee959=Date['now']()-_0x23f49f;logger[_0x2872bd(0x14c)](_0x2872bd(0x14a),_0x2872bd(0x136),{'projectCode':_0x4e3d3d,'error':_0xaf4660 instanceof Error?_0xaf4660[_0x2872bd(0x14b)]:String(_0xaf4660),'duration':_0x4ee959});throw _0xaf4660;}return formatElapsed(_0x23f49f);}
@@ -1 +1 @@
1
- (function(_0x284af9,_0x4b2322){const _0x26281b=a175_0x29bf,_0x4ba4fe=_0x284af9();while(!![]){try{const _0x503f2f=-parseInt(_0x26281b(0x12f))/0x1*(parseInt(_0x26281b(0x126))/0x2)+parseInt(_0x26281b(0x120))/0x3+parseInt(_0x26281b(0x127))/0x4*(parseInt(_0x26281b(0x11c))/0x5)+parseInt(_0x26281b(0x121))/0x6+parseInt(_0x26281b(0x123))/0x7+-parseInt(_0x26281b(0x12c))/0x8+-parseInt(_0x26281b(0x12e))/0x9*(parseInt(_0x26281b(0x12b))/0xa);if(_0x503f2f===_0x4b2322)break;else _0x4ba4fe['push'](_0x4ba4fe['shift']());}catch(_0x5cc714){_0x4ba4fe['push'](_0x4ba4fe['shift']());}}}(a175_0x1d42,0x9ad4e));import a175_0x16bae8 from'node:path';import{execa}from'execa';function a175_0x29bf(_0x24bfb4,_0x388fa3){_0x24bfb4=_0x24bfb4-0x119;const _0x1d42a5=a175_0x1d42();let _0x29bfa9=_0x1d42a5[_0x24bfb4];return _0x29bfa9;}import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';function a175_0x1d42(){const _0x2bacc1=['message','79572ehIZEE','4272912sXTbya','依赖安装失败','4821229tOSHVO','cwd','info','6aEjrMK','228ROBUlt','https://registry.npmmirror.com','now','install','12700QVBhcD','3649648rUmAiX','--registry','3951JqEuWh','15590iMYBNq','依赖安装完成','error','npm','success','23445piuZmw','resolve','开始安装依赖'];a175_0x1d42=function(){return _0x2bacc1;};return a175_0x1d42();}import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';export async function installDependencies(_0x5728f4){const _0x219e92=a175_0x29bf,_0x4bcae8=Date[_0x219e92(0x129)](),_0x246b28=a175_0x16bae8[_0x219e92(0x11d)](process[_0x219e92(0x124)](),_0x5728f4);try{logger[_0x219e92(0x125)](_0x219e92(0x12a),_0x219e92(0x11e),{'projectCode':_0x5728f4,'registry':_0x219e92(0x128)}),await execa(resolveNpmBin(_0x219e92(0x11a)),[_0x219e92(0x12a),_0x219e92(0x12d),_0x219e92(0x128)],{'cwd':_0x246b28});const _0x524e58=Date[_0x219e92(0x129)]()-_0x4bcae8;logger[_0x219e92(0x11b)](_0x219e92(0x12a),_0x219e92(0x130),_0x524e58,{'projectCode':_0x5728f4});}catch(_0x561232){const _0x540c2a=Date[_0x219e92(0x129)]()-_0x4bcae8;logger[_0x219e92(0x119)](_0x219e92(0x12a),_0x219e92(0x122),{'projectCode':_0x5728f4,'error':_0x561232 instanceof Error?_0x561232[_0x219e92(0x11f)]:String(_0x561232),'duration':_0x540c2a});throw _0x561232;}return formatElapsed(_0x4bcae8);}
1
+ (function(_0x34e6ec,_0x8911a1){const _0x2275bb=a169_0x2f5c,_0x585b4a=_0x34e6ec();while(!![]){try{const _0x111240=parseInt(_0x2275bb(0x167))/0x1*(parseInt(_0x2275bb(0x15d))/0x2)+-parseInt(_0x2275bb(0x158))/0x3+parseInt(_0x2275bb(0x15b))/0x4+-parseInt(_0x2275bb(0x164))/0x5+parseInt(_0x2275bb(0x163))/0x6*(-parseInt(_0x2275bb(0x15c))/0x7)+-parseInt(_0x2275bb(0x155))/0x8+parseInt(_0x2275bb(0x166))/0x9;if(_0x111240===_0x8911a1)break;else _0x585b4a['push'](_0x585b4a['shift']());}catch(_0x290c6b){_0x585b4a['push'](_0x585b4a['shift']());}}}(a169_0x4856,0xc76a4));import a169_0x5ce064 from'node:path';import{execa}from'execa';function a169_0x4856(){const _0x42222c=['info','cwd','--registry','npm','18EJpbEX','7669850dXWMJo','https://registry.npmmirror.com','30563532ldSWPN','22rBNgED','message','441152dwEtOJ','resolve','install','3724326SZCLtz','error','success','1043276osvWNb','3368267vybkEd','130376czqkCj','now'];a169_0x4856=function(){return _0x42222c;};return a169_0x4856();}function a169_0x2f5c(_0x28de08,_0x1d8a6d){_0x28de08=_0x28de08-0x155;const _0x485653=a169_0x4856();let _0x2f5c01=_0x485653[_0x28de08];return _0x2f5c01;}import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';export async function installDependencies(_0x976dca){const _0x78ec4f=a169_0x2f5c,_0x9a5289=Date[_0x78ec4f(0x15e)](),_0x39958b=a169_0x5ce064[_0x78ec4f(0x156)](process[_0x78ec4f(0x160)](),_0x976dca);try{logger[_0x78ec4f(0x15f)](_0x78ec4f(0x157),'开始安装依赖',{'projectCode':_0x976dca,'registry':_0x78ec4f(0x165)}),await execa(resolveNpmBin(_0x78ec4f(0x162)),[_0x78ec4f(0x157),_0x78ec4f(0x161),_0x78ec4f(0x165)],{'cwd':_0x39958b});const _0x369b24=Date[_0x78ec4f(0x15e)]()-_0x9a5289;logger[_0x78ec4f(0x15a)]('install','依赖安装完成',_0x369b24,{'projectCode':_0x976dca});}catch(_0x482839){const _0x25031b=Date[_0x78ec4f(0x15e)]()-_0x9a5289;logger[_0x78ec4f(0x159)](_0x78ec4f(0x157),'依赖安装失败',{'projectCode':_0x976dca,'error':_0x482839 instanceof Error?_0x482839[_0x78ec4f(0x168)]:String(_0x482839),'duration':_0x25031b});throw _0x482839;}return formatElapsed(_0x9a5289);}
@@ -1 +1 @@
1
- function a176_0x1c6d(_0x5ca797,_0x2e15f5){_0x5ca797=_0x5ca797-0xb4;const _0x5d1d1c=a176_0x5d1d();let _0x1c6d29=_0x5d1d1c[_0x5ca797];return _0x1c6d29;}const a176_0x345e7e=a176_0x1c6d;(function(_0x5de2cb,_0x132721){const _0x2c5c01=a176_0x1c6d,_0x5c2fb0=_0x5de2cb();while(!![]){try{const _0x579162=parseInt(_0x2c5c01(0xd3))/0x1*(-parseInt(_0x2c5c01(0xbd))/0x2)+parseInt(_0x2c5c01(0xbb))/0x3*(parseInt(_0x2c5c01(0xd6))/0x4)+-parseInt(_0x2c5c01(0xd5))/0x5+-parseInt(_0x2c5c01(0xb6))/0x6+-parseInt(_0x2c5c01(0xbf))/0x7+-parseInt(_0x2c5c01(0xc1))/0x8*(-parseInt(_0x2c5c01(0xc8))/0x9)+parseInt(_0x2c5c01(0xc2))/0xa;if(_0x579162===_0x132721)break;else _0x5c2fb0['push'](_0x5c2fb0['shift']());}catch(_0x13c4b6){_0x5c2fb0['push'](_0x5c2fb0['shift']());}}}(a176_0x5d1d,0x35071));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{upgradeApp}from'../../commands/project/upgrade.js';const createFlags=[{'name':a176_0x345e7e(0xc0),'type':a176_0x345e7e(0xd1),'description':a176_0x345e7e(0xbe)},{'name':a176_0x345e7e(0xd4),'type':a176_0x345e7e(0xd1),'description':a176_0x345e7e(0xba)},{'name':a176_0x345e7e(0xb5),'type':a176_0x345e7e(0xd1),'description':a176_0x345e7e(0xc4)}],upgradeFlags=[{'name':a176_0x345e7e(0xb9),'type':a176_0x345e7e(0xb8),'description':a176_0x345e7e(0xcf),'default':![]}];function a176_0x5d1d(){const _0x58044d=['Project\x20code/name\x20(optional,\x20prompts\x20if\x20omitted)','Upgrade\x20from\x20lovrabet-cli\x20to\x20rabetbase-cli','create','args','upgrade','Skip\x20confirmation\x20prompt','trim','string','\x20project\x20create\x20<project-name>\x20[--appcode\x20<code>]','372182PudmfK','env','662250zvtgam','175540BjxwCZ','Create\x20a\x20new\x20project','appcode','1017720wdqOYx','project','boolean','yes','Target\x20environment','21GVELNw','str','2peOaKI','Project\x20name','2195228zGAQqX','name','376ujBzrX','5895890rVIpUK','nonInteractive','App\x20code\x20to\x20bind\x20(skips\x20interactive\x20selection)','../../commands/project/create/main.js','write','cookie','59031mQcaAZ','Non-interactive\x20mode\x20requires\x20a\x20project\x20name.'];a176_0x5d1d=function(){return _0x58044d;};return a176_0x5d1d();}export const projectDefinitions=[{'service':a176_0x345e7e(0xb7),'command':a176_0x345e7e(0xcc),'description':a176_0x345e7e(0xb4),'risk':a176_0x345e7e(0xc6),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'project-name','description':a176_0x345e7e(0xca),'required':![]}],'flags':createFlags,async 'execute'(_0x2ab17a){const _0x98cfa5=a176_0x345e7e,{createApp:_0x25a32c}=await import(_0x98cfa5(0xc5)),_0xa2d164=_0x2ab17a[_0x98cfa5(0xbc)]('name')[_0x98cfa5(0xd0)]()||_0x2ab17a[_0x98cfa5(0xcd)][0x0]?.['trim'](),_0x2990b0=_0x2ab17a[_0x98cfa5(0xbc)](_0x98cfa5(0xd4))||undefined,_0xb262fd=_0x2ab17a[_0x98cfa5(0xbc)]('appcode')||undefined;if(_0x2ab17a[_0x98cfa5(0xc3)]){if(!_0xa2d164)throw CliErrors['validation'](_0x98cfa5(0xc9),'Usage:\x20'+CLI_BIN_NAME+_0x98cfa5(0xd2));await _0x25a32c({'projectCode':_0xa2d164,'appCode':_0xb262fd,'env':_0x2990b0,'cookie':_0x2ab17a[_0x98cfa5(0xc7)],'nonInteractive':!![]});}else await _0x25a32c({'projectCode':_0xa2d164,'appCode':_0xb262fd,'env':_0x2990b0,'cookie':_0x2ab17a[_0x98cfa5(0xc7)]});return{'ok':!![]};}},{'service':'project','command':a176_0x345e7e(0xce),'description':a176_0x345e7e(0xcb),'risk':a176_0x345e7e(0xc6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':upgradeFlags,async 'execute'(_0x3cf88e){const _0xce9ffd=a176_0x345e7e;return await upgradeApp(_0x3cf88e[_0xce9ffd(0xc3)],{'yes':_0x3cf88e['bool']('yes')}),{'ok':!![]};}}];
1
+ const a170_0x58deaf=a170_0x7531;(function(_0x1ea2f8,_0x5394c2){const _0x344599=a170_0x7531,_0x57782c=_0x1ea2f8();while(!![]){try{const _0x137054=-parseInt(_0x344599(0xc0))/0x1*(parseInt(_0x344599(0xb7))/0x2)+parseInt(_0x344599(0xb8))/0x3+-parseInt(_0x344599(0xc4))/0x4+-parseInt(_0x344599(0xbc))/0x5+-parseInt(_0x344599(0xbe))/0x6+-parseInt(_0x344599(0xbb))/0x7*(-parseInt(_0x344599(0xbd))/0x8)+parseInt(_0x344599(0xad))/0x9;if(_0x137054===_0x5394c2)break;else _0x57782c['push'](_0x57782c['shift']());}catch(_0x284348){_0x57782c['push'](_0x57782c['shift']());}}}(a170_0x3d41,0xc3621));import{CliErrors}from'../../errors.js';function a170_0x7531(_0x5a5093,_0x48bc9f){_0x5a5093=_0x5a5093-0xa5;const _0x3d4175=a170_0x3d41();let _0x7531e2=_0x3d4175[_0x5a5093];return _0x7531e2;}import{CLI_BIN_NAME}from'../../constant/cli.js';import{upgradeApp}from'../../commands/project/upgrade.js';const createFlags=[{'name':a170_0x58deaf(0xc1),'type':a170_0x58deaf(0xa6),'description':'Project\x20name'},{'name':'env','type':a170_0x58deaf(0xa6),'description':'Target\x20environment'},{'name':a170_0x58deaf(0xb1),'type':a170_0x58deaf(0xa6),'description':'App\x20code\x20to\x20bind\x20(skips\x20interactive\x20selection)'}],upgradeFlags=[{'name':a170_0x58deaf(0xab),'type':'boolean','description':a170_0x58deaf(0xb4),'default':![]}];export const projectDefinitions=[{'service':a170_0x58deaf(0xae),'command':a170_0x58deaf(0xbf),'description':a170_0x58deaf(0xb6),'risk':'write','requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a170_0x58deaf(0xb0),'description':'Project\x20code/name\x20(optional,\x20prompts\x20if\x20omitted)','required':![]}],'flags':createFlags,async 'execute'(_0x39b961){const _0x4aed34=a170_0x58deaf,{createApp:_0x51b82a}=await import(_0x4aed34(0xc3)),_0x1e61e0=_0x39b961['str']('name')[_0x4aed34(0xb9)]()||_0x39b961['args'][0x0]?.[_0x4aed34(0xb9)](),_0xe47bc4=_0x39b961[_0x4aed34(0xa9)](_0x4aed34(0xa8))||undefined,_0x524e14=_0x39b961[_0x4aed34(0xa9)](_0x4aed34(0xb1))||undefined;if(_0x39b961[_0x4aed34(0xac)]){if(!_0x1e61e0)throw CliErrors[_0x4aed34(0xa5)](_0x4aed34(0xaf),_0x4aed34(0xa7)+CLI_BIN_NAME+_0x4aed34(0xc2));await _0x51b82a({'projectCode':_0x1e61e0,'appCode':_0x524e14,'env':_0xe47bc4,'cookie':_0x39b961[_0x4aed34(0xb5)],'nonInteractive':!![]});}else await _0x51b82a({'projectCode':_0x1e61e0,'appCode':_0x524e14,'env':_0xe47bc4,'cookie':_0x39b961[_0x4aed34(0xb5)]});return{'ok':!![]};}},{'service':a170_0x58deaf(0xae),'command':a170_0x58deaf(0xaa),'description':a170_0x58deaf(0xb3),'risk':a170_0x58deaf(0xba),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':upgradeFlags,async 'execute'(_0x1c4075){const _0xfd6eb1=a170_0x58deaf;return await upgradeApp(_0x1c4075['nonInteractive'],{'yes':_0x1c4075[_0xfd6eb1(0xb2)](_0xfd6eb1(0xab))}),{'ok':!![]};}}];function a170_0x3d41(){const _0x5224b9=['bool','Upgrade\x20from\x20lovrabet-cli\x20to\x20rabetbase-cli','Skip\x20confirmation\x20prompt','cookie','Create\x20a\x20new\x20project','1038lpXGVe','4360530JNTVhx','trim','write','10010wsTPqk','80930XYPsjK','2568iezKzI','4025430AKQaSK','create','1639XaqSGm','name','\x20project\x20create\x20<project-name>\x20[--appcode\x20<code>]','../../commands/project/create/main.js','2141096GqsniV','validation','string','Usage:\x20','env','str','upgrade','yes','nonInteractive','8646795GOEkju','project','Non-interactive\x20mode\x20requires\x20a\x20project\x20name.','project-name','appcode'];a170_0x3d41=function(){return _0x5224b9;};return a170_0x3d41();}
@@ -1 +1 @@
1
- const a177_0x210f1e=a177_0x294f;(function(_0x2a7220,_0x49114c){const _0x182b27=a177_0x294f,_0x41d8f9=_0x2a7220();while(!![]){try{const _0x55229e=-parseInt(_0x182b27(0x104))/0x1+parseInt(_0x182b27(0xc8))/0x2*(-parseInt(_0x182b27(0xab))/0x3)+-parseInt(_0x182b27(0xea))/0x4*(-parseInt(_0x182b27(0xf1))/0x5)+parseInt(_0x182b27(0xd0))/0x6+parseInt(_0x182b27(0xdb))/0x7+parseInt(_0x182b27(0xe8))/0x8+parseInt(_0x182b27(0xed))/0x9*(-parseInt(_0x182b27(0x123))/0xa);if(_0x55229e===_0x49114c)break;else _0x41d8f9['push'](_0x41d8f9['shift']());}catch(_0x31a680){_0x41d8f9['push'](_0x41d8f9['shift']());}}}(a177_0x5506,0x25728));import a177_0x1cf5f8 from'chalk';import a177_0xcdf33e from'ora';import{existsSync,readFileSync,renameSync,rmSync,statSync,unlinkSync,writeFileSync}from'node:fs';import{resolve}from'node:path';import{CONFIG_NAMES,NEW_CONFIG_NAME,readConfigFile,writeConfigFile}from'../../context.js';import{CORE_IDE_CONFIGS}from'../../utils/ai_config.js';function a177_0x5506(){const _0x132d7c=['Step\x203/7:\x20Removing\x20legacy\x20IDE\x20skill\x20files...','utf8','1840336IXrWpN','Step\x204/7:\x20Cleaning\x20MCP\x20config...','883944vflsca','Config\x20migration','package.json','50616pqvpli','lovrabet/rabetbase\x20installed\x20globally','Step\x201/7:\x20Migrating\x20config...','Step\x204/7:\x20MCP\x20config\x20—\x20','5LAvWar','fail','status','\x20→\x20keys:\x20','\x20removed\x20(','join','dependencies','FAIL','Legacy\x20artifacts:','mcpServers','needsSkillSwap','oldMcpConfig','@lovrabet/dataset-mcp-server','hasNewConfig','Proceed\x20with\x20upgrade?','gray','removed\x20','Install\x20new\x20skill','keys','235086fIDgeu','===\x20Upgrade\x20Summary\x20===','isArray','.claude/skills/lovrabet','Step\x202/7:\x20.lovrabet/\x20removal\x20failed\x20—\x20','@lovrabet/sdk:','Step\x205/7:\x20Remove\x20old\x20skill\x20—\x20','exit\x20','log','\x20(backup:\x20','\x20\x20Action:\x20update\x20package.json\x20(you\x20will\x20need\x20to\x20re-run\x20install)','filter','Step\x207/7:\x20Upgrading\x20@lovrabet/sdk\x20in\x20package.json...','Step\x206/7:\x20Installing\x20new\x20skill...','Step\x202/7:\x20.lovrabet/\x20directory\x20removed','Remove\x20old\x20skill','latest','\x20\x20Action:\x20migrate\x20→\x20backup\x20old\x20as\x20.bak','no\x20matching\x20entry\x20found','message','parse','yes','\x20removed','undefined','Step\x202/7:\x20Removing\x20.lovrabet/\x20directory...','Remove\x20legacy\x20artifacts','configMigration','bold','.bak','oldPath','label','260eJDurc','entries','detail','yellow','sdkUpgrade','Some\x20steps\x20failed.\x20Check\x20the\x20summary\x20above\x20for\x20details.','@lovrabet/sdk','12zeLeoL','MCP\x20config:','\x20from\x20','Clean\x20MCP\x20config','Upgrade\x20@lovrabet/sdk','\x20\x20Action:\x20remove\x20old\x20lovrabet/lovrabet-skill,\x20add\x20via\x20`','path','@lovrabet/sdk\x20has\x20been\x20updated\x20to\x20latest\x20in\x20package.json.','\x20\x20Current\x20version\x20in\x20','Step\x206/7:\x20Install\x20new\x20skill\x20—\x20','.cursor/mcp.json','cyan','length','error','Upgrade\x20completed\x20successfully!','skipped','Config\x20file:','skipped\x20(no\x20legacy\x20config)','devDependencies','includes','not\x20needed','green','Step\x205/7:\x20Removing\x20old\x20skill...','start','step','failed','\x20\x20Fields\x20to\x20migrate:\x20','no\x20legacy\x20config\x20found','red','97222zAIATH','.lovrabet','Remove\x20.lovrabet/','\x20\x20\x20\x20\x20\x20\x20','values','some','Upgrade\x20cancelled.','stringify','146280ytNhBO','\x20\x20Step\x20','done','CANCEL','fields','inherit','no\x20legacy\x20entry','succeed','FOUND','\x20\x20npm\x20install','args','1776110XqDvBQ','\x20→\x20latest','string','Step\x203/7:\x20Legacy\x20artifacts\x20—\x20','[\x22@lovrabet/sdk\x22]:\x20','.cursor/rules/lovrabet_rules.mdc','\x20\x20#\x20or','\x20→\x20','white','lovrabet/rabetbase','push'];a177_0x5506=function(){return _0x132d7c;};return a177_0x5506();}import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE,runNpxSkillsAddGlobal,runNpxSkillsRemove}from'../../skills/npx-skills-add.js';function a177_0x294f(_0x4496ea,_0x17b7a4){_0x4496ea=_0x4496ea-0xa6;const _0x550696=a177_0x5506();let _0x294f94=_0x550696[_0x4496ea];return _0x294f94;}import{askConfirm}from'../../commands/menu/shared/inquirer.js';const LEGACY_CONFIG_NAMES=CONFIG_NAMES[a177_0x210f1e(0x10f)](_0x490c1d=>_0x490c1d!==NEW_CONFIG_NAME);function collectIdeSkillFiles(_0x323e3a){const _0x2785e8=a177_0x210f1e,_0x36d041=[];for(const _0x178d52 of Object[_0x2785e8(0xcc)](CORE_IDE_CONFIGS)){if(_0x178d52['files'])for(const _0x3c53d8 of _0x178d52['files']){_0x36d041['push'](resolve(_0x323e3a,_0x3c53d8[_0x2785e8(0xb1)]));}}return _0x36d041;}function analyse(_0x3fe793){const _0x4182ee=a177_0x210f1e;let _0x5c3d27=null;const _0x2ed53a=resolve(_0x3fe793,NEW_CONFIG_NAME),_0x538721=existsSync(_0x2ed53a);for(const _0x179005 of LEGACY_CONFIG_NAMES){const _0x3a30c0=resolve(_0x3fe793,_0x179005);if(existsSync(_0x3a30c0)){const _0x588489=readConfigFile(_0x3a30c0),_0x92a2c=Object[_0x4182ee(0x103)](_0x588489)['filter'](_0x536f17=>typeof _0x588489[_0x536f17]!==_0x4182ee(0x11b));_0x5c3d27={'oldPath':_0x3a30c0,'hasNewConfig':_0x538721,'fields':_0x92a2c};break;}}const _0x16fe14=[],_0x3a1690=resolve(_0x3fe793,_0x4182ee(0xc9));if(existsSync(_0x3a1690))_0x16fe14[_0x4182ee(0xe5)](_0x3a1690);const _0x28435a=resolve(_0x3fe793,_0x4182ee(0xe0));if(existsSync(_0x28435a))_0x16fe14['push'](_0x28435a);const _0x33cd25=resolve(_0x3fe793,_0x4182ee(0x107));if(existsSync(_0x33cd25))_0x16fe14[_0x4182ee(0xe5)](_0x33cd25);for(const _0x2c7a8f of collectIdeSkillFiles(_0x3fe793)){if(existsSync(_0x2c7a8f))_0x16fe14['push'](_0x2c7a8f);}let _0x2ebd54=null;const _0xf55190=resolve(_0x3fe793,_0x4182ee(0xb5));if(existsSync(_0xf55190))try{const _0x22e2ef=JSON[_0x4182ee(0x118)](readFileSync(_0xf55190,_0x4182ee(0xe7)));if(_0x22e2ef?.[_0x4182ee(0xfa)]&&typeof _0x22e2ef['mcpServers']==='object'){const _0x49ccec=[];for(const [_0x326fc2,_0x2f195]of Object[_0x4182ee(0x124)](_0x22e2ef[_0x4182ee(0xfa)])){const _0x5dbca8=_0x2f195;_0x5dbca8?.[_0x4182ee(0xda)]&&Array[_0x4182ee(0x106)](_0x5dbca8['args'])&&_0x5dbca8[_0x4182ee(0xda)][_0x4182ee(0xcd)](_0x4f3d54=>typeof _0x4f3d54===_0x4182ee(0xdd)&&_0x4f3d54[_0x4182ee(0xbe)](_0x4182ee(0xfd)))&&_0x49ccec[_0x4182ee(0xe5)](_0x326fc2);}_0x49ccec[_0x4182ee(0xb7)]>0x0&&(_0x2ebd54={'path':_0xf55190,'keys':_0x49ccec});}}catch{}const _0x1854eb=_0x16fe14['length']>0x0||_0x5c3d27!==null;let _0x58f084=null;const _0x46c53e=resolve(_0x3fe793,_0x4182ee(0xec));if(existsSync(_0x46c53e))try{const _0x4cd2b1=JSON['parse'](readFileSync(_0x46c53e,_0x4182ee(0xe7)));for(const _0x2c5680 of[_0x4182ee(0xf7),_0x4182ee(0xbd)]){const _0x5e6ac0=_0x4cd2b1?.[_0x2c5680]?.[_0x4182ee(0xaa)];if(typeof _0x5e6ac0===_0x4182ee(0xdd)){_0x5e6ac0!==_0x4182ee(0x114)&&(_0x58f084={'pkgPath':_0x46c53e,'currentVersion':_0x5e6ac0,'field':_0x2c5680});break;}}}catch{}return{'configMigration':_0x5c3d27,'oldArtifacts':_0x16fe14,'oldMcpConfig':_0x2ebd54,'needsSkillSwap':_0x1854eb,'sdkUpgrade':_0x58f084};}function printReport(_0x17ea35){const _0x4365d5=a177_0x210f1e,{configMigration:_0x4c5083,oldArtifacts:_0x594053,oldMcpConfig:_0x3516db,needsSkillSwap:_0x21af25}=_0x17ea35;console[_0x4365d5(0x10c)](''),console[_0x4365d5(0x10c)](a177_0x1cf5f8['bold']('===\x20Upgrade\x20Analysis\x20===')),console[_0x4365d5(0x10c)]('');_0x4c5083?(console[_0x4365d5(0x10c)](a177_0x1cf5f8[_0x4365d5(0xb6)](_0x4365d5(0xbb))+('\x20\x20'+a177_0x1cf5f8[_0x4365d5(0xa7)](_0x4c5083[_0x4365d5(0x121)]))),console[_0x4365d5(0x10c)]('\x20\x20New\x20config\x20(.rabetbase.json):\x20'+(_0x4c5083['hasNewConfig']?a177_0x1cf5f8['green']('already\x20exists\x20(will\x20merge)'):a177_0x1cf5f8[_0x4365d5(0x100)]('not\x20found\x20(will\x20create)'))),console[_0x4365d5(0x10c)](_0x4365d5(0xc5)+_0x4c5083[_0x4365d5(0xd4)][_0x4365d5(0xf6)](',\x20')),console[_0x4365d5(0x10c)](_0x4365d5(0x115))):console[_0x4365d5(0x10c)](a177_0x1cf5f8[_0x4365d5(0xb6)](_0x4365d5(0xbb))+'\x20\x20'+a177_0x1cf5f8[_0x4365d5(0x100)](_0x4365d5(0xc6)));console['log']('');if(_0x594053['length']>0x0){console['log'](a177_0x1cf5f8[_0x4365d5(0xb6)]('Legacy\x20artifacts:'));for(const _0x548470 of _0x594053){console['log']('\x20\x20'+a177_0x1cf5f8[_0x4365d5(0xc7)](_0x4365d5(0xd8))+'\x20\x20'+_0x548470);}console[_0x4365d5(0x10c)]('\x20\x20Action:\x20delete');}else console[_0x4365d5(0x10c)](a177_0x1cf5f8[_0x4365d5(0xb6)](_0x4365d5(0xf9))+'\x20\x20'+a177_0x1cf5f8[_0x4365d5(0x100)]('none\x20found'));console[_0x4365d5(0x10c)]('');_0x3516db?(console[_0x4365d5(0x10c)](a177_0x1cf5f8['cyan'](_0x4365d5(0xac))+('\x20\x20'+a177_0x1cf5f8[_0x4365d5(0xa7)](_0x3516db[_0x4365d5(0xb1)])+_0x4365d5(0xf4)+_0x3516db[_0x4365d5(0x103)][_0x4365d5(0xf6)](',\x20'))),console[_0x4365d5(0x10c)]('\x20\x20Action:\x20remove\x20entries\x20containing\x20@lovrabet/dataset-mcp-server')):console[_0x4365d5(0x10c)](a177_0x1cf5f8[_0x4365d5(0xb6)](_0x4365d5(0xac))+'\x20\x20'+a177_0x1cf5f8[_0x4365d5(0x100)](_0x4365d5(0xd6)));console[_0x4365d5(0x10c)](''),console[_0x4365d5(0x10c)](a177_0x1cf5f8[_0x4365d5(0xb6)]('Skill\x20swap:')+('\x20\x20'+(_0x21af25?a177_0x1cf5f8['yellow']('needed'):a177_0x1cf5f8[_0x4365d5(0xc0)](_0x4365d5(0xbf)))));_0x21af25&&console[_0x4365d5(0x10c)](_0x4365d5(0xb0)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+'`');console[_0x4365d5(0x10c)]('');if(_0x17ea35[_0x4365d5(0xa8)]){const {currentVersion:_0x52f824,field:_0x3be1ef,pkgPath:_0x36c01b}=_0x17ea35[_0x4365d5(0xa8)];console[_0x4365d5(0x10c)](a177_0x1cf5f8[_0x4365d5(0xb6)](_0x4365d5(0x109))+('\x20\x20'+a177_0x1cf5f8[_0x4365d5(0xa7)](_0x36c01b))),console['log'](_0x4365d5(0xb3)+_0x3be1ef+':\x20'+a177_0x1cf5f8[_0x4365d5(0xa7)](_0x52f824)+_0x4365d5(0xe2)+a177_0x1cf5f8[_0x4365d5(0xc0)]('latest')),console[_0x4365d5(0x10c)](_0x4365d5(0x10e));}else console[_0x4365d5(0x10c)](a177_0x1cf5f8['cyan'](_0x4365d5(0x109))+'\x20\x20'+a177_0x1cf5f8[_0x4365d5(0x100)]('not\x20found\x20or\x20already\x20at\x20latest'));console['log']('');}function execConfigMigration(_0x54e5a6,_0xa15095){const _0x19a46e=a177_0x210f1e,{configMigration:_0x1a6453}=_0x54e5a6;if(!_0x1a6453?.[_0x19a46e(0x121)])return{'step':0x1,'label':_0x19a46e(0xeb),'ok':!![],'detail':_0x19a46e(0xbc)};const _0x313169=readConfigFile(_0x1a6453[_0x19a46e(0x121)]),_0x1ac4e2=resolve(_0xa15095,NEW_CONFIG_NAME),_0x15538a=_0x1a6453[_0x19a46e(0xfe)]?readConfigFile(_0x1ac4e2):{};for(const [_0x204aee,_0x2d5eb7]of Object[_0x19a46e(0x124)](_0x313169)){!(_0x204aee in _0x15538a)&&(_0x15538a[_0x204aee]=_0x2d5eb7);}writeConfigFile(_0x1ac4e2,_0x15538a);const _0xb3aaa1=_0x1a6453['oldPath']+_0x19a46e(0x120);return renameSync(_0x1a6453[_0x19a46e(0x121)],_0xb3aaa1),{'step':0x1,'label':_0x19a46e(0xeb),'ok':!![],'detail':_0x1a6453['oldPath']+_0x19a46e(0xe2)+_0x1ac4e2+_0x19a46e(0x10d)+_0xb3aaa1+')'};}function execRemoveOldArtifacts(_0x176672){const _0x30949f=a177_0x210f1e,_0x3dacc7=[];for(const _0x3d214f of _0x176672){try{if(!existsSync(_0x3d214f))continue;const _0x140be6=tryStat(_0x3d214f);_0x140be6?.['isDirectory']()?rmSync(_0x3d214f,{'recursive':!![],'force':!![]}):unlinkSync(_0x3d214f);}catch(_0x32726b){_0x3dacc7[_0x30949f(0xe5)](_0x3d214f+':\x20'+_0x32726b[_0x30949f(0x117)]);}}return{'step':0x3,'label':_0x30949f(0x11d),'ok':_0x3dacc7[_0x30949f(0xb7)]===0x0,'detail':_0x3dacc7['length']>0x0?_0x176672[_0x30949f(0xb7)]-_0x3dacc7[_0x30949f(0xb7)]+'/'+_0x176672[_0x30949f(0xb7)]+_0x30949f(0xf5)+_0x3dacc7[_0x30949f(0xf6)](';\x20')+')':_0x176672[_0x30949f(0xb7)]+_0x30949f(0x11a)};}function execCleanMcp(_0x259f29){const _0x29b27e=a177_0x210f1e;if(!_0x259f29['oldMcpConfig'])return{'step':0x4,'label':_0x29b27e(0xae),'ok':!![],'detail':_0x29b27e(0xba)};try{const _0x74cf92=readFileSync(_0x259f29[_0x29b27e(0xfc)]['path'],'utf8'),_0x19a0cf=JSON[_0x29b27e(0x118)](_0x74cf92);if(_0x19a0cf?.['mcpServers']&&typeof _0x19a0cf[_0x29b27e(0xfa)]==='object'){const _0x203e00=[];for(const [_0x490a26,_0x26ab34]of Object[_0x29b27e(0x124)](_0x19a0cf['mcpServers'])){_0x26ab34?.[_0x29b27e(0xda)]&&Array[_0x29b27e(0x106)](_0x26ab34[_0x29b27e(0xda)])&&_0x26ab34[_0x29b27e(0xda)][_0x29b27e(0xcd)](_0x5d89ac=>typeof _0x5d89ac===_0x29b27e(0xdd)&&_0x5d89ac[_0x29b27e(0xbe)](_0x29b27e(0xfd)))&&_0x203e00[_0x29b27e(0xe5)](_0x490a26);}for(const _0x25baf5 of _0x203e00){delete _0x19a0cf['mcpServers'][_0x25baf5];}return _0x203e00[_0x29b27e(0xb7)]>0x0&&writeFileSync(_0x259f29[_0x29b27e(0xfc)][_0x29b27e(0xb1)],JSON[_0x29b27e(0xcf)](_0x19a0cf,null,0x2)+'\x0a',_0x29b27e(0xe7)),{'step':0x4,'label':_0x29b27e(0xae),'ok':!![],'detail':_0x29b27e(0x101)+_0x203e00[_0x29b27e(0xf6)](',\x20')+_0x29b27e(0xad)+_0x259f29[_0x29b27e(0xfc)][_0x29b27e(0xb1)]};}return{'step':0x4,'label':_0x29b27e(0xae),'ok':!![],'detail':_0x29b27e(0x116)};}catch(_0x2911e7){return{'step':0x4,'label':_0x29b27e(0xae),'ok':![],'detail':_0x2911e7[_0x29b27e(0x117)]};}}function execSkillsRemove(_0x312b3d,_0x2a866b){const _0xe3c98c=a177_0x210f1e,_0x4ce8b9=runNpxSkillsRemove(_0x312b3d,{'stdio':_0xe3c98c(0xd5),'yes':_0x2a866b});return{'step':0x5,'label':_0xe3c98c(0x113),'ok':_0x4ce8b9['ok'],'detail':_0x4ce8b9['ok']?'lovrabet/lovrabet-skill\x20removed':_0x4ce8b9[_0xe3c98c(0xb8)]??_0xe3c98c(0x10b)+_0x4ce8b9[_0xe3c98c(0xf3)]};}function execSkillsAdd(_0x3a4318,_0xcd4a13){const _0x3b579d=a177_0x210f1e,_0x1787b1=runNpxSkillsAddGlobal(_0x3a4318,_0x3b579d(0xe4),{'stdio':_0x3b579d(0xd5),'yes':_0xcd4a13});return{'step':0x6,'label':_0x3b579d(0x102),'ok':_0x1787b1['ok'],'detail':_0x1787b1['ok']?_0x3b579d(0xee):_0x1787b1[_0x3b579d(0xb8)]??'exit\x20'+_0x1787b1[_0x3b579d(0xf3)]};}function execUpgradeSdk(_0x5a5e76){const _0xb92b5b=a177_0x210f1e;if(!_0x5a5e76['sdkUpgrade'])return{'step':0x7,'label':'Upgrade\x20@lovrabet/sdk','ok':!![],'detail':'skipped\x20(not\x20found\x20or\x20already\x20at\x20latest)'};const {pkgPath:_0x921eef,currentVersion:_0x15188b,field:_0x15aa24}=_0x5a5e76[_0xb92b5b(0xa8)];try{const _0x58fa32=readFileSync(_0x921eef,_0xb92b5b(0xe7)),_0x4b2fed=JSON[_0xb92b5b(0x118)](_0x58fa32);return _0x4b2fed[_0x15aa24]['@lovrabet/sdk']=_0xb92b5b(0x114),writeFileSync(_0x921eef,JSON['stringify'](_0x4b2fed,null,0x2)+'\x0a',_0xb92b5b(0xe7)),{'step':0x7,'label':_0xb92b5b(0xaf),'ok':!![],'detail':_0x15aa24+_0xb92b5b(0xdf)+_0x15188b+_0xb92b5b(0xdc)};}catch(_0x5526fc){return{'step':0x7,'label':_0xb92b5b(0xaf),'ok':![],'detail':_0x5526fc[_0xb92b5b(0x117)]};}}function tryStat(_0x4140b7){try{return statSync(_0x4140b7);}catch{return undefined;}}function printSummary(_0x29083e){const _0x3d9d29=a177_0x210f1e;console[_0x3d9d29(0x10c)](''),console[_0x3d9d29(0x10c)](a177_0x1cf5f8[_0x3d9d29(0x11f)](_0x3d9d29(0x105))),console[_0x3d9d29(0x10c)]('');for(const _0x33a73a of _0x29083e){const _0x4693ca=_0x33a73a['ok']?a177_0x1cf5f8[_0x3d9d29(0xc0)]('OK'):a177_0x1cf5f8[_0x3d9d29(0xc7)](_0x3d9d29(0xf8));console[_0x3d9d29(0x10c)]('\x20\x20'+_0x4693ca+_0x3d9d29(0xd1)+_0x33a73a[_0x3d9d29(0xc3)]+':\x20'+_0x33a73a[_0x3d9d29(0x122)]);if(_0x33a73a[_0x3d9d29(0xa6)])console[_0x3d9d29(0x10c)](_0x3d9d29(0xcb)+a177_0x1cf5f8[_0x3d9d29(0x100)](_0x33a73a[_0x3d9d29(0xa6)]));}console['log']('');}export async function upgradeApp(_0x29a7c3,_0x521604){const _0xbd42ed=a177_0x210f1e,_0x4f16c6=process['cwd'](),_0x1a4a1e=analyse(_0x4f16c6),_0x255c70=!_0x1a4a1e[_0xbd42ed(0x11e)]&&_0x1a4a1e['oldArtifacts'][_0xbd42ed(0xb7)]===0x0&&!_0x1a4a1e[_0xbd42ed(0xfc)]&&!_0x1a4a1e[_0xbd42ed(0xfb)]&&!_0x1a4a1e[_0xbd42ed(0xa8)];if(_0x255c70){console['log'](a177_0x1cf5f8[_0xbd42ed(0xc0)]('No\x20legacy\x20artifacts\x20found.\x20Your\x20project\x20is\x20already\x20up-to-date.'));return;}printReport(_0x1a4a1e);const _0xf142f6=!!(_0x521604[_0xbd42ed(0x119)]||_0x521604['Y']||_0x29a7c3);if(!_0xf142f6)try{const _0x471455=await askConfirm(_0xbd42ed(0xff));if(!_0x471455){console[_0xbd42ed(0x10c)](a177_0x1cf5f8[_0xbd42ed(0x100)]('Upgrade\x20cancelled.'));return;}}catch(_0x18e92d){if(_0x18e92d?.['message']===_0xbd42ed(0xd3)){console[_0xbd42ed(0x10c)](a177_0x1cf5f8['gray'](_0xbd42ed(0xce)));return;}throw _0x18e92d;}const _0x3a01e5=[],_0xa8d3ba=a177_0xcdf33e({'text':_0xbd42ed(0xef),'color':_0xbd42ed(0xb6)})['start'](),_0xfc0893=execConfigMigration(_0x1a4a1e,_0x4f16c6);_0x3a01e5[_0xbd42ed(0xe5)](_0xfc0893),_0xa8d3ba[_0xfc0893['ok']?_0xbd42ed(0xd7):_0xbd42ed(0xf2)]('Step\x201/7:\x20Config\x20migration\x20—\x20'+(_0xfc0893['detail']??(_0xfc0893['ok']?_0xbd42ed(0xd2):_0xbd42ed(0xc4))));const _0x2f8e23=resolve(_0x4f16c6,'.lovrabet'),_0x5c8279=a177_0xcdf33e({'text':_0xbd42ed(0x11c),'color':'cyan'})[_0xbd42ed(0xc2)]();if(existsSync(_0x2f8e23))try{rmSync(_0x2f8e23,{'recursive':!![],'force':!![]}),_0x5c8279[_0xbd42ed(0xd7)](_0xbd42ed(0x112)),_0x3a01e5['push']({'step':0x2,'label':'Remove\x20.lovrabet/','ok':!![]});}catch(_0x2fd8e3){_0x5c8279['fail'](_0xbd42ed(0x108)+_0x2fd8e3['message']),_0x3a01e5[_0xbd42ed(0xe5)]({'step':0x2,'label':_0xbd42ed(0xca),'ok':![],'detail':_0x2fd8e3[_0xbd42ed(0x117)]});}else _0x5c8279['info']('Step\x202/7:\x20.lovrabet/\x20not\x20found,\x20skipped'),_0x3a01e5[_0xbd42ed(0xe5)]({'step':0x2,'label':_0xbd42ed(0xca),'ok':!![],'detail':_0xbd42ed(0xba)});const _0x4059aa=a177_0xcdf33e({'text':_0xbd42ed(0xe6),'color':'cyan'})[_0xbd42ed(0xc2)](),_0xa657b8=execRemoveOldArtifacts(_0x1a4a1e['oldArtifacts']);_0x3a01e5[_0xbd42ed(0xe5)](_0xa657b8),_0x4059aa[_0xa657b8['ok']?_0xbd42ed(0xd7):_0xbd42ed(0xf2)](_0xbd42ed(0xde)+(_0xa657b8['detail']??(_0xa657b8['ok']?_0xbd42ed(0xd2):_0xbd42ed(0xc4))));const _0x16051a=a177_0xcdf33e({'text':_0xbd42ed(0xe9),'color':'cyan'})[_0xbd42ed(0xc2)](),_0x1b3e10=execCleanMcp(_0x1a4a1e);_0x3a01e5[_0xbd42ed(0xe5)](_0x1b3e10),_0x16051a[_0x1b3e10['ok']?'succeed':_0xbd42ed(0xf2)](_0xbd42ed(0xf0)+(_0x1b3e10[_0xbd42ed(0xa6)]??(_0x1b3e10['ok']?'done':_0xbd42ed(0xc4))));const _0x515c71=a177_0xcdf33e({'text':_0xbd42ed(0xc1),'color':_0xbd42ed(0xb6)})['start'](),_0x4801d5=execSkillsRemove(_0x4f16c6,_0xf142f6);_0x3a01e5[_0xbd42ed(0xe5)](_0x4801d5),_0x515c71[_0x4801d5['ok']?_0xbd42ed(0xd7):_0xbd42ed(0xf2)](_0xbd42ed(0x10a)+(_0x4801d5[_0xbd42ed(0xa6)]??(_0x4801d5['ok']?_0xbd42ed(0xd2):_0xbd42ed(0xc4))));const _0x7d375=a177_0xcdf33e({'text':_0xbd42ed(0x111),'color':_0xbd42ed(0xb6)})['start'](),_0x48dfbb=execSkillsAdd(_0x4f16c6,_0xf142f6);_0x3a01e5['push'](_0x48dfbb),_0x7d375[_0x48dfbb['ok']?_0xbd42ed(0xd7):_0xbd42ed(0xf2)](_0xbd42ed(0xb4)+(_0x48dfbb[_0xbd42ed(0xa6)]??(_0x48dfbb['ok']?'done':_0xbd42ed(0xc4))));const _0x23043c=a177_0xcdf33e({'text':_0xbd42ed(0x110),'color':_0xbd42ed(0xb6)})[_0xbd42ed(0xc2)](),_0x35775e=execUpgradeSdk(_0x1a4a1e);_0x3a01e5[_0xbd42ed(0xe5)](_0x35775e),_0x23043c[_0x35775e['ok']?_0xbd42ed(0xd7):_0xbd42ed(0xf2)]('Step\x207/7:\x20@lovrabet/sdk\x20—\x20'+(_0x35775e[_0xbd42ed(0xa6)]??(_0x35775e['ok']?'done':_0xbd42ed(0xc4)))),printSummary(_0x3a01e5);const _0x2cc89e=_0x3a01e5[_0xbd42ed(0xcd)](_0x592122=>!_0x592122['ok']);_0x2cc89e?console[_0xbd42ed(0x10c)](a177_0x1cf5f8[_0xbd42ed(0xa7)](_0xbd42ed(0xa9))):console[_0xbd42ed(0x10c)](a177_0x1cf5f8[_0xbd42ed(0xc0)](_0xbd42ed(0xb9))),_0x35775e['ok']&&_0x1a4a1e[_0xbd42ed(0xa8)]&&(console[_0xbd42ed(0x10c)](''),console['log'](a177_0x1cf5f8[_0xbd42ed(0x11f)][_0xbd42ed(0xb6)](_0xbd42ed(0xb2))),console[_0xbd42ed(0x10c)](a177_0x1cf5f8[_0xbd42ed(0xb6)]('Please\x20re-install\x20dependencies\x20to\x20apply\x20the\x20change:')),console['log'](''),console[_0xbd42ed(0x10c)](a177_0x1cf5f8['white'](_0xbd42ed(0xd9))),console['log'](a177_0x1cf5f8['white'](_0xbd42ed(0xe1))),console[_0xbd42ed(0x10c)](a177_0x1cf5f8[_0xbd42ed(0xe3)]('\x20\x20bun\x20install')),console[_0xbd42ed(0x10c)](''));}
1
+ const a171_0x102239=a171_0x59ff;(function(_0x294de6,_0xad713){const _0x31f651=a171_0x59ff,_0x1ca5d3=_0x294de6();while(!![]){try{const _0x95cb6=-parseInt(_0x31f651(0x1d0))/0x1*(parseInt(_0x31f651(0x20c))/0x2)+parseInt(_0x31f651(0x1ed))/0x3*(-parseInt(_0x31f651(0x1dc))/0x4)+parseInt(_0x31f651(0x1d7))/0x5*(-parseInt(_0x31f651(0x1e3))/0x6)+parseInt(_0x31f651(0x205))/0x7+-parseInt(_0x31f651(0x1c0))/0x8*(-parseInt(_0x31f651(0x201))/0x9)+parseInt(_0x31f651(0x1e5))/0xa*(parseInt(_0x31f651(0x1f3))/0xb)+parseInt(_0x31f651(0x1e2))/0xc*(parseInt(_0x31f651(0x20d))/0xd);if(_0x95cb6===_0xad713)break;else _0x1ca5d3['push'](_0x1ca5d3['shift']());}catch(_0x37a2d5){_0x1ca5d3['push'](_0x1ca5d3['shift']());}}}(a171_0x537e,0x205f9));function a171_0x59ff(_0x19e54e,_0x3cb8c4){_0x19e54e=_0x19e54e-0x1bb;const _0x537e6c=a171_0x537e();let _0x59ff1d=_0x537e6c[_0x19e54e];return _0x59ff1d;}import a171_0x5a8535 from'chalk';import a171_0x23dfde from'ora';import{existsSync,readFileSync,renameSync,rmSync,statSync,unlinkSync,writeFileSync}from'node:fs';import{resolve}from'node:path';import{CONFIG_NAMES,NEW_CONFIG_NAME,readConfigFile,writeConfigFile}from'../../context.js';import{CORE_IDE_CONFIGS}from'../../utils/ai_config.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE,runNpxSkillsAddGlobal,runNpxSkillsRemove}from'../../skills/npx-skills-add.js';import{askConfirm}from'../../commands/menu/shared/inquirer.js';const LEGACY_CONFIG_NAMES=CONFIG_NAMES[a171_0x102239(0x221)](_0x273fb1=>_0x273fb1!==NEW_CONFIG_NAME);function collectIdeSkillFiles(_0x51cd29){const _0x4da779=a171_0x102239,_0x4b9edd=[];for(const _0x624d2c of Object['values'](CORE_IDE_CONFIGS)){if(_0x624d2c[_0x4da779(0x21a)])for(const _0x246302 of _0x624d2c[_0x4da779(0x21a)]){_0x4b9edd[_0x4da779(0x1bb)](resolve(_0x51cd29,_0x246302['path']));}}return _0x4b9edd;}function analyse(_0x23f2ce){const _0x16b718=a171_0x102239;let _0x1e23d7=null;const _0x3e5620=resolve(_0x23f2ce,NEW_CONFIG_NAME),_0x2f30bb=existsSync(_0x3e5620);for(const _0x1a18d0 of LEGACY_CONFIG_NAMES){const _0x1ba240=resolve(_0x23f2ce,_0x1a18d0);if(existsSync(_0x1ba240)){const _0x30bedc=readConfigFile(_0x1ba240),_0x1e2495=Object[_0x16b718(0x1d9)](_0x30bedc)[_0x16b718(0x221)](_0x368679=>typeof _0x30bedc[_0x368679]!==_0x16b718(0x1c7));_0x1e23d7={'oldPath':_0x1ba240,'hasNewConfig':_0x2f30bb,'fields':_0x1e2495};break;}}const _0xe6f0a2=[],_0x271426=resolve(_0x23f2ce,'.lovrabet');if(existsSync(_0x271426))_0xe6f0a2[_0x16b718(0x1bb)](_0x271426);const _0x4b8692=resolve(_0x23f2ce,'.cursor/rules/lovrabet_rules.mdc');if(existsSync(_0x4b8692))_0xe6f0a2[_0x16b718(0x1bb)](_0x4b8692);const _0x1ab39a=resolve(_0x23f2ce,_0x16b718(0x237));if(existsSync(_0x1ab39a))_0xe6f0a2[_0x16b718(0x1bb)](_0x1ab39a);for(const _0x11b4ac of collectIdeSkillFiles(_0x23f2ce)){if(existsSync(_0x11b4ac))_0xe6f0a2[_0x16b718(0x1bb)](_0x11b4ac);}let _0x1638bb=null;const _0x47afc9=resolve(_0x23f2ce,'.cursor/mcp.json');if(existsSync(_0x47afc9))try{const _0x3cd440=JSON[_0x16b718(0x1f6)](readFileSync(_0x47afc9,_0x16b718(0x204)));if(_0x3cd440?.[_0x16b718(0x1ec)]&&typeof _0x3cd440['mcpServers']===_0x16b718(0x227)){const _0x156925=[];for(const [_0x112b7a,_0x30e593]of Object[_0x16b718(0x1d3)](_0x3cd440[_0x16b718(0x1ec)])){const _0x1e4f01=_0x30e593;_0x1e4f01?.['args']&&Array[_0x16b718(0x1f8)](_0x1e4f01['args'])&&_0x1e4f01[_0x16b718(0x1d4)]['some'](_0x2dfe69=>typeof _0x2dfe69==='string'&&_0x2dfe69[_0x16b718(0x1df)](_0x16b718(0x228)))&&_0x156925[_0x16b718(0x1bb)](_0x112b7a);}_0x156925[_0x16b718(0x1da)]>0x0&&(_0x1638bb={'path':_0x47afc9,'keys':_0x156925});}}catch{}const _0x3c1a10=_0xe6f0a2[_0x16b718(0x1da)]>0x0||_0x1e23d7!==null;let _0x459b11=null;const _0x4c34ab=resolve(_0x23f2ce,_0x16b718(0x1f4));if(existsSync(_0x4c34ab))try{const _0x4609f4=JSON[_0x16b718(0x1f6)](readFileSync(_0x4c34ab,_0x16b718(0x204)));for(const _0xa3537a of[_0x16b718(0x1f9),_0x16b718(0x1c6)]){const _0x5b77f3=_0x4609f4?.[_0xa3537a]?.[_0x16b718(0x22b)];if(typeof _0x5b77f3===_0x16b718(0x1f5)){_0x5b77f3!==_0x16b718(0x1d6)&&(_0x459b11={'pkgPath':_0x4c34ab,'currentVersion':_0x5b77f3,'field':_0xa3537a});break;}}}catch{}return{'configMigration':_0x1e23d7,'oldArtifacts':_0xe6f0a2,'oldMcpConfig':_0x1638bb,'needsSkillSwap':_0x3c1a10,'sdkUpgrade':_0x459b11};}function printReport(_0x5a368e){const _0x4718cd=a171_0x102239,{configMigration:_0x547e28,oldArtifacts:_0x17be14,oldMcpConfig:_0x1c2fd1,needsSkillSwap:_0x220dd1}=_0x5a368e;console[_0x4718cd(0x233)](''),console['log'](a171_0x5a8535[_0x4718cd(0x225)]('===\x20Upgrade\x20Analysis\x20===')),console['log']('');_0x547e28?(console[_0x4718cd(0x233)](a171_0x5a8535[_0x4718cd(0x230)](_0x4718cd(0x213))+('\x20\x20'+a171_0x5a8535['yellow'](_0x547e28[_0x4718cd(0x216)]))),console[_0x4718cd(0x233)]('\x20\x20New\x20config\x20(.rabetbase.json):\x20'+(_0x547e28[_0x4718cd(0x220)]?a171_0x5a8535[_0x4718cd(0x1e1)](_0x4718cd(0x209)):a171_0x5a8535['gray'](_0x4718cd(0x231)))),console[_0x4718cd(0x233)](_0x4718cd(0x1c1)+_0x547e28[_0x4718cd(0x1f7)][_0x4718cd(0x1bc)](',\x20')),console[_0x4718cd(0x233)](_0x4718cd(0x1f1))):console[_0x4718cd(0x233)](a171_0x5a8535[_0x4718cd(0x230)](_0x4718cd(0x213))+'\x20\x20'+a171_0x5a8535[_0x4718cd(0x1bf)](_0x4718cd(0x239)));console[_0x4718cd(0x233)]('');if(_0x17be14[_0x4718cd(0x1da)]>0x0){console[_0x4718cd(0x233)](a171_0x5a8535[_0x4718cd(0x230)]('Legacy\x20artifacts:'));for(const _0x3a0c8b of _0x17be14){console[_0x4718cd(0x233)]('\x20\x20'+a171_0x5a8535[_0x4718cd(0x1e0)](_0x4718cd(0x1de))+'\x20\x20'+_0x3a0c8b);}console[_0x4718cd(0x233)](_0x4718cd(0x1c2));}else console['log'](a171_0x5a8535['cyan']('Legacy\x20artifacts:')+'\x20\x20'+a171_0x5a8535[_0x4718cd(0x1bf)](_0x4718cd(0x22c)));console[_0x4718cd(0x233)]('');_0x1c2fd1?(console[_0x4718cd(0x233)](a171_0x5a8535[_0x4718cd(0x230)]('MCP\x20config:')+('\x20\x20'+a171_0x5a8535['yellow'](_0x1c2fd1['path'])+_0x4718cd(0x223)+_0x1c2fd1[_0x4718cd(0x1d9)][_0x4718cd(0x1bc)](',\x20'))),console['log'](_0x4718cd(0x1ce))):console[_0x4718cd(0x233)](a171_0x5a8535[_0x4718cd(0x230)](_0x4718cd(0x1d1))+'\x20\x20'+a171_0x5a8535['gray']('no\x20legacy\x20entry'));console[_0x4718cd(0x233)](''),console[_0x4718cd(0x233)](a171_0x5a8535['cyan'](_0x4718cd(0x1c3))+('\x20\x20'+(_0x220dd1?a171_0x5a8535[_0x4718cd(0x215)]('needed'):a171_0x5a8535[_0x4718cd(0x1e1)](_0x4718cd(0x217)))));_0x220dd1&&console[_0x4718cd(0x233)](_0x4718cd(0x202)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+'`');console['log']('');if(_0x5a368e[_0x4718cd(0x210)]){const {currentVersion:_0x6a7e6d,field:_0x37fb00,pkgPath:_0x33f395}=_0x5a368e[_0x4718cd(0x210)];console[_0x4718cd(0x233)](a171_0x5a8535[_0x4718cd(0x230)](_0x4718cd(0x212))+('\x20\x20'+a171_0x5a8535[_0x4718cd(0x215)](_0x33f395))),console[_0x4718cd(0x233)](_0x4718cd(0x21d)+_0x37fb00+':\x20'+a171_0x5a8535[_0x4718cd(0x215)](_0x6a7e6d)+'\x20→\x20'+a171_0x5a8535[_0x4718cd(0x1e1)](_0x4718cd(0x1d6))),console[_0x4718cd(0x233)]('\x20\x20Action:\x20update\x20package.json\x20(you\x20will\x20need\x20to\x20re-run\x20install)');}else console[_0x4718cd(0x233)](a171_0x5a8535['cyan'](_0x4718cd(0x212))+'\x20\x20'+a171_0x5a8535[_0x4718cd(0x1bf)]('not\x20found\x20or\x20already\x20at\x20latest'));console['log']('');}function a171_0x537e(){const _0x53b8bd=['3918ZAbYRy','Step\x202/7:\x20.lovrabet/\x20removal\x20failed\x20—\x20','810990hiuyWV','Step\x203/7:\x20Legacy\x20artifacts\x20—\x20','Remove\x20.lovrabet/','detail','start','Clean\x20MCP\x20config','fail','mcpServers','203769SfzUNQ','oldMcpConfig','Upgrade\x20cancelled.','Step\x201/7:\x20Migrating\x20config...','\x20\x20Action:\x20migrate\x20→\x20backup\x20old\x20as\x20.bak','Step\x201/7:\x20Config\x20migration\x20—\x20','33ieErEl','package.json','string','parse','fields','isArray','dependencies','Config\x20migration','\x20\x20\x20\x20\x20\x20\x20','removed\x20','Remove\x20legacy\x20artifacts','lovrabet/rabetbase','\x20from\x20','inherit','372195uOffWe','\x20\x20Action:\x20remove\x20old\x20lovrabet/lovrabet-skill,\x20add\x20via\x20`','done','utf8','44457jaOBFB','stringify','info','step','already\x20exists\x20(will\x20merge)','\x20→\x20latest','failed','1438xiTqyB','2615145DSuqdt','Proceed\x20with\x20upgrade?','Step\x206/7:\x20Installing\x20new\x20skill...','sdkUpgrade','FAIL','@lovrabet/sdk:','Config\x20file:','lovrabet/rabetbase\x20installed\x20globally','yellow','oldPath','not\x20needed','Step\x204/7:\x20MCP\x20config\x20—\x20','[\x22@lovrabet/sdk\x22]:\x20','files','\x20removed','skipped\x20(not\x20found\x20or\x20already\x20at\x20latest)','\x20\x20Current\x20version\x20in\x20','error','cwd','hasNewConfig','filter','\x20(backup:\x20','\x20→\x20keys:\x20','exit\x20','bold','yes','object','@lovrabet/dataset-mcp-server','\x20→\x20','white','@lovrabet/sdk','none\x20found','Step\x207/7:\x20@lovrabet/sdk\x20—\x20','skipped','@lovrabet/sdk\x20has\x20been\x20updated\x20to\x20latest\x20in\x20package.json.','cyan','not\x20found\x20(will\x20create)','needsSkillSwap','log','isDirectory','Remove\x20old\x20skill','No\x20legacy\x20artifacts\x20found.\x20Your\x20project\x20is\x20already\x20up-to-date.','.claude/skills/lovrabet','no\x20matching\x20entry\x20found','no\x20legacy\x20config\x20found','push','join','\x20\x20bun\x20install','.bak','gray','24DtbKBo','\x20\x20Fields\x20to\x20migrate:\x20','\x20\x20Action:\x20delete','Skill\x20swap:','Step\x206/7:\x20Install\x20new\x20skill\x20—\x20','Upgrade\x20@lovrabet/sdk','devDependencies','undefined','Step\x207/7:\x20Upgrading\x20@lovrabet/sdk\x20in\x20package.json...','Upgrade\x20completed\x20successfully!','\x20\x20Step\x20','\x20removed\x20(','Step\x203/7:\x20Removing\x20legacy\x20IDE\x20skill\x20files...','oldArtifacts','\x20\x20Action:\x20remove\x20entries\x20containing\x20@lovrabet/dataset-mcp-server','Step\x204/7:\x20Cleaning\x20MCP\x20config...','62tWZDce','MCP\x20config:','some','entries','args','succeed','latest','2005wzcYlY','Please\x20re-install\x20dependencies\x20to\x20apply\x20the\x20change:','keys','length','path','8ioDrgO','message','FOUND','includes','red','green','12jcgwwl'];a171_0x537e=function(){return _0x53b8bd;};return a171_0x537e();}function execConfigMigration(_0x32ae5d,_0x13a2cc){const _0x20f13a=a171_0x102239,{configMigration:_0x3f1103}=_0x32ae5d;if(!_0x3f1103?.[_0x20f13a(0x216)])return{'step':0x1,'label':_0x20f13a(0x1fa),'ok':!![],'detail':'skipped\x20(no\x20legacy\x20config)'};const _0x509ced=readConfigFile(_0x3f1103[_0x20f13a(0x216)]),_0x2bf992=resolve(_0x13a2cc,NEW_CONFIG_NAME),_0x128464=_0x3f1103[_0x20f13a(0x220)]?readConfigFile(_0x2bf992):{};for(const [_0x51f4a7,_0x19df34]of Object['entries'](_0x509ced)){!(_0x51f4a7 in _0x128464)&&(_0x128464[_0x51f4a7]=_0x19df34);}writeConfigFile(_0x2bf992,_0x128464);const _0x3b3e5d=_0x3f1103[_0x20f13a(0x216)]+_0x20f13a(0x1be);return renameSync(_0x3f1103[_0x20f13a(0x216)],_0x3b3e5d),{'step':0x1,'label':_0x20f13a(0x1fa),'ok':!![],'detail':_0x3f1103[_0x20f13a(0x216)]+_0x20f13a(0x229)+_0x2bf992+_0x20f13a(0x222)+_0x3b3e5d+')'};}function execRemoveOldArtifacts(_0x390fa5){const _0x5c6310=a171_0x102239,_0x18fe2e=[];for(const _0x132ee7 of _0x390fa5){try{if(!existsSync(_0x132ee7))continue;const _0x85ffea=tryStat(_0x132ee7);_0x85ffea?.[_0x5c6310(0x234)]()?rmSync(_0x132ee7,{'recursive':!![],'force':!![]}):unlinkSync(_0x132ee7);}catch(_0x16705f){_0x18fe2e['push'](_0x132ee7+':\x20'+_0x16705f[_0x5c6310(0x1dd)]);}}return{'step':0x3,'label':_0x5c6310(0x1fd),'ok':_0x18fe2e[_0x5c6310(0x1da)]===0x0,'detail':_0x18fe2e[_0x5c6310(0x1da)]>0x0?_0x390fa5[_0x5c6310(0x1da)]-_0x18fe2e[_0x5c6310(0x1da)]+'/'+_0x390fa5[_0x5c6310(0x1da)]+_0x5c6310(0x1cb)+_0x18fe2e['join'](';\x20')+')':_0x390fa5[_0x5c6310(0x1da)]+_0x5c6310(0x21b)};}function execCleanMcp(_0x589e62){const _0x37e84f=a171_0x102239;if(!_0x589e62['oldMcpConfig'])return{'step':0x4,'label':_0x37e84f(0x1ea),'ok':!![],'detail':_0x37e84f(0x22e)};try{const _0x27b529=readFileSync(_0x589e62[_0x37e84f(0x1ee)][_0x37e84f(0x1db)],_0x37e84f(0x204)),_0x102d2f=JSON[_0x37e84f(0x1f6)](_0x27b529);if(_0x102d2f?.['mcpServers']&&typeof _0x102d2f[_0x37e84f(0x1ec)]===_0x37e84f(0x227)){const _0x45f571=[];for(const [_0xda3afb,_0x1c8eaf]of Object['entries'](_0x102d2f['mcpServers'])){_0x1c8eaf?.[_0x37e84f(0x1d4)]&&Array[_0x37e84f(0x1f8)](_0x1c8eaf['args'])&&_0x1c8eaf['args'][_0x37e84f(0x1d2)](_0x2628e3=>typeof _0x2628e3===_0x37e84f(0x1f5)&&_0x2628e3[_0x37e84f(0x1df)](_0x37e84f(0x228)))&&_0x45f571[_0x37e84f(0x1bb)](_0xda3afb);}for(const _0x14c525 of _0x45f571){delete _0x102d2f[_0x37e84f(0x1ec)][_0x14c525];}return _0x45f571[_0x37e84f(0x1da)]>0x0&&writeFileSync(_0x589e62['oldMcpConfig'][_0x37e84f(0x1db)],JSON[_0x37e84f(0x206)](_0x102d2f,null,0x2)+'\x0a',_0x37e84f(0x204)),{'step':0x4,'label':_0x37e84f(0x1ea),'ok':!![],'detail':_0x37e84f(0x1fc)+_0x45f571[_0x37e84f(0x1bc)](',\x20')+_0x37e84f(0x1ff)+_0x589e62[_0x37e84f(0x1ee)][_0x37e84f(0x1db)]};}return{'step':0x4,'label':_0x37e84f(0x1ea),'ok':!![],'detail':_0x37e84f(0x238)};}catch(_0x401b82){return{'step':0x4,'label':_0x37e84f(0x1ea),'ok':![],'detail':_0x401b82[_0x37e84f(0x1dd)]};}}function execSkillsRemove(_0x3b0a54,_0x75c7c5){const _0x46e29f=a171_0x102239,_0x217854=runNpxSkillsRemove(_0x3b0a54,{'stdio':_0x46e29f(0x200),'yes':_0x75c7c5});return{'step':0x5,'label':_0x46e29f(0x235),'ok':_0x217854['ok'],'detail':_0x217854['ok']?'lovrabet/lovrabet-skill\x20removed':_0x217854[_0x46e29f(0x21e)]??'exit\x20'+_0x217854['status']};}function execSkillsAdd(_0x3dce44,_0x34ce41){const _0x3a4c53=a171_0x102239,_0x57cda5=runNpxSkillsAddGlobal(_0x3dce44,_0x3a4c53(0x1fe),{'stdio':'inherit','yes':_0x34ce41});return{'step':0x6,'label':'Install\x20new\x20skill','ok':_0x57cda5['ok'],'detail':_0x57cda5['ok']?_0x3a4c53(0x214):_0x57cda5['error']??_0x3a4c53(0x224)+_0x57cda5['status']};}function execUpgradeSdk(_0x588528){const _0x256387=a171_0x102239;if(!_0x588528['sdkUpgrade'])return{'step':0x7,'label':_0x256387(0x1c5),'ok':!![],'detail':_0x256387(0x21c)};const {pkgPath:_0x59e7b3,currentVersion:_0xc8883f,field:_0x4b7143}=_0x588528[_0x256387(0x210)];try{const _0x15f7b6=readFileSync(_0x59e7b3,_0x256387(0x204)),_0x499582=JSON['parse'](_0x15f7b6);return _0x499582[_0x4b7143]['@lovrabet/sdk']=_0x256387(0x1d6),writeFileSync(_0x59e7b3,JSON[_0x256387(0x206)](_0x499582,null,0x2)+'\x0a',_0x256387(0x204)),{'step':0x7,'label':_0x256387(0x1c5),'ok':!![],'detail':_0x4b7143+_0x256387(0x219)+_0xc8883f+_0x256387(0x20a)};}catch(_0x3ec454){return{'step':0x7,'label':_0x256387(0x1c5),'ok':![],'detail':_0x3ec454[_0x256387(0x1dd)]};}}function tryStat(_0x15aba8){try{return statSync(_0x15aba8);}catch{return undefined;}}function printSummary(_0x466179){const _0xa67d53=a171_0x102239;console['log'](''),console[_0xa67d53(0x233)](a171_0x5a8535[_0xa67d53(0x225)]('===\x20Upgrade\x20Summary\x20===')),console['log']('');for(const _0x384720 of _0x466179){const _0x55af8c=_0x384720['ok']?a171_0x5a8535['green']('OK'):a171_0x5a8535['red'](_0xa67d53(0x211));console[_0xa67d53(0x233)]('\x20\x20'+_0x55af8c+_0xa67d53(0x1ca)+_0x384720[_0xa67d53(0x208)]+':\x20'+_0x384720['label']);if(_0x384720[_0xa67d53(0x1e8)])console[_0xa67d53(0x233)](_0xa67d53(0x1fb)+a171_0x5a8535['gray'](_0x384720[_0xa67d53(0x1e8)]));}console[_0xa67d53(0x233)]('');}export async function upgradeApp(_0x324f36,_0x4d5009){const _0x12934b=a171_0x102239,_0x30430e=process[_0x12934b(0x21f)](),_0x28d115=analyse(_0x30430e),_0x123654=!_0x28d115['configMigration']&&_0x28d115[_0x12934b(0x1cd)][_0x12934b(0x1da)]===0x0&&!_0x28d115[_0x12934b(0x1ee)]&&!_0x28d115[_0x12934b(0x232)]&&!_0x28d115[_0x12934b(0x210)];if(_0x123654){console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x1e1)](_0x12934b(0x236)));return;}printReport(_0x28d115);const _0x3bb189=!!(_0x4d5009[_0x12934b(0x226)]||_0x4d5009['Y']||_0x324f36);if(!_0x3bb189)try{const _0x592ca9=await askConfirm(_0x12934b(0x20e));if(!_0x592ca9){console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x1bf)]('Upgrade\x20cancelled.'));return;}}catch(_0x17f73f){if(_0x17f73f?.[_0x12934b(0x1dd)]==='CANCEL'){console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x1bf)](_0x12934b(0x1ef)));return;}throw _0x17f73f;}const _0x145c14=[],_0x2a3183=a171_0x23dfde({'text':_0x12934b(0x1f0),'color':_0x12934b(0x230)})[_0x12934b(0x1e9)](),_0x59d1ca=execConfigMigration(_0x28d115,_0x30430e);_0x145c14['push'](_0x59d1ca),_0x2a3183[_0x59d1ca['ok']?_0x12934b(0x1d5):_0x12934b(0x1eb)](_0x12934b(0x1f2)+(_0x59d1ca['detail']??(_0x59d1ca['ok']?_0x12934b(0x203):_0x12934b(0x20b))));const _0x297b72=resolve(_0x30430e,'.lovrabet'),_0x56da7e=a171_0x23dfde({'text':'Step\x202/7:\x20Removing\x20.lovrabet/\x20directory...','color':'cyan'})[_0x12934b(0x1e9)]();if(existsSync(_0x297b72))try{rmSync(_0x297b72,{'recursive':!![],'force':!![]}),_0x56da7e[_0x12934b(0x1d5)]('Step\x202/7:\x20.lovrabet/\x20directory\x20removed'),_0x145c14[_0x12934b(0x1bb)]({'step':0x2,'label':_0x12934b(0x1e7),'ok':!![]});}catch(_0x41f3dd){_0x56da7e[_0x12934b(0x1eb)](_0x12934b(0x1e4)+_0x41f3dd[_0x12934b(0x1dd)]),_0x145c14[_0x12934b(0x1bb)]({'step':0x2,'label':_0x12934b(0x1e7),'ok':![],'detail':_0x41f3dd[_0x12934b(0x1dd)]});}else _0x56da7e[_0x12934b(0x207)]('Step\x202/7:\x20.lovrabet/\x20not\x20found,\x20skipped'),_0x145c14[_0x12934b(0x1bb)]({'step':0x2,'label':_0x12934b(0x1e7),'ok':!![],'detail':'skipped'});const _0x5b6872=a171_0x23dfde({'text':_0x12934b(0x1cc),'color':'cyan'})[_0x12934b(0x1e9)](),_0x51e750=execRemoveOldArtifacts(_0x28d115[_0x12934b(0x1cd)]);_0x145c14[_0x12934b(0x1bb)](_0x51e750),_0x5b6872[_0x51e750['ok']?'succeed':_0x12934b(0x1eb)](_0x12934b(0x1e6)+(_0x51e750['detail']??(_0x51e750['ok']?_0x12934b(0x203):_0x12934b(0x20b))));const _0x371ed6=a171_0x23dfde({'text':_0x12934b(0x1cf),'color':_0x12934b(0x230)})[_0x12934b(0x1e9)](),_0x2be15b=execCleanMcp(_0x28d115);_0x145c14[_0x12934b(0x1bb)](_0x2be15b),_0x371ed6[_0x2be15b['ok']?_0x12934b(0x1d5):_0x12934b(0x1eb)](_0x12934b(0x218)+(_0x2be15b['detail']??(_0x2be15b['ok']?_0x12934b(0x203):'failed')));const _0x2c9b27=a171_0x23dfde({'text':'Step\x205/7:\x20Removing\x20old\x20skill...','color':_0x12934b(0x230)})[_0x12934b(0x1e9)](),_0x33e1a6=execSkillsRemove(_0x30430e,_0x3bb189);_0x145c14[_0x12934b(0x1bb)](_0x33e1a6),_0x2c9b27[_0x33e1a6['ok']?_0x12934b(0x1d5):_0x12934b(0x1eb)]('Step\x205/7:\x20Remove\x20old\x20skill\x20—\x20'+(_0x33e1a6[_0x12934b(0x1e8)]??(_0x33e1a6['ok']?_0x12934b(0x203):_0x12934b(0x20b))));const _0x1fa656=a171_0x23dfde({'text':_0x12934b(0x20f),'color':_0x12934b(0x230)})[_0x12934b(0x1e9)](),_0xafdbea=execSkillsAdd(_0x30430e,_0x3bb189);_0x145c14['push'](_0xafdbea),_0x1fa656[_0xafdbea['ok']?_0x12934b(0x1d5):_0x12934b(0x1eb)](_0x12934b(0x1c4)+(_0xafdbea['detail']??(_0xafdbea['ok']?_0x12934b(0x203):_0x12934b(0x20b))));const _0x2be330=a171_0x23dfde({'text':_0x12934b(0x1c8),'color':_0x12934b(0x230)})['start'](),_0x4edd8a=execUpgradeSdk(_0x28d115);_0x145c14[_0x12934b(0x1bb)](_0x4edd8a),_0x2be330[_0x4edd8a['ok']?_0x12934b(0x1d5):_0x12934b(0x1eb)](_0x12934b(0x22d)+(_0x4edd8a[_0x12934b(0x1e8)]??(_0x4edd8a['ok']?'done':'failed'))),printSummary(_0x145c14);const _0x2c91da=_0x145c14[_0x12934b(0x1d2)](_0x5798d2=>!_0x5798d2['ok']);_0x2c91da?console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x215)]('Some\x20steps\x20failed.\x20Check\x20the\x20summary\x20above\x20for\x20details.')):console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x1e1)](_0x12934b(0x1c9))),_0x4edd8a['ok']&&_0x28d115[_0x12934b(0x210)]&&(console['log'](''),console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x225)][_0x12934b(0x230)](_0x12934b(0x22f))),console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x230)](_0x12934b(0x1d8))),console[_0x12934b(0x233)](''),console['log'](a171_0x5a8535['white']('\x20\x20npm\x20install')),console[_0x12934b(0x233)](a171_0x5a8535['white']('\x20\x20#\x20or')),console[_0x12934b(0x233)](a171_0x5a8535[_0x12934b(0x22a)](_0x12934b(0x1bd))),console[_0x12934b(0x233)](''));}
@@ -1 +1 @@
1
- const a178_0x54d279=a178_0x567f;(function(_0x3b441f,_0x318c0e){const _0x2b8559=a178_0x567f,_0x1d53b3=_0x3b441f();while(!![]){try{const _0x12671d=-parseInt(_0x2b8559(0x1ae))/0x1*(-parseInt(_0x2b8559(0x1b8))/0x2)+-parseInt(_0x2b8559(0x1b9))/0x3+-parseInt(_0x2b8559(0x1c8))/0x4*(parseInt(_0x2b8559(0x1b0))/0x5)+-parseInt(_0x2b8559(0x1f7))/0x6+-parseInt(_0x2b8559(0x1f4))/0x7*(parseInt(_0x2b8559(0x1d4))/0x8)+-parseInt(_0x2b8559(0x1c7))/0x9+-parseInt(_0x2b8559(0x1fb))/0xa*(-parseInt(_0x2b8559(0x1fd))/0xb);if(_0x12671d===_0x318c0e)break;else _0x1d53b3['push'](_0x1d53b3['shift']());}catch(_0x2a16b6){_0x1d53b3['push'](_0x1d53b3['shift']());}}}(a178_0x5abe,0x8c9bf));import{apiDefinitions}from'../commands/api/index.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{pageDefinitions}from'../commands/page/index.js';import{dataDefinitions}from'../commands/data/index.js';import{dbDefinitions}from'../commands/db/index.js';import{codegenDefinitions}from'../commands/codegen/index.js';import{menuDefinitions}from'../commands/menu/index.js';function a178_0x567f(_0x4b17c2,_0x570f61){_0x4b17c2=_0x4b17c2-0x1a2;const _0x5abe87=a178_0x5abe();let _0x567f4a=_0x5abe87[_0x4b17c2];return _0x567f4a;}import{taskDefinitions}from'../commands/task/index.js';import{tenantDefinitions}from'../commands/tenant/index.js';import{roleDefinitions}from'../commands/role/index.js';function a178_0x5abe(){const _0x595214=['\x20\x20[write]','120qbeWuo','rabetbase\x20cli-skill\x20install','2225377SZCoCb','rabetbase\x20kb\x20detail','\x20\x20[','Schema','SQL\x20Queries','rabetbase\x20kb\x20delete','sql:new','rabetbase\x20sql\x20create','preview','Company\x20Knowledge\x20Base','rabetbase\x20bff\x20create','command','Platform\x20Issue','knowledge-base:create','skills:install','5668SOalga','API\x20Development','119905mqudKT','filter','build','`\x20has\x20been\x20removed.','login','App\x20Management','app:add','logout','208JXkeco','171333CNWCvs','rabetbase\x20workspace\x20remove\x20<name>','`rabetbase\x20','set','app:remove','knowledge-base:detail','Notification\x20Configuration','map','skill:','rabetbase\x20workspace\x20use\x20--app\x20<name>','from','skills:','push','CLI\x20Built-in\x20Skill','9324684ArlHfi','4fszmtW','defaultCommand','hidden','description','get','rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml','sql:save','knowledge-base:list','Diagnostics','values','Run\x20any\x20package.json\x20script','Async\x20Tasks','8nngIja','Tenant\x20Members','length','start','bff:new','`\x20instead.','install','create','rabetbase\x20kb\x20update','rabetbase\x20run\x20build','BFF\x20Scripts','\x20\x20[high-risk-write]','Workspace','Runtime\x20App\x20Config\x20Management','wildcardDef','Run\x20Scripts','commands','isSingleCommand','risk','rabetbase\x20run\x20start','rabetbase\x20auth\x20logout','service','project:init','rabetbase\x20app\x20list\x20--remote','Self\x20Update','Permissions','has','Quick\x20Start','skill:install','rabetbase\x20run\x20preview','Authentication','OCR','7279447xnODgw','Configuration','<script>','1704792LVXSnO','Smart\x20List\x20Pages\x20&\x20React\x20Custom\x20Pages','Instant\x20API'];a178_0x5abe=function(){return _0x595214;};return a178_0x5abe();}import{permitDefinitions}from'../commands/permit/index.js';import{appDefinitions}from'../commands/app/index.js';import{appConfigDefinitions}from'../commands/app-config/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{notificationDefinitions}from'../commands/notification/index.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/index.js';import{doctorDefinition}from'../commands/doctor.js';import{updateDefinition}from'../commands/cli-update.js';import{schemaDefinition}from'../commands/schema.js';import{issueDefinitions}from'../commands/issue/index.js';import{fileDefinitions}from'../commands/file/index.js';import{ocrDefinitions}from'../commands/ocr/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{userAccountDefinitions}from'../commands/user-account/index.js';import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{projectDefinitions}from'../commands/project/index.js';import{initDefinitions}from'../commands/init/index.js';import{runDefinition}from'../commands/run/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0xbc7995){const _0xf040e1=a178_0x567f;for(const _0x36837b of _0xbc7995){definitions[_0xf040e1(0x1bc)](_0x36837b['service']+':'+_0x36837b[_0xf040e1(0x1aa)],_0x36837b);let _0x112fe1=serviceGroups[_0xf040e1(0x1cc)](_0x36837b[_0xf040e1(0x1e9)]);!_0x112fe1&&(_0x112fe1=[],serviceGroups[_0xf040e1(0x1bc)](_0x36837b[_0xf040e1(0x1e9)],_0x112fe1)),_0x112fe1[_0xf040e1(0x1c5)](_0x36837b);}}function registerDeclarativeService(_0xfe6dfe,_0x41591c,_0x32d42a){const _0x34dec0=a178_0x567f;registerDefinitions(_0x41591c);_0x32d42a?.[_0x34dec0(0x1e2)]&&registerDefinitions([_0x32d42a[_0x34dec0(0x1e2)]]);const _0x3a5ee8=_0x9b48c7=>_0x9b48c7==='read'?'':_0x9b48c7==='write'?_0x34dec0(0x1fa):_0x34dec0(0x1df),_0x2dc02f={'service':_0x41591c[0x0][_0x34dec0(0x1e9)],'label':_0xfe6dfe,'commands':_0x41591c[_0x34dec0(0x1b1)](_0x232633=>!_0x232633[_0x34dec0(0x1ca)])[_0x34dec0(0x1c0)](_0x2b9760=>({'command':_0x2b9760[_0x34dec0(0x1aa)],'description':_0x2b9760[_0x34dec0(0x1cb)],'tag':_0x3a5ee8(_0x2b9760[_0x34dec0(0x1e6)])})),'declarative':!![],'defaultCommand':_0x32d42a?.[_0x34dec0(0x1c9)]??(_0x32d42a?.[_0x34dec0(0x1e5)]?_0x41591c[0x0]['command']:undefined),'wildcardDef':_0x32d42a?.['wildcardDef'],'isSingleCommand':_0x32d42a?.[_0x34dec0(0x1e5)]};serviceRegistry[_0x34dec0(0x1c5)](_0x2dc02f),serviceByName['set'](_0x2dc02f[_0x34dec0(0x1e9)],_0x2dc02f);}registerDeclarativeService(a178_0x54d279(0x1ef),initDefinitions,{'defaultCommand':'run','isSingleCommand':!![]}),registerDeclarativeService('Project',projectDefinitions),registerDeclarativeService(a178_0x54d279(0x1e0),workspaceDefinitions),registerDeclarativeService(a178_0x54d279(0x1b5),appDefinitions),registerDeclarativeService(a178_0x54d279(0x1f2),authDefinitions,{'defaultCommand':a178_0x54d279(0x1b4)}),registerDeclarativeService(a178_0x54d279(0x1d5),tenantDefinitions),registerDeclarativeService('User\x20Accounts',userAccountDefinitions),registerDeclarativeService('Dataset\x20&\x20Operations',datasetDefinitions),registerDeclarativeService(a178_0x54d279(0x1f8),pageDefinitions),registerDeclarativeService(a178_0x54d279(0x1af),apiDefinitions),registerDeclarativeService(a178_0x54d279(0x1f9),dataDefinitions),registerDeclarativeService(a178_0x54d279(0x1de),bffDefinitions),registerDeclarativeService(a178_0x54d279(0x1bf),notificationDefinitions),registerDeclarativeService(a178_0x54d279(0x1a3),sqlDefinitions),registerDeclarativeService('Database\x20Connections',dbDefinitions),registerDeclarativeService('Menu',menuDefinitions),registerDeclarativeService(a178_0x54d279(0x1d3),taskDefinitions),registerDeclarativeService('Roles',roleDefinitions),registerDeclarativeService(a178_0x54d279(0x1ed),permitDefinitions),registerDeclarativeService(a178_0x54d279(0x1e1),appConfigDefinitions),registerDeclarativeService(a178_0x54d279(0x1a8),kbDefinitions),registerDeclarativeService(a178_0x54d279(0x1ab),issueDefinitions),registerDeclarativeService('File',fileDefinitions),registerDeclarativeService(a178_0x54d279(0x1f3),ocrDefinitions),registerDeclarativeService('Code\x20Generation',codegenDefinitions),registerDeclarativeService(a178_0x54d279(0x1f5),configDefinitions),registerDeclarativeService(a178_0x54d279(0x1d0),[doctorDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a178_0x54d279(0x1a2),[schemaDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a178_0x54d279(0x1ec),[updateDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a178_0x54d279(0x1c6),cliSkillDefinitions,{'defaultCommand':a178_0x54d279(0x1da)}),registerDeclarativeService('Logs',logsDefinitions,{'defaultCommand':'show'}),registerDeclarativeService(a178_0x54d279(0x1e3),[runDefinition],{'wildcardDef':runDefinition});{const last=serviceRegistry[serviceRegistry[a178_0x54d279(0x1d6)]-0x1];last[a178_0x54d279(0x1e4)]=[{'command':a178_0x54d279(0x1f6),'description':a178_0x54d279(0x1d2),'tag':a178_0x54d279(0x1ff)+runDefinition['risk']+']'}];}const REMOVED_COMMAND_REPLACEMENTS=new Map([[a178_0x54d279(0x1ce),a178_0x54d279(0x1cd)],[a178_0x54d279(0x1d8),a178_0x54d279(0x1a9)],[a178_0x54d279(0x1a5),a178_0x54d279(0x1a6)],['menu:update','rabetbase\x20menu\x20asset-update'],[a178_0x54d279(0x1ea),'rabetbase\x20workspace\x20init\x20--appcode\x20<code>'],[a178_0x54d279(0x1c1),'rabetbase\x20cli-skill\x20install'],[a178_0x54d279(0x1f0),a178_0x54d279(0x1fc)],[a178_0x54d279(0x1c4),a178_0x54d279(0x1fc)],[a178_0x54d279(0x1ad),a178_0x54d279(0x1fc)],['app:remote',a178_0x54d279(0x1eb)],['app:use',a178_0x54d279(0x1c2)],[a178_0x54d279(0x1b6),'rabetbase\x20workspace\x20add\x20<name>\x20--appcode\x20<code>'],[a178_0x54d279(0x1bd),a178_0x54d279(0x1ba)],[a178_0x54d279(0x1cf),'rabetbase\x20kb\x20list'],[a178_0x54d279(0x1be),a178_0x54d279(0x1fe)],[a178_0x54d279(0x1ac),'rabetbase\x20kb\x20create'],['knowledge-base:update',a178_0x54d279(0x1dc)],['knowledge-base:delete',a178_0x54d279(0x1a4)]]),REMOVED_FLAT_COMMAND_REPLACEMENTS=new Map([[a178_0x54d279(0x1db),'rabetbase\x20project\x20create\x20<project-name>'],[a178_0x54d279(0x1d7),a178_0x54d279(0x1e7)],[a178_0x54d279(0x1b2),a178_0x54d279(0x1dd)],[a178_0x54d279(0x1a7),a178_0x54d279(0x1f1)],[a178_0x54d279(0x1b7),a178_0x54d279(0x1e8)]]);export function resolveRemovedCommand(_0x584068,_0x56b2d3){const _0x10c69d=a178_0x54d279;if(!_0x584068)return undefined;const _0x3c22d5=REMOVED_COMMAND_REPLACEMENTS[_0x10c69d(0x1cc)](_0x584068+':'+(_0x56b2d3??'')),_0x1c8afb=REMOVED_FLAT_COMMAND_REPLACEMENTS[_0x10c69d(0x1cc)](_0x584068),_0x1572f1=_0x3c22d5??_0x1c8afb;if(!_0x1572f1)return undefined;const _0x2a7307=_0x1c8afb?_0x584068:_0x56b2d3?_0x584068+'\x20'+_0x56b2d3:_0x584068;return{'command':_0x2a7307,'message':_0x10c69d(0x1bb)+_0x2a7307+_0x10c69d(0x1b3),'hint':'Use\x20`'+_0x1572f1+_0x10c69d(0x1d9)};}export function findDefinition(_0x316c13,_0x1ebe80){return definitions['get'](_0x316c13+':'+_0x1ebe80);}export function isKnownService(_0x26514f){const _0x1a2434=a178_0x54d279;return serviceByName[_0x1a2434(0x1ee)](_0x26514f);}export function isDeclarativeService(_0x6df09c){const _0x598532=a178_0x54d279;return serviceGroups['has'](_0x6df09c)||serviceByName[_0x598532(0x1cc)](_0x6df09c)?.['wildcardDef']!==undefined;}export function getServiceEntry(_0x4f024d){return serviceByName['get'](_0x4f024d);}export function getLegacyHandler(_0x380f3e,_0x4084d2){return undefined;}export function getAllDefinitions(){const _0x6b8f30=a178_0x54d279;return Array[_0x6b8f30(0x1c3)](definitions[_0x6b8f30(0x1d1)]());}
1
+ const a172_0x581ed5=a172_0x1384;(function(_0x486023,_0x3767b8){const _0x445e8f=a172_0x1384,_0x27d1be=_0x486023();while(!![]){try{const _0x3a0d7d=parseInt(_0x445e8f(0x102))/0x1+-parseInt(_0x445e8f(0xf6))/0x2*(-parseInt(_0x445e8f(0xe8))/0x3)+parseInt(_0x445e8f(0xd9))/0x4*(parseInt(_0x445e8f(0xe3))/0x5)+parseInt(_0x445e8f(0xce))/0x6*(parseInt(_0x445e8f(0xb6))/0x7)+-parseInt(_0x445e8f(0xe7))/0x8*(parseInt(_0x445e8f(0xbb))/0x9)+-parseInt(_0x445e8f(0xcf))/0xa+-parseInt(_0x445e8f(0xcd))/0xb;if(_0x3a0d7d===_0x3767b8)break;else _0x27d1be['push'](_0x27d1be['shift']());}catch(_0x10ab86){_0x27d1be['push'](_0x27d1be['shift']());}}}(a172_0x4f95,0x21361));import{apiDefinitions}from'../commands/api/index.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{pageDefinitions}from'../commands/page/index.js';function a172_0x1384(_0x5b48e6,_0x59e37c){_0x5b48e6=_0x5b48e6-0xb2;const _0x4f955d=a172_0x4f95();let _0x138406=_0x4f955d[_0x5b48e6];return _0x138406;}import{dataDefinitions}from'../commands/data/index.js';import{dbDefinitions}from'../commands/db/index.js';import{codegenDefinitions}from'../commands/codegen/index.js';import{menuDefinitions}from'../commands/menu/index.js';import{taskDefinitions}from'../commands/task/index.js';import{tenantDefinitions}from'../commands/tenant/index.js';import{roleDefinitions}from'../commands/role/index.js';import{appDefinitions}from'../commands/app/index.js';function a172_0x4f95(){const _0x44c768=['Dataset\x20&\x20Operations','login','app:remove','write','knowledge-base:create','skill:install','rabetbase\x20kb\x20detail','1180515hbWQrq','values','rabetbase\x20cli-skill\x20install','SQL\x20Queries','432NMCOeC','3ltIQUf','rabetbase\x20run\x20build','rabetbase\x20bff\x20create','Instant\x20API','permit:role-apis-set','rabetbase\x20workspace\x20init\x20--appcode\x20<code>','get','isSingleCommand','CLI\x20Built-in\x20Skill','push','BFF\x20Scripts','permit:page-set','length','permit:page-get','355302sixpQh','rabetbase\x20workspace\x20remove\x20<name>','Company\x20Knowledge\x20Base','skill:','Run\x20any\x20package.json\x20script','Logs','rabetbase\x20kb\x20delete','run','\x20\x20[write]','command','Project','Workspace','98827pRacbn','role:create','hidden','\x20\x20[','Self\x20Update','description','risk','map','read','Menu','rabetbase\x20kb\x20list','set','service','No\x20executable\x20CLI\x20replacement\x20is\x20available\x20under\x20the\x20current\x20server\x20authentication\x20contract.','rabetbase\x20kb\x20update','`\x20has\x20been\x20removed.','Database\x20Connections','OCR','Quick\x20Start','14YzByUh','Use\x20`','sql:new','rabetbase\x20role\x20list','rabetbase\x20run\x20preview','13473ADLRIr','app:add','rabetbase\x20app\x20list\x20--remote','knowledge-base:delete','rabetbase\x20workspace\x20add\x20<name>\x20--appcode\x20<code>','File','`\x20instead.','<script>','rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml','Schema','from','start','Run\x20Scripts','sql:save','knowledge-base:list','preview','commands','wildcardDef','2848098TLeAZa','285378YPRway','1319180QOVEPJ','bff:new','menu:update','create','show','logout','skills:install','Tenant\x20Members','has','API\x20Development','4uvqOqn','knowledge-base:update','Authentication'];a172_0x4f95=function(){return _0x44c768;};return a172_0x4f95();}import{appConfigDefinitions}from'../commands/app-config/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{notificationDefinitions}from'../commands/notification/index.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/index.js';import{doctorDefinition}from'../commands/doctor.js';import{updateDefinition}from'../commands/cli-update.js';import{schemaDefinition}from'../commands/schema.js';import{issueDefinitions}from'../commands/issue/index.js';import{fileDefinitions}from'../commands/file/index.js';import{ocrDefinitions}from'../commands/ocr/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{userAccountDefinitions}from'../commands/user-account/index.js';import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{projectDefinitions}from'../commands/project/index.js';import{initDefinitions}from'../commands/init/index.js';import{runDefinition}from'../commands/run/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x59c916){const _0x13a4e6=a172_0x1384;for(const _0x529508 of _0x59c916){definitions[_0x13a4e6(0x10d)](_0x529508[_0x13a4e6(0x10e)]+':'+_0x529508[_0x13a4e6(0xff)],_0x529508);let _0x111878=serviceGroups['get'](_0x529508[_0x13a4e6(0x10e)]);!_0x111878&&(_0x111878=[],serviceGroups[_0x13a4e6(0x10d)](_0x529508[_0x13a4e6(0x10e)],_0x111878)),_0x111878[_0x13a4e6(0xf1)](_0x529508);}}function registerDeclarativeService(_0x32c130,_0xd1c07e,_0x4e25b0){const _0x2b8557=a172_0x1384;registerDefinitions(_0xd1c07e);_0x4e25b0?.[_0x2b8557(0xcc)]&&registerDefinitions([_0x4e25b0[_0x2b8557(0xcc)]]);const _0x71c20f=_0x33c23f=>_0x33c23f===_0x2b8557(0x10a)?'':_0x33c23f===_0x2b8557(0xdf)?_0x2b8557(0xfe):'\x20\x20[high-risk-write]',_0x349797={'service':_0xd1c07e[0x0][_0x2b8557(0x10e)],'label':_0x32c130,'commands':_0xd1c07e['filter'](_0x46cb97=>!_0x46cb97[_0x2b8557(0x104)])[_0x2b8557(0x109)](_0x1dbfbe=>({'command':_0x1dbfbe[_0x2b8557(0xff)],'description':_0x1dbfbe[_0x2b8557(0x107)],'tag':_0x71c20f(_0x1dbfbe[_0x2b8557(0x108)])})),'declarative':!![],'defaultCommand':_0x4e25b0?.['defaultCommand']??(_0x4e25b0?.[_0x2b8557(0xef)]?_0xd1c07e[0x0][_0x2b8557(0xff)]:undefined),'wildcardDef':_0x4e25b0?.[_0x2b8557(0xcc)],'isSingleCommand':_0x4e25b0?.[_0x2b8557(0xef)]};serviceRegistry[_0x2b8557(0xf1)](_0x349797),serviceByName[_0x2b8557(0x10d)](_0x349797['service'],_0x349797);}registerDeclarativeService(a172_0x581ed5(0xb5),initDefinitions,{'defaultCommand':a172_0x581ed5(0xfd),'isSingleCommand':!![]}),registerDeclarativeService(a172_0x581ed5(0x100),projectDefinitions),registerDeclarativeService(a172_0x581ed5(0x101),workspaceDefinitions),registerDeclarativeService('App\x20Management',appDefinitions),registerDeclarativeService(a172_0x581ed5(0xdb),authDefinitions,{'defaultCommand':a172_0x581ed5(0xdd)}),registerDeclarativeService(a172_0x581ed5(0xd6),tenantDefinitions),registerDeclarativeService('User\x20Accounts',userAccountDefinitions),registerDeclarativeService(a172_0x581ed5(0xdc),datasetDefinitions),registerDeclarativeService('Smart\x20List\x20Pages\x20&\x20React\x20Custom\x20Pages',pageDefinitions),registerDeclarativeService(a172_0x581ed5(0xd8),apiDefinitions),registerDeclarativeService(a172_0x581ed5(0xeb),dataDefinitions),registerDeclarativeService(a172_0x581ed5(0xf2),bffDefinitions),registerDeclarativeService('Notification\x20Configuration',notificationDefinitions),registerDeclarativeService(a172_0x581ed5(0xe6),sqlDefinitions),registerDeclarativeService(a172_0x581ed5(0xb3),dbDefinitions),registerDeclarativeService(a172_0x581ed5(0x10b),menuDefinitions),registerDeclarativeService('Async\x20Tasks',taskDefinitions),registerDeclarativeService('Roles',roleDefinitions),registerDeclarativeService('Runtime\x20App\x20Config\x20Management',appConfigDefinitions),registerDeclarativeService(a172_0x581ed5(0xf8),kbDefinitions),registerDeclarativeService('Platform\x20Issue',issueDefinitions),registerDeclarativeService(a172_0x581ed5(0xc0),fileDefinitions),registerDeclarativeService(a172_0x581ed5(0xb4),ocrDefinitions),registerDeclarativeService('Code\x20Generation',codegenDefinitions),registerDeclarativeService('Configuration',configDefinitions),registerDeclarativeService('Diagnostics',[doctorDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a172_0x581ed5(0xc4),[schemaDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a172_0x581ed5(0x106),[updateDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a172_0x581ed5(0xf0),cliSkillDefinitions,{'defaultCommand':'install'}),registerDeclarativeService(a172_0x581ed5(0xfb),logsDefinitions,{'defaultCommand':a172_0x581ed5(0xd3)}),registerDeclarativeService(a172_0x581ed5(0xc7),[runDefinition],{'wildcardDef':runDefinition});{const last=serviceRegistry[serviceRegistry[a172_0x581ed5(0xf4)]-0x1];last[a172_0x581ed5(0xcb)]=[{'command':a172_0x581ed5(0xc2),'description':a172_0x581ed5(0xfa),'tag':a172_0x581ed5(0x105)+runDefinition[a172_0x581ed5(0x108)]+']'}];}const REMOVED_COMMAND_REPLACEMENTS=new Map([[a172_0x581ed5(0xc8),a172_0x581ed5(0xc3)],[a172_0x581ed5(0xd0),a172_0x581ed5(0xea)],[a172_0x581ed5(0xb8),'rabetbase\x20sql\x20create'],[a172_0x581ed5(0xd1),'rabetbase\x20menu\x20asset-update'],['project:init',a172_0x581ed5(0xed)],[a172_0x581ed5(0xf9),a172_0x581ed5(0xe5)],[a172_0x581ed5(0xe1),a172_0x581ed5(0xe5)],['skills:',a172_0x581ed5(0xe5)],[a172_0x581ed5(0xd5),a172_0x581ed5(0xe5)],['app:remote',a172_0x581ed5(0xbd)],['app:use','rabetbase\x20workspace\x20use\x20--app\x20<name>'],[a172_0x581ed5(0xbc),a172_0x581ed5(0xbf)],[a172_0x581ed5(0xde),a172_0x581ed5(0xf7)],[a172_0x581ed5(0xc9),a172_0x581ed5(0x10c)],['knowledge-base:detail',a172_0x581ed5(0xe2)],[a172_0x581ed5(0xe0),'rabetbase\x20kb\x20create'],[a172_0x581ed5(0xda),a172_0x581ed5(0x110)],[a172_0x581ed5(0xbe),a172_0x581ed5(0xfc)],[a172_0x581ed5(0x103),a172_0x581ed5(0xb9)]]),REMOVED_COMMAND_HINTS=new Map([[a172_0x581ed5(0xf5),a172_0x581ed5(0x10f)],[a172_0x581ed5(0xf3),'No\x20executable\x20CLI\x20replacement\x20is\x20available\x20under\x20the\x20current\x20server\x20authentication\x20contract.'],['permit:role-menus',a172_0x581ed5(0x10f)],['permit:role-menus-set','No\x20executable\x20CLI\x20replacement\x20is\x20available\x20under\x20the\x20current\x20server\x20authentication\x20contract.'],[a172_0x581ed5(0xec),'No\x20executable\x20CLI\x20replacement\x20is\x20available\x20under\x20the\x20current\x20server\x20authentication\x20contract.']]),REMOVED_FLAT_COMMAND_REPLACEMENTS=new Map([[a172_0x581ed5(0xd2),'rabetbase\x20project\x20create\x20<project-name>'],[a172_0x581ed5(0xc6),'rabetbase\x20run\x20start'],['build',a172_0x581ed5(0xe9)],[a172_0x581ed5(0xca),a172_0x581ed5(0xba)],[a172_0x581ed5(0xd4),'rabetbase\x20auth\x20logout']]);export function resolveRemovedCommand(_0xa1f263,_0xb984b1){const _0x360146=a172_0x581ed5;if(!_0xa1f263)return undefined;const _0x1205e0=REMOVED_COMMAND_REPLACEMENTS[_0x360146(0xee)](_0xa1f263+':'+(_0xb984b1??'')),_0x4676c1=REMOVED_FLAT_COMMAND_REPLACEMENTS[_0x360146(0xee)](_0xa1f263),_0x95db88=_0x1205e0??_0x4676c1,_0x2db330=REMOVED_COMMAND_HINTS['get'](_0xa1f263+':'+(_0xb984b1??''));if(!_0x95db88&&!_0x2db330)return undefined;const _0x2de93a=_0x4676c1?_0xa1f263:_0xb984b1?_0xa1f263+'\x20'+_0xb984b1:_0xa1f263;return{'command':_0x2de93a,'message':'`rabetbase\x20'+_0x2de93a+_0x360146(0xb2),'hint':_0x2db330??_0x360146(0xb7)+_0x95db88+_0x360146(0xc1)};}export function findDefinition(_0x2e3b0c,_0x4ca921){const _0x4bfb8f=a172_0x581ed5;return definitions[_0x4bfb8f(0xee)](_0x2e3b0c+':'+_0x4ca921);}export function isKnownService(_0x48c864){const _0x2740b0=a172_0x581ed5;return serviceByName[_0x2740b0(0xd7)](_0x48c864);}export function isDeclarativeService(_0x45c5b4){const _0x25e724=a172_0x581ed5;return serviceGroups[_0x25e724(0xd7)](_0x45c5b4)||serviceByName[_0x25e724(0xee)](_0x45c5b4)?.['wildcardDef']!==undefined;}export function getServiceEntry(_0x1b7030){return serviceByName['get'](_0x1b7030);}export function getLegacyHandler(_0x13c8f3,_0x571c0e){return undefined;}export function getAllDefinitions(){const _0x33d291=a172_0x581ed5;return Array[_0x33d291(0xc5)](definitions[_0x33d291(0xe4)]());}
@@ -1 +1 @@
1
- const a180_0x198189=a180_0x432d;(function(_0x20e11e,_0x51100e){const _0x4e4e24=a180_0x432d,_0x5f38d0=_0x20e11e();while(!![]){try{const _0x3ec9b3=-parseInt(_0x4e4e24(0x94))/0x1*(-parseInt(_0x4e4e24(0x98))/0x2)+parseInt(_0x4e4e24(0x97))/0x3*(-parseInt(_0x4e4e24(0x8f))/0x4)+-parseInt(_0x4e4e24(0x8c))/0x5*(parseInt(_0x4e4e24(0x87))/0x6)+parseInt(_0x4e4e24(0x8d))/0x7+-parseInt(_0x4e4e24(0x9a))/0x8+-parseInt(_0x4e4e24(0x8e))/0x9+-parseInt(_0x4e4e24(0x88))/0xa*(-parseInt(_0x4e4e24(0x96))/0xb);if(_0x3ec9b3===_0x51100e)break;else _0x5f38d0['push'](_0x5f38d0['shift']());}catch(_0x5e6045){_0x5f38d0['push'](_0x5f38d0['shift']());}}}(a180_0x5eaf,0xd6f4e));import{deleteAppRole}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a180_0x5eaf(){const _0x43ec83=['9448873JJTyyN','13031559IQzeil','113776KfDEmT','roleName','num','high-risk-write','Deleted\x20role\x20','1261196EFCWHN','Role\x20still\x20has\x20','12332573quaPOg','69bvygCz','2gnQwQY','role','5588600eHOXEl','\x20member(s);\x20they\x20will\x20lose\x20this\x20group.','userCount','delete','305868mQcjhP','10rayYKR','POST','\x20(id=','appCode','5JkstLA'];a180_0x5eaf=function(){return _0x43ec83;};return a180_0x5eaf();}import{asDryRunResult}from'../../commands/common/dry-run.js';function a180_0x432d(_0x260229,_0x49cb3c){_0x260229=_0x260229-0x86;const _0x5eaf41=a180_0x5eaf();let _0x432dc4=_0x5eaf41[_0x260229];return _0x432dc4;}import{assertCustomRole,getRoleById,projectRole,ROLE_ID_FLAG}from'../../commands/role/shared.js';const DELETE_PATH='/smartapi/permit/role/delete';export const roleDelete={'service':a180_0x198189(0x99),'command':'delete','description':'Delete\x20a\x20CUSTOM\x20role\x20(DEV/ADMIN\x20rejected);\x20requires\x20--yes','risk':a180_0x198189(0x92),'flags':[ROLE_ID_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0xccbe3b){const _0x391ab7=a180_0x198189,_0x1cc770=_0xccbe3b[_0x391ab7(0x91)]('id'),_0xfebec8=await getRoleById(_0xccbe3b[_0x391ab7(0x8b)],_0x1cc770);return assertCustomRole(_0xfebec8,_0x391ab7(0x86)),asDryRunResult({'operation':'delete','selector':{'appCode':_0xccbe3b[_0x391ab7(0x8b)],'roleId':_0x1cc770,'roleName':_0xfebec8[_0x391ab7(0x90)]},'before':projectRole(_0xfebec8),'after':null,'dryRun':!![],'backend':{'method':_0x391ab7(0x89),'path':DELETE_PATH},'warnings':_0xfebec8[_0x391ab7(0x9c)]>0x0?[_0x391ab7(0x95)+_0xfebec8[_0x391ab7(0x9c)]+_0x391ab7(0x9b)]:[]},{'method':_0x391ab7(0x89),'url':DELETE_PATH});},async 'execute'(_0x42e1ed){const _0x4be5d5=a180_0x198189,_0x9cab01=_0x42e1ed[_0x4be5d5(0x91)]('id'),_0x13e95e=await getRoleById(_0x42e1ed[_0x4be5d5(0x8b)],_0x9cab01);return assertCustomRole(_0x13e95e,'delete'),await deleteAppRole(_0x9cab01),{'ok':!![],'data':{'operation':_0x4be5d5(0x86),'selector':{'appCode':_0x42e1ed['appCode'],'roleId':_0x9cab01,'roleName':_0x13e95e[_0x4be5d5(0x90)]},'before':projectRole(_0x13e95e),'after':null,'dryRun':![],'backend':{'method':_0x4be5d5(0x89),'path':DELETE_PATH},'warnings':[]},'message':_0x4be5d5(0x93)+_0x13e95e['roleName']+_0x4be5d5(0x8a)+_0x9cab01+')'};}};
1
+ const a173_0x276d48=a173_0x5411;function a173_0x5411(_0x2d8f67,_0x183bf2){_0x2d8f67=_0x2d8f67-0x1db;const _0x31fcff=a173_0x31fc();let _0x54115d=_0x31fcff[_0x2d8f67];return _0x54115d;}(function(_0x2db5ec,_0x48ac44){const _0x4e523e=a173_0x5411,_0x478fbd=_0x2db5ec();while(!![]){try{const _0x268540=-parseInt(_0x4e523e(0x1ea))/0x1+parseInt(_0x4e523e(0x1eb))/0x2+parseInt(_0x4e523e(0x1dd))/0x3*(-parseInt(_0x4e523e(0x1f1))/0x4)+-parseInt(_0x4e523e(0x1ef))/0x5*(parseInt(_0x4e523e(0x1e7))/0x6)+-parseInt(_0x4e523e(0x1ec))/0x7+-parseInt(_0x4e523e(0x1ed))/0x8*(-parseInt(_0x4e523e(0x1df))/0x9)+-parseInt(_0x4e523e(0x1e1))/0xa*(-parseInt(_0x4e523e(0x1ee))/0xb);if(_0x268540===_0x48ac44)break;else _0x478fbd['push'](_0x478fbd['shift']());}catch(_0x23fa4c){_0x478fbd['push'](_0x478fbd['shift']());}}}(a173_0x31fc,0xb6dc2));import{deleteAppRole}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{assertCustomRole,getRoleById,projectRole,ROLE_ID_FLAG}from'../../commands/role/shared.js';function a173_0x31fc(){const _0x2442f0=['48GQCMOm','19580yuVUlE','2395owzevu','delete','11456jyrjfa','dev','Delete\x20a\x20CUSTOM\x20role\x20(built-in\x20roles\x20rejected);\x20requires\x20--yes','1161YupsHm','/smartapi/permit/role/delete','924534EeMoEK','Deleted\x20role\x20','16010ocPMBg','POST','high-risk-write','num','roleName','userCount','546JIOxTo','role','appCode','1293524wWmuSP','1534930LdFkgg','7273882ZvVHvd'];a173_0x31fc=function(){return _0x2442f0;};return a173_0x31fc();}const DELETE_PATH=a173_0x276d48(0x1de);export const roleDelete={'service':a173_0x276d48(0x1e8),'command':a173_0x276d48(0x1f0),'description':a173_0x276d48(0x1dc),'risk':a173_0x276d48(0x1e3),'flags':[ROLE_ID_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x55477f){const _0x5ca1d5=a173_0x276d48,_0x201c8b=_0x55477f[_0x5ca1d5(0x1e4)]('id'),_0x1964bd=await getRoleById(_0x55477f['appCode'],_0x201c8b);return assertCustomRole(_0x1964bd,'delete'),asDryRunResult({'scope':_0x5ca1d5(0x1db),'operation':_0x5ca1d5(0x1f0),'selector':{'appCode':_0x55477f[_0x5ca1d5(0x1e9)],'roleId':_0x201c8b,'roleName':_0x1964bd['roleName']},'before':projectRole(_0x1964bd),'after':null,'dryRun':!![],'backend':{'method':'POST','path':DELETE_PATH},'warnings':_0x1964bd['userCount']>0x0?['Role\x20still\x20has\x20'+_0x1964bd[_0x5ca1d5(0x1e6)]+'\x20member(s);\x20they\x20will\x20lose\x20this\x20group.']:[]},{'method':_0x5ca1d5(0x1e2),'url':DELETE_PATH});},async 'execute'(_0xa70f7f){const _0x10396f=a173_0x276d48,_0x180f35=_0xa70f7f[_0x10396f(0x1e4)]('id'),_0x56294f=await getRoleById(_0xa70f7f[_0x10396f(0x1e9)],_0x180f35);return assertCustomRole(_0x56294f,_0x10396f(0x1f0)),await deleteAppRole(_0x180f35),{'ok':!![],'data':{'scope':'dev','operation':_0x10396f(0x1f0),'selector':{'appCode':_0xa70f7f[_0x10396f(0x1e9)],'roleId':_0x180f35,'roleName':_0x56294f[_0x10396f(0x1e5)]},'before':projectRole(_0x56294f),'after':null,'dryRun':![],'backend':{'method':_0x10396f(0x1e2),'path':DELETE_PATH},'warnings':[]},'message':_0x10396f(0x1e0)+_0x56294f[_0x10396f(0x1e5)]+'\x20(id='+_0x180f35+')'};}};
@@ -1 +1 @@
1
- const a181_0x4966f0=a181_0x4089;(function(_0x5e48aa,_0xffb219){const _0x1883e3=a181_0x4089,_0x276f74=_0x5e48aa();while(!![]){try{const _0x223e4e=parseInt(_0x1883e3(0x16c))/0x1*(parseInt(_0x1883e3(0x171))/0x2)+parseInt(_0x1883e3(0x16f))/0x3*(parseInt(_0x1883e3(0x170))/0x4)+-parseInt(_0x1883e3(0x161))/0x5*(-parseInt(_0x1883e3(0x162))/0x6)+parseInt(_0x1883e3(0x166))/0x7+-parseInt(_0x1883e3(0x16a))/0x8*(parseInt(_0x1883e3(0x169))/0x9)+-parseInt(_0x1883e3(0x164))/0xa*(-parseInt(_0x1883e3(0x172))/0xb)+parseInt(_0x1883e3(0x16e))/0xc*(-parseInt(_0x1883e3(0x168))/0xd);if(_0x223e4e===_0xffb219)break;else _0x276f74['push'](_0x276f74['shift']());}catch(_0x4f9de4){_0x276f74['push'](_0x276f74['shift']());}}}(a181_0x3bf6,0x99a3e));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a181_0x4089(_0x4961ed,_0x8e594e){_0x4961ed=_0x4961ed-0x160;const _0x3bf6c6=a181_0x3bf6();let _0x408971=_0x3bf6c6[_0x4961ed];return _0x408971;}import{getRoleById,projectRole,ROLE_ID_FLAG}from'../../commands/role/shared.js';function a181_0x3bf6(){const _0x7f38fb=['11322gEddtw','4328BJYVNn','role','1212364zVriyU','detail','18483204eFabFt','34677fVsoXT','292tNiing','2fCodgQ','236643XlGvgG','read','10ZsyPjq','3253584MuFKrC','num','30YVXyoo','Role\x20','8296288WxcnVU','Show\x20a\x20single\x20role\x27s\x20detail','26sQqfoD'];a181_0x3bf6=function(){return _0x7f38fb;};return a181_0x3bf6();}export const roleDetail={'service':a181_0x4966f0(0x16b),'command':a181_0x4966f0(0x16d),'description':a181_0x4966f0(0x167),'risk':a181_0x4966f0(0x160),'flags':[ROLE_ID_FLAG,APPCODE_FLAG_OPTIONAL],async 'execute'(_0x10c49f){const _0x46c51e=a181_0x4966f0,_0x118442=_0x10c49f[_0x46c51e(0x163)]('id'),_0x2ace69=await getRoleById(_0x10c49f['appCode'],_0x118442);return{'ok':!![],'data':{'role':projectRole(_0x2ace69)},'message':_0x46c51e(0x165)+_0x2ace69['roleName']+'\x20('+_0x2ace69['roleType']+')'};}};
1
+ const a174_0x4c6733=a174_0x2146;(function(_0x459786,_0x276a55){const _0x56513d=a174_0x2146,_0x519e62=_0x459786();while(!![]){try{const _0xbaecc7=parseInt(_0x56513d(0x1d8))/0x1+parseInt(_0x56513d(0x1db))/0x2*(-parseInt(_0x56513d(0x1dd))/0x3)+parseInt(_0x56513d(0x1d1))/0x4*(-parseInt(_0x56513d(0x1de))/0x5)+-parseInt(_0x56513d(0x1cb))/0x6*(-parseInt(_0x56513d(0x1df))/0x7)+-parseInt(_0x56513d(0x1d2))/0x8+-parseInt(_0x56513d(0x1dc))/0x9*(parseInt(_0x56513d(0x1d3))/0xa)+-parseInt(_0x56513d(0x1d4))/0xb*(-parseInt(_0x56513d(0x1cd))/0xc);if(_0xbaecc7===_0x276a55)break;else _0x519e62['push'](_0x519e62['shift']());}catch(_0x4d10ac){_0x519e62['push'](_0x519e62['shift']());}}}(a174_0x123c,0xadc2c));function a174_0x123c(){const _0x601b8e=['roleType','938230eBfbGF','role','dev','60464dHeiBQ','43767GclBQV','105tZuWag','3148765pBApJg','15981ZDzAow','3522bSXeAM','appCode','21491172ZRQHGb','detail','roleName','num','4PilLKL','3281344xRUIJU','2590jOYiGd','11wadMsB','read','Role\x20'];a174_0x123c=function(){return _0x601b8e;};return a174_0x123c();}function a174_0x2146(_0x4987b1,_0x16b5e1){_0x4987b1=_0x4987b1-0x1cb;const _0x123c24=a174_0x123c();let _0x21464c=_0x123c24[_0x4987b1];return _0x21464c;}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{getRoleById,projectRole,ROLE_ID_FLAG}from'../../commands/role/shared.js';export const roleDetail={'service':a174_0x4c6733(0x1d9),'command':a174_0x4c6733(0x1ce),'description':'Show\x20a\x20single\x20role\x27s\x20detail','risk':a174_0x4c6733(0x1d5),'flags':[ROLE_ID_FLAG,APPCODE_FLAG_OPTIONAL],async 'execute'(_0x143a9a){const _0x167b7a=a174_0x4c6733,_0x18031e=_0x143a9a[_0x167b7a(0x1d0)]('id'),_0x5211cf=await getRoleById(_0x143a9a[_0x167b7a(0x1cc)],_0x18031e);return{'ok':!![],'data':{'scope':_0x167b7a(0x1da),'role':projectRole(_0x5211cf)},'message':_0x167b7a(0x1d6)+_0x5211cf[_0x167b7a(0x1cf)]+'\x20('+_0x5211cf[_0x167b7a(0x1d7)]+')'};}};
@@ -1 +1 @@
1
- function a182_0x3cc7(){const _0x2a1049=['49916SKLvIN','22980DRfLrM','747360GrGisg','9KTMNUc','89028YYruCX','6811454rWTWdd','12PlgCgp','474888wBlOiP','2nTOYXi','1132bhqisA','2589ryYMDK','1199nnunGd','63gzUzTm'];a182_0x3cc7=function(){return _0x2a1049;};return a182_0x3cc7();}(function(_0x390159,_0x3396ea){const _0x4f912c=a182_0x5472,_0x35810d=_0x390159();while(!![]){try{const _0x3e2f76=-parseInt(_0x4f912c(0x1c4))/0x1*(parseInt(_0x4f912c(0x1c9))/0x2)+parseInt(_0x4f912c(0x1c6))/0x3*(parseInt(_0x4f912c(0x1c5))/0x4)+parseInt(_0x4f912c(0x1cb))/0x5+-parseInt(_0x4f912c(0x1cd))/0x6*(-parseInt(_0x4f912c(0x1c8))/0x7)+-parseInt(_0x4f912c(0x1c3))/0x8*(parseInt(_0x4f912c(0x1cc))/0x9)+parseInt(_0x4f912c(0x1ca))/0xa*(parseInt(_0x4f912c(0x1c7))/0xb)+parseInt(_0x4f912c(0x1c2))/0xc*(-parseInt(_0x4f912c(0x1ce))/0xd);if(_0x3e2f76===_0x3396ea)break;else _0x35810d['push'](_0x35810d['shift']());}catch(_0x113fc8){_0x35810d['push'](_0x35810d['shift']());}}}(a182_0x3cc7,0x2346a));import{roleList}from'../../commands/role/list.js';import{roleDetail}from'../../commands/role/detail.js';import{roleCreate}from'../../commands/role/create.js';function a182_0x5472(_0x3a1298,_0x13b534){_0x3a1298=_0x3a1298-0x1c2;const _0x3cc7c3=a182_0x3cc7();let _0x54724=_0x3cc7c3[_0x3a1298];return _0x54724;}import{roleUpdate}from'../../commands/role/update.js';import{roleDelete}from'../../commands/role/delete.js';import{roleUserResolve}from'../../commands/role/user-resolve.js';import{roleUserAdd}from'../../commands/role/user-add.js';import{roleUserRemove}from'../../commands/role/user-remove.js';export const roleDefinitions=[roleList,roleDetail,roleCreate,roleUpdate,roleDelete,roleUserResolve,roleUserAdd,roleUserRemove];
1
+ (function(_0x360449,_0x39f640){const _0x2c7c15=a175_0x3296,_0x381284=_0x360449();while(!![]){try{const _0x534ca6=parseInt(_0x2c7c15(0x1cd))/0x1*(-parseInt(_0x2c7c15(0x1d0))/0x2)+-parseInt(_0x2c7c15(0x1cc))/0x3*(-parseInt(_0x2c7c15(0x1cf))/0x4)+-parseInt(_0x2c7c15(0x1d3))/0x5*(parseInt(_0x2c7c15(0x1d7))/0x6)+-parseInt(_0x2c7c15(0x1ce))/0x7*(-parseInt(_0x2c7c15(0x1d8))/0x8)+-parseInt(_0x2c7c15(0x1d4))/0x9+parseInt(_0x2c7c15(0x1d6))/0xa*(parseInt(_0x2c7c15(0x1d5))/0xb)+parseInt(_0x2c7c15(0x1d1))/0xc*(parseInt(_0x2c7c15(0x1d2))/0xd);if(_0x534ca6===_0x39f640)break;else _0x381284['push'](_0x381284['shift']());}catch(_0x1feeba){_0x381284['push'](_0x381284['shift']());}}}(a175_0x276b,0x43af6));function a175_0x3296(_0x33b174,_0x2fa5f0){_0x33b174=_0x33b174-0x1cc;const _0x276b20=a175_0x276b();let _0x329681=_0x276b20[_0x33b174];return _0x329681;}import{roleList}from'../../commands/role/list.js';import{roleDetail}from'../../commands/role/detail.js';import{roleUpdate}from'../../commands/role/update.js';function a175_0x276b(){const _0x1aa1f3=['112eaBzSK','6cSDpUg','1ZjNMvA','241451OwAMEY','746980PXBucl','1013918pKsmhj','7948956wPaHxx','13PUSGxt','5kobGtt','3909132jKrVii','11pCKodW','1414860nKmSRm','2650476VyZdAr'];a175_0x276b=function(){return _0x1aa1f3;};return a175_0x276b();}import{roleDelete}from'../../commands/role/delete.js';import{roleUserResolve}from'../../commands/role/user-resolve.js';import{roleUserAdd}from'../../commands/role/user-add.js';import{roleUserRemove}from'../../commands/role/user-remove.js';export const roleDefinitions=[roleList,roleDetail,roleUpdate,roleDelete,roleUserResolve,roleUserAdd,roleUserRemove];
@@ -1 +1 @@
1
- const a183_0x418e6c=a183_0x4ea3;(function(_0x1b50d7,_0x215efa){const _0x57183d=a183_0x4ea3,_0x46e176=_0x1b50d7();while(!![]){try{const _0x58542e=-parseInt(_0x57183d(0x1e9))/0x1+-parseInt(_0x57183d(0x1f1))/0x2+-parseInt(_0x57183d(0x1da))/0x3*(parseInt(_0x57183d(0x1e6))/0x4)+-parseInt(_0x57183d(0x1dc))/0x5+parseInt(_0x57183d(0x1f0))/0x6+-parseInt(_0x57183d(0x1d9))/0x7+-parseInt(_0x57183d(0x1e4))/0x8*(-parseInt(_0x57183d(0x1e8))/0x9);if(_0x58542e===_0x215efa)break;else _0x46e176['push'](_0x46e176['shift']());}catch(_0x40a988){_0x46e176['push'](_0x46e176['shift']());}}}(a183_0x525c,0x44d68));import{listAppRoles}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a183_0x525c(){const _0x2553a0=['toUpperCase','appCode','Use\x20one\x20of:\x20','Page\x20index\x20(1-based)','type','number','string','96MiMflC','role','8XSKZLA','filter','1083897MeZOIs','345492MErYnz','ADMIN','Invalid\x20--type\x20\x22','--pagesize\x20must\x20be\x20between\x201\x20and\x20100.','--page\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x201.','join','pagesize','1322472ztqtQL','570360VEshYN','map','page','USER','str','Page\x20size\x20(1-100)','\x20role(s)','validation','num','trim','includes','length','CUSTOM','3354652poRiOd','290688okAEgV','Filter\x20by\x20role\x20type','399740lLjblK'];a183_0x525c=function(){return _0x2553a0;};return a183_0x525c();}function a183_0x4ea3(_0x5135af,_0x1a4561){_0x5135af=_0x5135af-0x1cd;const _0x525c31=a183_0x525c();let _0x4ea3fd=_0x525c31[_0x5135af];return _0x4ea3fd;}import{projectRole}from'../../commands/role/shared.js';const ROLE_TYPES=[a183_0x418e6c(0x1ea),'DEV',a183_0x418e6c(0x1cf),a183_0x418e6c(0x1d8)];export const roleList={'service':a183_0x418e6c(0x1e5),'command':'list','description':'List\x20user\x20groups\x20(roles)\x20for\x20the\x20current\x20app','risk':'read','flags':[APPCODE_FLAG_OPTIONAL,{'name':a183_0x418e6c(0x1e1),'type':a183_0x418e6c(0x1e3),'required':![],'description':a183_0x418e6c(0x1db),'enum':ROLE_TYPES},{'name':a183_0x418e6c(0x1ce),'type':'number','description':a183_0x418e6c(0x1e0),'default':0x1},{'name':a183_0x418e6c(0x1ef),'type':a183_0x418e6c(0x1e2),'description':a183_0x418e6c(0x1d1),'default':0x64}],async 'validate'(_0x76bb01){const _0x4a6b34=a183_0x418e6c,_0x79476b=_0x76bb01[_0x4a6b34(0x1d0)](_0x4a6b34(0x1e1))[_0x4a6b34(0x1d5)]();if(_0x79476b&&!ROLE_TYPES[_0x4a6b34(0x1d6)](_0x79476b[_0x4a6b34(0x1dd)]()))throw CliErrors[_0x4a6b34(0x1d3)](_0x4a6b34(0x1eb)+_0x79476b+'\x22.',_0x4a6b34(0x1df)+ROLE_TYPES[_0x4a6b34(0x1ee)](',\x20')+'.');const _0xf03476=_0x76bb01[_0x4a6b34(0x1d4)](_0x4a6b34(0x1ce),0x1),_0xc6fa9f=_0x76bb01[_0x4a6b34(0x1d4)](_0x4a6b34(0x1ef),0x64);if(_0xf03476<0x1)throw CliErrors[_0x4a6b34(0x1d3)](_0x4a6b34(0x1ed));if(_0xc6fa9f<0x1||_0xc6fa9f>0x64)throw CliErrors['validation'](_0x4a6b34(0x1ec));},async 'execute'(_0x21819d){const _0x3d4bfa=a183_0x418e6c,_0x4158b9=_0x21819d['num'](_0x3d4bfa(0x1ce),0x1)||0x1,_0x5eee29=_0x21819d['num'](_0x3d4bfa(0x1ef),0x64)||0x64,_0x264a7f=_0x21819d[_0x3d4bfa(0x1d0)]('type')[_0x3d4bfa(0x1d5)]()[_0x3d4bfa(0x1dd)](),{items:_0x3f042e,paging:_0x285844}=await listAppRoles(_0x21819d[_0x3d4bfa(0x1de)],{'currentPage':_0x4158b9,'pageSize':_0x5eee29}),_0x3618d6=_0x264a7f?_0x3f042e[_0x3d4bfa(0x1e7)](_0x237578=>_0x237578['roleType']===_0x264a7f):_0x3f042e,_0x5bb6d5=_0x3618d6[_0x3d4bfa(0x1cd)](projectRole);return{'ok':!![],'data':{'roles':_0x5bb6d5,'paging':_0x285844},'message':'Found\x20'+_0x5bb6d5[_0x3d4bfa(0x1d7)]+_0x3d4bfa(0x1d2)};}};
1
+ const a176_0x223a5a=a176_0x1184;(function(_0x4421df,_0x3f4789){const _0x54a4aa=a176_0x1184,_0x47cab2=_0x4421df();while(!![]){try{const _0x2b6bc7=parseInt(_0x54a4aa(0x1a9))/0x1*(-parseInt(_0x54a4aa(0x19a))/0x2)+parseInt(_0x54a4aa(0x195))/0x3*(-parseInt(_0x54a4aa(0x1a5))/0x4)+-parseInt(_0x54a4aa(0x197))/0x5*(parseInt(_0x54a4aa(0x180))/0x6)+parseInt(_0x54a4aa(0x183))/0x7*(parseInt(_0x54a4aa(0x1a4))/0x8)+parseInt(_0x54a4aa(0x191))/0x9*(parseInt(_0x54a4aa(0x18d))/0xa)+-parseInt(_0x54a4aa(0x1a0))/0xb+parseInt(_0x54a4aa(0x19f))/0xc;if(_0x2b6bc7===_0x3f4789)break;else _0x47cab2['push'](_0x47cab2['shift']());}catch(_0x5ef3d1){_0x47cab2['push'](_0x47cab2['shift']());}}}(a176_0x9fcd,0xaced7));import{listAppRoles}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a176_0x9fcd(){const _0x4df787=['trim','Filter\x20by\x20role\x20type','Found\x20','120EkNNNu','1776LTNUDs','validation','page','roleType','228613cgvANY','94038PbXhxb','\x20role(s)','string','173131BFJHyo','pagesize','Invalid\x20--type\x20\x22','str','ADMIN','List\x20user\x20groups\x20(roles)\x20for\x20the\x20current\x20app','number','length','read','appCode','251890aqgHJr','DEV','--pagesize\x20must\x20be\x20between\x201\x20and\x20100.','map','459MqLtls','filter','dev','num','5004keVgly','Page\x20size\x20(1-100)','295ZKcyDK','type','list','8UMssww','role','OWNER','join','toUpperCase','19947708lpVnnX','328691KsktWk'];a176_0x9fcd=function(){return _0x4df787;};return a176_0x9fcd();}function a176_0x1184(_0x45eb39,_0xd6f1f7){_0x45eb39=_0x45eb39-0x180;const _0x9fcd2=a176_0x9fcd();let _0x1184bd=_0x9fcd2[_0x45eb39];return _0x1184bd;}import{projectRole}from'../../commands/role/shared.js';const ROLE_TYPES=[a176_0x223a5a(0x187),a176_0x223a5a(0x18e),a176_0x223a5a(0x19c),'CUSTOM'];export const roleList={'service':a176_0x223a5a(0x19b),'command':a176_0x223a5a(0x199),'description':a176_0x223a5a(0x188),'risk':a176_0x223a5a(0x18b),'flags':[APPCODE_FLAG_OPTIONAL,{'name':a176_0x223a5a(0x198),'type':a176_0x223a5a(0x182),'required':![],'description':a176_0x223a5a(0x1a2),'enum':ROLE_TYPES},{'name':a176_0x223a5a(0x1a7),'type':a176_0x223a5a(0x189),'description':'Page\x20index\x20(1-based)','default':0x1},{'name':a176_0x223a5a(0x184),'type':a176_0x223a5a(0x189),'description':a176_0x223a5a(0x196),'default':0x64}],async 'validate'(_0x311167){const _0x59308e=a176_0x223a5a,_0x87ecad=_0x311167[_0x59308e(0x186)](_0x59308e(0x198))[_0x59308e(0x1a1)]();if(_0x87ecad&&!ROLE_TYPES['includes'](_0x87ecad[_0x59308e(0x19e)]()))throw CliErrors[_0x59308e(0x1a6)](_0x59308e(0x185)+_0x87ecad+'\x22.','Use\x20one\x20of:\x20'+ROLE_TYPES[_0x59308e(0x19d)](',\x20')+'.');const _0x18b185=_0x311167[_0x59308e(0x194)](_0x59308e(0x1a7),0x1),_0x4852f0=_0x311167[_0x59308e(0x194)]('pagesize',0x64);if(_0x18b185<0x1)throw CliErrors[_0x59308e(0x1a6)]('--page\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x201.');if(_0x4852f0<0x1||_0x4852f0>0x64)throw CliErrors[_0x59308e(0x1a6)](_0x59308e(0x18f));},async 'execute'(_0x1bd9c8){const _0x4b108b=a176_0x223a5a,_0x451a04=_0x1bd9c8[_0x4b108b(0x194)](_0x4b108b(0x1a7),0x1)||0x1,_0x256b86=_0x1bd9c8[_0x4b108b(0x194)](_0x4b108b(0x184),0x64)||0x64,_0x5c5278=_0x1bd9c8[_0x4b108b(0x186)](_0x4b108b(0x198))[_0x4b108b(0x1a1)]()['toUpperCase'](),{items:_0x2a7df8,paging:_0x22d3a3}=await listAppRoles(_0x1bd9c8[_0x4b108b(0x18c)],{'currentPage':_0x451a04,'pageSize':_0x256b86}),_0x4bd37d=_0x5c5278?_0x2a7df8[_0x4b108b(0x192)](_0x4a52fd=>_0x4a52fd[_0x4b108b(0x1a8)]===_0x5c5278):_0x2a7df8,_0x3eea23=_0x4bd37d[_0x4b108b(0x190)](projectRole);return{'ok':!![],'data':{'scope':_0x4b108b(0x193),'roles':_0x3eea23,'paging':_0x22d3a3},'message':_0x4b108b(0x1a3)+_0x3eea23[_0x4b108b(0x18a)]+_0x4b108b(0x181)};}};
@@ -2,10 +2,10 @@
2
2
  * role service 共享逻辑(SSOT)
3
3
  *
4
4
  * 集中:内置角色守卫、角色引用解析(id 单查 / name 全分页)、
5
- * 查人(tenant 成员目录)、user-list 全量 merge、投影与写命令输出信封。
5
+ * 查人(tenant 成员目录)、研发态关系分页读取、原子成员变更、投影与写命令输出信封。
6
6
  * 命令文件只引用这里,不重复合并/守卫规则(见 AGENTS.md 声明式方法论 SSOT)。
7
7
  */
8
- import { type AppRole, type RoleUsers } from "../../core/api-client.js";
8
+ import { type AppRole, type DevUserRoleRelation } from "../../core/api-client.js";
9
9
  import type { FlagDef, RuntimeContext } from "../../framework/types.js";
10
10
  export declare const ROLE_ID_FLAG: FlagDef;
11
11
  export declare const ROLE_REF_FLAG: FlagDef;
@@ -19,8 +19,6 @@ export declare const BUILTIN_ROLE_TYPES: AppRole["roleType"][];
19
19
  export declare function isBuiltinRole(roleType: string): boolean;
20
20
  /** update / delete:仅允许 CUSTOM 角色 */
21
21
  export declare function assertCustomRole(role: AppRole, action: string): void;
22
- /** role-menus-set / role-apis-set:拒绝改 DEV / ADMIN 的权限矩阵 */
23
- export declare function assertPermConfigurable(role: AppRole): void;
24
22
  export interface RoleProjection {
25
23
  id: number;
26
24
  roleName: string;
@@ -53,6 +51,7 @@ export interface UserResolution {
53
51
  */
54
52
  export declare function resolveUserRef(ref: string): Promise<UserResolution>;
55
53
  export interface RoleUserMutationData {
54
+ scope: "dev";
56
55
  operation: "user-add" | "user-remove";
57
56
  selector: {
58
57
  appCode: string;
@@ -73,17 +72,13 @@ export interface RoleUserMutationData {
73
72
  };
74
73
  warnings: string[];
75
74
  }
76
- export declare const UPDATE_USER_LIST_PATH = "/smartapi/permit/user-role/update-user-list";
77
- /**
78
- * 计算 user-add / user-remove 的全量回写结果与 before/after。
79
- * 只改目标 role 的 userList,其余 role 原样带回。
80
- * 返回 { roleList, mutation, changed };changed=false 表示无需写(幂等)。
81
- */
75
+ export declare const CREATE_USER_ROLE_PATH = "/smartapi/permit/user-role/create";
76
+ export declare const DELETE_USER_ROLE_PATH = "/smartapi/permit/user-role/delete";
82
77
  export declare function computeRoleUserMutation(params: {
83
78
  operation: "user-add" | "user-remove";
84
79
  appCode: string;
85
- roleUsers: RoleUsers[];
86
- targetRoleId: number;
80
+ role: AppRole;
81
+ relations: DevUserRoleRelation[];
87
82
  user: {
88
83
  userId: number;
89
84
  username: string;
@@ -92,16 +87,19 @@ export declare function computeRoleUserMutation(params: {
92
87
  dryRun: boolean;
93
88
  expectUserCount?: number;
94
89
  }): {
95
- roleList: RoleUsers[];
96
90
  mutation: RoleUserMutationData;
97
91
  changed: boolean;
92
+ matchingRelationIds: number[];
98
93
  };
99
- /** 读取目标 role 的全量成员列表(供 add/remove 前置) */
100
- export declare function loadRoleUsers(appCode: string): Promise<RoleUsers[]>;
94
+ /** 分页读取目标研发态角色的关系记录,避免整表覆盖。 */
95
+ export declare function loadDevRoleRelations(appCode: string, roleId: number): Promise<DevUserRoleRelation[]>;
101
96
  /** 供命令 ctx 读取角色引用 flag 的小工具 */
102
97
  export declare function readRoleRef(ctx: RuntimeContext): string;
103
98
  /**
104
99
  * user-add / user-remove 的完整前置编排(供两个命令的 dryRun / execute 共用):
105
- * 解析角色引用 → 解析用户 → 读全量成员计算全量回写与 before/after。
100
+ * 解析角色引用 → 解析用户 → 读取目标角色关系计算原子写入与 before/after。
106
101
  */
107
- export declare function prepareUserMutation(ctx: RuntimeContext, operation: "user-add" | "user-remove", dryRun: boolean): Promise<ReturnType<typeof computeRoleUserMutation>>;
102
+ export declare function prepareUserMutation(ctx: RuntimeContext, operation: "user-add" | "user-remove", dryRun: boolean): Promise<ReturnType<typeof computeRoleUserMutation> & {
103
+ role: AppRole;
104
+ user: UserResolution;
105
+ }>;