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

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 (393) 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.d.ts +5 -3
  271. package/lib/constant/cdn.js +1 -1
  272. package/lib/constant/cli.js +1 -1
  273. package/lib/constant/defaults.js +1 -1
  274. package/lib/constant/domain.js +1 -1
  275. package/lib/constant/env.js +1 -1
  276. package/lib/constant/output.js +1 -1
  277. package/lib/constant/paths.js +1 -1
  278. package/lib/constant/region.js +1 -1
  279. package/lib/constant/risk.js +1 -1
  280. package/lib/constant/routing-profile.js +1 -1
  281. package/lib/context/app-resolver.d.ts +2 -0
  282. package/lib/context/app-resolver.js +1 -1
  283. package/lib/context/auth-resolver.js +1 -1
  284. package/lib/context/config-loader.js +1 -1
  285. package/lib/context.d.ts +2 -1
  286. package/lib/context.js +1 -1
  287. package/lib/core/alias-resolver.d.ts +13 -17
  288. package/lib/core/alias-resolver.js +1 -1
  289. package/lib/core/api-client.d.ts +6 -0
  290. package/lib/core/api-client.js +1 -1
  291. package/lib/core/bff/config.js +1 -1
  292. package/lib/core/bff/file-system.js +1 -1
  293. package/lib/core/bff/hash.js +1 -1
  294. package/lib/core/bff/hook-directory.js +1 -1
  295. package/lib/core/bff/lock.js +1 -1
  296. package/lib/core/bff/utils.js +1 -1
  297. package/lib/core/cross-db-relation.d.ts +41 -0
  298. package/lib/core/cross-db-relation.js +1 -0
  299. package/lib/core/db-resolver.js +1 -1
  300. package/lib/core/flow-config.js +1 -1
  301. package/lib/core/instant-api-policy/config.js +1 -1
  302. package/lib/core/kb-search-client.js +1 -1
  303. package/lib/core/page/file-system.js +1 -1
  304. package/lib/core/page/hash.js +1 -1
  305. package/lib/core/page/lock.js +1 -1
  306. package/lib/core/page/lr-smart-jsx.js +1 -1
  307. package/lib/core/sql-index-auditor.js +1 -1
  308. package/lib/core/sql-sync/config.js +1 -1
  309. package/lib/core/sql-sync/file-system.js +1 -1
  310. package/lib/core/sql-sync/hash.js +1 -1
  311. package/lib/core/sql-sync/lock.js +1 -1
  312. package/lib/core/sql-sync/utils.js +1 -1
  313. package/lib/core/sql-validator.js +1 -1
  314. package/lib/errors.js +1 -1
  315. package/lib/framework/build-all-flags.js +1 -1
  316. package/lib/framework/error-output.js +1 -1
  317. package/lib/framework/explicit-yes.js +1 -1
  318. package/lib/framework/flags.js +1 -1
  319. package/lib/framework/help.js +1 -1
  320. package/lib/framework/index.js +1 -1
  321. package/lib/framework/output.js +1 -1
  322. package/lib/framework/response.js +1 -1
  323. package/lib/framework/runner-alias.d.ts +1 -1
  324. package/lib/framework/runner-alias.js +1 -1
  325. package/lib/framework/runner.js +1 -1
  326. package/lib/framework/schema-export.js +1 -1
  327. package/lib/framework/supported-flags.js +1 -1
  328. package/lib/framework/types.js +1 -1
  329. package/lib/generated/build-info.d.ts +4 -4
  330. package/lib/generated/build-info.js +1 -1
  331. package/lib/generated/official-routing.js +1 -1
  332. package/lib/generated/routing-contract.js +1 -1
  333. package/lib/help.js +1 -1
  334. package/lib/postinstall.js +1 -1
  335. package/lib/runtime/confirmation.js +1 -1
  336. package/lib/runtime/event.js +1 -1
  337. package/lib/runtime/index.js +1 -1
  338. package/lib/runtime/queue.js +1 -1
  339. package/lib/runtime/resolve.js +1 -1
  340. package/lib/skills/builtin-skill.js +1 -1
  341. package/lib/skills/main.js +1 -1
  342. package/lib/skills/npx-skills-add.d.ts +0 -10
  343. package/lib/skills/npx-skills-add.js +1 -1
  344. package/lib/skills/skill-presence.js +1 -1
  345. package/lib/telemetry/cli-command-trace.js +1 -1
  346. package/lib/telemetry/cli-help-trace.js +1 -1
  347. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  348. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  349. package/lib/telemetry/send-cli-trace-log.js +1 -1
  350. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  351. package/lib/types/index.d.ts +11 -1
  352. package/lib/utils/ai_config.js +1 -1
  353. package/lib/utils/apply-jq-filter.js +1 -1
  354. package/lib/utils/cdn-config.js +1 -1
  355. package/lib/utils/check-sdk-version.js +1 -1
  356. package/lib/utils/cli-version-check.js +1 -1
  357. package/lib/utils/cli-version-policy.d.ts +19 -0
  358. package/lib/utils/cli-version-policy.js +1 -1
  359. package/lib/utils/config.js +1 -1
  360. package/lib/utils/entity-with-id.js +1 -1
  361. package/lib/utils/file-utils.js +1 -1
  362. package/lib/utils/guides-cdn.js +1 -1
  363. package/lib/utils/http-client.js +1 -1
  364. package/lib/utils/is-non-interactive.js +1 -1
  365. package/lib/utils/logger.js +1 -1
  366. package/lib/utils/params.js +1 -1
  367. package/lib/utils/platform.js +1 -1
  368. package/lib/utils/sleep.js +1 -1
  369. package/lib/utils/template-replacer.js +1 -1
  370. package/lib/utils/update-notice.js +1 -1
  371. package/lib/utils/version.js +1 -1
  372. package/lib/utils/with-active-cookie.js +1 -1
  373. package/lib/utils/write-cli-side-channel.js +1 -1
  374. package/package.json +6 -1
  375. package/skills/rabetbase/SKILL.md +16 -10
  376. package/skills/rabetbase/guides/backend-function.md +5 -1
  377. package/skills/rabetbase/guides/bff-creation-workflow.md +3 -1
  378. package/skills/rabetbase/guides/cross-database-bff.md +70 -0
  379. package/skills/rabetbase/guides/data-api-guidelines.md +35 -33
  380. package/skills/rabetbase/guides/sdk-client-generation.md +112 -61
  381. package/skills/rabetbase/guides/sql-creation-workflow.md +2 -0
  382. package/skills/rabetbase/guides/typescript-sdk.md +9 -0
  383. package/skills/rabetbase/references/rabetbase-api-pull.md +30 -19
  384. package/skills/rabetbase/references/rabetbase-app-list.md +1 -1
  385. package/skills/rabetbase/references/rabetbase-config.md +2 -1
  386. package/skills/rabetbase/references/rabetbase-dataset-cross-relations.md +64 -0
  387. package/skills/rabetbase/references/rabetbase-project-create.md +3 -3
  388. package/skills/rabetbase/references/rabetbase-project-upgrade.md +24 -13
  389. package/skills/rabetbase.manifest.json +5 -3
  390. package/templates/README.md +46 -6
  391. package/templates/generate-api/model-runtime.ts.tpl +101 -0
  392. package/templates/generate-api/profile-api.ts.tpl +21 -0
  393. package/templates/generate-api/profile-client.ts.tpl +14 -0
