@lovrabet/rabetbase-cli 2.4.7-beta.2 → 2.5.0-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 (364) 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.d.ts +13 -3
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/api/generate-sdk-config-file.d.ts +7 -0
  6. package/lib/api/generate-sdk-config-file.js +1 -0
  7. package/lib/auth/auth-server-ui.js +1 -1
  8. package/lib/auth/auth-server.js +1 -1
  9. package/lib/auth/constant.js +1 -1
  10. package/lib/auth/get-cookie.js +1 -1
  11. package/lib/auth/get-session-user.js +1 -1
  12. package/lib/auth/is-session-valid.js +1 -1
  13. package/lib/auth/login-success-html.js +1 -1
  14. package/lib/auth/logout.js +1 -1
  15. package/lib/cli-flags.js +1 -1
  16. package/lib/cli.js +1 -1
  17. package/lib/commands/api/generate.js +1 -1
  18. package/lib/commands/api/index.js +1 -1
  19. package/lib/commands/api/list.js +1 -1
  20. package/lib/commands/api/pull.js +1 -1
  21. package/lib/commands/api/shared.js +1 -1
  22. package/lib/commands/app/index.js +1 -1
  23. package/lib/commands/app/list.js +1 -1
  24. package/lib/commands/app/members-list.js +1 -1
  25. package/lib/commands/app/remote-directory.js +1 -1
  26. package/lib/commands/app/shared.d.ts +2 -5
  27. package/lib/commands/app/shared.js +1 -1
  28. package/lib/commands/app-config/delete.js +1 -1
  29. package/lib/commands/app-config/get.js +1 -1
  30. package/lib/commands/app-config/index.js +1 -1
  31. package/lib/commands/app-config/list.js +1 -1
  32. package/lib/commands/app-config/set.js +1 -1
  33. package/lib/commands/app-config/shared.js +1 -1
  34. package/lib/commands/auth/index.js +1 -1
  35. package/lib/commands/bff/create.js +1 -1
  36. package/lib/commands/bff/delete.js +1 -1
  37. package/lib/commands/bff/detail.js +1 -1
  38. package/lib/commands/bff/index.js +1 -1
  39. package/lib/commands/bff/list.js +1 -1
  40. package/lib/commands/bff/pull.js +1 -1
  41. package/lib/commands/bff/push.js +1 -1
  42. package/lib/commands/bff/status.js +1 -1
  43. package/lib/commands/cli-skill/index.js +1 -1
  44. package/lib/commands/cli-update.js +1 -1
  45. package/lib/commands/codegen/index.js +1 -1
  46. package/lib/commands/codegen/sdk.js +1 -1
  47. package/lib/commands/codegen/sql.js +1 -1
  48. package/lib/commands/common/app-registry.js +1 -1
  49. package/lib/commands/common/app-selector.js +1 -1
  50. package/lib/commands/common/async-task.js +1 -1
  51. package/lib/commands/common/dry-run.js +1 -1
  52. package/lib/commands/common/flags.js +1 -1
  53. package/lib/commands/common/local-file.js +1 -1
  54. package/lib/commands/common/validate.js +1 -1
  55. package/lib/commands/config/delete.d.ts +5 -0
  56. package/lib/commands/config/delete.js +1 -0
  57. package/lib/commands/config/get.js +1 -1
  58. package/lib/commands/config/index.js +1 -1
  59. package/lib/commands/config/init.d.ts +12 -0
  60. package/lib/commands/config/init.js +1 -0
  61. package/lib/commands/config/list.js +1 -1
  62. package/lib/commands/config/set.js +1 -1
  63. package/lib/commands/config/shared.js +1 -1
  64. package/lib/commands/dataset/business-group-update.js +1 -1
  65. package/lib/commands/dataset/business-groups.js +1 -1
  66. package/lib/commands/dataset/capability.js +1 -1
  67. package/lib/commands/dataset/delete.js +1 -1
  68. package/lib/commands/dataset/detail.js +1 -1
  69. package/lib/commands/dataset/extend-update.js +1 -1
  70. package/lib/commands/dataset/field-update.js +1 -1
  71. package/lib/commands/dataset/generate.js +1 -1
  72. package/lib/commands/dataset/index.js +1 -1
  73. package/lib/commands/dataset/list.js +1 -1
  74. package/lib/commands/dataset/operations.js +1 -1
  75. package/lib/commands/dataset/relation-audit.js +1 -1
  76. package/lib/commands/dataset/relation-create.js +1 -1
  77. package/lib/commands/dataset/relation-delete.js +1 -1
  78. package/lib/commands/dataset/relation-shared.js +1 -1
  79. package/lib/commands/dataset/relation-update.js +1 -1
  80. package/lib/commands/dataset/relations.js +1 -1
  81. package/lib/commands/dataset/rename.js +1 -1
  82. package/lib/commands/dataset/restore.js +1 -1
  83. package/lib/commands/db/analysis-batching.js +1 -1
  84. package/lib/commands/db/analyze-batch-plan.js +1 -1
  85. package/lib/commands/db/analyze-cancel.js +1 -1
  86. package/lib/commands/db/analyze-start.js +1 -1
  87. package/lib/commands/db/analyze-status.js +1 -1
  88. package/lib/commands/db/create.js +1 -1
  89. package/lib/commands/db/delete.js +1 -1
  90. package/lib/commands/db/detail.js +1 -1
  91. package/lib/commands/db/diff-refresh-start.js +1 -1
  92. package/lib/commands/db/diff-refresh-status.js +1 -1
  93. package/lib/commands/db/diff.js +1 -1
  94. package/lib/commands/db/index.js +1 -1
  95. package/lib/commands/db/list.js +1 -1
  96. package/lib/commands/db/shared.js +1 -1
  97. package/lib/commands/db/tables.js +1 -1
  98. package/lib/commands/db/test.js +1 -1
  99. package/lib/commands/db/update.js +1 -1
  100. package/lib/commands/doctor.js +1 -1
  101. package/lib/commands/file/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/search.js +1 -1
  112. package/lib/commands/kb/shared.js +1 -1
  113. package/lib/commands/kb/update.js +1 -1
  114. package/lib/commands/logs/index.js +1 -1
  115. package/lib/commands/menu/asset-update.js +1 -1
  116. package/lib/commands/menu/delete.js +1 -1
  117. package/lib/commands/menu/external-link-create.js +1 -1
  118. package/lib/commands/menu/external-link-update.js +1 -1
  119. package/lib/commands/menu/group-create.js +1 -1
  120. package/lib/commands/menu/group-update.js +1 -1
  121. package/lib/commands/menu/index.js +1 -1
  122. package/lib/commands/menu/list.js +1 -1
  123. package/lib/commands/menu/move.js +1 -1
  124. package/lib/commands/menu/regroup-start.js +1 -1
  125. package/lib/commands/menu/rename.js +1 -1
  126. package/lib/commands/menu/shared/compare-table.js +1 -1
  127. package/lib/commands/menu/shared/delete-plan.js +1 -1
  128. package/lib/commands/menu/shared/facts.js +1 -1
  129. package/lib/commands/menu/shared/index.js +1 -1
  130. package/lib/commands/menu/shared/inquirer.js +1 -1
  131. package/lib/commands/menu/shared/local-pages.js +1 -1
  132. package/lib/commands/menu/shared/logic.js +1 -1
  133. package/lib/commands/menu/shared/mutations.js +1 -1
  134. package/lib/commands/menu/shared/service.js +1 -1
  135. package/lib/commands/menu/shared/sync-core.js +1 -1
  136. package/lib/commands/menu/shared/update-core.js +1 -1
  137. package/lib/commands/menu/shared/valid-url.js +1 -1
  138. package/lib/commands/menu/sync.js +1 -1
  139. package/lib/commands/menu/visibility-update.js +1 -1
  140. package/lib/commands/notification/config-create.js +1 -1
  141. package/lib/commands/notification/config-delete.js +1 -1
  142. package/lib/commands/notification/config-list.js +1 -1
  143. package/lib/commands/notification/config-update.js +1 -1
  144. package/lib/commands/notification/index.js +1 -1
  145. package/lib/commands/notification/shared.js +1 -1
  146. package/lib/commands/ocr/index.js +1 -1
  147. package/lib/commands/page/create.js +1 -1
  148. package/lib/commands/page/custom/detail.js +1 -1
  149. package/lib/commands/page/custom/list.js +1 -1
  150. package/lib/commands/page/custom/publish.js +1 -1
  151. package/lib/commands/page/custom/shared.js +1 -1
  152. package/lib/commands/page/custom/syntax.js +1 -1
  153. package/lib/commands/page/custom/template.js +1 -1
  154. package/lib/commands/page/custom/update.js +1 -1
  155. package/lib/commands/page/data-list-status.js +1 -1
  156. package/lib/commands/page/generate-start.js +1 -1
  157. package/lib/commands/page/generate-status.js +1 -1
  158. package/lib/commands/page/index.js +1 -1
  159. package/lib/commands/page/pull.js +1 -1
  160. package/lib/commands/page/push.js +1 -1
  161. package/lib/commands/page/relation-audit.js +1 -1
  162. package/lib/commands/page/restore.js +1 -1
  163. package/lib/commands/page/shared.js +1 -1
  164. package/lib/commands/page/sync.js +1 -1
  165. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  166. package/lib/commands/project/create/format-elapsed.js +1 -1
  167. package/lib/commands/project/create/main.d.ts +1 -0
  168. package/lib/commands/project/create/main.js +1 -1
  169. package/lib/commands/project/create/materialize-project-template.d.ts +6 -2
  170. package/lib/commands/project/create/materialize-project-template.js +1 -1
  171. package/lib/commands/project/create/project-name.js +1 -1
  172. package/lib/commands/project/create/project-template-archive.js +1 -1
  173. package/lib/commands/project/create/project-template-path.js +1 -1
  174. package/lib/commands/project/create/use-copy-project-template.d.ts +1 -1
  175. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  176. package/lib/commands/project/create/use-format-code.js +1 -1
  177. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  178. package/lib/commands/project/index.js +1 -1
  179. package/lib/commands/project/upgrade.js +1 -1
  180. package/lib/commands/registry.d.ts +2 -2
  181. package/lib/commands/registry.js +1 -1
  182. package/lib/commands/role/delete.js +1 -1
  183. package/lib/commands/role/detail.js +1 -1
  184. package/lib/commands/role/index.js +1 -1
  185. package/lib/commands/role/list.js +1 -1
  186. package/lib/commands/role/shared.d.ts +1 -1
  187. package/lib/commands/role/shared.js +1 -1
  188. package/lib/commands/role/update.js +1 -1
  189. package/lib/commands/role/user-add.js +1 -1
  190. package/lib/commands/role/user-remove.js +1 -1
  191. package/lib/commands/role/user-resolve.js +1 -1
  192. package/lib/commands/run/index.js +1 -1
  193. package/lib/commands/schema.js +1 -1
  194. package/lib/commands/sql/create.js +1 -1
  195. package/lib/commands/sql/delete.js +1 -1
  196. package/lib/commands/sql/detail.js +1 -1
  197. package/lib/commands/sql/exec.js +1 -1
  198. package/lib/commands/sql/index.js +1 -1
  199. package/lib/commands/sql/list.js +1 -1
  200. package/lib/commands/sql/pull.js +1 -1
  201. package/lib/commands/sql/push.js +1 -1
  202. package/lib/commands/sql/shared.js +1 -1
  203. package/lib/commands/sql/status.js +1 -1
  204. package/lib/commands/sql/validate.js +1 -1
  205. package/lib/commands/task/index.js +1 -1
  206. package/lib/commands/task/status.js +1 -1
  207. package/lib/commands/tenant/index.js +1 -1
  208. package/lib/commands/tenant/members-list.js +1 -1
  209. package/lib/commands/tenant/shared.js +1 -1
  210. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  211. package/lib/commands/user-account/index.js +1 -1
  212. package/lib/commands/workspace/add.js +1 -1
  213. package/lib/commands/workspace/index.js +1 -1
  214. package/lib/commands/workspace/remove.js +1 -1
  215. package/lib/config/domain-config.d.ts +10 -0
  216. package/lib/config/domain-config.js +1 -0
  217. package/lib/config/schema.d.ts +3 -1
  218. package/lib/config/schema.js +1 -1
  219. package/lib/constant/cdn.js +1 -1
  220. package/lib/constant/cli.js +1 -1
  221. package/lib/constant/defaults.js +1 -1
  222. package/lib/constant/domain.d.ts +23 -1
  223. package/lib/constant/domain.js +1 -1
  224. package/lib/constant/env.js +1 -1
  225. package/lib/constant/output.js +1 -1
  226. package/lib/constant/paths.js +1 -1
  227. package/lib/constant/region.d.ts +9 -0
  228. package/lib/constant/region.js +1 -0
  229. package/lib/constant/risk.js +1 -1
  230. package/lib/context/app-resolver.js +1 -1
  231. package/lib/context/auth-resolver.js +1 -1
  232. package/lib/context/config-loader.d.ts +4 -6
  233. package/lib/context/config-loader.js +1 -1
  234. package/lib/context.d.ts +2 -2
  235. package/lib/context.js +1 -1
  236. package/lib/core/alias-resolver.js +1 -1
  237. package/lib/core/api-client.d.ts +2 -0
  238. package/lib/core/api-client.js +1 -1
  239. package/lib/core/bff/config.js +1 -1
  240. package/lib/core/bff/file-system.js +1 -1
  241. package/lib/core/bff/hash.js +1 -1
  242. package/lib/core/bff/lock.js +1 -1
  243. package/lib/core/bff/utils.js +1 -1
  244. package/lib/core/db-resolver.js +1 -1
  245. package/lib/core/page/file-system.js +1 -1
  246. package/lib/core/page/hash.js +1 -1
  247. package/lib/core/page/lock.js +1 -1
  248. package/lib/core/sql-index-auditor.js +1 -1
  249. package/lib/core/sql-sync/config.js +1 -1
  250. package/lib/core/sql-sync/file-system.js +1 -1
  251. package/lib/core/sql-sync/hash.js +1 -1
  252. package/lib/core/sql-sync/lock.js +1 -1
  253. package/lib/core/sql-sync/utils.js +1 -1
  254. package/lib/core/sql-validator.js +1 -1
  255. package/lib/errors.d.ts +11 -1
  256. package/lib/errors.js +1 -1
  257. package/lib/framework/build-all-flags.js +1 -1
  258. package/lib/framework/error-output.js +1 -1
  259. package/lib/framework/explicit-yes.js +1 -1
  260. package/lib/framework/flags.js +1 -1
  261. package/lib/framework/help.d.ts +2 -2
  262. package/lib/framework/help.js +1 -1
  263. package/lib/framework/index.js +1 -1
  264. package/lib/framework/output.js +1 -1
  265. package/lib/framework/response.js +1 -1
  266. package/lib/framework/runner-alias.js +1 -1
  267. package/lib/framework/runner.js +1 -1
  268. package/lib/framework/schema-export.js +1 -1
  269. package/lib/framework/types.js +1 -1
  270. package/lib/generated/build-info.d.ts +4 -4
  271. package/lib/generated/build-info.js +1 -1
  272. package/lib/help.js +1 -1
  273. package/lib/postinstall.js +1 -1
  274. package/lib/runtime/confirmation.js +1 -1
  275. package/lib/runtime/event.js +1 -1
  276. package/lib/runtime/index.js +1 -1
  277. package/lib/runtime/queue.js +1 -1
  278. package/lib/runtime/resolve.js +1 -1
  279. package/lib/skills/builtin-skill.js +1 -1
  280. package/lib/skills/main.js +1 -1
  281. package/lib/skills/npx-skills-add.js +1 -1
  282. package/lib/skills/skill-presence.js +1 -1
  283. package/lib/telemetry/cli-command-trace.js +1 -1
  284. package/lib/telemetry/cli-help-trace.js +1 -1
  285. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  286. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  287. package/lib/telemetry/send-cli-trace-log.js +1 -1
  288. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  289. package/lib/types/index.d.ts +28 -0
  290. package/lib/utils/ai_config.d.ts +1 -2
  291. package/lib/utils/ai_config.js +1 -1
  292. package/lib/utils/apply-jq-filter.js +1 -1
  293. package/lib/utils/cdn-config.js +1 -1
  294. package/lib/utils/check-sdk-version.js +1 -1
  295. package/lib/utils/cli-version-check.js +1 -1
  296. package/lib/utils/cli-version-policy.js +1 -1
  297. package/lib/utils/config.js +1 -1
  298. package/lib/utils/entity-with-id.js +1 -1
  299. package/lib/utils/file-utils.js +1 -1
  300. package/lib/utils/guides-cdn.js +1 -1
  301. package/lib/utils/http-client.js +1 -1
  302. package/lib/utils/is-non-interactive.js +1 -1
  303. package/lib/utils/logger.js +1 -1
  304. package/lib/utils/params.js +1 -1
  305. package/lib/utils/platform.js +1 -1
  306. package/lib/utils/sleep.js +1 -1
  307. package/lib/utils/template-replacer.js +1 -1
  308. package/lib/utils/update-notice.js +1 -1
  309. package/lib/utils/version.js +1 -1
  310. package/lib/utils/with-active-cookie.js +1 -1
  311. package/lib/utils/write-cli-side-channel.js +1 -1
  312. package/package.json +1 -3
  313. package/skills/rabetbase/SKILL.md +33 -28
  314. package/skills/rabetbase/guides/backend-function.md +41 -12
  315. package/skills/rabetbase/guides/bff-creation-workflow.md +6 -4
  316. package/skills/rabetbase/guides/custom-page-workflow.md +1 -1
  317. package/skills/rabetbase/guides/data-api-guidelines.md +8 -8
  318. package/skills/rabetbase/guides/database-connection-workflow.md +8 -16
  319. package/skills/rabetbase/guides/menu-anomaly-manual-cleanup.md +1 -6
  320. package/skills/rabetbase/guides/sdk-client-generation.md +146 -0
  321. package/skills/rabetbase/guides/sql-creation-workflow.md +1 -1
  322. package/skills/rabetbase/guides/troubleshooting.md +1 -1
  323. package/skills/rabetbase/guides/typescript-sdk.md +46 -10
  324. package/skills/rabetbase/references/rabetbase-api-list.md +4 -4
  325. package/skills/rabetbase/references/rabetbase-api-pull.md +44 -29
  326. package/skills/rabetbase/references/rabetbase-app-list.md +2 -2
  327. package/skills/rabetbase/references/rabetbase-auth-login.md +4 -2
  328. package/skills/rabetbase/references/rabetbase-bff-push.md +3 -1
  329. package/skills/rabetbase/references/rabetbase-codegen-sql.md +3 -1
  330. package/skills/rabetbase/references/rabetbase-config.md +75 -30
  331. package/skills/rabetbase/references/rabetbase-dataset-detail.md +1 -1
  332. package/skills/rabetbase/references/rabetbase-db-analyze.md +3 -3
  333. package/skills/rabetbase/references/rabetbase-db-detail.md +2 -2
  334. package/skills/rabetbase/references/rabetbase-db-diff-refresh.md +4 -4
  335. package/skills/rabetbase/references/rabetbase-db-diff.md +6 -9
  336. package/skills/rabetbase/references/rabetbase-doctor.md +1 -1
  337. package/skills/rabetbase/references/rabetbase-init.md +57 -51
  338. package/skills/rabetbase/references/rabetbase-kb.md +2 -0
  339. package/skills/rabetbase/references/rabetbase-page-create.md +1 -1
  340. package/skills/rabetbase/references/rabetbase-page-custom-detail.md +3 -3
  341. package/skills/rabetbase/references/rabetbase-page-custom-list.md +2 -2
  342. package/skills/rabetbase/references/rabetbase-project-create.md +12 -3
  343. package/skills/rabetbase/references/rabetbase-project-upgrade.md +2 -2
  344. package/skills/rabetbase/references/rabetbase-role-user-resolve.md +2 -2
  345. package/skills/rabetbase/references/rabetbase-user-account.md +1 -1
  346. package/skills/rabetbase/references/rabetbase-workspace.md +6 -6
  347. package/skills/rabetbase.manifest.json +4 -3
  348. package/templates/README.md +17 -28
  349. package/templates/generate-api/api.ts.tpl +3 -3
  350. package/templates/generate-api/client.ts.tpl +10 -37
  351. package/lib/commands/data/filter.d.ts +0 -7
  352. package/lib/commands/data/filter.js +0 -1
  353. package/lib/commands/data/getOne.d.ts +0 -7
  354. package/lib/commands/data/getOne.js +0 -1
  355. package/lib/commands/data/index.d.ts +0 -8
  356. package/lib/commands/data/index.js +0 -1
  357. package/lib/commands/data/shared.d.ts +0 -33
  358. package/lib/commands/data/shared.js +0 -1
  359. package/lib/commands/init/index.d.ts +0 -11
  360. package/lib/commands/init/index.js +0 -1
  361. package/lib/utils/rules-cdn.d.ts +0 -38
  362. package/lib/utils/rules-cdn.js +0 -1
  363. package/templates/rules/lovrabet_rules.mdc.tpl +0 -893
  364. package/templates/skill/SKILL.md.tpl +0 -120
@@ -1 +1 @@
1
- (function(_0x37c630,_0x1febf9){const _0x2abbda=a162_0x31b5,_0x521351=_0x37c630();while(!![]){try{const _0x5565d9=parseInt(_0x2abbda(0x96))/0x1*(parseInt(_0x2abbda(0x84))/0x2)+-parseInt(_0x2abbda(0x81))/0x3+-parseInt(_0x2abbda(0x83))/0x4*(-parseInt(_0x2abbda(0x8f))/0x5)+-parseInt(_0x2abbda(0x88))/0x6*(parseInt(_0x2abbda(0x7b))/0x7)+parseInt(_0x2abbda(0x7c))/0x8+-parseInt(_0x2abbda(0x7f))/0x9+-parseInt(_0x2abbda(0x8d))/0xa;if(_0x5565d9===_0x1febf9)break;else _0x521351['push'](_0x521351['shift']());}catch(_0x5796f5){_0x521351['push'](_0x521351['shift']());}}}(a162_0x5421,0xa92da));import{existsSync}from'node:fs';import a162_0x4aef28 from'node:path';import a162_0x178d96 from'chalk';import{input,confirm}from'@inquirer/prompts';import{getIsSessionValid}from'../../../auth/is-session-valid.js';function a162_0x31b5(_0x3cb245,_0x4ea7be){_0x3cb245=_0x3cb245-0x7b;const _0x5421dd=a162_0x5421();let _0x31b5d8=_0x5421dd[_0x3cb245];return _0x31b5d8;}function a162_0x5421(){const _0x344584=['green','7053876uGYgqY','my-app','538563SEsSEu','√\x20Login\x20status:\x20','4iDrpFE','118SNxokr','Not\x20set','env','√\x20App\x20Code:\x20','5352jWTFAX','cwd','Project\x20name:','No\x20valid\x20login\x20detected.\x20Login\x20first\x20to\x20pull\x20API\x20config?','trim','4880670KNghEC','Skipped','6481415LpPQYP','log','Login\x20failed','\x22\x20already\x20exists','production','Directory\x20\x22','√\x20Project\x20Name:\x20','13742oMunmV','707TSRpKB','1018696LyYfOe','cyan'];a162_0x5421=function(){return _0x344584;};return a162_0x5421();}import{authServer}from'../../../auth/auth-server.js';import{readConfig}from'../../../utils/config.js';import{selectSingleAppcode}from'../../../commands/common/app-selector.js';import{getProjectNameValidationError}from'../../../commands/project/create/project-name.js';export async function guidedCreateProject(_0x5e00ff,_0x33ee4d,_0x191428){const _0x34f8c3=a162_0x31b5,_0x593a63=_0x34f8c3(0x80),_0x194709=readConfig(),_0x5cfee4=typeof _0x194709[_0x34f8c3(0x86)]==='string'?_0x194709['env']:undefined,_0x2224e7=await input({'message':_0x34f8c3(0x8a),'default':_0x593a63,'validate':_0xb90c4b=>{const _0x1408ba=_0x34f8c3,_0x15d853=_0xb90c4b[_0x1408ba(0x8c)]()||_0x593a63,_0x4f9f43=getProjectNameValidationError(_0x15d853);if(_0x4f9f43)return _0x4f9f43;const _0xbf3ea7=a162_0x4aef28['resolve'](process[_0x1408ba(0x89)](),_0x15d853);if(existsSync(_0xbf3ea7))return _0x1408ba(0x94)+_0x15d853+_0x1408ba(0x92);return!![];}});console[_0x34f8c3(0x90)](a162_0x178d96['green'](_0x34f8c3(0x95)+a162_0x178d96[_0x34f8c3(0x7d)](_0x2224e7)));const _0x5d0f93=await selectSingleAppcode(_0x191428);console[_0x34f8c3(0x90)](a162_0x178d96['green'](_0x34f8c3(0x87)+a162_0x178d96['cyan'](_0x5d0f93||_0x34f8c3(0x85))));if(_0x5d0f93){const _0x431e24=await getIsSessionValid();if(!_0x431e24){const _0x41c9d6=await confirm({'message':_0x34f8c3(0x8b),'default':!![]});if(_0x41c9d6){const _0x579963=await authServer({'silent':!![]});console[_0x34f8c3(0x90)](a162_0x178d96[_0x34f8c3(0x7e)](_0x34f8c3(0x82)+a162_0x178d96[_0x34f8c3(0x7d)](_0x579963?'Logged\x20in':_0x34f8c3(0x91))));}else console[_0x34f8c3(0x90)](a162_0x178d96[_0x34f8c3(0x7e)](_0x34f8c3(0x82)+a162_0x178d96[_0x34f8c3(0x7d)](_0x34f8c3(0x8e))));}await _0x5e00ff({'projectName':_0x2224e7,'appCode':_0x5d0f93,'env':_0x33ee4d||_0x5cfee4||'production'});}else await _0x5e00ff({'projectName':_0x2224e7,'env':_0x33ee4d||_0x5cfee4||_0x34f8c3(0x93)});}
1
+ (function(_0x333c61,_0xb82074){const _0x1ded39=a160_0x5a50,_0x2dbf18=_0x333c61();while(!![]){try{const _0x5af8ff=parseInt(_0x1ded39(0x148))/0x1*(parseInt(_0x1ded39(0x146))/0x2)+parseInt(_0x1ded39(0x143))/0x3*(-parseInt(_0x1ded39(0x151))/0x4)+-parseInt(_0x1ded39(0x150))/0x5*(parseInt(_0x1ded39(0x14b))/0x6)+parseInt(_0x1ded39(0x145))/0x7+-parseInt(_0x1ded39(0x15b))/0x8+parseInt(_0x1ded39(0x15c))/0x9*(-parseInt(_0x1ded39(0x159))/0xa)+parseInt(_0x1ded39(0x158))/0xb;if(_0x5af8ff===_0xb82074)break;else _0x2dbf18['push'](_0x2dbf18['shift']());}catch(_0x1fefd5){_0x2dbf18['push'](_0x2dbf18['shift']());}}}(a160_0x5f37,0xb8eef));import{existsSync}from'node:fs';function a160_0x5a50(_0x3f490f,_0x51c213){_0x3f490f=_0x3f490f-0x143;const _0x5f3744=a160_0x5f37();let _0x5a50ba=_0x5f3744[_0x3f490f];return _0x5a50ba;}import a160_0x37a143 from'node:path';import a160_0x132232 from'chalk';import{input,confirm}from'@inquirer/prompts';import{getIsSessionValid}from'../../../auth/is-session-valid.js';import{authServer}from'../../../auth/auth-server.js';import{readConfig}from'../../../utils/config.js';import{selectSingleAppcode}from'../../../commands/common/app-selector.js';import{getProjectNameValidationError}from'../../../commands/project/create/project-name.js';export async function guidedCreateProject(_0x478341,_0x36db9b,_0x3c8034){const _0x4b3efb=a160_0x5a50,_0x2a6cb3=_0x4b3efb(0x149),_0x512f4f=readConfig(),_0x42d8a4=typeof _0x512f4f[_0x4b3efb(0x14a)]==='string'?_0x512f4f['env']:undefined,_0x56d2bf=await input({'message':_0x4b3efb(0x157),'default':_0x2a6cb3,'validate':_0x374ee1=>{const _0x2bdb8c=_0x4b3efb,_0x55ee37=_0x374ee1[_0x2bdb8c(0x156)]()||_0x2a6cb3,_0x3c8214=getProjectNameValidationError(_0x55ee37);if(_0x3c8214)return _0x3c8214;const _0x1059bc=a160_0x37a143['resolve'](process['cwd'](),_0x55ee37);if(existsSync(_0x1059bc))return _0x2bdb8c(0x14c)+_0x55ee37+_0x2bdb8c(0x15a);return!![];}});console[_0x4b3efb(0x144)](a160_0x132232[_0x4b3efb(0x154)](_0x4b3efb(0x14e)+a160_0x132232['cyan'](_0x56d2bf)));const _0x188045=await selectSingleAppcode(_0x3c8034);console[_0x4b3efb(0x144)](a160_0x132232[_0x4b3efb(0x154)](_0x4b3efb(0x14d)+a160_0x132232[_0x4b3efb(0x14f)](_0x188045||'Not\x20set')));if(_0x188045){const _0x8c6c05=await getIsSessionValid();if(!_0x8c6c05){const _0x1a5d67=await confirm({'message':_0x4b3efb(0x147),'default':!![]});if(_0x1a5d67){const _0x58eef9=await authServer({'silent':!![]});console[_0x4b3efb(0x144)](a160_0x132232[_0x4b3efb(0x154)](_0x4b3efb(0x15d)+a160_0x132232[_0x4b3efb(0x14f)](_0x58eef9?_0x4b3efb(0x153):'Login\x20failed')));}else console[_0x4b3efb(0x144)](a160_0x132232['green'](_0x4b3efb(0x15d)+a160_0x132232['cyan'](_0x4b3efb(0x152))));}await _0x478341({'projectName':_0x56d2bf,'appCode':_0x188045,'env':_0x36db9b||_0x42d8a4||_0x4b3efb(0x155)});}else await _0x478341({'projectName':_0x56d2bf,'env':_0x36db9b||_0x42d8a4||_0x4b3efb(0x155)});}function a160_0x5f37(){const _0x541201=['my-app','env','6zLGBGs','Directory\x20\x22','√\x20App\x20Code:\x20','√\x20Project\x20Name:\x20','cyan','2492885LdLIqi','52glCSGA','Skipped','Logged\x20in','green','production','trim','Project\x20name:','23739936TfBlvo','547670HaupLr','\x22\x20already\x20exists','7860328GgSIGZ','144OqXtVz','√\x20Login\x20status:\x20','155913cvYlFu','log','3817870XAjxIy','57206qJusvj','No\x20valid\x20login\x20detected.\x20Login\x20first\x20to\x20pull\x20API\x20config?','38HopSxU'];a160_0x5f37=function(){return _0x541201;};return a160_0x5f37();}
@@ -1 +1 @@
1
- function a163_0x20d0(_0xb0e5c1,_0x55e0b2){_0xb0e5c1=_0xb0e5c1-0x1ed;const _0x4f8bc5=a163_0x4f8b();let _0x20d075=_0x4f8bc5[_0xb0e5c1];return _0x20d075;}(function(_0xfec1e4,_0x542250){const _0x574da9=a163_0x20d0,_0x1251ac=_0xfec1e4();while(!![]){try{const _0x4393d8=-parseInt(_0x574da9(0x1f5))/0x1*(parseInt(_0x574da9(0x1f4))/0x2)+parseInt(_0x574da9(0x1fa))/0x3*(parseInt(_0x574da9(0x1f1))/0x4)+-parseInt(_0x574da9(0x1f7))/0x5*(parseInt(_0x574da9(0x1f9))/0x6)+parseInt(_0x574da9(0x1f6))/0x7+parseInt(_0x574da9(0x1f0))/0x8*(parseInt(_0x574da9(0x1ed))/0x9)+-parseInt(_0x574da9(0x1f8))/0xa*(-parseInt(_0x574da9(0x1ef))/0xb)+parseInt(_0x574da9(0x1fb))/0xc*(-parseInt(_0x574da9(0x1fc))/0xd);if(_0x4393d8===_0x542250)break;else _0x1251ac['push'](_0x1251ac['shift']());}catch(_0x48fe75){_0x1251ac['push'](_0x1251ac['shift']());}}}(a163_0x4f8b,0xdbaa0));export function formatElapsed(_0x3bfc64){const _0x6c80af=a163_0x20d0,_0x55ec61=Date[_0x6c80af(0x1f3)]()-_0x3bfc64;if(_0x55ec61<0x3e8)return _0x55ec61+'ms';const _0x207f0e=(_0x55ec61/0x3e8)[_0x6c80af(0x1ee)](0x2),_0x47ebe6=_0x207f0e[_0x6c80af(0x1f2)](/\.?0+$/u,'');return _0x47ebe6+'s';}function a163_0x4f8b(){const _0x54a645=['1937670vFEfkb','35215vKDUgL','6694120dEFFTZ','390sZSeRP','109614RgJrXw','962700KIaUgl','169jZhGRH','947907YPbFvw','toFixed','22RPGvzB','8EBvThA','148pAMqfG','replace','now','1642oqASIC','819ndnTBD'];a163_0x4f8b=function(){return _0x54a645;};return a163_0x4f8b();}
1
+ function a161_0x572d(_0x43b381,_0x365388){_0x43b381=_0x43b381-0x14e;const _0x4ef269=a161_0x4ef2();let _0x572d63=_0x4ef269[_0x43b381];return _0x572d63;}(function(_0x3c94ea,_0x3066ef){const _0x319190=a161_0x572d,_0x5a7f9e=_0x3c94ea();while(!![]){try{const _0x38a750=-parseInt(_0x319190(0x156))/0x1*(parseInt(_0x319190(0x150))/0x2)+parseInt(_0x319190(0x152))/0x3*(-parseInt(_0x319190(0x14e))/0x4)+parseInt(_0x319190(0x155))/0x5*(parseInt(_0x319190(0x159))/0x6)+parseInt(_0x319190(0x14f))/0x7+parseInt(_0x319190(0x154))/0x8*(-parseInt(_0x319190(0x15c))/0x9)+-parseInt(_0x319190(0x157))/0xa*(-parseInt(_0x319190(0x15a))/0xb)+parseInt(_0x319190(0x151))/0xc;if(_0x38a750===_0x3066ef)break;else _0x5a7f9e['push'](_0x5a7f9e['shift']());}catch(_0x410132){_0x5a7f9e['push'](_0x5a7f9e['shift']());}}}(a161_0x4ef2,0x7129c));export function formatElapsed(_0x548256){const _0x29c0bb=a161_0x572d,_0x452307=Date[_0x29c0bb(0x153)]()-_0x548256;if(_0x452307<0x3e8)return _0x452307+'ms';const _0x4c1315=(_0x452307/0x3e8)[_0x29c0bb(0x15b)](0x2),_0x2110c9=_0x4c1315[_0x29c0bb(0x158)](/\.?0+$/u,'');return _0x2110c9+'s';}function a161_0x4ef2(){const _0x3ab329=['15319872OHKNUV','360543JHYcur','now','6607896ocYyJX','21220QVaquG','282959rueyUL','10AEhwMs','replace','852LTstzq','809369tUpJFN','toFixed','9Hatlkt','8THeuuF','2981013mvzfTf','6eQjFCG'];a161_0x4ef2=function(){return _0x3ab329;};return a161_0x4ef2();}
@@ -4,4 +4,5 @@ export declare function createApp(props: {
4
4
  env?: string;
5
5
  cookie?: string;
6
6
  nonInteractive?: boolean;
7
+ templateSource?: string;
7
8
  }): Promise<void>;
