@lovrabet/rabetbase-cli 2.5.5-beta.1 → 2.5.5-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 (367) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/api-group.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/api/generate-sdk-config-file.js +1 -1
  6. package/lib/api/legacy-api-file.js +1 -1
  7. package/lib/api/model-registry-file.js +1 -1
  8. package/lib/api/model-registry-scaffold.js +1 -1
  9. package/lib/api/model-source.js +1 -1
  10. package/lib/auth/auth-server-ui.js +1 -1
  11. package/lib/auth/auth-server.js +1 -1
  12. package/lib/auth/constant.js +1 -1
  13. package/lib/auth/get-cookie.js +1 -1
  14. package/lib/auth/get-session-user.js +1 -1
  15. package/lib/auth/is-session-valid.js +1 -1
  16. package/lib/auth/login-success-html.js +1 -1
  17. package/lib/auth/logout.js +1 -1
  18. package/lib/cli-flags.js +1 -1
  19. package/lib/cli.js +1 -1
  20. package/lib/commands/api/generate.js +1 -1
  21. package/lib/commands/api/index.js +1 -1
  22. package/lib/commands/api/list.js +1 -1
  23. package/lib/commands/api/pull.js +1 -1
  24. package/lib/commands/api/shared.js +1 -1
  25. package/lib/commands/app/detail.js +1 -1
  26. package/lib/commands/app/index.js +1 -1
  27. package/lib/commands/app/list.js +1 -1
  28. package/lib/commands/app/members-list.js +1 -1
  29. package/lib/commands/app/remote-directory.js +1 -1
  30. package/lib/commands/app/shared.js +1 -1
  31. package/lib/commands/app-config/delete.js +1 -1
  32. package/lib/commands/app-config/get.js +1 -1
  33. package/lib/commands/app-config/index.js +1 -1
  34. package/lib/commands/app-config/list.js +1 -1
  35. package/lib/commands/app-config/set.js +1 -1
  36. package/lib/commands/app-config/shared.js +1 -1
  37. package/lib/commands/auth/index.js +1 -1
  38. package/lib/commands/bff/create.js +1 -1
  39. package/lib/commands/bff/delete.js +1 -1
  40. package/lib/commands/bff/detail.js +1 -1
  41. package/lib/commands/bff/index.js +1 -1
  42. package/lib/commands/bff/list.js +1 -1
  43. package/lib/commands/bff/logs.js +1 -1
  44. package/lib/commands/bff/pull.js +1 -1
  45. package/lib/commands/bff/push.js +1 -1
  46. package/lib/commands/bff/status.js +1 -1
  47. package/lib/commands/cli-skill/index.js +1 -1
  48. package/lib/commands/cli-update.js +1 -1
  49. package/lib/commands/codegen/index.js +1 -1
  50. package/lib/commands/codegen/sdk.js +1 -1
  51. package/lib/commands/codegen/sql.js +1 -1
  52. package/lib/commands/common/app-registry.js +1 -1
  53. package/lib/commands/common/app-selector.js +1 -1
  54. package/lib/commands/common/async-task.js +1 -1
  55. package/lib/commands/common/dry-run.js +1 -1
  56. package/lib/commands/common/flags.js +1 -1
  57. package/lib/commands/common/local-file.js +1 -1
  58. package/lib/commands/common/validate.js +1 -1
  59. package/lib/commands/config/delete.js +1 -1
  60. package/lib/commands/config/get.js +1 -1
  61. package/lib/commands/config/index.js +1 -1
  62. package/lib/commands/config/init.js +1 -1
  63. package/lib/commands/config/list.js +1 -1
  64. package/lib/commands/config/set.js +1 -1
  65. package/lib/commands/config/shared.js +1 -1
  66. package/lib/commands/dataset/batch-design.js +1 -1
  67. package/lib/commands/dataset/business-group-update.js +1 -1
  68. package/lib/commands/dataset/business-groups.js +1 -1
  69. package/lib/commands/dataset/capability.js +1 -1
  70. package/lib/commands/dataset/cross-relation-create.js +1 -1
  71. package/lib/commands/dataset/cross-relation-delete.js +1 -1
  72. package/lib/commands/dataset/cross-relation-list.js +1 -1
  73. package/lib/commands/dataset/cross-relation-shared.js +1 -1
  74. package/lib/commands/dataset/cross-relation-update.js +1 -1
  75. package/lib/commands/dataset/delete.js +1 -1
  76. package/lib/commands/dataset/detail.js +1 -1
  77. package/lib/commands/dataset/extend-update.js +1 -1
  78. package/lib/commands/dataset/field-restore.js +1 -1
  79. package/lib/commands/dataset/field-update.js +1 -1
  80. package/lib/commands/dataset/generate.js +1 -1
  81. package/lib/commands/dataset/index.js +1 -1
  82. package/lib/commands/dataset/list.js +1 -1
  83. package/lib/commands/dataset/operations.js +1 -1
  84. package/lib/commands/dataset/relation-audit.js +1 -1
  85. package/lib/commands/dataset/relation-create.js +1 -1
  86. package/lib/commands/dataset/relation-delete.js +1 -1
  87. package/lib/commands/dataset/relation-shared.js +1 -1
  88. package/lib/commands/dataset/relation-update.js +1 -1
  89. package/lib/commands/dataset/relations.js +1 -1
  90. package/lib/commands/dataset/rename.js +1 -1
  91. package/lib/commands/dataset/restore.js +1 -1
  92. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  93. package/lib/commands/db/analysis-batching.js +1 -1
  94. package/lib/commands/db/analyze-batch-plan.js +1 -1
  95. package/lib/commands/db/analyze-cancel.js +1 -1
  96. package/lib/commands/db/analyze-start.js +1 -1
  97. package/lib/commands/db/analyze-status.js +1 -1
  98. package/lib/commands/db/create.js +1 -1
  99. package/lib/commands/db/delete.js +1 -1
  100. package/lib/commands/db/detail.js +1 -1
  101. package/lib/commands/db/diff-refresh-start.js +1 -1
  102. package/lib/commands/db/diff-refresh-status.js +1 -1
  103. package/lib/commands/db/diff.js +1 -1
  104. package/lib/commands/db/index.js +1 -1
  105. package/lib/commands/db/list.js +1 -1
  106. package/lib/commands/db/shared.js +1 -1
  107. package/lib/commands/db/table-diff-shared.js +1 -1
  108. package/lib/commands/db/tables.js +1 -1
  109. package/lib/commands/db/test.js +1 -1
  110. package/lib/commands/db/update.js +1 -1
  111. package/lib/commands/deployment/index.js +1 -1
  112. package/lib/commands/deployment/sync-all.js +1 -1
  113. package/lib/commands/deployment/sync-jobs.js +1 -1
  114. package/lib/commands/deployment/sync-status.js +1 -1
  115. package/lib/commands/doctor.js +1 -1
  116. package/lib/commands/file/index.js +1 -1
  117. package/lib/commands/flow/create.js +1 -1
  118. package/lib/commands/flow/detail.js +1 -1
  119. package/lib/commands/flow/index.js +1 -1
  120. package/lib/commands/flow/list.js +1 -1
  121. package/lib/commands/flow/publish.js +1 -1
  122. package/lib/commands/flow/runtime-resources-shared.js +1 -1
  123. package/lib/commands/flow/runtime-role-list.js +1 -1
  124. package/lib/commands/flow/runtime-role-user-list.js +1 -1
  125. package/lib/commands/flow/runtime-user-search.js +1 -1
  126. package/lib/commands/flow/shared.js +1 -1
  127. package/lib/commands/flow/update.js +1 -1
  128. package/lib/commands/flow/validate.js +1 -1
  129. package/lib/commands/instant-api-policy/current.js +1 -1
  130. package/lib/commands/instant-api-policy/index.js +1 -1
  131. package/lib/commands/instant-api-policy/init.js +1 -1
  132. package/lib/commands/instant-api-policy/publish.js +1 -1
  133. package/lib/commands/instant-api-policy/pull.js +1 -1
  134. package/lib/commands/instant-api-policy/revision.js +1 -1
  135. package/lib/commands/instant-api-policy/revisions.js +1 -1
  136. package/lib/commands/instant-api-policy/rollback.js +1 -1
  137. package/lib/commands/instant-api-policy/shared.js +1 -1
  138. package/lib/commands/instant-api-policy/validate.js +1 -1
  139. package/lib/commands/issue/index.js +1 -1
  140. package/lib/commands/issue/nudge.js +1 -1
  141. package/lib/commands/issue/report.js +1 -1
  142. package/lib/commands/issue/shared.js +1 -1
  143. package/lib/commands/kb/create.js +1 -1
  144. package/lib/commands/kb/delete.js +1 -1
  145. package/lib/commands/kb/detail.js +1 -1
  146. package/lib/commands/kb/index.js +1 -1
  147. package/lib/commands/kb/list.js +1 -1
  148. package/lib/commands/kb/search.js +1 -1
  149. package/lib/commands/kb/shared.js +1 -1
  150. package/lib/commands/kb/update.js +1 -1
  151. package/lib/commands/logs/index.js +1 -1
  152. package/lib/commands/menu/asset-update.js +1 -1
  153. package/lib/commands/menu/delete.js +1 -1
  154. package/lib/commands/menu/external-link-create.js +1 -1
  155. package/lib/commands/menu/external-link-update.js +1 -1
  156. package/lib/commands/menu/group-create.js +1 -1
  157. package/lib/commands/menu/group-update.js +1 -1
  158. package/lib/commands/menu/index.js +1 -1
  159. package/lib/commands/menu/list.js +1 -1
  160. package/lib/commands/menu/move.js +1 -1
  161. package/lib/commands/menu/regroup-start.js +1 -1
  162. package/lib/commands/menu/rename.js +1 -1
  163. package/lib/commands/menu/shared/compare-table.js +1 -1
  164. package/lib/commands/menu/shared/delete-plan.js +1 -1
  165. package/lib/commands/menu/shared/facts.js +1 -1
  166. package/lib/commands/menu/shared/index.js +1 -1
  167. package/lib/commands/menu/shared/inquirer.js +1 -1
  168. package/lib/commands/menu/shared/local-pages.js +1 -1
  169. package/lib/commands/menu/shared/logic.js +1 -1
  170. package/lib/commands/menu/shared/mutations.js +1 -1
  171. package/lib/commands/menu/shared/path.js +1 -1
  172. package/lib/commands/menu/shared/service.js +1 -1
  173. package/lib/commands/menu/shared/subapp-assets.js +1 -1
  174. package/lib/commands/menu/shared/sync-core.js +1 -1
  175. package/lib/commands/menu/shared/update-core.js +1 -1
  176. package/lib/commands/menu/shared/valid-url.js +1 -1
  177. package/lib/commands/menu/subapp-assets-status.js +1 -1
  178. package/lib/commands/menu/subapp-assets-update.js +1 -1
  179. package/lib/commands/menu/sync.js +1 -1
  180. package/lib/commands/menu/visibility-update.js +1 -1
  181. package/lib/commands/notification/config-create.js +1 -1
  182. package/lib/commands/notification/config-delete.js +1 -1
  183. package/lib/commands/notification/config-list.js +1 -1
  184. package/lib/commands/notification/config-update.js +1 -1
  185. package/lib/commands/notification/index.js +1 -1
  186. package/lib/commands/notification/shared.js +1 -1
  187. package/lib/commands/ocr/index.js +1 -1
  188. package/lib/commands/page/create.js +1 -1
  189. package/lib/commands/page/custom/detail.js +1 -1
  190. package/lib/commands/page/custom/list.js +1 -1
  191. package/lib/commands/page/custom/publish.js +1 -1
  192. package/lib/commands/page/custom/shared.js +1 -1
  193. package/lib/commands/page/custom/syntax.js +1 -1
  194. package/lib/commands/page/custom/update.js +1 -1
  195. package/lib/commands/page/data-list-status.js +1 -1
  196. package/lib/commands/page/generate-start.js +1 -1
  197. package/lib/commands/page/generate-status.js +1 -1
  198. package/lib/commands/page/index.js +1 -1
  199. package/lib/commands/page/pull.js +1 -1
  200. package/lib/commands/page/push.js +1 -1
  201. package/lib/commands/page/relation-audit.js +1 -1
  202. package/lib/commands/page/restore.js +1 -1
  203. package/lib/commands/page/shared.js +1 -1
  204. package/lib/commands/page/sync.js +1 -1
  205. package/lib/commands/project/api-architecture-upgrade.js +1 -1
  206. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  207. package/lib/commands/project/create/format-elapsed.js +1 -1
  208. package/lib/commands/project/create/main.js +1 -1
  209. package/lib/commands/project/create/materialize-project-template.js +1 -1
  210. package/lib/commands/project/create/project-name.js +1 -1
  211. package/lib/commands/project/create/project-template-archive.js +1 -1
  212. package/lib/commands/project/create/project-template-path.js +1 -1
  213. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  214. package/lib/commands/project/create/use-format-code.js +1 -1
  215. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  216. package/lib/commands/project/domain-routing-sync.js +1 -1
  217. package/lib/commands/project/index.js +1 -1
  218. package/lib/commands/project/upgrade.js +1 -1
  219. package/lib/commands/registry.js +1 -1
  220. package/lib/commands/role/delete.js +1 -1
  221. package/lib/commands/role/detail.js +1 -1
  222. package/lib/commands/role/index.js +1 -1
  223. package/lib/commands/role/list.js +1 -1
  224. package/lib/commands/role/shared.js +1 -1
  225. package/lib/commands/role/update.js +1 -1
  226. package/lib/commands/role/user-add.js +1 -1
  227. package/lib/commands/role/user-remove.js +1 -1
  228. package/lib/commands/role/user-resolve.js +1 -1
  229. package/lib/commands/rule/get.js +1 -1
  230. package/lib/commands/rule/index.js +1 -1
  231. package/lib/commands/rule/list.js +1 -1
  232. package/lib/commands/rule/set.js +1 -1
  233. package/lib/commands/rule/shared.js +1 -1
  234. package/lib/commands/run/index.js +1 -1
  235. package/lib/commands/schema.js +1 -1
  236. package/lib/commands/sql/create.js +1 -1
  237. package/lib/commands/sql/delete.js +1 -1
  238. package/lib/commands/sql/detail.js +1 -1
  239. package/lib/commands/sql/exec.js +1 -1
  240. package/lib/commands/sql/index.js +1 -1
  241. package/lib/commands/sql/list.js +1 -1
  242. package/lib/commands/sql/pull.js +1 -1
  243. package/lib/commands/sql/push.js +1 -1
  244. package/lib/commands/sql/shared.js +1 -1
  245. package/lib/commands/sql/status.js +1 -1
  246. package/lib/commands/sql/validate.js +1 -1
  247. package/lib/commands/task/index.js +1 -1
  248. package/lib/commands/task/status.js +1 -1
  249. package/lib/commands/tenant/index.js +1 -1
  250. package/lib/commands/tenant/members-list.js +1 -1
  251. package/lib/commands/tenant/shared.js +1 -1
  252. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  253. package/lib/commands/user-account/feishu-bind.js +1 -1
  254. package/lib/commands/user-account/index.js +1 -1
  255. package/lib/commands/workspace/add.js +1 -1
  256. package/lib/commands/workspace/index.js +1 -1
  257. package/lib/commands/workspace/remove.js +1 -1
  258. package/lib/config/domain-config.js +1 -1
  259. package/lib/config/project-domain-routing.js +1 -1
  260. package/lib/config/region-config.js +1 -1
  261. package/lib/config/schema.js +1 -1
  262. package/lib/constant/cdn.js +1 -1
  263. package/lib/constant/cli.js +1 -1
  264. package/lib/constant/defaults.js +1 -1
  265. package/lib/constant/domain.js +1 -1
  266. package/lib/constant/env.js +1 -1
  267. package/lib/constant/output.js +1 -1
  268. package/lib/constant/paths.js +1 -1
  269. package/lib/constant/region.js +1 -1
  270. package/lib/constant/risk.js +1 -1
  271. package/lib/constant/routing-profile.js +1 -1
  272. package/lib/context/app-resolver.js +1 -1
  273. package/lib/context/auth-resolver.js +1 -1
  274. package/lib/context/config-loader.js +1 -1
  275. package/lib/context.js +1 -1
  276. package/lib/core/alias-resolver.js +1 -1
  277. package/lib/core/api-client.js +1 -1
  278. package/lib/core/bff/config.js +1 -1
  279. package/lib/core/bff/file-system.js +1 -1
  280. package/lib/core/bff/hash.js +1 -1
  281. package/lib/core/bff/hook-directory.js +1 -1
  282. package/lib/core/bff/lock.js +1 -1
  283. package/lib/core/bff/utils.js +1 -1
  284. package/lib/core/cross-db-relation.js +1 -1
  285. package/lib/core/db-resolver.js +1 -1
  286. package/lib/core/flow-config.js +1 -1
  287. package/lib/core/instant-api-policy/config.js +1 -1
  288. package/lib/core/kb-search-client.js +1 -1
  289. package/lib/core/page/file-system.js +1 -1
  290. package/lib/core/page/hash.js +1 -1
  291. package/lib/core/page/lock.js +1 -1
  292. package/lib/core/page/lr-smart-jsx.js +1 -1
  293. package/lib/core/sql-index-auditor.js +1 -1
  294. package/lib/core/sql-sync/config.js +1 -1
  295. package/lib/core/sql-sync/file-system.js +1 -1
  296. package/lib/core/sql-sync/hash.js +1 -1
  297. package/lib/core/sql-sync/lock.js +1 -1
  298. package/lib/core/sql-sync/utils.js +1 -1
  299. package/lib/core/sql-validator.js +1 -1
  300. package/lib/errors.js +1 -1
  301. package/lib/framework/build-all-flags.js +1 -1
  302. package/lib/framework/error-output.js +1 -1
  303. package/lib/framework/explicit-yes.js +1 -1
  304. package/lib/framework/flags.js +1 -1
  305. package/lib/framework/help.js +1 -1
  306. package/lib/framework/index.js +1 -1
  307. package/lib/framework/output.js +1 -1
  308. package/lib/framework/response.js +1 -1
  309. package/lib/framework/runner-alias.js +1 -1
  310. package/lib/framework/runner.js +1 -1
  311. package/lib/framework/schema-export.js +1 -1
  312. package/lib/framework/supported-flags.js +1 -1
  313. package/lib/framework/types.js +1 -1
  314. package/lib/generated/build-info.d.ts +4 -4
  315. package/lib/generated/build-info.js +1 -1
  316. package/lib/generated/official-routing.js +1 -1
  317. package/lib/generated/routing-contract.js +1 -1
  318. package/lib/help.js +1 -1
  319. package/lib/postinstall.js +1 -1
  320. package/lib/runtime/confirmation.js +1 -1
  321. package/lib/runtime/event.js +1 -1
  322. package/lib/runtime/index.js +1 -1
  323. package/lib/runtime/queue.js +1 -1
  324. package/lib/runtime/resolve.js +1 -1
  325. package/lib/skills/builtin-skill.js +1 -1
  326. package/lib/skills/main.js +1 -1
  327. package/lib/skills/npx-skills-add.js +1 -1
  328. package/lib/skills/skill-presence.js +1 -1
  329. package/lib/telemetry/cli-command-trace.js +1 -1
  330. package/lib/telemetry/cli-help-trace.js +1 -1
  331. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  332. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  333. package/lib/telemetry/send-cli-trace-log.js +1 -1
  334. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  335. package/lib/utils/ai_config.js +1 -1
  336. package/lib/utils/apply-jq-filter.js +1 -1
  337. package/lib/utils/cdn-config.js +1 -1
  338. package/lib/utils/check-sdk-version.js +1 -1
  339. package/lib/utils/cli-version-check.js +1 -1
  340. package/lib/utils/cli-version-policy.js +1 -1
  341. package/lib/utils/config.js +1 -1
  342. package/lib/utils/entity-with-id.js +1 -1
  343. package/lib/utils/file-utils.js +1 -1
  344. package/lib/utils/guides-cdn.js +1 -1
  345. package/lib/utils/http-client.js +1 -1
  346. package/lib/utils/is-non-interactive.js +1 -1
  347. package/lib/utils/logger.js +1 -1
  348. package/lib/utils/params.js +1 -1
  349. package/lib/utils/platform.js +1 -1
  350. package/lib/utils/sleep.js +1 -1
  351. package/lib/utils/template-replacer.js +1 -1
  352. package/lib/utils/update-notice.js +1 -1
  353. package/lib/utils/version.js +1 -1
  354. package/lib/utils/with-active-cookie.js +1 -1
  355. package/lib/utils/write-cli-side-channel.js +1 -1
  356. package/package.json +1 -1
  357. package/skills/rabetbase/SKILL.md +3 -3
  358. package/skills/rabetbase/guides/independent-deployment.md +11 -1
  359. package/skills/rabetbase/references/rabetbase-config.md +16 -19
  360. package/skills/rabetbase/references/rabetbase-menu-visibility-update.md +5 -4
  361. package/skills/rabetbase/references/rabetbase-workspace.md +3 -1
  362. package/skills/rabetbase-page-generation/SKILL.md +13 -9
  363. package/skills/rabetbase-page-generation/references/component-baseline.md +2 -2
  364. package/skills/rabetbase-page-generation/references/generation.md +64 -15
  365. package/skills/rabetbase-page-generation/templates/onepage/build.mjs +39 -54
  366. package/skills/rabetbase-page-generation/templates/onepage/list/index.jsx +6 -2
  367. package/skills/rabetbase.manifest.json +3 -3