@@ -49,15 +49,55 @@ node lib/cli.js project create template-verify --template-source templates/proje
49
49
  使用尚未发布的 CLI 时,先执行 `npm run build:dev`;
50
50
  使用已安装版本时,可把第二条命令换成 `rabetbase project create ...`。
51
51
 
52
- 模板同步完成后,更新模板自身的 `package.json#version`,再生成待发布的 CDN 资产:
52
+ 模板源码确认后,可在开发阶段为单个通道生成快照;正式发布由 release 事务使用
53
+ `deploy:verify` 已解析的精确版本自动生成,不要求开发者提前修改 `package.json#version`。
53
54
 
54
55
  ```bash
55
- npm run sync:cdn
56
+ # 开发阶段:更新顶层 projectTemplate 与正式本地快照
57
+ npm run sync:cdn -- --version <stable-version>
58
+
59
+ # 开发阶段:只更新 beta.projectTemplate 与 beta 本地快照
60
+ npm run sync:cdn:beta -- --version <beta-version>
61
+
62
+ # 上传前组装:校验仓内两个快照并原子生成完整 dist 目录,不推进任一通道
63
+ npm run sync:cdn:all
64
+
65
+ # 只读校验:发布门禁会按目标自动执行其中一条
66
+ npm run check:cdn
67
+ npm run check:cdn:beta
68
+ npm run check:cdn:all
69
+ ```
70
+
71
+ `sync:cdn` 与 `sync:cdn:beta` 从同一个模板真源重新生成所选通道;写入快照必须显式提供候选
72
+ 版本,正式与 beta 快照可以不同,两个命令都不会推进另一通道。发布门禁通过
73
+ `--version <resolved-version>` 只读验证将要发布的
74
+ 描述,release 事务再使用同一版本落盘。`sync:cdn:all` 只验证仓内已有快照并组装完整 `dist/`。
75
+ 唯一配置索引写入
76
+ `dist/rabetbase-cli/config/index.json`,并覆盖发布到
77
+ `https://g.lovrabet.com/dist/rabetbase-cli/config/index.json`。正式模板使用顶层
78
+ `projectTemplate`,beta 模板使用 `beta.projectTemplate`。仓内正式文件
79
+ `sub-app-react-demo.zip` 与 beta 文件 `sub-app-react-demo-beta.zip` 只是固定本地快照名;远端新发布
80
+ 文件统一为 `sub-app-react-demo-<version>.zip`。beta 描述缺失时继续兼容读取顶层正式模板。
81
+ 每个模板描述包含 CLI `version`、文件 `name`、从 `/dist/...` 开始的完整相对 `url`、`sha256`
82
+ 和 `size`;`name` 与 `url` 指向同一版本化文件,旧 CLI 按 `name`、新版 CLI 按 `url` 下载并
83
+ 校验大小与摘要。线上已有固定文件名描述继续兼容读取。CLI 使用
84
+ 当前国家/地区或独立部署路由中的 `cdn.lovrabet` 作为 host。CLI 更新策略与项目模板共用这个
85
+ 固定配置索引,beta 同步只更新 `beta.projectTemplate`。
86
+ `check:cdn` / `check:cdn:beta` 在系统临时目录重建 ZIP,只读比对所选通道的描述、当前 CLI 版本
87
+ 和仓内归档;`check:cdn:all` 只检查两个已提交快照各自自洽。三者都不会改动 `cdn/` 或 `dist/`。
88
+
89
+ 生成目录包含固定配置索引和所选通道当前描述指向的模板。正常发布不上传整个目录;release
90
+ 脚本先上传单个不可变版本 ZIP,再发布 npm,最后单独覆盖固定配置索引:
91
+
92
+ ```bash
93
+ yt upload dist/rabetbase-cli/templates/projects/sub-app-react-demo-<version>.zip -r all -force
94
+ yt upload dist/rabetbase-cli/config/index.json -r all -force
56
95
  ```
