everything-dev 1.53.2 → 2.0.0-rc.0

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 (713) hide show
  1. package/README.md +2 -11
  2. package/dist/_virtual/_rolldown/runtime.cjs +17 -2
  3. package/dist/_virtual/_rolldown/runtime.mjs +36 -0
  4. package/dist/api/auth-middleware.cjs +161 -0
  5. package/dist/api/auth-middleware.cjs.map +1 -0
  6. package/dist/api/auth-middleware.d.cts +69 -0
  7. package/dist/api/auth-middleware.d.mts +69 -0
  8. package/dist/api/auth-middleware.mjs +160 -0
  9. package/dist/api/auth-middleware.mjs.map +1 -0
  10. package/dist/api-contract.cjs +250 -62
  11. package/dist/api-contract.cjs.map +1 -1
  12. package/dist/api-contract.mjs +246 -65
  13. package/dist/api-contract.mjs.map +1 -1
  14. package/dist/app.cjs +99 -26
  15. package/dist/app.cjs.map +1 -1
  16. package/dist/app.d.cts +3 -0
  17. package/dist/app.d.mts +3 -0
  18. package/dist/app.mjs +100 -27
  19. package/dist/app.mjs.map +1 -1
  20. package/dist/auth-login.cjs +163 -0
  21. package/dist/auth-login.cjs.map +1 -0
  22. package/dist/auth-login.mjs +162 -0
  23. package/dist/auth-login.mjs.map +1 -0
  24. package/dist/auth-session.cjs +64 -0
  25. package/dist/auth-session.cjs.map +1 -0
  26. package/dist/auth-session.mjs +58 -0
  27. package/dist/auth-session.mjs.map +1 -0
  28. package/dist/auth-types-gen.cjs +0 -1
  29. package/dist/auth-types-gen.cjs.map +1 -1
  30. package/dist/build.cjs +37 -173
  31. package/dist/build.cjs.map +1 -1
  32. package/dist/build.mjs +37 -171
  33. package/dist/build.mjs.map +1 -1
  34. package/dist/bundle-cache.cjs +74 -0
  35. package/dist/bundle-cache.cjs.map +1 -0
  36. package/dist/bundle-cache.d.cts +27 -0
  37. package/dist/bundle-cache.d.mts +27 -0
  38. package/dist/bundle-cache.mjs +68 -0
  39. package/dist/bundle-cache.mjs.map +1 -0
  40. package/dist/bundle-fs-resolve.cjs +209 -0
  41. package/dist/bundle-fs-resolve.cjs.map +1 -0
  42. package/dist/bundle-fs-resolve.d.cts +76 -0
  43. package/dist/bundle-fs-resolve.d.mts +76 -0
  44. package/dist/bundle-fs-resolve.mjs +202 -0
  45. package/dist/bundle-fs-resolve.mjs.map +1 -0
  46. package/dist/cdn-deploy.cjs +126 -0
  47. package/dist/cdn-deploy.cjs.map +1 -0
  48. package/dist/cdn-deploy.mjs +124 -0
  49. package/dist/cdn-deploy.mjs.map +1 -0
  50. package/dist/cli/db-doctor.cjs +19 -19
  51. package/dist/cli/db-doctor.cjs.map +1 -1
  52. package/dist/cli/db-doctor.mjs +18 -18
  53. package/dist/cli/db-doctor.mjs.map +1 -1
  54. package/dist/cli/db-repair.cjs +9 -32
  55. package/dist/cli/db-repair.cjs.map +1 -1
  56. package/dist/cli/db-repair.mjs +9 -32
  57. package/dist/cli/db-repair.mjs.map +1 -1
  58. package/dist/cli/framework-version.cjs +7 -3
  59. package/dist/cli/framework-version.cjs.map +1 -1
  60. package/dist/cli/framework-version.mjs +7 -3
  61. package/dist/cli/framework-version.mjs.map +1 -1
  62. package/dist/cli/infra.cjs +159 -251
  63. package/dist/cli/infra.cjs.map +1 -1
  64. package/dist/cli/infra.mjs +154 -242
  65. package/dist/cli/infra.mjs.map +1 -1
  66. package/dist/cli/init.cjs +624 -196
  67. package/dist/cli/init.cjs.map +1 -1
  68. package/dist/cli/init.d.cts +61 -8
  69. package/dist/cli/init.d.mts +61 -8
  70. package/dist/cli/init.mjs +613 -194
  71. package/dist/cli/init.mjs.map +1 -1
  72. package/dist/cli/parse.cjs +8 -7
  73. package/dist/cli/parse.cjs.map +1 -1
  74. package/dist/cli/parse.mjs +9 -7
  75. package/dist/cli/parse.mjs.map +1 -1
  76. package/dist/cli/prompts.cjs +14 -1
  77. package/dist/cli/prompts.cjs.map +1 -1
  78. package/dist/cli/prompts.mjs +14 -1
  79. package/dist/cli/prompts.mjs.map +1 -1
  80. package/dist/cli/prune.cjs +220 -0
  81. package/dist/cli/prune.cjs.map +1 -0
  82. package/dist/cli/prune.mjs +220 -0
  83. package/dist/cli/prune.mjs.map +1 -0
  84. package/dist/cli/snapshot.cjs +2 -1
  85. package/dist/cli/snapshot.cjs.map +1 -1
  86. package/dist/cli/snapshot.mjs +2 -1
  87. package/dist/cli/snapshot.mjs.map +1 -1
  88. package/dist/cli/status.cjs +5 -4
  89. package/dist/cli/status.cjs.map +1 -1
  90. package/dist/cli/status.mjs +6 -5
  91. package/dist/cli/status.mjs.map +1 -1
  92. package/dist/cli/sync.cjs +156 -58
  93. package/dist/cli/sync.cjs.map +1 -1
  94. package/dist/cli/sync.mjs +158 -63
  95. package/dist/cli/sync.mjs.map +1 -1
  96. package/dist/cli/timing.cjs +0 -1
  97. package/dist/cli/timing.cjs.map +1 -1
  98. package/dist/cli/upgrade.cjs +95 -69
  99. package/dist/cli/upgrade.cjs.map +1 -1
  100. package/dist/cli/upgrade.mjs +97 -72
  101. package/dist/cli/upgrade.mjs.map +1 -1
  102. package/dist/cli/utils/helpers.cjs.map +1 -1
  103. package/dist/cli.cjs +320 -72
  104. package/dist/cli.cjs.map +1 -1
  105. package/dist/cli.mjs +316 -68
  106. package/dist/cli.mjs.map +1 -1
  107. package/dist/code-artifacts.cjs +76 -8
  108. package/dist/code-artifacts.cjs.map +1 -1
  109. package/dist/code-artifacts.mjs +76 -10
  110. package/dist/code-artifacts.mjs.map +1 -1
  111. package/dist/commands/build.cjs +65 -0
  112. package/dist/commands/build.cjs.map +1 -0
  113. package/dist/commands/build.mjs +65 -0
  114. package/dist/commands/build.mjs.map +1 -0
  115. package/dist/commands/config.cjs +77 -0
  116. package/dist/commands/config.cjs.map +1 -0
  117. package/dist/commands/config.d.cts +8 -0
  118. package/dist/commands/config.d.mts +8 -0
  119. package/dist/commands/config.mjs +74 -0
  120. package/dist/commands/config.mjs.map +1 -0
  121. package/dist/commands/db.cjs +107 -0
  122. package/dist/commands/db.cjs.map +1 -0
  123. package/dist/commands/db.mjs +107 -0
  124. package/dist/commands/db.mjs.map +1 -0
  125. package/dist/commands/deploy.cjs +336 -0
  126. package/dist/commands/deploy.cjs.map +1 -0
  127. package/dist/commands/deploy.mjs +334 -0
  128. package/dist/commands/deploy.mjs.map +1 -0
  129. package/dist/commands/dev.cjs +75 -0
  130. package/dist/commands/dev.cjs.map +1 -0
  131. package/dist/commands/dev.mjs +73 -0
  132. package/dist/commands/dev.mjs.map +1 -0
  133. package/dist/commands/init.cjs +234 -0
  134. package/dist/commands/init.cjs.map +1 -0
  135. package/dist/commands/init.mjs +231 -0
  136. package/dist/commands/init.mjs.map +1 -0
  137. package/dist/commands/keys.cjs +255 -0
  138. package/dist/commands/keys.cjs.map +1 -0
  139. package/dist/commands/keys.mjs +253 -0
  140. package/dist/commands/keys.mjs.map +1 -0
  141. package/dist/commands/ops.cjs +199 -0
  142. package/dist/commands/ops.cjs.map +1 -0
  143. package/dist/commands/ops.mjs +197 -0
  144. package/dist/commands/ops.mjs.map +1 -0
  145. package/dist/commands/plugins.cjs +211 -0
  146. package/dist/commands/plugins.cjs.map +1 -0
  147. package/dist/commands/plugins.mjs +211 -0
  148. package/dist/commands/plugins.mjs.map +1 -0
  149. package/dist/commands/shared.cjs +8 -0
  150. package/dist/commands/shared.cjs.map +1 -0
  151. package/dist/commands/shared.d.cts +6 -0
  152. package/dist/commands/shared.d.mts +6 -0
  153. package/dist/commands/shared.mjs +8 -0
  154. package/dist/commands/shared.mjs.map +1 -0
  155. package/dist/commands/upgrade.cjs +325 -0
  156. package/dist/commands/upgrade.cjs.map +1 -0
  157. package/dist/commands/upgrade.mjs +323 -0
  158. package/dist/commands/upgrade.mjs.map +1 -0
  159. package/dist/components/dev-render.cjs +340 -0
  160. package/dist/components/dev-render.cjs.map +1 -0
  161. package/dist/components/dev-render.mjs +332 -0
  162. package/dist/components/dev-render.mjs.map +1 -0
  163. package/dist/config.cjs +460 -221
  164. package/dist/config.cjs.map +1 -1
  165. package/dist/config.d.cts +491 -48
  166. package/dist/config.d.mts +491 -48
  167. package/dist/config.mjs +439 -212
  168. package/dist/config.mjs.map +1 -1
  169. package/dist/contract.cjs +327 -50
  170. package/dist/contract.cjs.map +1 -1
  171. package/dist/contract.d.cts +1951 -1062
  172. package/dist/contract.d.mts +1951 -1062
  173. package/dist/contract.meta.cjs +107 -12
  174. package/dist/contract.meta.cjs.map +1 -1
  175. package/dist/contract.meta.d.cts +166 -8
  176. package/dist/contract.meta.d.mts +166 -8
  177. package/dist/contract.meta.mjs +107 -11
  178. package/dist/contract.meta.mjs.map +1 -1
  179. package/dist/contract.mjs +580 -327
  180. package/dist/contract.mjs.map +1 -1
  181. package/dist/dag.cjs +5 -3
  182. package/dist/dag.cjs.map +1 -1
  183. package/dist/dag.mjs +6 -3
  184. package/dist/dag.mjs.map +1 -1
  185. package/dist/db/binding.cjs +80 -0
  186. package/dist/db/binding.cjs.map +1 -0
  187. package/dist/db/binding.d.cts +39 -0
  188. package/dist/db/binding.d.mts +39 -0
  189. package/dist/db/binding.mjs +78 -0
  190. package/dist/db/binding.mjs.map +1 -0
  191. package/dist/db/bindings.cjs +78 -0
  192. package/dist/db/bindings.cjs.map +1 -0
  193. package/dist/db/bindings.d.cts +34 -0
  194. package/dist/db/bindings.d.mts +34 -0
  195. package/dist/db/bindings.mjs +76 -0
  196. package/dist/db/bindings.mjs.map +1 -0
  197. package/dist/db/core.cjs +204 -0
  198. package/dist/db/core.cjs.map +1 -0
  199. package/dist/db/core.d.cts +69 -0
  200. package/dist/db/core.d.mts +69 -0
  201. package/dist/db/core.mjs +192 -0
  202. package/dist/db/core.mjs.map +1 -0
  203. package/dist/db/driver.cjs +167 -0
  204. package/dist/db/driver.cjs.map +1 -0
  205. package/dist/db/driver.d.cts +50 -0
  206. package/dist/db/driver.d.mts +50 -0
  207. package/dist/db/driver.mjs +165 -0
  208. package/dist/db/driver.mjs.map +1 -0
  209. package/dist/db/drizzle-kit.cjs +177 -0
  210. package/dist/db/drizzle-kit.cjs.map +1 -0
  211. package/dist/db/drizzle-kit.d.cts +25 -0
  212. package/dist/db/drizzle-kit.d.mts +25 -0
  213. package/dist/db/drizzle-kit.mjs +175 -0
  214. package/dist/db/drizzle-kit.mjs.map +1 -0
  215. package/dist/db/errors.cjs +27 -0
  216. package/dist/db/errors.cjs.map +1 -0
  217. package/dist/db/errors.d.cts +16 -0
  218. package/dist/db/errors.d.mts +16 -0
  219. package/dist/db/errors.mjs +26 -0
  220. package/dist/db/errors.mjs.map +1 -0
  221. package/dist/db/identity.cjs +55 -0
  222. package/dist/db/identity.cjs.map +1 -0
  223. package/dist/db/identity.d.cts +40 -0
  224. package/dist/db/identity.d.mts +40 -0
  225. package/dist/db/identity.mjs +53 -0
  226. package/dist/db/identity.mjs.map +1 -0
  227. package/dist/db/index.cjs +43 -0
  228. package/dist/db/index.d.cts +9 -0
  229. package/dist/db/index.d.mts +9 -0
  230. package/dist/db/index.mjs +10 -0
  231. package/dist/db/run-migrations.cjs +343 -0
  232. package/dist/db/run-migrations.cjs.map +1 -0
  233. package/dist/db/run-migrations.d.cts +87 -0
  234. package/dist/db/run-migrations.d.mts +87 -0
  235. package/dist/db/run-migrations.mjs +341 -0
  236. package/dist/db/run-migrations.mjs.map +1 -0
  237. package/dist/delegate-signer.cjs +85 -0
  238. package/dist/delegate-signer.cjs.map +1 -0
  239. package/dist/delegate-signer.mjs +84 -0
  240. package/dist/delegate-signer.mjs.map +1 -0
  241. package/dist/deploy-diff.cjs +119 -0
  242. package/dist/deploy-diff.cjs.map +1 -0
  243. package/dist/deploy-diff.mjs +109 -0
  244. package/dist/deploy-diff.mjs.map +1 -0
  245. package/dist/descriptor/constructors.cjs +49 -0
  246. package/dist/descriptor/constructors.cjs.map +1 -0
  247. package/dist/descriptor/constructors.d.cts +27 -0
  248. package/dist/descriptor/constructors.d.mts +27 -0
  249. package/dist/descriptor/constructors.mjs +45 -0
  250. package/dist/descriptor/constructors.mjs.map +1 -0
  251. package/dist/descriptor/index.cjs +24 -0
  252. package/dist/descriptor/index.d.cts +5 -0
  253. package/dist/descriptor/index.d.mts +5 -0
  254. package/dist/descriptor/index.mjs +6 -0
  255. package/dist/descriptor/resolve.cjs +258 -0
  256. package/dist/descriptor/resolve.cjs.map +1 -0
  257. package/dist/descriptor/resolve.d.cts +50 -0
  258. package/dist/descriptor/resolve.d.mts +50 -0
  259. package/dist/descriptor/resolve.mjs +252 -0
  260. package/dist/descriptor/resolve.mjs.map +1 -0
  261. package/dist/descriptor/schema.cjs +109 -0
  262. package/dist/descriptor/schema.cjs.map +1 -0
  263. package/dist/descriptor/schema.d.cts +217 -0
  264. package/dist/descriptor/schema.d.mts +217 -0
  265. package/dist/descriptor/schema.mjs +102 -0
  266. package/dist/descriptor/schema.mjs.map +1 -0
  267. package/dist/descriptor/serialize.cjs +45 -0
  268. package/dist/descriptor/serialize.cjs.map +1 -0
  269. package/dist/descriptor/serialize.d.cts +7 -0
  270. package/dist/descriptor/serialize.d.mts +7 -0
  271. package/dist/descriptor/serialize.mjs +45 -0
  272. package/dist/descriptor/serialize.mjs.map +1 -0
  273. package/dist/dev-log-pipeline.cjs +273 -0
  274. package/dist/dev-log-pipeline.cjs.map +1 -0
  275. package/dist/dev-log-pipeline.mjs +267 -0
  276. package/dist/dev-log-pipeline.mjs.map +1 -0
  277. package/dist/dev-logs.cjs +39 -8
  278. package/dist/dev-logs.cjs.map +1 -1
  279. package/dist/dev-logs.mjs +37 -9
  280. package/dist/dev-logs.mjs.map +1 -1
  281. package/dist/dev-program.cjs +405 -0
  282. package/dist/dev-program.cjs.map +1 -0
  283. package/dist/dev-program.d.cts +10 -0
  284. package/dist/dev-program.d.mts +10 -0
  285. package/dist/dev-program.mjs +395 -0
  286. package/dist/dev-program.mjs.map +1 -0
  287. package/dist/dev-session-data.d.cts +27 -0
  288. package/dist/dev-session-data.d.mts +27 -0
  289. package/dist/dev-session.cjs +178 -105
  290. package/dist/dev-session.cjs.map +1 -1
  291. package/dist/dev-session.mjs +180 -105
  292. package/dist/dev-session.mjs.map +1 -1
  293. package/dist/env/process-env.cjs +16 -0
  294. package/dist/env/process-env.cjs.map +1 -0
  295. package/dist/env/process-env.mjs +13 -0
  296. package/dist/env/process-env.mjs.map +1 -0
  297. package/dist/env/project-env.cjs +144 -0
  298. package/dist/env/project-env.cjs.map +1 -0
  299. package/dist/env/project-env.d.cts +1 -0
  300. package/dist/env/project-env.d.mts +1 -0
  301. package/dist/env/project-env.mjs +132 -0
  302. package/dist/env/project-env.mjs.map +1 -0
  303. package/dist/fastkv.cjs +59 -12
  304. package/dist/fastkv.cjs.map +1 -1
  305. package/dist/fastkv.d.cts +42 -6
  306. package/dist/fastkv.d.mts +42 -6
  307. package/dist/fastkv.mjs +58 -13
  308. package/dist/fastkv.mjs.map +1 -1
  309. package/dist/fingerprint.cjs +57 -0
  310. package/dist/fingerprint.cjs.map +1 -0
  311. package/dist/fingerprint.d.cts +14 -0
  312. package/dist/fingerprint.d.mts +14 -0
  313. package/dist/fingerprint.mjs +55 -0
  314. package/dist/fingerprint.mjs.map +1 -0
  315. package/dist/http-client.cjs +17 -17
  316. package/dist/http-client.cjs.map +1 -1
  317. package/dist/http-client.mjs +17 -17
  318. package/dist/http-client.mjs.map +1 -1
  319. package/dist/image-deploy.cjs +186 -0
  320. package/dist/image-deploy.cjs.map +1 -0
  321. package/dist/image-deploy.mjs +182 -0
  322. package/dist/image-deploy.mjs.map +1 -0
  323. package/dist/index.cjs +66 -18
  324. package/dist/index.d.cts +8 -7
  325. package/dist/index.d.mts +8 -7
  326. package/dist/index.mjs +6 -5
  327. package/dist/infra/docker.cjs +77 -0
  328. package/dist/infra/docker.cjs.map +1 -0
  329. package/dist/infra/docker.d.cts +10 -0
  330. package/dist/infra/docker.d.mts +10 -0
  331. package/dist/infra/docker.mjs +69 -0
  332. package/dist/infra/docker.mjs.map +1 -0
  333. package/dist/infra/materializer.cjs +74 -0
  334. package/dist/infra/materializer.cjs.map +1 -0
  335. package/dist/infra/materializer.mjs +70 -0
  336. package/dist/infra/materializer.mjs.map +1 -0
  337. package/dist/infra/planner.cjs +135 -103
  338. package/dist/infra/planner.cjs.map +1 -1
  339. package/dist/infra/planner.mjs +137 -104
  340. package/dist/infra/planner.mjs.map +1 -1
  341. package/dist/infra/port-ownership.cjs +57 -0
  342. package/dist/infra/port-ownership.cjs.map +1 -0
  343. package/dist/infra/port-ownership.mjs +57 -0
  344. package/dist/infra/port-ownership.mjs.map +1 -0
  345. package/dist/infra/preflight.cjs +45 -33
  346. package/dist/infra/preflight.cjs.map +1 -1
  347. package/dist/infra/preflight.d.cts +1 -0
  348. package/dist/infra/preflight.d.mts +1 -0
  349. package/dist/infra/preflight.mjs +46 -34
  350. package/dist/infra/preflight.mjs.map +1 -1
  351. package/dist/infra/types.cjs.map +1 -1
  352. package/dist/infra/types.d.cts +2 -0
  353. package/dist/infra/types.d.mts +2 -0
  354. package/dist/infra/types.mjs.map +1 -1
  355. package/dist/integrity.cjs +50 -61
  356. package/dist/integrity.cjs.map +1 -1
  357. package/dist/integrity.d.cts +16 -10
  358. package/dist/integrity.d.mts +16 -10
  359. package/dist/integrity.mjs +50 -59
  360. package/dist/integrity.mjs.map +1 -1
  361. package/dist/internal/manifest-normalizer.cjs +8 -2
  362. package/dist/internal/manifest-normalizer.cjs.map +1 -1
  363. package/dist/internal/manifest-normalizer.mjs +9 -3
  364. package/dist/internal/manifest-normalizer.mjs.map +1 -1
  365. package/dist/merge.cjs +19 -1
  366. package/dist/merge.cjs.map +1 -1
  367. package/dist/merge.d.cts +1 -1
  368. package/dist/merge.d.mts +1 -1
  369. package/dist/merge.mjs +19 -2
  370. package/dist/merge.mjs.map +1 -1
  371. package/dist/mf.cjs +190 -3
  372. package/dist/mf.cjs.map +1 -1
  373. package/dist/mf.d.cts +24 -2
  374. package/dist/mf.d.mts +24 -2
  375. package/dist/mf.mjs +189 -4
  376. package/dist/mf.mjs.map +1 -1
  377. package/dist/near-cli.cjs +59 -91
  378. package/dist/near-cli.cjs.map +1 -1
  379. package/dist/near-cli.mjs +58 -90
  380. package/dist/near-cli.mjs.map +1 -1
  381. package/dist/near-signer.cjs +73 -0
  382. package/dist/near-signer.cjs.map +1 -0
  383. package/dist/near-signer.mjs +70 -0
  384. package/dist/near-signer.mjs.map +1 -0
  385. package/dist/network.cjs +0 -1
  386. package/dist/network.cjs.map +1 -1
  387. package/dist/orchestrator.cjs +256 -87
  388. package/dist/orchestrator.cjs.map +1 -1
  389. package/dist/orchestrator.mjs +248 -87
  390. package/dist/orchestrator.mjs.map +1 -1
  391. package/dist/platform-deploy.cjs +81 -0
  392. package/dist/platform-deploy.cjs.map +1 -0
  393. package/dist/platform-deploy.mjs +80 -0
  394. package/dist/platform-deploy.mjs.map +1 -0
  395. package/dist/plugin.cjs +54 -1389
  396. package/dist/plugin.cjs.map +1 -1
  397. package/dist/plugin.d.cts +6 -896
  398. package/dist/plugin.d.mts +6 -896
  399. package/dist/plugin.mjs +53 -1387
  400. package/dist/plugin.mjs.map +1 -1
  401. package/dist/process-kill.cjs +44 -0
  402. package/dist/process-kill.cjs.map +1 -0
  403. package/dist/process-kill.mjs +43 -0
  404. package/dist/process-kill.mjs.map +1 -0
  405. package/dist/process-registry.cjs +64 -9
  406. package/dist/process-registry.cjs.map +1 -1
  407. package/dist/process-registry.mjs +61 -10
  408. package/dist/process-registry.mjs.map +1 -1
  409. package/dist/progress.cjs +45 -0
  410. package/dist/progress.cjs.map +1 -0
  411. package/dist/progress.d.cts +13 -0
  412. package/dist/progress.d.mts +13 -0
  413. package/dist/progress.mjs +42 -0
  414. package/dist/progress.mjs.map +1 -0
  415. package/dist/publish.cjs +513 -79
  416. package/dist/publish.cjs.map +1 -1
  417. package/dist/publish.mjs +515 -82
  418. package/dist/publish.mjs.map +1 -1
  419. package/dist/registry-use.cjs +41 -0
  420. package/dist/registry-use.cjs.map +1 -0
  421. package/dist/registry-use.mjs +40 -0
  422. package/dist/registry-use.mjs.map +1 -0
  423. package/dist/resolution/session.cjs +335 -0
  424. package/dist/resolution/session.cjs.map +1 -0
  425. package/dist/resolution/session.d.cts +105 -0
  426. package/dist/resolution/session.d.mts +105 -0
  427. package/dist/resolution/session.mjs +331 -0
  428. package/dist/resolution/session.mjs.map +1 -0
  429. package/dist/rollback.cjs +131 -0
  430. package/dist/rollback.cjs.map +1 -0
  431. package/dist/rollback.mjs +128 -0
  432. package/dist/rollback.mjs.map +1 -0
  433. package/dist/sdk.cjs +7 -7
  434. package/dist/sdk.d.cts +3 -3
  435. package/dist/sdk.d.mts +3 -3
  436. package/dist/sdk.mjs +2 -2
  437. package/dist/service-descriptor.cjs +67 -34
  438. package/dist/service-descriptor.cjs.map +1 -1
  439. package/dist/service-descriptor.d.cts +4 -1
  440. package/dist/service-descriptor.d.mts +3 -0
  441. package/dist/service-descriptor.mjs +63 -35
  442. package/dist/service-descriptor.mjs.map +1 -1
  443. package/dist/shared-deps.cjs +17 -16
  444. package/dist/shared-deps.cjs.map +1 -1
  445. package/dist/shared-deps.mjs +17 -16
  446. package/dist/shared-deps.mjs.map +1 -1
  447. package/dist/start-config-source.cjs +24 -0
  448. package/dist/start-config-source.cjs.map +1 -0
  449. package/dist/start-config-source.d.cts +29 -0
  450. package/dist/start-config-source.d.mts +29 -0
  451. package/dist/start-config-source.mjs +22 -0
  452. package/dist/start-config-source.mjs.map +1 -0
  453. package/dist/storage-upload.cjs +145 -0
  454. package/dist/storage-upload.cjs.map +1 -0
  455. package/dist/storage-upload.mjs +143 -0
  456. package/dist/storage-upload.mjs.map +1 -0
  457. package/dist/types.cjs +126 -20
  458. package/dist/types.cjs.map +1 -1
  459. package/dist/types.d.cts +867 -585
  460. package/dist/types.d.mts +867 -585
  461. package/dist/types.mjs +307 -208
  462. package/dist/types.mjs.map +1 -1
  463. package/dist/ui/api.cjs +105 -0
  464. package/dist/ui/api.cjs.map +1 -0
  465. package/dist/ui/api.d.cts +31 -0
  466. package/dist/ui/api.d.mts +31 -0
  467. package/dist/ui/api.mjs +99 -0
  468. package/dist/ui/api.mjs.map +1 -0
  469. package/dist/ui/auth-guards.cjs +50 -0
  470. package/dist/ui/auth-guards.cjs.map +1 -0
  471. package/dist/ui/auth-guards.d.cts +39 -0
  472. package/dist/ui/auth-guards.d.mts +39 -0
  473. package/dist/ui/auth-guards.mjs +48 -0
  474. package/dist/ui/auth-guards.mjs.map +1 -0
  475. package/dist/ui/auth.cjs +197 -0
  476. package/dist/ui/auth.cjs.map +1 -0
  477. package/dist/ui/auth.d.cts +56 -0
  478. package/dist/ui/auth.d.mts +56 -0
  479. package/dist/ui/auth.mjs +179 -0
  480. package/dist/ui/auth.mjs.map +1 -0
  481. package/dist/ui/entry.cjs +16 -0
  482. package/dist/ui/entry.cjs.map +1 -0
  483. package/dist/ui/entry.d.cts +12 -0
  484. package/dist/ui/entry.d.mts +12 -0
  485. package/dist/ui/entry.mjs +15 -0
  486. package/dist/ui/entry.mjs.map +1 -0
  487. package/dist/ui/head.cjs +14 -7
  488. package/dist/ui/head.cjs.map +1 -1
  489. package/dist/ui/head.mjs +15 -7
  490. package/dist/ui/head.mjs.map +1 -1
  491. package/dist/ui/hydrate.cjs +265 -0
  492. package/dist/ui/hydrate.cjs.map +1 -0
  493. package/dist/ui/hydrate.d.cts +48 -0
  494. package/dist/ui/hydrate.d.mts +48 -0
  495. package/dist/ui/hydrate.mjs +263 -0
  496. package/dist/ui/hydrate.mjs.map +1 -0
  497. package/dist/ui/i18n.cjs +153 -0
  498. package/dist/ui/i18n.cjs.map +1 -0
  499. package/dist/ui/i18n.d.cts +29 -0
  500. package/dist/ui/i18n.d.mts +29 -0
  501. package/dist/ui/i18n.mjs +140 -0
  502. package/dist/ui/i18n.mjs.map +1 -0
  503. package/dist/ui/index.cjs +19 -1
  504. package/dist/ui/index.d.cts +6 -3
  505. package/dist/ui/index.d.mts +6 -3
  506. package/dist/ui/index.mjs +5 -2
  507. package/dist/ui/locale.cjs +53 -0
  508. package/dist/ui/locale.cjs.map +1 -0
  509. package/dist/ui/locale.d.cts +18 -0
  510. package/dist/ui/locale.d.mts +18 -0
  511. package/dist/ui/locale.mjs +49 -0
  512. package/dist/ui/locale.mjs.map +1 -0
  513. package/dist/ui/manifest/index.cjs +25 -0
  514. package/dist/ui/manifest/index.cjs.map +1 -0
  515. package/dist/ui/manifest/index.d.cts +9 -0
  516. package/dist/ui/manifest/index.d.mts +9 -0
  517. package/dist/ui/manifest/index.mjs +13 -0
  518. package/dist/ui/manifest/index.mjs.map +1 -0
  519. package/dist/ui/manifest-generator.cjs +8 -0
  520. package/dist/ui/manifest-generator.d.cts +1 -0
  521. package/dist/ui/manifest-generator.d.mts +1 -0
  522. package/dist/ui/manifest-generator.mjs +3 -0
  523. package/dist/ui/message-catalogs.cjs +8 -0
  524. package/dist/ui/message-catalogs.cjs.map +1 -0
  525. package/dist/ui/message-catalogs.d.cts +5 -0
  526. package/dist/ui/message-catalogs.d.mts +5 -0
  527. package/dist/ui/message-catalogs.mjs +8 -0
  528. package/dist/ui/message-catalogs.mjs.map +1 -0
  529. package/dist/ui/metadata.cjs +0 -1
  530. package/dist/ui/metadata.cjs.map +1 -1
  531. package/dist/ui/metadata.d.cts +1 -1
  532. package/dist/ui/metadata.d.mts +1 -1
  533. package/dist/ui/plugin-path.cjs +37 -0
  534. package/dist/ui/plugin-path.cjs.map +1 -0
  535. package/dist/ui/plugin-path.d.cts +25 -0
  536. package/dist/ui/plugin-path.d.mts +25 -0
  537. package/dist/ui/plugin-path.mjs +35 -0
  538. package/dist/ui/plugin-path.mjs.map +1 -0
  539. package/dist/ui/router-client.cjs +61 -0
  540. package/dist/ui/router-client.cjs.map +1 -0
  541. package/dist/ui/router-client.d.cts +20 -0
  542. package/dist/ui/router-client.d.mts +20 -0
  543. package/dist/ui/router-client.mjs +60 -0
  544. package/dist/ui/router-client.mjs.map +1 -0
  545. package/dist/ui/router-defaults.cjs +48 -0
  546. package/dist/ui/router-defaults.cjs.map +1 -0
  547. package/dist/ui/router-defaults.d.cts +8 -0
  548. package/dist/ui/router-defaults.d.mts +8 -0
  549. package/dist/ui/router-defaults.mjs +45 -0
  550. package/dist/ui/router-defaults.mjs.map +1 -0
  551. package/dist/ui/router-error.cjs +70 -0
  552. package/dist/ui/router-error.cjs.map +1 -0
  553. package/dist/ui/router-error.d.cts +19 -0
  554. package/dist/ui/router-error.d.mts +19 -0
  555. package/dist/ui/router-error.mjs +69 -0
  556. package/dist/ui/router-error.mjs.map +1 -0
  557. package/dist/ui/router-server.cjs +153 -0
  558. package/dist/ui/router-server.cjs.map +1 -0
  559. package/dist/ui/router-server.d.cts +38 -0
  560. package/dist/ui/router-server.d.mts +38 -0
  561. package/dist/ui/router-server.mjs +152 -0
  562. package/dist/ui/router-server.mjs.map +1 -0
  563. package/dist/ui/router.cjs +4 -16
  564. package/dist/ui/router.cjs.map +1 -1
  565. package/dist/ui/router.mjs +4 -15
  566. package/dist/ui/router.mjs.map +1 -1
  567. package/dist/ui/runtime.cjs +5 -1
  568. package/dist/ui/runtime.cjs.map +1 -1
  569. package/dist/ui/runtime.d.cts +2 -1
  570. package/dist/ui/runtime.d.mts +2 -1
  571. package/dist/ui/runtime.mjs +5 -1
  572. package/dist/ui/runtime.mjs.map +1 -1
  573. package/dist/ui/slot.cjs +34 -0
  574. package/dist/ui/slot.cjs.map +1 -0
  575. package/dist/ui/slot.d.cts +43 -0
  576. package/dist/ui/slot.d.mts +43 -0
  577. package/dist/ui/slot.mjs +34 -0
  578. package/dist/ui/slot.mjs.map +1 -0
  579. package/dist/ui/tenant.cjs +300 -0
  580. package/dist/ui/tenant.cjs.map +1 -0
  581. package/dist/ui/tenant.d.cts +122 -0
  582. package/dist/ui/tenant.d.mts +122 -0
  583. package/dist/ui/tenant.mjs +279 -0
  584. package/dist/ui/tenant.mjs.map +1 -0
  585. package/dist/ui/types.d.cts +32 -2
  586. package/dist/ui/types.d.mts +32 -2
  587. package/dist/ui/version-check.cjs +47 -0
  588. package/dist/ui/version-check.cjs.map +1 -0
  589. package/dist/ui/version-check.d.cts +23 -0
  590. package/dist/ui/version-check.d.mts +23 -0
  591. package/dist/ui/version-check.mjs +46 -0
  592. package/dist/ui/version-check.mjs.map +1 -0
  593. package/dist/utils/banner.cjs +2 -2
  594. package/dist/utils/banner.cjs.map +1 -1
  595. package/dist/utils/banner.mjs +2 -2
  596. package/dist/utils/banner.mjs.map +1 -1
  597. package/dist/utils/linkify.cjs +1 -1
  598. package/dist/utils/linkify.cjs.map +1 -1
  599. package/dist/utils/linkify.mjs +1 -0
  600. package/dist/utils/linkify.mjs.map +1 -1
  601. package/dist/utils/run.cjs +6 -6
  602. package/dist/utils/run.cjs.map +1 -1
  603. package/dist/utils/run.mjs +6 -6
  604. package/dist/utils/run.mjs.map +1 -1
  605. package/dist/utils/save-config.cjs +12 -0
  606. package/dist/utils/save-config.cjs.map +1 -1
  607. package/dist/utils/save-config.mjs +12 -0
  608. package/dist/utils/save-config.mjs.map +1 -1
  609. package/dist/utils/snapshot-hash.cjs +10 -0
  610. package/dist/utils/snapshot-hash.cjs.map +1 -0
  611. package/dist/utils/snapshot-hash.mjs +10 -0
  612. package/dist/utils/snapshot-hash.mjs.map +1 -0
  613. package/dist/utils/string.cjs +0 -1
  614. package/dist/utils/string.cjs.map +1 -1
  615. package/dist/utils/theme.cjs +30 -12
  616. package/dist/utils/theme.cjs.map +1 -1
  617. package/dist/utils/theme.mjs +30 -11
  618. package/dist/utils/theme.mjs.map +1 -1
  619. package/dist/version-manifest-deploy.cjs +50 -0
  620. package/dist/version-manifest-deploy.cjs.map +1 -0
  621. package/dist/version-manifest-deploy.mjs +49 -0
  622. package/dist/version-manifest-deploy.mjs.map +1 -0
  623. package/dist/version-manifest-resolve.cjs +42 -0
  624. package/dist/version-manifest-resolve.cjs.map +1 -0
  625. package/dist/version-manifest-resolve.d.cts +38 -0
  626. package/dist/version-manifest-resolve.d.mts +38 -0
  627. package/dist/version-manifest-resolve.mjs +40 -0
  628. package/dist/version-manifest-resolve.mjs.map +1 -0
  629. package/dist/version-status.cjs +18 -0
  630. package/dist/version-status.cjs.map +1 -0
  631. package/dist/version-status.d.cts +22 -0
  632. package/dist/version-status.d.mts +22 -0
  633. package/dist/version-status.mjs +17 -0
  634. package/dist/version-status.mjs.map +1 -0
  635. package/dist/workspace-catalog.cjs +53 -0
  636. package/dist/workspace-catalog.cjs.map +1 -0
  637. package/dist/workspace-catalog.mjs +51 -0
  638. package/dist/workspace-catalog.mjs.map +1 -0
  639. package/dist/workspace.cjs +237 -0
  640. package/dist/workspace.cjs.map +1 -0
  641. package/dist/workspace.mjs +233 -0
  642. package/dist/workspace.mjs.map +1 -0
  643. package/package.json +179 -27
  644. package/skills/add-a-route/SKILL.md +132 -0
  645. package/skills/api-and-auth/SKILL.md +87 -21
  646. package/skills/api-and-auth/references/middleware.md +1 -1
  647. package/skills/cli-reference/SKILL.md +48 -21
  648. package/skills/code-style/SKILL.md +8 -0
  649. package/skills/dev-workflow/SKILL.md +50 -26
  650. package/skills/extends-config/SKILL.md +31 -19
  651. package/skills/init-upgrade/SKILL.md +29 -16
  652. package/skills/plugin-development/SKILL.md +46 -112
  653. package/skills/plugin-development/references/database.md +82 -0
  654. package/skills/plugin-development/references/request-context.md +67 -0
  655. package/skills/publish-sync/SKILL.md +99 -22
  656. package/skills/registry/SKILL.md +82 -0
  657. package/skills/super-app/SKILL.md +25 -15
  658. package/skills/talk-to-the-app/SKILL.md +138 -0
  659. package/skills/ui-integration/SKILL.md +93 -11
  660. package/dist/cli/db-studio.cjs +0 -131
  661. package/dist/cli/db-studio.cjs.map +0 -1
  662. package/dist/cli/db-studio.mjs +0 -127
  663. package/dist/cli/db-studio.mjs.map +0 -1
  664. package/dist/cli/init.d.cts.map +0 -1
  665. package/dist/cli/init.d.mts.map +0 -1
  666. package/dist/components/dev-view.cjs +0 -309
  667. package/dist/components/dev-view.cjs.map +0 -1
  668. package/dist/components/dev-view.mjs +0 -309
  669. package/dist/components/dev-view.mjs.map +0 -1
  670. package/dist/components/streaming-view.cjs +0 -134
  671. package/dist/components/streaming-view.cjs.map +0 -1
  672. package/dist/components/streaming-view.mjs +0 -132
  673. package/dist/components/streaming-view.mjs.map +0 -1
  674. package/dist/config.d.cts.map +0 -1
  675. package/dist/config.d.mts.map +0 -1
  676. package/dist/contract.d.cts.map +0 -1
  677. package/dist/contract.d.mts.map +0 -1
  678. package/dist/contract.meta.d.cts.map +0 -1
  679. package/dist/contract.meta.d.mts.map +0 -1
  680. package/dist/dag.d.cts.map +0 -1
  681. package/dist/dag.d.mts.map +0 -1
  682. package/dist/db.cjs +0 -81
  683. package/dist/db.cjs.map +0 -1
  684. package/dist/db.d.cts +0 -30
  685. package/dist/db.d.cts.map +0 -1
  686. package/dist/db.d.mts +0 -30
  687. package/dist/db.d.mts.map +0 -1
  688. package/dist/db.mjs +0 -75
  689. package/dist/db.mjs.map +0 -1
  690. package/dist/fastkv.d.cts.map +0 -1
  691. package/dist/fastkv.d.mts.map +0 -1
  692. package/dist/integrity.d.cts.map +0 -1
  693. package/dist/integrity.d.mts.map +0 -1
  694. package/dist/merge.d.cts.map +0 -1
  695. package/dist/merge.d.mts.map +0 -1
  696. package/dist/mf.d.cts.map +0 -1
  697. package/dist/mf.d.mts.map +0 -1
  698. package/dist/plugin.d.cts.map +0 -1
  699. package/dist/plugin.d.mts.map +0 -1
  700. package/dist/service-descriptor.d.cts.map +0 -1
  701. package/dist/service-descriptor.d.mts.map +0 -1
  702. package/dist/types.d.cts.map +0 -1
  703. package/dist/types.d.mts.map +0 -1
  704. package/dist/ui/head.d.cts.map +0 -1
  705. package/dist/ui/head.d.mts.map +0 -1
  706. package/dist/ui/metadata.d.cts.map +0 -1
  707. package/dist/ui/metadata.d.mts.map +0 -1
  708. package/dist/ui/router.d.cts.map +0 -1
  709. package/dist/ui/router.d.mts.map +0 -1
  710. package/dist/ui/runtime.d.cts.map +0 -1
  711. package/dist/ui/runtime.d.mts.map +0 -1
  712. package/dist/ui/types.d.cts.map +0 -1
  713. package/dist/ui/types.d.mts.map +0 -1