@@ -1 +1 @@
1
- (function(_0x4de529,_0x4edf92){const _0x2f24eb=a164_0x3c74,_0x21998c=_0x4de529();while(!![]){try{const _0x9244c8=parseInt(_0x2f24eb(0x18d))/0x1+parseInt(_0x2f24eb(0x1b8))/0x2+parseInt(_0x2f24eb(0x1b4))/0x3*(parseInt(_0x2f24eb(0x182))/0x4)+-parseInt(_0x2f24eb(0x1a8))/0x5*(parseInt(_0x2f24eb(0x1b1))/0x6)+-parseInt(_0x2f24eb(0x16a))/0x7+parseInt(_0x2f24eb(0x17b))/0x8*(parseInt(_0x2f24eb(0x1ab))/0x9)+-parseInt(_0x2f24eb(0x18c))/0xa;if(_0x9244c8===_0x4edf92)break;else _0x21998c['push'](_0x21998c['shift']());}catch(_0x56e9e9){_0x21998c['push'](_0x21998c['shift']());}}}(a164_0x13a8,0x53c8c));import a164_0x51e674 from'path';import a164_0x1adba8 from'fs';import a164_0x4345ce from'chalk';import a164_0x9db58c from'ora';import{guidedCreateProject}from'../../../commands/project/create/enhanced-guided-create.js';import{fetchModelList}from'../../../core/api-client.js';import{generateApiFile}from'../../../api/generate-api-file.js';import{initEnv}from'../../../constant/env.js';import{readConfig}from'../../../utils/config.js';import{CLI_BIN_NAME}from'../../../constant/cli.js';import{DEFAULT_API_DIR}from'../../../constant/paths.js';import{writeConfigFile,NEW_CONFIG_NAME}from'../../../context.js';import{copyProjectTemplate}from'../../../commands/project/create/use-copy-project-template.js';import{installDependencies}from'../../../commands/project/create/use-install-dependencies.js';import{formatProjectCode}from'../../../commands/project/create/use-format-code.js';import{logger}from'../../../utils/logger.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../../utils/cli-version-check.js';import{PROJECT_CREATE_INHERITABLE_KEYS,buildCanonicalProjectConfig}from'../../../config/schema.js';import{selectSingleAppcode}from'../../../commands/common/app-selector.js';function a164_0x3c74(_0x4c6337,_0x2f6d19){_0x4c6337=_0x4c6337-0x167;const _0x13a8ce=a164_0x13a8();let _0x3c746c=_0x13a8ce[_0x4c6337];return _0x3c746c;}import{getRabetbaseCliPackageRoot}from'../../../commands/project/create/project-template-path.js';import{validateProjectName}from'../../../commands/project/create/project-name.js';function a164_0x13a8(){const _0x1149ee=['Unable\x20to\x20verify\x20ownership\x20of\x20the\x20created\x20project\x20directory','stringify','cd\x20','success','\x20&&\x20','green','\x20\x201.\x20Start\x20project:\x20','4506068GTSMuB','stop','Resolving\x20project\x20template','verifying','cookie','parse','CLI\x20版本检查','\x20config\x20set\x20appcode\x20<app-code>\x27','\x20|\x20Default:\x20','name','join','Format\x20code','production','跳过清理:项目目录所有权已变化:\x20','fail','*\x20Cleaning\x20up\x20failed\x20project\x20directory:\x20','\x20\x202.\x20Pull\x20API\x20configuration:\x20','5592RhDNrX','belowMinimum','appCode','√\x20package.json\x20updated:\x20name=','lstatSync','\x20√\x20','currentVersion','20hhzHfG','projectCode','resolve','setLogPath','log','package.json','warn','constants','readFileSync','bold','5907170wvvcCc','659432GKBqcV','apps','清理项目目录失败:\x20','更新\x20package.json\x20失败','dev','cyan','create','utf8','\x20run\x20start','cwd','√\x20Configuration\x20file\x20created,\x20you\x20can\x20configure\x20later\x20with\x20\x27','message','defaultApp','Verifying\x20project\x20template','resolving','chdir','nonInteractive','string','Project\x20template\x20ready','writeFileSync','toLocaleString','W_OK','info','项目创建完成:\x20','needsUpgrade','Extracting\x20project\x20template','env','260vGnyLF','Project\x20name:\x20','API\x20配置拉取异常','8253SIVteD','existsSync','minimumVersion','\x20Generated\x20by\x20rabetbase\x20cli\x20','*\x20Creating\x20configuration\x20file\x20for\x20project\x20','1.0.0','69168LBOCdj','*\x20Pulling\x20API\x20configuration...','\x20model(s)','202887CfWdzB','downloading','√\x20Pulled\x20','配置应用AppCode:\x20','1077034RylhiS','projectName','description','√\x20Configuration\x20file\x20created,\x20Apps:\x20','...','API\x20configuration\x20pulled:\x20','repeat','gray','isDirectory','开始创建项目:\x20','Project\x20directory\x20','version','text','!\x20API\x20configuration\x20pull\x20error,\x20you\x20can\x20manually\x20run:\x20rabetbase\x20api\x20pull','ino','配置应用AppCode失败'];a164_0x13a8=function(){return _0x1149ee;};return a164_0x13a8();}function readDirectoryIdentity(_0x13a7a7){const _0x28292f=a164_0x3c74;try{const _0x36c044=a164_0x1adba8[_0x28292f(0x17f)](_0x13a7a7);if(!_0x36c044[_0x28292f(0x1c0)]())return null;return{'dev':_0x36c044[_0x28292f(0x191)],'ino':_0x36c044[_0x28292f(0x1c6)]};}catch{return null;}}export async function createApp(_0x46979c){const _0xa161e7=a164_0x3c74,_0x5ca00d=await checkCliVersion();(_0x5ca00d['needsUpgrade']||_0x5ca00d['belowMinimum'])&&(printCliUpgradeWarning(_0x5ca00d),assertCliVersionSupported(_0x5ca00d),logger['info'](_0xa161e7(0x193),_0xa161e7(0x170),{'currentVersion':_0x5ca00d[_0xa161e7(0x181)],'stableVersion':_0x5ca00d['stableVersion'],'minimumVersion':_0x5ca00d[_0xa161e7(0x1ad)],'needsUpgrade':_0x5ca00d[_0xa161e7(0x1a5)],'belowMinimum':_0x5ca00d[_0xa161e7(0x17c)]}));if(_0x46979c[_0xa161e7(0x183)]&&(_0x46979c['appCode']||_0x46979c[_0xa161e7(0x19d)]))await runCreate({'projectName':_0x46979c[_0xa161e7(0x183)],'appCode':_0x46979c['appCode'],'env':_0x46979c[_0xa161e7(0x1a7)]},_0x46979c);else{if(_0x46979c[_0xa161e7(0x183)]){const _0x2c037f=await selectSingleAppcode(_0x46979c[_0xa161e7(0x16e)]);await runCreate({'projectName':_0x46979c[_0xa161e7(0x183)],'appCode':_0x2c037f||undefined,'env':_0x46979c['env']},_0x46979c);}else await guidedCreateProject(_0x567cdd=>runCreate(_0x567cdd,_0x46979c),_0x46979c['env'],_0x46979c[_0xa161e7(0x16e)]);}}async function runCreate(_0x144709,_0x35abf1){const _0x4f2a54=a164_0x3c74;_0x144709[_0x4f2a54(0x1b9)]=validateProjectName(_0x144709[_0x4f2a54(0x1b9)]);const _0x1e1986=a164_0x51e674[_0x4f2a54(0x184)](process[_0x4f2a54(0x196)](),_0x144709[_0x4f2a54(0x1b9)]);if(a164_0x1adba8[_0x4f2a54(0x1ac)](_0x1e1986))throw new Error(_0x4f2a54(0x1c2)+_0x144709['projectName']+'\x20already\x20exists');let _0x19d847=null;try{a164_0x1adba8['accessSync'](a164_0x51e674['dirname'](_0x1e1986),a164_0x1adba8[_0x4f2a54(0x189)][_0x4f2a54(0x1a2)]);}catch{throw new Error('Cannot\x20create\x20project\x20in\x20current\x20directory,\x20please\x20check\x20directory\x20permissions');}logger[_0x4f2a54(0x1a3)](_0x4f2a54(0x193),_0x4f2a54(0x1c1)+_0x144709[_0x4f2a54(0x1b9)],{'projectDir':_0x1e1986,'appCode':_0x144709[_0x4f2a54(0x17d)]}),console[_0x4f2a54(0x186)](),console[_0x4f2a54(0x186)](a164_0x4345ce[_0x4f2a54(0x168)](_0x4f2a54(0x180))+_0x4f2a54(0x1a9)+a164_0x4345ce[_0x4f2a54(0x168)](_0x144709[_0x4f2a54(0x1b9)])+(_0x144709[_0x4f2a54(0x17d)]?'\x20|\x20AppCode:\x20'+a164_0x4345ce[_0x4f2a54(0x192)](_0x144709[_0x4f2a54(0x17d)]):''));try{await runTask(_0x4f2a54(0x16c),_0x3d7de8=>copyProjectTemplate(_0x144709[_0x4f2a54(0x1b9)],_0xba5138=>_0x3d7de8(projectTemplateStageLabel(_0xba5138))),_0x4f2a54(0x19f)),_0x19d847=readDirectoryIdentity(_0x1e1986);if(!_0x19d847)throw new Error(_0x4f2a54(0x1c8));await updatePackageJsonName(_0x144709['projectName']),await runTask('Install\x20dependencies',()=>installDependencies(_0x144709[_0x4f2a54(0x1b9)])),await runTask(_0x4f2a54(0x175),()=>formatProjectCode(_0x144709[_0x4f2a54(0x1b9)])),await configureAppCode(_0x144709[_0x4f2a54(0x1b9)],_0x144709['appCode']||'',_0x144709[_0x4f2a54(0x1a7)]);let _0x452b6c=![];if(_0x144709[_0x4f2a54(0x17d)]){console[_0x4f2a54(0x186)](_0x4f2a54(0x1b2));const _0x58132f=process[_0x4f2a54(0x196)]();try{process['chdir'](_0x1e1986);const _0x161f9f=_0x144709[_0x4f2a54(0x1a7)]||_0x4f2a54(0x176);initEnv(_0x161f9f);const {configArray:_0x338c92}=await fetchModelList(_0x144709['appCode'],_0x35abf1[_0x4f2a54(0x16e)]||''),_0x41a8d2=DEFAULT_API_DIR,_0x4a0c66=await generateApiFile(_0x338c92,'',_0x144709[_0x4f2a54(0x17d)],!![],_0x161f9f,_0x41a8d2);console['log'](_0x4f2a54(0x1b6)+_0x338c92['length']+'\x20dataset(s),\x20generated\x20'+_0x4a0c66['modelCount']+_0x4f2a54(0x1b3)),logger['info'](_0x4f2a54(0x193),_0x4f2a54(0x1bd)+_0x144709[_0x4f2a54(0x17d)]);}catch(_0xa8c7fe){_0x452b6c=!![],console[_0x4f2a54(0x186)](_0x4f2a54(0x1c5)),logger['warn'](_0x4f2a54(0x193),_0x4f2a54(0x1aa),{'error':_0xa8c7fe instanceof Error?_0xa8c7fe[_0x4f2a54(0x198)]:String(_0xa8c7fe)});}finally{process[_0x4f2a54(0x19c)](_0x58132f);}}logger[_0x4f2a54(0x185)](_0x1e1986),logger[_0x4f2a54(0x1cb)](_0x4f2a54(0x193),_0x4f2a54(0x1a4)+_0x144709[_0x4f2a54(0x1b9)]),console['log'](),console[_0x4f2a54(0x186)](a164_0x4345ce['green']('─'[_0x4f2a54(0x1be)](0x3c))),console[_0x4f2a54(0x186)](a164_0x4345ce[_0x4f2a54(0x192)][_0x4f2a54(0x18b)]('🚀\x20Next\x20Steps:')),console['log'](),console['log'](_0x4f2a54(0x169)+a164_0x4345ce[_0x4f2a54(0x192)][_0x4f2a54(0x18b)](_0x4f2a54(0x1ca)+_0x144709[_0x4f2a54(0x1b9)]+_0x4f2a54(0x167)+CLI_BIN_NAME+_0x4f2a54(0x195))),_0x452b6c&&console[_0x4f2a54(0x186)](_0x4f2a54(0x17a)+a164_0x4345ce[_0x4f2a54(0x192)][_0x4f2a54(0x18b)](CLI_BIN_NAME+'\x20api\x20pull')),console[_0x4f2a54(0x186)](a164_0x4345ce['green']('─'[_0x4f2a54(0x1be)](0x3c)));}catch(_0x67a192){logger['error'](_0x4f2a54(0x193),'项目创建失败:\x20'+_0x144709['projectName'],{'error':_0x67a192 instanceof Error?_0x67a192['message']:String(_0x67a192)});try{const _0x5c60c5=readDirectoryIdentity(_0x1e1986);if(_0x19d847&&_0x5c60c5?.[_0x4f2a54(0x191)]===_0x19d847['dev']&&_0x5c60c5[_0x4f2a54(0x1c6)]===_0x19d847[_0x4f2a54(0x1c6)])console[_0x4f2a54(0x186)](_0x4f2a54(0x179)+_0x1e1986),a164_0x1adba8['rmSync'](_0x1e1986,{'recursive':!![],'force':!![]});else _0x5c60c5&&logger[_0x4f2a54(0x188)](_0x4f2a54(0x193),_0x4f2a54(0x177)+_0x1e1986);}catch{logger['warn'](_0x4f2a54(0x193),_0x4f2a54(0x18f)+_0x1e1986);}throw _0x67a192;}}async function runTask(_0x29a420,_0x3e6651,_0xe6f068=_0x29a420){const _0x1854f2=a164_0x3c74,_0x47abf0=a164_0x9db58c(_0x29a420+_0x1854f2(0x1bc))['start']();try{const _0x3f6c49=await _0x3e6651(_0x51b002=>{const _0x542d15=_0x1854f2;_0x47abf0[_0x542d15(0x1c4)]=_0x51b002+_0x542d15(0x1bc);});_0x47abf0[_0x1854f2(0x16b)](),console[_0x1854f2(0x186)](''+a164_0x4345ce[_0x1854f2(0x168)](_0x1854f2(0x180))+_0xe6f068+'\x20'+a164_0x4345ce[_0x1854f2(0x1bf)]('['+_0x3f6c49+']'));}catch(_0x3a86dc){_0x47abf0[_0x1854f2(0x178)](_0x29a420);throw _0x3a86dc;}}function projectTemplateStageLabel(_0x22a942){const _0x26a80d=a164_0x3c74;switch(_0x22a942){case _0x26a80d(0x19b):return _0x26a80d(0x16c);case _0x26a80d(0x1b5):return'Downloading\x20project\x20template';case _0x26a80d(0x16d):return _0x26a80d(0x19a);case'extracting':return _0x26a80d(0x1a6);}}async function updatePackageJsonName(_0x1b3010){const _0x1793d9=a164_0x3c74,_0x31c5ad=a164_0x51e674['resolve'](process['cwd'](),_0x1b3010),_0x57e437=a164_0x51e674[_0x1793d9(0x174)](_0x31c5ad,_0x1793d9(0x187));try{console['log']('*\x20Updating\x20package.json\x20name\x20and\x20description\x20fields');const _0x4797ae=getRabetbaseCliPackageRoot(),_0x55dbc0=a164_0x51e674[_0x1793d9(0x174)](_0x4797ae,_0x1793d9(0x187));let _0x19a352=_0x1793d9(0x1b0);try{const _0x4b6f7e=JSON[_0x1793d9(0x16f)](a164_0x1adba8[_0x1793d9(0x18a)](_0x55dbc0,_0x1793d9(0x194)));_0x19a352=_0x4b6f7e['version']||'1.0.0';}catch{}const _0x5d0f48=a164_0x1adba8['readFileSync'](_0x57e437,_0x1793d9(0x194)),_0x50b707=JSON[_0x1793d9(0x16f)](_0x5d0f48);_0x50b707[_0x1793d9(0x173)]=_0x1b3010,_0x50b707[_0x1793d9(0x1ba)]=_0x1b3010+_0x1793d9(0x1ae)+_0x19a352,a164_0x1adba8[_0x1793d9(0x1a0)](_0x57e437,JSON[_0x1793d9(0x1c9)](_0x50b707,null,0x2)+'\x0a',_0x1793d9(0x194)),console['log'](_0x1793d9(0x17e)+_0x1b3010),logger['info']('create','更新\x20package.json\x20name');}catch(_0x3679ed){logger['error'](_0x1793d9(0x193),_0x1793d9(0x190));throw _0x3679ed;}}async function configureAppCode(_0x1b2473,_0x31efc6,_0x201952){const _0x11fcdf=a164_0x3c74,_0x24567a=a164_0x51e674['resolve'](process[_0x11fcdf(0x196)](),_0x1b2473),_0x5cbfb5=a164_0x51e674[_0x11fcdf(0x174)](_0x24567a,NEW_CONFIG_NAME);try{_0x31efc6?console[_0x11fcdf(0x186)]('*\x20Configuring\x20AppCode\x20for\x20project\x20'+_0x1b2473+':\x20'+_0x31efc6):console[_0x11fcdf(0x186)](_0x11fcdf(0x1af)+_0x1b2473);const _0xe9deaf=getRabetbaseCliPackageRoot(),_0x7a410d=a164_0x51e674['join'](_0xe9deaf,_0x11fcdf(0x187));let _0x41b46e=_0x11fcdf(0x1b0);try{const _0x43714a=JSON[_0x11fcdf(0x16f)](a164_0x1adba8[_0x11fcdf(0x18a)](_0x7a410d,'utf8'));_0x41b46e=_0x43714a[_0x11fcdf(0x1c3)]||_0x11fcdf(0x1b0);}catch{}const _0x194ad9=readConfig(),_0x4f776c=typeof _0x194ad9['env']===_0x11fcdf(0x19e)?_0x194ad9[_0x11fcdf(0x1a7)]:undefined,_0x112c3b={};for(const _0x4dfde1 of PROJECT_CREATE_INHERITABLE_KEYS){if(_0x194ad9[_0x4dfde1]!=null)_0x112c3b[_0x4dfde1]=_0x194ad9[_0x4dfde1];}const _0x387bf8=buildCanonicalProjectConfig(_0x112c3b,{'appCodes':_0x31efc6?[_0x31efc6]:[],'env':_0x201952||_0x4f776c||'production','metadata':{'createdAt':new Date()[_0x11fcdf(0x1a1)](),'version':_0x41b46e}});writeConfigFile(_0x5cbfb5,_0x387bf8),_0x31efc6?console[_0x11fcdf(0x186)](_0x11fcdf(0x1bb)+Object['keys'](_0x387bf8[_0x11fcdf(0x18e)]||{})[_0x11fcdf(0x174)](',\x20')+_0x11fcdf(0x172)+_0x387bf8[_0x11fcdf(0x199)]):console[_0x11fcdf(0x186)](_0x11fcdf(0x197)+CLI_BIN_NAME+_0x11fcdf(0x171)),logger[_0x11fcdf(0x1a3)](_0x11fcdf(0x193),_0x11fcdf(0x1b7)+_0x31efc6);}catch(_0x143d43){logger['error'](_0x11fcdf(0x193),_0x11fcdf(0x1c7));throw _0x143d43;}}
1
+ (function(_0x5ef9ab,_0x44db43){const _0x3e6539=a162_0x2742,_0x599c88=_0x5ef9ab();while(!![]){try{const _0x5dbbc8=-parseInt(_0x3e6539(0x10a))/0x1*(parseInt(_0x3e6539(0x11d))/0x2)+-parseInt(_0x3e6539(0x11c))/0x3*(-parseInt(_0x3e6539(0x104))/0x4)+parseInt(_0x3e6539(0xe3))/0x5+parseInt(_0x3e6539(0x110))/0x6+-parseInt(_0x3e6539(0x128))/0x7*(-parseInt(_0x3e6539(0x10d))/0x8)+parseInt(_0x3e6539(0xeb))/0x9*(-parseInt(_0x3e6539(0x113))/0xa)+-parseInt(_0x3e6539(0x115))/0xb*(parseInt(_0x3e6539(0xcb))/0xc);if(_0x5dbbc8===_0x44db43)break;else _0x599c88['push'](_0x599c88['shift']());}catch(_0x5a27e3){_0x599c88['push'](_0x599c88['shift']());}}}(a162_0x17a4,0x46a3c));import a162_0x200110 from'path';import a162_0x3ddce3 from'fs';function a162_0x2742(_0x5798ee,_0x56c930){_0x5798ee=_0x5798ee-0xca;const _0x17a47b=a162_0x17a4();let _0x2742b2=_0x17a47b[_0x5798ee];return _0x2742b2;}import a162_0x1ed93b from'chalk';import a162_0x3859e1 from'ora';import{guidedCreateProject}from'../../../commands/project/create/enhanced-guided-create.js';import{fetchModelList}from'../../../core/api-client.js';import{generateApiFile}from'../../../api/generate-api-file.js';import{initEnv}from'../../../constant/env.js';import{CLI_BIN_NAME}from'../../../constant/cli.js';import{DEFAULT_API_DIR}from'../../../constant/paths.js';import{loadRawConfigLayers,writeConfigFile,NEW_CONFIG_NAME}from'../../../context.js';import{copyProjectTemplate}from'../../../commands/project/create/use-copy-project-template.js';import{installDependencies}from'../../../commands/project/create/use-install-dependencies.js';import{formatProjectCode}from'../../../commands/project/create/use-format-code.js';import{logger}from'../../../utils/logger.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../../utils/cli-version-check.js';import{PROJECT_CREATE_INHERITABLE_KEYS,buildCanonicalProjectConfig}from'../../../config/schema.js';import{selectSingleAppcode}from'../../../commands/common/app-selector.js';import{getRabetbaseCliPackageRoot}from'../../../commands/project/create/project-template-path.js';import{validateProjectName}from'../../../commands/project/create/project-name.js';import{getSdkClientRoutingConfig}from'../../../constant/domain.js';import{generateSdkConfigFile}from'../../../api/generate-sdk-config-file.js';function readDirectoryIdentity(_0x13ad95){const _0x4f5dcb=a162_0x2742;try{const _0x47e1f8=a162_0x3ddce3['lstatSync'](_0x13ad95);if(!_0x47e1f8[_0x4f5dcb(0x114)]())return null;return{'dev':_0x47e1f8[_0x4f5dcb(0xec)],'ino':_0x47e1f8[_0x4f5dcb(0x112)]};}catch{return null;}}function a162_0x17a4(){const _0xc9b388=['chdir','🚀\x20Next\x20Steps:','repeat','cd\x20','Downloading\x20project\x20template','7CIAIpX','warn','cookie','2840ONIQcI','create','Updating\x20package.json\x20name','2783946fQVeDC','*\x20Configuring\x20AppCode\x20for\x20project\x20','ino','10RScjjX','isDirectory','22TkAfjQ','downloading','Resolving\x20project\x20template','parse','start','projectName','API\x20configuration\x20pull\x20failed','21KJgDWo','15710FMFBXd','toLocaleString','string','production','Cannot\x20create\x20project\x20in\x20current\x20directory,\x20please\x20check\x20directory\x20permissions','error','modelCount','Skip\x20cleanup:\x20project\x20directory\x20ownership\x20changed:\x20','needsUpgrade','resolving','utf8','8764uHjkqm','stringify','env','setLogPath','Starting\x20project\x20creation:\x20','keys','accessSync','extracting','appCode','success','Project\x20creation\x20failed:\x20','verifying','minimumVersion','\x20\x202.\x20Pull\x20API\x20configuration:\x20','bold','5821728xmadIw','version','apps','templateSource','constants','\x20|\x20AppCode:\x20','√\x20Configuration\x20file\x20created,\x20you\x20can\x20configure\x20later\x20with\x20\x27','log','W_OK','cyan','join','green','existsSync','\x20dataset(s),\x20generated\x20','*\x20Updating\x20package.json\x20name\x20and\x20description\x20fields','currentVersion','Unable\x20to\x20verify\x20ownership\x20of\x20the\x20created\x20project\x20directory','readFileSync','message','cwd','fail','name','\x20model(s)','Project\x20name:\x20','908090iQQPuY','stop','API\x20configuration\x20pulled:\x20','1.0.0','rmSync','Install\x20dependencies','writeFileSync','\x20run\x20start','497655kKSROD','dev','\x20config\x20set\x20appcode\x20<app-code>\x27','\x20&&\x20','Failed\x20to\x20configure\x20app\x20AppCode','dirname','info','\x20Generated\x20by\x20rabetbase\x20cli\x20','Copying\x20local\x20template\x20source','resolve','projectCode','package.json','belowMinimum','√\x20Pulled\x20','\x20api\x20pull','!\x20API\x20configuration\x20pull\x20error,\x20you\x20can\x20manually\x20run:\x20rabetbase\x20api\x20pull','*\x20Creating\x20configuration\x20file\x20for\x20project\x20','\x20\x201.\x20Start\x20project:\x20','Project\x20created:\x20','nonInteractive','*\x20Pulling\x20API\x20configuration...','CLI\x20version\x20check','...','\x20already\x20exists','Extracting\x20project\x20template','159908EZDjfs'];a162_0x17a4=function(){return _0xc9b388;};return a162_0x17a4();}export async function createApp(_0x214a38){const _0x5ea5e6=a162_0x2742,_0x323b2f=await checkCliVersion();(_0x323b2f[_0x5ea5e6(0x125)]||_0x323b2f[_0x5ea5e6(0xf7)])&&(printCliUpgradeWarning(_0x323b2f),assertCliVersionSupported(_0x323b2f),logger[_0x5ea5e6(0xf1)]('create',_0x5ea5e6(0x100),{'currentVersion':_0x323b2f[_0x5ea5e6(0xda)],'stableVersion':_0x323b2f['stableVersion'],'minimumVersion':_0x323b2f[_0x5ea5e6(0x134)],'needsUpgrade':_0x323b2f[_0x5ea5e6(0x125)],'belowMinimum':_0x323b2f[_0x5ea5e6(0xf7)]}));if(_0x214a38[_0x5ea5e6(0xf5)]&&(_0x214a38[_0x5ea5e6(0x130)]||_0x214a38[_0x5ea5e6(0xfe)]))await runCreate({'projectName':_0x214a38[_0x5ea5e6(0xf5)],'appCode':_0x214a38[_0x5ea5e6(0x130)],'env':_0x214a38[_0x5ea5e6(0x12a)]},_0x214a38);else{if(_0x214a38['projectCode']){const _0x114792=await selectSingleAppcode(_0x214a38[_0x5ea5e6(0x10c)]);await runCreate({'projectName':_0x214a38[_0x5ea5e6(0xf5)],'appCode':_0x114792||undefined,'env':_0x214a38[_0x5ea5e6(0x12a)]},_0x214a38);}else await guidedCreateProject(_0x2397e5=>runCreate(_0x2397e5,_0x214a38),_0x214a38[_0x5ea5e6(0x12a)],_0x214a38[_0x5ea5e6(0x10c)]);}}async function runCreate(_0x350441,_0x4f7e65){const _0x4d2aab=a162_0x2742;_0x350441[_0x4d2aab(0x11a)]=validateProjectName(_0x350441['projectName']);const _0x23713c=a162_0x200110[_0x4d2aab(0xf4)](process['cwd'](),_0x350441[_0x4d2aab(0x11a)]);if(a162_0x3ddce3[_0x4d2aab(0xd7)](_0x23713c))throw new Error('Project\x20directory\x20'+_0x350441[_0x4d2aab(0x11a)]+_0x4d2aab(0x102));let _0x5c69ab=null;try{a162_0x3ddce3[_0x4d2aab(0x12e)](a162_0x200110[_0x4d2aab(0xf0)](_0x23713c),a162_0x3ddce3[_0x4d2aab(0xcf)][_0x4d2aab(0xd3)]);}catch{throw new Error(_0x4d2aab(0x121));}logger[_0x4d2aab(0xf1)]('create',_0x4d2aab(0x12c)+_0x350441[_0x4d2aab(0x11a)],{'projectDir':_0x23713c,'appCode':_0x350441[_0x4d2aab(0x130)]}),console['log'](),console[_0x4d2aab(0xd2)](a162_0x1ed93b[_0x4d2aab(0xd6)]('\x20√\x20')+_0x4d2aab(0xe2)+a162_0x1ed93b[_0x4d2aab(0xd6)](_0x350441[_0x4d2aab(0x11a)])+(_0x350441[_0x4d2aab(0x130)]?_0x4d2aab(0xd0)+a162_0x1ed93b[_0x4d2aab(0xd4)](_0x350441[_0x4d2aab(0x130)]):''));try{await runTask('Resolving\x20project\x20template',_0x1c2159=>copyProjectTemplate(_0x350441[_0x4d2aab(0x11a)],_0x9c000a=>_0x1c2159(projectTemplateStageLabel(_0x9c000a)),_0x4f7e65[_0x4d2aab(0xce)]),'Project\x20template\x20ready'),_0x5c69ab=readDirectoryIdentity(_0x23713c);if(!_0x5c69ab)throw new Error(_0x4d2aab(0xdb));await updatePackageJsonName(_0x350441['projectName']),await runTask(_0x4d2aab(0xe8),()=>installDependencies(_0x350441['projectName'])),await runTask('Format\x20code',()=>formatProjectCode(_0x350441[_0x4d2aab(0x11a)])),await configureAppCode(_0x350441[_0x4d2aab(0x11a)],_0x350441[_0x4d2aab(0x130)]||'',_0x350441[_0x4d2aab(0x12a)]);let _0x934f8e=![];if(_0x350441['appCode']){console[_0x4d2aab(0xd2)](_0x4d2aab(0xff));const _0x561b00=process[_0x4d2aab(0xde)]();try{process[_0x4d2aab(0x105)](_0x23713c);const _0x151838=_0x350441[_0x4d2aab(0x12a)]||_0x4d2aab(0x120);initEnv(_0x151838);const {configArray:_0x114e8f}=await fetchModelList(_0x350441[_0x4d2aab(0x130)],_0x4f7e65[_0x4d2aab(0x10c)]||''),_0x33baee=DEFAULT_API_DIR,_0x2766f5=await generateApiFile(_0x114e8f,'',_0x350441[_0x4d2aab(0x130)],!![],_0x151838,_0x33baee,undefined,getSdkClientRoutingConfig(),{'overwriteTypescript':!![]});console['log'](_0x4d2aab(0xf8)+_0x114e8f['length']+_0x4d2aab(0xd8)+_0x2766f5[_0x4d2aab(0x123)]+_0x4d2aab(0xe1)),logger[_0x4d2aab(0xf1)](_0x4d2aab(0x10e),_0x4d2aab(0xe5)+_0x350441[_0x4d2aab(0x130)]);}catch(_0x28957a){_0x934f8e=!![],console['log'](_0x4d2aab(0xfa)),logger[_0x4d2aab(0x10b)](_0x4d2aab(0x10e),_0x4d2aab(0x11b),{'error':_0x28957a instanceof Error?_0x28957a[_0x4d2aab(0xdd)]:String(_0x28957a)});}finally{process['chdir'](_0x561b00);}}logger[_0x4d2aab(0x12b)](_0x23713c),logger[_0x4d2aab(0x131)](_0x4d2aab(0x10e),_0x4d2aab(0xfd)+_0x350441['projectName']),console[_0x4d2aab(0xd2)](),console['log'](a162_0x1ed93b[_0x4d2aab(0xd6)]('─'[_0x4d2aab(0x107)](0x3c))),console[_0x4d2aab(0xd2)](a162_0x1ed93b[_0x4d2aab(0xd4)]['bold'](_0x4d2aab(0x106))),console[_0x4d2aab(0xd2)](),console[_0x4d2aab(0xd2)](_0x4d2aab(0xfc)+a162_0x1ed93b[_0x4d2aab(0xd4)]['bold'](_0x4d2aab(0x108)+_0x350441['projectName']+_0x4d2aab(0xee)+CLI_BIN_NAME+_0x4d2aab(0xea))),_0x934f8e&&console[_0x4d2aab(0xd2)](_0x4d2aab(0x135)+a162_0x1ed93b[_0x4d2aab(0xd4)][_0x4d2aab(0xca)](CLI_BIN_NAME+_0x4d2aab(0xf9))),console[_0x4d2aab(0xd2)](a162_0x1ed93b[_0x4d2aab(0xd6)]('─'[_0x4d2aab(0x107)](0x3c)));}catch(_0x567bd0){logger[_0x4d2aab(0x122)](_0x4d2aab(0x10e),_0x4d2aab(0x132)+_0x350441[_0x4d2aab(0x11a)],{'error':_0x567bd0 instanceof Error?_0x567bd0[_0x4d2aab(0xdd)]:String(_0x567bd0)});try{const _0x229e93=readDirectoryIdentity(_0x23713c);if(_0x5c69ab&&_0x229e93?.[_0x4d2aab(0xec)]===_0x5c69ab[_0x4d2aab(0xec)]&&_0x229e93[_0x4d2aab(0x112)]===_0x5c69ab[_0x4d2aab(0x112)])console[_0x4d2aab(0xd2)]('*\x20Cleaning\x20up\x20failed\x20project\x20directory:\x20'+_0x23713c),a162_0x3ddce3[_0x4d2aab(0xe7)](_0x23713c,{'recursive':!![],'force':!![]});else _0x229e93&&logger[_0x4d2aab(0x10b)](_0x4d2aab(0x10e),_0x4d2aab(0x124)+_0x23713c);}catch{logger['warn'](_0x4d2aab(0x10e),'Failed\x20to\x20clean\x20up\x20project\x20directory:\x20'+_0x23713c);}throw _0x567bd0;}}async function runTask(_0x2e080c,_0xbb845,_0x459fe7=_0x2e080c){const _0x20a82e=a162_0x2742,_0x308b5d=a162_0x3859e1(_0x2e080c+_0x20a82e(0x101))[_0x20a82e(0x119)]();try{const _0x282593=await _0xbb845(_0x22a011=>{_0x308b5d['text']=_0x22a011+'...';});_0x308b5d[_0x20a82e(0xe4)](),console[_0x20a82e(0xd2)](''+a162_0x1ed93b['green']('\x20√\x20')+_0x459fe7+'\x20'+a162_0x1ed93b['gray']('['+_0x282593+']'));}catch(_0x2ca37b){_0x308b5d[_0x20a82e(0xdf)](_0x2e080c);throw _0x2ca37b;}}function projectTemplateStageLabel(_0x41c9a5){const _0x126039=a162_0x2742;switch(_0x41c9a5){case _0x126039(0x126):return _0x126039(0x117);case _0x126039(0x116):return _0x126039(0x109);case _0x126039(0x133):return'Verifying\x20project\x20template';case _0x126039(0x12f):return _0x126039(0x103);case'copying':return _0x126039(0xf3);}}async function updatePackageJsonName(_0x5d4fc7){const _0x4aa77e=a162_0x2742,_0x6d486b=a162_0x200110[_0x4aa77e(0xf4)](process[_0x4aa77e(0xde)](),_0x5d4fc7),_0x49884d=a162_0x200110[_0x4aa77e(0xd5)](_0x6d486b,_0x4aa77e(0xf6));try{console[_0x4aa77e(0xd2)](_0x4aa77e(0xd9));const _0x23a232=getRabetbaseCliPackageRoot(),_0x3105c4=a162_0x200110[_0x4aa77e(0xd5)](_0x23a232,_0x4aa77e(0xf6));let _0x419060=_0x4aa77e(0xe6);try{const _0x2deb00=JSON[_0x4aa77e(0x118)](a162_0x3ddce3[_0x4aa77e(0xdc)](_0x3105c4,_0x4aa77e(0x127)));_0x419060=_0x2deb00[_0x4aa77e(0xcc)]||_0x4aa77e(0xe6);}catch{}const _0x1a838f=a162_0x3ddce3[_0x4aa77e(0xdc)](_0x49884d,_0x4aa77e(0x127)),_0x379251=JSON['parse'](_0x1a838f);_0x379251[_0x4aa77e(0xe0)]=_0x5d4fc7,_0x379251['description']=_0x5d4fc7+_0x4aa77e(0xf2)+_0x419060,a162_0x3ddce3[_0x4aa77e(0xe9)](_0x49884d,JSON[_0x4aa77e(0x129)](_0x379251,null,0x2)+'\x0a','utf8'),console['log']('√\x20package.json\x20updated:\x20name='+_0x5d4fc7),logger[_0x4aa77e(0xf1)](_0x4aa77e(0x10e),_0x4aa77e(0x10f));}catch(_0x2b0cac){logger[_0x4aa77e(0x122)]('create','Failed\x20to\x20update\x20package.json');throw _0x2b0cac;}}async function configureAppCode(_0x14796c,_0x37ba5f,_0x4bb4ff){const _0x5b2183=a162_0x2742,_0x16b3e9=a162_0x200110[_0x5b2183(0xf4)](process[_0x5b2183(0xde)](),_0x14796c),_0x4e8877=a162_0x200110[_0x5b2183(0xd5)](_0x16b3e9,NEW_CONFIG_NAME);try{_0x37ba5f?console[_0x5b2183(0xd2)](_0x5b2183(0x111)+_0x14796c+':\x20'+_0x37ba5f):console[_0x5b2183(0xd2)](_0x5b2183(0xfb)+_0x14796c);const _0x56e098=getRabetbaseCliPackageRoot(),_0x21fd66=a162_0x200110['join'](_0x56e098,_0x5b2183(0xf6));let _0x1518e5=_0x5b2183(0xe6);try{const _0x1fef93=JSON[_0x5b2183(0x118)](a162_0x3ddce3[_0x5b2183(0xdc)](_0x21fd66,'utf8'));_0x1518e5=_0x1fef93[_0x5b2183(0xcc)]||_0x5b2183(0xe6);}catch{}const {globalConfig:_0x5d5ddd}=loadRawConfigLayers(),_0x39a7d0=typeof _0x5d5ddd['env']===_0x5b2183(0x11f)?_0x5d5ddd[_0x5b2183(0x12a)]:undefined,_0x3c2296={};for(const _0x52c66b of PROJECT_CREATE_INHERITABLE_KEYS){if(_0x5d5ddd[_0x52c66b]!=null)_0x3c2296[_0x52c66b]=_0x5d5ddd[_0x52c66b];}const _0x570260=buildCanonicalProjectConfig(_0x3c2296,{'appCodes':_0x37ba5f?[_0x37ba5f]:[],'env':_0x4bb4ff||_0x39a7d0||'production','metadata':{'createdAt':new Date()[_0x5b2183(0x11e)](),'version':_0x1518e5}});writeConfigFile(_0x4e8877,_0x570260),await generateSdkConfigFile(a162_0x200110['join'](_0x16b3e9,DEFAULT_API_DIR),getSdkClientRoutingConfig()),_0x37ba5f?console[_0x5b2183(0xd2)]('√\x20Configuration\x20file\x20created,\x20Apps:\x20'+Object[_0x5b2183(0x12d)](_0x570260[_0x5b2183(0xcd)]||{})['join'](',\x20')+'\x20|\x20Default:\x20implicit\x20(single\x20app)'):console[_0x5b2183(0xd2)](_0x5b2183(0xd1)+CLI_BIN_NAME+_0x5b2183(0xed)),logger[_0x5b2183(0xf1)]('create','Configured\x20app\x20AppCode:\x20'+_0x37ba5f);}catch(_0xeb2aa5){logger[_0x5b2183(0x122)]('create',_0x5b2183(0xef));throw _0xeb2aa5;}}
@@ -1,11 +1,15 @@
1
1
  export interface ProjectTemplateMaterialization {
2
- source: "cdn";
2
+ source: "cdn" | "local";
3
3
  version: string;
4
4
  }
