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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/api-group.d.ts +22 -0
  3. package/lib/api/api-group.js +1 -0
  4. package/lib/api/fetch-model-list.js +1 -1
  5. package/lib/api/generate-api-file.d.ts +18 -2
  6. package/lib/api/generate-api-file.js +1 -1
  7. package/lib/api/generate-sdk-config-file.js +1 -1
  8. package/lib/api/legacy-api-file.d.ts +11 -0
  9. package/lib/api/legacy-api-file.js +1 -0
  10. package/lib/api/model-registry-file.d.ts +36 -0
  11. package/lib/api/model-registry-file.js +1 -0
  12. package/lib/api/model-registry-scaffold.d.ts +7 -0
  13. package/lib/api/model-registry-scaffold.js +1 -0
  14. package/lib/api/model-source.d.ts +6 -0
  15. package/lib/api/model-source.js +1 -0
  16. package/lib/auth/auth-server-ui.js +1 -1
  17. package/lib/auth/auth-server.js +1 -1
  18. package/lib/auth/constant.js +1 -1
  19. package/lib/auth/get-cookie.js +1 -1
  20. package/lib/auth/get-session-user.js +1 -1
  21. package/lib/auth/is-session-valid.js +1 -1
  22. package/lib/auth/login-success-html.js +1 -1
  23. package/lib/auth/logout.js +1 -1
  24. package/lib/cli-flags.js +1 -1
  25. package/lib/cli.js +1 -1
  26. package/lib/commands/api/generate.js +1 -1
  27. package/lib/commands/api/index.js +1 -1
  28. package/lib/commands/api/list.js +1 -1
  29. package/lib/commands/api/pull.js +1 -1
  30. package/lib/commands/api/shared.js +1 -1
  31. package/lib/commands/app/index.js +1 -1
  32. package/lib/commands/app/list.js +1 -1
  33. package/lib/commands/app/members-list.js +1 -1
  34. package/lib/commands/app/remote-directory.js +1 -1
  35. package/lib/commands/app/shared.js +1 -1
  36. package/lib/commands/app-config/delete.js +1 -1
  37. package/lib/commands/app-config/get.js +1 -1
  38. package/lib/commands/app-config/index.js +1 -1
  39. package/lib/commands/app-config/list.js +1 -1
  40. package/lib/commands/app-config/set.js +1 -1
  41. package/lib/commands/app-config/shared.js +1 -1
  42. package/lib/commands/auth/index.js +1 -1
  43. package/lib/commands/bff/create.js +1 -1
  44. package/lib/commands/bff/delete.js +1 -1
  45. package/lib/commands/bff/detail.js +1 -1
  46. package/lib/commands/bff/index.js +1 -1
  47. package/lib/commands/bff/list.js +1 -1
  48. package/lib/commands/bff/logs.js +1 -1
  49. package/lib/commands/bff/pull.js +1 -1
  50. package/lib/commands/bff/push.js +1 -1
  51. package/lib/commands/bff/status.js +1 -1
  52. package/lib/commands/cli-skill/index.js +1 -1
  53. package/lib/commands/cli-update.js +1 -1
  54. package/lib/commands/codegen/index.js +1 -1
  55. package/lib/commands/codegen/sdk.js +1 -1
  56. package/lib/commands/codegen/sql.js +1 -1
  57. package/lib/commands/common/app-registry.js +1 -1
  58. package/lib/commands/common/app-selector.js +1 -1
  59. package/lib/commands/common/async-task.js +1 -1
  60. package/lib/commands/common/dry-run.js +1 -1
  61. package/lib/commands/common/flags.d.ts +7 -0
  62. package/lib/commands/common/flags.js +1 -1
  63. package/lib/commands/common/local-file.js +1 -1
  64. package/lib/commands/common/validate.js +1 -1
  65. package/lib/commands/config/delete.js +1 -1
  66. package/lib/commands/config/get.js +1 -1
  67. package/lib/commands/config/index.js +1 -1
  68. package/lib/commands/config/init.js +1 -1
  69. package/lib/commands/config/list.js +1 -1
  70. package/lib/commands/config/set.js +1 -1
  71. package/lib/commands/config/shared.js +1 -1
  72. package/lib/commands/dataset/batch-design.js +1 -1
  73. package/lib/commands/dataset/business-group-update.js +1 -1
  74. package/lib/commands/dataset/business-groups.js +1 -1
  75. package/lib/commands/dataset/capability.js +1 -1
  76. package/lib/commands/dataset/cross-relation-create.d.ts +2 -0
  77. package/lib/commands/dataset/cross-relation-create.js +1 -0
  78. package/lib/commands/dataset/cross-relation-delete.d.ts +2 -0
  79. package/lib/commands/dataset/cross-relation-delete.js +1 -0
  80. package/lib/commands/dataset/cross-relation-list.d.ts +2 -0
  81. package/lib/commands/dataset/cross-relation-list.js +1 -0
  82. package/lib/commands/dataset/cross-relation-shared.d.ts +190 -0
  83. package/lib/commands/dataset/cross-relation-shared.js +1 -0
  84. package/lib/commands/dataset/cross-relation-update.d.ts +2 -0
  85. package/lib/commands/dataset/cross-relation-update.js +1 -0
  86. package/lib/commands/dataset/delete.js +1 -1
  87. package/lib/commands/dataset/detail.js +1 -1
  88. package/lib/commands/dataset/extend-update.js +1 -1
  89. package/lib/commands/dataset/field-restore.js +1 -1
  90. package/lib/commands/dataset/field-update.js +1 -1
  91. package/lib/commands/dataset/generate.js +1 -1
  92. package/lib/commands/dataset/index.js +1 -1
  93. package/lib/commands/dataset/list.js +1 -1
  94. package/lib/commands/dataset/operations.js +1 -1
  95. package/lib/commands/dataset/relation-audit.js +1 -1
  96. package/lib/commands/dataset/relation-create.js +1 -1
  97. package/lib/commands/dataset/relation-delete.js +1 -1
  98. package/lib/commands/dataset/relation-shared.js +1 -1
  99. package/lib/commands/dataset/relation-update.js +1 -1
  100. package/lib/commands/dataset/relations.js +1 -1
  101. package/lib/commands/dataset/rename.js +1 -1
  102. package/lib/commands/dataset/restore.js +1 -1
  103. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  104. package/lib/commands/db/analysis-batching.js +1 -1
  105. package/lib/commands/db/analyze-batch-plan.js +1 -1
  106. package/lib/commands/db/analyze-cancel.js +1 -1
  107. package/lib/commands/db/analyze-start.js +1 -1
  108. package/lib/commands/db/analyze-status.js +1 -1
  109. package/lib/commands/db/create.js +1 -1
  110. package/lib/commands/db/delete.js +1 -1
  111. package/lib/commands/db/detail.js +1 -1
  112. package/lib/commands/db/diff-refresh-start.js +1 -1
  113. package/lib/commands/db/diff-refresh-status.js +1 -1
  114. package/lib/commands/db/diff.js +1 -1
  115. package/lib/commands/db/index.js +1 -1
  116. package/lib/commands/db/list.js +1 -1
  117. package/lib/commands/db/shared.js +1 -1
  118. package/lib/commands/db/table-diff-shared.js +1 -1
  119. package/lib/commands/db/tables.js +1 -1
  120. package/lib/commands/db/test.js +1 -1
  121. package/lib/commands/db/update.js +1 -1
  122. package/lib/commands/deployment/index.js +1 -1
  123. package/lib/commands/deployment/sync-all.js +1 -1
  124. package/lib/commands/deployment/sync-jobs.js +1 -1
  125. package/lib/commands/deployment/sync-status.js +1 -1
  126. package/lib/commands/doctor.js +1 -1
  127. package/lib/commands/file/index.js +1 -1
  128. package/lib/commands/flow/create.js +1 -1
  129. package/lib/commands/flow/detail.js +1 -1
  130. package/lib/commands/flow/index.js +1 -1
  131. package/lib/commands/flow/list.js +1 -1
  132. package/lib/commands/flow/publish.js +1 -1
  133. package/lib/commands/flow/runtime-resources-shared.js +1 -1
  134. package/lib/commands/flow/runtime-role-list.js +1 -1
  135. package/lib/commands/flow/runtime-role-user-list.js +1 -1
  136. package/lib/commands/flow/runtime-user-search.js +1 -1
  137. package/lib/commands/flow/shared.js +1 -1
  138. package/lib/commands/flow/update.js +1 -1
  139. package/lib/commands/flow/validate.js +1 -1
  140. package/lib/commands/instant-api-policy/current.js +1 -1
  141. package/lib/commands/instant-api-policy/index.js +1 -1
  142. package/lib/commands/instant-api-policy/init.js +1 -1
  143. package/lib/commands/instant-api-policy/publish.js +1 -1
  144. package/lib/commands/instant-api-policy/pull.js +1 -1
  145. package/lib/commands/instant-api-policy/revision.js +1 -1
  146. package/lib/commands/instant-api-policy/revisions.js +1 -1
  147. package/lib/commands/instant-api-policy/rollback.js +1 -1
  148. package/lib/commands/instant-api-policy/shared.js +1 -1
  149. package/lib/commands/instant-api-policy/validate.js +1 -1
  150. package/lib/commands/issue/index.js +1 -1
  151. package/lib/commands/issue/nudge.js +1 -1
  152. package/lib/commands/issue/report.js +1 -1
  153. package/lib/commands/issue/shared.js +1 -1
  154. package/lib/commands/kb/create.js +1 -1
  155. package/lib/commands/kb/delete.js +1 -1
  156. package/lib/commands/kb/detail.js +1 -1
  157. package/lib/commands/kb/index.js +1 -1
  158. package/lib/commands/kb/list.js +1 -1
  159. package/lib/commands/kb/search.js +1 -1
  160. package/lib/commands/kb/shared.js +1 -1
  161. package/lib/commands/kb/update.js +1 -1
  162. package/lib/commands/logs/index.js +1 -1
  163. package/lib/commands/menu/asset-update.js +1 -1
  164. package/lib/commands/menu/delete.js +1 -1
  165. package/lib/commands/menu/external-link-create.js +1 -1
  166. package/lib/commands/menu/external-link-update.js +1 -1
  167. package/lib/commands/menu/group-create.js +1 -1
  168. package/lib/commands/menu/group-update.js +1 -1
  169. package/lib/commands/menu/index.js +1 -1
  170. package/lib/commands/menu/list.js +1 -1
  171. package/lib/commands/menu/move.js +1 -1
  172. package/lib/commands/menu/regroup-start.js +1 -1
  173. package/lib/commands/menu/rename.js +1 -1
  174. package/lib/commands/menu/shared/compare-table.js +1 -1
  175. package/lib/commands/menu/shared/delete-plan.js +1 -1
  176. package/lib/commands/menu/shared/facts.js +1 -1
  177. package/lib/commands/menu/shared/index.js +1 -1
  178. package/lib/commands/menu/shared/inquirer.js +1 -1
  179. package/lib/commands/menu/shared/local-pages.js +1 -1
  180. package/lib/commands/menu/shared/logic.js +1 -1
  181. package/lib/commands/menu/shared/mutations.js +1 -1
  182. package/lib/commands/menu/shared/service.js +1 -1
  183. package/lib/commands/menu/shared/sync-core.js +1 -1
  184. package/lib/commands/menu/shared/update-core.js +1 -1
  185. package/lib/commands/menu/shared/valid-url.js +1 -1
  186. package/lib/commands/menu/sync.js +1 -1
  187. package/lib/commands/menu/visibility-update.js +1 -1
  188. package/lib/commands/notification/config-create.js +1 -1
  189. package/lib/commands/notification/config-delete.js +1 -1
  190. package/lib/commands/notification/config-list.js +1 -1
  191. package/lib/commands/notification/config-update.js +1 -1
  192. package/lib/commands/notification/index.js +1 -1
  193. package/lib/commands/notification/shared.js +1 -1
  194. package/lib/commands/ocr/index.js +1 -1
  195. package/lib/commands/page/create.js +1 -1
  196. package/lib/commands/page/custom/detail.js +1 -1
  197. package/lib/commands/page/custom/list.js +1 -1
  198. package/lib/commands/page/custom/publish.js +1 -1
  199. package/lib/commands/page/custom/shared.js +1 -1
  200. package/lib/commands/page/custom/syntax.js +1 -1
  201. package/lib/commands/page/custom/update.js +1 -1
  202. package/lib/commands/page/data-list-status.js +1 -1
  203. package/lib/commands/page/generate-start.js +1 -1
  204. package/lib/commands/page/generate-status.js +1 -1
  205. package/lib/commands/page/index.js +1 -1
  206. package/lib/commands/page/pull.js +1 -1
  207. package/lib/commands/page/push.js +1 -1
  208. package/lib/commands/page/relation-audit.js +1 -1
  209. package/lib/commands/page/restore.js +1 -1
  210. package/lib/commands/page/shared.js +1 -1
  211. package/lib/commands/page/sync.js +1 -1
  212. package/lib/commands/project/api-architecture-upgrade.d.ts +28 -0
  213. package/lib/commands/project/api-architecture-upgrade.js +1 -0
  214. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  215. package/lib/commands/project/create/format-elapsed.js +1 -1
  216. package/lib/commands/project/create/main.js +1 -1
  217. package/lib/commands/project/create/materialize-project-template.js +1 -1
  218. package/lib/commands/project/create/project-name.js +1 -1
  219. package/lib/commands/project/create/project-template-archive.js +1 -1
  220. package/lib/commands/project/create/project-template-path.js +1 -1
  221. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  222. package/lib/commands/project/create/use-format-code.js +1 -1
  223. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  224. package/lib/commands/project/domain-routing-sync.js +1 -1
  225. package/lib/commands/project/index.js +1 -1
  226. package/lib/commands/project/upgrade.d.ts +30 -1
  227. package/lib/commands/project/upgrade.js +1 -1
  228. package/lib/commands/registry.js +1 -1
  229. package/lib/commands/role/delete.js +1 -1
  230. package/lib/commands/role/detail.js +1 -1
  231. package/lib/commands/role/index.js +1 -1
  232. package/lib/commands/role/list.js +1 -1
  233. package/lib/commands/role/shared.js +1 -1
  234. package/lib/commands/role/update.js +1 -1
  235. package/lib/commands/role/user-add.js +1 -1
  236. package/lib/commands/role/user-remove.js +1 -1
  237. package/lib/commands/role/user-resolve.js +1 -1
  238. package/lib/commands/rule/get.js +1 -1
  239. package/lib/commands/rule/index.js +1 -1
  240. package/lib/commands/rule/list.js +1 -1
  241. package/lib/commands/rule/set.js +1 -1
  242. package/lib/commands/rule/shared.js +1 -1
  243. package/lib/commands/run/index.js +1 -1
  244. package/lib/commands/schema.js +1 -1
  245. package/lib/commands/sql/create.js +1 -1
  246. package/lib/commands/sql/delete.js +1 -1
  247. package/lib/commands/sql/detail.js +1 -1
  248. package/lib/commands/sql/exec.js +1 -1
  249. package/lib/commands/sql/index.js +1 -1
  250. package/lib/commands/sql/list.js +1 -1
  251. package/lib/commands/sql/pull.js +1 -1
  252. package/lib/commands/sql/push.js +1 -1
  253. package/lib/commands/sql/shared.js +1 -1
  254. package/lib/commands/sql/status.js +1 -1
  255. package/lib/commands/sql/validate.js +1 -1
  256. package/lib/commands/task/index.js +1 -1
  257. package/lib/commands/task/status.js +1 -1
  258. package/lib/commands/tenant/index.js +1 -1
  259. package/lib/commands/tenant/members-list.js +1 -1
  260. package/lib/commands/tenant/shared.js +1 -1
  261. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  262. package/lib/commands/user-account/index.js +1 -1
  263. package/lib/commands/workspace/add.js +1 -1
  264. package/lib/commands/workspace/index.js +1 -1
  265. package/lib/commands/workspace/remove.js +1 -1
  266. package/lib/config/domain-config.js +1 -1
  267. package/lib/config/project-domain-routing.js +1 -1
  268. package/lib/config/region-config.js +1 -1
  269. package/lib/config/schema.js +1 -1
  270. package/lib/constant/cdn.js +1 -1
  271. package/lib/constant/cli.js +1 -1
  272. package/lib/constant/defaults.js +1 -1
  273. package/lib/constant/domain.js +1 -1
  274. package/lib/constant/env.js +1 -1
  275. package/lib/constant/output.js +1 -1
  276. package/lib/constant/paths.js +1 -1
  277. package/lib/constant/region.js +1 -1
  278. package/lib/constant/risk.js +1 -1
  279. package/lib/constant/routing-profile.js +1 -1
  280. package/lib/context/app-resolver.d.ts +2 -0
  281. package/lib/context/app-resolver.js +1 -1
  282. package/lib/context/auth-resolver.js +1 -1
  283. package/lib/context/config-loader.js +1 -1
  284. package/lib/context.d.ts +2 -1
  285. package/lib/context.js +1 -1
  286. package/lib/core/alias-resolver.d.ts +13 -17
  287. package/lib/core/alias-resolver.js +1 -1
  288. package/lib/core/api-client.d.ts +6 -0
  289. package/lib/core/api-client.js +1 -1
  290. package/lib/core/bff/config.js +1 -1
  291. package/lib/core/bff/file-system.js +1 -1
  292. package/lib/core/bff/hash.js +1 -1
  293. package/lib/core/bff/hook-directory.js +1 -1
  294. package/lib/core/bff/lock.js +1 -1
  295. package/lib/core/bff/utils.js +1 -1
  296. package/lib/core/cross-db-relation.d.ts +41 -0
  297. package/lib/core/cross-db-relation.js +1 -0
  298. package/lib/core/db-resolver.js +1 -1
  299. package/lib/core/flow-config.js +1 -1
  300. package/lib/core/instant-api-policy/config.js +1 -1
  301. package/lib/core/kb-search-client.js +1 -1
  302. package/lib/core/page/file-system.js +1 -1
  303. package/lib/core/page/hash.js +1 -1
  304. package/lib/core/page/lock.js +1 -1
  305. package/lib/core/page/lr-smart-jsx.js +1 -1
  306. package/lib/core/sql-index-auditor.js +1 -1
  307. package/lib/core/sql-sync/config.js +1 -1
  308. package/lib/core/sql-sync/file-system.js +1 -1
  309. package/lib/core/sql-sync/hash.js +1 -1
  310. package/lib/core/sql-sync/lock.js +1 -1
  311. package/lib/core/sql-sync/utils.js +1 -1
  312. package/lib/core/sql-validator.js +1 -1
  313. package/lib/errors.js +1 -1
  314. package/lib/framework/build-all-flags.js +1 -1
  315. package/lib/framework/error-output.js +1 -1
  316. package/lib/framework/explicit-yes.js +1 -1
  317. package/lib/framework/flags.js +1 -1
  318. package/lib/framework/help.js +1 -1
  319. package/lib/framework/index.js +1 -1
  320. package/lib/framework/output.js +1 -1
  321. package/lib/framework/response.js +1 -1
  322. package/lib/framework/runner-alias.d.ts +1 -1
  323. package/lib/framework/runner-alias.js +1 -1
  324. package/lib/framework/runner.js +1 -1
  325. package/lib/framework/schema-export.js +1 -1
  326. package/lib/framework/supported-flags.js +1 -1
  327. package/lib/framework/types.js +1 -1
  328. package/lib/generated/build-info.d.ts +4 -4
  329. package/lib/generated/build-info.js +1 -1
  330. package/lib/generated/official-routing.js +1 -1
  331. package/lib/generated/routing-contract.js +1 -1
  332. package/lib/help.js +1 -1
  333. package/lib/postinstall.js +1 -1
  334. package/lib/runtime/confirmation.js +1 -1
  335. package/lib/runtime/event.js +1 -1
  336. package/lib/runtime/index.js +1 -1
  337. package/lib/runtime/queue.js +1 -1
  338. package/lib/runtime/resolve.js +1 -1
  339. package/lib/skills/builtin-skill.js +1 -1
  340. package/lib/skills/main.js +1 -1
  341. package/lib/skills/npx-skills-add.d.ts +0 -10
  342. package/lib/skills/npx-skills-add.js +1 -1
  343. package/lib/skills/skill-presence.js +1 -1
  344. package/lib/telemetry/cli-command-trace.js +1 -1
  345. package/lib/telemetry/cli-help-trace.js +1 -1
  346. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  347. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  348. package/lib/telemetry/send-cli-trace-log.js +1 -1
  349. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  350. package/lib/types/index.d.ts +11 -1
  351. package/lib/utils/ai_config.js +1 -1
  352. package/lib/utils/apply-jq-filter.js +1 -1
  353. package/lib/utils/cdn-config.js +1 -1
  354. package/lib/utils/check-sdk-version.js +1 -1
  355. package/lib/utils/cli-version-check.js +1 -1
  356. package/lib/utils/cli-version-policy.d.ts +12 -0
  357. package/lib/utils/cli-version-policy.js +1 -1
  358. package/lib/utils/config.js +1 -1
  359. package/lib/utils/entity-with-id.js +1 -1
  360. package/lib/utils/file-utils.js +1 -1
  361. package/lib/utils/guides-cdn.js +1 -1
  362. package/lib/utils/http-client.js +1 -1
  363. package/lib/utils/is-non-interactive.js +1 -1
  364. package/lib/utils/logger.js +1 -1
  365. package/lib/utils/params.js +1 -1
  366. package/lib/utils/platform.js +1 -1
  367. package/lib/utils/sleep.js +1 -1
  368. package/lib/utils/template-replacer.js +1 -1
  369. package/lib/utils/update-notice.js +1 -1
  370. package/lib/utils/version.js +1 -1
  371. package/lib/utils/with-active-cookie.js +1 -1
  372. package/lib/utils/write-cli-side-channel.js +1 -1
  373. package/package.json +4 -1
  374. package/skills/rabetbase/SKILL.md +10 -6
  375. package/skills/rabetbase/guides/sdk-client-generation.md +112 -61
  376. package/skills/rabetbase/guides/typescript-sdk.md +9 -0
  377. package/skills/rabetbase/references/rabetbase-api-pull.md +30 -19
  378. package/skills/rabetbase/references/rabetbase-app-list.md +1 -1
  379. package/skills/rabetbase/references/rabetbase-config.md +2 -1
  380. package/skills/rabetbase/references/rabetbase-dataset-cross-relations.md +60 -0
  381. package/skills/rabetbase/references/rabetbase-project-create.md +3 -3
  382. package/skills/rabetbase/references/rabetbase-project-upgrade.md +24 -13
  383. package/skills/rabetbase.manifest.json +4 -3
  384. package/templates/README.md +16 -4
  385. package/templates/generate-api/model-runtime.ts.tpl +101 -0
  386. package/templates/generate-api/profile-api.ts.tpl +21 -0
  387. package/templates/generate-api/profile-client.ts.tpl +14 -0