57
96
 
58
- 该命令会在 `dist/rabetbase-cli/templates/projects/` 下生成
59
- `sub-app-react-demo.zip`,并把版本、文件名、大小和 SHA-256 写入现有
60
- `dist/rabetbase-cli/config/index.json`。ZIP 使用固定地址,每次发布直接覆盖。
97
+ 以上顺序由 release 脚本执行,不作为日常手工步骤。必须向所有可用国家/地区发布并分别回读
98
+ 配置和 ZIP;新增节点由统一路由中的 `cdn.lovrabet` 提供 host,不在 CDN 配置里维护重复映射。
99
+ release 脚本还会在 prepare 阶段记录两个 CDN 节点一致的共享配置摘要,并在归档上传和 config
100
+ 切换前重新校验;另一通道、CLI policy 或配置摘要发生变化时停止发布,不覆盖较新的线上事实。
61
101
 
62
102
  ### 模板结构
63
103
 
@@ -81,7 +121,7 @@ npm run sync:cdn
81
121
  ## 注意事项
82
122
 
83
123
  - `templates/projects/sub-app-react-demo/` 是项目模板真源,不是独立 Git 仓,也不是外部仓快照
84
- - `rabetbase project create` 从 CDN 下载 ZIP,然后更新 `package.json` 与 `.rabetbase.json`;此仓库模板不进入 npm 发布包
124
+ - `rabetbase project create` 固定读取统一配置索引,再从描述中的正式或 beta URL 下载 ZIP,校验大小与 SHA-256 后更新 `package.json` 与 `.rabetbase.json`;正式 CLI 读取顶层模板,beta CLI 优先读取 `beta.projectTemplate`;此仓库模板不进入 npm 发布包
85
125
  - 模板文件名必须兼容 Windows、macOS 和 Linux;禁止符号链接、大小写冲突路径和 Windows 保留名称
86
126
  - 有 AppCode 时,CLI 会重新生成 `src/api/api.ts` 和 `src/api/client.ts`