@@ -0,0 +1,263 @@
1
+ import { getCspNonce, getRuntimeConfig } from "./runtime.mjs";
2
+ import { createApiClient } from "./api.mjs";
3
+ import { createAuthClient } from "./auth.mjs";
4
+ import { manifest_exports } from "./manifest/index.mjs";
5
+ import { defaultQueryClient } from "./router-defaults.mjs";
6
+ import { jsx } from "react/jsx-runtime";
7
+
8
+ //#region src/ui/hydrate.tsx
9
+ const mark = (message) => {
10
+ const progress = window.__CLIENT_PROGRESS__ ?? [];
11
+ window.__CLIENT_PROGRESS__ = [...progress, message];
12
+ if (import.meta.env.DEV) console.log(`[Hydrate] ${message}`);
13
+ };
14
+ function isAbsoluteHttpUrl(value) {
15
+ if (!value) return false;
16
+ try {
17
+ const url = new URL(value);
18
+ return url.protocol === "http:" || url.protocol === "https:";
19
+ } catch {
20
+ return false;
21
+ }
22
+ }
23
+ /**
24
+ * Manifest composition: reconstruct the server's tree from the payload — the
25
+ * same manifests, the same MF names, the same construction code. Digest
26
+ * parity proves the SSR'd tree and this tree are identical before hydrate;
27
+ * any failure degrades to the core-only tree (still a real route tree — the
28
+ * page must render, just without plugin routes) rather than leaving the
29
+ * router without a tree.
30
+ */
31
+ async function composeFromPayload(runtimeConfig, coreRouteConfig, coreManifest) {
32
+ const coreUiName = runtimeConfig.ui?.name ?? manifest_exports.CORE_UI_PLUGIN_KEY;
33
+ const composeCoreOnly = async (candidateManifests) => {
34
+ try {
35
+ const core = candidateManifests.find((m) => m.name === manifest_exports.CORE_UI_PLUGIN_KEY);
36
+ if (!core) return void 0;
37
+ const tree = await (0, manifest_exports.constructTree)({
38
+ name: "core-fallback",
39
+ plugins: [{
40
+ key: core.name,
41
+ mfName: coreUiName
42
+ }],
43
+ resolve: async (ref) => ({
44
+ key: ref.key,
45
+ manifest: core,
46
+ routeConfig: coreRouteConfig
47
+ }),
48
+ rootOptions: coreRouteConfig.rootMeta
49
+ });
50
+ mark(`core-only tree constructed: ${tree.manifests.length} source(s), ${tree.nav.items.length} nav item(s)`);
51
+ return {
52
+ routeTree: tree.rootRoute,
53
+ nav: tree.nav,
54
+ degraded: true
55
+ };
56
+ } catch (error) {
57
+ console.error("[Hydrate] Core-only fallback failed:", error);
58
+ mark(`CORE-ONLY FALLBACK ERROR: ${error.message}`);
59
+ return;
60
+ }
61
+ };
62
+ const payload = runtimeConfig.ui?.compose;
63
+ if (!payload?.remotes) return coreManifest ? composeCoreOnly([coreManifest]) : void 0;
64
+ const parsed = manifest_exports.ComposePayloadSchema.safeParse(payload);
65
+ if (!parsed.success) {
66
+ mark(`compose payload malformed: ${parsed.error.message}`);
67
+ return coreManifest ? composeCoreOnly([coreManifest]) : void 0;
68
+ }
69
+ const { manifests } = parsed.data;
70
+ const manifestByKey = new Map(manifests.map((m) => [m.name, m]));
71
+ try {
72
+ const { registerRemotes, loadRemote } = await import("@module-federation/enhanced/runtime");
73
+ mark(`compose payload: digest ${payload.digest}, ${payload.remotes.length} remote(s)`);
74
+ registerRemotes(payload.remotes.map((remote) => ({
75
+ name: remote.name,
76
+ alias: remote.name,
77
+ entry: isAbsoluteHttpUrl(remote.manifestUrl) ? remote.manifestUrl : remote.entry.replace(/\/?remoteEntry\.js$/, "/mf-manifest.json")
78
+ })));
79
+ for (const remote of payload.remotes) mark(`remote registered ${remote.name} @ ${remote.entry}`);
80
+ const loadedRouteConfigs = /* @__PURE__ */ new Map();
81
+ const dropped = [];
82
+ const healthyManifests = [];
83
+ for (const manifest of manifests) {
84
+ if (manifest.name === manifest_exports.CORE_UI_PLUGIN_KEY) {
85
+ healthyManifests.push(manifest);
86
+ continue;
87
+ }
88
+ const remote = payload.remotes.find((r) => r.key === manifest.name);
89
+ if (!remote) {
90
+ dropped.push(manifest.name);
91
+ mark(`dropped ${manifest.name} — payload has no matching remote`);
92
+ continue;
93
+ }
94
+ try {
95
+ const mod = await loadRemote(`${remote.name}/routeConfig`, { from: "build" });
96
+ const routeConfig = mod?.default ?? mod;
97
+ if (!routeConfig?.routeConfigLoaders) throw new Error(`loadRemote(${remote.name}/routeConfig) returned no route config`);
98
+ loadedRouteConfigs.set(manifest.name, routeConfig);
99
+ healthyManifests.push(manifest);
100
+ mark(`loaded ${remote.name}/routeConfig`);
101
+ } catch (error) {
102
+ dropped.push(manifest.name);
103
+ mark(`dropped ${manifest.name} — ${error.message}`);
104
+ }
105
+ }
106
+ const tree = await (0, manifest_exports.constructTree)({
107
+ name: "client",
108
+ plugins: healthyManifests.map((manifest) => {
109
+ const remote = payload.remotes.find((r) => r.key === manifest.name);
110
+ return {
111
+ key: manifest.name,
112
+ mfName: remote?.name ?? (manifest.name === manifest_exports.CORE_UI_PLUGIN_KEY ? coreUiName : manifest.name)
113
+ };
114
+ }),
115
+ resolve: async (ref) => {
116
+ if (ref.key === manifest_exports.CORE_UI_PLUGIN_KEY) {
117
+ const manifest = manifestByKey.get(ref.key);
118
+ if (!manifest) throw new Error(`compose payload has no manifest for "${ref.key}"`);
119
+ return {
120
+ key: ref.key,
121
+ manifest,
122
+ routeConfig: coreRouteConfig
123
+ };
124
+ }
125
+ const manifest = manifestByKey.get(ref.key);
126
+ const routeConfig = loadedRouteConfigs.get(ref.key);
127
+ if (!manifest || !routeConfig) throw new Error(`composition source "${ref.key}" is not fully resolved`);
128
+ return {
129
+ key: ref.key,
130
+ manifest,
131
+ routeConfig
132
+ };
133
+ },
134
+ rootOptions: coreRouteConfig.rootMeta
135
+ });
136
+ if (dropped.length > 0) {
137
+ mark(`degraded compose: ${dropped.join(", ")} dropped — client-render`);
138
+ return {
139
+ routeTree: tree.rootRoute,
140
+ nav: tree.nav,
141
+ degraded: true
142
+ };
143
+ }
144
+ if (tree.digest !== payload.digest) {
145
+ console.warn(`[Hydrate] Compose digest mismatch (client ${tree.digest} vs server ${payload.digest}); core-only fallback`);
146
+ mark(`DIGEST PARITY FAILURE server=${payload.digest} client=${tree.digest}`);
147
+ return composeCoreOnly(manifests);
148
+ }
149
+ mark(`tree constructed: ${tree.manifests.length} source(s), ${tree.nav.items.length} nav item(s)`);
150
+ return {
151
+ routeTree: tree.rootRoute,
152
+ nav: tree.nav,
153
+ degraded: false
154
+ };
155
+ } catch (error) {
156
+ console.error("[Hydrate] Client compose failed; core-only fallback:", error);
157
+ mark(`CLIENT COMPOSE ERROR: ${error.message}`);
158
+ return composeCoreOnly(manifests);
159
+ }
160
+ }
161
+ function isServerRendered() {
162
+ if (document.documentElement.hasAttribute("data-everything-ssr")) return true;
163
+ if (window.__EVERYTHING_DEV_SSR__ !== void 0) return window.__EVERYTHING_DEV_SSR__;
164
+ return window.$_TSR !== void 0;
165
+ }
166
+ function watchHydrationConsumed() {
167
+ const bootstrapWatch = setInterval(() => {
168
+ if (window.$_TSR === void 0) {
169
+ clearInterval(bootstrapWatch);
170
+ mark("hydration consumed ($_TSR deleted — h() ran)");
171
+ }
172
+ }, 50);
173
+ }
174
+ async function hydrate(options) {
175
+ if (window.__EVERYTHING_DEV_HYDRATE_PROMISE__) return window.__EVERYTHING_DEV_HYDRATE_PROMISE__;
176
+ const hydratePromise = (async () => {
177
+ console.log("[Hydrate] Starting...");
178
+ const runtimeConfig = options.config ?? getRuntimeConfig();
179
+ const cspNonce = getCspNonce();
180
+ if (!runtimeConfig.hostUrl || !runtimeConfig.rpcBase) throw new Error("Missing hostUrl or rpcBase in runtime config");
181
+ const [{ QueryClientProvider }, routerFactory] = await Promise.all([import("@tanstack/react-query"), options.createRouter ? Promise.resolve(options.createRouter) : import("./router-client.mjs").then((m) => m.createRouter)]);
182
+ const [coreRouteConfig] = await Promise.all([options.routeConfig().then((mod) => "default" in mod ? mod.default : mod)]);
183
+ const coreManifest = options.manifest ? await options.manifest().then((raw) => typeof raw === "object" && raw !== null && "default" in raw ? raw.default : raw).then((raw) => (0, manifest_exports.parsePluginManifest)(raw)) : void 0;
184
+ const client = options.createQueryClient?.() ?? defaultQueryClient();
185
+ mark(`$_TSR present: ${Boolean(window.$_TSR)}`);
186
+ const composed = await composeFromPayload(runtimeConfig, coreRouteConfig, coreManifest);
187
+ const { router, queryClient: builtClient } = await routerFactory({
188
+ routeTree: composed?.routeTree,
189
+ context: {
190
+ pluginNav: composed?.nav,
191
+ queryClient: client,
192
+ runtimeConfig,
193
+ cspNonce,
194
+ locale: isServerRendered() ? document.documentElement.lang : void 0,
195
+ apiClient: createApiClient({
196
+ hostUrl: runtimeConfig.hostUrl,
197
+ rpcBase: runtimeConfig.rpcBase,
198
+ connectionError: options.apiConnectionError
199
+ }),
200
+ authClient: createAuthClient({
201
+ runtimeConfig,
202
+ cspNonce
203
+ })
204
+ }
205
+ });
206
+ const providerClient = builtClient ?? client;
207
+ if (isServerRendered() && Boolean(composed) && !composed.degraded) {
208
+ const { hydrateRoot } = await import("react-dom/client");
209
+ const { RouterClient } = await import("@tanstack/react-router/ssr/client");
210
+ console.log("[Hydrate] Calling hydrateRoot...");
211
+ hydrateRoot(document, /* @__PURE__ */ jsx(QueryClientProvider, {
212
+ client: providerClient,
213
+ children: /* @__PURE__ */ jsx(RouterClient, { router })
214
+ }));
215
+ watchHydrationConsumed();
216
+ } else {
217
+ const { createRoot } = await import("react-dom/client");
218
+ const { RouterProvider } = await import("@tanstack/react-router");
219
+ console.log("[Hydrate] Calling createRoot...");
220
+ createRoot(document).render(/* @__PURE__ */ jsx(QueryClientProvider, {
221
+ client: providerClient,
222
+ children: /* @__PURE__ */ jsx(RouterProvider, { router })
223
+ }));
224
+ }
225
+ if (composed?.degraded) {
226
+ const { toast } = await import("sonner");
227
+ toast.error("Some application features couldn't load", {
228
+ id: "application-compose-error",
229
+ description: "Plugin pages are unavailable. Reload to try again.",
230
+ duration: Number.POSITIVE_INFINITY,
231
+ action: {
232
+ label: "Reload",
233
+ onClick: () => window.location.reload()
234
+ }
235
+ });
236
+ }
237
+ console.log("[Hydrate] Complete!");
238
+ })().catch((error) => {
239
+ console.error("[Hydrate] Failed:", error);
240
+ window.__EVERYTHING_DEV_HYDRATE_PROMISE__ = void 0;
241
+ const message = document.createElement("main");
242
+ message.setAttribute("role", "alert");
243
+ message.dataset.testid = "application-startup-error";
244
+ message.className = "min-h-screen flex flex-col items-center justify-center gap-4 bg-background text-foreground p-6";
245
+ const heading = document.createElement("h1");
246
+ heading.textContent = "The application couldn't load";
247
+ const detail = document.createElement("p");
248
+ detail.textContent = "Check your connection and reload to try again.";
249
+ const retry = document.createElement("button");
250
+ retry.textContent = "Reload";
251
+ retry.className = "rounded-md border border-border px-4 py-2";
252
+ retry.addEventListener("click", () => window.location.reload());
253
+ message.append(heading, detail, retry);
254
+ document.body.replaceChildren(message);
255
+ throw error;
256
+ });
257
+ window.__EVERYTHING_DEV_HYDRATE_PROMISE__ = hydratePromise;
258
+ return hydratePromise;
259
+ }
260
+
261
+ //#endregion
262
+ export { hydrate as default, hydrate };
263
+ //# sourceMappingURL=hydrate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrate.mjs","names":["CORE_UI_PLUGIN_KEY","constructTree","ComposePayloadSchema","parsePluginManifest"],"sources":["../../src/ui/hydrate.tsx"],"sourcesContent":["/**\n * Client bootstrap — creates browser-side QueryClient, Router, and auth/API\n * clients; composes the route tree from the runtime-config payload before\n * hydration (payload -> registerRemotes -> loadRemote route configs ->\n * constructTree -> hydrateRoot(RouterClient)). Called from the host-rendered\n * HTML shell via the app's thin entry/hydrate stubs. The build's MF runtime\n * owns the page's share scope — the global registerRemotes/loadRemote API\n * bridges it (one React/router across the core client and plugin containers\n * by share-scope negotiation).\n */\n\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport type { ClientRuntimeConfig } from \"../types\";\nimport { type ClientServiceConfig, createApiClient } from \"./api\";\nimport { createAuthClient } from \"./auth\";\nimport {\n CORE_UI_PLUGIN_KEY,\n ComposePayloadSchema,\n constructTree,\n type NavManifest,\n type PluginManifest,\n parsePluginManifest,\n type RouteConfigModule,\n} from \"./manifest\";\nimport { defaultQueryClient } from \"./router-defaults\";\nimport { getCspNonce, getRuntimeConfig } from \"./runtime\";\nimport type { AppRouterFactory } from \"./types\";\n\ndeclare global {\n interface Window {\n __EVERYTHING_DEV_HYDRATE_PROMISE__?: Promise<void>;\n __EVERYTHING_DEV_SSR__?: boolean;\n __CLIENT_PROGRESS__?: string[];\n $_TSR?: unknown;\n }\n}\n\nconst mark = (message: string) => {\n const progress = window.__CLIENT_PROGRESS__ ?? [];\n window.__CLIENT_PROGRESS__ = [...progress, message];\n if (import.meta.env.DEV) console.log(`[Hydrate] ${message}`);\n};\n\nfunction isAbsoluteHttpUrl(value: string | undefined): value is string {\n if (!value) return false;\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n}\n\nexport type { AppRouterFactory } from \"./types\";\n\nexport interface CoreHydrateOptions {\n /**\n * Loads the app's generated core route config — the only app-specific\n * input; clients, compose machinery, and the router come from the package.\n */\n routeConfig: () => Promise<RouteConfigModule | { default: RouteConfigModule }>;\n /**\n * Loads the app's generated core manifest — the degradation target when the\n * runtime config carries no (or no usable) compose payload: a plugin-free\n * deployment has no payload at all, yet the core-only tree is still the\n * tree. Absent, a payload-less page cannot construct a tree. The value is\n * parsed through the manifest contract at the boundary (a skewed version\n * or shape fails loudly here).\n */\n manifest?: () => Promise<unknown>;\n /**\n * The app's authored router factory — notFound/pending/error components,\n * scroll behavior, and router defaults live there. Absent, the framework's\n * own factory runs.\n */\n createRouter?: AppRouterFactory;\n /** The app's query client factory (staleTime, gcTime, …). Absent, the framework default. */\n createQueryClient?: () => QueryClient;\n /** Overrides the runtime config source (tests, embeds). */\n config?: ClientRuntimeConfig;\n /** Localized copy for the API connection-failure toast (see `createApiClient`). */\n apiConnectionError?: ClientServiceConfig[\"connectionError\"];\n}\n\ninterface ComposedTree {\n routeTree: unknown;\n nav: NavManifest;\n /** `true` when plugin composition failed and only the core tree is usable. */\n degraded: boolean;\n}\n\n/**\n * Manifest composition: reconstruct the server's tree from the payload — the\n * same manifests, the same MF names, the same construction code. Digest\n * parity proves the SSR'd tree and this tree are identical before hydrate;\n * any failure degrades to the core-only tree (still a real route tree — the\n * page must render, just without plugin routes) rather than leaving the\n * router without a tree.\n */\nasync function composeFromPayload(\n runtimeConfig: ClientRuntimeConfig,\n coreRouteConfig: RouteConfigModule,\n coreManifest: PluginManifest | undefined,\n): Promise<ComposedTree | undefined> {\n const coreUiName = runtimeConfig.ui?.name ?? CORE_UI_PLUGIN_KEY;\n\n // The core-only tree is the degradation target for every failure below —\n // the payload's core manifest plus the app's own route config, no remotes.\n const composeCoreOnly = async (\n candidateManifests: PluginManifest[],\n ): Promise<ComposedTree | undefined> => {\n try {\n const core = candidateManifests.find((m) => m.name === CORE_UI_PLUGIN_KEY);\n if (!core) return undefined;\n const tree = await constructTree({\n name: \"core-fallback\",\n plugins: [{ key: core.name, mfName: coreUiName }],\n resolve: async (ref) => ({\n key: ref.key,\n manifest: core,\n routeConfig: coreRouteConfig,\n }),\n rootOptions: coreRouteConfig.rootMeta,\n });\n mark(\n `core-only tree constructed: ${tree.manifests.length} source(s), ${tree.nav.items.length} nav item(s)`,\n );\n return { routeTree: tree.rootRoute, nav: tree.nav, degraded: true };\n } catch (error) {\n console.error(\"[Hydrate] Core-only fallback failed:\", error);\n mark(`CORE-ONLY FALLBACK ERROR: ${(error as Error).message}`);\n return undefined;\n }\n };\n\n const payload = runtimeConfig.ui?.compose;\n if (!payload?.remotes) {\n // No payload at all — a plugin-free deployment. The core-only tree IS\n // the tree; without the app manifest there is nothing to construct.\n return coreManifest ? composeCoreOnly([coreManifest]) : undefined;\n }\n\n const parsed = ComposePayloadSchema.safeParse(payload);\n if (!parsed.success) {\n mark(`compose payload malformed: ${parsed.error.message}`);\n return coreManifest ? composeCoreOnly([coreManifest]) : undefined;\n }\n const { manifests } = parsed.data;\n const manifestByKey = new Map(manifests.map((m) => [m.name, m]));\n\n try {\n const { registerRemotes, loadRemote } = await import(\"@module-federation/enhanced/runtime\");\n\n mark(`compose payload: digest ${payload.digest}, ${payload.remotes.length} remote(s)`);\n\n registerRemotes(\n payload.remotes.map((remote) => ({\n name: remote.name,\n alias: remote.name,\n // Manifest-driven registration: the manifest carries the remote's\n // true container identity (its build-time package name), which the\n // plain remoteEntry URL cannot resolve — the entry script's global\n // name doesn't match the registered name. Versioned deploys carry\n // the (hashed) manifest URL in the payload; legacy payloads derive\n // it by stripping the fixed entry name. Only absolute URLs qualify —\n // a relative manifestUrl would resolve against the page origin and\n // register the wrong container.\n entry: isAbsoluteHttpUrl(remote.manifestUrl)\n ? remote.manifestUrl\n : remote.entry.replace(/\\/?remoteEntry\\.js$/, \"/mf-manifest.json\"),\n })),\n );\n for (const remote of payload.remotes) {\n mark(`remote registered ${remote.name} @ ${remote.entry}`);\n }\n\n // Per-source isolation (ADR 0024 §5): a remote whose route config fails\n // to load drops only its own routes. The dropped set degrades the compose\n // (client-render — the SSR'd tree included it), never the whole page.\n const loadedRouteConfigs = new Map<string, RouteConfigModule>();\n const dropped: string[] = [];\n const healthyManifests: PluginManifest[] = [];\n for (const manifest of manifests) {\n if (manifest.name === CORE_UI_PLUGIN_KEY) {\n healthyManifests.push(manifest);\n continue;\n }\n const remote = payload.remotes.find((r) => r.key === manifest.name);\n if (!remote) {\n dropped.push(manifest.name);\n mark(`dropped ${manifest.name} — payload has no matching remote`);\n continue;\n }\n try {\n const mod = await loadRemote(`${remote.name}/routeConfig`, { from: \"build\" });\n const routeConfig = ((mod as { default?: RouteConfigModule })?.default ??\n mod) as RouteConfigModule;\n if (!routeConfig?.routeConfigLoaders) {\n throw new Error(`loadRemote(${remote.name}/routeConfig) returned no route config`);\n }\n loadedRouteConfigs.set(manifest.name, routeConfig);\n healthyManifests.push(manifest);\n mark(`loaded ${remote.name}/routeConfig`);\n } catch (error) {\n dropped.push(manifest.name);\n mark(`dropped ${manifest.name} — ${(error as Error).message}`);\n }\n }\n\n const tree = await constructTree({\n name: \"client\",\n plugins: healthyManifests.map((manifest) => {\n const remote = payload.remotes.find((r) => r.key === manifest.name);\n return {\n key: manifest.name,\n mfName:\n remote?.name ?? (manifest.name === CORE_UI_PLUGIN_KEY ? coreUiName : manifest.name),\n };\n }),\n resolve: async (ref) => {\n if (ref.key === CORE_UI_PLUGIN_KEY) {\n const manifest = manifestByKey.get(ref.key);\n if (!manifest) throw new Error(`compose payload has no manifest for \"${ref.key}\"`);\n return { key: ref.key, manifest, routeConfig: coreRouteConfig };\n }\n const manifest = manifestByKey.get(ref.key);\n const routeConfig = loadedRouteConfigs.get(ref.key);\n if (!manifest || !routeConfig) {\n throw new Error(`composition source \"${ref.key}\" is not fully resolved`);\n }\n return { key: ref.key, manifest, routeConfig };\n },\n rootOptions: coreRouteConfig.rootMeta,\n });\n\n if (dropped.length > 0) {\n mark(`degraded compose: ${dropped.join(\", \")} dropped — client-render`);\n return { routeTree: tree.rootRoute, nav: tree.nav, degraded: true };\n }\n\n if (tree.digest !== payload.digest) {\n console.warn(\n `[Hydrate] Compose digest mismatch (client ${tree.digest} vs server ${payload.digest}); core-only fallback`,\n );\n mark(`DIGEST PARITY FAILURE server=${payload.digest} client=${tree.digest}`);\n return composeCoreOnly(manifests);\n }\n\n mark(\n `tree constructed: ${tree.manifests.length} source(s), ${tree.nav.items.length} nav item(s)`,\n );\n return { routeTree: tree.rootRoute, nav: tree.nav, degraded: false };\n } catch (error) {\n console.error(\"[Hydrate] Client compose failed; core-only fallback:\", error);\n mark(`CLIENT COMPOSE ERROR: ${(error as Error).message}`);\n return composeCoreOnly(manifests);\n }\n}\n\nfunction isServerRendered(): boolean {\n if (document.documentElement.hasAttribute(\"data-everything-ssr\")) {\n return true;\n }\n if (window.__EVERYTHING_DEV_SSR__ !== undefined) {\n return window.__EVERYTHING_DEV_SSR__;\n }\n return window.$_TSR !== undefined;\n}\n\nfunction watchHydrationConsumed() {\n const bootstrapWatch = setInterval(() => {\n if (window.$_TSR === undefined) {\n clearInterval(bootstrapWatch);\n mark(\"hydration consumed ($_TSR deleted — h() ran)\");\n }\n }, 50);\n}\n\nexport async function hydrate(options: CoreHydrateOptions) {\n if (window.__EVERYTHING_DEV_HYDRATE_PROMISE__) {\n return window.__EVERYTHING_DEV_HYDRATE_PROMISE__;\n }\n\n const hydratePromise = (async () => {\n console.log(\"[Hydrate] Starting...\");\n\n const runtimeConfig = options.config ?? getRuntimeConfig();\n const cspNonce = getCspNonce();\n\n if (!runtimeConfig.hostUrl || !runtimeConfig.rpcBase) {\n throw new Error(\"Missing hostUrl or rpcBase in runtime config\");\n }\n\n const [{ QueryClientProvider }, routerFactory] = await Promise.all([\n import(\"@tanstack/react-query\"),\n options.createRouter\n ? Promise.resolve(options.createRouter)\n : import(\"./router-client\").then((m) => m.createRouter as AppRouterFactory),\n ]);\n const [coreRouteConfig] = await Promise.all([\n options.routeConfig().then((mod) => (\"default\" in mod ? mod.default : mod)),\n ]);\n const coreManifest = options.manifest\n ? await options\n .manifest()\n .then((raw) =>\n typeof raw === \"object\" && raw !== null && \"default\" in raw\n ? (raw as { default: unknown }).default\n : raw,\n )\n .then((raw) => parsePluginManifest(raw))\n : undefined;\n const client = options.createQueryClient?.() ?? defaultQueryClient();\n\n mark(`$_TSR present: ${Boolean(window.$_TSR)}`);\n\n const composed = await composeFromPayload(runtimeConfig, coreRouteConfig, coreManifest);\n\n const { router, queryClient: builtClient } = await routerFactory({\n routeTree: composed?.routeTree,\n context: {\n pluginNav: composed?.nav,\n queryClient: client,\n runtimeConfig,\n cspNonce,\n locale: isServerRendered() ? document.documentElement.lang : undefined,\n apiClient: createApiClient({\n hostUrl: runtimeConfig.hostUrl,\n rpcBase: runtimeConfig.rpcBase,\n connectionError: options.apiConnectionError,\n }),\n authClient: createAuthClient({ runtimeConfig, cspNonce }),\n },\n });\n const providerClient = builtClient ?? client;\n\n // A server-rendered page whose compose degraded to core-only would\n // hydrate a DIFFERENT tree than the HTML contains — a guaranteed React\n // hydration failure. Client-render cleanly instead; hydration is only\n // safe when the composed tree is the one the server rendered.\n const canHydrate = isServerRendered() && Boolean(composed) && !composed!.degraded;\n\n if (canHydrate) {\n const { hydrateRoot } = await import(\"react-dom/client\");\n const { RouterClient } = await import(\"@tanstack/react-router/ssr/client\");\n\n console.log(\"[Hydrate] Calling hydrateRoot...\");\n hydrateRoot(\n document,\n <QueryClientProvider client={providerClient}>\n <RouterClient router={router} />\n </QueryClientProvider>,\n );\n watchHydrationConsumed();\n } else {\n const { createRoot } = await import(\"react-dom/client\");\n const { RouterProvider } = await import(\"@tanstack/react-router\");\n\n console.log(\"[Hydrate] Calling createRoot...\");\n createRoot(document).render(\n <QueryClientProvider client={providerClient}>\n <RouterProvider router={router} />\n </QueryClientProvider>,\n );\n }\n\n if (composed?.degraded) {\n const { toast } = await import(\"sonner\");\n toast.error(\"Some application features couldn't load\", {\n id: \"application-compose-error\",\n description: \"Plugin pages are unavailable. Reload to try again.\",\n duration: Number.POSITIVE_INFINITY,\n action: { label: \"Reload\", onClick: () => window.location.reload() },\n });\n }\n\n console.log(\"[Hydrate] Complete!\");\n })().catch((error) => {\n console.error(\"[Hydrate] Failed:\", error);\n window.__EVERYTHING_DEV_HYDRATE_PROMISE__ = undefined;\n const message = document.createElement(\"main\");\n message.setAttribute(\"role\", \"alert\");\n message.dataset.testid = \"application-startup-error\";\n message.className =\n \"min-h-screen flex flex-col items-center justify-center gap-4 bg-background text-foreground p-6\";\n const heading = document.createElement(\"h1\");\n heading.textContent = \"The application couldn't load\";\n const detail = document.createElement(\"p\");\n detail.textContent = \"Check your connection and reload to try again.\";\n const retry = document.createElement(\"button\");\n retry.textContent = \"Reload\";\n retry.className = \"rounded-md border border-border px-4 py-2\";\n retry.addEventListener(\"click\", () => window.location.reload());\n message.append(heading, detail, retry);\n document.body.replaceChildren(message);\n throw error;\n });\n\n window.__EVERYTHING_DEV_HYDRATE_PROMISE__ = hydratePromise;\n return hydratePromise;\n}\n\nexport default hydrate;\n"],"mappings":";;;;;;;;AAqCA,MAAM,QAAQ,YAAoB;CAChC,MAAM,WAAW,OAAO,uBAAuB,CAAC;CAChD,OAAO,sBAAsB,CAAC,GAAG,UAAU,OAAO;CAClD,IAAI,YAAY,IAAI,KAAK,QAAQ,IAAI,aAAa,SAAS;AAC7D;AAEA,SAAS,kBAAkB,OAA4C;CACrE,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI;EACF,MAAM,MAAM,IAAI,IAAI,KAAK;EACzB,OAAO,IAAI,aAAa,WAAW,IAAI,aAAa;CACtD,QAAQ;EACN,OAAO;CACT;AACF;;;;;;;;;AAgDA,eAAe,mBACb,eACA,iBACA,cACmC;CACnC,MAAM,aAAa,cAAc,IAAI,QAAQA;CAI7C,MAAM,kBAAkB,OACtB,uBACsC;EACtC,IAAI;GACF,MAAM,OAAO,mBAAmB,MAAM,MAAM,EAAE,SAASA,mCAAkB;GACzE,IAAI,CAAC,MAAM,OAAO;GAClB,MAAM,OAAO,UAAMC,gCAAc;IAC/B,MAAM;IACN,SAAS,CAAC;KAAE,KAAK,KAAK;KAAM,QAAQ;IAAW,CAAC;IAChD,SAAS,OAAO,SAAS;KACvB,KAAK,IAAI;KACT,UAAU;KACV,aAAa;IACf;IACA,aAAa,gBAAgB;GAC/B,CAAC;GACD,KACE,+BAA+B,KAAK,UAAU,OAAO,cAAc,KAAK,IAAI,MAAM,OAAO,aAC3F;GACA,OAAO;IAAE,WAAW,KAAK;IAAW,KAAK,KAAK;IAAK,UAAU;GAAK;EACpE,SAAS,OAAO;GACd,QAAQ,MAAM,wCAAwC,KAAK;GAC3D,KAAK,6BAA8B,MAAgB,SAAS;GAC5D;EACF;CACF;CAEA,MAAM,UAAU,cAAc,IAAI;CAClC,IAAI,CAAC,SAAS,SAGZ,OAAO,eAAe,gBAAgB,CAAC,YAAY,CAAC,IAAI;CAG1D,MAAM,SAASC,sCAAqB,UAAU,OAAO;CACrD,IAAI,CAAC,OAAO,SAAS;EACnB,KAAK,8BAA8B,OAAO,MAAM,SAAS;EACzD,OAAO,eAAe,gBAAgB,CAAC,YAAY,CAAC,IAAI;CAC1D;CACA,MAAM,EAAE,cAAc,OAAO;CAC7B,MAAM,gBAAgB,IAAI,IAAI,UAAU,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CAE/D,IAAI;EACF,MAAM,EAAE,iBAAiB,eAAe,MAAM,OAAO;EAErD,KAAK,2BAA2B,QAAQ,OAAO,IAAI,QAAQ,QAAQ,OAAO,WAAW;EAErF,gBACE,QAAQ,QAAQ,KAAK,YAAY;GAC/B,MAAM,OAAO;GACb,OAAO,OAAO;GASd,OAAO,kBAAkB,OAAO,WAAW,IACvC,OAAO,cACP,OAAO,MAAM,QAAQ,uBAAuB,mBAAmB;EACrE,EAAE,CACJ;EACA,KAAK,MAAM,UAAU,QAAQ,SAC3B,KAAK,qBAAqB,OAAO,KAAK,KAAK,OAAO,OAAO;EAM3D,MAAM,qCAAqB,IAAI,IAA+B;EAC9D,MAAM,UAAoB,CAAC;EAC3B,MAAM,mBAAqC,CAAC;EAC5C,KAAK,MAAM,YAAY,WAAW;GAChC,IAAI,SAAS,SAASF,qCAAoB;IACxC,iBAAiB,KAAK,QAAQ;IAC9B;GACF;GACA,MAAM,SAAS,QAAQ,QAAQ,MAAM,MAAM,EAAE,QAAQ,SAAS,IAAI;GAClE,IAAI,CAAC,QAAQ;IACX,QAAQ,KAAK,SAAS,IAAI;IAC1B,KAAK,WAAW,SAAS,KAAK,kCAAkC;IAChE;GACF;GACA,IAAI;IACF,MAAM,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;IAC5E,MAAM,cAAgB,KAAyC,WAC7D;IACF,IAAI,CAAC,aAAa,oBAChB,MAAM,IAAI,MAAM,cAAc,OAAO,KAAK,uCAAuC;IAEnF,mBAAmB,IAAI,SAAS,MAAM,WAAW;IACjD,iBAAiB,KAAK,QAAQ;IAC9B,KAAK,UAAU,OAAO,KAAK,aAAa;GAC1C,SAAS,OAAO;IACd,QAAQ,KAAK,SAAS,IAAI;IAC1B,KAAK,WAAW,SAAS,KAAK,KAAM,MAAgB,SAAS;GAC/D;EACF;EAEA,MAAM,OAAO,UAAMC,gCAAc;GAC/B,MAAM;GACN,SAAS,iBAAiB,KAAK,aAAa;IAC1C,MAAM,SAAS,QAAQ,QAAQ,MAAM,MAAM,EAAE,QAAQ,SAAS,IAAI;IAClE,OAAO;KACL,KAAK,SAAS;KACd,QACE,QAAQ,SAAS,SAAS,SAASD,sCAAqB,aAAa,SAAS;IAClF;GACF,CAAC;GACD,SAAS,OAAO,QAAQ;IACtB,IAAI,IAAI,QAAQA,qCAAoB;KAClC,MAAM,WAAW,cAAc,IAAI,IAAI,GAAG;KAC1C,IAAI,CAAC,UAAU,MAAM,IAAI,MAAM,wCAAwC,IAAI,IAAI,EAAE;KACjF,OAAO;MAAE,KAAK,IAAI;MAAK;MAAU,aAAa;KAAgB;IAChE;IACA,MAAM,WAAW,cAAc,IAAI,IAAI,GAAG;IAC1C,MAAM,cAAc,mBAAmB,IAAI,IAAI,GAAG;IAClD,IAAI,CAAC,YAAY,CAAC,aAChB,MAAM,IAAI,MAAM,uBAAuB,IAAI,IAAI,wBAAwB;IAEzE,OAAO;KAAE,KAAK,IAAI;KAAK;KAAU;IAAY;GAC/C;GACA,aAAa,gBAAgB;EAC/B,CAAC;EAED,IAAI,QAAQ,SAAS,GAAG;GACtB,KAAK,qBAAqB,QAAQ,KAAK,IAAI,EAAE,yBAAyB;GACtE,OAAO;IAAE,WAAW,KAAK;IAAW,KAAK,KAAK;IAAK,UAAU;GAAK;EACpE;EAEA,IAAI,KAAK,WAAW,QAAQ,QAAQ;GAClC,QAAQ,KACN,6CAA6C,KAAK,OAAO,aAAa,QAAQ,OAAO,sBACvF;GACA,KAAK,gCAAgC,QAAQ,OAAO,UAAU,KAAK,QAAQ;GAC3E,OAAO,gBAAgB,SAAS;EAClC;EAEA,KACE,qBAAqB,KAAK,UAAU,OAAO,cAAc,KAAK,IAAI,MAAM,OAAO,aACjF;EACA,OAAO;GAAE,WAAW,KAAK;GAAW,KAAK,KAAK;GAAK,UAAU;EAAM;CACrE,SAAS,OAAO;EACd,QAAQ,MAAM,wDAAwD,KAAK;EAC3E,KAAK,yBAA0B,MAAgB,SAAS;EACxD,OAAO,gBAAgB,SAAS;CAClC;AACF;AAEA,SAAS,mBAA4B;CACnC,IAAI,SAAS,gBAAgB,aAAa,qBAAqB,GAC7D,OAAO;CAET,IAAI,OAAO,2BAA2B,QACpC,OAAO,OAAO;CAEhB,OAAO,OAAO,UAAU;AAC1B;AAEA,SAAS,yBAAyB;CAChC,MAAM,iBAAiB,kBAAkB;EACvC,IAAI,OAAO,UAAU,QAAW;GAC9B,cAAc,cAAc;GAC5B,KAAK,8CAA8C;EACrD;CACF,GAAG,EAAE;AACP;AAEA,eAAsB,QAAQ,SAA6B;CACzD,IAAI,OAAO,oCACT,OAAO,OAAO;CAGhB,MAAM,kBAAkB,YAAY;EAClC,QAAQ,IAAI,uBAAuB;EAEnC,MAAM,gBAAgB,QAAQ,UAAU,iBAAiB;EACzD,MAAM,WAAW,YAAY;EAE7B,IAAI,CAAC,cAAc,WAAW,CAAC,cAAc,SAC3C,MAAM,IAAI,MAAM,8CAA8C;EAGhE,MAAM,CAAC,EAAE,uBAAuB,iBAAiB,MAAM,QAAQ,IAAI,CACjE,OAAO,0BACP,QAAQ,eACJ,QAAQ,QAAQ,QAAQ,YAAY,IACpC,OAAO,sBAAkB,CAAC,MAAM,MAAM,EAAE,YAAgC,CAC9E,CAAC;EACD,MAAM,CAAC,mBAAmB,MAAM,QAAQ,IAAI,CAC1C,QAAQ,YAAY,CAAC,CAAC,MAAM,QAAS,aAAa,MAAM,IAAI,UAAU,GAAI,CAC5E,CAAC;EACD,MAAM,eAAe,QAAQ,WACzB,MAAM,QACH,SAAS,CAAC,CACV,MAAM,QACL,OAAO,QAAQ,YAAY,QAAQ,QAAQ,aAAa,MACnD,IAA6B,UAC9B,GACN,CAAC,CACA,MAAM,YAAQG,sCAAoB,GAAG,CAAC,IACzC;EACJ,MAAM,SAAS,QAAQ,oBAAoB,KAAK,mBAAmB;EAEnE,KAAK,kBAAkB,QAAQ,OAAO,KAAK,GAAG;EAE9C,MAAM,WAAW,MAAM,mBAAmB,eAAe,iBAAiB,YAAY;EAEtF,MAAM,EAAE,QAAQ,aAAa,gBAAgB,MAAM,cAAc;GAC/D,WAAW,UAAU;GACrB,SAAS;IACP,WAAW,UAAU;IACrB,aAAa;IACb;IACA;IACA,QAAQ,iBAAiB,IAAI,SAAS,gBAAgB,OAAO;IAC7D,WAAW,gBAAgB;KACzB,SAAS,cAAc;KACvB,SAAS,cAAc;KACvB,iBAAiB,QAAQ;IAC3B,CAAC;IACD,YAAY,iBAAiB;KAAE;KAAe;IAAS,CAAC;GAC1D;EACF,CAAC;EACD,MAAM,iBAAiB,eAAe;EAQtC,IAFmB,iBAAiB,KAAK,QAAQ,QAAQ,KAAK,CAAC,SAAU,UAEzD;GACd,MAAM,EAAE,gBAAgB,MAAM,OAAO;GACrC,MAAM,EAAE,iBAAiB,MAAM,OAAO;GAEtC,QAAQ,IAAI,kCAAkC;GAC9C,YACE,UACA,oBAAC,qBAAD;IAAqB,QAAQ;cAC3B,oBAAC,cAAD,EAAsB,OAAS;GACZ,EACvB;GACA,uBAAuB;EACzB,OAAO;GACL,MAAM,EAAE,eAAe,MAAM,OAAO;GACpC,MAAM,EAAE,mBAAmB,MAAM,OAAO;GAExC,QAAQ,IAAI,iCAAiC;GAC7C,WAAW,QAAQ,CAAC,CAAC,OACnB,oBAAC,qBAAD;IAAqB,QAAQ;cAC3B,oBAAC,gBAAD,EAAwB,OAAS;GACd,EACvB;EACF;EAEA,IAAI,UAAU,UAAU;GACtB,MAAM,EAAE,UAAU,MAAM,OAAO;GAC/B,MAAM,MAAM,2CAA2C;IACrD,IAAI;IACJ,aAAa;IACb,UAAU,OAAO;IACjB,QAAQ;KAAE,OAAO;KAAU,eAAe,OAAO,SAAS,OAAO;IAAE;GACrE,CAAC;EACH;EAEA,QAAQ,IAAI,qBAAqB;CACnC,EAAC,CAAE,CAAC,CAAC,OAAO,UAAU;EACpB,QAAQ,MAAM,qBAAqB,KAAK;EACxC,OAAO,qCAAqC;EAC5C,MAAM,UAAU,SAAS,cAAc,MAAM;EAC7C,QAAQ,aAAa,QAAQ,OAAO;EACpC,QAAQ,QAAQ,SAAS;EACzB,QAAQ,YACN;EACF,MAAM,UAAU,SAAS,cAAc,IAAI;EAC3C,QAAQ,cAAc;EACtB,MAAM,SAAS,SAAS,cAAc,GAAG;EACzC,OAAO,cAAc;EACrB,MAAM,QAAQ,SAAS,cAAc,QAAQ;EAC7C,MAAM,cAAc;EACpB,MAAM,YAAY;EAClB,MAAM,iBAAiB,eAAe,OAAO,SAAS,OAAO,CAAC;EAC9D,QAAQ,OAAO,SAAS,QAAQ,KAAK;EACrC,SAAS,KAAK,gBAAgB,OAAO;EACrC,MAAM;CACR,CAAC;CAED,OAAO,qCAAqC;CAC5C,OAAO;AACT"}
@@ -0,0 +1,153 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_locale = require('./locale.cjs');
3
+ const require_message_catalogs = require('./message-catalogs.cjs');
4
+ let _lingui_core = require("@lingui/core");
5
+ let _lingui_react = require("@lingui/react");
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+
9
+ //#region src/ui/i18n.tsx
10
+ const SharedLocaleContext = (0, react.createContext)(null);
11
+ const browserStores = /* @__PURE__ */ new Map();
12
+ function createLocaleStore(initialLocale) {
13
+ let locale = initialLocale;
14
+ const listeners = /* @__PURE__ */ new Set();
15
+ return {
16
+ get: () => locale,
17
+ set: (nextLocale) => {
18
+ if (nextLocale === locale) return;
19
+ locale = nextLocale;
20
+ for (const listener of listeners) listener();
21
+ },
22
+ subscribe: (listener) => {
23
+ listeners.add(listener);
24
+ return () => listeners.delete(listener);
25
+ }
26
+ };
27
+ }
28
+ function createLocaleRuntime({ locales, defaultLocale, cookieName }) {
29
+ const LocaleContext = (0, react.createContext)(null);
30
+ const getBrowserLocales = () => {
31
+ if (typeof navigator === "undefined") return [];
32
+ if (Array.isArray(navigator.languages)) return navigator.languages;
33
+ return navigator.language ? [navigator.language] : [];
34
+ };
35
+ const detectLocale = (preferredLocale) => require_locale.resolveLocale({
36
+ preferredLocale,
37
+ cookie: typeof document === "undefined" ? "" : document.cookie,
38
+ browserLocales: getBrowserLocales(),
39
+ locales,
40
+ defaultLocale,
41
+ cookieName
42
+ });
43
+ const getStore = (initialLocale) => {
44
+ const initial = require_locale.matchLocale(initialLocale, locales) ?? detectLocale();
45
+ if (typeof window === "undefined") return createLocaleStore(initial);
46
+ const existing = browserStores.get(cookieName);
47
+ if (existing) return existing;
48
+ const store = createLocaleStore(initial);
49
+ browserStores.set(cookieName, store);
50
+ return store;
51
+ };
52
+ function LocaleProvider({ children, messages, initialLocale, preferredLocale, onLocaleChange }) {
53
+ const parent = (0, react.useContext)(SharedLocaleContext);
54
+ const sharedParent = parent?.cookieName === cookieName ? parent : null;
55
+ const resolvedInitial = require_locale.matchLocale(preferredLocale, locales) ?? require_locale.matchLocale(initialLocale, locales) ?? require_locale.matchLocale(sharedParent?.locale, locales);
56
+ const serverLocale = resolvedInitial ?? defaultLocale;
57
+ const store = (0, react.useMemo)(() => getStore(resolvedInitial), []);
58
+ const locale = (0, react.useSyncExternalStore)(store.subscribe, store.get, () => serverLocale);
59
+ const i18n = (0, react.useMemo)(() => (0, _lingui_core.setupI18n)({
60
+ locale,
61
+ messages: { [locale]: messages(locale) }
62
+ }), [locale, messages]);
63
+ (0, react.useEffect)(() => {
64
+ if (sharedParent) return;
65
+ const resolved = require_locale.matchLocale(preferredLocale, locales);
66
+ if (resolved) {
67
+ Reflect.set(document, "cookie", require_locale.serializeLocaleCookie(cookieName, resolved, window.location.protocol === "https:"));
68
+ store.set(resolved);
69
+ }
70
+ }, [
71
+ preferredLocale,
72
+ sharedParent,
73
+ store
74
+ ]);
75
+ (0, react.useEffect)(() => {
76
+ if (sharedParent) return;
77
+ const previousLocale = document.documentElement.lang;
78
+ document.documentElement.lang = locale;
79
+ return () => {
80
+ document.documentElement.lang = previousLocale;
81
+ };
82
+ }, [locale, sharedParent]);
83
+ const selectLocale = (0, react.useCallback)(async (nextLocale) => {
84
+ if (!locales.includes(nextLocale)) return;
85
+ if (sharedParent && !onLocaleChange) {
86
+ await sharedParent.selectLocale(nextLocale);
87
+ return;
88
+ }
89
+ if (onLocaleChange) await onLocaleChange(nextLocale);
90
+ if (typeof document !== "undefined") Reflect.set(document, "cookie", require_locale.serializeLocaleCookie(cookieName, nextLocale, typeof window !== "undefined" && window.location.protocol === "https:"));
91
+ store.set(nextLocale);
92
+ }, [
93
+ onLocaleChange,
94
+ sharedParent,
95
+ store
96
+ ]);
97
+ const value = (0, react.useMemo)(() => ({
98
+ locale,
99
+ selectLocale
100
+ }), [locale, selectLocale]);
101
+ const sharedValue = (0, react.useMemo)(() => ({
102
+ cookieName,
103
+ locale,
104
+ selectLocale: async (next) => {
105
+ const matched = require_locale.matchLocale(next, locales);
106
+ if (matched) await selectLocale(matched);
107
+ }
108
+ }), [locale, selectLocale]);
109
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SharedLocaleContext.Provider, {
110
+ value: sharedValue,
111
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LocaleContext.Provider, {
112
+ value,
113
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_lingui_react.I18nProvider, {
114
+ i18n,
115
+ children
116
+ })
117
+ })
118
+ });
119
+ }
120
+ function useLocale() {
121
+ const value = (0, react.useContext)(LocaleContext);
122
+ if (!value) throw new Error("useLocale must be used within LocaleProvider");
123
+ return value;
124
+ }
125
+ function useTranslation() {
126
+ const { _ } = (0, _lingui_react.useLingui)();
127
+ return (0, react.useCallback)((id, values) => _(id, values), [_]);
128
+ }
129
+ const getLocale = () => require_locale.matchLocale(browserStores.get(cookieName)?.get(), locales) ?? detectLocale();
130
+ return {
131
+ LocaleProvider,
132
+ useLocale,
133
+ useTranslation,
134
+ detectLocale,
135
+ getLocale
136
+ };
137
+ }
138
+
139
+ //#endregion
140
+ Object.defineProperty(exports, 'Trans', {
141
+ enumerable: true,
142
+ get: function () {
143
+ return _lingui_react.Trans;
144
+ }
145
+ });
146
+ exports.createLocaleRuntime = createLocaleRuntime;
147
+ exports.createMessageCatalogs = require_message_catalogs.createMessageCatalogs;
148
+ exports.matchLocale = require_locale.matchLocale;
149
+ exports.readAcceptLanguage = require_locale.readAcceptLanguage;
150
+ exports.readLocaleCookie = require_locale.readLocaleCookie;
151
+ exports.resolveLocale = require_locale.resolveLocale;
152
+ exports.serializeLocaleCookie = require_locale.serializeLocaleCookie;
153
+ //# sourceMappingURL=i18n.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.cjs","names":["createContext","resolveLocale","matchLocale","useContext","useMemo","useSyncExternalStore","setupI18n","serializeLocaleCookie","useCallback","I18nProvider","useLingui"],"sources":["../../src/ui/i18n.tsx"],"sourcesContent":["import { type Messages, setupI18n } from \"@lingui/core\";\nimport { I18nProvider, useLingui } from \"@lingui/react\";\nimport {\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useSyncExternalStore,\n} from \"react\";\nimport { matchLocale, resolveLocale, serializeLocaleCookie } from \"./locale\";\n\nexport { Trans } from \"@lingui/react\";\nexport type { LocaleOptions } from \"./locale\";\nexport {\n matchLocale,\n readAcceptLanguage,\n readLocaleCookie,\n resolveLocale,\n serializeLocaleCookie,\n} from \"./locale\";\nexport { createMessageCatalogs } from \"./message-catalogs\";\n\ntype SharedLocaleState = {\n cookieName: string;\n locale: string;\n selectLocale: (locale: string) => Promise<void>;\n};\n\nconst SharedLocaleContext = createContext<SharedLocaleState | null>(null);\n\ntype LocaleStore = {\n get: () => string;\n set: (locale: string) => void;\n subscribe: (listener: () => void) => () => void;\n};\n\nconst browserStores = new Map<string, LocaleStore>();\n\nfunction createLocaleStore(initialLocale: string): LocaleStore {\n let locale = initialLocale;\n const listeners = new Set<() => void>();\n return {\n get: () => locale,\n set: (nextLocale) => {\n if (nextLocale === locale) return;\n locale = nextLocale;\n for (const listener of listeners) listener();\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n };\n}\n\nexport function createLocaleRuntime<const Locale extends string>({\n locales,\n defaultLocale,\n cookieName,\n}: {\n locales: readonly Locale[];\n defaultLocale: Locale;\n cookieName: string;\n}) {\n type ContextValue = {\n locale: Locale;\n selectLocale: (locale: Locale) => Promise<void>;\n };\n\n const LocaleContext = createContext<ContextValue | null>(null);\n\n const getBrowserLocales = (): readonly string[] => {\n if (typeof navigator === \"undefined\") return [];\n if (Array.isArray(navigator.languages)) return navigator.languages;\n return navigator.language ? [navigator.language] : [];\n };\n\n const detectLocale = (preferredLocale?: string | null): Locale =>\n resolveLocale({\n preferredLocale,\n cookie: typeof document === \"undefined\" ? \"\" : document.cookie,\n browserLocales: getBrowserLocales(),\n locales,\n defaultLocale,\n cookieName,\n });\n\n const getStore = (initialLocale?: string | null) => {\n const initial = matchLocale(initialLocale, locales) ?? detectLocale();\n if (typeof window === \"undefined\") return createLocaleStore(initial);\n const existing = browserStores.get(cookieName);\n if (existing) return existing;\n const store = createLocaleStore(initial);\n browserStores.set(cookieName, store);\n return store;\n };\n\n function LocaleProvider({\n children,\n messages,\n initialLocale,\n preferredLocale,\n onLocaleChange,\n }: {\n children: ReactNode;\n messages: (locale: Locale) => Messages;\n initialLocale?: string | null;\n preferredLocale?: string | null;\n onLocaleChange?: (locale: Locale) => void | Promise<void>;\n }) {\n const parent = useContext(SharedLocaleContext);\n const sharedParent = parent?.cookieName === cookieName ? parent : null;\n const resolvedInitial =\n matchLocale(preferredLocale, locales) ??\n matchLocale(initialLocale, locales) ??\n matchLocale(sharedParent?.locale, locales);\n const serverLocale = resolvedInitial ?? defaultLocale;\n const store = useMemo(() => getStore(resolvedInitial), []);\n const locale = useSyncExternalStore(store.subscribe, store.get, () => serverLocale) as Locale;\n const i18n = useMemo(\n () => setupI18n({ locale, messages: { [locale]: messages(locale) } }),\n [locale, messages],\n );\n\n useEffect(() => {\n if (sharedParent) return;\n const resolved = matchLocale(preferredLocale, locales);\n if (resolved) {\n Reflect.set(\n document,\n \"cookie\",\n serializeLocaleCookie(cookieName, resolved, window.location.protocol === \"https:\"),\n );\n store.set(resolved);\n }\n }, [preferredLocale, sharedParent, store]);\n\n useEffect(() => {\n if (sharedParent) return;\n const previousLocale = document.documentElement.lang;\n document.documentElement.lang = locale;\n return () => {\n document.documentElement.lang = previousLocale;\n };\n }, [locale, sharedParent]);\n\n const selectLocale = useCallback(\n async (nextLocale: Locale) => {\n if (!locales.includes(nextLocale)) return;\n if (sharedParent && !onLocaleChange) {\n await sharedParent.selectLocale(nextLocale);\n return;\n }\n if (onLocaleChange) await onLocaleChange(nextLocale);\n if (typeof document !== \"undefined\") {\n Reflect.set(\n document,\n \"cookie\",\n serializeLocaleCookie(\n cookieName,\n nextLocale,\n typeof window !== \"undefined\" && window.location.protocol === \"https:\",\n ),\n );\n }\n store.set(nextLocale);\n },\n [onLocaleChange, sharedParent, store],\n );\n\n const value = useMemo(() => ({ locale, selectLocale }), [locale, selectLocale]);\n const sharedValue = useMemo(\n () => ({\n cookieName,\n locale,\n selectLocale: async (next: string) => {\n const matched = matchLocale(next, locales);\n if (matched) await selectLocale(matched);\n },\n }),\n [locale, selectLocale],\n );\n return (\n <SharedLocaleContext.Provider value={sharedValue}>\n <LocaleContext.Provider value={value}>\n <I18nProvider i18n={i18n}>{children}</I18nProvider>\n </LocaleContext.Provider>\n </SharedLocaleContext.Provider>\n );\n }\n\n function useLocale(): ContextValue {\n const value = useContext(LocaleContext);\n if (!value) throw new Error(\"useLocale must be used within LocaleProvider\");\n return value;\n }\n\n function useTranslation<MessageId extends string>() {\n const { _ } = useLingui();\n return useCallback(\n (id: MessageId, values?: Record<string, string | number>) => _(id, values),\n [_],\n );\n }\n\n const getLocale = (): Locale =>\n matchLocale(browserStores.get(cookieName)?.get(), locales) ?? detectLocale();\n\n return { LocaleProvider, useLocale, useTranslation, detectLocale, getLocale };\n}\n"],"mappings":";;;;;;;;;AA8BA,MAAM,0BAAsBA,qBAAwC,IAAI;AAQxE,MAAM,gCAAgB,IAAI,IAAyB;AAEnD,SAAS,kBAAkB,eAAoC;CAC7D,IAAI,SAAS;CACb,MAAM,4BAAY,IAAI,IAAgB;CACtC,OAAO;EACL,WAAW;EACX,MAAM,eAAe;GACnB,IAAI,eAAe,QAAQ;GAC3B,SAAS;GACT,KAAK,MAAM,YAAY,WAAW,SAAS;EAC7C;EACA,YAAY,aAAa;GACvB,UAAU,IAAI,QAAQ;GACtB,aAAa,UAAU,OAAO,QAAQ;EACxC;CACF;AACF;AAEA,SAAgB,oBAAiD,EAC/D,SACA,eACA,cAKC;CAMD,MAAM,oBAAgBA,qBAAmC,IAAI;CAE7D,MAAM,0BAA6C;EACjD,IAAI,OAAO,cAAc,aAAa,OAAO,CAAC;EAC9C,IAAI,MAAM,QAAQ,UAAU,SAAS,GAAG,OAAO,UAAU;EACzD,OAAO,UAAU,WAAW,CAAC,UAAU,QAAQ,IAAI,CAAC;CACtD;CAEA,MAAM,gBAAgB,oBACpBC,6BAAc;EACZ;EACA,QAAQ,OAAO,aAAa,cAAc,KAAK,SAAS;EACxD,gBAAgB,kBAAkB;EAClC;EACA;EACA;CACF,CAAC;CAEH,MAAM,YAAY,kBAAkC;EAClD,MAAM,UAAUC,2BAAY,eAAe,OAAO,KAAK,aAAa;EACpE,IAAI,OAAO,WAAW,aAAa,OAAO,kBAAkB,OAAO;EACnE,MAAM,WAAW,cAAc,IAAI,UAAU;EAC7C,IAAI,UAAU,OAAO;EACrB,MAAM,QAAQ,kBAAkB,OAAO;EACvC,cAAc,IAAI,YAAY,KAAK;EACnC,OAAO;CACT;CAEA,SAAS,eAAe,EACtB,UACA,UACA,eACA,iBACA,kBAOC;EACD,MAAM,aAASC,kBAAW,mBAAmB;EAC7C,MAAM,eAAe,QAAQ,eAAe,aAAa,SAAS;EAClE,MAAM,kBACJD,2BAAY,iBAAiB,OAAO,KACpCA,2BAAY,eAAe,OAAO,KAClCA,2BAAY,cAAc,QAAQ,OAAO;EAC3C,MAAM,eAAe,mBAAmB;EACxC,MAAM,YAAQE,qBAAc,SAAS,eAAe,GAAG,CAAC,CAAC;EACzD,MAAM,aAASC,4BAAqB,MAAM,WAAW,MAAM,WAAW,YAAY;EAClF,MAAM,WAAOD,yBACLE,wBAAU;GAAE;GAAQ,UAAU,GAAG,SAAS,SAAS,MAAM,EAAE;EAAE,CAAC,GACpE,CAAC,QAAQ,QAAQ,CACnB;EAEA,2BAAgB;GACd,IAAI,cAAc;GAClB,MAAM,WAAWJ,2BAAY,iBAAiB,OAAO;GACrD,IAAI,UAAU;IACZ,QAAQ,IACN,UACA,UACAK,qCAAsB,YAAY,UAAU,OAAO,SAAS,aAAa,QAAQ,CACnF;IACA,MAAM,IAAI,QAAQ;GACpB;EACF,GAAG;GAAC;GAAiB;GAAc;EAAK,CAAC;EAEzC,2BAAgB;GACd,IAAI,cAAc;GAClB,MAAM,iBAAiB,SAAS,gBAAgB;GAChD,SAAS,gBAAgB,OAAO;GAChC,aAAa;IACX,SAAS,gBAAgB,OAAO;GAClC;EACF,GAAG,CAAC,QAAQ,YAAY,CAAC;EAEzB,MAAM,mBAAeC,mBACnB,OAAO,eAAuB;GAC5B,IAAI,CAAC,QAAQ,SAAS,UAAU,GAAG;GACnC,IAAI,gBAAgB,CAAC,gBAAgB;IACnC,MAAM,aAAa,aAAa,UAAU;IAC1C;GACF;GACA,IAAI,gBAAgB,MAAM,eAAe,UAAU;GACnD,IAAI,OAAO,aAAa,aACtB,QAAQ,IACN,UACA,UACAD,qCACE,YACA,YACA,OAAO,WAAW,eAAe,OAAO,SAAS,aAAa,QAChE,CACF;GAEF,MAAM,IAAI,UAAU;EACtB,GACA;GAAC;GAAgB;GAAc;EAAK,CACtC;EAEA,MAAM,YAAQH,sBAAe;GAAE;GAAQ;EAAa,IAAI,CAAC,QAAQ,YAAY,CAAC;EAC9E,MAAM,kBAAcA,sBACX;GACL;GACA;GACA,cAAc,OAAO,SAAiB;IACpC,MAAM,UAAUF,2BAAY,MAAM,OAAO;IACzC,IAAI,SAAS,MAAM,aAAa,OAAO;GACzC;EACF,IACA,CAAC,QAAQ,YAAY,CACvB;EACA,OACE,2CAAC,oBAAoB,UAArB;GAA8B,OAAO;aACnC,2CAAC,cAAc,UAAf;IAA+B;cAC7B,2CAACO,4BAAD;KAAoB;KAAO;IAAuB;GAC5B;EACI;CAElC;CAEA,SAAS,YAA0B;EACjC,MAAM,YAAQN,kBAAW,aAAa;EACtC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,8CAA8C;EAC1E,OAAO;CACT;CAEA,SAAS,iBAA2C;EAClD,MAAM,EAAE,UAAMO,yBAAU;EACxB,WAAOF,oBACJ,IAAe,WAA6C,EAAE,IAAI,MAAM,GACzE,CAAC,CAAC,CACJ;CACF;CAEA,MAAM,kBACJN,2BAAY,cAAc,IAAI,UAAU,CAAC,EAAE,IAAI,GAAG,OAAO,KAAK,aAAa;CAE7E,OAAO;EAAE;EAAgB;EAAW;EAAgB;EAAc;CAAU;AAC9E"}
@@ -0,0 +1,29 @@
1
+ import { LocaleOptions, matchLocale, readAcceptLanguage, readLocaleCookie, resolveLocale, serializeLocaleCookie } from "./locale.cjs";
2
+ import { createMessageCatalogs } from "./message-catalogs.cjs";
3
+ import { Messages } from "@lingui/core";
4
+ import { ReactNode } from "react";
5
+ import { Trans } from "@lingui/react";
6
+ //#region src/ui/i18n.d.ts
7
+ declare function createLocaleRuntime<const Locale extends string>({ locales, defaultLocale, cookieName }: {
8
+ locales: readonly Locale[];
9
+ defaultLocale: Locale;
10
+ cookieName: string;
11
+ }): {
12
+ LocaleProvider: ({ children, messages, initialLocale, preferredLocale, onLocaleChange }: {
13
+ children: ReactNode;
14
+ messages: (locale: Locale) => Messages;
15
+ initialLocale?: string | null;
16
+ preferredLocale?: string | null;
17
+ onLocaleChange?: (locale: Locale) => void | Promise<void>;
18
+ }) => import("react").JSX.Element;
19
+ useLocale: () => {
20
+ locale: Locale;
21
+ selectLocale: (locale: Locale) => Promise<void>;
22
+ };
23
+ useTranslation: <MessageId extends string>() => (id: MessageId, values?: Record<string, string | number>) => string;
24
+ detectLocale: (preferredLocale?: string | null) => Locale;
25
+ getLocale: () => Locale;
26
+ };
27
+ //#endregion
28
+ export { type LocaleOptions, Trans, createLocaleRuntime, createMessageCatalogs, matchLocale, readAcceptLanguage, readLocaleCookie, resolveLocale, serializeLocaleCookie };
29
+ //# sourceMappingURL=i18n.d.cts.map
@@ -0,0 +1,29 @@
1
+ import { LocaleOptions, matchLocale, readAcceptLanguage, readLocaleCookie, resolveLocale, serializeLocaleCookie } from "./locale.mjs";
2
+ import { createMessageCatalogs } from "./message-catalogs.mjs";
3
+ import { Messages } from "@lingui/core";
4
+ import { Trans } from "@lingui/react";
5
+ import { ReactNode } from "react";
6
+ //#region src/ui/i18n.d.ts
7
+ declare function createLocaleRuntime<const Locale extends string>({ locales, defaultLocale, cookieName }: {
8
+ locales: readonly Locale[];
9
+ defaultLocale: Locale;
10
+ cookieName: string;
11
+ }): {
12
+ LocaleProvider: ({ children, messages, initialLocale, preferredLocale, onLocaleChange }: {
13
+ children: ReactNode;
14
+ messages: (locale: Locale) => Messages;
15
+ initialLocale?: string | null;
16
+ preferredLocale?: string | null;
17
+ onLocaleChange?: (locale: Locale) => void | Promise<void>;
18
+ }) => import("react").JSX.Element;
19
+ useLocale: () => {
20
+ locale: Locale;
21
+ selectLocale: (locale: Locale) => Promise<void>;
22
+ };
23
+ useTranslation: <MessageId extends string>() => (id: MessageId, values?: Record<string, string | number>) => string;
24
+ detectLocale: (preferredLocale?: string | null) => Locale;
25
+ getLocale: () => Locale;
26
+ };
27
+ //#endregion
28
+ export { type LocaleOptions, Trans, createLocaleRuntime, createMessageCatalogs, matchLocale, readAcceptLanguage, readLocaleCookie, resolveLocale, serializeLocaleCookie };
29
+ //# sourceMappingURL=i18n.d.mts.map