@@ -1 +1 @@
1
- (function(_0x10288b,_0x422e94){const _0x35cfda=a331_0x3d44,_0x4866dc=_0x10288b();while(!![]){try{const _0x14c5f0=parseInt(_0x35cfda(0xfb))/0x1*(-parseInt(_0x35cfda(0xf2))/0x2)+parseInt(_0x35cfda(0x101))/0x3+parseInt(_0x35cfda(0x105))/0x4*(-parseInt(_0x35cfda(0x103))/0x5)+-parseInt(_0x35cfda(0xf4))/0x6+-parseInt(_0x35cfda(0xf6))/0x7*(parseInt(_0x35cfda(0xef))/0x8)+-parseInt(_0x35cfda(0xea))/0x9*(parseInt(_0x35cfda(0xfe))/0xa)+parseInt(_0x35cfda(0xfa))/0xb*(parseInt(_0x35cfda(0xfd))/0xc);if(_0x14c5f0===_0x422e94)break;else _0x4866dc['push'](_0x4866dc['shift']());}catch(_0x50ece1){_0x4866dc['push'](_0x4866dc['shift']());}}}(a331_0x4316,0xacf2a));export async function httpRequest(_0x28bd47,_0x15d3a1={}){const _0x2a3890=a331_0x3d44,{timeout:timeout=0x7530,retries:retries=0x3,retryDelay:retryDelay=0x3e8,headers:headers={}}=_0x15d3a1;let _0x56b200=null;for(let _0x4cef6b=0x0;_0x4cef6b<=retries;_0x4cef6b++){try{const _0x23bfb5=new AbortController(),_0x227a86=setTimeout(()=>_0x23bfb5[_0x2a3890(0xf0)](),timeout),_0x13969f=await fetch(_0x28bd47,{'headers':headers,'signal':_0x23bfb5[_0x2a3890(0xf3)]});clearTimeout(_0x227a86);let _0x29615f;const _0x300d21=_0x13969f[_0x2a3890(0xec)][_0x2a3890(0x109)](_0x2a3890(0xe9));return _0x300d21?.[_0x2a3890(0x102)]('application/json')?_0x29615f=await _0x13969f[_0x2a3890(0xeb)]():_0x29615f=await _0x13969f[_0x2a3890(0x106)](),{'ok':_0x13969f['ok'],'status':_0x13969f[_0x2a3890(0xff)],'statusText':_0x13969f['statusText'],'data':_0x29615f,'headers':_0x13969f[_0x2a3890(0xec)],'url':_0x13969f[_0x2a3890(0xf5)],'text':()=>_0x13969f[_0x2a3890(0x106)]()};}catch(_0x475554){_0x56b200=_0x475554 instanceof Error?_0x475554:new Error(String(_0x475554));if(_0x4cef6b===retries)break;if(shouldRetry(_0x475554)){console[_0x2a3890(0x108)]('*\x20Request\x20failed;\x20retry\x20'+(_0x4cef6b+0x1)+_0x2a3890(0xfc)+retryDelay+_0x2a3890(0x104)),await sleep(retryDelay);continue;}else break;}}throw _0x56b200||new Error(_0x2a3890(0x100));}function shouldRetry(_0x2e750c){const _0x4a7ab6=a331_0x3d44;if(_0x2e750c instanceof Error){if(_0x2e750c['name']===_0x4a7ab6(0xf9))return![];if(_0x2e750c[_0x4a7ab6(0xf8)]===_0x4a7ab6(0x107)&&_0x2e750c[_0x4a7ab6(0xee)][_0x4a7ab6(0x102)](_0x4a7ab6(0xf1)))return!![];if(_0x2e750c[_0x4a7ab6(0xee)][_0x4a7ab6(0x102)](_0x4a7ab6(0xf7)))return!![];if(_0x2e750c[_0x4a7ab6(0xee)]['includes'](_0x4a7ab6(0xed)))return![];}return![];}function sleep(_0x364594){return new Promise(_0x5b2d66=>setTimeout(_0x5b2d66,_0x364594));}export function validateUrl(_0x475346){try{return new URL(_0x475346),!![];}catch{return![];}}function a331_0x3d44(_0x3e8bec,_0x4dfaed){_0x3e8bec=_0x3e8bec-0xe9;const _0x431669=a331_0x4316();let _0x3d44a9=_0x431669[_0x3e8bec];return _0x3d44a9;}function a331_0x4316(){const _0x55be08=['7KxkNzu','ECONNRESET','name','AbortError','11TYISSH','1tPisek','\x20in\x20','47316072vnQvBi','4878110dTNNFb','status','Request\x20failed','58422NwRJmz','includes','5XkxpdZ','ms...','1730884nXzUuO','text','TypeError','log','get','content-type','18qniovN','json','headers','ENOTFOUND','message','2750648UMkIXt','abort','fetch','904054rSJQhR','signal','6299310NusJfX','url'];a331_0x4316=function(){return _0x55be08;};return a331_0x4316();}
1
+ function a343_0xd8ee(_0x130b0d,_0x47d66d){_0x130b0d=_0x130b0d-0x6d;const _0x5eaf5d=a343_0x5eaf();let _0xd8eeb5=_0x5eaf5d[_0x130b0d];return _0xd8eeb5;}(function(_0x42922,_0xfd6786){const _0x393f63=a343_0xd8ee,_0x154d25=_0x42922();while(!![]){try{const _0x30b12e=-parseInt(_0x393f63(0x72))/0x1*(-parseInt(_0x393f63(0x78))/0x2)+-parseInt(_0x393f63(0x84))/0x3*(parseInt(_0x393f63(0x86))/0x4)+-parseInt(_0x393f63(0x87))/0x5+-parseInt(_0x393f63(0x80))/0x6*(parseInt(_0x393f63(0x7c))/0x7)+parseInt(_0x393f63(0x6e))/0x8+-parseInt(_0x393f63(0x8a))/0x9+parseInt(_0x393f63(0x7a))/0xa;if(_0x30b12e===_0xfd6786)break;else _0x154d25['push'](_0x154d25['shift']());}catch(_0x590bed){_0x154d25['push'](_0x154d25['shift']());}}}(a343_0x5eaf,0x864ae));export async function httpRequest(_0x3c6212,_0x5a495d={}){const _0x1ea567=a343_0xd8ee,{timeout:timeout=0x7530,retries:retries=0x3,retryDelay:retryDelay=0x3e8,headers:headers={}}=_0x5a495d;let _0x79572a=null;for(let _0x34cebb=0x0;_0x34cebb<=retries;_0x34cebb++){try{const _0x471112=new AbortController(),_0x2b281=setTimeout(()=>_0x471112[_0x1ea567(0x71)](),timeout),_0x266c5a=await fetch(_0x3c6212,{'headers':headers,'signal':_0x471112['signal']});clearTimeout(_0x2b281);let _0x4e414f;const _0xd1611a=_0x266c5a['headers'][_0x1ea567(0x6d)](_0x1ea567(0x77));return _0xd1611a?.[_0x1ea567(0x73)](_0x1ea567(0x82))?_0x4e414f=await _0x266c5a[_0x1ea567(0x7e)]():_0x4e414f=await _0x266c5a[_0x1ea567(0x81)](),{'ok':_0x266c5a['ok'],'status':_0x266c5a[_0x1ea567(0x7b)],'statusText':_0x266c5a[_0x1ea567(0x88)],'data':_0x4e414f,'headers':_0x266c5a[_0x1ea567(0x70)],'url':_0x266c5a['url'],'text':()=>_0x266c5a[_0x1ea567(0x81)]()};}catch(_0x250f7f){_0x79572a=_0x250f7f instanceof Error?_0x250f7f:new Error(String(_0x250f7f));if(_0x34cebb===retries)break;if(shouldRetry(_0x250f7f)){console[_0x1ea567(0x7d)](_0x1ea567(0x79)+(_0x34cebb+0x1)+_0x1ea567(0x83)+retryDelay+_0x1ea567(0x7f)),await sleep(retryDelay);continue;}else break;}}throw _0x79572a||new Error('Request\x20failed');}function shouldRetry(_0x2f658f){const _0x464e0d=a343_0xd8ee;if(_0x2f658f instanceof Error){if(_0x2f658f['name']===_0x464e0d(0x76))return![];if(_0x2f658f[_0x464e0d(0x74)]===_0x464e0d(0x85)&&_0x2f658f[_0x464e0d(0x89)][_0x464e0d(0x73)](_0x464e0d(0x6f)))return!![];if(_0x2f658f[_0x464e0d(0x89)]['includes']('ECONNRESET'))return!![];if(_0x2f658f[_0x464e0d(0x89)][_0x464e0d(0x73)](_0x464e0d(0x75)))return![];}return![];}function a343_0x5eaf(){const _0x53dbc0=['75714iNCPtI','text','application/json','\x20in\x20','4737YitUyN','TypeError','2780wgnBhp','3290070cMuZiZ','statusText','message','7164846TcEgbA','get','8075368pVcRyU','fetch','headers','abort','137413QmvKrR','includes','name','ENOTFOUND','AbortError','content-type','16TllufA','*\x20Request\x20failed;\x20retry\x20','11568970wnALxF','status','91aumotE','log','json','ms...'];a343_0x5eaf=function(){return _0x53dbc0;};return a343_0x5eaf();}function sleep(_0x11bada){return new Promise(_0x10b645=>setTimeout(_0x10b645,_0x11bada));}export function validateUrl(_0x104cc3){try{return new URL(_0x104cc3),!![];}catch{return![];}}
@@ -1 +1 @@
1
- (function(_0x4a16af,_0x21e090){const _0x3bec36=a332_0x423f,_0x32d13c=_0x4a16af();while(!![]){try{const _0xcb45f0=-parseInt(_0x3bec36(0xf4))/0x1*(parseInt(_0x3bec36(0xf0))/0x2)+parseInt(_0x3bec36(0xf3))/0x3+parseInt(_0x3bec36(0xf7))/0x4*(-parseInt(_0x3bec36(0xfb))/0x5)+parseInt(_0x3bec36(0xfa))/0x6*(-parseInt(_0x3bec36(0xfd))/0x7)+parseInt(_0x3bec36(0xf2))/0x8*(parseInt(_0x3bec36(0xf8))/0x9)+-parseInt(_0x3bec36(0x101))/0xa*(-parseInt(_0x3bec36(0xf6))/0xb)+parseInt(_0x3bec36(0xf9))/0xc;if(_0xcb45f0===_0x21e090)break;else _0x32d13c['push'](_0x32d13c['shift']());}catch(_0x179f9e){_0x32d13c['push'](_0x32d13c['shift']());}}}(a332_0x54db,0xd7bf0));function env(_0xa94ed6){return process.env[`RABETBASE_${_0xa94ed6}`]||process.env[`LOVRABET_${_0xa94ed6}`]||undefined;}export function isNonInteractive(_0x5ea1bf){const _0x1f5723=a332_0x423f;return!!(_0x5ea1bf[_0x1f5723(0xfe)]||_0x5ea1bf['ci']||env('CI')===_0x1f5723(0x100)||process.env.CI===_0x1f5723(0x100)||!process[_0x1f5723(0xff)][_0x1f5723(0xf5)]||!isStdinRawModeSupported());}function a332_0x54db(){const _0x527949=['111357KPGjGR','5439060pfoeVp','6OXQonJ','5UixOFw','setRawMode','3797374paZBos','nonInteractive','stdout','true','3747390mOphDA','946GtlYud','stdin','792UqTHVs','513549jwJIBr','751dFXxWO','isTTY','11mXrzVU','1770812jXUsTE'];a332_0x54db=function(){return _0x527949;};return a332_0x54db();}function a332_0x423f(_0x269646,_0x2fd9e5){_0x269646=_0x269646-0xf0;const _0x54dbf9=a332_0x54db();let _0x423fc1=_0x54dbf9[_0x269646];return _0x423fc1;}function isStdinRawModeSupported(){const _0x2c4a95=a332_0x423f;if(!process[_0x2c4a95(0xf1)]['isTTY'])return![];try{const _0x31002d=process['stdin']['isRaw'];return process['stdin'][_0x2c4a95(0xfc)](!![]),process['stdin'][_0x2c4a95(0xfc)](_0x31002d??![]),!![];}catch{return![];}}
1
+ (function(_0x21468d,_0x3c5c48){const _0x41cb9e=a344_0x45a1,_0x1030aa=_0x21468d();while(!![]){try{const _0x17b7a7=parseInt(_0x41cb9e(0x167))/0x1*(parseInt(_0x41cb9e(0x16e))/0x2)+parseInt(_0x41cb9e(0x16f))/0x3+-parseInt(_0x41cb9e(0x172))/0x4*(-parseInt(_0x41cb9e(0x176))/0x5)+-parseInt(_0x41cb9e(0x16a))/0x6+-parseInt(_0x41cb9e(0x175))/0x7*(-parseInt(_0x41cb9e(0x173))/0x8)+parseInt(_0x41cb9e(0x16d))/0x9+-parseInt(_0x41cb9e(0x169))/0xa;if(_0x17b7a7===_0x3c5c48)break;else _0x1030aa['push'](_0x1030aa['shift']());}catch(_0x8e217c){_0x1030aa['push'](_0x1030aa['shift']());}}}(a344_0x5e31,0x6969b));function env(_0x47df5c){return process.env[`RABETBASE_${_0x47df5c}`]||process.env[`LOVRABET_${_0x47df5c}`]||undefined;}export function isNonInteractive(_0x2da682){const _0x58fca3=a344_0x45a1;return!!(_0x2da682[_0x58fca3(0x168)]||_0x2da682['ci']||env('CI')===_0x58fca3(0x170)||process.env.CI===_0x58fca3(0x170)||!process[_0x58fca3(0x174)][_0x58fca3(0x16c)]||!isStdinRawModeSupported());}function a344_0x45a1(_0x420944,_0x12a101){_0x420944=_0x420944-0x166;const _0x5e31de=a344_0x5e31();let _0x45a145=_0x5e31de[_0x420944];return _0x45a145;}function a344_0x5e31(){const _0x419efe=['stdout','7VCWIaZ','13270qLlGXw','stdin','346YMJsMG','nonInteractive','6714110BATxiB','4166640OErmTl','setRawMode','isTTY','1004940dnlJSW','3036dOVsPb','1024290IsxpNt','true','isRaw','628kFxlYd','3221008CXJbSY'];a344_0x5e31=function(){return _0x419efe;};return a344_0x5e31();}function isStdinRawModeSupported(){const _0x2f315a=a344_0x45a1;if(!process[_0x2f315a(0x166)]['isTTY'])return![];try{const _0x26eb65=process[_0x2f315a(0x166)][_0x2f315a(0x171)];return process['stdin'][_0x2f315a(0x16b)](!![]),process[_0x2f315a(0x166)][_0x2f315a(0x16b)](_0x26eb65??![]),!![];}catch{return![];}}
@@ -1 +1 @@
1
- const a333_0xf46976=a333_0x38c6;(function(_0x466ea2,_0x26a2ee){const _0x3a8f9a=a333_0x38c6,_0x3d435e=_0x466ea2();while(!![]){try{const _0x4fcfe9=-parseInt(_0x3a8f9a(0xe1))/0x1*(-parseInt(_0x3a8f9a(0xf2))/0x2)+-parseInt(_0x3a8f9a(0xe7))/0x3*(-parseInt(_0x3a8f9a(0xee))/0x4)+-parseInt(_0x3a8f9a(0x100))/0x5+-parseInt(_0x3a8f9a(0xff))/0x6+-parseInt(_0x3a8f9a(0xd2))/0x7*(parseInt(_0x3a8f9a(0xe6))/0x8)+-parseInt(_0x3a8f9a(0xe0))/0x9+-parseInt(_0x3a8f9a(0xd9))/0xa*(-parseInt(_0x3a8f9a(0xde))/0xb);if(_0x4fcfe9===_0x26a2ee)break;else _0x3d435e['push'](_0x3d435e['shift']());}catch(_0x170d78){_0x3d435e['push'](_0x3d435e['shift']());}}}(a333_0x5640,0x250c3));function a333_0x38c6(_0x5bb278,_0x225dd8){_0x5bb278=_0x5bb278-0xcf;const _0x564095=a333_0x5640();let _0x38c674=_0x564095[_0x5bb278];return _0x38c674;}import a333_0x8462a6 from'winston';import a333_0x9f2aab from'node:fs';import a333_0x47e7f9 from'node:path';class Logger{[a333_0xf46976(0xdb)];[a333_0xf46976(0xf4)];['currentRawCommand']='';constructor(){this['logFilePath']='';}['setRawCommand'](_0x30d1b1){const _0x5bee34=a333_0xf46976;this[_0x5bee34(0xf1)]=_0x30d1b1;}['initWinstonLogger'](){const _0x31880f=a333_0xf46976,_0xa8543b=a333_0x47e7f9[_0x31880f(0xd4)](this[_0x31880f(0xf4)]);!a333_0x9f2aab[_0x31880f(0xd1)](_0xa8543b)&&a333_0x9f2aab[_0x31880f(0x106)](_0xa8543b,{'recursive':!![]});const _0x206896=a333_0x8462a6[_0x31880f(0xd8)][_0x31880f(0xef)](a333_0x8462a6['format'][_0x31880f(0x101)](),a333_0x8462a6[_0x31880f(0xd8)][_0x31880f(0xea)]({'stack':!![]}),a333_0x8462a6[_0x31880f(0xd8)][_0x31880f(0xe2)](_0x5265a7=>{const _0x4f616d=_0x31880f,_0xf2a1a6={'timestamp':_0x5265a7['timestamp']||new Date()[_0x4f616d(0xcf)](),'level':_0x5265a7['level']||'info','command':_0x5265a7[_0x4f616d(0xf6)]||_0x4f616d(0xe5),'rawCommand':_0x5265a7[_0x4f616d(0xf0)]||this['currentRawCommand']||undefined,'message':_0x5265a7[_0x4f616d(0x102)]||'','duration':_0x5265a7['duration']||undefined,'details':_0x5265a7[_0x4f616d(0xd0)]||undefined};return JSON['stringify'](_0xf2a1a6);}));this[_0x31880f(0xdb)]=a333_0x8462a6['createLogger']({'level':_0x31880f(0xfb),'format':_0x206896,'transports':[new a333_0x8462a6[(_0x31880f(0x103))][(_0x31880f(0x105))]({'filename':this['logFilePath'],'level':_0x31880f(0xfb)})],'silent':![]}),a333_0x8462a6[_0x31880f(0xfc)]({'success':'green','error':'red','warn':'yellow','info':_0x31880f(0xfe)});}[a333_0xf46976(0xe4)](_0x4b29c7){const _0x55fc0c=a333_0xf46976;this[_0x55fc0c(0xf4)]=a333_0x47e7f9[_0x55fc0c(0xd7)](_0x4b29c7,_0x55fc0c(0x104)),this[_0x55fc0c(0xdb)]&&this[_0x55fc0c(0xdb)]['clear'](),this[_0x55fc0c(0xdf)]();}[a333_0xf46976(0xfb)](_0x55db06,_0x5d9fe2,_0x6a2fbc){const _0x427d69=a333_0xf46976;if(!this[_0x427d69(0xf4)]||!this[_0x427d69(0xdb)])return;this[_0x427d69(0xdb)][_0x427d69(0xfb)](_0x5d9fe2,{'command':_0x55db06,'details':_0x6a2fbc});}['success'](_0x193f6c,_0x59a741,_0xeca6b8,_0x337c7a){const _0x1b2d71=a333_0xf46976;if(!this[_0x1b2d71(0xf4)]||!this[_0x1b2d71(0xdb)])return;this[_0x1b2d71(0xdb)][_0x1b2d71(0xf9)](_0x1b2d71(0xfb),_0x59a741,{'level':_0x1b2d71(0xe9),'command':_0x193f6c,'duration':_0xeca6b8,'details':_0x337c7a});}[a333_0xf46976(0xe3)](_0x5ba856,_0x112fc6,_0x3a95b7){const _0x52fe19=a333_0xf46976;if(!this[_0x52fe19(0xf4)]||!this[_0x52fe19(0xdb)])return;this[_0x52fe19(0xdb)][_0x52fe19(0xe3)](_0x112fc6,{'command':_0x5ba856,'details':_0x3a95b7});}[a333_0xf46976(0xd3)](_0x245e54,_0x38fb13,_0x48a478){const _0x7f2b2c=a333_0xf46976;if(!this[_0x7f2b2c(0xf4)]||!this[_0x7f2b2c(0xdb)])return;this[_0x7f2b2c(0xdb)]['warn'](_0x38fb13,{'command':_0x245e54,'details':_0x48a478});}async[a333_0xf46976(0xf8)](_0x4cc80b,_0x1b8b63,_0x4609bc){const _0x3431ae=a333_0xf46976,_0x4ec28d=Date[_0x3431ae(0xd6)]();this[_0x3431ae(0xfb)](_0x4cc80b,_0x3431ae(0xf7)+_0x1b8b63);try{const _0x1198fc=await _0x4609bc(),_0xce798b=Date[_0x3431ae(0xd6)]()-_0x4ec28d;return this[_0x3431ae(0xe9)](_0x4cc80b,_0x3431ae(0xed)+_0x1b8b63,_0xce798b),_0x1198fc;}catch(_0x305ad2){const _0xbee460=Date[_0x3431ae(0xd6)]()-_0x4ec28d;this[_0x3431ae(0xe3)](_0x4cc80b,_0x3431ae(0xdd)+_0x1b8b63,{'error':_0x305ad2 instanceof Error?_0x305ad2['message']:String(_0x305ad2),'duration':_0xbee460});throw _0x305ad2;}}[a333_0xf46976(0xfd)](){const _0xc5f3f1=a333_0xf46976;try{if(!a333_0x9f2aab[_0xc5f3f1(0xd1)](this[_0xc5f3f1(0xf4)]))return[];const _0x30155d=a333_0x9f2aab[_0xc5f3f1(0xe8)](this[_0xc5f3f1(0xf4)],_0xc5f3f1(0xd5));return _0x30155d[_0xc5f3f1(0xdc)]('\x0a')['filter'](_0x1d347e=>_0x1d347e[_0xc5f3f1(0xeb)]())[_0xc5f3f1(0xfa)](_0x246f95=>JSON[_0xc5f3f1(0xf3)](_0x246f95));}catch(_0x51ad9d){return console[_0xc5f3f1(0xd3)](_0xc5f3f1(0xec),_0x51ad9d),[];}}[a333_0xf46976(0xf5)](){const _0x485f46=a333_0xf46976;try{a333_0x9f2aab[_0x485f46(0xd1)](this[_0x485f46(0xf4)])&&a333_0x9f2aab[_0x485f46(0xda)](this['logFilePath'],'',_0x485f46(0xd5));}catch(_0x496819){console[_0x485f46(0xd3)]('Failed\x20to\x20clear\x20logs:',_0x496819);}}['getWinstonInstance'](){const _0x252198=a333_0xf46976;return this[_0x252198(0xdb)];}}export const logger=new Logger();function a333_0x5640(){const _0x203bf7=['11MRJsYb','initWinstonLogger','1469952AqQJMD','1253xBCHtu','printf','error','setLogPath','unknown','735432JUXeTx','824379qUYAkq','readFileSync','success','errors','trim','Failed\x20to\x20read\x20logs:','Completed:\x20','4ygIPsU','combine','rawCommand','currentRawCommand','394dFkGUS','parse','logFilePath','clearLogs','command','Starting:\x20','logTask','log','map','info','addColors','readLogs','blue','1530246elhelr','1123530eBHMdq','timestamp','message','transports','.lovrabet.log','File','mkdirSync','toISOString','details','existsSync','7XUlyAu','warn','dirname','utf8','now','join','format','3651170HoYHRz','writeFileSync','winstonLogger','split','Failed:\x20'];a333_0x5640=function(){return _0x203bf7;};return a333_0x5640();}
1
+ const a345_0x51c9fe=a345_0x46e1;function a345_0x288b(){const _0x5db7d4=['error','File','split','details','warn','8918872eYAnmb','readFileSync','command','winstonLogger','green','clearLogs','duration','25eRQAnS','logFilePath','filter','message','213191pgmwuu','clear','569408VeTQCT','existsSync','689661PZBrgt','join','combine','info','rawCommand','addColors','readLogs','success','printf','Failed:\x20','Starting:\x20','481134NoXgUo','createLogger','log','dirname','writeFileSync','initWinstonLogger','now','233908BiJrZW','logTask','1449028mXPezB','getWinstonInstance','errors','mkdirSync','trim','map','yellow','parse','transports','currentRawCommand','timestamp','Completed:\x20','setRawCommand','stringify','.lovrabet.log','format','utf8'];a345_0x288b=function(){return _0x5db7d4;};return a345_0x288b();}(function(_0x2fa785,_0x6671a1){const _0x5b7f7e=a345_0x46e1,_0x1bf926=_0x2fa785();while(!![]){try{const _0x4d48a2=parseInt(_0x5b7f7e(0xee))/0x1+parseInt(_0x5b7f7e(0xf0))/0x2+parseInt(_0x5b7f7e(0xf2))/0x3+parseInt(_0x5b7f7e(0x104))/0x4*(parseInt(_0x5b7f7e(0xea))/0x5)+parseInt(_0x5b7f7e(0xfd))/0x6+parseInt(_0x5b7f7e(0x106))/0x7+-parseInt(_0x5b7f7e(0xe3))/0x8;if(_0x4d48a2===_0x6671a1)break;else _0x1bf926['push'](_0x1bf926['shift']());}catch(_0x388638){_0x1bf926['push'](_0x1bf926['shift']());}}}(a345_0x288b,0x2eff5));function a345_0x46e1(_0xe93a07,_0x58007){_0xe93a07=_0xe93a07-0xe0;const _0x288bb4=a345_0x288b();let _0x46e189=_0x288bb4[_0xe93a07];return _0x46e189;}import a345_0x158ce1 from'winston';import a345_0x2a0059 from'node:fs';import a345_0x2fedb6 from'node:path';class Logger{[a345_0x51c9fe(0xe6)];[a345_0x51c9fe(0xeb)];[a345_0x51c9fe(0x10f)]='';constructor(){const _0x599c01=a345_0x51c9fe;this[_0x599c01(0xeb)]='';}[a345_0x51c9fe(0x112)](_0x72da20){const _0x57c4ca=a345_0x51c9fe;this[_0x57c4ca(0x10f)]=_0x72da20;}[a345_0x51c9fe(0x102)](){const _0xeadbb6=a345_0x51c9fe,_0x1947cc=a345_0x2fedb6[_0xeadbb6(0x100)](this[_0xeadbb6(0xeb)]);!a345_0x2a0059[_0xeadbb6(0xf1)](_0x1947cc)&&a345_0x2a0059[_0xeadbb6(0x109)](_0x1947cc,{'recursive':!![]});const _0x29e28c=a345_0x158ce1[_0xeadbb6(0x115)][_0xeadbb6(0xf4)](a345_0x158ce1['format'][_0xeadbb6(0x110)](),a345_0x158ce1[_0xeadbb6(0x115)][_0xeadbb6(0x108)]({'stack':!![]}),a345_0x158ce1[_0xeadbb6(0x115)][_0xeadbb6(0xfa)](_0x581358=>{const _0x587083=_0xeadbb6,_0x4cd786={'timestamp':_0x581358[_0x587083(0x110)]||new Date()['toISOString'](),'level':_0x581358['level']||'info','command':_0x581358[_0x587083(0xe5)]||'unknown','rawCommand':_0x581358[_0x587083(0xf6)]||this['currentRawCommand']||undefined,'message':_0x581358[_0x587083(0xed)]||'','duration':_0x581358[_0x587083(0xe9)]||undefined,'details':_0x581358[_0x587083(0xe1)]||undefined};return JSON[_0x587083(0x113)](_0x4cd786);}));this[_0xeadbb6(0xe6)]=a345_0x158ce1[_0xeadbb6(0xfe)]({'level':'info','format':_0x29e28c,'transports':[new a345_0x158ce1[(_0xeadbb6(0x10e))][(_0xeadbb6(0x118))]({'filename':this[_0xeadbb6(0xeb)],'level':_0xeadbb6(0xf5)})],'silent':![]}),a345_0x158ce1[_0xeadbb6(0xf7)]({'success':_0xeadbb6(0xe7),'error':'red','warn':_0xeadbb6(0x10c),'info':'blue'});}['setLogPath'](_0x39f304){const _0x570f3f=a345_0x51c9fe;this['logFilePath']=a345_0x2fedb6[_0x570f3f(0xf3)](_0x39f304,_0x570f3f(0x114)),this[_0x570f3f(0xe6)]&&this[_0x570f3f(0xe6)][_0x570f3f(0xef)](),this[_0x570f3f(0x102)]();}[a345_0x51c9fe(0xf5)](_0x466438,_0x35b810,_0x193269){const _0x128141=a345_0x51c9fe;if(!this[_0x128141(0xeb)]||!this[_0x128141(0xe6)])return;this[_0x128141(0xe6)]['info'](_0x35b810,{'command':_0x466438,'details':_0x193269});}[a345_0x51c9fe(0xf9)](_0x162820,_0x117b51,_0xd36b9e,_0x322349){const _0x557f14=a345_0x51c9fe;if(!this[_0x557f14(0xeb)]||!this['winstonLogger'])return;this[_0x557f14(0xe6)][_0x557f14(0xff)](_0x557f14(0xf5),_0x117b51,{'level':_0x557f14(0xf9),'command':_0x162820,'duration':_0xd36b9e,'details':_0x322349});}['error'](_0x1275b0,_0x354cec,_0x3c4799){const _0x5bce4a=a345_0x51c9fe;if(!this[_0x5bce4a(0xeb)]||!this['winstonLogger'])return;this['winstonLogger'][_0x5bce4a(0x117)](_0x354cec,{'command':_0x1275b0,'details':_0x3c4799});}[a345_0x51c9fe(0xe2)](_0x4ddaff,_0x585bd9,_0x66fc27){const _0x5a5f84=a345_0x51c9fe;if(!this['logFilePath']||!this[_0x5a5f84(0xe6)])return;this[_0x5a5f84(0xe6)][_0x5a5f84(0xe2)](_0x585bd9,{'command':_0x4ddaff,'details':_0x66fc27});}async[a345_0x51c9fe(0x105)](_0x4caaf1,_0x353514,_0x5a68f2){const _0x46dedd=a345_0x51c9fe,_0x2fd600=Date['now']();this[_0x46dedd(0xf5)](_0x4caaf1,_0x46dedd(0xfc)+_0x353514);try{const _0x2ba1a1=await _0x5a68f2(),_0x53dc93=Date[_0x46dedd(0x103)]()-_0x2fd600;return this[_0x46dedd(0xf9)](_0x4caaf1,_0x46dedd(0x111)+_0x353514,_0x53dc93),_0x2ba1a1;}catch(_0x4083e1){const _0x4268b7=Date[_0x46dedd(0x103)]()-_0x2fd600;this['error'](_0x4caaf1,_0x46dedd(0xfb)+_0x353514,{'error':_0x4083e1 instanceof Error?_0x4083e1[_0x46dedd(0xed)]:String(_0x4083e1),'duration':_0x4268b7});throw _0x4083e1;}}[a345_0x51c9fe(0xf8)](){const _0x4d2011=a345_0x51c9fe;try{if(!a345_0x2a0059['existsSync'](this[_0x4d2011(0xeb)]))return[];const _0xa29306=a345_0x2a0059[_0x4d2011(0xe4)](this[_0x4d2011(0xeb)],_0x4d2011(0x116));return _0xa29306[_0x4d2011(0xe0)]('\x0a')[_0x4d2011(0xec)](_0x2a3b23=>_0x2a3b23[_0x4d2011(0x10a)]())[_0x4d2011(0x10b)](_0x3a6754=>JSON[_0x4d2011(0x10d)](_0x3a6754));}catch(_0x5d375f){return console[_0x4d2011(0xe2)]('Failed\x20to\x20read\x20logs:',_0x5d375f),[];}}[a345_0x51c9fe(0xe8)](){const _0x1b6a3c=a345_0x51c9fe;try{a345_0x2a0059['existsSync'](this[_0x1b6a3c(0xeb)])&&a345_0x2a0059[_0x1b6a3c(0x101)](this[_0x1b6a3c(0xeb)],'',_0x1b6a3c(0x116));}catch(_0x2cdc1b){console[_0x1b6a3c(0xe2)]('Failed\x20to\x20clear\x20logs:',_0x2cdc1b);}}[a345_0x51c9fe(0x107)](){const _0x4348cd=a345_0x51c9fe;return this[_0x4348cd(0xe6)];}}export const logger=new Logger();
@@ -1 +1 @@
1
- (function(_0x57dc6b,_0x448e76){const _0x1766b8=a334_0x3f6e,_0x5911e0=_0x57dc6b();while(!![]){try{const _0x272f5f=parseInt(_0x1766b8(0x12c))/0x1+parseInt(_0x1766b8(0x129))/0x2*(parseInt(_0x1766b8(0x12d))/0x3)+parseInt(_0x1766b8(0x12a))/0x4+-parseInt(_0x1766b8(0x128))/0x5+parseInt(_0x1766b8(0x124))/0x6+parseInt(_0x1766b8(0x12e))/0x7*(-parseInt(_0x1766b8(0x126))/0x8)+-parseInt(_0x1766b8(0x130))/0x9*(parseInt(_0x1766b8(0x123))/0xa);if(_0x272f5f===_0x448e76)break;else _0x5911e0['push'](_0x5911e0['shift']());}catch(_0x12f19f){_0x5911e0['push'](_0x5911e0['shift']());}}}(a334_0x16a7,0xcfadc));import{CliErrors}from'../errors.js';export function parseJsonParams(_0x6fb33c){const _0x469928=a334_0x3f6e;if(!_0x6fb33c)return undefined;let _0x511e86;try{_0x511e86=JSON['parse'](_0x6fb33c);}catch{throw CliErrors['validation'](_0x469928(0x125)+_0x6fb33c);}if(!_0x511e86||typeof _0x511e86!==_0x469928(0x127)||Array[_0x469928(0x12f)](_0x511e86))throw CliErrors['validation'](_0x469928(0x12b),'Example:\x20--params\x20\x27{\x22id\x22:123}\x27');return _0x511e86;}function a334_0x3f6e(_0x28c027,_0x109c49){_0x28c027=_0x28c027-0x123;const _0x16a769=a334_0x16a7();let _0x3f6e4e=_0x16a769[_0x28c027];return _0x3f6e4e;}function a334_0x16a7(){const _0x41b1fc=['4073934AhFhDR','Invalid\x20JSON\x20for\x20--params:\x20','104UbGHUf','object','6818430zFvvIG','1363344MuhLlI','3134844mdhubW','--params\x20must\x20be\x20a\x20JSON\x20object','1672755ZEBYWp','3xJEoLw','147819okvMRm','isArray','54MNSemX','2213780tNrOMu'];a334_0x16a7=function(){return _0x41b1fc;};return a334_0x16a7();}
1
+ (function(_0x2abf10,_0x296788){const _0x1fd82d=a346_0x48c5,_0x2c87e5=_0x2abf10();while(!![]){try{const _0x4bc610=parseInt(_0x1fd82d(0x1e4))/0x1*(-parseInt(_0x1fd82d(0x1d8))/0x2)+-parseInt(_0x1fd82d(0x1dd))/0x3*(-parseInt(_0x1fd82d(0x1df))/0x4)+parseInt(_0x1fd82d(0x1da))/0x5+parseInt(_0x1fd82d(0x1e3))/0x6+-parseInt(_0x1fd82d(0x1e2))/0x7+parseInt(_0x1fd82d(0x1e1))/0x8+-parseInt(_0x1fd82d(0x1d9))/0x9;if(_0x4bc610===_0x296788)break;else _0x2c87e5['push'](_0x2c87e5['shift']());}catch(_0x5be161){_0x2c87e5['push'](_0x2c87e5['shift']());}}}(a346_0x4ae9,0x47e55));function a346_0x48c5(_0x4ed6d7,_0x1bec1a){_0x4ed6d7=_0x4ed6d7-0x1d6;const _0x4ae97b=a346_0x4ae9();let _0x48c573=_0x4ae97b[_0x4ed6d7];return _0x48c573;}import{CliErrors}from'../errors.js';export function parseJsonParams(_0x162837){const _0xe8eafb=a346_0x48c5;if(!_0x162837)return undefined;let _0x5cece9;try{_0x5cece9=JSON[_0xe8eafb(0x1e0)](_0x162837);}catch{throw CliErrors[_0xe8eafb(0x1d6)](_0xe8eafb(0x1e5)+_0x162837);}if(!_0x5cece9||typeof _0x5cece9!==_0xe8eafb(0x1dc)||Array[_0xe8eafb(0x1de)](_0x5cece9))throw CliErrors[_0xe8eafb(0x1d6)](_0xe8eafb(0x1db),_0xe8eafb(0x1d7));return _0x5cece9;}function a346_0x4ae9(){const _0x22bfaf=['Example:\x20--params\x20\x27{\x22id\x22:123}\x27','6qdswkV','1720053tqazWk','1574260qONAhi','--params\x20must\x20be\x20a\x20JSON\x20object','object','102369UzhdRN','isArray','44vveAuR','parse','3515448LKRORb','1349677pVfjvn','483756fSkJTN','177283OIpnOq','Invalid\x20JSON\x20for\x20--params:\x20','validation'];a346_0x4ae9=function(){return _0x22bfaf;};return a346_0x4ae9();}
@@ -1 +1 @@
1
- function a335_0x1e4d(){const _0x7ef81f=['1Axklad','1699850BgugZE','5641360xqFQZu','2792268fFEWYL','537723qzXAnN','8444504KyMOgB','13190gFyxjM','1935ienguf','4ENwsZw','50687549UAtYRE','7uhfUQk'];a335_0x1e4d=function(){return _0x7ef81f;};return a335_0x1e4d();}(function(_0x2f264b,_0x11ac36){const _0x2ec2ea=a335_0x1f76,_0x3c6c5d=_0x2f264b();while(!![]){try{const _0x1ee936=parseInt(_0x2ec2ea(0x150))/0x1*(-parseInt(_0x2ec2ea(0x151))/0x2)+-parseInt(_0x2ec2ea(0x149))/0x3*(parseInt(_0x2ec2ea(0x14d))/0x4)+-parseInt(_0x2ec2ea(0x152))/0x5+-parseInt(_0x2ec2ea(0x148))/0x6+-parseInt(_0x2ec2ea(0x14f))/0x7*(parseInt(_0x2ec2ea(0x14a))/0x8)+parseInt(_0x2ec2ea(0x14c))/0x9*(-parseInt(_0x2ec2ea(0x14b))/0xa)+parseInt(_0x2ec2ea(0x14e))/0xb;if(_0x1ee936===_0x11ac36)break;else _0x3c6c5d['push'](_0x3c6c5d['shift']());}catch(_0x2b6ae7){_0x3c6c5d['push'](_0x3c6c5d['shift']());}}}(a335_0x1e4d,0x9db6b));export const isWindows=process['platform']==='win32';function a335_0x1f76(_0x5271f1,_0x458a71){_0x5271f1=_0x5271f1-0x148;const _0x1e4d9c=a335_0x1e4d();let _0x1f76bc=_0x1e4d9c[_0x5271f1];return _0x1f76bc;}export function resolveNpmBin(_0xae31fd){return isWindows?_0xae31fd+'.cmd':_0xae31fd;}
1
+ const a347_0x2c578e=a347_0xf3e6;(function(_0x5ea098,_0x372211){const _0x52d134=a347_0xf3e6,_0x42f46e=_0x5ea098();while(!![]){try{const _0x5cecbc=-parseInt(_0x52d134(0xe9))/0x1*(parseInt(_0x52d134(0xe1))/0x2)+parseInt(_0x52d134(0xe0))/0x3*(-parseInt(_0x52d134(0xe2))/0x4)+parseInt(_0x52d134(0xdf))/0x5*(parseInt(_0x52d134(0xe6))/0x6)+parseInt(_0x52d134(0xea))/0x7*(parseInt(_0x52d134(0xe3))/0x8)+-parseInt(_0x52d134(0xeb))/0x9+parseInt(_0x52d134(0xe4))/0xa+parseInt(_0x52d134(0xe8))/0xb;if(_0x5cecbc===_0x372211)break;else _0x42f46e['push'](_0x42f46e['shift']());}catch(_0x4e081b){_0x42f46e['push'](_0x42f46e['shift']());}}}(a347_0x4dcf,0x38705));function a347_0x4dcf(){const _0xd11c6=['5815095gDpoBU','3AbeffG','2293179JNaLap','3798558iXwQJI','.cmd','169460hOpFEm','24bVlGXR','302558xXKqAv','141008XKucWP','8PrTeXJ','2278180rxribi','platform','54mUttSD','win32'];a347_0x4dcf=function(){return _0xd11c6;};return a347_0x4dcf();}function a347_0xf3e6(_0x2d1877,_0x12318a){_0x2d1877=_0x2d1877-0xdf;const _0x4dcfae=a347_0x4dcf();let _0xf3e62e=_0x4dcfae[_0x2d1877];return _0xf3e62e;}export const isWindows=process[a347_0x2c578e(0xe5)]===a347_0x2c578e(0xe7);export function resolveNpmBin(_0x2955d2){const _0x5ad202=a347_0x2c578e;return isWindows?_0x2955d2+_0x5ad202(0xec):_0x2955d2;}
@@ -1 +1 @@
1
- export function sleep(_0x1b5dec){return new Promise(_0x3190d3=>setTimeout(_0x3190d3,_0x1b5dec));}
1
+ export function sleep(_0x8a76e5){return new Promise(_0x1ef6e4=>setTimeout(_0x1ef6e4,_0x8a76e5));}
@@ -1 +1 @@
1
- const a337_0x373908=a337_0x55ab;(function(_0xca1ac5,_0x1d7057){const _0x51412f=a337_0x55ab,_0x4d1cae=_0xca1ac5();while(!![]){try{const _0x1fbeba=-parseInt(_0x51412f(0xf6))/0x1*(-parseInt(_0x51412f(0xfb))/0x2)+parseInt(_0x51412f(0xde))/0x3+-parseInt(_0x51412f(0xdb))/0x4*(parseInt(_0x51412f(0xf8))/0x5)+parseInt(_0x51412f(0xd9))/0x6+-parseInt(_0x51412f(0x107))/0x7+parseInt(_0x51412f(0xda))/0x8*(-parseInt(_0x51412f(0xcf))/0x9)+parseInt(_0x51412f(0xf4))/0xa*(-parseInt(_0x51412f(0xc7))/0xb);if(_0x1fbeba===_0x1d7057)break;else _0x4d1cae['push'](_0x4d1cae['shift']());}catch(_0x38b9d4){_0x4d1cae['push'](_0x4d1cae['shift']());}}}(a337_0x4606,0x4f6b9));import a337_0x22dab1 from'node:fs';import a337_0x21dd91 from'node:path';import{logger}from'../utils/logger.js';import{getCliVersion}from'../utils/version.js';const CLI_VERSION=getCliVersion();export class TemplateReplacer{static[a337_0x373908(0xf5)](_0x857440){const _0x5b2af6=a337_0x373908;return String(_0x857440)[_0x5b2af6(0x104)](0x2,'0');}static[a337_0x373908(0xe7)](_0x398f2d){const _0x156660=a337_0x373908,_0x5818cb=_0x398f2d[_0x156660(0xd8)](),_0x2cde1b=this[_0x156660(0xf5)](_0x398f2d[_0x156660(0xf9)]()+0x1),_0x107896=this[_0x156660(0xf5)](_0x398f2d['getDate']()),_0x255382=this[_0x156660(0xf5)](_0x398f2d[_0x156660(0x100)]()),_0x3dacd0=this[_0x156660(0xf5)](_0x398f2d['getMinutes']()),_0x3d57d8=this[_0x156660(0xf5)](_0x398f2d['getSeconds']());return{'createdAt':_0x5818cb+'-'+_0x2cde1b+'-'+_0x107896+'\x20'+_0x255382+':'+_0x3dacd0+':'+_0x3d57d8,'createdDate':_0x5818cb+'-'+_0x2cde1b+'-'+_0x107896,'createdTime':_0x255382+':'+_0x3dacd0+':'+_0x3d57d8};}static[a337_0x373908(0xfd)](_0x173dad){const _0x142343=a337_0x373908,_0x4ee551=_0x173dad[_0x142343(0xc9)]('/')[_0x142343(0xe3)]()||_0x173dad;return _0x4ee551['split']('-')[_0x142343(0xef)](_0x463b8f=>_0x463b8f[_0x142343(0xfa)](0x0)['toUpperCase']()+_0x463b8f[_0x142343(0xfc)](0x1)['toLowerCase']())[_0x142343(0xf7)]('');}static[a337_0x373908(0x106)](_0x1eb043){const _0x3d2b2a=a337_0x373908,_0x9a473c=_0x1eb043[_0x3d2b2a(0xc9)]('/')[_0x3d2b2a(0xe3)]()||_0x1eb043;return _0x9a473c[_0x3d2b2a(0xc9)]('-')[_0x3d2b2a(0xef)](_0x445148=>_0x445148['charAt'](0x0)[_0x3d2b2a(0xec)]()+_0x445148[_0x3d2b2a(0xfc)](0x1)['toLowerCase']())['join']('\x20');}static[a337_0x373908(0x101)](_0x37a089,_0xf817d6,_0x55f330){const _0x3fbfa5=a337_0x373908,_0x18b766=this[_0x3fbfa5(0xfd)](_0xf817d6),_0x51cb13=this[_0x3fbfa5(0x106)](_0xf817d6),{createdAt:_0x3a35a5,createdDate:_0x2dd610,createdTime:_0x4dfe82}=this[_0x3fbfa5(0xe7)](new Date());let _0xa22460=_0x37a089[_0x3fbfa5(0xc6)](/\{CliVersion\}/g,CLI_VERSION)[_0x3fbfa5(0xc6)](/\{ComponentName\}/g,_0x18b766)[_0x3fbfa5(0xc6)](/\{DisplayTitle\}/g,_0x51cb13)['replace'](/\{PageName\}/g,_0xf817d6)['replace'](/\{TemplateName\}/g,_0x55f330)['replace'](/\{CreatedAt\}/g,_0x3a35a5)[_0x3fbfa5(0xc6)](/\{CreatedDate\}/g,_0x2dd610)['replace'](/\{CreatedTime\}/g,_0x4dfe82);return _0xa22460;}static[a337_0x373908(0xe5)](_0x279315,_0x1d2b49,_0x318d86,_0x56995e,_0x3c8df7,_0x2fd5e4,_0x187275,_0x5b664a,_0x4dd691){const _0x15d2d8=a337_0x373908,_0x193be2=new Date(),_0xc2a15f=_0x193be2[_0x15d2d8(0xce)](),_0x496720=_0x318d86['map'](_0x41b0ef=>{const _0x5b2b72=_0x15d2d8,_0x22a42d=[_0x5b2b72(0xdc)+_0x41b0ef[_0x5b2b72(0xcc)]+'\x22',_0x5b2b72(0xe8)+_0x41b0ef['tableName']+'\x22','name:\x20\x22'+_0x41b0ef['name']+'\x22'];return _0x41b0ef[_0x5b2b72(0xe4)]&&_0x22a42d[_0x5b2b72(0xeb)]('alias:\x20\x22'+_0x41b0ef[_0x5b2b72(0xe4)]+'\x22'),_0x5b2b72(0xd7)+_0x22a42d[_0x5b2b72(0xf7)](',\x20')+_0x5b2b72(0xd1);})[_0x15d2d8(0xf7)](''),_0x323f43=_0x56995e||_0x318d86[0x0]?.[_0x15d2d8(0xe4)]||'YourModel';let _0x182738=_0x279315[_0x15d2d8(0xc6)](/\{AppCode\}/g,_0x1d2b49)['replace'](/\{ModelConfigs\}/g,_0x496720)[_0x15d2d8(0xc6)](/\{ExampleModelName\}/g,_0x323f43)['replace'](/\{ApiFileName\}/g,_0x3c8df7||_0x15d2d8(0xd6))['replace'](/\{ConfigName\}/g,_0x2fd5e4||'default')[_0x15d2d8(0xc6)](/\{ClientConfigParam\}/g,_0x187275||'')[_0x15d2d8(0xc6)](/\{SdkConfigFileName\}/g,_0x4dd691||_0x15d2d8(0xe6))['replace'](/\{VarPrefix\}/g,_0x5b664a||'LOVRABET')[_0x15d2d8(0xc6)](/\{CreatedAt\}/g,_0xc2a15f);return _0x182738;}static async[a337_0x373908(0xd2)](_0x1b9f51,_0x1db65b,_0x4412d6,_0x361844,_0x5e4a54=!![]){const _0x5f1390=a337_0x373908,_0x29c611=Date[_0x5f1390(0xe0)]();try{_0x5e4a54&&logger[_0x5f1390(0xcb)](_0x5f1390(0xfe),_0x5f1390(0xdf),{'templatePath':_0x1b9f51,'targetPath':_0x1db65b,'pageName':_0x4412d6,'templateName':_0x361844});await a337_0x22dab1[_0x5f1390(0xf1)][_0x5f1390(0xed)](_0x1db65b,{'recursive':!![]}),await this[_0x5f1390(0xe9)](_0x1b9f51,_0x1db65b,_0x4412d6,_0x361844);if(_0x5e4a54){const _0x4a741f=Date[_0x5f1390(0xe0)]()-_0x29c611;logger['success']('template',_0x5f1390(0xcd),_0x4a741f,{'pageName':_0x4412d6,'templateName':_0x361844});}}catch(_0x2d96c1){if(_0x5e4a54){const _0xe48e60=Date[_0x5f1390(0xe0)]()-_0x29c611;logger['error'](_0x5f1390(0xfe),_0x5f1390(0xdd),{'templatePath':_0x1b9f51,'targetPath':_0x1db65b,'pageName':_0x4412d6,'templateName':_0x361844,'error':_0x2d96c1 instanceof Error?_0x2d96c1['message']:String(_0x2d96c1),'duration':_0xe48e60});}throw _0x2d96c1;}}static async['processDirectory'](_0xc19956,_0x53f2f4,_0x3c4e65,_0x4492de){const _0x40fd13=a337_0x373908,_0xe8afc7=await a337_0x22dab1['promises']['readdir'](_0xc19956,{'withFileTypes':!![]});for(const _0x12627d of _0xe8afc7){const _0x1102ba=a337_0x21dd91[_0x40fd13(0xf7)](_0xc19956,_0x12627d['name']);let _0x30d10e=a337_0x21dd91[_0x40fd13(0xf7)](_0x53f2f4,_0x12627d[_0x40fd13(0x105)]);_0x12627d[_0x40fd13(0x105)]['endsWith']('.tpl')&&(_0x30d10e=a337_0x21dd91['join'](_0x53f2f4,_0x12627d['name'][_0x40fd13(0xc6)](/\.tpl$/,'')));if(_0x12627d['isDirectory']())await a337_0x22dab1[_0x40fd13(0xf1)][_0x40fd13(0xed)](_0x30d10e,{'recursive':!![]}),await this[_0x40fd13(0xe9)](_0x1102ba,_0x30d10e,_0x3c4e65,_0x4492de);else _0x12627d[_0x40fd13(0xf2)]()&&await this['processFile'](_0x1102ba,_0x30d10e,_0x3c4e65,_0x4492de);}}static async[a337_0x373908(0xe2)](_0x5bd995,_0x2d41e3,_0x4307f1,_0x127060){const _0x14496c=a337_0x373908,_0x54e65f=a337_0x21dd91[_0x14496c(0xf3)](_0x5bd995)[_0x14496c(0xd3)]();_0x5bd995[_0x14496c(0xe1)](_0x14496c(0xd4))&&(_0x2d41e3=_0x2d41e3[_0x14496c(0xc6)](/\.tpl$/,''));const _0x26ae19=['.tsx',_0x14496c(0x102),_0x14496c(0xd5),'.js',_0x14496c(0xd0),'.md',_0x14496c(0xca),_0x14496c(0xc8),'.tpl'];if(_0x26ae19[_0x14496c(0xee)](_0x54e65f)||_0x5bd995[_0x14496c(0xe1)](_0x14496c(0xd4))){const _0x8c8332=await a337_0x22dab1[_0x14496c(0xf1)][_0x14496c(0x103)](_0x5bd995,'utf8'),_0x59c082=this[_0x14496c(0x101)](_0x8c8332,_0x4307f1,_0x127060);await a337_0x22dab1[_0x14496c(0xf1)][_0x14496c(0xff)](_0x2d41e3,_0x59c082,_0x14496c(0xf0));}else await a337_0x22dab1[_0x14496c(0xf1)][_0x14496c(0xea)](_0x5bd995,_0x2d41e3);}}function a337_0x55ab(_0x438889,_0x27ebbe){_0x438889=_0x438889-0xc6;const _0x46060d=a337_0x4606();let _0x55abb7=_0x46060d[_0x438889];return _0x55abb7;}function a337_0x4606(){const _0xe1bb68=['datasetCode','Template\x20content\x20replacement\x20completed','toISOString','156726sLDoVI','.json','\x20},','processTemplate','toLowerCase','.tpl','.jsx','api','\x0a\x20\x20\x20\x20{\x20','getFullYear','3616710BqPGgl','216ccrokY','44qSJgNd','datasetCode:\x20\x22','Template\x20content\x20replacement\x20failed','1876053EnlfXs','Starting\x20template\x20content\x20replacement','now','endsWith','processFile','pop','alias','replaceApiContent','sdk-config','formatLocalTimestamp','tableName:\x20\x22','processDirectory','copyFile','push','toUpperCase','mkdir','includes','map','utf8','promises','isFile','extname','30pMUYoB','pad','208796RJCoAe','join','122185UHYrox','getMonth','charAt','4AVTlaq','slice','toComponentName','template','writeFile','getHours','replaceContent','.ts','readFile','padStart','name','toDisplayTitle','2751833mEeGpJ','replace','690503hjtVpu','.scss','split','.css','info'];a337_0x4606=function(){return _0xe1bb68;};return a337_0x4606();}
1
+ function a349_0x3d8b(){const _0x5e1c01=['replaceApiContent','copyFile','getMinutes','map','formatLocalTimestamp','.scss','.tsx','getSeconds','message','readFile','.css','toUpperCase','push','alias:\x20\x22','6169572rPsvkC','toComponentName','getDate','2227897oVYxIB','.tpl','readdir','writeFile','10HTazRY','getHours','2745556iqOOPe','endsWith','pad','getFullYear','toDisplayTitle','5621016VYQzYO','YourModel','.md','8hwPYII','.json','mkdir','.js','isDirectory','join','24458hNDOWF','split','replace','processDirectory','error','128ogqJRO','toLowerCase','charAt','Template\x20content\x20replacement\x20failed','replaceContent','api','padStart','tableName:\x20\x22','3213200teidbC','sdk-config','slice','name:\x20\x22','5690313APwisu','pop','getMonth','tableName','now','alias','default','utf8','name','toISOString','Starting\x20template\x20content\x20replacement','LOVRABET','\x0a\x20\x20\x20\x20{\x20','processFile','template','promises','datasetCode','\x20},'];a349_0x3d8b=function(){return _0x5e1c01;};return a349_0x3d8b();}const a349_0x26c0a8=a349_0x183f;(function(_0x5aa4fe,_0x1a8be1){const _0x3627c1=a349_0x183f,_0x2415f8=_0x5aa4fe();while(!![]){try{const _0x5c0692=-parseInt(_0x3627c1(0xfa))/0x1*(-parseInt(_0x3627c1(0xf5))/0x2)+-parseInt(_0x3627c1(0xec))/0x3+parseInt(_0x3627c1(0xe7))/0x4+parseInt(_0x3627c1(0x102))/0x5+-parseInt(_0x3627c1(0xde))/0x6+parseInt(_0x3627c1(0xe1))/0x7*(parseInt(_0x3627c1(0xef))/0x8)+parseInt(_0x3627c1(0x106))/0x9*(parseInt(_0x3627c1(0xe5))/0xa);if(_0x5c0692===_0x1a8be1)break;else _0x2415f8['push'](_0x2415f8['shift']());}catch(_0x4fa30c){_0x2415f8['push'](_0x2415f8['shift']());}}}(a349_0x3d8b,0xe6357));import a349_0x4db5c9 from'node:fs';import a349_0x5440b7 from'node:path';import{logger}from'../utils/logger.js';import{getCliVersion}from'../utils/version.js';function a349_0x183f(_0x5f17aa,_0x148430){_0x5f17aa=_0x5f17aa-0xd1;const _0x3d8be7=a349_0x3d8b();let _0x183fca=_0x3d8be7[_0x5f17aa];return _0x183fca;}const CLI_VERSION=getCliVersion();export class TemplateReplacer{static[a349_0x26c0a8(0xe9)](_0x25c42d){const _0xc65851=a349_0x26c0a8;return String(_0x25c42d)[_0xc65851(0x100)](0x2,'0');}static[a349_0x26c0a8(0xd4)](_0x53128f){const _0x427fa1=a349_0x26c0a8,_0x148104=_0x53128f[_0x427fa1(0xea)](),_0x52bbf6=this[_0x427fa1(0xe9)](_0x53128f[_0x427fa1(0x108)]()+0x1),_0x384504=this[_0x427fa1(0xe9)](_0x53128f[_0x427fa1(0xe0)]()),_0x5f514a=this['pad'](_0x53128f[_0x427fa1(0xe6)]()),_0x135a73=this[_0x427fa1(0xe9)](_0x53128f[_0x427fa1(0xd2)]()),_0x4a3ad2=this['pad'](_0x53128f[_0x427fa1(0xd7)]());return{'createdAt':_0x148104+'-'+_0x52bbf6+'-'+_0x384504+'\x20'+_0x5f514a+':'+_0x135a73+':'+_0x4a3ad2,'createdDate':_0x148104+'-'+_0x52bbf6+'-'+_0x384504,'createdTime':_0x5f514a+':'+_0x135a73+':'+_0x4a3ad2};}static[a349_0x26c0a8(0xdf)](_0x4e4031){const _0x42e48b=a349_0x26c0a8,_0x444456=_0x4e4031[_0x42e48b(0xf6)]('/')[_0x42e48b(0x107)]()||_0x4e4031;return _0x444456[_0x42e48b(0xf6)]('-')['map'](_0x164506=>_0x164506['charAt'](0x0)[_0x42e48b(0xdb)]()+_0x164506[_0x42e48b(0x104)](0x1)[_0x42e48b(0xfb)]())[_0x42e48b(0xf4)]('');}static[a349_0x26c0a8(0xeb)](_0xc0b481){const _0x226a2f=a349_0x26c0a8,_0x41a675=_0xc0b481[_0x226a2f(0xf6)]('/')[_0x226a2f(0x107)]()||_0xc0b481;return _0x41a675[_0x226a2f(0xf6)]('-')[_0x226a2f(0xd3)](_0x37264e=>_0x37264e[_0x226a2f(0xfc)](0x0)[_0x226a2f(0xdb)]()+_0x37264e[_0x226a2f(0x104)](0x1)[_0x226a2f(0xfb)]())['join']('\x20');}static[a349_0x26c0a8(0xfe)](_0x23449c,_0x172ba7,_0x416746){const _0xfdccc3=a349_0x26c0a8,_0x2894b0=this['toComponentName'](_0x172ba7),_0x41ebd6=this['toDisplayTitle'](_0x172ba7),{createdAt:_0x46dc2f,createdDate:_0x476cc1,createdTime:_0x12d165}=this[_0xfdccc3(0xd4)](new Date());let _0x8fec54=_0x23449c[_0xfdccc3(0xf7)](/\{CliVersion\}/g,CLI_VERSION)[_0xfdccc3(0xf7)](/\{ComponentName\}/g,_0x2894b0)[_0xfdccc3(0xf7)](/\{DisplayTitle\}/g,_0x41ebd6)['replace'](/\{PageName\}/g,_0x172ba7)[_0xfdccc3(0xf7)](/\{TemplateName\}/g,_0x416746)[_0xfdccc3(0xf7)](/\{CreatedAt\}/g,_0x46dc2f)[_0xfdccc3(0xf7)](/\{CreatedDate\}/g,_0x476cc1)[_0xfdccc3(0xf7)](/\{CreatedTime\}/g,_0x12d165);return _0x8fec54;}static[a349_0x26c0a8(0x118)](_0x5a1f45,_0x278f55,_0x28da4e,_0x3901b4,_0x1c3a74,_0x6da68b,_0x486007,_0x2af2aa,_0x1fd594){const _0x2c3cfa=a349_0x26c0a8,_0x1fb85c=new Date(),_0x51ef6c=_0x1fb85c[_0x2c3cfa(0x10f)](),_0x5b9c27=_0x28da4e[_0x2c3cfa(0xd3)](_0x58647c=>{const _0x818d4=_0x2c3cfa,_0x5b56a8=['datasetCode:\x20\x22'+_0x58647c[_0x818d4(0x116)]+'\x22',_0x818d4(0x101)+_0x58647c[_0x818d4(0x109)]+'\x22',_0x818d4(0x105)+_0x58647c[_0x818d4(0x10e)]+'\x22'];return _0x58647c['alias']&&_0x5b56a8[_0x818d4(0xdc)](_0x818d4(0xdd)+_0x58647c[_0x818d4(0x10b)]+'\x22'),_0x818d4(0x112)+_0x5b56a8[_0x818d4(0xf4)](',\x20')+_0x818d4(0x117);})['join'](''),_0x35521d=_0x3901b4||_0x28da4e[0x0]?.['alias']||_0x2c3cfa(0xed);let _0x167b9a=_0x5a1f45[_0x2c3cfa(0xf7)](/\{AppCode\}/g,_0x278f55)[_0x2c3cfa(0xf7)](/\{ModelConfigs\}/g,_0x5b9c27)['replace'](/\{ExampleModelName\}/g,_0x35521d)[_0x2c3cfa(0xf7)](/\{ApiFileName\}/g,_0x1c3a74||_0x2c3cfa(0xff))[_0x2c3cfa(0xf7)](/\{ConfigName\}/g,_0x6da68b||_0x2c3cfa(0x10c))[_0x2c3cfa(0xf7)](/\{ClientConfigParam\}/g,_0x486007||'')[_0x2c3cfa(0xf7)](/\{SdkConfigFileName\}/g,_0x1fd594||_0x2c3cfa(0x103))[_0x2c3cfa(0xf7)](/\{VarPrefix\}/g,_0x2af2aa||_0x2c3cfa(0x111))[_0x2c3cfa(0xf7)](/\{CreatedAt\}/g,_0x51ef6c);return _0x167b9a;}static async['processTemplate'](_0x47330f,_0x1238c4,_0x14e444,_0x3ee316,_0x657738=!![]){const _0x2f7e87=a349_0x26c0a8,_0x1ec7a1=Date[_0x2f7e87(0x10a)]();try{_0x657738&&logger['info'](_0x2f7e87(0x114),_0x2f7e87(0x110),{'templatePath':_0x47330f,'targetPath':_0x1238c4,'pageName':_0x14e444,'templateName':_0x3ee316});await a349_0x4db5c9[_0x2f7e87(0x115)][_0x2f7e87(0xf1)](_0x1238c4,{'recursive':!![]}),await this[_0x2f7e87(0xf8)](_0x47330f,_0x1238c4,_0x14e444,_0x3ee316);if(_0x657738){const _0xebf82b=Date[_0x2f7e87(0x10a)]()-_0x1ec7a1;logger['success'](_0x2f7e87(0x114),'Template\x20content\x20replacement\x20completed',_0xebf82b,{'pageName':_0x14e444,'templateName':_0x3ee316});}}catch(_0x573cc4){if(_0x657738){const _0x4f6fb2=Date[_0x2f7e87(0x10a)]()-_0x1ec7a1;logger[_0x2f7e87(0xf9)](_0x2f7e87(0x114),_0x2f7e87(0xfd),{'templatePath':_0x47330f,'targetPath':_0x1238c4,'pageName':_0x14e444,'templateName':_0x3ee316,'error':_0x573cc4 instanceof Error?_0x573cc4[_0x2f7e87(0xd8)]:String(_0x573cc4),'duration':_0x4f6fb2});}throw _0x573cc4;}}static async['processDirectory'](_0x25680e,_0xa1916a,_0x41f67e,_0x45c798){const _0x36feb3=a349_0x26c0a8,_0x2f3eba=await a349_0x4db5c9[_0x36feb3(0x115)][_0x36feb3(0xe3)](_0x25680e,{'withFileTypes':!![]});for(const _0x516b6f of _0x2f3eba){const _0xa1669c=a349_0x5440b7['join'](_0x25680e,_0x516b6f['name']);let _0x20087c=a349_0x5440b7[_0x36feb3(0xf4)](_0xa1916a,_0x516b6f[_0x36feb3(0x10e)]);_0x516b6f[_0x36feb3(0x10e)][_0x36feb3(0xe8)](_0x36feb3(0xe2))&&(_0x20087c=a349_0x5440b7[_0x36feb3(0xf4)](_0xa1916a,_0x516b6f['name'][_0x36feb3(0xf7)](/\.tpl$/,'')));if(_0x516b6f[_0x36feb3(0xf3)]())await a349_0x4db5c9['promises'][_0x36feb3(0xf1)](_0x20087c,{'recursive':!![]}),await this[_0x36feb3(0xf8)](_0xa1669c,_0x20087c,_0x41f67e,_0x45c798);else _0x516b6f['isFile']()&&await this[_0x36feb3(0x113)](_0xa1669c,_0x20087c,_0x41f67e,_0x45c798);}}static async[a349_0x26c0a8(0x113)](_0x25d210,_0x350341,_0x4cbf43,_0x4372c5){const _0x4c1b04=a349_0x26c0a8,_0x2e19cc=a349_0x5440b7['extname'](_0x25d210)[_0x4c1b04(0xfb)]();_0x25d210['endsWith']('.tpl')&&(_0x350341=_0x350341[_0x4c1b04(0xf7)](/\.tpl$/,''));const _0x228d37=[_0x4c1b04(0xd6),'.ts','.jsx',_0x4c1b04(0xf2),_0x4c1b04(0xf0),_0x4c1b04(0xee),_0x4c1b04(0xda),_0x4c1b04(0xd5),_0x4c1b04(0xe2)];if(_0x228d37['includes'](_0x2e19cc)||_0x25d210['endsWith']('.tpl')){const _0x112519=await a349_0x4db5c9[_0x4c1b04(0x115)][_0x4c1b04(0xd9)](_0x25d210,_0x4c1b04(0x10d)),_0x2736b7=this['replaceContent'](_0x112519,_0x4cbf43,_0x4372c5);await a349_0x4db5c9[_0x4c1b04(0x115)][_0x4c1b04(0xe4)](_0x350341,_0x2736b7,_0x4c1b04(0x10d));}else await a349_0x4db5c9[_0x4c1b04(0x115)][_0x4c1b04(0xd1)](_0x25d210,_0x350341);}}
@@ -1 +1 @@
1
- (function(_0x49b1c1,_0xb943b4){const _0x461fc4=a338_0x4891,_0x499e55=_0x49b1c1();while(!![]){try{const _0x279e5f=-parseInt(_0x461fc4(0x18e))/0x1*(parseInt(_0x461fc4(0x186))/0x2)+-parseInt(_0x461fc4(0x181))/0x3+parseInt(_0x461fc4(0x197))/0x4*(-parseInt(_0x461fc4(0x193))/0x5)+parseInt(_0x461fc4(0x18c))/0x6*(parseInt(_0x461fc4(0x198))/0x7)+parseInt(_0x461fc4(0x17c))/0x8*(-parseInt(_0x461fc4(0x18a))/0x9)+parseInt(_0x461fc4(0x17f))/0xa+-parseInt(_0x461fc4(0x17a))/0xb*(-parseInt(_0x461fc4(0x192))/0xc);if(_0x279e5f===_0xb943b4)break;else _0x499e55['push'](_0x499e55['shift']());}catch(_0x5616ac){_0x499e55['push'](_0x499e55['shift']());}}}(a338_0x5013,0xc3a28));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import a338_0x453738 from'semver';import{CLI_BIN_NAME,NPM_PACKAGE_NAME}from'../constant/cli.js';import{getCliVersionPolicy}from'../utils/cli-version-policy.js';import{getCliVersion}from'../utils/version.js';const UPDATE_CHECK_TTL_MS=0xc*0x3c*0x3c*0x3e8,UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x4472a1=a338_0x4891,_0x3ef0c5=process.env.RABETBASE_NO_UPDATE_NOTICE?.[_0x4472a1(0x196)]()[_0x4472a1(0x18f)]();return _0x3ef0c5==='1'||_0x3ef0c5===_0x4472a1(0x17b)||_0x3ef0c5===_0x4472a1(0x183);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x42f7d3=a338_0x4891;return join(cacheRoot(),_0x42f7d3(0x187),_0x42f7d3(0x194));}function a338_0x5013(){const _0x19a6e4=['26284KZFAjJ','rabetbase-cli','parse','now','11097OZccLU','number','6EMebRl','stableVersion','82omGkpb','toLowerCase','\x20available,\x20current\x20','stringify','24RZSFqI','2335RcHXoz','update-check.json','valid','trim','11620UmjTlG','333137lhEGqj','21032693TYwxHD','true','5808jdDHhh','utf8','latest','11001060nEiGUK','checkedAt','2523198HmvpVL','object','yes','lastNotifiedAt','https://www.npmjs.com/package/'];a338_0x5013=function(){return _0x19a6e4;};return a338_0x5013();}function a338_0x4891(_0x24133d,_0x84a23d){_0x24133d=_0x24133d-0x17a;const _0x501316=a338_0x5013();let _0x489148=_0x501316[_0x24133d];return _0x489148;}async function readUpdateNoticeCache(){const _0x5271f9=a338_0x4891;try{const _0x13b3cc=await readFile(getUpdateNoticeCachePath(),_0x5271f9(0x17d)),_0x5212a9=JSON[_0x5271f9(0x188)](_0x13b3cc);if(!_0x5212a9||typeof _0x5212a9!==_0x5271f9(0x182))return{};return _0x5212a9;}catch{return{};}}async function writeUpdateNoticeCache(_0x15e1e){const _0x518ed9=a338_0x4891;try{const _0x7997f=getUpdateNoticeCachePath();await mkdir(dirname(_0x7997f),{'recursive':!![]}),await writeFile(_0x7997f,JSON[_0x518ed9(0x191)](_0x15e1e,null,0x2)+'\x0a',_0x518ed9(0x17d));}catch{}}function isFreshCheck(_0xf66354,_0xb10d5e){const _0x33108e=a338_0x4891;return typeof _0xf66354[_0x33108e(0x180)]===_0x33108e(0x18b)&&_0xb10d5e-_0xf66354[_0x33108e(0x180)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x3e14bf,_0x34a889,_0x4588a6){const _0x87743d=a338_0x4891;return _0x3e14bf['lastNotifiedVersion']===_0x34a889&&typeof _0x3e14bf[_0x87743d(0x184)]===_0x87743d(0x18b)&&_0x4588a6-_0x3e14bf[_0x87743d(0x184)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x38cbf9){const _0x4c93fc=a338_0x4891;return _0x4c93fc(0x185)+NPM_PACKAGE_NAME+'/v/'+_0x38cbf9;}export async function resolveLatestUpdateNotice(){const _0x52c320=a338_0x4891;if(isUpdateNoticeDisabled())return null;try{const _0x9dfaaf=Date[_0x52c320(0x189)](),_0x85e2c=getCliVersion(),_0xef23b4=await readUpdateNoticeCache();let _0x3f73b0=isFreshCheck(_0xef23b4,_0x9dfaaf)?_0xef23b4[_0x52c320(0x17e)]?.[_0x52c320(0x196)]():undefined;if(!_0x3f73b0&&!isFreshCheck(_0xef23b4,_0x9dfaaf)){const _0x141b61=await getCliVersionPolicy();_0x3f73b0=_0x141b61?.[_0x52c320(0x18d)]?.[_0x52c320(0x196)]()||undefined,await writeUpdateNoticeCache({..._0xef23b4,'checkedAt':_0x9dfaaf,'latest':_0x3f73b0,'failed':!_0x3f73b0});}if(!_0x3f73b0||!a338_0x453738[_0x52c320(0x195)](_0x85e2c)||!a338_0x453738[_0x52c320(0x195)](_0x3f73b0))return null;if(a338_0x453738['gte'](_0x85e2c,_0x3f73b0))return null;if(isRecentlyNotified(_0xef23b4,_0x3f73b0,_0x9dfaaf))return null;const _0x232a54=CLI_BIN_NAME+'\x20update';return await writeUpdateNoticeCache({..._0xef23b4,'checkedAt':isFreshCheck(_0xef23b4,_0x9dfaaf)?_0xef23b4[_0x52c320(0x180)]:_0x9dfaaf,'latest':_0x3f73b0,'failed':![],'lastNotifiedVersion':_0x3f73b0,'lastNotifiedAt':_0x9dfaaf}),{'command':_0x232a54,'current':_0x85e2c,'latest':_0x3f73b0,'url':buildNpmVersionUrl(_0x3f73b0),'message':CLI_BIN_NAME+'\x20'+_0x3f73b0+_0x52c320(0x190)+_0x85e2c+',\x20run:\x20'+_0x232a54};}catch{return null;}}
1
+ (function(_0x3749b9,_0x151853){const _0x4de585=a350_0x4e6d,_0x1c5091=_0x3749b9();while(!![]){try{const _0x3a1234=parseInt(_0x4de585(0x11e))/0x1*(-parseInt(_0x4de585(0x12b))/0x2)+parseInt(_0x4de585(0x122))/0x3+parseInt(_0x4de585(0x125))/0x4*(parseInt(_0x4de585(0x119))/0x5)+-parseInt(_0x4de585(0x115))/0x6+-parseInt(_0x4de585(0x124))/0x7+parseInt(_0x4de585(0x11a))/0x8*(parseInt(_0x4de585(0x111))/0x9)+parseInt(_0x4de585(0x12c))/0xa*(parseInt(_0x4de585(0x10f))/0xb);if(_0x3a1234===_0x151853)break;else _0x1c5091['push'](_0x1c5091['shift']());}catch(_0x1da84e){_0x1c5091['push'](_0x1c5091['shift']());}}}(a350_0x1f27,0xd3cee));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import a350_0x3d37a6 from'semver';import{CLI_BIN_NAME,NPM_PACKAGE_NAME}from'../constant/cli.js';function a350_0x4e6d(_0x4d3644,_0x44df7b){_0x4d3644=_0x4d3644-0x10f;const _0x1f2729=a350_0x1f27();let _0x4e6ddd=_0x1f2729[_0x4d3644];return _0x4e6ddd;}import{getCliVersionPolicy}from'../utils/cli-version-policy.js';function a350_0x1f27(){const _0x1ddc9c=['8gxMRhn','/v/','yes','lastNotifiedAt','8371pWEywj','utf8','parse','trim','3568443HmZbsp',',\x20run:\x20','10533509FARlDO','43060VSgNSw','now','gte','toLowerCase','object','\x20update','226UAxZqF','10UwZGEk','checkedAt','latest','11844437GFRIae','number','10456497VbqccS','lastNotifiedVersion','valid','stableVersion','6924060oUTZyo','rabetbase-cli','stringify','true','485IvkHfI'];a350_0x1f27=function(){return _0x1ddc9c;};return a350_0x1f27();}import{getCliVersion}from'../utils/version.js';const UPDATE_CHECK_TTL_MS=0xc*0x3c*0x3c*0x3e8,UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x1d5a13=a350_0x4e6d,_0x31f58c=process.env.RABETBASE_NO_UPDATE_NOTICE?.[_0x1d5a13(0x121)]()[_0x1d5a13(0x128)]();return _0x31f58c==='1'||_0x31f58c===_0x1d5a13(0x118)||_0x31f58c===_0x1d5a13(0x11c);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x266759=a350_0x4e6d;return join(cacheRoot(),_0x266759(0x116),'update-check.json');}async function readUpdateNoticeCache(){const _0xdda0c=a350_0x4e6d;try{const _0x38820c=await readFile(getUpdateNoticeCachePath(),_0xdda0c(0x11f)),_0x4a4b8a=JSON[_0xdda0c(0x120)](_0x38820c);if(!_0x4a4b8a||typeof _0x4a4b8a!==_0xdda0c(0x129))return{};return _0x4a4b8a;}catch{return{};}}async function writeUpdateNoticeCache(_0x36e18){const _0x65d5b5=a350_0x4e6d;try{const _0x1bc86e=getUpdateNoticeCachePath();await mkdir(dirname(_0x1bc86e),{'recursive':!![]}),await writeFile(_0x1bc86e,JSON[_0x65d5b5(0x117)](_0x36e18,null,0x2)+'\x0a',_0x65d5b5(0x11f));}catch{}}function isFreshCheck(_0x152505,_0x57c59e){const _0x37cc08=a350_0x4e6d;return typeof _0x152505[_0x37cc08(0x12d)]===_0x37cc08(0x110)&&_0x57c59e-_0x152505[_0x37cc08(0x12d)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0xac24f5,_0x19b905,_0xfc72f2){const _0x2762d4=a350_0x4e6d;return _0xac24f5[_0x2762d4(0x112)]===_0x19b905&&typeof _0xac24f5[_0x2762d4(0x11d)]===_0x2762d4(0x110)&&_0xfc72f2-_0xac24f5[_0x2762d4(0x11d)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x785a65){const _0x1f8f61=a350_0x4e6d;return'https://www.npmjs.com/package/'+NPM_PACKAGE_NAME+_0x1f8f61(0x11b)+_0x785a65;}export async function resolveLatestUpdateNotice(){const _0x1b48de=a350_0x4e6d;if(isUpdateNoticeDisabled())return null;try{const _0x2650c0=Date[_0x1b48de(0x126)](),_0x437ce4=getCliVersion(),_0x29f940=await readUpdateNoticeCache();let _0x26fe65=isFreshCheck(_0x29f940,_0x2650c0)?_0x29f940[_0x1b48de(0x12e)]?.[_0x1b48de(0x121)]():undefined;if(!_0x26fe65&&!isFreshCheck(_0x29f940,_0x2650c0)){const _0x2b3700=await getCliVersionPolicy();_0x26fe65=_0x2b3700?.[_0x1b48de(0x114)]?.[_0x1b48de(0x121)]()||undefined,await writeUpdateNoticeCache({..._0x29f940,'checkedAt':_0x2650c0,'latest':_0x26fe65,'failed':!_0x26fe65});}if(!_0x26fe65||!a350_0x3d37a6[_0x1b48de(0x113)](_0x437ce4)||!a350_0x3d37a6['valid'](_0x26fe65))return null;if(a350_0x3d37a6[_0x1b48de(0x127)](_0x437ce4,_0x26fe65))return null;if(isRecentlyNotified(_0x29f940,_0x26fe65,_0x2650c0))return null;const _0x1c1873=CLI_BIN_NAME+_0x1b48de(0x12a);return await writeUpdateNoticeCache({..._0x29f940,'checkedAt':isFreshCheck(_0x29f940,_0x2650c0)?_0x29f940[_0x1b48de(0x12d)]:_0x2650c0,'latest':_0x26fe65,'failed':![],'lastNotifiedVersion':_0x26fe65,'lastNotifiedAt':_0x2650c0}),{'command':_0x1c1873,'current':_0x437ce4,'latest':_0x26fe65,'url':buildNpmVersionUrl(_0x26fe65),'message':CLI_BIN_NAME+'\x20'+_0x26fe65+'\x20available,\x20current\x20'+_0x437ce4+_0x1b48de(0x123)+_0x1c1873};}catch{return null;}}
@@ -1 +1 @@
1
- (function(_0x417671,_0x121c37){var _0x458771=a339_0x5d58,_0x534744=_0x417671();while(!![]){try{var _0x24a669=-parseInt(_0x458771(0x1ac))/0x1+-parseInt(_0x458771(0x1a9))/0x2*(parseInt(_0x458771(0x1ad))/0x3)+-parseInt(_0x458771(0x1ae))/0x4+parseInt(_0x458771(0x1ab))/0x5*(-parseInt(_0x458771(0x1af))/0x6)+parseInt(_0x458771(0x1a7))/0x7+parseInt(_0x458771(0x1a8))/0x8+parseInt(_0x458771(0x1aa))/0x9;if(_0x24a669===_0x121c37)break;else _0x534744['push'](_0x534744['shift']());}catch(_0x12ee52){_0x534744['push'](_0x534744['shift']());}}}(a339_0x23fa,0x3d5b6));import{VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}function a339_0x5d58(_0x2ff359,_0x3551da){_0x2ff359=_0x2ff359-0x1a7;var _0x23fa6a=a339_0x23fa();var _0x5d58da=_0x23fa6a[_0x2ff359];return _0x5d58da;}function a339_0x23fa(){var _0x28646b=['39357OEGelP','1478944uRQXFE','1050HCkvqr','3336466hRWztp','1370760AiIXzu','72iDjCrH','6728220oZMZQZ','6680Hpooif','68425FGVGWL'];a339_0x23fa=function(){return _0x28646b;};return a339_0x23fa();}
1
+ (function(_0x4c51d5,_0x29ff3f){var _0x3e10a1=a351_0x5d56,_0x1f037b=_0x4c51d5();while(!![]){try{var _0x191713=parseInt(_0x3e10a1(0x1c6))/0x1*(-parseInt(_0x3e10a1(0x1c4))/0x2)+-parseInt(_0x3e10a1(0x1c0))/0x3*(parseInt(_0x3e10a1(0x1bf))/0x4)+-parseInt(_0x3e10a1(0x1c3))/0x5*(-parseInt(_0x3e10a1(0x1c2))/0x6)+parseInt(_0x3e10a1(0x1c9))/0x7+parseInt(_0x3e10a1(0x1c7))/0x8+parseInt(_0x3e10a1(0x1c5))/0x9*(-parseInt(_0x3e10a1(0x1c1))/0xa)+parseInt(_0x3e10a1(0x1c8))/0xb*(parseInt(_0x3e10a1(0x1be))/0xc);if(_0x191713===_0x29ff3f)break;else _0x1f037b['push'](_0x1f037b['shift']());}catch(_0x3018a8){_0x1f037b['push'](_0x1f037b['shift']());}}}(a351_0x45f4,0x77910));import{VERSION}from'../generated/build-info.js';function a351_0x5d56(_0x440cab,_0x52a7c7){_0x440cab=_0x440cab-0x1be;var _0x45f449=a351_0x45f4();var _0x5d56f6=_0x45f449[_0x440cab];return _0x5d56f6;}function a351_0x45f4(){var _0x17045f=['9NancbE','132137snvxnn','1387776PiQOuF','11UEYMFf','111475KmclDd','11303256xdUjgo','4AoieKX','1703220NXiLxx','254990wiTblz','5259642gpHUda','5KXURWh','14wWGTnE'];a351_0x45f4=function(){return _0x17045f;};return a351_0x45f4();}export function getCliVersion(){return VERSION;}
@@ -1 +1 @@
1
- function a340_0x17cf(_0x19b176,_0x4bb06c){_0x19b176=_0x19b176-0x84;var _0x6783ee=a340_0x6783();var _0x17cf32=_0x6783ee[_0x19b176];return _0x17cf32;}(function(_0x2f7e46,_0x51477e){var _0x557e14=a340_0x17cf,_0x50aa74=_0x2f7e46();while(!![]){try{var _0x31a66a=parseInt(_0x557e14(0x89))/0x1+-parseInt(_0x557e14(0x8c))/0x2*(parseInt(_0x557e14(0x8d))/0x3)+-parseInt(_0x557e14(0x8a))/0x4*(parseInt(_0x557e14(0x8b))/0x5)+-parseInt(_0x557e14(0x84))/0x6*(parseInt(_0x557e14(0x85))/0x7)+parseInt(_0x557e14(0x88))/0x8+parseInt(_0x557e14(0x86))/0x9+parseInt(_0x557e14(0x87))/0xa;if(_0x31a66a===_0x51477e)break;else _0x50aa74['push'](_0x50aa74['shift']());}catch(_0x23b570){_0x50aa74['push'](_0x50aa74['shift']());}}}(a340_0x6783,0x22df1));function a340_0x6783(){var _0x42f51b=['356139snhdfl','2495466ZsbpyF','505350MgeDVq','716144XZxeNo','250207dknrxi','8dkdmMZ','703765SmXIOx','79374tpBPWc','3EMXVGG','24SWkZor'];a340_0x6783=function(){return _0x42f51b;};return a340_0x6783();}import{setActiveCookie,clearActiveCookie}from'../core/api-client.js';export async function withActiveCookie(_0x1ea4e7,_0x807756){setActiveCookie(_0x1ea4e7);try{return await _0x807756();}finally{clearActiveCookie();}}
1
+ (function(_0x1fc9f2,_0x567a3b){var _0x1e2882=a352_0x5c85,_0x3714bb=_0x1fc9f2();while(!![]){try{var _0x556c03=parseInt(_0x1e2882(0x177))/0x1+-parseInt(_0x1e2882(0x17b))/0x2+parseInt(_0x1e2882(0x17c))/0x3+parseInt(_0x1e2882(0x17d))/0x4*(parseInt(_0x1e2882(0x17a))/0x5)+parseInt(_0x1e2882(0x178))/0x6+-parseInt(_0x1e2882(0x17f))/0x7+parseInt(_0x1e2882(0x17e))/0x8*(-parseInt(_0x1e2882(0x179))/0x9);if(_0x556c03===_0x567a3b)break;else _0x3714bb['push'](_0x3714bb['shift']());}catch(_0x15082d){_0x3714bb['push'](_0x3714bb['shift']());}}}(a352_0x5c67,0x89364));import{setActiveCookie,clearActiveCookie}from'../core/api-client.js';function a352_0x5c85(_0x30dc8b,_0x3bf303){_0x30dc8b=_0x30dc8b-0x177;var _0x5c674d=a352_0x5c67();var _0x5c851e=_0x5c674d[_0x30dc8b];return _0x5c851e;}function a352_0x5c67(){var _0x1beebc=['785130mzJqba','9ynFHYK','430GzdKOC','642186FkhZUd','2164875ynqfUF','27096TsmUFn','8806960qpIOxB','3792516TzpFcy','1090727jxNbWF'];a352_0x5c67=function(){return _0x1beebc;};return a352_0x5c67();}export async function withActiveCookie(_0x1ab858,_0x3afcfc){setActiveCookie(_0x1ab858);try{return await _0x3afcfc();}finally{clearActiveCookie();}}
@@ -1 +1 @@
1
- (function(_0x586290,_0x15db03){var _0x1907c9=a341_0x38b9,_0x13764f=_0x586290();while(!![]){try{var _0x2ef9dd=-parseInt(_0x1907c9(0x118))/0x1*(-parseInt(_0x1907c9(0x112))/0x2)+-parseInt(_0x1907c9(0x113))/0x3*(-parseInt(_0x1907c9(0x115))/0x4)+parseInt(_0x1907c9(0x119))/0x5+parseInt(_0x1907c9(0x116))/0x6*(parseInt(_0x1907c9(0x114))/0x7)+-parseInt(_0x1907c9(0x11c))/0x8+parseInt(_0x1907c9(0x11b))/0x9+parseInt(_0x1907c9(0x11d))/0xa*(-parseInt(_0x1907c9(0x11a))/0xb);if(_0x2ef9dd===_0x15db03)break;else _0x13764f['push'](_0x13764f['shift']());}catch(_0x541456){_0x13764f['push'](_0x13764f['shift']());}}}(a341_0xb52d,0xde67c));function a341_0x38b9(_0x5f187d,_0x5f1c1e){_0x5f187d=_0x5f187d-0x112;var _0xb52dc0=a341_0xb52d();var _0x38b9bb=_0xb52dc0[_0x5f187d];return _0x38b9bb;}export function writeCliSideChannelLine(_0x119988){var _0x262e11=a341_0x38b9;process['stderr'][_0x262e11(0x117)](_0x119988+'\x0a');}function a341_0xb52d(){var _0x5ba70b=['write','34fEbVfk','2900820eklmyH','1627076gCkkjD','8048376gJAeie','5636232UGBNbo','170KlAPiK','82828qNkmqc','193209KAWvjw','686gvRPYI','76kPvpRm','1464dlSqfJ'];a341_0xb52d=function(){return _0x5ba70b;};return a341_0xb52d();}
1
+ (function(_0x4ee1cc,_0x55f544){var _0x5884ca=a353_0x214a,_0x5570a0=_0x4ee1cc();while(!![]){try{var _0x2bab25=parseInt(_0x5884ca(0xdc))/0x1*(parseInt(_0x5884ca(0xda))/0x2)+parseInt(_0x5884ca(0xd4))/0x3*(parseInt(_0x5884ca(0xe0))/0x4)+-parseInt(_0x5884ca(0xd6))/0x5+parseInt(_0x5884ca(0xd9))/0x6*(parseInt(_0x5884ca(0xde))/0x7)+-parseInt(_0x5884ca(0xdd))/0x8*(-parseInt(_0x5884ca(0xd8))/0x9)+parseInt(_0x5884ca(0xd7))/0xa+-parseInt(_0x5884ca(0xdb))/0xb*(parseInt(_0x5884ca(0xdf))/0xc);if(_0x2bab25===_0x55f544)break;else _0x5570a0['push'](_0x5570a0['shift']());}catch(_0x928a7e){_0x5570a0['push'](_0x5570a0['shift']());}}}(a353_0x139e,0x9be38));function a353_0x139e(){var _0x1ce6bc=['36VIKlav','10632tztAoO','2FEPbqh','14960lnvkgB','1128782IArovo','1871400QPSQQS','3479cAhAET','19056dkPAjb','12BKYxdl','314646QnSfVJ','write','5364350DyQCqX','6112580dbCyTT'];a353_0x139e=function(){return _0x1ce6bc;};return a353_0x139e();}function a353_0x214a(_0x3c3c95,_0x185167){_0x3c3c95=_0x3c3c95-0xd4;var _0x139e73=a353_0x139e();var _0x214aac=_0x139e73[_0x3c3c95];return _0x214aac;}export function writeCliSideChannelLine(_0x3344bd){var _0x5b31ff=a353_0x214a;process['stderr'][_0x5b31ff(0xd5)](_0x3344bd+'\x0a');}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/rabetbase-cli",
3
- "version": "2.5.3-beta.2",
3
+ "version": "2.5.3-beta.3",
4
4
  "description": "Developer CLI for Lovrabet apps, datasets, pages, SQL, Backend Function, database connections, skills, and AI agent workflows.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "keywords": [
@@ -44,6 +44,9 @@
44
44
  "build:dev": "node scripts/clean-build-output.mjs && tsc && tsc-alias",
45
45
  "start": "tsc --watch",
46
46
  "sync:cdn": "node scripts/sync-cdn-assets.js",
47
+ "sync:cdn:beta": "node scripts/sync-cdn-assets.js --beta",
48
+ "check:cdn": "node scripts/sync-cdn-assets.js --check",
49
+ "check:cdn:beta": "node scripts/sync-cdn-assets.js --beta --check",
47
50
  "verify:bundled-jq": "node scripts/verify-bundled-jq.mjs",
48
51
  "regression:release-smoke": "node scripts/regression-release-smoke.mjs",
49
52
  "release:summary:prepare": "node scripts/release-summary-preparation.mjs",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rabetbase
3
- version: 2.5.3-beta.2
3
+ version: 2.5.3-beta.3
4
4
  description: "Use for Lovrabet development work through the rabetbase CLI: create or bind projects (including creating an AppCode project in the current folder), pull Dataset/API facts and maintain SDK clients, or manage datasets, Instant API access policies, database connections, pages, SQL, Backend Functions, menus, notifications, knowledge bases and kb search, Agent Context Rules, roles, files, OCR, deployment metadata, platform issues, and 钉钉沙箱账号绑定. Trigger when the user mentions rabetbase, Lovrabet development, AppCode, Dataset, Instant API allow/deny/route policy, project creation, api pull/codegen, dblink, page, SQL, BFF, menu, notification, knowledge base, kb search, Agent Context Rules, RULES.md, DATABASE.md, rule list/get/set, role, file/OCR, or related development workflows."
5
5
  metadata:
6
6
  requires:
@@ -19,7 +19,7 @@ metadata:
19
19
  ## 前置条件
20
20
 
21
21
  1. **连接配置与认证分离**:首次使用先执行 `rabetbase config init`。交互模式选择当前已开放国家/地区;非交互模式显式传 `--region`,未传时使用默认节点。企业独立部署优先导入 `lovrabet-routing/v1` 清单,也兼容旧扁平 Domain 文件和对应 `--*-domain` flags。`config init` 默认重建当前项目节点/Domain 配置,显式 `--global` 时写全局;保留 Cookie、AccessKey、format、locale 和应用绑定,但不登录、不绑定项目,随后再执行 `rabetbase auth login`
22
- 2. **AppCode**:确保 `.rabetbase.json` 中设置了 `apps`(单应用自动选中;多应用再配 `defaultApp`),或兼容读取的顶层 `appcode`,或通过 `--appcode <code>` / `--app <name>` 传入。旧 `.lovrabet.json` 不会自动读取
22
+ 2. **AppCode**:确保 `.rabetbase.json` 中设置了 `apps`(单应用自动选中;多应用再配 `defaultApp`),或兼容读取的顶层 `appcode`,或通过 `--appcode <code>` / `--app <name>` 传入。`.lovrabet.json` 属于 Lovrabet 运行态 CLI;Rabetbase 不读取也不修改它,两份配置可在同一项目共存
23
23
  3. **配置文件**:`rabetbase config init` 默认写当前项目 `.rabetbase.json`,显式 `--global` 时写 `~/.rabetbase.json`;默认节点不落冗余 `region`。官方节点模式清理显式和遗留 Domain,独立部署模式清理旧 `region`/Domain 后写入路由配置。完整字段说明见 [`.rabetbase.json` 配置参考](references/rabetbase-config.md)。当前目录应用绑定使用下方 `workspace init`
24
24
  4. **工作目录应用绑定**:当前目录要固定使用某个应用时,使用 `rabetbase workspace init --appcode <code>` 或 `rabetbase workspace use --app <name>`(选型见「app vs workspace 职责边界」)
25
25
  5. **多应用场景**:一个项目有多个应用时,先 `rabetbase workspace add <name> --appcode … [--region cn|id]` 登记各应用;profile 的 `region` 高于顶层国家/地区回退值。再用 `--app <name>` 临时切换,或 `workspace use --app <name>` 修改当前工作目录默认应用
@@ -53,6 +53,7 @@ metadata:
53
53
  - 跨表场景还需查目标表的结构
54
54
  - 写入前用 `data.fields[]` 确认真实字段、必填字段、枚举选项;枚举/选择字段写入 `options[].value`,不是展示 `label`
55
55
  - 需要了解数据集关联关系时用 `rabetbase dataset relations --format compress`(或 `json`);需要审计关系事实错误和人工复核项时用 `rabetbase dataset relation-audit --format compress`
56
+ - 需要管理不同数据库连接之间的 DB_TABLE 关联时,先读 [跨库关系](references/rabetbase-dataset-cross-relations.md),使用 `dataset cross-relation-list/create/update/delete`;源数据集+字段定位,更新/删除必须唯一匹配,写前 dry-run,写后以跨库 list 回读为准
56
57
  - 需要从文本需求创建新的 `METADATA` 数据集时,先读 [`dataset generate-start/status`](references/rabetbase-dataset-generate.md),执行 preview 写出 design 文件,审阅后用 `generate-start --apply --design-file` 提交任务,再用 `generate-status` 查询到成功
57
58
  - **管理物理库连接 / 测连 / 同步表结构分析**时用 `rabetbase db …`(先 [`db list`](references/rabetbase-db-list.md),trace/plan id 见 [`database-connection-workflow.md`](guides/database-connection-workflow.md))
58
59
  - 研发资源保存后的增量同步由服务端自动处理;仅在管理员明确要求首次初始化、历史回填或故障恢复时读 [`deployment sync-all`](references/rabetbase-deployment-sync-all.md),在停止编辑的安静窗口执行;提交成功后按 jobId 查询状态,提交结果未知时用 `sync-jobs` 恢复任务事实
@@ -62,7 +63,7 @@ metadata:
62
63
  - 全部批次结束后再次执行异步差异刷新并重新获取完整差异;仍未收敛时,按 [`database-connection-workflow.md`](guides/database-connection-workflow.md) 对剩余 `toAnalyzeTables` 逐表串行重试且每表只恢复一次。仅当用户明确要求跳过分析/刷新时直接读取现有差异。状态查询失败继续使用原 `planId`,不得重复启动任务
63
64
  - 输出很大且只需子集时,在 `compress`/`json` 上加 `--jq '.data…'` 缩小结果
64
65
  - 需要真实业务行数据时必须交接给 `lovrabet data filter/getOne`;`lovrabet` 不可用时报告阻断并提示安装 Skill 与 CLI,不要静默安装或修复,也不要用 `rabetbase sql exec` 当行数据替代,见 [`guides/data-api-guidelines.md`](guides/data-api-guidelines.md)
65
- - 需要 `src/api/api.ts` / `client.ts` 时:先 `rabetbase api pull --format compress` `data.models`、`data.files`、`data.needsAgentMerge`,再按 [`sdk-client-generation.md`](guides/sdk-client-generation.md) 更新 TypeScript。`api pull` 默认**不会覆盖已有** `api.ts`/`client.ts`;只有用户明确要求放弃本地定制并完整重建时才使用 `--force --yes`
66
+ - 需要 `src/api/api.ts` / `client.ts` 时:已有项目先执行 `rabetbase project upgrade --dry-run`,确认计划后执行 `rabetbase project upgrade --yes`;再运行 `rabetbase api pull --format compress` 刷新模型事实。按 [`sdk-client-generation.md`](guides/sdk-client-generation.md) 检查 `data.files`、`data.needsProjectUpgrade` 与模型注册表;注册表源码迁移仅使用 `project upgrade`
66
67
  - 需要按 Dataset + API 配置 Instant API 的 `allow`、`deny` 或 `route` 时,先读取 [`rabetbase-instant-api-policy.md`](references/rabetbase-instant-api-policy.md)。先执行 `api pull` 更新模型事实,从生成的 `models[].datasetCode` 取得精确选择器;**不得**把 SDK `alias` 当作 `datasetCode`。精确 Dataset 选择器在 v1/v2 都可写 `{ datasetCode: "<real-dataset-code>" }` 或 `{ tableName: "<real-table-name>" }`;两者同时写时必须指向同一 Dataset,已有 code 时优先只写 `datasetCode`。再用 `dataset detail --code <datasetCode>` 确认目标操作存在,只编辑固定 `policy.json`。仅版本 2 可以使用通配:全部 Dataset 固定写作 `datasets: [{"datasetCode":"*"}]`,全部 API 固定写作 `apis: ["*"]`;每种通配都必须是其数组的唯一元素,`tableName: "*"` 不支持,也不得与 Dataset 通配混用。需要从通配规则中豁免组合时,用 `excludes: [{ datasets: [{ datasetCode: "<real-dataset-code>" }], apis: ["<api>"] }]`,豁免项会回退到其他非重叠规则或 `defaults.instantApi`。版本 1 禁止 `*` 与 `excludes`。随后依次执行 `validate`、`publish --dry-run`,经人工确认后再正式发布。认证不可用时报告阻断,不得猜测或复用过期的 Dataset 信息
67
68
  3. **SQL 工作流严格分步**
68
69
  - 推荐路径:查现有(`sql list/detail`) 或新建(`sql create`) → 拉/落本地(`sql pull` / `sql create`) → 编辑同步目录文件 → 可选校验(`sql validate`) → 检查状态(`sql status`) → 先预览(`sql push --dry-run` / `sql delete --dry-run`) → 再 `sql push` / `sql delete` → `sql detail` / `sql exec` 验证
@@ -176,7 +177,8 @@ metadata:
176
177
  - **不要**在用户未要求时给命令加 `--global`** — 默认行为已是「项目优先」;只有用户明确要改全局配置或不在项目内且意图写全局时才使用。
177
178
  - **`config set`**:在**没有**项目配置文件(当前目录未解析到 `.rabetbase.json`)且**未**传 `--global` 时,CLI **拒绝执行**并提示使用 `--global` 或先 `rabetbase workspace init --appcode <code>`,**不会**静默写入全局。
178
179
  - **`project create`** 生成的新项目 `.rabetbase.json` **只继承**少量全局偏好(如 `cookie` / `locale` / `format` / `riskLevel` 等),**不会**把全局 `apps` / `defaultApp` 带入新项目文件;同时生成浏览器安全的 `src/api/sdk-config.ts` 与 `rabetbase.domain-routing.json`。每个官方节点直接声明自己的第三方库 CDN 与 Lovrabet 自有资源 Domain;项目文件始终包含解析后的完整地址,企业独立部署从共用清单读取显式 CDN。两个生成文件都不下发认证配置;`rabetbase run start|dev|build|preview` 会在执行脚本前刷新公开 Domain 快照,也可用 `project domain-routing-sync` 立即显式刷新;`api pull` 只刷新 SDK/API 文件。
179
- - **`api pull` / `api list`**:默认仅针对**项目** `apps`;需要合并全局已登记应用时加 `--global`。多应用遍历会在每个请求前应用该 profile 的有效 `region`;`api pull` 为非默认应用生成独立 `<name>-sdk-config.ts`(见各命令 reference)。
180
+ - **`api pull` / `api list`**:默认仅针对**项目** `apps`;需要合并全局已登记应用时加 `--global`。多应用遍历会在每个请求前应用该 profile 的有效 `region`。一个 AppCode 匹配多个 profile 时必须用 `--app <profile>` 消除歧义;只有显式相同 `apiGroup` 且使用同一 `apiDir` 的 profile 才共享生成注册表(见各命令 reference)。
181
+ - **多 profile SDK 的运行边界**:共享注册表只解决“同一份业务代码分别运行在不同节点,并按当前 Runtime Domain 选择唯一 profile”;它不是跨节点网关,也不允许浏览器 client 在一次运行中同时读取多个节点。业务代码只使用 alias,不硬编码或跨 profile 取 `datasetCode`。确需跨节点聚合时,交给可信服务端或 Backend Function 编排;完整约束见 [`sdk-client-generation.md`](guides/sdk-client-generation.md) 与 [`typescript-sdk.md`](guides/typescript-sdk.md)。
180
182
  - **`app list`**:默认展示**合并**后的全量;`--global` 仅全局、`--project` 仅项目(见 [`rabetbase app list`](references/rabetbase-app-list.md))。
181
183
 
182
184
  ## app vs workspace 职责边界
@@ -224,6 +226,7 @@ metadata:
224
226
  - **不要跳过 Dataset rename 最终线上回查** — 连续重命名后必须按 code 重新查询线上名称,不能只相信本地 plan 或 dry-run
225
227
  - **不要把 MCP 工具名当 CLI 命令** — 使用 `rabetbase sql list`,不是 `list_sql_queries`
226
228
  - **不要擅自加 `--global`** — 见上文「配置作用域原则」;默认写项目、读合并;仅在用户明确要求或文档说明的场景使用 `--global`。
229
+ - **不要迁移或删除 Lovrabet 运行态配置** — `.lovrabet.json`、`.lovrabet/` 与 Lovrabet Skill 不属于 Rabetbase 项目升级范围;即使它们与 `.rabetbase.json` 同时存在也必须保留
227
230
  - **不要为 Instant API Policy 传任意文件路径或写入 app-config** — 策略只使用 `.rabetbase/instant-api-policy/<appCode>/policy.json` 与独立策略接口;发布和回滚前必须校验并预览。
228
231
 
229
232
  ## 接口选型优先级
@@ -316,7 +319,7 @@ const result = await client.bff.execute<DashboardData>({
316
319
  | 初始化连接配置 | [`rabetbase config init`](references/rabetbase-init.md) | 选择官方节点或导入独立部署 Domain |
317
320
  | 创建新项目 | [`rabetbase project create`](references/rabetbase-project-create.md) | 支持新目录或当前空目录创建;完成口径与安全边界见 reference |
318
321
  | 刷新项目公开 Domain 路由 | [`rabetbase project domain-routing-sync`](references/rabetbase-project-domain-routing-sync.md) | 根据当前有效配置原子生成项目级 `rabetbase.domain-routing.json`;与前端页面路由无关 |
319
- | lovrabet-cli 迁移 | [`rabetbase project upgrade`](references/rabetbase-project-upgrade.md) | 6 步自动迁移,`--yes` 跳过确认 |
322
+ | 升级已有项目依赖与源码架构 | [`rabetbase project upgrade`](references/rabetbase-project-upgrade.md) | `--dry-run`,标准旧脚手架自动备份迁移,业务定制写候选文件;不修改 Lovrabet 运行态配置 |
320
323
  | 老项目翻新蓝图 / Legacy Application Blueprint | [`guides/legacy-application-blueprint-workflow.md`](guides/legacy-application-blueprint-workflow.md) | 先输出 `.rabetbase/blueprint/<appCode>/application-blueprint.md`,把老代码逻辑与 Dataset / Relations 绑定后再生成迁移 Backlog |
321
324
  | 运行 package.json 脚本 | [`rabetbase run <script>`](references/rabetbase-run.md) | `write`;先审阅脚本命令体,嵌入式工具暂不开放 |
322
325
  | 安装 / 重装 / 刷新 CLI Built-in Skill | [`rabetbase cli-skill install`](references/rabetbase-cli-skill-install.md) | 由最新版官方 Skills CLI 从当前 npm 包内本地源重装同版本 Skill;发现本地 skill 过期时优先执行 |
@@ -373,6 +376,7 @@ const result = await client.bff.execute<DashboardData>({
373
376
  | 查看数据集关联关系 | [`rabetbase dataset relations`](references/rabetbase-dataset-relations.md) | 标准只读入口,输出 `datasetCode + field` 关系事实;支持 `DB_TABLE -> DB_TABLE`、`DB_TABLE -> METADATA`、`METADATA -> METADATA` |
374
377
  | 审计数据集关联关系 | [`rabetbase dataset relation-audit`](references/rabetbase-dataset-relation-audit.md) | 只读审计关系事实结构错误、风险和人工复核项 |
375
378
  | 管理单条数据集关联关系 | [`rabetbase dataset relation-create/update/delete`](references/rabetbase-dataset-relation-mutations.md) | 单条关系写入;写入前用 `relations` 确认 `datasetCode + field` 关系事实,DB_TABLE 写入所需表名来自显式参数或物理表事实 |
379
+ | 管理跨库数据集关联 | [`dataset cross-relation-list/create/update/delete`](references/rabetbase-dataset-cross-relations.md) | 不同连接的 DB_TABLE 逻辑关系;源端定位,更新/删除要求唯一匹配 |
376
380
  | 首次生成数据列表页 | [`rabetbase page generate-start --datasetcode <code>`](references/rabetbase-page-generate-start.md) | 提交或复用服务端异步任务 |
377
381
  | 创建自定义页面 | [`rabetbase page create --page-pattern BLANK --name "客户看板"`](references/rabetbase-page-create.md) | 综合操作页面优先使用 `ONEPAGE`,业务数据可视化使用 `DASHBOARD`,基础页面使用 `BLANK`;模板详情见 [`page-templates.md`](knowledge/custom-page/page-templates.md),也可通过 `--page-dir` 创建完整页面;先 dry-run |
378
382
  | 查询自定义页面 | [`rabetbase page custom-list`](references/rabetbase-page-custom-list.md) | 返回页面 ID、页面名称、`pageUrl`(查看最新保存内容)和 `editPageUrl`(打开编辑器) |
@@ -389,7 +393,7 @@ const result = await client.bff.execute<DashboardData>({
389
393
  | 恢复已删除页面 | [`rabetbase page restore --id <pageId>`](references/rabetbase-page-restore.md) | 支持 `DATA_LIST|CUSTOM` 自动识别;跨类型同 ID 时显式传 `--page-type` |
390
394
  | 数据库连接(dblink)/ 测连 / 结构分析 | [`rabetbase db list`](references/rabetbase-db-list.md) 起 | **`id`**、**trace/plan id** 与“终态 + 复跑 diff”完成口径见 [database-connection-workflow.md](guides/database-connection-workflow.md);各子命令见 `references/rabetbase-db-*.md` |
391
395
  | 独立部署应用范围补偿同步 | [`rabetbase deployment sync-all`](references/rabetbase-deployment-sync-all.md) | 管理员首次初始化、历史回填或故障恢复时使用;`write`,只提交 appCode;在停止编辑的安静窗口执行,保存 jobId 后查询状态,结果未知时用 `sync-jobs` 恢复任务事实,不自动重提;不是精确镜像 |
392
- | 生成 / 更新 API 客户端代码 | [`rabetbase api pull`](references/rabetbase-api-pull.md) → [`sdk-client-generation.md`](guides/sdk-client-generation.md) | `api pull` Dataset 事实并刷新匹配应用的 SDK 路由文件;已有 `api.ts`/`client.ts` 按 guide 合并更新 |
396
+ | 升级 API 客户端源码结构并刷新模型 | [`rabetbase project upgrade`](references/rabetbase-project-upgrade.md) → [`rabetbase api pull`](references/rabetbase-api-pull.md) → [`sdk-client-generation.md`](guides/sdk-client-generation.md) | `project upgrade` 迁移稳定入口,`api pull` 只刷新 Dataset 模型事实 |
393
397
  | 查看生成的 API 模型 | [`rabetbase api list`](references/rabetbase-api-list.md) | 列出已生成的数据模型 |
394
398
  | 查看现有 SQL | [`rabetbase sql list --name "xxx"`](references/rabetbase-sql-list.md) | 分页,按名称过滤;默认查当前决议到的单个应用 |
395
399
  | 查看 SQL 详情 | [`rabetbase sql detail --sqlcode xxx`](references/rabetbase-sql-detail.md) | 含完整 SQL 内容和参数定义 |