@@ -1 +1 @@
1
- export function sleep(_0x4d2fc6){return new Promise(_0x2484a6=>setTimeout(_0x2484a6,_0x4d2fc6));}
1
+ export function sleep(_0x4cb2bd){return new Promise(_0x46c635=>setTimeout(_0x46c635,_0x4cb2bd));}
@@ -1 +1 @@
1
- function a355_0x1a42(){const _0x2cdee7=['extname','processTemplate','6nDORrO','now','.tpl','\x0a\x20\x20\x20\x20{\x20','1013392DUjcIy','split','map','getHours','utf8','pad','default','sdk-config','datasetCode','1cQwCUt','tableName','.ts','processDirectory','info','getSeconds','isDirectory','getDate','join','includes','\x20},','Template\x20content\x20replacement\x20completed','processFile','push','toISOString','3100zYalCh','getMinutes','promises','927526wzqgnv','copyFile','toComponentName','7DviKqt','.json','13IxDXLq','success','7972644SCXVDD','.css','toUpperCase','YourModel','17413AgqOKB','Template\x20content\x20replacement\x20failed','endsWith','2855151QMkirc','error','padStart','readFile','.tsx','mkdir','replaceApiContent','template','LOVRABET','formatLocalTimestamp','name:\x20\x22','slice','352915ALhNiZ','name','toDisplayTitle','getMonth','12nYPUUy','pop','replace','writeFile','getFullYear','81856CUvzEy','datasetCode:\x20\x22','toLowerCase'];a355_0x1a42=function(){return _0x2cdee7;};return a355_0x1a42();}const a355_0x41370f=a355_0x2b26;(function(_0x5465d4,_0x462301){const _0x492ed8=a355_0x2b26,_0x29abef=_0x5465d4();while(!![]){try{const _0x2e10c0=parseInt(_0x492ed8(0x1ae))/0x1*(parseInt(_0x492ed8(0x1c0))/0x2)+parseInt(_0x492ed8(0x1a1))/0x3*(parseInt(_0x492ed8(0x1a5))/0x4)+parseInt(_0x492ed8(0x1da))/0x5*(parseInt(_0x492ed8(0x197))/0x6)+parseInt(_0x492ed8(0x1c3))/0x7*(parseInt(_0x492ed8(0x19c))/0x8)+parseInt(_0x492ed8(0x1ce))/0x9+parseInt(_0x492ed8(0x1bd))/0xa*(-parseInt(_0x492ed8(0x1cb))/0xb)+-parseInt(_0x492ed8(0x1c7))/0xc*(parseInt(_0x492ed8(0x1c5))/0xd);if(_0x2e10c0===_0x462301)break;else _0x29abef['push'](_0x29abef['shift']());}catch(_0x159708){_0x29abef['push'](_0x29abef['shift']());}}}(a355_0x1a42,0x4554b));import a355_0x4a4571 from'node:fs';import a355_0x1e2411 from'node:path';function a355_0x2b26(_0x32d429,_0x162f5c){_0x32d429=_0x32d429-0x195;const _0x1a4255=a355_0x1a42();let _0x2b268a=_0x1a4255[_0x32d429];return _0x2b268a;}import{logger}from'../utils/logger.js';import{getCliVersion}from'../utils/version.js';const CLI_VERSION=getCliVersion();export class TemplateReplacer{static[a355_0x41370f(0x1aa)](_0x24d28e){const _0x113b28=a355_0x41370f;return String(_0x24d28e)[_0x113b28(0x1d0)](0x2,'0');}static[a355_0x41370f(0x1d7)](_0x514af8){const _0x591a17=a355_0x41370f,_0x543d4b=_0x514af8[_0x591a17(0x19b)](),_0x4221ac=this[_0x591a17(0x1aa)](_0x514af8[_0x591a17(0x196)]()+0x1),_0x448be0=this['pad'](_0x514af8[_0x591a17(0x1b5)]()),_0xd691a5=this[_0x591a17(0x1aa)](_0x514af8[_0x591a17(0x1a8)]()),_0x1ba86a=this[_0x591a17(0x1aa)](_0x514af8[_0x591a17(0x1be)]()),_0x3e25ee=this[_0x591a17(0x1aa)](_0x514af8[_0x591a17(0x1b3)]());return{'createdAt':_0x543d4b+'-'+_0x4221ac+'-'+_0x448be0+'\x20'+_0xd691a5+':'+_0x1ba86a+':'+_0x3e25ee,'createdDate':_0x543d4b+'-'+_0x4221ac+'-'+_0x448be0,'createdTime':_0xd691a5+':'+_0x1ba86a+':'+_0x3e25ee};}static[a355_0x41370f(0x1c2)](_0x3d6c30){const _0x864349=a355_0x41370f,_0x15d330=_0x3d6c30['split']('/')[_0x864349(0x198)]()||_0x3d6c30;return _0x15d330[_0x864349(0x1a6)]('-')[_0x864349(0x1a7)](_0x3280c9=>_0x3280c9['charAt'](0x0)['toUpperCase']()+_0x3280c9[_0x864349(0x1d9)](0x1)[_0x864349(0x19e)]())['join']('');}static[a355_0x41370f(0x195)](_0x9c22c5){const _0x34b861=a355_0x41370f,_0x5c3941=_0x9c22c5['split']('/')[_0x34b861(0x198)]()||_0x9c22c5;return _0x5c3941[_0x34b861(0x1a6)]('-')[_0x34b861(0x1a7)](_0x10ba2a=>_0x10ba2a['charAt'](0x0)[_0x34b861(0x1c9)]()+_0x10ba2a[_0x34b861(0x1d9)](0x1)[_0x34b861(0x19e)]())[_0x34b861(0x1b6)]('\x20');}static['replaceContent'](_0x6b41a9,_0x5c5aa7,_0x35124a){const _0x1975fb=a355_0x41370f,_0x2213ff=this[_0x1975fb(0x1c2)](_0x5c5aa7),_0x50b7ab=this[_0x1975fb(0x195)](_0x5c5aa7),{createdAt:_0x92ca84,createdDate:_0x12cad1,createdTime:_0x6bad15}=this[_0x1975fb(0x1d7)](new Date());let _0x5cd072=_0x6b41a9['replace'](/\{CliVersion\}/g,CLI_VERSION)[_0x1975fb(0x199)](/\{ComponentName\}/g,_0x2213ff)[_0x1975fb(0x199)](/\{DisplayTitle\}/g,_0x50b7ab)[_0x1975fb(0x199)](/\{PageName\}/g,_0x5c5aa7)[_0x1975fb(0x199)](/\{TemplateName\}/g,_0x35124a)['replace'](/\{CreatedAt\}/g,_0x92ca84)[_0x1975fb(0x199)](/\{CreatedDate\}/g,_0x12cad1)[_0x1975fb(0x199)](/\{CreatedTime\}/g,_0x6bad15);return _0x5cd072;}static[a355_0x41370f(0x1d4)](_0x1167b9,_0x5094d6,_0x30bb0e,_0x2bac21,_0x581831,_0x74c7d1,_0x383890,_0x42417a,_0x26f32c){const _0x511d2c=a355_0x41370f,_0x20e2f7=new Date(),_0x45bf4b=_0x20e2f7[_0x511d2c(0x1bc)](),_0x565fbc=_0x30bb0e[_0x511d2c(0x1a7)](_0x1cd3ed=>{const _0x20889c=_0x511d2c,_0x51f5c6=[_0x20889c(0x19d)+_0x1cd3ed[_0x20889c(0x1ad)]+'\x22','tableName:\x20\x22'+_0x1cd3ed[_0x20889c(0x1af)]+'\x22',_0x20889c(0x1d8)+_0x1cd3ed['name']+'\x22'];return _0x1cd3ed['alias']&&_0x51f5c6[_0x20889c(0x1bb)]('alias:\x20\x22'+_0x1cd3ed['alias']+'\x22'),_0x20889c(0x1a4)+_0x51f5c6[_0x20889c(0x1b6)](',\x20')+_0x20889c(0x1b8);})[_0x511d2c(0x1b6)](''),_0xab5078=_0x2bac21||_0x30bb0e[0x0]?.['alias']||_0x511d2c(0x1ca);let _0x33772a=_0x1167b9[_0x511d2c(0x199)](/\{AppCode\}/g,_0x5094d6)[_0x511d2c(0x199)](/\{ModelConfigs\}/g,_0x565fbc)[_0x511d2c(0x199)](/\{ExampleModelName\}/g,_0xab5078)[_0x511d2c(0x199)](/\{ApiFileName\}/g,_0x581831||'api')[_0x511d2c(0x199)](/\{ConfigName\}/g,_0x74c7d1||_0x511d2c(0x1ab))[_0x511d2c(0x199)](/\{ClientConfigParam\}/g,_0x383890||'')[_0x511d2c(0x199)](/\{SdkConfigFileName\}/g,_0x26f32c||_0x511d2c(0x1ac))[_0x511d2c(0x199)](/\{VarPrefix\}/g,_0x42417a||_0x511d2c(0x1d6))[_0x511d2c(0x199)](/\{CreatedAt\}/g,_0x45bf4b);return _0x33772a;}static async[a355_0x41370f(0x1a0)](_0x5ce264,_0x38a6a2,_0x507124,_0x40803f,_0xa6e955=!![]){const _0x2443fc=a355_0x41370f,_0x276523=Date['now']();try{_0xa6e955&&logger[_0x2443fc(0x1b2)](_0x2443fc(0x1d5),'Starting\x20template\x20content\x20replacement',{'templatePath':_0x5ce264,'targetPath':_0x38a6a2,'pageName':_0x507124,'templateName':_0x40803f});await a355_0x4a4571[_0x2443fc(0x1bf)][_0x2443fc(0x1d3)](_0x38a6a2,{'recursive':!![]}),await this[_0x2443fc(0x1b1)](_0x5ce264,_0x38a6a2,_0x507124,_0x40803f);if(_0xa6e955){const _0x3f7714=Date[_0x2443fc(0x1a2)]()-_0x276523;logger[_0x2443fc(0x1c6)](_0x2443fc(0x1d5),_0x2443fc(0x1b9),_0x3f7714,{'pageName':_0x507124,'templateName':_0x40803f});}}catch(_0x1f4904){if(_0xa6e955){const _0x4d0379=Date[_0x2443fc(0x1a2)]()-_0x276523;logger[_0x2443fc(0x1cf)](_0x2443fc(0x1d5),_0x2443fc(0x1cc),{'templatePath':_0x5ce264,'targetPath':_0x38a6a2,'pageName':_0x507124,'templateName':_0x40803f,'error':_0x1f4904 instanceof Error?_0x1f4904['message']:String(_0x1f4904),'duration':_0x4d0379});}throw _0x1f4904;}}static async[a355_0x41370f(0x1b1)](_0x51a5f0,_0x24aa92,_0x4fdae6,_0x45d574){const _0x5d9d18=a355_0x41370f,_0x30a581=await a355_0x4a4571[_0x5d9d18(0x1bf)]['readdir'](_0x51a5f0,{'withFileTypes':!![]});for(const _0x544890 of _0x30a581){const _0x370283=a355_0x1e2411[_0x5d9d18(0x1b6)](_0x51a5f0,_0x544890[_0x5d9d18(0x1db)]);let _0x190b29=a355_0x1e2411[_0x5d9d18(0x1b6)](_0x24aa92,_0x544890[_0x5d9d18(0x1db)]);_0x544890[_0x5d9d18(0x1db)][_0x5d9d18(0x1cd)](_0x5d9d18(0x1a3))&&(_0x190b29=a355_0x1e2411[_0x5d9d18(0x1b6)](_0x24aa92,_0x544890[_0x5d9d18(0x1db)][_0x5d9d18(0x199)](/\.tpl$/,'')));if(_0x544890[_0x5d9d18(0x1b4)]())await a355_0x4a4571[_0x5d9d18(0x1bf)][_0x5d9d18(0x1d3)](_0x190b29,{'recursive':!![]}),await this[_0x5d9d18(0x1b1)](_0x370283,_0x190b29,_0x4fdae6,_0x45d574);else _0x544890['isFile']()&&await this[_0x5d9d18(0x1ba)](_0x370283,_0x190b29,_0x4fdae6,_0x45d574);}}static async['processFile'](_0x379c9b,_0x2e16e0,_0x2ee9e3,_0x2ab2fc){const _0x5e4e41=a355_0x41370f,_0x2bbe3f=a355_0x1e2411[_0x5e4e41(0x19f)](_0x379c9b)[_0x5e4e41(0x19e)]();_0x379c9b[_0x5e4e41(0x1cd)](_0x5e4e41(0x1a3))&&(_0x2e16e0=_0x2e16e0[_0x5e4e41(0x199)](/\.tpl$/,''));const _0x1bbfd3=[_0x5e4e41(0x1d2),_0x5e4e41(0x1b0),'.jsx','.js',_0x5e4e41(0x1c4),'.md',_0x5e4e41(0x1c8),'.scss',_0x5e4e41(0x1a3)];if(_0x1bbfd3[_0x5e4e41(0x1b7)](_0x2bbe3f)||_0x379c9b[_0x5e4e41(0x1cd)](_0x5e4e41(0x1a3))){const _0x50ce45=await a355_0x4a4571['promises'][_0x5e4e41(0x1d1)](_0x379c9b,_0x5e4e41(0x1a9)),_0x490a87=this['replaceContent'](_0x50ce45,_0x2ee9e3,_0x2ab2fc);await a355_0x4a4571[_0x5e4e41(0x1bf)][_0x5e4e41(0x19a)](_0x2e16e0,_0x490a87,_0x5e4e41(0x1a9));}else await a355_0x4a4571[_0x5e4e41(0x1bf)][_0x5e4e41(0x1c1)](_0x379c9b,_0x2e16e0);}}
1
+ function a355_0x1163(){const _0x556fad=['processDirectory','2679405nvaeTH','includes','10104ElXESI','processTemplate','padStart','getDate','charAt','push','.md','YourModel','Starting\x20template\x20content\x20replacement','2488675LqspPY','getMonth','toComponentName','datasetCode','.scss','alias:\x20\x22','replaceContent','name:\x20\x22','4591116bcGNLP','readdir','readFile','1000117pYfhOE','.tpl','tableName:\x20\x22','24htRNfx','\x20},','297wSVxKm','.jsx','split','utf8','extname','join','LOVRABET','api','name','datasetCode:\x20\x22','pop','copyFile','processFile','tableName','now','mkdir','replace','error','toDisplayTitle','getHours','default','getMinutes','getSeconds','template','4249518xmfqrZ','endsWith','1829852EaDUWx','promises','toISOString','pad','isDirectory','formatLocalTimestamp','map','.tsx','\x0a\x20\x20\x20\x20{\x20','Template\x20content\x20replacement\x20completed','message','.json'];a355_0x1163=function(){return _0x556fad;};return a355_0x1163();}const a355_0x119f49=a355_0x4065;(function(_0x2318a0,_0x12a57b){const _0x2133bd=a355_0x4065,_0x3dbaf7=_0x2318a0();while(!![]){try{const _0x4c89ad=parseInt(_0x2133bd(0x149))/0x1+parseInt(_0x2133bd(0x168))/0x2+-parseInt(_0x2133bd(0x166))/0x3+parseInt(_0x2133bd(0x146))/0x4+parseInt(_0x2133bd(0x133))/0x5+-parseInt(_0x2133bd(0x14c))/0x6*(parseInt(_0x2133bd(0x13e))/0x7)+-parseInt(_0x2133bd(0x135))/0x8*(-parseInt(_0x2133bd(0x14e))/0x9);if(_0x4c89ad===_0x12a57b)break;else _0x3dbaf7['push'](_0x3dbaf7['shift']());}catch(_0x1e1d09){_0x3dbaf7['push'](_0x3dbaf7['shift']());}}}(a355_0x1163,0xc3bf0));import a355_0x393527 from'node:fs';import a355_0x259f91 from'node:path';function a355_0x4065(_0x3ffc2d,_0x3fa1ad){_0x3ffc2d=_0x3ffc2d-0x131;const _0x1163d9=a355_0x1163();let _0x40652c=_0x1163d9[_0x3ffc2d];return _0x40652c;}import{logger}from'../utils/logger.js';import{getCliVersion}from'../utils/version.js';const CLI_VERSION=getCliVersion();export class TemplateReplacer{static['pad'](_0x564ae3){const _0x13b7e6=a355_0x4065;return String(_0x564ae3)[_0x13b7e6(0x137)](0x2,'0');}static[a355_0x119f49(0x16d)](_0x223c22){const _0x439ee8=a355_0x119f49,_0x2064f8=_0x223c22['getFullYear'](),_0x358d73=this[_0x439ee8(0x16b)](_0x223c22[_0x439ee8(0x13f)]()+0x1),_0x3a830b=this[_0x439ee8(0x16b)](_0x223c22[_0x439ee8(0x138)]()),_0x42b9fb=this[_0x439ee8(0x16b)](_0x223c22[_0x439ee8(0x161)]()),_0x2324bd=this[_0x439ee8(0x16b)](_0x223c22[_0x439ee8(0x163)]()),_0x576123=this[_0x439ee8(0x16b)](_0x223c22[_0x439ee8(0x164)]());return{'createdAt':_0x2064f8+'-'+_0x358d73+'-'+_0x3a830b+'\x20'+_0x42b9fb+':'+_0x2324bd+':'+_0x576123,'createdDate':_0x2064f8+'-'+_0x358d73+'-'+_0x3a830b,'createdTime':_0x42b9fb+':'+_0x2324bd+':'+_0x576123};}static[a355_0x119f49(0x140)](_0x2f3b5d){const _0x1acc8a=a355_0x119f49,_0x42ed09=_0x2f3b5d['split']('/')[_0x1acc8a(0x158)]()||_0x2f3b5d;return _0x42ed09['split']('-')[_0x1acc8a(0x16e)](_0x21414e=>_0x21414e['charAt'](0x0)['toUpperCase']()+_0x21414e['slice'](0x1)['toLowerCase']())['join']('');}static[a355_0x119f49(0x160)](_0x57e850){const _0x365f04=a355_0x119f49,_0x5d2688=_0x57e850[_0x365f04(0x150)]('/')['pop']()||_0x57e850;return _0x5d2688[_0x365f04(0x150)]('-')['map'](_0x8289d0=>_0x8289d0[_0x365f04(0x139)](0x0)['toUpperCase']()+_0x8289d0['slice'](0x1)['toLowerCase']())[_0x365f04(0x153)]('\x20');}static['replaceContent'](_0x5aca88,_0x2143b4,_0x4e8e71){const _0x27024f=a355_0x119f49,_0x1e4320=this['toComponentName'](_0x2143b4),_0x2f11b7=this['toDisplayTitle'](_0x2143b4),{createdAt:_0x14a3ef,createdDate:_0x20a8bc,createdTime:_0xa9d56}=this[_0x27024f(0x16d)](new Date());let _0x5e8b34=_0x5aca88['replace'](/\{CliVersion\}/g,CLI_VERSION)[_0x27024f(0x15e)](/\{ComponentName\}/g,_0x1e4320)[_0x27024f(0x15e)](/\{DisplayTitle\}/g,_0x2f11b7)[_0x27024f(0x15e)](/\{PageName\}/g,_0x2143b4)[_0x27024f(0x15e)](/\{TemplateName\}/g,_0x4e8e71)[_0x27024f(0x15e)](/\{CreatedAt\}/g,_0x14a3ef)['replace'](/\{CreatedDate\}/g,_0x20a8bc)[_0x27024f(0x15e)](/\{CreatedTime\}/g,_0xa9d56);return _0x5e8b34;}static['replaceApiContent'](_0x870065,_0xa92f11,_0x475c50,_0x6591ee,_0x38a1ef,_0x2f3c8c,_0x56b021,_0x5ad056,_0x1d2bd7){const _0x36129e=a355_0x119f49,_0x4bef7c=new Date(),_0x5bb293=_0x4bef7c[_0x36129e(0x16a)](),_0x44602f=_0x475c50[_0x36129e(0x16e)](_0x149c80=>{const _0x53a61f=_0x36129e,_0x4a862c=[_0x53a61f(0x157)+_0x149c80[_0x53a61f(0x141)]+'\x22',_0x53a61f(0x14b)+_0x149c80[_0x53a61f(0x15b)]+'\x22',_0x53a61f(0x145)+_0x149c80[_0x53a61f(0x156)]+'\x22'];return _0x149c80['alias']&&_0x4a862c[_0x53a61f(0x13a)](_0x53a61f(0x143)+_0x149c80['alias']+'\x22'),_0x53a61f(0x170)+_0x4a862c[_0x53a61f(0x153)](',\x20')+_0x53a61f(0x14d);})[_0x36129e(0x153)](''),_0x572b21=_0x6591ee||_0x475c50[0x0]?.['alias']||_0x36129e(0x13c);let _0x14f285=_0x870065['replace'](/\{AppCode\}/g,_0xa92f11)[_0x36129e(0x15e)](/\{ModelConfigs\}/g,_0x44602f)['replace'](/\{ExampleModelName\}/g,_0x572b21)['replace'](/\{ApiFileName\}/g,_0x38a1ef||_0x36129e(0x155))['replace'](/\{ConfigName\}/g,_0x2f3c8c||_0x36129e(0x162))['replace'](/\{ClientConfigParam\}/g,_0x56b021||'')[_0x36129e(0x15e)](/\{SdkConfigFileName\}/g,_0x1d2bd7||'sdk-config')['replace'](/\{VarPrefix\}/g,_0x5ad056||_0x36129e(0x154))[_0x36129e(0x15e)](/\{CreatedAt\}/g,_0x5bb293);return _0x14f285;}static async[a355_0x119f49(0x136)](_0x44437d,_0x1d9643,_0xc9063a,_0x1e8b4e,_0x3cc095=!![]){const _0x438815=a355_0x119f49,_0x5c3393=Date[_0x438815(0x15c)]();try{_0x3cc095&&logger['info'](_0x438815(0x165),_0x438815(0x13d),{'templatePath':_0x44437d,'targetPath':_0x1d9643,'pageName':_0xc9063a,'templateName':_0x1e8b4e});await a355_0x393527[_0x438815(0x169)][_0x438815(0x15d)](_0x1d9643,{'recursive':!![]}),await this[_0x438815(0x132)](_0x44437d,_0x1d9643,_0xc9063a,_0x1e8b4e);if(_0x3cc095){const _0x5498cd=Date[_0x438815(0x15c)]()-_0x5c3393;logger['success'](_0x438815(0x165),_0x438815(0x171),_0x5498cd,{'pageName':_0xc9063a,'templateName':_0x1e8b4e});}}catch(_0x862df1){if(_0x3cc095){const _0x231e76=Date['now']()-_0x5c3393;logger[_0x438815(0x15f)](_0x438815(0x165),'Template\x20content\x20replacement\x20failed',{'templatePath':_0x44437d,'targetPath':_0x1d9643,'pageName':_0xc9063a,'templateName':_0x1e8b4e,'error':_0x862df1 instanceof Error?_0x862df1[_0x438815(0x172)]:String(_0x862df1),'duration':_0x231e76});}throw _0x862df1;}}static async[a355_0x119f49(0x132)](_0x3e5532,_0x6f4ae5,_0x311216,_0x32dba7){const _0xa4707a=a355_0x119f49,_0x2732d7=await a355_0x393527[_0xa4707a(0x169)][_0xa4707a(0x147)](_0x3e5532,{'withFileTypes':!![]});for(const _0x51e0b9 of _0x2732d7){const _0x11b45b=a355_0x259f91[_0xa4707a(0x153)](_0x3e5532,_0x51e0b9[_0xa4707a(0x156)]);let _0x3066ef=a355_0x259f91[_0xa4707a(0x153)](_0x6f4ae5,_0x51e0b9[_0xa4707a(0x156)]);_0x51e0b9['name'][_0xa4707a(0x167)](_0xa4707a(0x14a))&&(_0x3066ef=a355_0x259f91[_0xa4707a(0x153)](_0x6f4ae5,_0x51e0b9[_0xa4707a(0x156)][_0xa4707a(0x15e)](/\.tpl$/,'')));if(_0x51e0b9[_0xa4707a(0x16c)]())await a355_0x393527[_0xa4707a(0x169)][_0xa4707a(0x15d)](_0x3066ef,{'recursive':!![]}),await this['processDirectory'](_0x11b45b,_0x3066ef,_0x311216,_0x32dba7);else _0x51e0b9['isFile']()&&await this[_0xa4707a(0x15a)](_0x11b45b,_0x3066ef,_0x311216,_0x32dba7);}}static async[a355_0x119f49(0x15a)](_0x31e38f,_0x3d7327,_0x45770c,_0x5561e4){const _0x2d284f=a355_0x119f49,_0x3fadc6=a355_0x259f91[_0x2d284f(0x152)](_0x31e38f)['toLowerCase']();_0x31e38f[_0x2d284f(0x167)](_0x2d284f(0x14a))&&(_0x3d7327=_0x3d7327['replace'](/\.tpl$/,''));const _0x37967c=[_0x2d284f(0x16f),'.ts',_0x2d284f(0x14f),'.js',_0x2d284f(0x131),_0x2d284f(0x13b),'.css',_0x2d284f(0x142),_0x2d284f(0x14a)];if(_0x37967c[_0x2d284f(0x134)](_0x3fadc6)||_0x31e38f[_0x2d284f(0x167)](_0x2d284f(0x14a))){const _0x17a134=await a355_0x393527[_0x2d284f(0x169)][_0x2d284f(0x148)](_0x31e38f,_0x2d284f(0x151)),_0x17563b=this[_0x2d284f(0x144)](_0x17a134,_0x45770c,_0x5561e4);await a355_0x393527[_0x2d284f(0x169)]['writeFile'](_0x3d7327,_0x17563b,_0x2d284f(0x151));}else await a355_0x393527[_0x2d284f(0x169)][_0x2d284f(0x159)](_0x31e38f,_0x3d7327);}}
@@ -1 +1 @@
1
- (function(_0x1268cb,_0x213c1b){const _0x2bb4f5=a356_0xcdea,_0x8c4d3d=_0x1268cb();while(!![]){try{const _0x345f67=-parseInt(_0x2bb4f5(0x120))/0x1*(parseInt(_0x2bb4f5(0x132))/0x2)+-parseInt(_0x2bb4f5(0x11c))/0x3+-parseInt(_0x2bb4f5(0x136))/0x4+-parseInt(_0x2bb4f5(0x12c))/0x5*(-parseInt(_0x2bb4f5(0x12e))/0x6)+-parseInt(_0x2bb4f5(0x130))/0x7*(parseInt(_0x2bb4f5(0x13a))/0x8)+parseInt(_0x2bb4f5(0x12a))/0x9*(parseInt(_0x2bb4f5(0x134))/0xa)+parseInt(_0x2bb4f5(0x138))/0xb*(parseInt(_0x2bb4f5(0x11e))/0xc);if(_0x345f67===_0x213c1b)break;else _0x8c4d3d['push'](_0x8c4d3d['shift']());}catch(_0x2ea9dd){_0x8c4d3d['push'](_0x8c4d3d['shift']());}}}(a356_0x4630,0x5987a));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';function a356_0xcdea(_0x375ea5,_0x51b33d){_0x375ea5=_0x375ea5-0x11c;const _0x46301e=a356_0x4630();let _0xcdea02=_0x46301e[_0x375ea5];return _0xcdea02;}import a356_0x48ccea 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 _0x18ece5=a356_0xcdea,_0x5c984b=process.env.RABETBASE_NO_UPDATE_NOTICE?.[_0x18ece5(0x124)]()['toLowerCase']();return _0x5c984b==='1'||_0x5c984b==='true'||_0x5c984b===_0x18ece5(0x128);}function a356_0x4630(){const _0xe0ae02=['1kzdCPl','lastNotifiedVersion','gte','valid','trim','utf8','rabetbase-cli','\x20available,\x20current\x20','yes','now','1636065caqaYR','stringify','5JHKYDg','checkedAt','4327686SWqkjp','parse','14HJzChp','number','401470pSfpSw','update-check.json','10TBjONI','\x20update','2242812iXbhSN','lastNotifiedAt','572tJbGZO',',\x20run:\x20','277096zpeJyZ','1254900nJdWNY','latest','164460kKZiwz','object'];a356_0x4630=function(){return _0xe0ae02;};return a356_0x4630();}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x2bcef4=a356_0xcdea;return join(cacheRoot(),_0x2bcef4(0x126),_0x2bcef4(0x133));}async function readUpdateNoticeCache(){const _0x473dae=a356_0xcdea;try{const _0x228d9e=await readFile(getUpdateNoticeCachePath(),_0x473dae(0x125)),_0x2a8c50=JSON[_0x473dae(0x12f)](_0x228d9e);if(!_0x2a8c50||typeof _0x2a8c50!==_0x473dae(0x11f))return{};return _0x2a8c50;}catch{return{};}}async function writeUpdateNoticeCache(_0x56d613){const _0x21c5df=a356_0xcdea;try{const _0x6584a0=getUpdateNoticeCachePath();await mkdir(dirname(_0x6584a0),{'recursive':!![]}),await writeFile(_0x6584a0,JSON[_0x21c5df(0x12b)](_0x56d613,null,0x2)+'\x0a',_0x21c5df(0x125));}catch{}}function isFreshCheck(_0x1c6f32,_0x5c7c69){const _0x2a75df=a356_0xcdea;return typeof _0x1c6f32[_0x2a75df(0x12d)]===_0x2a75df(0x131)&&_0x5c7c69-_0x1c6f32[_0x2a75df(0x12d)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x351709,_0x5f499d,_0x3807a5){const _0xd77395=a356_0xcdea;return _0x351709[_0xd77395(0x121)]===_0x5f499d&&typeof _0x351709[_0xd77395(0x137)]==='number'&&_0x3807a5-_0x351709[_0xd77395(0x137)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x10644b){return'https://www.npmjs.com/package/'+NPM_PACKAGE_NAME+'/v/'+_0x10644b;}export async function resolveLatestUpdateNotice(){const _0x293cb7=a356_0xcdea;if(isUpdateNoticeDisabled())return null;try{const _0x57103f=Date[_0x293cb7(0x129)](),_0x3c0843=getCliVersion(),_0x119bb2=await readUpdateNoticeCache();let _0x5a2a1b=isFreshCheck(_0x119bb2,_0x57103f)?_0x119bb2[_0x293cb7(0x11d)]?.[_0x293cb7(0x124)]():undefined;if(!_0x5a2a1b&&!isFreshCheck(_0x119bb2,_0x57103f)){const _0x33ccf3=await getCliVersionPolicy();_0x5a2a1b=_0x33ccf3?.['stableVersion']?.[_0x293cb7(0x124)]()||undefined,await writeUpdateNoticeCache({..._0x119bb2,'checkedAt':_0x57103f,'latest':_0x5a2a1b,'failed':!_0x5a2a1b});}if(!_0x5a2a1b||!a356_0x48ccea[_0x293cb7(0x123)](_0x3c0843)||!a356_0x48ccea[_0x293cb7(0x123)](_0x5a2a1b))return null;if(a356_0x48ccea[_0x293cb7(0x122)](_0x3c0843,_0x5a2a1b))return null;if(isRecentlyNotified(_0x119bb2,_0x5a2a1b,_0x57103f))return null;const _0x20532a=CLI_BIN_NAME+_0x293cb7(0x135);return await writeUpdateNoticeCache({..._0x119bb2,'checkedAt':isFreshCheck(_0x119bb2,_0x57103f)?_0x119bb2[_0x293cb7(0x12d)]:_0x57103f,'latest':_0x5a2a1b,'failed':![],'lastNotifiedVersion':_0x5a2a1b,'lastNotifiedAt':_0x57103f}),{'command':_0x20532a,'current':_0x3c0843,'latest':_0x5a2a1b,'url':buildNpmVersionUrl(_0x5a2a1b),'message':CLI_BIN_NAME+'\x20'+_0x5a2a1b+_0x293cb7(0x127)+_0x3c0843+_0x293cb7(0x139)+_0x20532a};}catch{return null;}}
1
+ (function(_0x32fba2,_0xf90544){const _0x4525dc=a356_0x2ca5,_0x158e12=_0x32fba2();while(!![]){try{const _0x298307=parseInt(_0x4525dc(0xb8))/0x1*(-parseInt(_0x4525dc(0xae))/0x2)+-parseInt(_0x4525dc(0xb3))/0x3+-parseInt(_0x4525dc(0xb0))/0x4+parseInt(_0x4525dc(0xad))/0x5+-parseInt(_0x4525dc(0xb7))/0x6*(-parseInt(_0x4525dc(0xb2))/0x7)+parseInt(_0x4525dc(0xb6))/0x8*(-parseInt(_0x4525dc(0xc7))/0x9)+parseInt(_0x4525dc(0xca))/0xa*(parseInt(_0x4525dc(0xc0))/0xb);if(_0x298307===_0xf90544)break;else _0x158e12['push'](_0x158e12['shift']());}catch(_0x1362a2){_0x158e12['push'](_0x158e12['shift']());}}}(a356_0x51ca,0x1ff03));function a356_0x2ca5(_0x296f37,_0x1989d3){_0x296f37=_0x296f37-0xad;const _0x51ca12=a356_0x51ca();let _0x2ca51b=_0x51ca12[_0x296f37];return _0x2ca51b;}import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import a356_0xbf1a1c 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 _0x4b00fc=a356_0x2ca5,_0x93ee61=process.env.RABETBASE_NO_UPDATE_NOTICE?.[_0x4b00fc(0xcb)]()[_0x4b00fc(0xaf)]();return _0x93ee61==='1'||_0x93ee61===_0x4b00fc(0xb5)||_0x93ee61===_0x4b00fc(0xc3);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x3a4c5b=a356_0x2ca5;return join(cacheRoot(),_0x3a4c5b(0xb9),_0x3a4c5b(0xc6));}async function readUpdateNoticeCache(){const _0x56a45e=a356_0x2ca5;try{const _0x3ed681=await readFile(getUpdateNoticeCachePath(),_0x56a45e(0xb1)),_0xf8c6e4=JSON['parse'](_0x3ed681);if(!_0xf8c6e4||typeof _0xf8c6e4!==_0x56a45e(0xc5))return{};return _0xf8c6e4;}catch{return{};}}async function writeUpdateNoticeCache(_0x13e471){const _0x462605=a356_0x2ca5;try{const _0x34efd9=getUpdateNoticeCachePath();await mkdir(dirname(_0x34efd9),{'recursive':!![]}),await writeFile(_0x34efd9,JSON[_0x462605(0xbc)](_0x13e471,null,0x2)+'\x0a',_0x462605(0xb1));}catch{}}function isFreshCheck(_0x1e5460,_0x1132d2){const _0x2b9e19=a356_0x2ca5;return typeof _0x1e5460[_0x2b9e19(0xb4)]==='number'&&_0x1132d2-_0x1e5460[_0x2b9e19(0xb4)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x3eeff5,_0x291825,_0x47bb60){const _0x448a21=a356_0x2ca5;return _0x3eeff5['lastNotifiedVersion']===_0x291825&&typeof _0x3eeff5[_0x448a21(0xc2)]===_0x448a21(0xc9)&&_0x47bb60-_0x3eeff5['lastNotifiedAt']<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x4b131c){const _0x21b348=a356_0x2ca5;return _0x21b348(0xbb)+NPM_PACKAGE_NAME+_0x21b348(0xc4)+_0x4b131c;}function a356_0x51ca(){const _0x4fd11e=['lastNotifiedAt','yes','/v/','object','update-check.json','286965cGaiVG','valid','number','10PoaDPU','trim','\x20available,\x20current\x20','231900XmGqZh','4LYeYOP','toLowerCase','306556TfSVOJ','utf8','109319Pmrgcs','78759NIVekU','checkedAt','true','40mvRrIo','84oSPXIP','13331XuCRGW','rabetbase-cli','now','https://www.npmjs.com/package/','stringify','gte',',\x20run:\x20','stableVersion','1702580RCFTAd','\x20update'];a356_0x51ca=function(){return _0x4fd11e;};return a356_0x51ca();}export async function resolveLatestUpdateNotice(){const _0x53d33a=a356_0x2ca5;if(isUpdateNoticeDisabled())return null;try{const _0x41d04d=Date[_0x53d33a(0xba)](),_0x4bc173=getCliVersion(),_0x364d74=await readUpdateNoticeCache();let _0x4144eb=isFreshCheck(_0x364d74,_0x41d04d)?_0x364d74['latest']?.[_0x53d33a(0xcb)]():undefined;if(!_0x4144eb&&!isFreshCheck(_0x364d74,_0x41d04d)){const _0x2e0500=await getCliVersionPolicy();_0x4144eb=_0x2e0500?.[_0x53d33a(0xbf)]?.['trim']()||undefined,await writeUpdateNoticeCache({..._0x364d74,'checkedAt':_0x41d04d,'latest':_0x4144eb,'failed':!_0x4144eb});}if(!_0x4144eb||!a356_0xbf1a1c[_0x53d33a(0xc8)](_0x4bc173)||!a356_0xbf1a1c[_0x53d33a(0xc8)](_0x4144eb))return null;if(a356_0xbf1a1c[_0x53d33a(0xbd)](_0x4bc173,_0x4144eb))return null;if(isRecentlyNotified(_0x364d74,_0x4144eb,_0x41d04d))return null;const _0x17fae5=CLI_BIN_NAME+_0x53d33a(0xc1);return await writeUpdateNoticeCache({..._0x364d74,'checkedAt':isFreshCheck(_0x364d74,_0x41d04d)?_0x364d74[_0x53d33a(0xb4)]:_0x41d04d,'latest':_0x4144eb,'failed':![],'lastNotifiedVersion':_0x4144eb,'lastNotifiedAt':_0x41d04d}),{'command':_0x17fae5,'current':_0x4bc173,'latest':_0x4144eb,'url':buildNpmVersionUrl(_0x4144eb),'message':CLI_BIN_NAME+'\x20'+_0x4144eb+_0x53d33a(0xcc)+_0x4bc173+_0x53d33a(0xbe)+_0x17fae5};}catch{return null;}}
@@ -1 +1 @@
1
- (function(_0x24afce,_0x5b704d){var _0xd34a39=a357_0x2335,_0x23e9b6=_0x24afce();while(!![]){try{var _0x4c4967=-parseInt(_0xd34a39(0x154))/0x1+-parseInt(_0xd34a39(0x15d))/0x2*(parseInt(_0xd34a39(0x159))/0x3)+-parseInt(_0xd34a39(0x15e))/0x4+-parseInt(_0xd34a39(0x15a))/0x5+parseInt(_0xd34a39(0x157))/0x6*(parseInt(_0xd34a39(0x15c))/0x7)+-parseInt(_0xd34a39(0x156))/0x8*(parseInt(_0xd34a39(0x155))/0x9)+parseInt(_0xd34a39(0x158))/0xa*(parseInt(_0xd34a39(0x15b))/0xb);if(_0x4c4967===_0x5b704d)break;else _0x23e9b6['push'](_0x23e9b6['shift']());}catch(_0x47c357){_0x23e9b6['push'](_0x23e9b6['shift']());}}}(a357_0x1b3e,0xe455d));function a357_0x1b3e(){var _0x8f1dd5=['2KOgdkU','6228292GhoNtX','359008mYIuyz','284652LOkjom','8cZgvFD','6TZcVEs','581540IoCHLz','3364914nLNUBU','8547645McrDau','836uYAxht','9061031wmERQK'];a357_0x1b3e=function(){return _0x8f1dd5;};return a357_0x1b3e();}function a357_0x2335(_0x539fa9,_0x105032){_0x539fa9=_0x539fa9-0x154;var _0x1b3e7a=a357_0x1b3e();var _0x2335a6=_0x1b3e7a[_0x539fa9];return _0x2335a6;}import{VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}
1
+ (function(_0x4c0d96,_0x35e787){var _0x306d77=a357_0x1a23,_0x1b2f3f=_0x4c0d96();while(!![]){try{var _0x5ad25f=-parseInt(_0x306d77(0x8d))/0x1+-parseInt(_0x306d77(0x89))/0x2*(-parseInt(_0x306d77(0x8f))/0x3)+-parseInt(_0x306d77(0x8c))/0x4*(parseInt(_0x306d77(0x88))/0x5)+-parseInt(_0x306d77(0x8e))/0x6+parseInt(_0x306d77(0x8b))/0x7+parseInt(_0x306d77(0x87))/0x8+parseInt(_0x306d77(0x8a))/0x9;if(_0x5ad25f===_0x35e787)break;else _0x1b2f3f['push'](_0x1b2f3f['shift']());}catch(_0x5d46d4){_0x1b2f3f['push'](_0x1b2f3f['shift']());}}}(a357_0x5102,0xa6c89));import{VERSION}from'../generated/build-info.js';function a357_0x1a23(_0x278f01,_0x2f4c5b){_0x278f01=_0x278f01-0x87;var _0x510298=a357_0x5102();var _0x1a23ce=_0x510298[_0x278f01];return _0x1a23ce;}export function getCliVersion(){return VERSION;}function a357_0x5102(){var _0x1a9b46=['2015608ugWRcu','675CrUpJk','2qlgsqy','23603229ZMPtBb','2820055ytqNqD','32444qgEsZo','1354776bselQU','7221114ksYNVE','3177084OUvLdC'];a357_0x5102=function(){return _0x1a9b46;};return a357_0x5102();}
@@ -1 +1 @@
1
- (function(_0x517501,_0x1dae79){var _0x589233=a358_0x4c82,_0x74162=_0x517501();while(!![]){try{var _0xb2f878=parseInt(_0x589233(0x160))/0x1+parseInt(_0x589233(0x167))/0x2*(-parseInt(_0x589233(0x165))/0x3)+-parseInt(_0x589233(0x162))/0x4*(parseInt(_0x589233(0x15f))/0x5)+-parseInt(_0x589233(0x163))/0x6+parseInt(_0x589233(0x161))/0x7*(-parseInt(_0x589233(0x166))/0x8)+parseInt(_0x589233(0x164))/0x9+parseInt(_0x589233(0x15e))/0xa;if(_0xb2f878===_0x1dae79)break;else _0x74162['push'](_0x74162['shift']());}catch(_0x3d77cb){_0x74162['push'](_0x74162['shift']());}}}(a358_0x1d85,0xc5642));import{setActiveCookie,clearActiveCookie}from'../core/api-client.js';export async function withActiveCookie(_0x12d47c,_0x5361b6){setActiveCookie(_0x12d47c);try{return await _0x5361b6();}finally{clearActiveCookie();}}function a358_0x4c82(_0x4444c7,_0xf13763){_0x4444c7=_0x4444c7-0x15e;var _0x1d850d=a358_0x1d85();var _0x4c82dc=_0x1d850d[_0x4444c7];return _0x4c82dc;}function a358_0x1d85(){var _0x140ca4=['7920204lOgqQI','4325526NxtLUw','3kxFJfB','8bkbHdL','2195394YkEegk','24326870IEepZx','165455dnWays','1490741Lygzke','1063832sfnDCz','124NjiWTd'];a358_0x1d85=function(){return _0x140ca4;};return a358_0x1d85();}
1
+ (function(_0x39f776,_0x18057a){var _0xcd8980=a358_0x338d,_0x27b5a9=_0x39f776();while(!![]){try{var _0x3d1b43=-parseInt(_0xcd8980(0x141))/0x1+parseInt(_0xcd8980(0x144))/0x2+parseInt(_0xcd8980(0x13e))/0x3*(parseInt(_0xcd8980(0x143))/0x4)+parseInt(_0xcd8980(0x142))/0x5*(-parseInt(_0xcd8980(0x13c))/0x6)+parseInt(_0xcd8980(0x145))/0x7+-parseInt(_0xcd8980(0x140))/0x8*(-parseInt(_0xcd8980(0x13d))/0x9)+-parseInt(_0xcd8980(0x13f))/0xa;if(_0x3d1b43===_0x18057a)break;else _0x27b5a9['push'](_0x27b5a9['shift']());}catch(_0x25ab4a){_0x27b5a9['push'](_0x27b5a9['shift']());}}}(a358_0x5a90,0x926cf));import{setActiveCookie,clearActiveCookie}from'../core/api-client.js';function a358_0x338d(_0x1753ed,_0x85988){_0x1753ed=_0x1753ed-0x13c;var _0x5a907b=a358_0x5a90();var _0x338d1a=_0x5a907b[_0x1753ed];return _0x338d1a;}function a358_0x5a90(){var _0x235f5b=['847994AVDDRw','2636130zYqyTS','102bAHWKo','10377ofqqNJ','327723ooyhlo','1530390oKIOjG','904sfVSAs','843026UTVgHD','29335QRzuZY','28BQOGhE'];a358_0x5a90=function(){return _0x235f5b;};return a358_0x5a90();}export async function withActiveCookie(_0x334af0,_0xd72b8e){setActiveCookie(_0x334af0);try{return await _0xd72b8e();}finally{clearActiveCookie();}}
@@ -1 +1 @@
1
- function a359_0x2ab7(_0x36983a,_0x4cd571){_0x36983a=_0x36983a-0x6b;var _0x573b36=a359_0x573b();var _0x2ab7bb=_0x573b36[_0x36983a];return _0x2ab7bb;}(function(_0x52bfe2,_0x51acfc){var _0x4d2a0f=a359_0x2ab7,_0x57851f=_0x52bfe2();while(!![]){try{var _0x5a4173=parseInt(_0x4d2a0f(0x76))/0x1*(parseInt(_0x4d2a0f(0x70))/0x2)+parseInt(_0x4d2a0f(0x75))/0x3+parseInt(_0x4d2a0f(0x78))/0x4*(-parseInt(_0x4d2a0f(0x74))/0x5)+parseInt(_0x4d2a0f(0x6b))/0x6*(-parseInt(_0x4d2a0f(0x73))/0x7)+-parseInt(_0x4d2a0f(0x77))/0x8*(-parseInt(_0x4d2a0f(0x71))/0x9)+parseInt(_0x4d2a0f(0x6d))/0xa*(-parseInt(_0x4d2a0f(0x72))/0xb)+parseInt(_0x4d2a0f(0x6e))/0xc;if(_0x5a4173===_0x51acfc)break;else _0x57851f['push'](_0x57851f['shift']());}catch(_0x5c93ea){_0x57851f['push'](_0x57851f['shift']());}}}(a359_0x573b,0xaccea));export function writeCliSideChannelLine(_0x32eb98){var _0xd7faec=a359_0x2ab7;process[_0xd7faec(0x6c)][_0xd7faec(0x6f)](_0x32eb98+'\x0a');}function a359_0x573b(){var _0x26b319=['19640lDeENv','3719280GlgWZZ','write','845440FdqaDw','9TTLJkJ','242dTUCft','402675uJjZTh','5nNAaiN','3851577BANnpY','1upFmSn','3904104JCTHnU','1721724tRsAhp','138eyWoVn','stderr'];a359_0x573b=function(){return _0x26b319;};return a359_0x573b();}
1
+ (function(_0x4c4f72,_0x5e6653){var _0x448708=a359_0x35f8,_0x319515=_0x4c4f72();while(!![]){try{var _0x3c753c=-parseInt(_0x448708(0xf7))/0x1*(-parseInt(_0x448708(0xfc))/0x2)+parseInt(_0x448708(0xf9))/0x3+-parseInt(_0x448708(0x100))/0x4*(-parseInt(_0x448708(0xfb))/0x5)+-parseInt(_0x448708(0xf6))/0x6+parseInt(_0x448708(0xfd))/0x7*(-parseInt(_0x448708(0xfa))/0x8)+-parseInt(_0x448708(0xff))/0x9+parseInt(_0x448708(0x101))/0xa*(parseInt(_0x448708(0xf8))/0xb);if(_0x3c753c===_0x5e6653)break;else _0x319515['push'](_0x319515['shift']());}catch(_0xfed91){_0x319515['push'](_0x319515['shift']());}}}(a359_0x24df,0x69d17));function a359_0x24df(){var _0x1138ff=['1890537ZOmuHb','388672blVFHM','1657185JFjGGm','1122866jLckBT','98wSlNYi','stderr','4358475Ppnpbg','4HOLwEG','10WNmxhg','2136168mpjipU','1DUPKtC','4739471aAceTT'];a359_0x24df=function(){return _0x1138ff;};return a359_0x24df();}function a359_0x35f8(_0x17affc,_0x4bdc5b){_0x17affc=_0x17affc-0xf6;var _0x24df3c=a359_0x24df();var _0x35f8de=_0x24df3c[_0x17affc];return _0x35f8de;}export function writeCliSideChannelLine(_0x4575e5){var _0x38eae9=a359_0x35f8;process[_0x38eae9(0xfe)]['write'](_0x4575e5+'\x0a');}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/rabetbase-cli",
3
- "version": "2.5.5-beta.1",
3
+ "version": "2.5.5-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": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rabetbase
3
- version: 2.5.5-beta.1
3
+ version: 2.5.5-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, host frontend integration, frontend subapp resources, SQL, Backend Functions, approval flows and workflows, 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, host frontend integration, subapp resource versions, SQL, BFF, creating or designing an approval flow, workflow, business process, or multi-step approval, 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:
@@ -85,7 +85,7 @@ Agent 负责把已授权的目标推进到可验证的结果:主动获取事
85
85
  - `bff pull` / `bff push` 返回 `data.conflicts` 时,逐项报告 `lockKey` 和 `code`,并只在审阅后执行该项 `nextAction`;不得把同步冲突说成失败、自动使用 `--force`,或盲目重试整批脚本
86
86
  - 创建会发送消息通知的 Backend Function 时,先读取 [`backend-function.md`](guides/backend-function.md) 的“消息通知扩展”契约,再执行 [`rabetbase notification config-list --type EMAIL`](references/rabetbase-notification-config-list.md) 获取当前应用的 `configCode`;不得猜测渠道、收件人或把密钥写进脚本
87
87
  - 推送成功只证明平台保存;需要确认运行效果时,按 [BFF 运行验证](guides/bff-creation-workflow.md#9-运行态-smoke按需)执行,不把保存成功当作运行验证通过
88
- - 已确认独立部署并需验证、出现平台到业务环境的同步疑点或明确需要独立部署同步功能时,读取[独立部署指南](guides/independent-deployment.md);正常开发和 push 不查询或展示 `vipDeploy`
88
+ - 已确认独立部署并需验证或厘清业务环境与平台连接的对应关系、出现平台到业务环境的同步疑点或明确需要独立部署同步功能时,读取[独立部署指南](guides/independent-deployment.md)
89
89
  5. **页面体系选择**
90
90
  - 数据列表页(Data List Page)是数据集驱动的结构化页面组,用于数据查看、维护和模型验证,不等同于最终业务工作台
91
91
  - 自定义页面(Custom Page)是完整代码文件驱动的平台页面,用于工作台、看板、门户和复杂业务交互;当前 React JSX 只是渲染实现,不是页面产品类型
@@ -365,7 +365,7 @@ const result = await client.bff.execute<DashboardData>({
365
365
  | 设计、校验和发布表单审批流或独立工作流 | [`rabetbase flow validate/list/detail/create/update/publish`](references/rabetbase-flow-commands.md) | 先确定 `flowType`;本地 validate 后再 create/update 和 publish |
366
366
  | 查询审批流运行态人员和角色 | [`rabetbase flow runtime-user-search/runtime-role-list/runtime-role-user-list`](references/rabetbase-flow-resources.md) | 只读,结果标记 `scope: runtime`;用于填写 FlowConfig 的 userId/roleId |
367
367
  | 查看线上菜单事实 / 菜单异常审计 | [`rabetbase menu list`](references/rabetbase-menu-list.md) | 返回 DFS 事实、children/page、URL、最近更新人/时间和 snapshotHash;异常治理先读 [`menu-anomaly-manual-cleanup`](guides/menu-anomaly-manual-cleanup.md) |
368
- | 批量显示或隐藏菜单 | [`rabetbase menu visibility-update`](references/rabetbase-menu-visibility-update.md) | 用精确 ID/path 选择目标;先 dry-run,使用 `--expect-visible` / `--expected-count` 防漂移,正式执行必须 `--yes` |
368
+ | 批量显示或隐藏菜单 | [`rabetbase menu visibility-update`](references/rabetbase-menu-visibility-update.md) | `write`;用精确 ID/path 选择目标;先 dry-run,使用 `--expect-visible` / `--expected-count` 防漂移 |
369
369
  | 创建外部网站链接菜单 | [`rabetbase menu external-link-create`](references/rabetbase-menu-external-link-create.md) | `write`;显式选择 `embedded` 或 `new-window`,仅接受 HTTPS;建议先 dry-run,正式执行不要求 `--yes` |
370
370
  | 原地更新既有外链 URL | [`rabetbase menu external-link-update`](references/rabetbase-menu-external-link-update.md) | `write`;精确单 ID、URL-only;必须带旧 URL 与父级断言,先 dry-run,再复用参数正式执行 |
371
371
  | 修改任意类型菜单名称 | [`rabetbase menu rename`](references/rabetbase-menu-rename.md) | 精确单 ID、label-only;使用 `--expect-label` 防漂移,先 dry-run 并检查 before/after |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 何时读取
4
4
 
5
- 仅在已确认独立部署并需要运行验证、出现平台到业务环境的同步疑点,或明确需要独立部署同步功能时读取。非独立部署应用只在 Lovrabet 平台内开发与验证,沿用普通工作流,不引入独立业务库或日常到线上的流程。
5
+ 仅在已确认独立部署并需要运行验证或厘清业务环境与平台连接的对应关系、出现平台到业务环境的同步疑点,或明确需要独立部署同步功能时读取。非独立部署应用只在 Lovrabet 平台内开发与验证,沿用普通工作流,不引入独立业务库或日常到线上的流程。
6
6
 
7
7
  正常开发、绑定项目和正常 push 不查询或展示 `vipDeploy`。出现异常时,先确认平台是否保存、实际验证目标及失败步骤;已有证据定位其他原因时,不追加能力查询。
8
8
 
@@ -22,6 +22,16 @@
22
22
 
23
23
  从项目已确认的部署约定获取同步目标和后续发布步骤。若项目明确“平台只连接业务日常,日常验证通过后按既有发布流程同步业务线上”,push 后先验证日常,线上单独核对发布。其他项目按各自约定处理,不猜环境数量、域名用途或发布顺序。已知事实一致时直接继续;信息缺失或冲突时先补齐,不切换另一环境试验,不复制两侧凭据或改写配置来消除错误。
24
24
 
25
+ ### 理解用户说的“测试环境”与“线上环境”
26
+
27
+ 企业应用的测试、日常与线上目标按项目部署约定确定;`.rabetbase.json` 的平台 `env` 定义见[配置参考](../references/rabetbase-config.md#顶层字段)。用户说“推测试环境”“更新日常”或“上线”时,沿用已确认的平台连接并核对业务目标,不据此改动平台 `env`。
28
+
29
+ - 项目对应关系已明确时,沿用当前正确的平台连接,按用户的业务目标执行和验证;不再让用户选择平台 `production` 还是 `daily`。只有用户明确要求切换 Lovrabet 平台环境,或已核实当前连接配置有误时,才按对应目标调整。
30
+ - 关系缺失或冲突时,只确认缺失的业务访问地址、目标应用或项目部署约定;不通过切换平台环境试错,也不要求用户先理解两套登录体系。`vipDeploy` 不能回答这些对应关系,无需为此重复查询。
31
+ - 业务线上发布遵循该项目已确认的发布流程;不能通过将 `env` 改为 `production` 代替发布,也不能将某个项目的导库流程套用到所有独立部署应用。
32
+
33
+ 例如,项目已确认使用 Lovrabet 平台 `production`,且平台只同步到业务日常库时,用户要求“推测试环境”,可说明:“本次更新业务日常环境,沿用当前 Lovrabet 平台连接。推送后验证平台到业务日常的同步与运行结果;业务线上仍按既有发布流程处理。”这说明执行目标,不代表同步或运行验证已成功。
34
+
25
35
  ## 按实际环节定位
26
36
 
27
37
  | 已确认的事实 | 下一步 |
@@ -2,7 +2,9 @@
2
2
 
3
3
  项目级配置文件,放在项目根目录。CLI 启动时自动读取,全局配置(`~/.rabetbase.json`)作为 fallback。
4
4
 
5
- 这份文件描述的是**本地配置模型**:默认应用、应用名到 `appcode`/`env`/`apiDir` 的映射,以及输出格式、风险等级、认证信息等本地偏好。
5
+ 这份文件描述的是**本地配置模型**:默认应用、应用名到 `appcode`/`apiDir` 的映射,以及输出格式、风险等级、认证信息等本地偏好。
6
+
7
+ 独立部署应用需要确认业务环境与平台连接的对应关系时,读取[独立部署指南](../guides/independent-deployment.md#理解用户说的测试环境与线上环境)。
6
8
 
7
9
  它**不是**平台应用目录。若要查看当前登录账号在平台上能访问哪些应用,应使用 `rabetbase app list --remote`,而不是直接查看 `.rabetbase.json`。
8
10
 
@@ -24,8 +26,7 @@ rabetbase workspace init --appcode <code>
24
26
  {
25
27
  "apps": {
26
28
  "main": {
27
- "appcode": "app-xxxxxxxx",
28
- "env": "daily"
29
+ "appcode": "app-xxxxxxxx"
29
30
  }
30
31
  }
31
32
  }
@@ -33,16 +34,15 @@ rabetbase workspace init --appcode <code>
33
34
 
34
35
  CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模型。
35
36
 
36
- CLI 新写入或重写配置时不会持久化默认内部路由字段;历史文件仍保持读取兼容。若顶层存在非默认值,而某个应用显式回到默认值,写入时会把非默认值下沉到实际继承它的应用,再省略默认标记,确保配置精简且生效语义不变。
37
+ CLI 新写入或重写配置时会省略平台环境等默认路由值;显式非默认值仍可配置并生效。若顶层存在非默认值,而某个应用显式回到默认值,写入时会把非默认值下沉到实际继承它的应用,再省略默认标记,确保配置精简且生效语义不变。
37
38
 
38
39
  ## 兼容读取的单应用模式
39
40
 
40
- 兼容读取的最简配置只需 `appcode` 和 `env`:
41
+ 兼容读取的最简配置只需顶层 `appcode`:
41
42
 
42
43
  ```json
43
44
  {
44
- "appcode": "app-xxxxxxxx",
45
- "env": "daily"
45
+ "appcode": "app-xxxxxxxx"
46
46
  }
47
47
  ```
48
48
 
@@ -90,7 +90,6 @@ CLI 新写入或重写配置时不会持久化默认内部路由字段;历史
90
90
  "apps": {
91
91
  "order": {
92
92
  "appcode": "app-yyyyyyyy",
93
- "env": "daily",
94
93
  "riskLevel": "write"
95
94
  },
96
95
  "product": {
@@ -107,7 +106,7 @@ CLI 新写入或重写配置时不会持久化默认内部路由字段;历史
107
106
  管理命令(声明式 flags,非位置参数):
108
107
 
109
108
  ```bash
110
- rabetbase workspace add order --appcode app-order-001 --env daily
109
+ rabetbase workspace add order --appcode app-order-001
111
110
  rabetbase workspace add product --appcode app-product-002 --region id
112
111
  rabetbase workspace use --app order
113
112
  rabetbase app list
@@ -121,7 +120,7 @@ rabetbase workspace remove product --yes
121
120
  | 字段 | 类型 | 默认值 | 说明 |
122
121
  |------|------|--------|------|
123
122
  | `appcode` | string | — | 顶层单应用兼容字段。新写入优先使用 `apps`。兼容旧名 `app` |
124
- | `env` | string | — | 历史兼容字段;默认连接不落盘,读取旧配置时仍兼容 |
123
+ | `env` | string | `"production"`(省略) | Lovrabet 平台自身产品研发迭代的环境:`daily` 为平台日常测试,`production` 为平台线上 |
125
124
  | `locale` | string | `"en-US"` | 应用本地化设置(不是 CLI 语言;目前命令尚未消费) |
126
125
  | `cookie` | string | — | 内联 session cookie。设置后优先于 `~/.lovrabet/cookie` 文件 |
127
126
  | `accessKey` | string | — | Access Key 认证(预留,未来替代 cookie) |
@@ -151,7 +150,7 @@ rabetbase workspace remove product --yes
151
150
  | `apiGroup` | string | 可选显式归并键。同一套业务 API 的多个部署使用相同值并共用一个 `apiDir`;普通单应用不配置 |
152
151
  | `region` | string | 覆盖顶层国家/地区;当前可写 `cn`、`id`、`global`。显式 `cn` 会保留,以便覆盖顶层 `id` |
153
152
  | `kbServiceDomain` | string | 当前应用的 KB Service HTTPS origin,覆盖顶层同名字段;已导入的企业 `routing` 清单仍优先作为完整路由来源 |
154
- | `env` | string | 历史兼容字段;默认连接不落盘 |
153
+ | `env` | string | 覆盖顶层 Lovrabet 平台研发迭代环境,含义同顶层 `env`;默认值省略 |
155
154
  | `apiDir` | string | 覆盖顶层 `apiDir` |
156
155
  | `cookie` | string | 覆盖顶层 `cookie` |
157
156
  | `accessKey` | string | 覆盖顶层 `accessKey` |
@@ -185,7 +184,7 @@ CLI flag (--appcode, --format, --app ...)
185
184
  | 环境变量 | 对应配置项 | 说明 |
186
185
  |----------|-----------|------|
187
186
  | `RABETBASE_APPCODE` | — | 仅作为 shell 变量供脚本显式传给 `--appcode`;业务命令检测到冲突时会拒绝执行 |
188
- | `RABETBASE_ENV` | `env` | 无项目 env 时的环境 fallback |
187
+ | `RABETBASE_ENV` | `env` | Lovrabet 平台自身研发迭代环境;无项目 env 时的 fallback |
189
188
  | `RABETBASE_COOKIE` | `cookie` | Session cookie |
190
189
  | `RABETBASE_ACCESS_KEY` | `accessKey` | Access Key |
191
190
  | `RABETBASE_FORMAT` | `format` | 输出格式 |
@@ -221,17 +220,17 @@ CLI flag (--appcode, --format, --app ...)
221
220
 
222
221
  ```bash
223
222
  export RABETBASE_APPCODE=app-xxx
224
- export RABETBASE_ENV=daily
225
223
  rabetbase dataset list --appcode "$RABETBASE_APPCODE"
226
224
  ```
227
225
 
228
- ### 开发环境单应用
226
+ ### Lovrabet 平台自身研发测试示例
227
+
228
+ 连接 Lovrabet 平台日常测试环境 `daily`:
229
229
 
230
230
  ```json
231
231
  {
232
232
  "appcode": "app-xxxxxxxx",
233
- "env": "daily",
234
- "riskLevel": "high-risk-write"
233
+ "env": "daily"
235
234
  }
236
235
  ```
237
236
 
@@ -243,8 +242,7 @@ rabetbase dataset list --appcode "$RABETBASE_APPCODE"
243
242
  "defaultApp": "order",
244
243
  "apps": {
245
244
  "order": {
246
- "appcode": "app-order-001",
247
- "env": "daily"
245
+ "appcode": "app-order-001"
248
246
  },
249
247
  "product": {
250
248
  "appcode": "app-product-002",
@@ -268,7 +266,6 @@ rabetbase dataset list --app product
268
266
  ```bash
269
267
  # 写入项目级配置(默认;须在能解析到项目 .rabetbase.json 的目录下执行)
270
268
  rabetbase config set --key apiDomain --value https://custom-api.example.com
271
- rabetbase config set --key env --value daily
272
269
 
273
270
  # 写入全局配置(任意目录)
274
271
  rabetbase config set --key apiDomain --value https://custom-api.example.com --global
@@ -2,12 +2,14 @@
2
2
 
3
3
  按精确菜单 ID 或 path 批量显示、隐藏线上菜单。该命令只更新 `visible`,不删除页面,也不修改 path、URL、父级、排序或资源。
4
4
 
5
+ 风险等级:`write`。
6
+
5
7
  ## 隐藏菜单
6
8
 
7
9
  ```bash
8
10
  rabetbase menu list --format compress
9
11
  rabetbase menu visibility-update --menu-ids "10,11" --visible=false --expect-visible=true --expected-count 2 --dry-run --format compress
10
- rabetbase menu visibility-update --menu-ids "10,11" --visible=false --expect-visible=true --expected-count 2 --yes --format compress
12
+ rabetbase menu visibility-update --menu-ids "10,11" --visible=false --expect-visible=true --expected-count 2 --format compress
11
13
  rabetbase menu list --format json --jq '.data.menus[] | select(.id == 10 or .id == 11) | {id, path, visible}'
12
14
  ```
13
15
 
@@ -15,7 +17,7 @@ rabetbase menu list --format json --jq '.data.menus[] | select(.id == 10 or .id
15
17
 
16
18
  ```bash
17
19
  rabetbase menu visibility-update --menu-ids "10,11" --visible=true --expect-visible=false --expected-count 2 --dry-run --format compress
18
- rabetbase menu visibility-update --menu-ids "10,11" --visible=true --expect-visible=false --expected-count 2 --yes --format compress
20
+ rabetbase menu visibility-update --menu-ids "10,11" --visible=true --expect-visible=false --expected-count 2 --format compress
19
21
  ```
20
22
 
21
23
  ## Flags
@@ -28,7 +30,6 @@ rabetbase menu visibility-update --menu-ids "10,11" --visible=true --expect-visi
28
30
  | `--expect-visible <true\|false>` | boolean | 可选,断言所有目标当前可见性,防止覆盖并发变化 |
29
31
  | `--expected-count <n>` | number | 可选,断言去重后的精确目标数量 |
30
32
  | `--dry-run` | boolean | 输出目标、before/after、snapshotHash 和最小请求,不写入 |
31
- | `--yes` | boolean | 正式执行必填;该命令是 `high-risk-write` |
32
33
 
33
34
  `--menu-ids` 与 `--paths` 至少提供一个。任一 selector 未命中会整批失败,不会静默更新子集;ID 与 path 选中同一菜单时自动去重。
34
35
 
@@ -37,7 +38,7 @@ rabetbase menu visibility-update --menu-ids "10,11" --visible=true --expect-visi
37
38
  1. 先用 `menu list` 取得精确 ID、path 和当前 `visible`。
38
39
  2. dry-run 时同时传 `--expect-visible` 与 `--expected-count`。
39
40
  3. 检查 `targets[].before/after`,确认只有 `visible` 改变。
40
- 4. 复用相同 selector、目标值和断言,添加 `--yes` 正式执行。
41
+ 4. 复用相同 selector、目标值和断言,移除 `--dry-run` 正式执行。
41
42
  5. 检查 `succeeded/failed` 与 `verification.matchesRequestedState`,再用 `menu list` 回查。
42
43
 
43
44
  目标已经等于期望值时返回 `skipped=true`,不发送更新请求。批量请求出现部分失败时不会自动重试;先按 `succeeded/failed` 和 `menu list` 核对实际状态,再为仍未生效的精确 ID 重新 dry-run。
@@ -24,7 +24,7 @@ rabetbase workspace remove <name> [--global]
24
24
  | `--app <name>` | 工作空间里的应用名,如 `crm`、`order` |
25
25
  | `--appcode <code>` | 应用 App Code;不知道本地应用名时可直接使用 |
26
26
  | `--region <region>` | 写入该 app profile 的国家/地区:`cn` / `id` |
27
- | `--env <env>` | 历史兼容参数;默认内部路由值不会写入 app profile |
27
+ | `--env <env>` | 仅显式传入时写入 app profile;平台环境定义见[配置参考](rabetbase-config.md#顶层字段)中的 `env` |
28
28
  | `--apiDir <dir>` | 写入该 app profile 的 API 目录 |
29
29
  | `--defaultFormat <format>` | 写入该 app profile 的默认输出格式 |
30
30
  | `--pageSize <n>` | 写入该 app profile 的分页大小 |
@@ -33,6 +33,8 @@ rabetbase workspace remove <name> [--global]
33
33
 
34
34
  `add` / `remove` 用位置参数 `<name>` 指定应用名;`add` 必带 `--appcode <code>`,两者都支持 `--global`(写/删全局清单,全局视作一个大工作空间),其余 profile flags 与上表一致。
35
35
 
36
+ 独立部署应用需要确认业务环境与平台连接的对应关系时,读取[独立部署指南](../guides/independent-deployment.md#理解用户说的测试环境与线上环境)。
37
+
36
38
  ## 行为
37
39
 
38
40
  - `workspace init --appcode app-xxx`:用 appcode 作为应用名写入 `apps.app-xxx`;若它是唯一应用,不写 `defaultApp`。
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: rabetbase-page-generation
3
- version: 2.5.5-beta.1
4
- description: "为已有 Dataset 生成、验证和发布由 list、detail、create、update 四个 CustomJSX 页面组成的 ONEPAGE 页面包。"
3
+ version: 2.5.5-beta.3
4
+ description: "根据用户需求,为已有 Dataset 选择、生成、串联、验证和发布 CustomJSX 页面;提供列表、详情、新增、更新基础模板,并支持裁剪或扩展页面。"
5
5
  metadata:
6
6
  requires:
7
7
  bins: ["rabetbase"]
@@ -11,19 +11,23 @@ metadata:
11
11
 
12
12
  # ONEPAGE 页面生成
13
13
 
14
- 本 Skill 负责模板选择、真实 SDK 数据绑定和页面交互;复用现有 CLI 的页面目录校验、创建、更新、发布与查询命令。页面全部使用 CustomJSX,由 ONEPAGE 编排,不生成 Page Schema、`CRUD_PAGE_SET`、Dataset 或 Workflow,不替换既有 CLI 流程。
14
+ 本 Skill 负责按用户需求规划页面、选择模板、绑定真实 SDK 数据和实现页面交互;复用现有 CLI 的页面目录校验、创建、更新、发布与查询命令。页面全部使用 CustomJSX,由 ONEPAGE 编排,不生成 Page Schema、`CRUD_PAGE_SET`、Dataset 或 Workflow,不替换既有 CLI 流程。
15
15
 
16
- - 页面源码从 `templates/onepage` 复制到任务的页面工作目录,按 Dataset 元信息改写;构建得到四个完整独立目录。详情与更新是不同页面;新增和更新共享表单实现。
17
- - 智能搜索使用原 `LrSmartFilter` 组合组件的独立 JSX 实现;表格、详情和表单使用 AntD。组件与运行时边界见 [组件基线](references/component-baseline.md)。
16
+ - 列表、详情、新增、更新是基础能力,不是必建的四页套餐。按用户需要选择、裁剪或增加页面,同时调整入口、菜单、按钮和数据写入逻辑。
17
+ - 默认服务正式环境(prod)的当前应用,尊重用户指定的应用、环境和部署地址;daily 验证不是正式环境交付的前置条件。按用户任务完成创建、更新、验收和发布,不把这些步骤拆成逐项授权;需求不清楚时只做必要的简短确认。
18
+ - 页面源码从 `templates/onepage` 复制到任务的页面工作目录,按 Dataset 元信息及页面计划改写;基础构建脚本组装四个完整独立目录,只上传计划选中的页面,扩展页按相同目录契约组织。详情与更新是不同页面;新增和更新共享表单实现。上传目录保留可读 JSX 源码,由平台新的微应用模板在保存/发布时编译,不上传预编译 `page.js`。
19
+ - 智能搜索从 `@lovrabet/components` 包根入口使用 `LrSmartFilter`;不复制或重写组件源码。表格、详情和表单使用 AntD。组件与运行时边界见 [组件基线](references/component-baseline.md)。
18
20
  - 通过 `--page-dir` 交付页面,不使用旧单页 `--page-pattern ONEPAGE`。CLI 不选择模板、不生成业务数据,也不承担模板构建。
19
21
  - 复用现有页面创建行为及 `menu` 管理命令;默认创建并绑定菜单,菜单展示按用户要求管理。页面导航只使用服务端返回并核验的路径,禁止把占位符发布成正式入口。
20
- - 浏览器验证使用 Codex 内置浏览器;比较旧页面时使用同一 Dataset、同一记录和数据状态。新页面不能依赖旧 Workflow 或 Page Schema。
22
+ - 验收使用当前可用的浏览器能力,不依赖桌面客户端或外部浏览器配置。能力不可用时明确未验证范围;比较旧页面时使用同一 Dataset、同一记录和数据状态。新页面不能依赖旧 Workflow 或 Page Schema。
23
+ - 创建前识别新旧页面及菜单,已有本轮创建结果时优先续做。发布前核对草稿和正式版本,已发布且无新内容时跳过;发布失败按证据区分原因,不能仅凭 500 猜测。
24
+ - 面向非技术用户交付页面名称、用途、入口链接和必要操作。页面标识、命令、版本和验收回执留在 Agent 内部;没有可持久保存的位置时不要求用户提供目录,也不承诺记录永久保留。
21
25
 
22
- 执行时阅读 [生成与验收流程](references/generation.md),完成数据绑定、四页目录构建、页面创建与路径回填、浏览器验收及发布。Development Sandbox 消费此 Skill;Runtime Sandbox 不安装它。
26
+ 执行时阅读 [生成与验收流程](references/generation.md),完成页面规划、数据绑定、所选页面的创建与路径回填、验收及发布。
23
27
 
24
28
  ## 按页面读取模板
25
29
 
26
- 模板位于 `templates/onepage`。生成或修改哪一页,先阅读该页 README 及效果图,再读取源码;构建时整体复制模板,保留 `shared/`。
30
+ 模板位于 `templates/onepage`。生成或修改哪一页,先阅读该页 README 及效果图,再读取源码;基础构建时整体复制模板,保留 `shared/`;未选择的页面不上传,不为其创建平台页面或菜单。
27
31
 
28
32
  | 页面 | 说明与效果图 | 入口 |
29
33
  | --- | --- | --- |
@@ -32,4 +36,4 @@ metadata:
32
36
  | 新增 | [create/README.md](templates/onepage/create/README.md) | `create/index.jsx` |
33
37
  | 更新 | [update/README.md](templates/onepage/update/README.md) | `update/index.jsx` |
34
38
 
35
- `shared/model.js` 维护数据绑定、查询与格式化,`shared/record-layout.jsx` 维护字段分组,`shared/editor.jsx` 是新增/更新共用表单,`shared/responsive.jsx` 提供响应式控件,`shared/page.css` 保持四页样式一致。`build.mjs` 将这些源码打包成四个独立页面目录,页面输出不包含 README 或效果图。
39
+ `shared/model.js` 维护数据绑定、查询与格式化,`shared/record-layout.jsx` 维护字段分组,`shared/editor.jsx` 是新增/更新共用表单,`shared/responsive.jsx` 提供响应式控件,页面通过宿主 `useAppTheme()` context 读取主题,`shared/page.css` 保持四页样式一致。`build.mjs` 将这些源码组装成四个独立页面目录,页面输出不包含 README、效果图或预编译 bundle。
@@ -4,7 +4,7 @@
4
4
 
5
5
  | 页面能力 | 使用方式 |
6
6
  | --- | --- |
7
- | 智能搜索与结构化筛选 | 复用原 LrSmartFilter / 智能搜索组合的独立 JSX 实现。保留模式切换、类型化控件、加载状态、查询、重置和过期请求处理。 |
7
+ | 智能搜索与结构化筛选 | 从 `@lovrabet/components` 包根入口导入 `LrSmartFilter`。保留模式切换、类型化控件、加载状态、查询、重置和过期请求处理;不在页面目录复制或重写组件。 |
8
8
  | 表格、工具栏、勾选、分页、列设置 | 使用 AntD,按旧页面还原密度、位置和操作反馈;分页使用服务端总数。 |
9
9
  | 详情、新增、更新 | 使用 AntD Form 和普通 React 分组布局;保留字段顺序、说明、必填、枚举标签、只读值、校验、重置及提交反馈。 |
10
10
  | 移动端 | 列表使用卡片,表单使用合适的日期控件和可点击按钮;ONEPAGE 手机容器由宿主提供,不能只通过缩小子页修复宿主分栏。 |
@@ -13,6 +13,6 @@
13
13
 
14
14
  组件真源:[原组件仓](https://codeup.aliyun.com/yuntoo/fe/materials)、[公共 JSX 组件仓](https://codeup.aliyun.com/yuntoo/open/lovrabet-components)。读取实际组件版本的 JSX 导出、props 和 CSS;源码中有组件不代表已发布 npm 包或宿主已提供它。
15
15
 
16
- 模板中的 `@lovrabet/components/smart-filter` 是页面打包别名。构建时显式传入已核验的组件 JSX 入口和 CSS:可以来自组件包,也可以来自指定版本的组件源码。模板会把它们打入页面,不要求修改宿主入口、依赖锁文件或 sub-app-vite-demo。React、AntD、图标、dayjs 和 `@/context/app-context` 由当前 CustomJSX 宿主提供;先验证实际运行环境。
16
+ 组件包已提供可被宿主解析的 `LrSmartFilter` 根导出,页面统一使用 `import { LrSmartFilter } from "@lovrabet/components"`;组件包自身负责样式注入,不需要传入或复制独立 CSS。模板不再改写为本地筛选器或复制组件源码。`build.mjs` 只复制四页和 shared 页面源码,不把组件或页面预编译成 bundle;保存/发布由页面宿主的微应用构建模板编译。若宿主仍无法解析该导出,停止页面发布并通知用户需要由 `app-platform` 更新组件依赖或构建模板;本 Skill 不修改 `app-platform`。React、AntD、图标、dayjs 和 `@/context/app-context` 由当前 CustomJSX 宿主提供;主题沿用宿主 `useAppTheme()` context,不在页面目录直接读取底层 store。该流程不要求修改宿主入口、依赖锁文件或 sub-app-vite-demo。
17
17
 
18
18
  SDK/context 契约见 [CustomJSX 生成标准](../../rabetbase/knowledge/custom-page/generation-standards.md)。保持主题、语言和请求地址跟随宿主;禁止在模板里写入 Cookie、AccessKey 或生产地址兜底。