5
- export type ProjectTemplateStage = "resolving" | "downloading" | "verifying" | "extracting";
5
+ export type ProjectTemplateStage = "resolving" | "downloading" | "verifying" | "extracting" | "copying";
6
6
  export type ProjectTemplateProgress = (stage: ProjectTemplateStage) => void;
7
7
  /**
8
8
  * Materialize the project template into a new target directory.
9
9
  * CDN is the single source for project templates.
10
10
  */
11
11
  export declare function materializeProjectTemplate(projectDir: string, onProgress?: ProjectTemplateProgress): Promise<ProjectTemplateMaterialization>;
12
+ /**
13
+ * Materialize an already-normalized local project template directory.
14
+ */
15
+ export declare function materializeLocalProjectTemplate(sourceDir: string, projectDir: string, onProgress?: ProjectTemplateProgress): Promise<ProjectTemplateMaterialization>;
@@ -1 +1 @@
1
- const a165_0xc01cfa=a165_0x2abf;(function(_0x427c27,_0xff2c66){const _0x54ea0d=a165_0x2abf,_0x4779b3=_0x427c27();while(!![]){try{const _0xac8a43=parseInt(_0x54ea0d(0xff))/0x1+parseInt(_0x54ea0d(0x118))/0x2*(parseInt(_0x54ea0d(0x121))/0x3)+-parseInt(_0x54ea0d(0x131))/0x4*(parseInt(_0x54ea0d(0x134))/0x5)+-parseInt(_0x54ea0d(0x102))/0x6+parseInt(_0x54ea0d(0xdf))/0x7*(parseInt(_0x54ea0d(0xe4))/0x8)+parseInt(_0x54ea0d(0x116))/0x9*(-parseInt(_0x54ea0d(0x100))/0xa)+parseInt(_0x54ea0d(0xfb))/0xb;if(_0xac8a43===_0xff2c66)break;else _0x4779b3['push'](_0x4779b3['shift']());}catch(_0x5c4a83){_0x4779b3['push'](_0x4779b3['shift']());}}}(a165_0x1c66,0xc94e5));import{createHash}from'node:crypto';import a165_0x4f130b from'node:fs/promises';import a165_0x38a9f8 from'node:path';import{PROJECT_TEMPLATE_ASSET_BASE_URL}from'../../../constant/cdn.js';function a165_0x2abf(_0x1478e7,_0xece0d2){_0x1478e7=_0x1478e7-0xdf;const _0x1c66b8=a165_0x1c66();let _0x2abf23=_0x1c66b8[_0x1478e7];return _0x2abf23;}import{extractProjectTemplateArchive}from'../../../commands/project/create/project-template-archive.js';import{getRabetbaseCdnConfig}from'../../../utils/cli-version-policy.js';import{CliErrors}from'../../../errors.js';const TEMPLATE_ID=a165_0xc01cfa(0x112),ARCHIVE_TIMEOUT_MS=0x3a98,MAX_ARCHIVE_SIZE=0x14*0x400*0x400;function nonEmptyString(_0x30168c){const _0x58fcf2=a165_0xc01cfa;return typeof _0x30168c===_0x58fcf2(0x132)&&_0x30168c[_0x58fcf2(0x129)]()?_0x30168c[_0x58fcf2(0x129)]():null;}function parseDescriptor(_0x476d83){const _0x3a72b7=a165_0xc01cfa;if(!_0x476d83||typeof _0x476d83!==_0x3a72b7(0xe7))throw new Error(_0x3a72b7(0x135)+TEMPLATE_ID+'\x22.');const _0x373dca=_0x476d83,_0x18e2e5=nonEmptyString(_0x373dca['version']),_0x7113b6=nonEmptyString(_0x373dca[_0x3a72b7(0xe0)]),_0x247e9a=nonEmptyString(_0x373dca[_0x3a72b7(0xf1)])?.[_0x3a72b7(0x10d)](),_0x3fa1f5=_0x373dca[_0x3a72b7(0x104)];if(!_0x18e2e5||!_0x7113b6||_0x7113b6!==a165_0x38a9f8[_0x3a72b7(0xfa)]['basename'](_0x7113b6)||_0x7113b6[_0x3a72b7(0x11f)]('\x5c')||!_0x247e9a||!/^sha256:[a-f0-9]{64}$/[_0x3a72b7(0x117)](_0x247e9a)||typeof _0x3fa1f5!==_0x3a72b7(0x109)||!Number['isSafeInteger'](_0x3fa1f5)||_0x3fa1f5<=0x0||_0x3fa1f5>MAX_ARCHIVE_SIZE)throw new Error(_0x3a72b7(0x12c)+TEMPLATE_ID+'\x22.');return{'version':_0x18e2e5,'name':_0x7113b6,'sha256':_0x247e9a,'size':_0x3fa1f5};}async function fetchWithTimeout(_0x5aad0a,_0x425c05,_0x1d3ad5,_0x448c94){const _0x48c0f5=a165_0xc01cfa,_0x578fed=new AbortController(),_0x2c8d2f=setTimeout(()=>_0x578fed[_0x48c0f5(0xeb)](),_0x425c05);try{const _0xbd35e0=await fetch(_0x5aad0a,{'headers':{'Accept':_0x1d3ad5},'signal':_0x578fed[_0x48c0f5(0x115)]});return await _0x448c94(_0xbd35e0);}finally{clearTimeout(_0x2c8d2f);}}async function fetchTemplateDescriptor(){const _0x4976ec=a165_0xc01cfa,_0x3bde7e=await getRabetbaseCdnConfig();if(!_0x3bde7e)throw new Error('Rabetbase\x20CDN\x20config\x20is\x20unavailable.');return parseDescriptor(_0x3bde7e[_0x4976ec(0x114)]);}function a165_0x1c66(){const _0x50cbfc=['Check\x20your\x20network\x20and\x20retry.\x20Details:\x20','sha256','application/zip','concat','content-length','getReader','get','byteLength','CDN\x20project\x20template\x20exceeds\x20its\x20declared\x20download\x20size.','CDN\x20project\x20template\x20size\x20mismatch:\x20expected\x20','posix','14535268FLIUkT','cdn','sha256:','verifying','855928YLbUNg','360yKkTis','arrayBuffer','7095090piLAGk','code','size','resolve','extracting','join','package.json','number','CDN\x20project\x20template\x20request\x20failed\x20with\x20HTTP\x20','validation','CDN\x20project\x20template\x20exceeds\x20the\x2020\x20MB\x20download\x20limit.','toLowerCase','Unable\x20to\x20download\x20a\x20valid\x20project\x20template\x20from\x20CDN.','pathname','https:','href','sub-app-react-demo','project','projectTemplate','signal','369666wqksth','test','2iFObSf','rename','CDN\x20project\x20template\x20URL\x20must\x20use\x20the\x20trusted\x20HTTPS\x20origin.',',\x20received\x20','push','startsWith','message','includes','version','3737166uoCslw','CDN\x20project\x20template\x20checksum\x20verification\x20failed.','isFinite','body','dirname','Project\x20template\x20package.json\x20is\x20invalid.','cancel','status','trim','readFile','mkdtemp','CDN\x20config\x20contains\x20an\x20invalid\x20descriptor\x20for\x20\x22','hex','Project\x20directory\x20already\x20exists:\x20','mkdir','parse','2348XyhjWP','string','resolving','9565oTvimi','CDN\x20config\x20does\x20not\x20define\x20template\x20\x22','utf8','dev','21DNbUlM','name','template.zip','ino','EEXIST','3161656XoZcJK','length','from','object','read','Use\x20a\x20different\x20project\x20name.','origin','abort','lstat','ENOENT','.rabetbase-create-','Unable\x20to\x20claim\x20the\x20project\x20directory.'];a165_0x1c66=function(){return _0x50cbfc;};return a165_0x1c66();}function resolveArchiveUrl(_0x255d46){const _0x26f388=a165_0xc01cfa,_0x5a98cd=new URL(PROJECT_TEMPLATE_ASSET_BASE_URL+'/'),_0x41a55f=new URL(_0x255d46,_0x5a98cd);if(_0x41a55f['protocol']!==_0x26f388(0x110)||_0x41a55f['origin']!==_0x5a98cd[_0x26f388(0xea)]||!_0x41a55f[_0x26f388(0x10f)][_0x26f388(0x11d)](_0x5a98cd[_0x26f388(0x10f)]))throw new Error(_0x26f388(0x11a));return _0x41a55f[_0x26f388(0x111)];}async function readResponseBytes(_0xbeb862,_0x31b0e6){const _0x26ba21=a165_0xc01cfa;if(!_0xbeb862['body']){const _0x44061b=Buffer['from'](await _0xbeb862[_0x26ba21(0x101)]());if(_0x44061b[_0x26ba21(0xe5)]>_0x31b0e6)throw new Error(_0x26ba21(0xf8));return _0x44061b;}const _0x11a4f5=_0xbeb862[_0x26ba21(0x124)][_0x26ba21(0xf5)](),_0x79ef38=[];let _0x99ab49=0x0;try{while(!![]){const {done:_0x4c2c34,value:_0x164dbc}=await _0x11a4f5[_0x26ba21(0xe8)]();if(_0x4c2c34)break;_0x99ab49+=_0x164dbc[_0x26ba21(0xf7)];if(_0x99ab49>_0x31b0e6){await _0x11a4f5[_0x26ba21(0x127)]();throw new Error(_0x26ba21(0xf8));}_0x79ef38[_0x26ba21(0x11c)](Buffer[_0x26ba21(0xe6)](_0x164dbc));}}finally{_0x11a4f5['releaseLock']();}return Buffer[_0x26ba21(0xf3)](_0x79ef38,_0x99ab49);}async function downloadArchive(_0x582503,_0x5856c5,_0x441097){const _0x45e993=a165_0xc01cfa,_0x166057=await fetchWithTimeout(resolveArchiveUrl(_0x582503[_0x45e993(0xe0)]),ARCHIVE_TIMEOUT_MS,_0x45e993(0xf2),async _0x174025=>{const _0x134dea=_0x45e993;if(!_0x174025['ok'])throw new Error(_0x134dea(0x10a)+_0x174025[_0x134dea(0x128)]+'.');const _0xf91929=Number(_0x174025['headers'][_0x134dea(0xf6)](_0x134dea(0xf4)));if(Number[_0x134dea(0x123)](_0xf91929)&&_0xf91929>MAX_ARCHIVE_SIZE)throw new Error(_0x134dea(0x10c));return readResponseBytes(_0x174025,_0x582503[_0x134dea(0x104)]);});if(_0x166057[_0x45e993(0xe5)]!==_0x582503[_0x45e993(0x104)])throw new Error(_0x45e993(0xf9)+_0x582503['size']+_0x45e993(0x11b)+_0x166057[_0x45e993(0xe5)]+'.');_0x441097?.(_0x45e993(0xfe));const _0x107750=_0x45e993(0xfd)+createHash(_0x45e993(0xf1))['update'](_0x166057)['digest'](_0x45e993(0x12d));if(_0x107750!==_0x582503[_0x45e993(0xf1)])throw new Error(_0x45e993(0x122));await a165_0x4f130b['writeFile'](_0x5856c5,_0x166057,{'flag':'wx'});}async function assertTemplateRoot(_0x539bd3){const _0x46a231=a165_0xc01cfa,_0x509a1d=a165_0x38a9f8['join'](_0x539bd3,_0x46a231(0x108)),_0x3ca97d=JSON[_0x46a231(0x130)](await a165_0x4f130b[_0x46a231(0x12a)](_0x509a1d,_0x46a231(0x136)));if(!_0x3ca97d||typeof _0x3ca97d!==_0x46a231(0xe7))throw new Error(_0x46a231(0x126));}async function readDirectoryIdentity(_0xf2821){const _0x429fab=a165_0xc01cfa;try{const _0x5674fb=await a165_0x4f130b[_0x429fab(0xec)](_0xf2821);if(!_0x5674fb['isDirectory']())return null;return{'dev':_0x5674fb[_0x429fab(0x137)],'ino':_0x5674fb[_0x429fab(0xe2)]};}catch{return null;}}async function commitStagedProject(_0x83a1c4,_0x1b32b4){const _0x9747e2=a165_0xc01cfa;await a165_0x4f130b[_0x9747e2(0x12f)](_0x1b32b4);const _0x843e23=await readDirectoryIdentity(_0x1b32b4);if(!_0x843e23)throw new Error(_0x9747e2(0xef));try{for(const _0x551a68 of await a165_0x4f130b['readdir'](_0x83a1c4)){await a165_0x4f130b[_0x9747e2(0x119)](a165_0x38a9f8[_0x9747e2(0x107)](_0x83a1c4,_0x551a68),a165_0x38a9f8[_0x9747e2(0x107)](_0x1b32b4,_0x551a68));}}catch(_0x5153e1){const _0x128593=await readDirectoryIdentity(_0x1b32b4);_0x128593?.['dev']===_0x843e23[_0x9747e2(0x137)]&&_0x128593[_0x9747e2(0xe2)]===_0x843e23[_0x9747e2(0xe2)]&&await a165_0x4f130b['rm'](_0x1b32b4,{'recursive':!![],'force':!![]});throw _0x5153e1;}}export async function materializeProjectTemplate(_0x4e89e5,_0x191789){const _0x2aeb8d=a165_0xc01cfa,_0x5646e1=a165_0x38a9f8[_0x2aeb8d(0x105)](_0x4e89e5),_0x2bfd5e=a165_0x38a9f8[_0x2aeb8d(0x125)](_0x5646e1);try{await a165_0x4f130b[_0x2aeb8d(0xec)](_0x5646e1);throw new Error(_0x2aeb8d(0x12e)+_0x5646e1);}catch(_0x5129e1){if(_0x5129e1[_0x2aeb8d(0x103)]!==_0x2aeb8d(0xed))throw _0x5129e1;}const _0x198482=await a165_0x4f130b[_0x2aeb8d(0x12b)](a165_0x38a9f8[_0x2aeb8d(0x107)](_0x2bfd5e,_0x2aeb8d(0xee))),_0x1f1daf=a165_0x38a9f8[_0x2aeb8d(0x107)](_0x198482,_0x2aeb8d(0x113)),_0xe3302f=a165_0x38a9f8[_0x2aeb8d(0x107)](_0x198482,_0x2aeb8d(0xe1));try{try{_0x191789?.(_0x2aeb8d(0x133));const _0x49b05a=await fetchTemplateDescriptor();return _0x191789?.('downloading'),await downloadArchive(_0x49b05a,_0xe3302f,_0x191789),_0x191789?.(_0x2aeb8d(0x106)),await extractProjectTemplateArchive(_0xe3302f,_0x1f1daf),await assertTemplateRoot(_0x1f1daf),await commitStagedProject(_0x1f1daf,_0x5646e1),{'source':_0x2aeb8d(0xfc),'version':_0x49b05a[_0x2aeb8d(0x120)]};}catch(_0x210584){if(_0x210584[_0x2aeb8d(0x103)]===_0x2aeb8d(0xe3))throw CliErrors[_0x2aeb8d(0x10b)](_0x2aeb8d(0x12e)+_0x5646e1,_0x2aeb8d(0xe9));const _0x58f973=_0x210584 instanceof Error?_0x210584[_0x2aeb8d(0x11e)]:String(_0x210584);throw CliErrors['validation'](_0x2aeb8d(0x10e),_0x2aeb8d(0xf0)+_0x58f973);}}finally{await a165_0x4f130b['rm'](_0x198482,{'recursive':!![],'force':!![]});}}
1
+ const a163_0x3744fc=a163_0x1691;(function(_0x227fc8,_0x25c9d1){const _0xd5c7a2=a163_0x1691,_0x3a15dc=_0x227fc8();while(!![]){try{const _0x16256b=parseInt(_0xd5c7a2(0x1d9))/0x1*(parseInt(_0xd5c7a2(0x1f2))/0x2)+-parseInt(_0xd5c7a2(0x1b0))/0x3*(parseInt(_0xd5c7a2(0x1f7))/0x4)+-parseInt(_0xd5c7a2(0x20f))/0x5*(parseInt(_0xd5c7a2(0x20e))/0x6)+parseInt(_0xd5c7a2(0x1f5))/0x7+parseInt(_0xd5c7a2(0x1c0))/0x8+-parseInt(_0xd5c7a2(0x1d2))/0x9*(-parseInt(_0xd5c7a2(0x1e9))/0xa)+parseInt(_0xd5c7a2(0x207))/0xb*(-parseInt(_0xd5c7a2(0x1da))/0xc);if(_0x16256b===_0x25c9d1)break;else _0x3a15dc['push'](_0x3a15dc['shift']());}catch(_0x3a3567){_0x3a15dc['push'](_0x3a15dc['shift']());}}}(a163_0xd02c,0x48755));function a163_0x1691(_0x2069c1,_0x17013){_0x2069c1=_0x2069c1-0x1a2;const _0xd02c91=a163_0xd02c();let _0x1691dd=_0xd02c91[_0x2069c1];return _0x1691dd;}import{createHash}from'node:crypto';import a163_0x313a73 from'node:fs/promises';import a163_0x531feb from'node:path';import{PROJECT_TEMPLATE_ASSET_BASE_URL}from'../../../constant/cdn.js';import{extractProjectTemplateArchive}from'../../../commands/project/create/project-template-archive.js';import{getRabetbaseCdnConfig}from'../../../utils/cli-version-policy.js';import{CliErrors}from'../../../errors.js';const TEMPLATE_ID=a163_0x3744fc(0x1f1),ARCHIVE_TIMEOUT_MS=0x3a98,MAX_ARCHIVE_SIZE=0x14*0x400*0x400;function nonEmptyString(_0x58495d){const _0x845349=a163_0x3744fc;return typeof _0x58495d===_0x845349(0x1a8)&&_0x58495d[_0x845349(0x1fb)]()?_0x58495d[_0x845349(0x1fb)]():null;}function parseDescriptor(_0x347818){const _0x293947=a163_0x3744fc;if(!_0x347818||typeof _0x347818!==_0x293947(0x1b5))throw new Error('CDN\x20config\x20does\x20not\x20define\x20template\x20\x22'+TEMPLATE_ID+'\x22.');const _0x11b91a=_0x347818,_0x515475=nonEmptyString(_0x11b91a[_0x293947(0x1d1)]),_0x2995e2=nonEmptyString(_0x11b91a[_0x293947(0x1d3)]),_0x453dda=nonEmptyString(_0x11b91a[_0x293947(0x20d)])?.['toLowerCase'](),_0x5f35b4=_0x11b91a[_0x293947(0x1b4)];if(!_0x515475||!_0x2995e2||_0x2995e2!==a163_0x531feb[_0x293947(0x1ae)][_0x293947(0x1ff)](_0x2995e2)||_0x2995e2[_0x293947(0x1f4)]('\x5c')||!_0x453dda||!/^sha256:[a-f0-9]{64}$/[_0x293947(0x1eb)](_0x453dda)||typeof _0x5f35b4!=='number'||!Number[_0x293947(0x1a2)](_0x5f35b4)||_0x5f35b4<=0x0||_0x5f35b4>MAX_ARCHIVE_SIZE)throw new Error(_0x293947(0x1cf)+TEMPLATE_ID+'\x22.');return{'version':_0x515475,'name':_0x2995e2,'sha256':_0x453dda,'size':_0x5f35b4};}async function fetchWithTimeout(_0x2c6acc,_0x4ce4b8,_0x2a57da,_0x3a575e){const _0x388382=a163_0x3744fc,_0x11b9e3=new AbortController(),_0x50f79e=setTimeout(()=>_0x11b9e3[_0x388382(0x1fc)](),_0x4ce4b8);try{const _0x228cf1=await fetch(_0x2c6acc,{'headers':{'Accept':_0x2a57da},'signal':_0x11b9e3[_0x388382(0x1a3)]});return await _0x3a575e(_0x228cf1);}finally{clearTimeout(_0x50f79e);}}async function fetchTemplateDescriptor(){const _0x41c06b=a163_0x3744fc,_0x18ebc8=await getRabetbaseCdnConfig();if(!_0x18ebc8)throw new Error(_0x41c06b(0x1fd));return parseDescriptor(_0x18ebc8[_0x41c06b(0x201)]);}function resolveArchiveUrl(_0x4d4409){const _0x5f4ae3=a163_0x3744fc,_0x3746e5=new URL(PROJECT_TEMPLATE_ASSET_BASE_URL+'/'),_0x34c461=new URL(_0x4d4409,_0x3746e5);if(_0x34c461[_0x5f4ae3(0x1e6)]!==_0x5f4ae3(0x1cc)||_0x34c461[_0x5f4ae3(0x1fa)]!==_0x3746e5[_0x5f4ae3(0x1fa)]||!_0x34c461['pathname'][_0x5f4ae3(0x20a)](_0x3746e5[_0x5f4ae3(0x1c5)]))throw new Error('CDN\x20project\x20template\x20URL\x20must\x20use\x20the\x20trusted\x20HTTPS\x20origin.');return _0x34c461['href'];}async function readResponseBytes(_0x30fc1d,_0x4faa9c){const _0x44965b=a163_0x3744fc;if(!_0x30fc1d[_0x44965b(0x1dc)]){const _0xc09893=Buffer[_0x44965b(0x1a5)](await _0x30fc1d['arrayBuffer']());if(_0xc09893[_0x44965b(0x1f0)]>_0x4faa9c)throw new Error('CDN\x20project\x20template\x20exceeds\x20its\x20declared\x20download\x20size.');return _0xc09893;}const _0x2870eb=_0x30fc1d['body'][_0x44965b(0x1c7)](),_0x7c5e6c=[];let _0xf76863=0x0;try{while(!![]){const {done:_0x44ff1f,value:_0x343b45}=await _0x2870eb['read']();if(_0x44ff1f)break;_0xf76863+=_0x343b45['byteLength'];if(_0xf76863>_0x4faa9c){await _0x2870eb[_0x44965b(0x1f6)]();throw new Error(_0x44965b(0x1de));}_0x7c5e6c[_0x44965b(0x208)](Buffer['from'](_0x343b45));}}finally{_0x2870eb[_0x44965b(0x1cd)]();}return Buffer[_0x44965b(0x1c3)](_0x7c5e6c,_0xf76863);}async function downloadArchive(_0x46808d,_0x124dfd,_0x376a81){const _0x1de763=a163_0x3744fc,_0x120509=await fetchWithTimeout(resolveArchiveUrl(_0x46808d[_0x1de763(0x1d3)]),ARCHIVE_TIMEOUT_MS,'application/zip',async _0x4f2a25=>{const _0x313163=_0x1de763;if(!_0x4f2a25['ok'])throw new Error('CDN\x20project\x20template\x20request\x20failed\x20with\x20HTTP\x20'+_0x4f2a25[_0x313163(0x1ba)]+'.');const _0x2a54ed=Number(_0x4f2a25['headers'][_0x313163(0x1e8)](_0x313163(0x1f8)));if(Number['isFinite'](_0x2a54ed)&&_0x2a54ed>MAX_ARCHIVE_SIZE)throw new Error(_0x313163(0x1ef));return readResponseBytes(_0x4f2a25,_0x46808d['size']);});if(_0x120509[_0x1de763(0x1f0)]!==_0x46808d[_0x1de763(0x1b4)])throw new Error('CDN\x20project\x20template\x20size\x20mismatch:\x20expected\x20'+_0x46808d['size']+_0x1de763(0x1ed)+_0x120509[_0x1de763(0x1f0)]+'.');_0x376a81?.('verifying');const _0x1dc8b4=_0x1de763(0x1d4)+createHash('sha256')[_0x1de763(0x1ab)](_0x120509)[_0x1de763(0x1a4)](_0x1de763(0x1ee));if(_0x1dc8b4!==_0x46808d['sha256'])throw new Error('CDN\x20project\x20template\x20checksum\x20verification\x20failed.');await a163_0x313a73[_0x1de763(0x1ec)](_0x124dfd,_0x120509,{'flag':'wx'});}async function assertTemplateRoot(_0x2908a7){const _0x270d9c=a163_0x3744fc,_0x52d754=a163_0x531feb[_0x270d9c(0x1c1)](_0x2908a7,'package.json'),_0x25fb18=JSON['parse'](await a163_0x313a73['readFile'](_0x52d754,_0x270d9c(0x1aa)));if(!_0x25fb18||typeof _0x25fb18!==_0x270d9c(0x1b5))throw new Error(_0x270d9c(0x1ca));}const LOCAL_FORBIDDEN_NAMES=new Set([a163_0x3744fc(0x202),a163_0x3744fc(0x203),a163_0x3744fc(0x1b9),a163_0x3744fc(0x1b2),'.lovrabet.json','.lovrabet.log',a163_0x3744fc(0x1f3),a163_0x3744fc(0x1f9),a163_0x3744fc(0x1ac),a163_0x3744fc(0x205)]);function isForbiddenTemplateEntry(_0x57ca51){const _0x160ac9=a163_0x3744fc;if(LOCAL_FORBIDDEN_NAMES['has'](_0x57ca51))return!![];return _0x57ca51===_0x160ac9(0x1c4)||_0x57ca51['startsWith'](_0x160ac9(0x1b8))&&_0x57ca51!==_0x160ac9(0x1fe);}function containsPath(_0x2a3c1a,_0x1ddb38){const _0x5c7ca5=a163_0x3744fc,_0x545539=a163_0x531feb[_0x5c7ca5(0x1d8)](_0x2a3c1a,_0x1ddb38);return _0x545539===''||!_0x545539['startsWith']('..'+a163_0x531feb[_0x5c7ca5(0x1d7)])&&_0x545539!=='..'&&!a163_0x531feb[_0x5c7ca5(0x1b3)](_0x545539);}async function copyLocalTemplateDirectory(_0x15e9b1,_0x3318f0){const _0x54ac9a=a163_0x3744fc;await a163_0x313a73[_0x54ac9a(0x209)](_0x3318f0,{'recursive':!![]});for(const _0x5c6d30 of await a163_0x313a73['readdir'](_0x15e9b1,{'withFileTypes':!![]})){const _0x2dc708=a163_0x531feb[_0x54ac9a(0x1c1)](_0x15e9b1,_0x5c6d30[_0x54ac9a(0x1d3)]),_0x59c3fc=a163_0x531feb[_0x54ac9a(0x1c1)](_0x3318f0,_0x5c6d30[_0x54ac9a(0x1d3)]);if(isForbiddenTemplateEntry(_0x5c6d30[_0x54ac9a(0x1d3)]))throw new Error('Local\x20project\x20template\x20contains\x20a\x20local-only\x20entry:\x20'+_0x2dc708);const _0x363124=await a163_0x313a73['lstat'](_0x2dc708);if(_0x363124['isSymbolicLink']())throw new Error(_0x54ac9a(0x1ce)+_0x2dc708);if(_0x363124[_0x54ac9a(0x1db)]()){await copyLocalTemplateDirectory(_0x2dc708,_0x59c3fc);continue;}if(!_0x363124[_0x54ac9a(0x210)]())continue;await a163_0x313a73[_0x54ac9a(0x1c8)](_0x2dc708,_0x59c3fc),await a163_0x313a73[_0x54ac9a(0x1c6)](_0x59c3fc,_0x363124['mode']&0x1ff);}}function a163_0xd02c(){const _0x220431=['content-length','.rabetbase.json','origin','trim','abort','Rabetbase\x20CDN\x20config\x20is\x20unavailable.','.env.example','basename','dirname','projectTemplate','.DS_Store','.codegraph','Choose\x20a\x20different\x20project\x20name\x20or\x20remove\x20the\x20directory\x20first.','node_modules','access','11KCDuDQ','push','mkdir','startsWith','code','readdir','sha256','398472CAmAkW','5SMTFzc','isFile','isSafeInteger','signal','digest','from','extracting','lstat','string','template.zip','utf8','update','dist','Pass\x20a\x20directory\x20containing\x20the\x20template\x20source\x20package.json.','posix','Local\x20template\x20source\x20and\x20project\x20output\x20must\x20not\x20overlap.','1149909ZjNjKD','package.json','.idea','isAbsolute','size','object','rename','Unable\x20to\x20download\x20a\x20valid\x20project\x20template\x20from\x20CDN.','.env.','.git','status','EEXIST','dev','project','resolve','copying','2600064nUBqgE','join','downloading','concat','.env','pathname','chmod','getReader','copyFile','Project\x20directory\x20already\x20exists:\x20','Project\x20template\x20package.json\x20is\x20invalid.','mkdtemp','https:','releaseLock','Local\x20project\x20template\x20must\x20not\x20contain\x20symlinks:\x20','CDN\x20config\x20contains\x20an\x20invalid\x20descriptor\x20for\x20\x22','Check\x20your\x20network\x20and\x20retry.\x20Details:\x20','version','9vNeBjL','name','sha256:','message','realpath','sep','relative','1783YgIDwk','4499556ZiSTsB','isDirectory','body','Local\x20template\x20source\x20is\x20not\x20a\x20directory:\x20','CDN\x20project\x20template\x20exceeds\x20its\x20declared\x20download\x20size.','validation','ino','resolving','parse','ENOENT','cdn','.rabetbase-create-','protocol','Local\x20template\x20source\x20does\x20not\x20exist:\x20','get','2147690PieeFL','Use\x20a\x20different\x20project\x20name.','test','writeFile',',\x20received\x20','hex','CDN\x20project\x20template\x20exceeds\x20the\x2020\x20MB\x20download\x20limit.','length','sub-app-react-demo','394EwDhCc','.rabetbase','includes','1613073itzPon','cancel','4oyIMKm'];a163_0xd02c=function(){return _0x220431;};return a163_0xd02c();}async function readTemplateVersion(_0x2bf27d){const _0x41389f=a163_0x3744fc,_0x38d9b7=JSON[_0x41389f(0x1e2)](await a163_0x313a73['readFile'](a163_0x531feb[_0x41389f(0x1c1)](_0x2bf27d,_0x41389f(0x1b1)),_0x41389f(0x1aa)));return nonEmptyString(_0x38d9b7['version'])||'local';}async function readDirectoryIdentity(_0x80928d){const _0x32a349=a163_0x3744fc;try{const _0x20802f=await a163_0x313a73['lstat'](_0x80928d);if(!_0x20802f[_0x32a349(0x1db)]())return null;return{'dev':_0x20802f[_0x32a349(0x1bc)],'ino':_0x20802f[_0x32a349(0x1e0)]};}catch{return null;}}async function commitStagedProject(_0x2e7c1c,_0x29095e){const _0x3dbca7=a163_0x3744fc;await a163_0x313a73[_0x3dbca7(0x209)](_0x29095e);const _0x2296c3=await readDirectoryIdentity(_0x29095e);if(!_0x2296c3)throw new Error('Unable\x20to\x20claim\x20the\x20project\x20directory.');try{for(const _0x5cfda4 of await a163_0x313a73[_0x3dbca7(0x20c)](_0x2e7c1c)){await a163_0x313a73[_0x3dbca7(0x1b6)](a163_0x531feb[_0x3dbca7(0x1c1)](_0x2e7c1c,_0x5cfda4),a163_0x531feb[_0x3dbca7(0x1c1)](_0x29095e,_0x5cfda4));}}catch(_0xb63c26){const _0x2dd4c8=await readDirectoryIdentity(_0x29095e);_0x2dd4c8?.[_0x3dbca7(0x1bc)]===_0x2296c3[_0x3dbca7(0x1bc)]&&_0x2dd4c8['ino']===_0x2296c3[_0x3dbca7(0x1e0)]&&await a163_0x313a73['rm'](_0x29095e,{'recursive':!![],'force':!![]});throw _0xb63c26;}}export async function materializeProjectTemplate(_0x1cae1a,_0x7d22e2){const _0x116003=a163_0x3744fc,_0x1e3da7=a163_0x531feb['resolve'](_0x1cae1a),_0x4efe24=a163_0x531feb[_0x116003(0x200)](_0x1e3da7);try{await a163_0x313a73['lstat'](_0x1e3da7);throw new Error(_0x116003(0x1c9)+_0x1e3da7);}catch(_0x30cc44){if(_0x30cc44[_0x116003(0x20b)]!==_0x116003(0x1e3))throw _0x30cc44;}const _0x231ea2=await a163_0x313a73[_0x116003(0x1cb)](a163_0x531feb['join'](_0x4efe24,_0x116003(0x1e5))),_0x9cb45c=a163_0x531feb[_0x116003(0x1c1)](_0x231ea2,_0x116003(0x1bd)),_0x1df4d9=a163_0x531feb['join'](_0x231ea2,_0x116003(0x1a9));try{try{_0x7d22e2?.(_0x116003(0x1e1));const _0x3680fb=await fetchTemplateDescriptor();return _0x7d22e2?.(_0x116003(0x1c2)),await downloadArchive(_0x3680fb,_0x1df4d9,_0x7d22e2),_0x7d22e2?.(_0x116003(0x1a6)),await extractProjectTemplateArchive(_0x1df4d9,_0x9cb45c),await assertTemplateRoot(_0x9cb45c),await commitStagedProject(_0x9cb45c,_0x1e3da7),{'source':_0x116003(0x1e4),'version':_0x3680fb[_0x116003(0x1d1)]};}catch(_0x58bec4){if(_0x58bec4[_0x116003(0x20b)]===_0x116003(0x1bb))throw CliErrors[_0x116003(0x1df)]('Project\x20directory\x20already\x20exists:\x20'+_0x1e3da7,_0x116003(0x1ea));const _0x3feb68=_0x58bec4 instanceof Error?_0x58bec4[_0x116003(0x1d5)]:String(_0x58bec4);throw CliErrors[_0x116003(0x1df)](_0x116003(0x1b7),_0x116003(0x1d0)+_0x3feb68);}}finally{await a163_0x313a73['rm'](_0x231ea2,{'recursive':!![],'force':!![]});}}export async function materializeLocalProjectTemplate(_0x282b65,_0x4d65e9,_0x1fce61){const _0x33a7be=a163_0x3744fc;let _0x28e113;try{_0x28e113=await a163_0x313a73[_0x33a7be(0x1d6)](a163_0x531feb[_0x33a7be(0x1be)](_0x282b65));}catch{throw CliErrors[_0x33a7be(0x1df)](_0x33a7be(0x1e7)+a163_0x531feb['resolve'](_0x282b65),_0x33a7be(0x1ad));}const _0x482517=await a163_0x313a73[_0x33a7be(0x1a7)](_0x28e113);if(!_0x482517[_0x33a7be(0x1db)]())throw CliErrors['validation'](_0x33a7be(0x1dd)+_0x28e113);const _0x1cfa9b=a163_0x531feb['resolve'](_0x4d65e9),_0x68d36b=await a163_0x313a73[_0x33a7be(0x1d6)](a163_0x531feb[_0x33a7be(0x200)](_0x1cfa9b)),_0x385121=a163_0x531feb[_0x33a7be(0x1c1)](_0x68d36b,a163_0x531feb[_0x33a7be(0x1ff)](_0x1cfa9b));if(containsPath(_0x28e113,_0x385121)||containsPath(_0x385121,_0x28e113))throw CliErrors[_0x33a7be(0x1df)](_0x33a7be(0x1af),'Choose\x20an\x20output\x20directory\x20outside\x20the\x20template\x20source.');try{await a163_0x313a73['lstat'](_0x385121);throw CliErrors[_0x33a7be(0x1df)](_0x33a7be(0x1c9)+_0x385121,_0x33a7be(0x204));}catch(_0x3319c9){if(_0x3319c9[_0x33a7be(0x20b)]!=='ENOENT')throw _0x3319c9;}const _0x1fab82=a163_0x531feb[_0x33a7be(0x200)](_0x385121);await a163_0x313a73[_0x33a7be(0x206)](_0x1fab82);const _0x3ce090=await a163_0x313a73['mkdtemp'](a163_0x531feb[_0x33a7be(0x1c1)](_0x1fab82,_0x33a7be(0x1e5))),_0x1a7b56=a163_0x531feb['join'](_0x3ce090,_0x33a7be(0x1bd));try{_0x1fce61?.(_0x33a7be(0x1bf)),await copyLocalTemplateDirectory(_0x28e113,_0x1a7b56),await assertTemplateRoot(_0x1a7b56);const _0x60bb25=await readTemplateVersion(_0x1a7b56);return await commitStagedProject(_0x1a7b56,_0x385121),{'source':'local','version':_0x60bb25};}catch(_0x52e749){const _0x5d8578=_0x52e749 instanceof Error?_0x52e749[_0x33a7be(0x1d5)]:String(_0x52e749);throw CliErrors[_0x33a7be(0x1df)]('Invalid\x20local\x20template\x20source:\x20'+_0x5d8578,'Check\x20the\x20source\x20directory\x20and\x20retry.');}finally{await a163_0x313a73['rm'](_0x3ce090,{'recursive':!![],'force':!![]});}}
@@ -1 +1 @@
1
- function a166_0x5c32(){const _0x28a87d=['test','1564026QGwMgQ','62750amKALA','4059729TMSDOX','length','3cRjdsV','5501470aDZKLc','\x20characters','19940LSUFbo','358972zNkeLM','trim','14bFyVzI','Project\x20name\x20cannot\x20be\x20empty','5XtJwQW','2236592ZSjvau','Project\x20name\x20cannot\x20exceed\x20','validation','Project\x20name\x20\x22'];a166_0x5c32=function(){return _0x28a87d;};return a166_0x5c32();}(function(_0x31cf53,_0x5384fd){const _0x27e90a=a166_0xe83b,_0x3b71bf=_0x31cf53();while(!![]){try{const _0x1b3297=parseInt(_0x27e90a(0xe4))/0x1*(parseInt(_0x27e90a(0xdf))/0x2)+-parseInt(_0x27e90a(0xdc))/0x3*(-parseInt(_0x27e90a(0xe0))/0x4)+parseInt(_0x27e90a(0xd9))/0x5+-parseInt(_0x27e90a(0xd8))/0x6+-parseInt(_0x27e90a(0xe2))/0x7*(parseInt(_0x27e90a(0xe5))/0x8)+parseInt(_0x27e90a(0xda))/0x9+parseInt(_0x27e90a(0xdd))/0xa;if(_0x1b3297===_0x5384fd)break;else _0x3b71bf['push'](_0x3b71bf['shift']());}catch(_0x32658b){_0x3b71bf['push'](_0x3b71bf['shift']());}}}(a166_0x5c32,0x516f0));function a166_0xe83b(_0x320f2e,_0x5570b1){_0x320f2e=_0x320f2e-0xd5;const _0x5c32b5=a166_0x5c32();let _0xe83bb3=_0x5c32b5[_0x320f2e];return _0xe83bb3;}import{CliErrors}from'../../../errors.js';const PROJECT_NAME_PATTERN=/^[A-Za-z0-9][A-Za-z0-9_-]*$/,WINDOWS_RESERVED_NAME=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i,MAX_PROJECT_NAME_LENGTH=0x64;export function getProjectNameValidationError(_0x16a55){const _0x669ace=a166_0xe83b,_0x5ceea4=_0x16a55[_0x669ace(0xe1)]();if(!_0x5ceea4)return _0x669ace(0xe3);if(_0x5ceea4[_0x669ace(0xdb)]>MAX_PROJECT_NAME_LENGTH)return _0x669ace(0xe6)+MAX_PROJECT_NAME_LENGTH+_0x669ace(0xde);if(!PROJECT_NAME_PATTERN[_0x669ace(0xd7)](_0x5ceea4))return'Must\x20start\x20with\x20a\x20letter/number\x20and\x20only\x20contain\x20letters,\x20numbers,\x20-\x20and\x20_';if(WINDOWS_RESERVED_NAME[_0x669ace(0xd7)](_0x5ceea4))return _0x669ace(0xd6)+_0x5ceea4+'\x22\x20is\x20reserved\x20on\x20Windows';return null;}export function validateProjectName(_0x390ba2){const _0x2e8a1a=a166_0xe83b,_0xfdfbbc=_0x390ba2[_0x2e8a1a(0xe1)](),_0x290140=getProjectNameValidationError(_0xfdfbbc);if(_0x290140)throw CliErrors[_0x2e8a1a(0xd5)](_0x290140,'Use\x20a\x20portable\x20directory\x20name\x20without\x20path\x20separators.');return _0xfdfbbc;}
1
+ (function(_0x10db0e,_0x293a5c){const _0x519e47=a164_0x4b36,_0x4a59c8=_0x10db0e();while(!![]){try{const _0x47d7cd=-parseInt(_0x519e47(0xa2))/0x1*(parseInt(_0x519e47(0xac))/0x2)+-parseInt(_0x519e47(0xa3))/0x3*(parseInt(_0x519e47(0xb2))/0x4)+parseInt(_0x519e47(0xab))/0x5*(parseInt(_0x519e47(0xa4))/0x6)+parseInt(_0x519e47(0xb3))/0x7*(parseInt(_0x519e47(0xa1))/0x8)+-parseInt(_0x519e47(0xa0))/0x9*(-parseInt(_0x519e47(0xad))/0xa)+parseInt(_0x519e47(0xae))/0xb*(parseInt(_0x519e47(0xb4))/0xc)+parseInt(_0x519e47(0xa9))/0xd;if(_0x47d7cd===_0x293a5c)break;else _0x4a59c8['push'](_0x4a59c8['shift']());}catch(_0xcd8e8a){_0x4a59c8['push'](_0x4a59c8['shift']());}}}(a164_0x16fd,0xd8b78));import{CliErrors}from'../../../errors.js';const PROJECT_NAME_PATTERN=/^[A-Za-z0-9][A-Za-z0-9_-]*$/,WINDOWS_RESERVED_NAME=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i,MAX_PROJECT_NAME_LENGTH=0x64;function a164_0x4b36(_0x58e06a,_0x499365){_0x58e06a=_0x58e06a-0xa0;const _0x16fde3=a164_0x16fd();let _0x4b368d=_0x16fde3[_0x58e06a];return _0x4b368d;}export function getProjectNameValidationError(_0x3950bc){const _0x28ba84=a164_0x4b36,_0x4c2f56=_0x3950bc[_0x28ba84(0xa6)]();if(!_0x4c2f56)return _0x28ba84(0xa8);if(_0x4c2f56[_0x28ba84(0xa5)]>MAX_PROJECT_NAME_LENGTH)return'Project\x20name\x20cannot\x20exceed\x20'+MAX_PROJECT_NAME_LENGTH+'\x20characters';if(!PROJECT_NAME_PATTERN[_0x28ba84(0xb1)](_0x4c2f56))return _0x28ba84(0xaa);if(WINDOWS_RESERVED_NAME[_0x28ba84(0xb1)](_0x4c2f56))return'Project\x20name\x20\x22'+_0x4c2f56+_0x28ba84(0xb0);return null;}function a164_0x16fd(){const _0x1997ed=['456ioKtZc','252WnigSY','2368hHfZkU','23cWMQIL','681ONWhHW','2123658IgEiKw','length','trim','Use\x20a\x20portable\x20directory\x20name\x20without\x20path\x20separators.','Project\x20name\x20cannot\x20be\x20empty','142441AYnwoq','Must\x20start\x20with\x20a\x20letter/number\x20and\x20only\x20contain\x20letters,\x20numbers,\x20-\x20and\x20_','15EXsPns','96302zthzdX','199780WBiUmI','276122uDlWIq','validation','\x22\x20is\x20reserved\x20on\x20Windows','test','22268PUBMZj','15911jAwLaQ'];a164_0x16fd=function(){return _0x1997ed;};return a164_0x16fd();}export function validateProjectName(_0x29777b){const _0x5cdfda=a164_0x4b36,_0x41df5f=_0x29777b[_0x5cdfda(0xa6)](),_0x287a16=getProjectNameValidationError(_0x41df5f);if(_0x287a16)throw CliErrors[_0x5cdfda(0xaf)](_0x287a16,_0x5cdfda(0xa7));return _0x41df5f;}
@@ -1 +1 @@
1
- (function(_0x466dce,_0x20ac06){const _0x27c88c=a167_0x2b92,_0x1b57ee=_0x466dce();while(!![]){try{const _0x39e6ee=-parseInt(_0x27c88c(0xa9))/0x1+-parseInt(_0x27c88c(0xa5))/0x2+-parseInt(_0x27c88c(0xbd))/0x3*(-parseInt(_0x27c88c(0x9a))/0x4)+parseInt(_0x27c88c(0xa6))/0x5*(-parseInt(_0x27c88c(0x9c))/0x6)+parseInt(_0x27c88c(0xa8))/0x7+parseInt(_0x27c88c(0xa0))/0x8*(parseInt(_0x27c88c(0xc3))/0x9)+-parseInt(_0x27c88c(0xb1))/0xa;if(_0x39e6ee===_0x20ac06)break;else _0x1b57ee['push'](_0x1b57ee['shift']());}catch(_0x37615a){_0x1b57ee['push'](_0x1b57ee['shift']());}}}(a167_0x43a9,0xa831c));import{createWriteStream}from'node:fs';import a167_0x4944bb from'node:fs/promises';import a167_0x2b7e73 from'node:path';function a167_0x43a9(){const _0xc2b0ef=['1725676RTyVTU','10oSXuHg','readEntry','9309265UkjvXg','76514UxeHGG','ZIP\x20entry\x20escapes\x20the\x20destination\x20directory:\x20','open','endsWith','Unsafe\x20or\x20non-portable\x20ZIP\x20entry\x20path:\x20','split','en-US','resolve','9301640JZNAXI','isEncrypted','replace','sep','catch','length','error','Duplicate\x20or\x20case-conflicting\x20ZIP\x20entry:\x20','set','uncompressedSize','externalFileAttributes','has','529710ztSbUz','Case-conflicting\x20ZIP\x20entry\x20path:\x20','toLocaleLowerCase','Project\x20template\x20ZIP\x20exceeds\x20','fileName','close','8289657RDVsin','join','openReadStream','Unable\x20to\x20open\x20project\x20template\x20archive.','startsWith','Unsafe\x20absolute\x20ZIP\x20entry\x20path:\x20','test','entry','24aRYWYT','get','2255844ETeoky','Unable\x20to\x20read\x20ZIP\x20entry:\x20','slice','once','8rRmTfO','mkdir','Project\x20template\x20ZIP\x20expands\x20beyond\x20the\x2050\x20MB\x20safety\x20limit.','dirname','Symbolic\x20links\x20are\x20not\x20allowed\x20in\x20project\x20templates:\x20'];a167_0x43a9=function(){return _0xc2b0ef;};return a167_0x43a9();}import{pipeline}from'node:stream/promises';function a167_0x2b92(_0x2e882f,_0x29d45e){_0x2e882f=_0x2e882f-0x98;const _0x43a9ad=a167_0x43a9();let _0x2b92c9=_0x43a9ad[_0x2e882f];return _0x2b92c9;}import a167_0x58e57b 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(_0x5ebe36){return new Promise((_0x5703cd,_0x31babe)=>{const _0x3a3225=a167_0x2b92;a167_0x58e57b[_0x3a3225(0xab)](_0x5ebe36,{'lazyEntries':!![],'decodeStrings':!![],'strictFileNames':!![],'validateEntrySizes':!![]},(_0x385d07,_0x1ee31e)=>{const _0x49a790=_0x3a3225;if(_0x385d07||!_0x1ee31e){_0x31babe(_0x385d07||new Error(_0x49a790(0xc6)));return;}_0x5703cd(_0x1ee31e);});});}function openEntryStream(_0x20f107,_0x5cddce){return new Promise((_0x231e07,_0x5e6362)=>{const _0x3f59ba=a167_0x2b92;_0x20f107[_0x3f59ba(0xc5)](_0x5cddce,(_0x307840,_0x17e1fd)=>{const _0x1cf947=_0x3f59ba;if(_0x307840||!_0x17e1fd){_0x5e6362(_0x307840||new Error(_0x1cf947(0x9d)+_0x5cddce[_0x1cf947(0xc1)]));return;}_0x231e07(_0x17e1fd);});});}function validateEntryPath(_0x40fa73){const _0x214e32=a167_0x2b92,_0x305d41=_0x40fa73[_0x214e32(0xb3)](/\\/g,'/'),_0x271013=_0x305d41['endsWith']('/'),_0x3b3a01=_0x271013?_0x305d41['slice'](0x0,-0x1):_0x305d41;if(!_0x3b3a01||_0x305d41[_0x214e32(0xc7)]('/')||/^[A-Za-z]:\//[_0x214e32(0x98)](_0x305d41))throw new Error(_0x214e32(0xc8)+_0x40fa73);const _0x3dabf9=_0x3b3a01['split']('/');for(const _0x3c747b of _0x3dabf9){if(!_0x3c747b||_0x3c747b==='.'||_0x3c747b==='..'||_0x3c747b[_0x214e32(0xac)]('.')||_0x3c747b[_0x214e32(0xac)]('\x20')||WINDOWS_INVALID_CHAR[_0x214e32(0x98)](_0x3c747b)||WINDOWS_RESERVED_NAME[_0x214e32(0x98)](_0x3c747b))throw new Error(_0x214e32(0xad)+_0x40fa73);}return{'relativePath':_0x3dabf9['join'](a167_0x2b7e73[_0x214e32(0xb4)]),'directory':_0x271013};}function isSymbolicLink(_0x127600){const _0x2bea00=a167_0x2b92,_0x471ff0=_0x127600[_0x2bea00(0xbb)]>>>0x10&0xffff;return(_0x471ff0&0xf000)===0xa000;}export async function extractProjectTemplateArchive(_0x3cfcdd,_0x2976d0){const _0x5764e9=a167_0x2b92,_0x11f479=await openZip(_0x3cfcdd),_0x2decdd=a167_0x2b7e73[_0x5764e9(0xb0)](_0x2976d0),_0x4359c3=new Set(),_0x346d7c=new Map();let _0x1c9ab4=0x0,_0x50393b=0x0;await a167_0x4944bb[_0x5764e9(0xa1)](_0x2decdd,{'recursive':!![]}),await new Promise((_0x138b9d,_0x1d8938)=>{const _0x333d9f=_0x5764e9;let _0xe72c77=![];const _0x935c88=_0x428e0f=>{const _0x3d0330=a167_0x2b92;if(_0xe72c77)return;_0xe72c77=!![],_0x11f479[_0x3d0330(0xc2)](),_0x1d8938(_0x428e0f instanceof Error?_0x428e0f:new Error(String(_0x428e0f)));};_0x11f479[_0x333d9f(0x9f)](_0x333d9f(0xb7),_0x935c88),_0x11f479[_0x333d9f(0x9f)]('end',()=>{if(_0xe72c77)return;_0xe72c77=!![],_0x138b9d();}),_0x11f479['on'](_0x333d9f(0x99),_0x4c9680=>{const _0x4e4002=_0x333d9f;void(async()=>{const _0x558f21=a167_0x2b92;_0x1c9ab4+=0x1,_0x50393b+=_0x4c9680[_0x558f21(0xba)];if(_0x1c9ab4>MAX_ENTRY_COUNT)throw new Error(_0x558f21(0xc0)+MAX_ENTRY_COUNT+'\x20entries.');if(_0x50393b>MAX_UNCOMPRESSED_SIZE)throw new Error(_0x558f21(0xa2));if(_0x4c9680[_0x558f21(0xb2)]())throw new Error('Encrypted\x20ZIP\x20entries\x20are\x20not\x20supported:\x20'+_0x4c9680[_0x558f21(0xc1)]);if(isSymbolicLink(_0x4c9680))throw new Error(_0x558f21(0xa4)+_0x4c9680[_0x558f21(0xc1)]);const {relativePath:_0x844e05,directory:_0x569519}=validateEntryPath(_0x4c9680['fileName']),_0x523f80=_0x844e05[_0x558f21(0xae)](a167_0x2b7e73[_0x558f21(0xb4)]);for(let _0xf43160=0x1;_0xf43160<=_0x523f80[_0x558f21(0xb6)];_0xf43160+=0x1){const _0x41559e=_0x523f80[_0x558f21(0x9e)](0x0,_0xf43160)[_0x558f21(0xc4)](a167_0x2b7e73[_0x558f21(0xb4)]),_0x34f878=_0x41559e[_0x558f21(0xbf)](_0x558f21(0xaf)),_0x35711f=_0x346d7c[_0x558f21(0x9b)](_0x34f878);if(_0x35711f&&_0x35711f!==_0x41559e)throw new Error(_0x558f21(0xbe)+_0x4c9680['fileName']);_0x346d7c[_0x558f21(0xb9)](_0x34f878,_0x41559e);}const _0x10f862=_0x844e05[_0x558f21(0xbf)](_0x558f21(0xaf));if(_0x4359c3[_0x558f21(0xbc)](_0x10f862))throw new Error(_0x558f21(0xb8)+_0x4c9680[_0x558f21(0xc1)]);_0x4359c3['add'](_0x10f862);const _0x322287=a167_0x2b7e73['resolve'](_0x2decdd,_0x844e05);if(_0x322287!==_0x2decdd&&!_0x322287[_0x558f21(0xc7)](''+_0x2decdd+a167_0x2b7e73['sep']))throw new Error(_0x558f21(0xaa)+_0x4c9680[_0x558f21(0xc1)]);if(_0x569519)await a167_0x4944bb[_0x558f21(0xa1)](_0x322287,{'recursive':!![]});else{await a167_0x4944bb[_0x558f21(0xa1)](a167_0x2b7e73[_0x558f21(0xa3)](_0x322287),{'recursive':!![]});const _0x70a20f=await openEntryStream(_0x11f479,_0x4c9680);await pipeline(_0x70a20f,createWriteStream(_0x322287,{'flags':'wx','mode':0x1a4}));}_0x11f479['readEntry']();})()[_0x4e4002(0xb5)](_0x935c88);}),_0x11f479[_0x333d9f(0xa7)]();});}
1
+ (function(_0x21761b,_0x1f2059){const _0x1be17f=a165_0x348e,_0x2c094a=_0x21761b();while(!![]){try{const _0x48795c=-parseInt(_0x1be17f(0x11a))/0x1*(-parseInt(_0x1be17f(0x11c))/0x2)+-parseInt(_0x1be17f(0x12a))/0x3*(parseInt(_0x1be17f(0x12e))/0x4)+-parseInt(_0x1be17f(0x12f))/0x5*(-parseInt(_0x1be17f(0x133))/0x6)+parseInt(_0x1be17f(0x11b))/0x7*(-parseInt(_0x1be17f(0x122))/0x8)+parseInt(_0x1be17f(0x117))/0x9*(parseInt(_0x1be17f(0x138))/0xa)+parseInt(_0x1be17f(0x110))/0xb*(parseInt(_0x1be17f(0x130))/0xc)+parseInt(_0x1be17f(0x127))/0xd*(-parseInt(_0x1be17f(0x112))/0xe);if(_0x48795c===_0x1f2059)break;else _0x2c094a['push'](_0x2c094a['shift']());}catch(_0x3afed4){_0x2c094a['push'](_0x2c094a['shift']());}}}(a165_0x2249,0x773c0));import{createWriteStream}from'node:fs';import a165_0x293ce0 from'node:fs/promises';function a165_0x348e(_0x2fbf5e,_0x5906f5){_0x2fbf5e=_0x2fbf5e-0x106;const _0x2249b4=a165_0x2249();let _0x348eb2=_0x2249b4[_0x2fbf5e];return _0x348eb2;}import a165_0x1cf46b from'node:path';import{pipeline}from'node:stream/promises';import a165_0x19b09d 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(_0x2891a0){return new Promise((_0x1c7a45,_0x173843)=>{const _0x164f0d=a165_0x348e;a165_0x19b09d[_0x164f0d(0x12c)](_0x2891a0,{'lazyEntries':!![],'decodeStrings':!![],'strictFileNames':!![],'validateEntrySizes':!![]},(_0x485f60,_0x10dbd2)=>{const _0x17c51a=_0x164f0d;if(_0x485f60||!_0x10dbd2){_0x173843(_0x485f60||new Error(_0x17c51a(0x12b)));return;}_0x1c7a45(_0x10dbd2);});});}function openEntryStream(_0x3d5f21,_0x54644d){return new Promise((_0x376abb,_0x23cb74)=>{const _0x12e1d9=a165_0x348e;_0x3d5f21[_0x12e1d9(0x10a)](_0x54644d,(_0x4e3b7b,_0x1c7e8a)=>{const _0x551e81=_0x12e1d9;if(_0x4e3b7b||!_0x1c7e8a){_0x23cb74(_0x4e3b7b||new Error(_0x551e81(0x10e)+_0x54644d[_0x551e81(0x123)]));return;}_0x376abb(_0x1c7e8a);});});}function a165_0x2249(){const _0x3cc2cd=['endsWith','4866678cOPWJx','entry','mkdir','33TKKIGp','203CXIFJR','798yzVkfF','error','once','end','Project\x20template\x20ZIP\x20expands\x20beyond\x20the\x2050\x20MB\x20safety\x20limit.','toLocaleLowerCase','139976ysTVFF','fileName','sep','dirname','set','117RaQzfW','\x20entries.','get','582PFsHhX','Unable\x20to\x20open\x20project\x20template\x20archive.','open','Unsafe\x20absolute\x20ZIP\x20entry\x20path:\x20','952PItUBn','9395wUIrWM','84JZiRaH','length','replace','1626zRFFNd','externalFileAttributes','Case-conflicting\x20ZIP\x20entry\x20path:\x20','Project\x20template\x20ZIP\x20exceeds\x20','Duplicate\x20or\x20case-conflicting\x20ZIP\x20entry:\x20','10KEjUTa','Symbolic\x20links\x20are\x20not\x20allowed\x20in\x20project\x20templates:\x20','resolve','ZIP\x20entry\x20escapes\x20the\x20destination\x20directory:\x20','split','openReadStream','Unsafe\x20or\x20non-portable\x20ZIP\x20entry\x20path:\x20','uncompressedSize','test','Unable\x20to\x20read\x20ZIP\x20entry:\x20','readEntry','779174XRcXTb','startsWith','804202LNTmwE','en-US','isEncrypted','join'];a165_0x2249=function(){return _0x3cc2cd;};return a165_0x2249();}function validateEntryPath(_0x4ab17e){const _0x5667b1=a165_0x348e,_0x32b59e=_0x4ab17e[_0x5667b1(0x132)](/\\/g,'/'),_0x596755=_0x32b59e['endsWith']('/'),_0x1b8071=_0x596755?_0x32b59e['slice'](0x0,-0x1):_0x32b59e;if(!_0x1b8071||_0x32b59e['startsWith']('/')||/^[A-Za-z]:\//['test'](_0x32b59e))throw new Error(_0x5667b1(0x12d)+_0x4ab17e);const _0x2a2a43=_0x1b8071[_0x5667b1(0x109)]('/');for(const _0x45d1ae of _0x2a2a43){if(!_0x45d1ae||_0x45d1ae==='.'||_0x45d1ae==='..'||_0x45d1ae[_0x5667b1(0x116)]('.')||_0x45d1ae['endsWith']('\x20')||WINDOWS_INVALID_CHAR[_0x5667b1(0x10d)](_0x45d1ae)||WINDOWS_RESERVED_NAME[_0x5667b1(0x10d)](_0x45d1ae))throw new Error(_0x5667b1(0x10b)+_0x4ab17e);}return{'relativePath':_0x2a2a43[_0x5667b1(0x115)](a165_0x1cf46b['sep']),'directory':_0x596755};}function isSymbolicLink(_0x45ebb3){const _0x3a7f12=a165_0x348e,_0x4689be=_0x45ebb3[_0x3a7f12(0x134)]>>>0x10&0xffff;return(_0x4689be&0xf000)===0xa000;}export async function extractProjectTemplateArchive(_0x5a47de,_0x2359ca){const _0x2ef0af=a165_0x348e,_0x1df645=await openZip(_0x5a47de),_0x599023=a165_0x1cf46b['resolve'](_0x2359ca),_0x34b1be=new Set(),_0x2be435=new Map();let _0x4aa763=0x0,_0x20db36=0x0;await a165_0x293ce0[_0x2ef0af(0x119)](_0x599023,{'recursive':!![]}),await new Promise((_0xa643de,_0x58fadb)=>{const _0x502ef7=_0x2ef0af;let _0x4aaf7c=![];const _0x4349ad=_0x46212b=>{if(_0x4aaf7c)return;_0x4aaf7c=!![],_0x1df645['close'](),_0x58fadb(_0x46212b instanceof Error?_0x46212b:new Error(String(_0x46212b)));};_0x1df645[_0x502ef7(0x11e)](_0x502ef7(0x11d),_0x4349ad),_0x1df645['once'](_0x502ef7(0x11f),()=>{if(_0x4aaf7c)return;_0x4aaf7c=!![],_0xa643de();}),_0x1df645['on'](_0x502ef7(0x118),_0x28493e=>{void(async()=>{const _0x4894f0=a165_0x348e;_0x4aa763+=0x1,_0x20db36+=_0x28493e[_0x4894f0(0x10c)];if(_0x4aa763>MAX_ENTRY_COUNT)throw new Error(_0x4894f0(0x136)+MAX_ENTRY_COUNT+_0x4894f0(0x128));if(_0x20db36>MAX_UNCOMPRESSED_SIZE)throw new Error(_0x4894f0(0x120));if(_0x28493e[_0x4894f0(0x114)]())throw new Error('Encrypted\x20ZIP\x20entries\x20are\x20not\x20supported:\x20'+_0x28493e[_0x4894f0(0x123)]);if(isSymbolicLink(_0x28493e))throw new Error(_0x4894f0(0x106)+_0x28493e[_0x4894f0(0x123)]);const {relativePath:_0x4e25d9,directory:_0x1b263b}=validateEntryPath(_0x28493e[_0x4894f0(0x123)]),_0x3ca935=_0x4e25d9[_0x4894f0(0x109)](a165_0x1cf46b[_0x4894f0(0x124)]);for(let _0xde6846=0x1;_0xde6846<=_0x3ca935[_0x4894f0(0x131)];_0xde6846+=0x1){const _0x12cb00=_0x3ca935['slice'](0x0,_0xde6846)[_0x4894f0(0x115)](a165_0x1cf46b[_0x4894f0(0x124)]),_0x37c833=_0x12cb00[_0x4894f0(0x121)]('en-US'),_0xfc293f=_0x2be435[_0x4894f0(0x129)](_0x37c833);if(_0xfc293f&&_0xfc293f!==_0x12cb00)throw new Error(_0x4894f0(0x135)+_0x28493e[_0x4894f0(0x123)]);_0x2be435[_0x4894f0(0x126)](_0x37c833,_0x12cb00);}const _0x160c98=_0x4e25d9[_0x4894f0(0x121)](_0x4894f0(0x113));if(_0x34b1be['has'](_0x160c98))throw new Error(_0x4894f0(0x137)+_0x28493e[_0x4894f0(0x123)]);_0x34b1be['add'](_0x160c98);const _0x25514f=a165_0x1cf46b[_0x4894f0(0x107)](_0x599023,_0x4e25d9);if(_0x25514f!==_0x599023&&!_0x25514f[_0x4894f0(0x111)](''+_0x599023+a165_0x1cf46b[_0x4894f0(0x124)]))throw new Error(_0x4894f0(0x108)+_0x28493e['fileName']);if(_0x1b263b)await a165_0x293ce0[_0x4894f0(0x119)](_0x25514f,{'recursive':!![]});else{await a165_0x293ce0[_0x4894f0(0x119)](a165_0x1cf46b[_0x4894f0(0x125)](_0x25514f),{'recursive':!![]});const _0x668fe5=await openEntryStream(_0x1df645,_0x28493e);await pipeline(_0x668fe5,createWriteStream(_0x25514f,{'flags':'wx','mode':0x1a4}));}_0x1df645[_0x4894f0(0x10f)]();})()['catch'](_0x4349ad);}),_0x1df645[_0x502ef7(0x10f)]();});}
@@ -1 +1 @@
1
- function a168_0x1229(_0x2aa12f,_0x30198f){_0x2aa12f=_0x2aa12f-0x1db;const _0x197b54=a168_0x197b();let _0x122907=_0x197b54[_0x2aa12f];return _0x122907;}function a168_0x197b(){const _0x6ace5e=['9710960xblBqx','934YmLTzm','95EhekQZ','../../../../','9840736vCyOes','7872085qWXCvX','resolve','5401221qZgWqo','240240xYzFJV','4920192Nbhket'];a168_0x197b=function(){return _0x6ace5e;};return a168_0x197b();}(function(_0x3d2c3b,_0x570647){const _0x31f8a4=a168_0x1229,_0x1ab598=_0x3d2c3b();while(!![]){try{const _0x39afd9=-parseInt(_0x31f8a4(0x1e2))/0x1*(-parseInt(_0x31f8a4(0x1e1))/0x2)+-parseInt(_0x31f8a4(0x1dd))/0x3+parseInt(_0x31f8a4(0x1df))/0x4+parseInt(_0x31f8a4(0x1db))/0x5+parseInt(_0x31f8a4(0x1de))/0x6+-parseInt(_0x31f8a4(0x1e0))/0x7+parseInt(_0x31f8a4(0x1e4))/0x8;if(_0x39afd9===_0x570647)break;else _0x1ab598['push'](_0x1ab598['shift']());}catch(_0x5e81d8){_0x1ab598['push'](_0x1ab598['shift']());}}}(a168_0x197b,0xe35cb));import a168_0x35f38a from'node:path';import{fileURLToPath}from'node:url';const __dirname=a168_0x35f38a['dirname'](fileURLToPath(import.meta.url));export function getRabetbaseCliPackageRoot(){const _0x576fb7=a168_0x1229;return a168_0x35f38a[_0x576fb7(0x1dc)](__dirname,_0x576fb7(0x1e3));}
1
+ function a166_0x548f(_0x53c41d,_0x27bebc){_0x53c41d=_0x53c41d-0x8a;const _0x2aa267=a166_0x2aa2();let _0x548fd0=_0x2aa267[_0x53c41d];return _0x548fd0;}const a166_0x5bdef3=a166_0x548f;function a166_0x2aa2(){const _0x4d7288=['3453820klPUDE','1813656weGkHO','2229591YpnNeB','2914092ZVCPxx','21958mdwAjS','../../../../','resolve','1043994bvFMFT','6617616DAvwGH','66PwvMVD','dirname'];a166_0x2aa2=function(){return _0x4d7288;};return a166_0x2aa2();}(function(_0x481123,_0x4db7ea){const _0x43318d=a166_0x548f,_0x2c2937=_0x481123();while(!![]){try{const _0x19aae4=-parseInt(_0x43318d(0x91))/0x1*(-parseInt(_0x43318d(0x8b))/0x2)+-parseInt(_0x43318d(0x94))/0x3+parseInt(_0x43318d(0x8e))/0x4+parseInt(_0x43318d(0x8d))/0x5+-parseInt(_0x43318d(0x90))/0x6+parseInt(_0x43318d(0x8f))/0x7+-parseInt(_0x43318d(0x8a))/0x8;if(_0x19aae4===_0x4db7ea)break;else _0x2c2937['push'](_0x2c2937['shift']());}catch(_0x4839fd){_0x2c2937['push'](_0x2c2937['shift']());}}}(a166_0x2aa2,0x80857));import a166_0x668b0b from'node:path';import{fileURLToPath}from'node:url';const __dirname=a166_0x668b0b[a166_0x5bdef3(0x8c)](fileURLToPath(import.meta.url));export function getRabetbaseCliPackageRoot(){const _0x1afbf3=a166_0x5bdef3;return a166_0x668b0b[_0x1afbf3(0x93)](__dirname,_0x1afbf3(0x92));}
@@ -1,2 +1,2 @@
1
1
  import { type ProjectTemplateProgress } from "../../../commands/project/create/materialize-project-template.js";
2
- export declare function copyProjectTemplate(projectCode: string, onProgress?: ProjectTemplateProgress): Promise<string>;
2
+ export declare function copyProjectTemplate(projectCode: string, onProgress?: ProjectTemplateProgress, templateSource?: string): Promise<string>;
@@ -1 +1 @@
1
- (function(_0x502d66,_0x3a93c2){const _0x452c5a=a169_0x12c1,_0x4dfc69=_0x502d66();while(!![]){try{const _0x474da5=parseInt(_0x452c5a(0x204))/0x1+-parseInt(_0x452c5a(0x1fb))/0x2+-parseInt(_0x452c5a(0x1fd))/0x3+-parseInt(_0x452c5a(0x200))/0x4+parseInt(_0x452c5a(0x203))/0x5*(parseInt(_0x452c5a(0x202))/0x6)+-parseInt(_0x452c5a(0x201))/0x7+parseInt(_0x452c5a(0x1f8))/0x8*(parseInt(_0x452c5a(0x1fe))/0x9);if(_0x474da5===_0x3a93c2)break;else _0x4dfc69['push'](_0x4dfc69['shift']());}catch(_0x1b1a9b){_0x4dfc69['push'](_0x4dfc69['shift']());}}}(a169_0x522f,0x67a2a));function a169_0x522f(){const _0x220a3=['519939awoPnJ','6pnzJHm','1710665bNsYPZ','364332RDXPkZ','cwd','source','copy','项目模板创建完成','info','success','16QBWwbv','项目模板复制失败','resolve','1367304kDYDuk','now','288426LSJhvk','5010642DVRDtL','error','2165520FGWeSd'];a169_0x522f=function(){return _0x220a3;};return a169_0x522f();}import a169_0x3c587 from'node:path';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';function a169_0x12c1(_0x3fdfe0,_0x43e49a){_0x3fdfe0=_0x3fdfe0-0x1f4;const _0x522f1f=a169_0x522f();let _0x12c1dd=_0x522f1f[_0x3fdfe0];return _0x12c1dd;}import{logger}from'../../../utils/logger.js';import{materializeProjectTemplate}from'../../../commands/project/create/materialize-project-template.js';export async function copyProjectTemplate(_0x3de067,_0x235755){const _0x53c3f6=a169_0x12c1,_0x572293=Date[_0x53c3f6(0x1fc)](),_0x51fd9a=a169_0x3c587[_0x53c3f6(0x1fa)](process[_0x53c3f6(0x205)](),_0x3de067);try{logger[_0x53c3f6(0x1f6)](_0x53c3f6(0x1f4),'开始创建项目模板',{'projectCode':_0x3de067});const _0x34f98e=await materializeProjectTemplate(_0x51fd9a,_0x235755),_0x1fa97f=Date[_0x53c3f6(0x1fc)]()-_0x572293;logger[_0x53c3f6(0x1f7)](_0x53c3f6(0x1f4),_0x53c3f6(0x1f5),_0x1fa97f,{'projectCode':_0x3de067,'templateSource':_0x34f98e[_0x53c3f6(0x206)],'templateVersion':_0x34f98e['version']});}catch(_0x281f6c){const _0x1928e1=Date['now']()-_0x572293;logger[_0x53c3f6(0x1ff)](_0x53c3f6(0x1f4),_0x53c3f6(0x1f9),{'projectCode':_0x3de067,'error':_0x281f6c instanceof Error?_0x281f6c['message']:String(_0x281f6c),'duration':_0x1928e1});throw _0x281f6c;}return formatElapsed(_0x572293);}
1
+ (function(_0x40ac85,_0x6b87ab){const _0x35714c=a167_0x8352,_0x38bb14=_0x40ac85();while(!![]){try{const _0x5c28a1=parseInt(_0x35714c(0x151))/0x1*(parseInt(_0x35714c(0x158))/0x2)+-parseInt(_0x35714c(0x15f))/0x3*(parseInt(_0x35714c(0x153))/0x4)+parseInt(_0x35714c(0x15e))/0x5+-parseInt(_0x35714c(0x152))/0x6+-parseInt(_0x35714c(0x154))/0x7*(-parseInt(_0x35714c(0x157))/0x8)+-parseInt(_0x35714c(0x159))/0x9+parseInt(_0x35714c(0x15c))/0xa*(parseInt(_0x35714c(0x163))/0xb);if(_0x5c28a1===_0x6b87ab)break;else _0x38bb14['push'](_0x38bb14['shift']());}catch(_0x9e40d4){_0x38bb14['push'](_0x38bb14['shift']());}}}(a167_0x27c2,0x428bc));function a167_0x8352(_0x488630,_0x5138e2){_0x488630=_0x488630-0x151;const _0x27c2da=a167_0x27c2();let _0x83521b=_0x27c2da[_0x488630];return _0x83521b;}import a167_0x58bb80 from'node:path';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';import{logger}from'../../../utils/logger.js';function a167_0x27c2(){const _0x3a15ce=['Starting\x20project\x20template\x20creation','Failed\x20to\x20copy\x20project\x20template','436766qJEvHf','now','resolve','7EjfrWV','1134474sVtaaV','151964oXBnSV','152460NQEuVr','copy','Project\x20template\x20created','40CVgTWq','139630qAiMGm','1978650obOieO','version','success','10fyUqJS','message','2690365yIjXIx','39LvyPUP','error'];a167_0x27c2=function(){return _0x3a15ce;};return a167_0x27c2();}import{materializeLocalProjectTemplate,materializeProjectTemplate}from'../../../commands/project/create/materialize-project-template.js';export async function copyProjectTemplate(_0x5e4c4f,_0x4b53d2,_0x15f3c2){const _0x5553b3=a167_0x8352,_0x4392b7=Date[_0x5553b3(0x164)](),_0x176c47=a167_0x58bb80[_0x5553b3(0x165)](process['cwd'](),_0x5e4c4f);try{logger['info']('copy',_0x5553b3(0x161),{'projectCode':_0x5e4c4f});const _0x3c6951=_0x15f3c2?await materializeLocalProjectTemplate(_0x15f3c2,_0x176c47,_0x4b53d2):await materializeProjectTemplate(_0x176c47,_0x4b53d2),_0x24d0b4=Date[_0x5553b3(0x164)]()-_0x4392b7;logger[_0x5553b3(0x15b)]('copy',_0x5553b3(0x156),_0x24d0b4,{'projectCode':_0x5e4c4f,'templateSource':_0x3c6951['source'],'templateVersion':_0x3c6951[_0x5553b3(0x15a)]});}catch(_0x41ca03){const _0x29c9c7=Date[_0x5553b3(0x164)]()-_0x4392b7;logger[_0x5553b3(0x160)](_0x5553b3(0x155),_0x5553b3(0x162),{'projectCode':_0x5e4c4f,'error':_0x41ca03 instanceof Error?_0x41ca03[_0x5553b3(0x15d)]:String(_0x41ca03),'duration':_0x29c9c7});throw _0x41ca03;}return formatElapsed(_0x4392b7);}
@@ -1 +1 @@
1
- (function(_0x8535ad,_0x2965f1){const _0x6d8937=a170_0x1e99,_0x5b548a=_0x8535ad();while(!![]){try{const _0x4e03de=-parseInt(_0x6d8937(0x1f1))/0x1+-parseInt(_0x6d8937(0x201))/0x2*(-parseInt(_0x6d8937(0x1f0))/0x3)+parseInt(_0x6d8937(0x1f2))/0x4+-parseInt(_0x6d8937(0x200))/0x5*(-parseInt(_0x6d8937(0x1fa))/0x6)+-parseInt(_0x6d8937(0x1ee))/0x7*(-parseInt(_0x6d8937(0x202))/0x8)+parseInt(_0x6d8937(0x1ef))/0x9+-parseInt(_0x6d8937(0x203))/0xa*(parseInt(_0x6d8937(0x1ff))/0xb);if(_0x4e03de===_0x2965f1)break;else _0x5b548a['push'](_0x5b548a['shift']());}catch(_0x260fbc){_0x5b548a['push'](_0x5b548a['shift']());}}}(a170_0x1512,0x9920b));function a170_0x1e99(_0x2f06f9,_0x580e8c){_0x2f06f9=_0x2f06f9-0x1ee;const _0x151228=a170_0x1512();let _0x1e9925=_0x151228[_0x2f06f9];return _0x1e9925;}import a170_0x16fa1c from'node:path';function a170_0x1512(){const _0x5476d9=['format','success','prettier','npx','cwd','error','now','6948798SRqQiV','代码格式化完成','代码格式化失败','resolve','--write','1263834zUMIVK','5igIuMX','54XNfBGd','1046552Dpearn','170lQgAiD','21sFDlOo','3798369FgfHNn','24522npxNnp','142171CfnpWK','2117004KdoTAJ'];a170_0x1512=function(){return _0x5476d9;};return a170_0x1512();}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';export async function formatProjectCode(_0x46bd21){const _0x260a98=a170_0x1e99,_0x61ab93=Date['now'](),_0x4e7d8e=a170_0x16fa1c[_0x260a98(0x1fd)](process[_0x260a98(0x1f7)](),_0x46bd21);try{logger['info'](_0x260a98(0x1f3),'开始格式化代码',{'projectCode':_0x46bd21}),await execa(resolveNpmBin(_0x260a98(0x1f6)),[_0x260a98(0x1f5),_0x260a98(0x1fe),'.'],{'cwd':_0x4e7d8e});const _0x40d64e=Date[_0x260a98(0x1f9)]()-_0x61ab93;logger[_0x260a98(0x1f4)](_0x260a98(0x1f3),_0x260a98(0x1fb),_0x40d64e,{'projectCode':_0x46bd21});}catch(_0x10d984){const _0x123d1e=Date[_0x260a98(0x1f9)]()-_0x61ab93;logger[_0x260a98(0x1f8)](_0x260a98(0x1f3),_0x260a98(0x1fc),{'projectCode':_0x46bd21,'error':_0x10d984 instanceof Error?_0x10d984['message']:String(_0x10d984),'duration':_0x123d1e});throw _0x10d984;}return formatElapsed(_0x61ab93);}
1
+ (function(_0x143d93,_0x147a11){const _0x523d0a=a168_0x3af8,_0x4ffa92=_0x143d93();while(!![]){try{const _0x156c6a=-parseInt(_0x523d0a(0x1a0))/0x1*(-parseInt(_0x523d0a(0x1a3))/0x2)+-parseInt(_0x523d0a(0x1ac))/0x3+-parseInt(_0x523d0a(0x1a5))/0x4*(-parseInt(_0x523d0a(0x1a9))/0x5)+parseInt(_0x523d0a(0x1ae))/0x6+parseInt(_0x523d0a(0x1aa))/0x7*(-parseInt(_0x523d0a(0x1ab))/0x8)+-parseInt(_0x523d0a(0x19b))/0x9+parseInt(_0x523d0a(0x19e))/0xa;if(_0x156c6a===_0x147a11)break;else _0x4ffa92['push'](_0x4ffa92['shift']());}catch(_0x17efce){_0x4ffa92['push'](_0x4ffa92['shift']());}}}(a168_0x16ea,0xbcee5));import a168_0x1291f4 from'node:path';import{execa}from'execa';function a168_0x3af8(_0x500a46,_0x1d291e){_0x500a46=_0x500a46-0x19b;const _0x16ea7b=a168_0x16ea();let _0x3af89d=_0x16ea7b[_0x500a46];return _0x3af89d;}import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';function a168_0x16ea(){const _0xc29bff=['error','cwd','5666500KfyoYt','Code\x20format\x20failed','1519515rXqXte','resolve','Starting\x20code\x20format','2uHXNdY','now','1508396jMekgG','Code\x20format\x20completed','info','prettier','10TyXnfu','9303agvGcL','6968UHQkrU','4192215JWxMGa','npx','3167214gJFwBT','format','message','354663EFLzjR'];a168_0x16ea=function(){return _0xc29bff;};return a168_0x16ea();}export async function formatProjectCode(_0x92575b){const _0x54df3e=a168_0x3af8,_0x1956a4=Date[_0x54df3e(0x1a4)](),_0x1d9457=a168_0x1291f4[_0x54df3e(0x1a1)](process[_0x54df3e(0x19d)](),_0x92575b);try{logger[_0x54df3e(0x1a7)](_0x54df3e(0x1af),_0x54df3e(0x1a2),{'projectCode':_0x92575b}),await execa(resolveNpmBin(_0x54df3e(0x1ad)),[_0x54df3e(0x1a8),'--write','.'],{'cwd':_0x1d9457});const _0x289c5e=Date['now']()-_0x1956a4;logger['success']('format',_0x54df3e(0x1a6),_0x289c5e,{'projectCode':_0x92575b});}catch(_0x28e71d){const _0x9411d4=Date[_0x54df3e(0x1a4)]()-_0x1956a4;logger[_0x54df3e(0x19c)](_0x54df3e(0x1af),_0x54df3e(0x19f),{'projectCode':_0x92575b,'error':_0x28e71d instanceof Error?_0x28e71d[_0x54df3e(0x1b0)]:String(_0x28e71d),'duration':_0x9411d4});throw _0x28e71d;}return formatElapsed(_0x1956a4);}
@@ -1 +1 @@
1
- (function(_0x47e94a,_0x44a52d){const _0x44dedd=a171_0x2e57,_0x2f2fe4=_0x47e94a();while(!![]){try{const _0x450b3f=parseInt(_0x44dedd(0x1b4))/0x1*(-parseInt(_0x44dedd(0x1c5))/0x2)+parseInt(_0x44dedd(0x1cb))/0x3*(parseInt(_0x44dedd(0x1b9))/0x4)+-parseInt(_0x44dedd(0x1c4))/0x5+-parseInt(_0x44dedd(0x1be))/0x6+parseInt(_0x44dedd(0x1ca))/0x7*(-parseInt(_0x44dedd(0x1bd))/0x8)+parseInt(_0x44dedd(0x1bb))/0x9*(-parseInt(_0x44dedd(0x1c6))/0xa)+parseInt(_0x44dedd(0x1c7))/0xb*(parseInt(_0x44dedd(0x1b5))/0xc);if(_0x450b3f===_0x44a52d)break;else _0x2f2fe4['push'](_0x2f2fe4['shift']());}catch(_0x4aa4b6){_0x2f2fe4['push'](_0x2f2fe4['shift']());}}}(a171_0x403c,0xe674e));import a171_0x56eab6 from'node:path';function a171_0x403c(){const _0x40efa8=['success','368MBaZsB','1712562RvjPov','--registry','https://registry.npmmirror.com','now','message','npm','473045uyVJjU','249170GbHZVW','10AmaURO','51067346gXNvgw','依赖安装失败','error','251573OmLKIs','556269PEHimf','13UNibvL','12ydUNfV','开始安装依赖','info','install','28nSozbW','resolve','12092958juYezg'];a171_0x403c=function(){return _0x40efa8;};return a171_0x403c();}import{execa}from'execa';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';function a171_0x2e57(_0x7108a0,_0x3a21de){_0x7108a0=_0x7108a0-0x1b4;const _0x403c6e=a171_0x403c();let _0x2e578b=_0x403c6e[_0x7108a0];return _0x2e578b;}import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';export async function installDependencies(_0x5a5143){const _0x217a08=a171_0x2e57,_0x3fe80e=Date[_0x217a08(0x1c1)](),_0xdda8ff=a171_0x56eab6[_0x217a08(0x1ba)](process['cwd'](),_0x5a5143);try{logger[_0x217a08(0x1b7)]('install',_0x217a08(0x1b6),{'projectCode':_0x5a5143,'registry':_0x217a08(0x1c0)}),await execa(resolveNpmBin(_0x217a08(0x1c3)),[_0x217a08(0x1b8),_0x217a08(0x1bf),_0x217a08(0x1c0)],{'cwd':_0xdda8ff});const _0x2dd47e=Date['now']()-_0x3fe80e;logger[_0x217a08(0x1bc)](_0x217a08(0x1b8),'依赖安装完成',_0x2dd47e,{'projectCode':_0x5a5143});}catch(_0x133e6f){const _0x14e7f6=Date[_0x217a08(0x1c1)]()-_0x3fe80e;logger[_0x217a08(0x1c9)]('install',_0x217a08(0x1c8),{'projectCode':_0x5a5143,'error':_0x133e6f instanceof Error?_0x133e6f[_0x217a08(0x1c2)]:String(_0x133e6f),'duration':_0x14e7f6});throw _0x133e6f;}return formatElapsed(_0x3fe80e);}
1
+ (function(_0x12ffb6,_0xdc0c5){const _0x4e5b9a=a169_0x3a2d,_0x145563=_0x12ffb6();while(!![]){try{const _0x9e1684=parseInt(_0x4e5b9a(0x78))/0x1+parseInt(_0x4e5b9a(0x71))/0x2+parseInt(_0x4e5b9a(0x6f))/0x3+-parseInt(_0x4e5b9a(0x75))/0x4*(parseInt(_0x4e5b9a(0x7b))/0x5)+parseInt(_0x4e5b9a(0x73))/0x6+parseInt(_0x4e5b9a(0x76))/0x7+-parseInt(_0x4e5b9a(0x70))/0x8;if(_0x9e1684===_0xdc0c5)break;else _0x145563['push'](_0x145563['shift']());}catch(_0x2625d6){_0x145563['push'](_0x145563['shift']());}}}(a169_0x1e6f,0x63398));import a169_0x11f99d from'node:path';import{execa}from'execa';import{formatElapsed}from'../../../commands/project/create/format-elapsed.js';function a169_0x1e6f(){const _0x142fcf=['259242InVaGJ','Dependency\x20install\x20completed','resolve','15HPWpEh','install','success','--registry','message','https://registry.npmmirror.com','Starting\x20dependency\x20install','849177CXusDn','12943232JGDdCf','1567858DWQrFH','now','2971254tLJZtx','error','197308ZJsCWT','2456090eIeBaX','npm'];a169_0x1e6f=function(){return _0x142fcf;};return a169_0x1e6f();}import{logger}from'../../../utils/logger.js';import{resolveNpmBin}from'../../../utils/platform.js';function a169_0x3a2d(_0x1588f2,_0x55dafb){_0x1588f2=_0x1588f2-0x6c;const _0x1e6f28=a169_0x1e6f();let _0x3a2de2=_0x1e6f28[_0x1588f2];return _0x3a2de2;}export async function installDependencies(_0x14bc36){const _0x120aa1=a169_0x3a2d,_0x1b5c28=Date[_0x120aa1(0x72)](),_0x47a161=a169_0x11f99d[_0x120aa1(0x7a)](process['cwd'](),_0x14bc36);try{logger['info'](_0x120aa1(0x7c),_0x120aa1(0x6e),{'projectCode':_0x14bc36,'registry':_0x120aa1(0x6d)}),await execa(resolveNpmBin(_0x120aa1(0x77)),[_0x120aa1(0x7c),_0x120aa1(0x7e),_0x120aa1(0x6d)],{'cwd':_0x47a161});const _0x3e839d=Date[_0x120aa1(0x72)]()-_0x1b5c28;logger[_0x120aa1(0x7d)](_0x120aa1(0x7c),_0x120aa1(0x79),_0x3e839d,{'projectCode':_0x14bc36});}catch(_0x277f57){const _0x319e4d=Date[_0x120aa1(0x72)]()-_0x1b5c28;logger[_0x120aa1(0x74)](_0x120aa1(0x7c),'Dependency\x20install\x20failed',{'projectCode':_0x14bc36,'error':_0x277f57 instanceof Error?_0x277f57[_0x120aa1(0x6c)]:String(_0x277f57),'duration':_0x319e4d});throw _0x277f57;}return formatElapsed(_0x1b5c28);}
@@ -1 +1 @@
1
- function a172_0x15fe(){const _0x507b2d=['202038XPBqfv','bool','14ZFEKvH','8UZNzBk','1996352CVRqfR','env','3564MSwFRp','validation','Usage:\x20','yes','appcode','name','str','Skip\x20confirmation\x20prompt','cookie','App\x20code\x20to\x20bind\x20(skips\x20interactive\x20selection)','Non-interactive\x20mode\x20requires\x20a\x20project\x20name.','\x20project\x20create\x20<project-name>\x20[--appcode\x20<code>]','write','1912365QvOJCl','33276200FqyKjK','Upgrade\x20from\x20lovrabet-cli\x20to\x20rabetbase-cli','Project\x20name','args','boolean','project','nonInteractive','2088eZRLbf','upgrade','trim','3066258JNnOnR','3451400bhsYFP','project-name'];a172_0x15fe=function(){return _0x507b2d;};return a172_0x15fe();}const a172_0x53d4e1=a172_0x1b1e;(function(_0x143405,_0x45d392){const _0x2a2623=a172_0x1b1e,_0x27f600=_0x143405();while(!![]){try{const _0x2d5f6c=parseInt(_0x2a2623(0x1fa))/0x1*(-parseInt(_0x2a2623(0x1f7))/0x2)+parseInt(_0x2a2623(0x1fd))/0x3*(-parseInt(_0x2a2623(0x1f1))/0x4)+-parseInt(_0x2a2623(0x1f5))/0x5+-parseInt(_0x2a2623(0x1f4))/0x6+parseInt(_0x2a2623(0x1f9))/0x7*(-parseInt(_0x2a2623(0x1fb))/0x8)+parseInt(_0x2a2623(0x20a))/0x9+parseInt(_0x2a2623(0x20b))/0xa;if(_0x2d5f6c===_0x45d392)break;else _0x27f600['push'](_0x27f600['shift']());}catch(_0x561cbb){_0x27f600['push'](_0x27f600['shift']());}}}(a172_0x15fe,0x6470e));import{CliErrors}from'../../errors.js';function a172_0x1b1e(_0x21a459,_0xa6a5c0){_0x21a459=_0x21a459-0x1ee;const _0x15fe44=a172_0x15fe();let _0x1b1ed7=_0x15fe44[_0x21a459];return _0x1b1ed7;}import{CLI_BIN_NAME}from'../../constant/cli.js';import{upgradeApp}from'../../commands/project/upgrade.js';const createFlags=[{'name':a172_0x53d4e1(0x202),'type':'string','description':a172_0x53d4e1(0x20d)},{'name':a172_0x53d4e1(0x1fc),'type':'string','description':'Target\x20environment'},{'name':a172_0x53d4e1(0x201),'type':'string','description':a172_0x53d4e1(0x206)}],upgradeFlags=[{'name':a172_0x53d4e1(0x200),'type':a172_0x53d4e1(0x1ee),'description':a172_0x53d4e1(0x204),'default':![]}];export const projectDefinitions=[{'service':a172_0x53d4e1(0x1ef),'command':'create','description':'Create\x20a\x20new\x20project','risk':a172_0x53d4e1(0x209),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a172_0x53d4e1(0x1f6),'description':'Project\x20code/name\x20(optional,\x20prompts\x20if\x20omitted)','required':![]}],'flags':createFlags,async 'execute'(_0x5587c7){const _0x58e78c=a172_0x53d4e1,{createApp:_0x34b694}=await import('../../commands/project/create/main.js'),_0xb25428=_0x5587c7[_0x58e78c(0x203)](_0x58e78c(0x202))[_0x58e78c(0x1f3)]()||_0x5587c7[_0x58e78c(0x20e)][0x0]?.[_0x58e78c(0x1f3)](),_0xa93e3d=_0x5587c7[_0x58e78c(0x203)](_0x58e78c(0x1fc))||undefined,_0x24c8c2=_0x5587c7[_0x58e78c(0x203)]('appcode')||undefined;if(_0x5587c7[_0x58e78c(0x1f0)]){if(!_0xb25428)throw CliErrors[_0x58e78c(0x1fe)](_0x58e78c(0x207),_0x58e78c(0x1ff)+CLI_BIN_NAME+_0x58e78c(0x208));await _0x34b694({'projectCode':_0xb25428,'appCode':_0x24c8c2,'env':_0xa93e3d,'cookie':_0x5587c7['cookie'],'nonInteractive':!![]});}else await _0x34b694({'projectCode':_0xb25428,'appCode':_0x24c8c2,'env':_0xa93e3d,'cookie':_0x5587c7[_0x58e78c(0x205)]});return{'ok':!![]};}},{'service':'project','command':a172_0x53d4e1(0x1f2),'description':a172_0x53d4e1(0x20c),'risk':a172_0x53d4e1(0x209),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':upgradeFlags,async 'execute'(_0xfdc464){const _0x3d25b8=a172_0x53d4e1;return await upgradeApp(_0xfdc464[_0x3d25b8(0x1f0)],{'yes':_0xfdc464[_0x3d25b8(0x1f8)]('yes')}),{'ok':!![]};}}];
1
+ const a170_0x5b2430=a170_0xe9f7;(function(_0x7b98d5,_0x526672){const _0x3ea695=a170_0xe9f7,_0x1eb998=_0x7b98d5();while(!![]){try{const _0x2bb44e=parseInt(_0x3ea695(0x181))/0x1+parseInt(_0x3ea695(0x18c))/0x2+-parseInt(_0x3ea695(0x183))/0x3+parseInt(_0x3ea695(0x192))/0x4*(parseInt(_0x3ea695(0x19f))/0x5)+parseInt(_0x3ea695(0x196))/0x6*(-parseInt(_0x3ea695(0x197))/0x7)+-parseInt(_0x3ea695(0x17e))/0x8+-parseInt(_0x3ea695(0x184))/0x9*(-parseInt(_0x3ea695(0x19a))/0xa);if(_0x2bb44e===_0x526672)break;else _0x1eb998['push'](_0x1eb998['shift']());}catch(_0x5969a6){_0x1eb998['push'](_0x1eb998['shift']());}}}(a170_0x4374,0xd4414));import{CliErrors}from'../../errors.js';function a170_0x4374(){const _0x2a30c9=['write','project','Project\x20code/name\x20(optional,\x20prompts\x20if\x20omitted)','306olkoBQ','128989mWmHGe','boolean','string','10Bbkmlq','../../commands/project/create/main.js','upgrade','template-source','\x20project\x20create\x20<project-name>\x20[--appcode\x20<code>]','23830OwjYha','validation','cookie','create','10442864LNfINN','bool','yes','1722675KAIRqc','args','4149414Zrlhsw','6041547Mjptdr','nonInteractive','Project\x20name','project-name','Target\x20environment','Usage:\x20','str','name','2806218ZQWTOj','env','appcode','Upgrade\x20from\x20lovrabet-cli\x20to\x20rabetbase-cli','trim','Non-interactive\x20mode\x20requires\x20a\x20project\x20name.','588kNjEZG'];a170_0x4374=function(){return _0x2a30c9;};return a170_0x4374();}import{CLI_BIN_NAME}from'../../constant/cli.js';import{upgradeApp}from'../../commands/project/upgrade.js';const createFlags=[{'name':a170_0x5b2430(0x18b),'type':a170_0x5b2430(0x199),'description':a170_0x5b2430(0x186)},{'name':a170_0x5b2430(0x18d),'type':a170_0x5b2430(0x199),'description':a170_0x5b2430(0x188)},{'name':a170_0x5b2430(0x18e),'type':'string','description':'App\x20code\x20to\x20bind\x20(skips\x20interactive\x20selection)'},{'name':a170_0x5b2430(0x19d),'type':a170_0x5b2430(0x199),'description':'Prepared\x20local\x20project\x20template\x20directory'}],upgradeFlags=[{'name':a170_0x5b2430(0x180),'type':a170_0x5b2430(0x198),'description':'Skip\x20confirmation\x20prompt','default':![]}];function a170_0xe9f7(_0x10ece1,_0x2c7390){_0x10ece1=_0x10ece1-0x17e;const _0x437424=a170_0x4374();let _0xe9f7d6=_0x437424[_0x10ece1];return _0xe9f7d6;}export const projectDefinitions=[{'service':a170_0x5b2430(0x194),'command':a170_0x5b2430(0x1a2),'description':'Create\x20a\x20new\x20project','risk':a170_0x5b2430(0x193),'requiresAuth':!![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a170_0x5b2430(0x187),'description':a170_0x5b2430(0x195),'required':![]}],'flags':createFlags,async 'execute'(_0x5cfe58){const _0x49d17b=a170_0x5b2430,{createApp:_0x5b026a}=await import(_0x49d17b(0x19b)),_0x4cf071=_0x5cfe58[_0x49d17b(0x18a)](_0x49d17b(0x18b))[_0x49d17b(0x190)]()||_0x5cfe58[_0x49d17b(0x182)][0x0]?.['trim'](),_0x3114a9=_0x5cfe58[_0x49d17b(0x18a)]('env')||undefined,_0x12977a=_0x5cfe58[_0x49d17b(0x18a)]('appcode')||undefined,_0x52d84b=_0x5cfe58[_0x49d17b(0x18a)](_0x49d17b(0x19d))['trim']()||undefined;if(_0x5cfe58[_0x49d17b(0x185)]){if(!_0x4cf071)throw CliErrors[_0x49d17b(0x1a0)](_0x49d17b(0x191),_0x49d17b(0x189)+CLI_BIN_NAME+_0x49d17b(0x19e));await _0x5b026a({'projectCode':_0x4cf071,'appCode':_0x12977a,'env':_0x3114a9,'cookie':_0x5cfe58['cookie'],'nonInteractive':!![],'templateSource':_0x52d84b});}else await _0x5b026a({'projectCode':_0x4cf071,'appCode':_0x12977a,'env':_0x3114a9,'cookie':_0x5cfe58[_0x49d17b(0x1a1)],'templateSource':_0x52d84b});return{'ok':!![]};}},{'service':a170_0x5b2430(0x194),'command':a170_0x5b2430(0x19c),'description':a170_0x5b2430(0x18f),'risk':a170_0x5b2430(0x193),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':upgradeFlags,async 'execute'(_0x5f15ad){const _0x1d5211=a170_0x5b2430;return await upgradeApp(_0x5f15ad[_0x1d5211(0x185)],{'yes':_0x5f15ad[_0x1d5211(0x17f)](_0x1d5211(0x180))}),{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a173_0x2de179=a173_0x5222;function a173_0x5222(_0x24b796,_0xe53991){_0x24b796=_0x24b796-0x98;const _0x522f99=a173_0x522f();let _0x522232=_0x522f99[_0x24b796];return _0x522232;}(function(_0x253bf2,_0x2279da){const _0x45cbda=a173_0x5222,_0x479ff3=_0x253bf2();while(!![]){try{const _0x5d0f7a=parseInt(_0x45cbda(0x109))/0x1*(-parseInt(_0x45cbda(0x11c))/0x2)+-parseInt(_0x45cbda(0xd9))/0x3*(-parseInt(_0x45cbda(0x115))/0x4)+-parseInt(_0x45cbda(0x116))/0x5*(parseInt(_0x45cbda(0xdf))/0x6)+parseInt(_0x45cbda(0x103))/0x7+-parseInt(_0x45cbda(0xa6))/0x8*(parseInt(_0x45cbda(0xc3))/0x9)+-parseInt(_0x45cbda(0xdd))/0xa*(-parseInt(_0x45cbda(0x119))/0xb)+parseInt(_0x45cbda(0xd5))/0xc;if(_0x5d0f7a===_0x2279da)break;else _0x479ff3['push'](_0x479ff3['shift']());}catch(_0x166231){_0x479ff3['push'](_0x479ff3['shift']());}}}(a173_0x522f,0xd14aa));import a173_0x946720 from'chalk';function a173_0x522f(){const _0x302988=['Upgrade\x20@lovrabet/sdk','oldMcpConfig','no\x20legacy\x20config\x20found','parse','bold','\x20→\x20keys:\x20','Legacy\x20artifacts:','FAIL','keys','\x20\x20#\x20or','includes','skipped\x20(no\x20legacy\x20config)','6232AeoVDb','Upgrade\x20cancelled.','latest','isDirectory','filter','succeed','length','Remove\x20legacy\x20artifacts','sdkUpgrade','\x20→\x20latest','\x20\x20Action:\x20remove\x20entries\x20containing\x20@lovrabet/dataset-mcp-server','devDependencies','Step\x205/7:\x20Removing\x20old\x20skill...','Remove\x20old\x20skill','fields','Step\x203/7:\x20Removing\x20legacy\x20IDE\x20skill\x20files...','Step\x202/7:\x20.lovrabet/\x20not\x20found,\x20skipped','cyan','done','cwd','skipped','\x20removed','path','error','string','yellow','Step\x202/7:\x20.lovrabet/\x20directory\x20removed','\x20\x20bun\x20install','files','3177tvWtAU','Some\x20steps\x20failed.\x20Check\x20the\x20summary\x20above\x20for\x20details.','\x20removed\x20(','gray','@lovrabet/sdk','===\x20Upgrade\x20Summary\x20===','oldPath','start','entries','.claude/skills/lovrabet','@lovrabet/sdk:','Proceed\x20with\x20upgrade?','Upgrade\x20completed\x20successfully!','Clean\x20MCP\x20config','not\x20found\x20(will\x20create)','not\x20found\x20or\x20already\x20at\x20latest','lovrabet/lovrabet-skill\x20removed','\x20\x20Action:\x20migrate\x20→\x20backup\x20old\x20as\x20.bak','22023324JsRAjb','message','failed','CANCEL','6IpXQJf','yes','mcpServers','red','2307080jsjyNq','@lovrabet/sdk\x20has\x20been\x20updated\x20to\x20latest\x20in\x20package.json.','99474eQhgQU','package.json','\x20\x20Action:\x20update\x20package.json\x20(you\x20will\x20need\x20to\x20re-run\x20install)','isArray','Step\x202/7:\x20.lovrabet/\x20removal\x20failed\x20—\x20','.cursor/mcp.json','no\x20legacy\x20entry','log','no\x20matching\x20entry\x20found','Step\x207/7:\x20@lovrabet/sdk\x20—\x20','hasNewConfig','Step\x206/7:\x20Installing\x20new\x20skill...','\x20\x20Action:\x20delete','not\x20needed','Please\x20re-install\x20dependencies\x20to\x20apply\x20the\x20change:','lovrabet/rabetbase','green','label','.cursor/rules/lovrabet_rules.mdc','Step\x204/7:\x20Cleaning\x20MCP\x20config...','step','fail','args','needed','\x20\x20npm\x20install','Config\x20file:','Config\x20migration','\x20→\x20','[\x22@lovrabet/sdk\x22]:\x20','join','Step\x202/7:\x20Removing\x20.lovrabet/\x20directory...','push','some','values','needsSkillSwap','\x20\x20New\x20config\x20(.rabetbase.json):\x20','8093337oFaBQY','info','No\x20legacy\x20artifacts\x20found.\x20Your\x20project\x20is\x20already\x20up-to-date.','oldArtifacts','Remove\x20.lovrabet/','detail','330268yNDcDP','Install\x20new\x20skill','Step\x205/7:\x20Remove\x20old\x20skill\x20—\x20','Step\x207/7:\x20Upgrading\x20@lovrabet/sdk\x20in\x20package.json...','white','utf8','\x20\x20\x20\x20\x20\x20\x20','\x20\x20Current\x20version\x20in\x20','@lovrabet/dataset-mcp-server','lovrabet/rabetbase\x20installed\x20globally','Step\x203/7:\x20Legacy\x20artifacts\x20—\x20','.lovrabet','355084HUgZKv','355EALMdO','inherit','\x20\x20Action:\x20remove\x20old\x20lovrabet/lovrabet-skill,\x20add\x20via\x20`','22YycXwc','status','===\x20Upgrade\x20Analysis\x20===','8OXDdpQ','stringify','Step\x201/7:\x20Migrating\x20config...','\x20from\x20'];a173_0x522f=function(){return _0x302988;};return a173_0x522f();}import a173_0x14bdbe 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[a173_0x2de179(0xaa)](_0x1a059f=>_0x1a059f!==NEW_CONFIG_NAME);function collectIdeSkillFiles(_0x40905f){const _0x5154f1=a173_0x2de179,_0x2d6df8=[];for(const _0x91a84e of Object[_0x5154f1(0x100)](CORE_IDE_CONFIGS)){if(_0x91a84e['files'])for(const _0x314571 of _0x91a84e[_0x5154f1(0xc2)]){_0x2d6df8[_0x5154f1(0xfe)](resolve(_0x40905f,_0x314571[_0x5154f1(0xbc)]));}}return _0x2d6df8;}function analyse(_0x34e911){const _0x3deea7=a173_0x2de179;let _0x2a82ed=null;const _0x7f2bda=resolve(_0x34e911,NEW_CONFIG_NAME),_0x1de397=existsSync(_0x7f2bda);for(const _0xf6c9c5 of LEGACY_CONFIG_NAMES){const _0x33a8ab=resolve(_0x34e911,_0xf6c9c5);if(existsSync(_0x33a8ab)){const _0x3a1f86=readConfigFile(_0x33a8ab),_0x537c14=Object[_0x3deea7(0xa2)](_0x3a1f86)[_0x3deea7(0xaa)](_0x3d668f=>typeof _0x3a1f86[_0x3d668f]!=='undefined');_0x2a82ed={'oldPath':_0x33a8ab,'hasNewConfig':_0x1de397,'fields':_0x537c14};break;}}const _0x100403=[],_0x85f19f=resolve(_0x34e911,_0x3deea7(0x114));if(existsSync(_0x85f19f))_0x100403[_0x3deea7(0xfe)](_0x85f19f);const _0xf5ce55=resolve(_0x34e911,_0x3deea7(0xf1));if(existsSync(_0xf5ce55))_0x100403['push'](_0xf5ce55);const _0x1d4f48=resolve(_0x34e911,_0x3deea7(0xcc));if(existsSync(_0x1d4f48))_0x100403[_0x3deea7(0xfe)](_0x1d4f48);for(const _0x3b6267 of collectIdeSkillFiles(_0x34e911)){if(existsSync(_0x3b6267))_0x100403[_0x3deea7(0xfe)](_0x3b6267);}let _0x5bedf=null;const _0x457370=resolve(_0x34e911,_0x3deea7(0xe4));if(existsSync(_0x457370))try{const _0x9304f9=JSON[_0x3deea7(0x9d)](readFileSync(_0x457370,'utf8'));if(_0x9304f9?.[_0x3deea7(0xdb)]&&typeof _0x9304f9['mcpServers']==='object'){const _0x1e2408=[];for(const [_0x4f2bf4,_0x401dba]of Object['entries'](_0x9304f9['mcpServers'])){const _0x220e68=_0x401dba;_0x220e68?.['args']&&Array[_0x3deea7(0xe2)](_0x220e68[_0x3deea7(0xf5)])&&_0x220e68[_0x3deea7(0xf5)][_0x3deea7(0xff)](_0x3ec069=>typeof _0x3ec069===_0x3deea7(0xbe)&&_0x3ec069[_0x3deea7(0xa4)](_0x3deea7(0x111)))&&_0x1e2408[_0x3deea7(0xfe)](_0x4f2bf4);}_0x1e2408['length']>0x0&&(_0x5bedf={'path':_0x457370,'keys':_0x1e2408});}}catch{}const _0x18d582=_0x100403['length']>0x0||_0x2a82ed!==null;let _0x127077=null;const _0x67a137=resolve(_0x34e911,_0x3deea7(0xe0));if(existsSync(_0x67a137))try{const _0x4b8bbd=JSON[_0x3deea7(0x9d)](readFileSync(_0x67a137,_0x3deea7(0x10e)));for(const _0x4f6d22 of['dependencies',_0x3deea7(0xb1)]){const _0x3c1664=_0x4b8bbd?.[_0x4f6d22]?.['@lovrabet/sdk'];if(typeof _0x3c1664===_0x3deea7(0xbe)){_0x3c1664!==_0x3deea7(0xa8)&&(_0x127077={'pkgPath':_0x67a137,'currentVersion':_0x3c1664,'field':_0x4f6d22});break;}}}catch{}return{'configMigration':_0x2a82ed,'oldArtifacts':_0x100403,'oldMcpConfig':_0x5bedf,'needsSkillSwap':_0x18d582,'sdkUpgrade':_0x127077};}function printReport(_0x16f518){const _0x78d733=a173_0x2de179,{configMigration:_0x3fd6e8,oldArtifacts:_0x228514,oldMcpConfig:_0x24917b,needsSkillSwap:_0xf08659}=_0x16f518;console['log'](''),console[_0x78d733(0xe6)](a173_0x946720[_0x78d733(0x9e)](_0x78d733(0x11b))),console[_0x78d733(0xe6)]('');_0x3fd6e8?(console[_0x78d733(0xe6)](a173_0x946720[_0x78d733(0xb7)](_0x78d733(0xf8))+('\x20\x20'+a173_0x946720[_0x78d733(0xbf)](_0x3fd6e8['oldPath']))),console[_0x78d733(0xe6)](_0x78d733(0x102)+(_0x3fd6e8['hasNewConfig']?a173_0x946720[_0x78d733(0xef)]('already\x20exists\x20(will\x20merge)'):a173_0x946720['gray'](_0x78d733(0xd1)))),console['log']('\x20\x20Fields\x20to\x20migrate:\x20'+_0x3fd6e8[_0x78d733(0xb4)]['join'](',\x20')),console[_0x78d733(0xe6)](_0x78d733(0xd4))):console[_0x78d733(0xe6)](a173_0x946720[_0x78d733(0xb7)]('Config\x20file:')+'\x20\x20'+a173_0x946720[_0x78d733(0xc6)](_0x78d733(0x9c)));console[_0x78d733(0xe6)]('');if(_0x228514['length']>0x0){console['log'](a173_0x946720[_0x78d733(0xb7)](_0x78d733(0xa0)));for(const _0x1f4d70 of _0x228514){console[_0x78d733(0xe6)]('\x20\x20'+a173_0x946720['red']('FOUND')+'\x20\x20'+_0x1f4d70);}console[_0x78d733(0xe6)](_0x78d733(0xeb));}else console[_0x78d733(0xe6)](a173_0x946720['cyan'](_0x78d733(0xa0))+'\x20\x20'+a173_0x946720[_0x78d733(0xc6)]('none\x20found'));console[_0x78d733(0xe6)]('');_0x24917b?(console[_0x78d733(0xe6)](a173_0x946720[_0x78d733(0xb7)]('MCP\x20config:')+('\x20\x20'+a173_0x946720['yellow'](_0x24917b['path'])+_0x78d733(0x9f)+_0x24917b[_0x78d733(0xa2)]['join'](',\x20'))),console[_0x78d733(0xe6)](_0x78d733(0xb0))):console[_0x78d733(0xe6)](a173_0x946720['cyan']('MCP\x20config:')+'\x20\x20'+a173_0x946720[_0x78d733(0xc6)](_0x78d733(0xe5)));console[_0x78d733(0xe6)](''),console[_0x78d733(0xe6)](a173_0x946720[_0x78d733(0xb7)]('Skill\x20swap:')+('\x20\x20'+(_0xf08659?a173_0x946720[_0x78d733(0xbf)](_0x78d733(0xf6)):a173_0x946720['green'](_0x78d733(0xec)))));_0xf08659&&console[_0x78d733(0xe6)](_0x78d733(0x118)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+'`');console[_0x78d733(0xe6)]('');if(_0x16f518[_0x78d733(0xae)]){const {currentVersion:_0x44b14b,field:_0x706270,pkgPath:_0x957994}=_0x16f518[_0x78d733(0xae)];console[_0x78d733(0xe6)](a173_0x946720[_0x78d733(0xb7)](_0x78d733(0xcd))+('\x20\x20'+a173_0x946720['yellow'](_0x957994))),console[_0x78d733(0xe6)](_0x78d733(0x110)+_0x706270+':\x20'+a173_0x946720[_0x78d733(0xbf)](_0x44b14b)+_0x78d733(0xfa)+a173_0x946720[_0x78d733(0xef)](_0x78d733(0xa8))),console['log'](_0x78d733(0xe1));}else console['log'](a173_0x946720[_0x78d733(0xb7)](_0x78d733(0xcd))+'\x20\x20'+a173_0x946720['gray'](_0x78d733(0xd2)));console[_0x78d733(0xe6)]('');}function execConfigMigration(_0x48d98b,_0xcacaf0){const _0x57bbec=a173_0x2de179,{configMigration:_0xa06f54}=_0x48d98b;if(!_0xa06f54?.[_0x57bbec(0xc9)])return{'step':0x1,'label':_0x57bbec(0xf9),'ok':!![],'detail':_0x57bbec(0xa5)};const _0xefe20e=readConfigFile(_0xa06f54['oldPath']),_0xe2ade2=resolve(_0xcacaf0,NEW_CONFIG_NAME),_0x13e98f=_0xa06f54[_0x57bbec(0xe9)]?readConfigFile(_0xe2ade2):{};for(const [_0x4d2c30,_0x41e130]of Object[_0x57bbec(0xcb)](_0xefe20e)){!(_0x4d2c30 in _0x13e98f)&&(_0x13e98f[_0x4d2c30]=_0x41e130);}writeConfigFile(_0xe2ade2,_0x13e98f);const _0x474e3f=_0xa06f54[_0x57bbec(0xc9)]+'.bak';return renameSync(_0xa06f54['oldPath'],_0x474e3f),{'step':0x1,'label':_0x57bbec(0xf9),'ok':!![],'detail':_0xa06f54[_0x57bbec(0xc9)]+_0x57bbec(0xfa)+_0xe2ade2+'\x20(backup:\x20'+_0x474e3f+')'};}function execRemoveOldArtifacts(_0x402f47){const _0x1382a9=a173_0x2de179,_0x118083=[];for(const _0x1c9ba0 of _0x402f47){try{if(!existsSync(_0x1c9ba0))continue;const _0x38e547=tryStat(_0x1c9ba0);_0x38e547?.[_0x1382a9(0xa9)]()?rmSync(_0x1c9ba0,{'recursive':!![],'force':!![]}):unlinkSync(_0x1c9ba0);}catch(_0x23e5cf){_0x118083['push'](_0x1c9ba0+':\x20'+_0x23e5cf[_0x1382a9(0xd6)]);}}return{'step':0x3,'label':_0x1382a9(0xad),'ok':_0x118083[_0x1382a9(0xac)]===0x0,'detail':_0x118083[_0x1382a9(0xac)]>0x0?_0x402f47['length']-_0x118083['length']+'/'+_0x402f47['length']+_0x1382a9(0xc5)+_0x118083[_0x1382a9(0xfc)](';\x20')+')':_0x402f47[_0x1382a9(0xac)]+_0x1382a9(0xbb)};}function execCleanMcp(_0x3894a1){const _0x4b601a=a173_0x2de179;if(!_0x3894a1[_0x4b601a(0x9b)])return{'step':0x4,'label':_0x4b601a(0xd0),'ok':!![],'detail':'skipped'};try{const _0x1324ae=readFileSync(_0x3894a1[_0x4b601a(0x9b)][_0x4b601a(0xbc)],_0x4b601a(0x10e)),_0x55525b=JSON['parse'](_0x1324ae);if(_0x55525b?.[_0x4b601a(0xdb)]&&typeof _0x55525b[_0x4b601a(0xdb)]==='object'){const _0x5a10a7=[];for(const [_0x1789bc,_0x1919de]of Object[_0x4b601a(0xcb)](_0x55525b[_0x4b601a(0xdb)])){_0x1919de?.[_0x4b601a(0xf5)]&&Array['isArray'](_0x1919de[_0x4b601a(0xf5)])&&_0x1919de[_0x4b601a(0xf5)][_0x4b601a(0xff)](_0x299933=>typeof _0x299933===_0x4b601a(0xbe)&&_0x299933['includes'](_0x4b601a(0x111)))&&_0x5a10a7[_0x4b601a(0xfe)](_0x1789bc);}for(const _0x45db65 of _0x5a10a7){delete _0x55525b[_0x4b601a(0xdb)][_0x45db65];}return _0x5a10a7[_0x4b601a(0xac)]>0x0&&writeFileSync(_0x3894a1['oldMcpConfig'][_0x4b601a(0xbc)],JSON[_0x4b601a(0x11d)](_0x55525b,null,0x2)+'\x0a',_0x4b601a(0x10e)),{'step':0x4,'label':_0x4b601a(0xd0),'ok':!![],'detail':'removed\x20'+_0x5a10a7[_0x4b601a(0xfc)](',\x20')+_0x4b601a(0x99)+_0x3894a1[_0x4b601a(0x9b)][_0x4b601a(0xbc)]};}return{'step':0x4,'label':_0x4b601a(0xd0),'ok':!![],'detail':_0x4b601a(0xe7)};}catch(_0x40c4f6){return{'step':0x4,'label':'Clean\x20MCP\x20config','ok':![],'detail':_0x40c4f6[_0x4b601a(0xd6)]};}}function execSkillsRemove(_0x4a3ebd,_0x4e2042){const _0x444ccd=a173_0x2de179,_0x21314f=runNpxSkillsRemove(_0x4a3ebd,{'stdio':'inherit','yes':_0x4e2042});return{'step':0x5,'label':_0x444ccd(0xb3),'ok':_0x21314f['ok'],'detail':_0x21314f['ok']?_0x444ccd(0xd3):_0x21314f[_0x444ccd(0xbd)]??'exit\x20'+_0x21314f[_0x444ccd(0x11a)]};}function execSkillsAdd(_0x15ccc6,_0x503319){const _0x3a0f2e=a173_0x2de179,_0x1e5b94=runNpxSkillsAddGlobal(_0x15ccc6,_0x3a0f2e(0xee),{'stdio':_0x3a0f2e(0x117),'yes':_0x503319});return{'step':0x6,'label':_0x3a0f2e(0x10a),'ok':_0x1e5b94['ok'],'detail':_0x1e5b94['ok']?_0x3a0f2e(0x112):_0x1e5b94[_0x3a0f2e(0xbd)]??'exit\x20'+_0x1e5b94[_0x3a0f2e(0x11a)]};}function execUpgradeSdk(_0xcbaa62){const _0x3e8c17=a173_0x2de179;if(!_0xcbaa62[_0x3e8c17(0xae)])return{'step':0x7,'label':_0x3e8c17(0x9a),'ok':!![],'detail':'skipped\x20(not\x20found\x20or\x20already\x20at\x20latest)'};const {pkgPath:_0x67e340,currentVersion:_0x3afba1,field:_0xbba426}=_0xcbaa62[_0x3e8c17(0xae)];try{const _0x559a73=readFileSync(_0x67e340,_0x3e8c17(0x10e)),_0xe971e2=JSON[_0x3e8c17(0x9d)](_0x559a73);return _0xe971e2[_0xbba426][_0x3e8c17(0xc7)]='latest',writeFileSync(_0x67e340,JSON[_0x3e8c17(0x11d)](_0xe971e2,null,0x2)+'\x0a',_0x3e8c17(0x10e)),{'step':0x7,'label':'Upgrade\x20@lovrabet/sdk','ok':!![],'detail':_0xbba426+_0x3e8c17(0xfb)+_0x3afba1+_0x3e8c17(0xaf)};}catch(_0x502743){return{'step':0x7,'label':_0x3e8c17(0x9a),'ok':![],'detail':_0x502743[_0x3e8c17(0xd6)]};}}function tryStat(_0x1b6b68){try{return statSync(_0x1b6b68);}catch{return undefined;}}function printSummary(_0x4e69ba){const _0x5016f7=a173_0x2de179;console[_0x5016f7(0xe6)](''),console[_0x5016f7(0xe6)](a173_0x946720[_0x5016f7(0x9e)](_0x5016f7(0xc8))),console[_0x5016f7(0xe6)]('');for(const _0x1c6678 of _0x4e69ba){const _0x17d082=_0x1c6678['ok']?a173_0x946720[_0x5016f7(0xef)]('OK'):a173_0x946720[_0x5016f7(0xdc)](_0x5016f7(0xa1));console[_0x5016f7(0xe6)]('\x20\x20'+_0x17d082+'\x20\x20Step\x20'+_0x1c6678[_0x5016f7(0xf3)]+':\x20'+_0x1c6678[_0x5016f7(0xf0)]);if(_0x1c6678['detail'])console[_0x5016f7(0xe6)](_0x5016f7(0x10f)+a173_0x946720[_0x5016f7(0xc6)](_0x1c6678[_0x5016f7(0x108)]));}console['log']('');}export async function upgradeApp(_0x227646,_0x541a7c){const _0x20c894=a173_0x2de179,_0x135439=process[_0x20c894(0xb9)](),_0xb9d75e=analyse(_0x135439),_0x592c5d=!_0xb9d75e['configMigration']&&_0xb9d75e[_0x20c894(0x106)][_0x20c894(0xac)]===0x0&&!_0xb9d75e[_0x20c894(0x9b)]&&!_0xb9d75e[_0x20c894(0x101)]&&!_0xb9d75e[_0x20c894(0xae)];if(_0x592c5d){console['log'](a173_0x946720[_0x20c894(0xef)](_0x20c894(0x105)));return;}printReport(_0xb9d75e);const _0xc0ea2e=!!(_0x541a7c[_0x20c894(0xda)]||_0x541a7c['Y']||_0x227646);if(!_0xc0ea2e)try{const _0x1c210f=await askConfirm(_0x20c894(0xce));if(!_0x1c210f){console[_0x20c894(0xe6)](a173_0x946720[_0x20c894(0xc6)]('Upgrade\x20cancelled.'));return;}}catch(_0x2a2b5f){if(_0x2a2b5f?.['message']===_0x20c894(0xd8)){console[_0x20c894(0xe6)](a173_0x946720['gray'](_0x20c894(0xa7)));return;}throw _0x2a2b5f;}const _0x5be872=[],_0x282169=a173_0x14bdbe({'text':_0x20c894(0x98),'color':_0x20c894(0xb7)})[_0x20c894(0xca)](),_0x1a4c3e=execConfigMigration(_0xb9d75e,_0x135439);_0x5be872[_0x20c894(0xfe)](_0x1a4c3e),_0x282169[_0x1a4c3e['ok']?_0x20c894(0xab):'fail']('Step\x201/7:\x20Config\x20migration\x20—\x20'+(_0x1a4c3e[_0x20c894(0x108)]??(_0x1a4c3e['ok']?'done':_0x20c894(0xd7))));const _0x246b66=resolve(_0x135439,_0x20c894(0x114)),_0x5ca7e3=a173_0x14bdbe({'text':_0x20c894(0xfd),'color':_0x20c894(0xb7)})[_0x20c894(0xca)]();if(existsSync(_0x246b66))try{rmSync(_0x246b66,{'recursive':!![],'force':!![]}),_0x5ca7e3[_0x20c894(0xab)](_0x20c894(0xc0)),_0x5be872['push']({'step':0x2,'label':'Remove\x20.lovrabet/','ok':!![]});}catch(_0xdbd60c){_0x5ca7e3[_0x20c894(0xf4)](_0x20c894(0xe3)+_0xdbd60c[_0x20c894(0xd6)]),_0x5be872[_0x20c894(0xfe)]({'step':0x2,'label':'Remove\x20.lovrabet/','ok':![],'detail':_0xdbd60c['message']});}else _0x5ca7e3[_0x20c894(0x104)](_0x20c894(0xb6)),_0x5be872['push']({'step':0x2,'label':_0x20c894(0x107),'ok':!![],'detail':_0x20c894(0xba)});const _0x3c8a17=a173_0x14bdbe({'text':_0x20c894(0xb5),'color':'cyan'})[_0x20c894(0xca)](),_0xb3d786=execRemoveOldArtifacts(_0xb9d75e[_0x20c894(0x106)]);_0x5be872[_0x20c894(0xfe)](_0xb3d786),_0x3c8a17[_0xb3d786['ok']?_0x20c894(0xab):_0x20c894(0xf4)](_0x20c894(0x113)+(_0xb3d786[_0x20c894(0x108)]??(_0xb3d786['ok']?_0x20c894(0xb8):'failed')));const _0x2f5924=a173_0x14bdbe({'text':_0x20c894(0xf2),'color':_0x20c894(0xb7)})[_0x20c894(0xca)](),_0x59af81=execCleanMcp(_0xb9d75e);_0x5be872[_0x20c894(0xfe)](_0x59af81),_0x2f5924[_0x59af81['ok']?_0x20c894(0xab):_0x20c894(0xf4)]('Step\x204/7:\x20MCP\x20config\x20—\x20'+(_0x59af81[_0x20c894(0x108)]??(_0x59af81['ok']?_0x20c894(0xb8):_0x20c894(0xd7))));const _0x1f8f43=a173_0x14bdbe({'text':_0x20c894(0xb2),'color':_0x20c894(0xb7)})[_0x20c894(0xca)](),_0x89151=execSkillsRemove(_0x135439,_0xc0ea2e);_0x5be872[_0x20c894(0xfe)](_0x89151),_0x1f8f43[_0x89151['ok']?_0x20c894(0xab):_0x20c894(0xf4)](_0x20c894(0x10b)+(_0x89151[_0x20c894(0x108)]??(_0x89151['ok']?_0x20c894(0xb8):'failed')));const _0x51aba9=a173_0x14bdbe({'text':_0x20c894(0xea),'color':_0x20c894(0xb7)})[_0x20c894(0xca)](),_0x1c6d4a=execSkillsAdd(_0x135439,_0xc0ea2e);_0x5be872[_0x20c894(0xfe)](_0x1c6d4a),_0x51aba9[_0x1c6d4a['ok']?'succeed':_0x20c894(0xf4)]('Step\x206/7:\x20Install\x20new\x20skill\x20—\x20'+(_0x1c6d4a[_0x20c894(0x108)]??(_0x1c6d4a['ok']?_0x20c894(0xb8):_0x20c894(0xd7))));const _0x3cd256=a173_0x14bdbe({'text':_0x20c894(0x10c),'color':_0x20c894(0xb7)})['start'](),_0x5ce45c=execUpgradeSdk(_0xb9d75e);_0x5be872[_0x20c894(0xfe)](_0x5ce45c),_0x3cd256[_0x5ce45c['ok']?'succeed':_0x20c894(0xf4)](_0x20c894(0xe8)+(_0x5ce45c[_0x20c894(0x108)]??(_0x5ce45c['ok']?_0x20c894(0xb8):'failed'))),printSummary(_0x5be872);const _0x3efbc7=_0x5be872['some'](_0x45403d=>!_0x45403d['ok']);_0x3efbc7?console[_0x20c894(0xe6)](a173_0x946720['yellow'](_0x20c894(0xc4))):console[_0x20c894(0xe6)](a173_0x946720[_0x20c894(0xef)](_0x20c894(0xcf))),_0x5ce45c['ok']&&_0xb9d75e[_0x20c894(0xae)]&&(console['log'](''),console[_0x20c894(0xe6)](a173_0x946720['bold'][_0x20c894(0xb7)](_0x20c894(0xde))),console['log'](a173_0x946720['cyan'](_0x20c894(0xed))),console[_0x20c894(0xe6)](''),console[_0x20c894(0xe6)](a173_0x946720[_0x20c894(0x10d)](_0x20c894(0xf7))),console[_0x20c894(0xe6)](a173_0x946720[_0x20c894(0x10d)](_0x20c894(0xa3))),console['log'](a173_0x946720[_0x20c894(0x10d)](_0x20c894(0xc1))),console[_0x20c894(0xe6)](''));}
1
+ const a171_0x1c3eef=a171_0xfc62;(function(_0x34d017,_0x41bcb4){const _0x23dc99=a171_0xfc62,_0x22ad99=_0x34d017();while(!![]){try{const _0x561f17=-parseInt(_0x23dc99(0x18d))/0x1+-parseInt(_0x23dc99(0x1ba))/0x2*(parseInt(_0x23dc99(0x1b0))/0x3)+-parseInt(_0x23dc99(0x1cd))/0x4+-parseInt(_0x23dc99(0x18b))/0x5+-parseInt(_0x23dc99(0x18f))/0x6+parseInt(_0x23dc99(0x1bb))/0x7+parseInt(_0x23dc99(0x172))/0x8;if(_0x561f17===_0x41bcb4)break;else _0x22ad99['push'](_0x22ad99['shift']());}catch(_0x1335f7){_0x22ad99['push'](_0x22ad99['shift']());}}}(a171_0x1bed,0x4ab87));import a171_0x344141 from'chalk';import a171_0x486e3f from'ora';import{existsSync,readFileSync,renameSync,rmSync,statSync,unlinkSync,writeFileSync}from'node:fs';import{resolve}from'node:path';import{NEW_CONFIG_NAME,readConfigFile,writeConfigFile}from'../../context.js';function a171_0x1bed(){const _0x34f9f2=['@lovrabet/dataset-mcp-server','Install\x20new\x20skill','Step\x202/7:\x20.lovrabet/\x20not\x20found,\x20skipped','\x20\x20Action:\x20remove\x20entries\x20containing\x20@lovrabet/dataset-mcp-server','log','Config\x20migration','\x20\x20Fields\x20to\x20migrate:\x20','step','\x20→\x20keys:\x20','oldMcpConfig','keys','oldArtifacts','entries','needsSkillSwap','\x20(backup:\x20','Clean\x20MCP\x20config','none\x20found','gray','message','12639792fUzeBM','parse','Step\x202/7:\x20Removing\x20.lovrabet/\x20directory...','Legacy\x20artifacts:','bold','green','@lovrabet/sdk:','Step\x201/7:\x20Config\x20migration\x20—\x20','skipped\x20(no\x20legacy\x20config)','skipped','files','\x20\x20Step\x20','Remove\x20legacy\x20artifacts','.cursor/rules/lovrabet_rules.mdc','fail','\x20removed\x20(','Config\x20file:','succeed','removed\x20','some','not\x20found\x20or\x20already\x20at\x20latest','includes','\x20\x20#\x20or','no\x20matching\x20entry\x20found','white','2728940nTFiQv','\x20→\x20','486551xSDrdV','.lovrabet','762228NkosSD','needed','red','MCP\x20config:','cyan','hasNewConfig','Step\x207/7:\x20Upgrading\x20@lovrabet/sdk\x20in\x20package.json...','\x20→\x20latest','\x20\x20Action:\x20update\x20package.json\x20(you\x20will\x20need\x20to\x20re-run\x20install)','\x20\x20Action:\x20remove\x20old\x20lovrabet/lovrabet-skill,\x20add\x20via\x20`','yellow','@lovrabet/sdk\x20has\x20been\x20updated\x20to\x20latest\x20in\x20package.json.','Step\x206/7:\x20Installing\x20new\x20skill...','\x20removed','status','\x20\x20New\x20config\x20(.rabetbase.json):\x20','join','configMigration','detail','isArray','@lovrabet/sdk','latest','.lovrabetrc','done','cwd','object','exit\x20','Remove\x20old\x20skill','\x20from\x20','start','Step\x203/7:\x20Removing\x20legacy\x20IDE\x20skill\x20files...','===\x20Upgrade\x20Analysis\x20===','.lovrabet.json','69483kYisnX','sdkUpgrade','push','error','Upgrade\x20@lovrabet/sdk','oldPath','Step\x206/7:\x20Install\x20new\x20skill\x20—\x20','FAIL','lovrabet/rabetbase\x20installed\x20globally','length','50iEDMNc','3732757uJDPzT','lovrabet/lovrabet-skill\x20removed','Step\x204/7:\x20Cleaning\x20MCP\x20config...','Step\x204/7:\x20MCP\x20config\x20—\x20','path','undefined','failed','utf8','string','stringify','fields','Step\x205/7:\x20Remove\x20old\x20skill\x20—\x20','inherit','[\x22@lovrabet/sdk\x22]:\x20','\x20\x20npm\x20install','label','Step\x201/7:\x20Migrating\x20config...','mcpServers','275072soZjhb','Upgrade\x20cancelled.','\x20\x20Current\x20version\x20in\x20','not\x20needed','args','\x20\x20bun\x20install','not\x20found\x20(will\x20create)','Remove\x20.lovrabet/','package.json','no\x20legacy\x20entry','FOUND','\x20\x20\x20\x20\x20\x20\x20'];a171_0x1bed=function(){return _0x34f9f2;};return a171_0x1bed();}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=[a171_0x1c3eef(0x1af),a171_0x1c3eef(0x1a5)];function collectIdeSkillFiles(_0x2330c5){const _0x13dd10=a171_0x1c3eef,_0x5e0312=[];for(const _0x12fbeb of Object['values'](CORE_IDE_CONFIGS)){if(_0x12fbeb[_0x13dd10(0x17c)])for(const _0x728938 of _0x12fbeb['files']){_0x5e0312[_0x13dd10(0x1b2)](resolve(_0x2330c5,_0x728938[_0x13dd10(0x1bf)]));}}return _0x5e0312;}function analyse(_0x595eba){const _0x2aaf04=a171_0x1c3eef;let _0x4bc67a=null;const _0x3205b3=resolve(_0x595eba,NEW_CONFIG_NAME),_0x17dab0=existsSync(_0x3205b3);for(const _0x3f7e66 of LEGACY_CONFIG_NAMES){const _0x368bd9=resolve(_0x595eba,_0x3f7e66);if(existsSync(_0x368bd9)){const _0x555c3a=readConfigFile(_0x368bd9),_0x4101ac=Object[_0x2aaf04(0x169)](_0x555c3a)['filter'](_0x4daf7e=>typeof _0x555c3a[_0x4daf7e]!==_0x2aaf04(0x1c0));_0x4bc67a={'oldPath':_0x368bd9,'hasNewConfig':_0x17dab0,'fields':_0x4101ac};break;}}const _0x4e9486=[],_0x48a69d=resolve(_0x595eba,_0x2aaf04(0x18e));if(existsSync(_0x48a69d))_0x4e9486[_0x2aaf04(0x1b2)](_0x48a69d);const _0x4d1427=resolve(_0x595eba,_0x2aaf04(0x17f));if(existsSync(_0x4d1427))_0x4e9486['push'](_0x4d1427);const _0x14b8dd=resolve(_0x595eba,'.claude/skills/lovrabet');if(existsSync(_0x14b8dd))_0x4e9486[_0x2aaf04(0x1b2)](_0x14b8dd);for(const _0x5d041d of collectIdeSkillFiles(_0x595eba)){if(existsSync(_0x5d041d))_0x4e9486[_0x2aaf04(0x1b2)](_0x5d041d);}let _0xdd3edd=null;const _0x1c9862=resolve(_0x595eba,'.cursor/mcp.json');if(existsSync(_0x1c9862))try{const _0x395c38=JSON[_0x2aaf04(0x173)](readFileSync(_0x1c9862,_0x2aaf04(0x1c2)));if(_0x395c38?.[_0x2aaf04(0x1cc)]&&typeof _0x395c38['mcpServers']===_0x2aaf04(0x1a8)){const _0xf0edb9=[];for(const [_0x471537,_0x5afc60]of Object[_0x2aaf04(0x16b)](_0x395c38['mcpServers'])){const _0x2e6c1d=_0x5afc60;_0x2e6c1d?.[_0x2aaf04(0x1d1)]&&Array[_0x2aaf04(0x1a2)](_0x2e6c1d[_0x2aaf04(0x1d1)])&&_0x2e6c1d['args']['some'](_0x3c8373=>typeof _0x3c8373===_0x2aaf04(0x1c3)&&_0x3c8373['includes'](_0x2aaf04(0x1d9)))&&_0xf0edb9[_0x2aaf04(0x1b2)](_0x471537);}_0xf0edb9[_0x2aaf04(0x1b9)]>0x0&&(_0xdd3edd={'path':_0x1c9862,'keys':_0xf0edb9});}}catch{}const _0x3ae33f=_0x4e9486[_0x2aaf04(0x1b9)]>0x0||_0x4bc67a!==null;let _0x2393a8=null;const _0x496260=resolve(_0x595eba,_0x2aaf04(0x1d5));if(existsSync(_0x496260))try{const _0x4e5aea=JSON[_0x2aaf04(0x173)](readFileSync(_0x496260,_0x2aaf04(0x1c2)));for(const _0xcdb6e3 of['dependencies','devDependencies']){const _0x51eebc=_0x4e5aea?.[_0xcdb6e3]?.[_0x2aaf04(0x1a3)];if(typeof _0x51eebc===_0x2aaf04(0x1c3)){_0x51eebc!=='latest'&&(_0x2393a8={'pkgPath':_0x496260,'currentVersion':_0x51eebc,'field':_0xcdb6e3});break;}}}catch{}return{'configMigration':_0x4bc67a,'oldArtifacts':_0x4e9486,'oldMcpConfig':_0xdd3edd,'needsSkillSwap':_0x3ae33f,'sdkUpgrade':_0x2393a8};}function printReport(_0x19faf6){const _0x32263d=a171_0x1c3eef,{configMigration:_0x14f044,oldArtifacts:_0x451853,oldMcpConfig:_0x58d49b,needsSkillSwap:_0x3c5372}=_0x19faf6;console[_0x32263d(0x1dd)](''),console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x176)](_0x32263d(0x1ae))),console['log']('');_0x14f044?(console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)](_0x32263d(0x182))+('\x20\x20'+a171_0x344141[_0x32263d(0x199)](_0x14f044[_0x32263d(0x1b5)]))),console['log'](_0x32263d(0x19e)+(_0x14f044[_0x32263d(0x194)]?a171_0x344141[_0x32263d(0x177)]('already\x20exists\x20(will\x20merge)'):a171_0x344141[_0x32263d(0x170)](_0x32263d(0x1d3)))),console[_0x32263d(0x1dd)](_0x32263d(0x165)+_0x14f044[_0x32263d(0x1c5)][_0x32263d(0x19f)](',\x20')),console['log']('\x20\x20Action:\x20migrate\x20→\x20backup\x20old\x20as\x20.bak')):console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)](_0x32263d(0x182))+'\x20\x20'+a171_0x344141[_0x32263d(0x170)]('no\x20legacy\x20config\x20found'));console[_0x32263d(0x1dd)]('');if(_0x451853[_0x32263d(0x1b9)]>0x0){console[_0x32263d(0x1dd)](a171_0x344141['cyan'](_0x32263d(0x175)));for(const _0x57b2cd of _0x451853){console[_0x32263d(0x1dd)]('\x20\x20'+a171_0x344141[_0x32263d(0x191)](_0x32263d(0x1d7))+'\x20\x20'+_0x57b2cd);}console[_0x32263d(0x1dd)]('\x20\x20Action:\x20delete');}else console['log'](a171_0x344141[_0x32263d(0x193)]('Legacy\x20artifacts:')+'\x20\x20'+a171_0x344141['gray'](_0x32263d(0x16f)));console[_0x32263d(0x1dd)]('');_0x58d49b?(console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)]('MCP\x20config:')+('\x20\x20'+a171_0x344141[_0x32263d(0x199)](_0x58d49b[_0x32263d(0x1bf)])+_0x32263d(0x167)+_0x58d49b[_0x32263d(0x169)]['join'](',\x20'))),console[_0x32263d(0x1dd)](_0x32263d(0x1dc))):console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)](_0x32263d(0x192))+'\x20\x20'+a171_0x344141[_0x32263d(0x170)](_0x32263d(0x1d6)));console[_0x32263d(0x1dd)](''),console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)]('Skill\x20swap:')+('\x20\x20'+(_0x3c5372?a171_0x344141[_0x32263d(0x199)](_0x32263d(0x190)):a171_0x344141[_0x32263d(0x177)](_0x32263d(0x1d0)))));_0x3c5372&&console['log'](_0x32263d(0x198)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+'`');console[_0x32263d(0x1dd)]('');if(_0x19faf6[_0x32263d(0x1b1)]){const {currentVersion:_0x1c9af7,field:_0x3462a4,pkgPath:_0x8a074c}=_0x19faf6[_0x32263d(0x1b1)];console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)]('@lovrabet/sdk:')+('\x20\x20'+a171_0x344141[_0x32263d(0x199)](_0x8a074c))),console[_0x32263d(0x1dd)](_0x32263d(0x1cf)+_0x3462a4+':\x20'+a171_0x344141[_0x32263d(0x199)](_0x1c9af7)+_0x32263d(0x18c)+a171_0x344141[_0x32263d(0x177)]('latest')),console[_0x32263d(0x1dd)](_0x32263d(0x197));}else console[_0x32263d(0x1dd)](a171_0x344141[_0x32263d(0x193)](_0x32263d(0x178))+'\x20\x20'+a171_0x344141[_0x32263d(0x170)](_0x32263d(0x186)));console[_0x32263d(0x1dd)]('');}function execConfigMigration(_0x1cdf46,_0x3d679b){const _0x2c4eb2=a171_0x1c3eef,{configMigration:_0x581bed}=_0x1cdf46;if(!_0x581bed?.[_0x2c4eb2(0x1b5)])return{'step':0x1,'label':_0x2c4eb2(0x1de),'ok':!![],'detail':_0x2c4eb2(0x17a)};const _0x48e391=readConfigFile(_0x581bed[_0x2c4eb2(0x1b5)]),_0x4d37a7=resolve(_0x3d679b,NEW_CONFIG_NAME),_0x50b669=_0x581bed[_0x2c4eb2(0x194)]?readConfigFile(_0x4d37a7):{};for(const [_0x50a3ed,_0x44eb4c]of Object['entries'](_0x48e391)){!(_0x50a3ed in _0x50b669)&&(_0x50b669[_0x50a3ed]=_0x44eb4c);}writeConfigFile(_0x4d37a7,_0x50b669);const _0x3098fc=_0x581bed[_0x2c4eb2(0x1b5)]+'.bak';return renameSync(_0x581bed[_0x2c4eb2(0x1b5)],_0x3098fc),{'step':0x1,'label':_0x2c4eb2(0x1de),'ok':!![],'detail':_0x581bed[_0x2c4eb2(0x1b5)]+_0x2c4eb2(0x18c)+_0x4d37a7+_0x2c4eb2(0x16d)+_0x3098fc+')'};}function execRemoveOldArtifacts(_0x29dfec){const _0x49a4d4=a171_0x1c3eef,_0xc86445=[];for(const _0x1a099e of _0x29dfec){try{if(!existsSync(_0x1a099e))continue;const _0x3a6c93=tryStat(_0x1a099e);_0x3a6c93?.['isDirectory']()?rmSync(_0x1a099e,{'recursive':!![],'force':!![]}):unlinkSync(_0x1a099e);}catch(_0x41c33a){_0xc86445[_0x49a4d4(0x1b2)](_0x1a099e+':\x20'+_0x41c33a['message']);}}return{'step':0x3,'label':_0x49a4d4(0x17e),'ok':_0xc86445[_0x49a4d4(0x1b9)]===0x0,'detail':_0xc86445[_0x49a4d4(0x1b9)]>0x0?_0x29dfec[_0x49a4d4(0x1b9)]-_0xc86445[_0x49a4d4(0x1b9)]+'/'+_0x29dfec['length']+_0x49a4d4(0x181)+_0xc86445['join'](';\x20')+')':_0x29dfec[_0x49a4d4(0x1b9)]+_0x49a4d4(0x19c)};}function execCleanMcp(_0x44ddeb){const _0xf4c0ae=a171_0x1c3eef;if(!_0x44ddeb[_0xf4c0ae(0x168)])return{'step':0x4,'label':_0xf4c0ae(0x16e),'ok':!![],'detail':_0xf4c0ae(0x17b)};try{const _0x3b1f85=readFileSync(_0x44ddeb[_0xf4c0ae(0x168)]['path'],_0xf4c0ae(0x1c2)),_0x59dbe6=JSON[_0xf4c0ae(0x173)](_0x3b1f85);if(_0x59dbe6?.[_0xf4c0ae(0x1cc)]&&typeof _0x59dbe6[_0xf4c0ae(0x1cc)]===_0xf4c0ae(0x1a8)){const _0x317c53=[];for(const [_0x367125,_0x2dedff]of Object[_0xf4c0ae(0x16b)](_0x59dbe6[_0xf4c0ae(0x1cc)])){_0x2dedff?.['args']&&Array[_0xf4c0ae(0x1a2)](_0x2dedff[_0xf4c0ae(0x1d1)])&&_0x2dedff[_0xf4c0ae(0x1d1)][_0xf4c0ae(0x185)](_0x399e32=>typeof _0x399e32===_0xf4c0ae(0x1c3)&&_0x399e32[_0xf4c0ae(0x187)](_0xf4c0ae(0x1d9)))&&_0x317c53[_0xf4c0ae(0x1b2)](_0x367125);}for(const _0x5b8f98 of _0x317c53){delete _0x59dbe6[_0xf4c0ae(0x1cc)][_0x5b8f98];}return _0x317c53[_0xf4c0ae(0x1b9)]>0x0&&writeFileSync(_0x44ddeb['oldMcpConfig']['path'],JSON[_0xf4c0ae(0x1c4)](_0x59dbe6,null,0x2)+'\x0a','utf8'),{'step':0x4,'label':_0xf4c0ae(0x16e),'ok':!![],'detail':_0xf4c0ae(0x184)+_0x317c53['join'](',\x20')+_0xf4c0ae(0x1ab)+_0x44ddeb[_0xf4c0ae(0x168)][_0xf4c0ae(0x1bf)]};}return{'step':0x4,'label':_0xf4c0ae(0x16e),'ok':!![],'detail':_0xf4c0ae(0x189)};}catch(_0x55f515){return{'step':0x4,'label':_0xf4c0ae(0x16e),'ok':![],'detail':_0x55f515[_0xf4c0ae(0x171)]};}}function execSkillsRemove(_0x56df0d,_0x24a0c0){const _0x3c2e7b=a171_0x1c3eef,_0x108e94=runNpxSkillsRemove(_0x56df0d,{'stdio':_0x3c2e7b(0x1c7),'yes':_0x24a0c0});return{'step':0x5,'label':_0x3c2e7b(0x1aa),'ok':_0x108e94['ok'],'detail':_0x108e94['ok']?_0x3c2e7b(0x1bc):_0x108e94[_0x3c2e7b(0x1b3)]??'exit\x20'+_0x108e94[_0x3c2e7b(0x19d)]};}function execSkillsAdd(_0x165c75,_0x34185f){const _0x1b9d6a=a171_0x1c3eef,_0x29d406=runNpxSkillsAddGlobal(_0x165c75,'lovrabet/rabetbase',{'stdio':'inherit','yes':_0x34185f});return{'step':0x6,'label':_0x1b9d6a(0x1da),'ok':_0x29d406['ok'],'detail':_0x29d406['ok']?_0x1b9d6a(0x1b8):_0x29d406[_0x1b9d6a(0x1b3)]??_0x1b9d6a(0x1a9)+_0x29d406[_0x1b9d6a(0x19d)]};}function execUpgradeSdk(_0x373710){const _0x227704=a171_0x1c3eef;if(!_0x373710['sdkUpgrade'])return{'step':0x7,'label':_0x227704(0x1b4),'ok':!![],'detail':'skipped\x20(not\x20found\x20or\x20already\x20at\x20latest)'};const {pkgPath:_0x3141c7,currentVersion:_0x6a33a,field:_0x3b83e1}=_0x373710[_0x227704(0x1b1)];try{const _0x1e8ec2=readFileSync(_0x3141c7,_0x227704(0x1c2)),_0x395b84=JSON[_0x227704(0x173)](_0x1e8ec2);return _0x395b84[_0x3b83e1][_0x227704(0x1a3)]=_0x227704(0x1a4),writeFileSync(_0x3141c7,JSON['stringify'](_0x395b84,null,0x2)+'\x0a',_0x227704(0x1c2)),{'step':0x7,'label':_0x227704(0x1b4),'ok':!![],'detail':_0x3b83e1+_0x227704(0x1c8)+_0x6a33a+_0x227704(0x196)};}catch(_0x2fdbf0){return{'step':0x7,'label':_0x227704(0x1b4),'ok':![],'detail':_0x2fdbf0['message']};}}function tryStat(_0x16d875){try{return statSync(_0x16d875);}catch{return undefined;}}function a171_0xfc62(_0x105f7c,_0x4b54ba){_0x105f7c=_0x105f7c-0x165;const _0x1bed93=a171_0x1bed();let _0xfc62ee=_0x1bed93[_0x105f7c];return _0xfc62ee;}function printSummary(_0x3cfd51){const _0x115442=a171_0x1c3eef;console['log'](''),console[_0x115442(0x1dd)](a171_0x344141[_0x115442(0x176)]('===\x20Upgrade\x20Summary\x20===')),console['log']('');for(const _0x21e564 of _0x3cfd51){const _0x4631e8=_0x21e564['ok']?a171_0x344141[_0x115442(0x177)]('OK'):a171_0x344141[_0x115442(0x191)](_0x115442(0x1b7));console[_0x115442(0x1dd)]('\x20\x20'+_0x4631e8+_0x115442(0x17d)+_0x21e564[_0x115442(0x166)]+':\x20'+_0x21e564[_0x115442(0x1ca)]);if(_0x21e564[_0x115442(0x1a1)])console[_0x115442(0x1dd)](_0x115442(0x1d8)+a171_0x344141[_0x115442(0x170)](_0x21e564[_0x115442(0x1a1)]));}console[_0x115442(0x1dd)]('');}export async function upgradeApp(_0x391121,_0x304081){const _0x498188=a171_0x1c3eef,_0x38318b=process[_0x498188(0x1a7)](),_0x1ccf97=analyse(_0x38318b),_0x1fb7f7=!_0x1ccf97[_0x498188(0x1a0)]&&_0x1ccf97[_0x498188(0x16a)][_0x498188(0x1b9)]===0x0&&!_0x1ccf97[_0x498188(0x168)]&&!_0x1ccf97[_0x498188(0x16c)]&&!_0x1ccf97['sdkUpgrade'];if(_0x1fb7f7){console['log'](a171_0x344141['green']('No\x20legacy\x20artifacts\x20found.\x20Your\x20project\x20is\x20already\x20up-to-date.'));return;}printReport(_0x1ccf97);const _0x118ccf=!!(_0x304081['yes']||_0x304081['Y']||_0x391121);if(!_0x118ccf)try{const _0x52a78a=await askConfirm('Proceed\x20with\x20upgrade?');if(!_0x52a78a){console[_0x498188(0x1dd)](a171_0x344141[_0x498188(0x170)]('Upgrade\x20cancelled.'));return;}}catch(_0x5ba0bc){if(_0x5ba0bc?.[_0x498188(0x171)]==='CANCEL'){console['log'](a171_0x344141[_0x498188(0x170)](_0x498188(0x1ce)));return;}throw _0x5ba0bc;}const _0x3d1d27=[],_0x1fd965=a171_0x486e3f({'text':_0x498188(0x1cb),'color':_0x498188(0x193)})[_0x498188(0x1ac)](),_0x35de33=execConfigMigration(_0x1ccf97,_0x38318b);_0x3d1d27[_0x498188(0x1b2)](_0x35de33),_0x1fd965[_0x35de33['ok']?_0x498188(0x183):_0x498188(0x180)](_0x498188(0x179)+(_0x35de33[_0x498188(0x1a1)]??(_0x35de33['ok']?_0x498188(0x1a6):_0x498188(0x1c1))));const _0x13949a=resolve(_0x38318b,_0x498188(0x18e)),_0x27cf6b=a171_0x486e3f({'text':_0x498188(0x174),'color':_0x498188(0x193)})[_0x498188(0x1ac)]();if(existsSync(_0x13949a))try{rmSync(_0x13949a,{'recursive':!![],'force':!![]}),_0x27cf6b[_0x498188(0x183)]('Step\x202/7:\x20.lovrabet/\x20directory\x20removed'),_0x3d1d27['push']({'step':0x2,'label':_0x498188(0x1d4),'ok':!![]});}catch(_0x85e952){_0x27cf6b['fail']('Step\x202/7:\x20.lovrabet/\x20removal\x20failed\x20—\x20'+_0x85e952[_0x498188(0x171)]),_0x3d1d27[_0x498188(0x1b2)]({'step':0x2,'label':_0x498188(0x1d4),'ok':![],'detail':_0x85e952[_0x498188(0x171)]});}else _0x27cf6b['info'](_0x498188(0x1db)),_0x3d1d27['push']({'step':0x2,'label':_0x498188(0x1d4),'ok':!![],'detail':_0x498188(0x17b)});const _0x408020=a171_0x486e3f({'text':_0x498188(0x1ad),'color':_0x498188(0x193)})[_0x498188(0x1ac)](),_0x2b7678=execRemoveOldArtifacts(_0x1ccf97[_0x498188(0x16a)]);_0x3d1d27[_0x498188(0x1b2)](_0x2b7678),_0x408020[_0x2b7678['ok']?_0x498188(0x183):_0x498188(0x180)]('Step\x203/7:\x20Legacy\x20artifacts\x20—\x20'+(_0x2b7678[_0x498188(0x1a1)]??(_0x2b7678['ok']?'done':'failed')));const _0x139ed6=a171_0x486e3f({'text':_0x498188(0x1bd),'color':_0x498188(0x193)})[_0x498188(0x1ac)](),_0xc225d=execCleanMcp(_0x1ccf97);_0x3d1d27['push'](_0xc225d),_0x139ed6[_0xc225d['ok']?'succeed':'fail'](_0x498188(0x1be)+(_0xc225d[_0x498188(0x1a1)]??(_0xc225d['ok']?'done':_0x498188(0x1c1))));const _0x4e2be9=a171_0x486e3f({'text':'Step\x205/7:\x20Removing\x20old\x20skill...','color':_0x498188(0x193)})[_0x498188(0x1ac)](),_0x39c588=execSkillsRemove(_0x38318b,_0x118ccf);_0x3d1d27[_0x498188(0x1b2)](_0x39c588),_0x4e2be9[_0x39c588['ok']?'succeed':_0x498188(0x180)](_0x498188(0x1c6)+(_0x39c588[_0x498188(0x1a1)]??(_0x39c588['ok']?'done':_0x498188(0x1c1))));const _0x2372c8=a171_0x486e3f({'text':_0x498188(0x19b),'color':_0x498188(0x193)})[_0x498188(0x1ac)](),_0x5f4794=execSkillsAdd(_0x38318b,_0x118ccf);_0x3d1d27['push'](_0x5f4794),_0x2372c8[_0x5f4794['ok']?_0x498188(0x183):_0x498188(0x180)](_0x498188(0x1b6)+(_0x5f4794[_0x498188(0x1a1)]??(_0x5f4794['ok']?'done':_0x498188(0x1c1))));const _0x31dd12=a171_0x486e3f({'text':_0x498188(0x195),'color':_0x498188(0x193)})[_0x498188(0x1ac)](),_0x5f4efe=execUpgradeSdk(_0x1ccf97);_0x3d1d27[_0x498188(0x1b2)](_0x5f4efe),_0x31dd12[_0x5f4efe['ok']?_0x498188(0x183):'fail']('Step\x207/7:\x20@lovrabet/sdk\x20—\x20'+(_0x5f4efe[_0x498188(0x1a1)]??(_0x5f4efe['ok']?'done':_0x498188(0x1c1)))),printSummary(_0x3d1d27);const _0x159f1e=_0x3d1d27['some'](_0xdd560c=>!_0xdd560c['ok']);_0x159f1e?console[_0x498188(0x1dd)](a171_0x344141[_0x498188(0x199)]('Some\x20steps\x20failed.\x20Check\x20the\x20summary\x20above\x20for\x20details.')):console[_0x498188(0x1dd)](a171_0x344141[_0x498188(0x177)]('Upgrade\x20completed\x20successfully!')),_0x5f4efe['ok']&&_0x1ccf97['sdkUpgrade']&&(console[_0x498188(0x1dd)](''),console[_0x498188(0x1dd)](a171_0x344141[_0x498188(0x176)][_0x498188(0x193)](_0x498188(0x19a))),console[_0x498188(0x1dd)](a171_0x344141[_0x498188(0x193)]('Please\x20re-install\x20dependencies\x20to\x20apply\x20the\x20change:')),console[_0x498188(0x1dd)](''),console[_0x498188(0x1dd)](a171_0x344141['white'](_0x498188(0x1c9))),console[_0x498188(0x1dd)](a171_0x344141[_0x498188(0x18a)](_0x498188(0x188))),console[_0x498188(0x1dd)](a171_0x344141['white'](_0x498188(0x1d2))),console[_0x498188(0x1dd)](''));}
@@ -42,8 +42,8 @@ export interface ServiceEntry {
42
42
  wildcardDef?: CommandDefinition;
43
43
  /**
44
44
  * 单命令 service 标记。
45
- * true 时 help 将服务显示为直接命令(rabetbase init),
46
- * 而非子命令形式(rabetbase init run)。
45
+ * true 时 help 将服务显示为直接命令(如 rabetbase doctor),
46
+ * 而非子命令形式(如 rabetbase doctor run)。
47
47
  */
48
48
  isSingleCommand?: boolean;
49
49
  }