87
127
  - 项目模板中不要保留真实 AppCode、真实数据集模型、`.git`、`node_modules`、`dist` 或个人配置
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Profile-aware model selection generated by Rabetbase CLI.
3
+ * Do not add application-specific Dataset codes to this file.
4
+ */
5
+
6
+ import type { ModelsConfig } from "@lovrabet/sdk";
7
+
8
+ interface ModelProfile {
9
+ appCode: string;
10
+ runtimeDomain: string;
11
+ }
12
+
13
+ interface ModelEntryMetadata {
14
+ alias: string;
15
+ tableName: string;
16
+ name: string;
17
+ }
18
+
19
+ type ModelEntry = ModelEntryMetadata &
20
+ (
21
+ | { datasetCode: string; datasetCodes?: never }
22
+ | { datasetCode?: never; datasetCodes: Record<string, string> }
23
+ );
24
+
25
+ interface ModelRegistry {
26
+ defaultProfile: string;
27
+ profiles: Record<string, ModelProfile>;
28
+ models: readonly ModelEntry[];
29
+ }
30
+
31
+ function normalizeDomain(value: string | undefined): string | undefined {
32
+ return value?.trim().replace(/\/+$/, "");
33
+ }
34
+
35
+ function injectedRuntimeDomain(): string | undefined {
36
+ if (typeof window === "undefined") return undefined;
37
+ const globalWindow = window as Window & {
38
+ __GLOBAL__?: {
39
+ deploymentConfig?: { RUNTIME_API_DOMAIN?: string };
40
+ };
41
+ };
42
+ return normalizeDomain(
43
+ globalWindow.__GLOBAL__?.deploymentConfig?.RUNTIME_API_DOMAIN,
44
+ );
45
+ }
46
+
47
+ function selectProfile(
48
+ registry: ModelRegistry,
49
+ projectRuntimeDomain: string,
50
+ ): readonly [string, ModelProfile] {
51
+ const runtimeDomain =
52
+ injectedRuntimeDomain() ?? normalizeDomain(projectRuntimeDomain);
53
+ const matches = Object.entries(registry.profiles).filter(
54
+ ([, profile]) => normalizeDomain(profile.runtimeDomain) === runtimeDomain,
55
+ );
56
+
57
+ if (matches.length > 1) {
58
+ throw new Error(
59
+ `Multiple Lovrabet model profiles match Runtime Domain "${runtimeDomain}". ` +
60
+ "Give each profile a distinct Runtime Domain.",
61
+ );
62
+ }
63
+ if (matches.length === 1) return matches[0]!;
64
+
65
+ throw new Error(
66
+ `No Lovrabet model profile matches Runtime Domain "${runtimeDomain ?? "(not set)"}". ` +
67
+ "Run `rabetbase api pull` after verifying the current project routing.",
68
+ );
69
+ }
70
+
71
+ export function resolveActiveModelConfig(
72
+ registry: ModelRegistry,
73
+ projectRuntimeDomain: string,
74
+ ): {
75
+ profileName: string;
76
+ appCode: string;
77
+ runtimeDomain: string;
78
+ modelsConfig: ModelsConfig;
79
+ } {
80
+ const [profileName, profile] = selectProfile(registry, projectRuntimeDomain);
81
+ const models = registry.models.flatMap((model) => {
82
+ const datasetCode = model.datasetCode ?? model.datasetCodes?.[profileName];
83
+ return datasetCode
84
+ ? [
85
+ {
86
+ datasetCode,
87
+ tableName: model.tableName,
88
+ name: model.name,
89
+ alias: model.alias,
90
+ },
91
+ ]
92
+ : [];
93
+ });
94
+
95
+ return {
96
+ profileName,
97
+ appCode: profile.appCode,
98
+ runtimeDomain: profile.runtimeDomain,
99
+ modelsConfig: { appCode: profile.appCode, models },
100
+ };
101
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Stable Lovrabet SDK model entrypoint.
3
+ * Generated by Rabetbase CLI.
4
+ */
5
+
6
+ import { registerModels, CONFIG_NAMES } from "@lovrabet/sdk";
7
+ import projectRouting from "{ProjectRoutingImport}";
8
+ import { LOVRABET_MODEL_REGISTRY } from "./models.generated";
9
+ import { resolveActiveModelConfig } from "./model-runtime";
10
+
11
+ const activeModelConfig = resolveActiveModelConfig(
12
+ LOVRABET_MODEL_REGISTRY,
13
+ projectRouting.domains.runtime,
14
+ );
15
+
16
+ export const LOVRABET_PROFILE_NAME = activeModelConfig.profileName;
17
+ export const LOVRABET_APP_CODE = activeModelConfig.appCode;
18
+ export const LOVRABET_RUNTIME_DOMAIN = activeModelConfig.runtimeDomain;
19
+ export const LOVRABET_MODELS_CONFIG = activeModelConfig.modelsConfig;
20
+
21
+ registerModels(LOVRABET_MODELS_CONFIG, CONFIG_NAMES.DEFAULT);
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Stable Lovrabet SDK client entrypoint.
3
+ * Generated by Rabetbase CLI.
4
+ */
5
+
6
+ import { createClient, CONFIG_NAMES } from "@lovrabet/sdk";
7
+ import { LOVRABET_RUNTIME_DOMAIN } from "./api";
8
+ import { LOVRABET_SDK_CONFIG } from "./sdk-config";
9
+
10
+ export const lovrabetClient = createClient({
11
+ apiConfigName: CONFIG_NAMES.DEFAULT,
12
+ ...LOVRABET_SDK_CONFIG,
13
+ runtimeDomain: LOVRABET_RUNTIME_DOMAIN,
14
+ });