@bleedingdev/modern-js-renderer-solid 0.0.0-bootstrap → 3.9.3-ultramodern.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/dist/esm/actions.js +283 -0
  2. package/dist/esm/application-router.js +25 -0
  3. package/dist/esm/client.js +49 -0
  4. package/dist/esm/entry-application.js +60 -0
  5. package/dist/esm/entry-client.js +23 -0
  6. package/dist/esm/federation-context.js +25 -0
  7. package/dist/esm/federation-ssr.js +84 -0
  8. package/dist/esm/federation.js +83 -0
  9. package/dist/esm/i18n/I18nProvider.js +33 -0
  10. package/dist/esm/i18n/LocalizedLink.js +74 -0
  11. package/dist/esm/i18n/context.js +3 -0
  12. package/dist/esm/i18n/index.js +8 -0
  13. package/dist/esm/i18n/languageSync.js +50 -0
  14. package/dist/esm/i18n/types.js +0 -0
  15. package/dist/esm/i18n/useI18n.js +74 -0
  16. package/dist/esm/index.js +58 -0
  17. package/dist/esm/manifest.js +150 -0
  18. package/dist/esm/route-completion.js +150 -0
  19. package/dist/esm/route-data-error.js +108 -0
  20. package/dist/esm/router-binding/Asset.js +201 -0
  21. package/dist/esm/router-binding/CatchBoundary.js +94 -0
  22. package/dist/esm/router-binding/ClientOnly.js +26 -0
  23. package/dist/esm/router-binding/HeadContent.js +8 -0
  24. package/dist/esm/router-binding/LICENSE +21 -0
  25. package/dist/esm/router-binding/Match.js +319 -0
  26. package/dist/esm/router-binding/Matches.js +117 -0
  27. package/dist/esm/router-binding/PROVENANCE.json +94 -0
  28. package/dist/esm/router-binding/RouterProvider.js +51 -0
  29. package/dist/esm/router-binding/SafeFragment.js +5 -0
  30. package/dist/esm/router-binding/ScriptOnce.js +15 -0
  31. package/dist/esm/router-binding/Scripts.js +30 -0
  32. package/dist/esm/router-binding/ScrollRestoration.js +16 -0
  33. package/dist/esm/router-binding/Transitioner.js +103 -0
  34. package/dist/esm/router-binding/awaited.js +48 -0
  35. package/dist/esm/router-binding/fileRoute.js +83 -0
  36. package/dist/esm/router-binding/flightData.js +23 -0
  37. package/dist/esm/router-binding/headContentUtils.js +162 -0
  38. package/dist/esm/router-binding/history.js +0 -0
  39. package/dist/esm/router-binding/index.js +35 -0
  40. package/dist/esm/router-binding/lazyRouteComponent.js +30 -0
  41. package/dist/esm/router-binding/link.js +389 -0
  42. package/dist/esm/router-binding/matchContext.js +7 -0
  43. package/dist/esm/router-binding/nonRouteComponentContext.js +13 -0
  44. package/dist/esm/router-binding/not-found.js +35 -0
  45. package/dist/esm/router-binding/publicMatchData.js +447 -0
  46. package/dist/esm/router-binding/registryTransfer.js +210 -0
  47. package/dist/esm/router-binding/renderRouteNotFound.js +23 -0
  48. package/dist/esm/router-binding/route.js +143 -0
  49. package/dist/esm/router-binding/router.js +13 -0
  50. package/dist/esm/router-binding/routerContext.js +3 -0
  51. package/dist/esm/router-binding/routerStores.js +50 -0
  52. package/dist/esm/router-binding/scroll-restoration.js +13 -0
  53. package/dist/esm/router-binding/typePrimitives.js +0 -0
  54. package/dist/esm/router-binding/useBlocker.js +152 -0
  55. package/dist/esm/router-binding/useCanGoBack.js +7 -0
  56. package/dist/esm/router-binding/useLoaderData.js +9 -0
  57. package/dist/esm/router-binding/useLoaderDeps.js +8 -0
  58. package/dist/esm/router-binding/useLocation.js +14 -0
  59. package/dist/esm/router-binding/useMatch.js +28 -0
  60. package/dist/esm/router-binding/useNavigate.js +19 -0
  61. package/dist/esm/router-binding/useParams.js +13 -0
  62. package/dist/esm/router-binding/useRouteContext.js +8 -0
  63. package/dist/esm/router-binding/useRouter.js +10 -0
  64. package/dist/esm/router-binding/useRouterState.js +19 -0
  65. package/dist/esm/router-binding/useSearch.js +13 -0
  66. package/dist/esm/router-binding/utils.js +23 -0
  67. package/dist/esm/router.js +187 -0
  68. package/dist/esm-node/actions.js +263 -0
  69. package/dist/esm-node/application-router.js +25 -0
  70. package/dist/esm-node/client.js +49 -0
  71. package/dist/esm-node/entry-application.js +110 -0
  72. package/dist/esm-node/entry-client.js +23 -0
  73. package/dist/esm-node/entry-server.js +47 -0
  74. package/dist/esm-node/federation-context.js +25 -0
  75. package/dist/esm-node/federation-ssr.js +84 -0
  76. package/dist/esm-node/federation.js +83 -0
  77. package/dist/esm-node/i18n/I18nProvider.js +42 -0
  78. package/dist/esm-node/i18n/LocalizedLink.js +142 -0
  79. package/dist/esm-node/i18n/context.js +3 -0
  80. package/dist/esm-node/i18n/index.js +8 -0
  81. package/dist/esm-node/i18n/languageSync.js +50 -0
  82. package/dist/esm-node/i18n/types.js +1 -0
  83. package/dist/esm-node/i18n/useI18n.js +74 -0
  84. package/dist/esm-node/index.js +58 -0
  85. package/dist/esm-node/manifest.js +150 -0
  86. package/dist/esm-node/native-promise-serialization.js +113 -0
  87. package/dist/esm-node/plugin/compiler.js +209 -0
  88. package/dist/esm-node/plugin/create.js +235 -0
  89. package/dist/esm-node/plugin/index.js +73 -0
  90. package/dist/esm-node/plugin/profile.js +52 -0
  91. package/dist/esm-node/route-completion.js +160 -0
  92. package/dist/esm-node/route-data-error.js +108 -0
  93. package/dist/esm-node/router-binding/Asset.js +171 -0
  94. package/dist/esm-node/router-binding/CatchBoundary.js +136 -0
  95. package/dist/esm-node/router-binding/ClientOnly.js +46 -0
  96. package/dist/esm-node/router-binding/HeadContent.js +8 -0
  97. package/dist/esm-node/router-binding/LICENSE +21 -0
  98. package/dist/esm-node/router-binding/Match.js +660 -0
  99. package/dist/esm-node/router-binding/Matches.js +161 -0
  100. package/dist/esm-node/router-binding/PROVENANCE.json +94 -0
  101. package/dist/esm-node/router-binding/RouterProvider.js +87 -0
  102. package/dist/esm-node/router-binding/SafeFragment.js +5 -0
  103. package/dist/esm-node/router-binding/ScriptOnce.js +16 -0
  104. package/dist/esm-node/router-binding/Scripts.js +49 -0
  105. package/dist/esm-node/router-binding/ScrollRestoration.js +16 -0
  106. package/dist/esm-node/router-binding/Transitioner.js +103 -0
  107. package/dist/esm-node/router-binding/awaited.js +75 -0
  108. package/dist/esm-node/router-binding/fileRoute.js +83 -0
  109. package/dist/esm-node/router-binding/flightData.js +23 -0
  110. package/dist/esm-node/router-binding/headContentUtils.js +162 -0
  111. package/dist/esm-node/router-binding/history.js +1 -0
  112. package/dist/esm-node/router-binding/index.js +35 -0
  113. package/dist/esm-node/router-binding/lazyRouteComponent.js +30 -0
  114. package/dist/esm-node/router-binding/link.js +399 -0
  115. package/dist/esm-node/router-binding/matchContext.js +7 -0
  116. package/dist/esm-node/router-binding/nonRouteComponentContext.js +22 -0
  117. package/dist/esm-node/router-binding/not-found.js +49 -0
  118. package/dist/esm-node/router-binding/publicMatchData.js +447 -0
  119. package/dist/esm-node/router-binding/registryTransfer.js +210 -0
  120. package/dist/esm-node/router-binding/renderRouteNotFound.js +22 -0
  121. package/dist/esm-node/router-binding/route.js +162 -0
  122. package/dist/esm-node/router-binding/router.js +13 -0
  123. package/dist/esm-node/router-binding/routerContext.js +3 -0
  124. package/dist/esm-node/router-binding/routerStores.js +50 -0
  125. package/dist/esm-node/router-binding/scroll-restoration.js +12 -0
  126. package/dist/esm-node/router-binding/typePrimitives.js +1 -0
  127. package/dist/esm-node/router-binding/useBlocker.js +152 -0
  128. package/dist/esm-node/router-binding/useCanGoBack.js +7 -0
  129. package/dist/esm-node/router-binding/useLoaderData.js +9 -0
  130. package/dist/esm-node/router-binding/useLoaderDeps.js +8 -0
  131. package/dist/esm-node/router-binding/useLocation.js +14 -0
  132. package/dist/esm-node/router-binding/useMatch.js +28 -0
  133. package/dist/esm-node/router-binding/useNavigate.js +19 -0
  134. package/dist/esm-node/router-binding/useParams.js +13 -0
  135. package/dist/esm-node/router-binding/useRouteContext.js +8 -0
  136. package/dist/esm-node/router-binding/useRouter.js +10 -0
  137. package/dist/esm-node/router-binding/useRouterState.js +19 -0
  138. package/dist/esm-node/router-binding/useSearch.js +13 -0
  139. package/dist/esm-node/router-binding/utils.js +23 -0
  140. package/dist/esm-node/router.js +187 -0
  141. package/dist/esm-node/server.js +396 -0
  142. package/dist/types/actions.d.ts +45 -0
  143. package/dist/types/application-router.d.ts +5 -0
  144. package/dist/types/client.d.ts +23 -0
  145. package/dist/types/entry-application.d.ts +10 -0
  146. package/dist/types/entry-client.d.ts +5 -0
  147. package/dist/types/entry-server.d.ts +5 -0
  148. package/dist/types/federation-context.d.ts +16 -0
  149. package/dist/types/federation-ssr.d.ts +21 -0
  150. package/dist/types/federation.d.ts +30 -0
  151. package/dist/types/i18n/I18nProvider.d.ts +21 -0
  152. package/dist/types/i18n/LocalizedLink.d.ts +43 -0
  153. package/dist/types/i18n/context.d.ts +11 -0
  154. package/dist/types/i18n/index.d.ts +9 -0
  155. package/dist/types/i18n/languageSync.d.ts +31 -0
  156. package/dist/types/i18n/types.d.ts +33 -0
  157. package/dist/types/i18n/useI18n.d.ts +24 -0
  158. package/dist/types/index.d.ts +41 -0
  159. package/dist/types/manifest.d.ts +55 -0
  160. package/dist/types/native-promise-serialization.d.ts +9 -0
  161. package/dist/types/plugin/compiler.d.ts +6 -0
  162. package/dist/types/plugin/create.d.ts +21 -0
  163. package/dist/types/plugin/index.d.ts +3 -0
  164. package/dist/types/plugin/lazy-modules.d.cts +15 -0
  165. package/dist/types/plugin/preserve-import-loader.d.cts +3 -0
  166. package/dist/types/plugin/profile.d.ts +2 -0
  167. package/dist/types/plugin/solid-loader.d.cts +2 -0
  168. package/dist/types/plugin/svg-component-template.d.cts +6 -0
  169. package/dist/types/route-completion.d.ts +21 -0
  170. package/dist/types/route-data-error.d.ts +17 -0
  171. package/dist/types/router-binding/Asset.d.ts +3 -0
  172. package/dist/types/router-binding/CatchBoundary.d.ts +13 -0
  173. package/dist/types/router-binding/ClientOnly.d.ts +31 -0
  174. package/dist/types/router-binding/HeadContent.d.ts +13 -0
  175. package/dist/types/router-binding/Match.d.ts +6 -0
  176. package/dist/types/router-binding/Matches.d.ts +26 -0
  177. package/dist/types/router-binding/RouterProvider.d.ts +10 -0
  178. package/dist/types/router-binding/SafeFragment.d.ts +2 -0
  179. package/dist/types/router-binding/ScriptOnce.d.ts +6 -0
  180. package/dist/types/router-binding/Scripts.d.ts +2 -0
  181. package/dist/types/router-binding/ScrollRestoration.d.ts +14 -0
  182. package/dist/types/router-binding/Transitioner.d.ts +2 -0
  183. package/dist/types/router-binding/awaited.d.ts +11 -0
  184. package/dist/types/router-binding/fileRoute.d.ts +54 -0
  185. package/dist/types/router-binding/flightData.d.ts +38 -0
  186. package/dist/types/router-binding/headContentUtils.d.ts +15 -0
  187. package/dist/types/router-binding/history.d.ts +8 -0
  188. package/dist/types/router-binding/index.d.ts +45 -0
  189. package/dist/types/router-binding/lazyRouteComponent.d.ts +2 -0
  190. package/dist/types/router-binding/link.d.ts +43 -0
  191. package/dist/types/router-binding/matchContext.d.ts +7 -0
  192. package/dist/types/router-binding/nonRouteComponentContext.d.ts +5 -0
  193. package/dist/types/router-binding/not-found.d.ts +11 -0
  194. package/dist/types/router-binding/publicMatchData.d.ts +19 -0
  195. package/dist/types/router-binding/registryTransfer.d.ts +47 -0
  196. package/dist/types/router-binding/renderRouteNotFound.d.ts +11 -0
  197. package/dist/types/router-binding/route.d.ts +105 -0
  198. package/dist/types/router-binding/router.d.ts +70 -0
  199. package/dist/types/router-binding/routerContext.d.ts +3 -0
  200. package/dist/types/router-binding/routerStores.d.ts +2 -0
  201. package/dist/types/router-binding/scroll-restoration.d.ts +2 -0
  202. package/dist/types/router-binding/typePrimitives.d.ts +10 -0
  203. package/dist/types/router-binding/useBlocker.d.ts +70 -0
  204. package/dist/types/router-binding/useCanGoBack.d.ts +2 -0
  205. package/dist/types/router-binding/useLoaderData.d.ts +8 -0
  206. package/dist/types/router-binding/useLoaderDeps.d.ts +8 -0
  207. package/dist/types/router-binding/useLocation.d.ts +7 -0
  208. package/dist/types/router-binding/useMatch.d.ts +10 -0
  209. package/dist/types/router-binding/useNavigate.d.ts +5 -0
  210. package/dist/types/router-binding/useParams.d.ts +9 -0
  211. package/dist/types/router-binding/useRouteContext.d.ts +4 -0
  212. package/dist/types/router-binding/useRouter.d.ts +4 -0
  213. package/dist/types/router-binding/useRouterState.d.ts +8 -0
  214. package/dist/types/router-binding/useSearch.d.ts +9 -0
  215. package/dist/types/router-binding/utils.d.ts +25 -0
  216. package/dist/types/router.d.ts +31 -0
  217. package/dist/types/server.d.ts +47 -0
  218. package/package.json +118 -4
  219. package/src/actions.tsx +437 -0
  220. package/src/application-router.tsx +41 -0
  221. package/src/client.ts +106 -0
  222. package/src/entry-application.tsx +73 -0
  223. package/src/entry-client.tsx +48 -0
  224. package/src/entry-server.tsx +85 -0
  225. package/src/federation-context.ts +47 -0
  226. package/src/federation-ssr.ts +117 -0
  227. package/src/federation.tsx +193 -0
  228. package/src/i18n/I18nProvider.tsx +54 -0
  229. package/src/i18n/LocalizedLink.tsx +122 -0
  230. package/src/i18n/context.ts +13 -0
  231. package/src/i18n/index.ts +35 -0
  232. package/src/i18n/languageSync.ts +113 -0
  233. package/src/i18n/types.ts +35 -0
  234. package/src/i18n/useI18n.ts +121 -0
  235. package/src/index.ts +41 -0
  236. package/src/manifest.ts +337 -0
  237. package/src/native-promise-serialization.ts +167 -0
  238. package/src/plugin/compiler.ts +320 -0
  239. package/src/plugin/create.ts +270 -0
  240. package/src/plugin/index.ts +72 -0
  241. package/src/plugin/lazy-modules.cjs +146 -0
  242. package/src/plugin/preserve-import-loader.cjs +46 -0
  243. package/src/plugin/profile.ts +42 -0
  244. package/src/plugin/solid-loader.cjs +83 -0
  245. package/src/plugin/svg-component-template.cjs +19 -0
  246. package/src/route-completion.tsx +222 -0
  247. package/src/route-data-error.ts +175 -0
  248. package/src/router-binding/Asset.tsx +283 -0
  249. package/src/router-binding/CatchBoundary.tsx +130 -0
  250. package/src/router-binding/ClientOnly.tsx +76 -0
  251. package/src/router-binding/HeadContent.tsx +23 -0
  252. package/src/router-binding/LICENSE +21 -0
  253. package/src/router-binding/Match.tsx +397 -0
  254. package/src/router-binding/Matches.tsx +242 -0
  255. package/src/router-binding/PROVENANCE.json +94 -0
  256. package/src/router-binding/RouterProvider.tsx +129 -0
  257. package/src/router-binding/SafeFragment.tsx +5 -0
  258. package/src/router-binding/ScriptOnce.tsx +23 -0
  259. package/src/router-binding/Scripts.tsx +44 -0
  260. package/src/router-binding/ScrollRestoration.tsx +49 -0
  261. package/src/router-binding/Transitioner.tsx +172 -0
  262. package/src/router-binding/awaited.tsx +71 -0
  263. package/src/router-binding/fileRoute.ts +268 -0
  264. package/src/router-binding/flightData.ts +90 -0
  265. package/src/router-binding/headContentUtils.tsx +290 -0
  266. package/src/router-binding/history.ts +9 -0
  267. package/src/router-binding/index.tsx +318 -0
  268. package/src/router-binding/lazyRouteComponent.tsx +70 -0
  269. package/src/router-binding/link.tsx +865 -0
  270. package/src/router-binding/matchContext.tsx +15 -0
  271. package/src/router-binding/nonRouteComponentContext.tsx +23 -0
  272. package/src/router-binding/not-found.tsx +65 -0
  273. package/src/router-binding/publicMatchData.ts +674 -0
  274. package/src/router-binding/registryTransfer.ts +383 -0
  275. package/src/router-binding/renderRouteNotFound.tsx +53 -0
  276. package/src/router-binding/route.tsx +665 -0
  277. package/src/router-binding/router.ts +121 -0
  278. package/src/router-binding/routerContext.tsx +6 -0
  279. package/src/router-binding/routerStores.ts +85 -0
  280. package/src/router-binding/scroll-restoration.tsx +15 -0
  281. package/src/router-binding/typePrimitives.ts +74 -0
  282. package/src/router-binding/useBlocker.tsx +359 -0
  283. package/src/router-binding/useCanGoBack.ts +9 -0
  284. package/src/router-binding/useLoaderData.tsx +50 -0
  285. package/src/router-binding/useLoaderDeps.tsx +46 -0
  286. package/src/router-binding/useLocation.tsx +43 -0
  287. package/src/router-binding/useMatch.tsx +111 -0
  288. package/src/router-binding/useNavigate.tsx +43 -0
  289. package/src/router-binding/useParams.tsx +72 -0
  290. package/src/router-binding/useRouteContext.ts +30 -0
  291. package/src/router-binding/useRouter.tsx +17 -0
  292. package/src/router-binding/useRouterState.tsx +50 -0
  293. package/src/router-binding/useSearch.tsx +72 -0
  294. package/src/router-binding/utils.ts +59 -0
  295. package/src/router.ts +376 -0
  296. package/src/server.ts +645 -0
@@ -0,0 +1,74 @@
1
+ import { createComponent, memo, mergeProps } from "@solidjs/web";
2
+ import { canonicalPath, configuredLanguage, localizePath } from "@modern-js/i18n-runtime-extensions/paths";
3
+ import { Link, useLocation, useRouter } from "../router.js";
4
+ import { I18nContext } from "./context.js";
5
+ import * as __rspack_external_solid_js_0ac0db99 from "solid-js";
6
+ function LocalizedLink(props) {
7
+ const context = __rspack_external_solid_js_0ac0db99.useContext(I18nContext);
8
+ const router = useRouter();
9
+ const rewrite = Boolean(router.options.rewrite);
10
+ const targetLanguage = ()=>void 0 === props.language ? context.language() : configuredLanguage(props.language, context.languages);
11
+ const href = __rspack_external_solid_js_0ac0db99.createMemo(()=>localizePath(props.to, targetLanguage(), {
12
+ languages: [
13
+ ...context.languages
14
+ ],
15
+ localisedUrls: context.localisedUrls
16
+ }));
17
+ const crossLanguage = ()=>targetLanguage() !== context.language();
18
+ const masked = ()=>rewrite && crossLanguage();
19
+ const dataAttributes = Object.defineProperties({}, Object.fromEntries(Object.keys(props).filter((key)=>key.startsWith("data-")).map((key)=>[
20
+ key,
21
+ {
22
+ enumerable: true,
23
+ get: ()=>props[key]
24
+ }
25
+ ])));
26
+ return createComponent(Link, mergeProps(dataAttributes, {
27
+ get to () {
28
+ return memo(()=>!!masked())() ? props.to : ".";
29
+ },
30
+ get href () {
31
+ return memo(()=>!!masked())() ? void 0 : href();
32
+ },
33
+ get mask () {
34
+ return memo(()=>!!masked())() ? {
35
+ to: href()
36
+ } : void 0;
37
+ },
38
+ get hreflang () {
39
+ return memo(()=>!!crossLanguage())() ? targetLanguage() : void 0;
40
+ },
41
+ get class () {
42
+ return props.class;
43
+ },
44
+ get activeProps () {
45
+ return props.activeProps;
46
+ },
47
+ get inactiveProps () {
48
+ return props.inactiveProps;
49
+ },
50
+ get activeOptions () {
51
+ return props.activeOptions;
52
+ },
53
+ get replace () {
54
+ return props.replace;
55
+ },
56
+ get preload () {
57
+ return props.preload;
58
+ },
59
+ get children () {
60
+ return props.children;
61
+ }
62
+ }));
63
+ }
64
+ function useIsLocalizedActive(canonicalTarget) {
65
+ const context = __rspack_external_solid_js_0ac0db99.useContext(I18nContext);
66
+ const location = useLocation();
67
+ return ()=>canonicalPath(location().pathname, {
68
+ languages: [
69
+ ...context.languages
70
+ ],
71
+ localisedUrls: context.localisedUrls
72
+ }) === canonicalTarget;
73
+ }
74
+ export { LocalizedLink, useIsLocalizedActive };
@@ -0,0 +1,3 @@
1
+ import * as __rspack_external_solid_js_0ac0db99 from "solid-js";
2
+ const I18nContext = __rspack_external_solid_js_0ac0db99.createContext();
3
+ export { I18nContext };
@@ -0,0 +1,8 @@
1
+ export { createRequestLanguageRedirect, detectRequestLanguage, languageFromPathname, resolveRequestLanguage } from "@modern-js/i18n-runtime-extensions/request-language";
2
+ export { I18N_SSR_HANDOFF_ELEMENT_ID, createI18nSsrHandoffInlineData, readI18nSsrHandoff } from "@modern-js/i18n-runtime-extensions/ssrLanguageHandoff";
3
+ export { createI18nUrlRewrite } from "@modern-js/i18n-runtime-extensions/urlRewrite";
4
+ export { I18nContext } from "./context.js";
5
+ export { I18nProvider } from "./I18nProvider.js";
6
+ export { LocalizedLink, useIsLocalizedActive } from "./LocalizedLink.js";
7
+ export { createLatestLanguageSync } from "./languageSync.js";
8
+ export { useI18n } from "./useI18n.js";
@@ -0,0 +1,50 @@
1
+ import { createLatestLanguageSyncBinding } from "@modern-js/i18n-runtime-extensions/language-sync/controller";
2
+ import * as __rspack_external_solid_js_0ac0db99 from "solid-js";
3
+ function createLatestLanguageSync(options) {
4
+ const binding = createLatestLanguageSyncBinding(options.policy);
5
+ const enabled = ()=>options.enabled?.() ?? true;
6
+ __rspack_external_solid_js_0ac0db99.createEffect(()=>void 0, ()=>{
7
+ binding.updateCallbacks({
8
+ changeLanguage: options.changeLanguage,
9
+ commitLanguage: options.commitLanguage,
10
+ readLanguage: options.readLanguage,
11
+ reportFailure: options.reportFailure
12
+ });
13
+ });
14
+ __rspack_external_solid_js_0ac0db99.createEffect(()=>enabled() ? options.target() : void 0, (target)=>{
15
+ if (!target) return;
16
+ binding.activate(target);
17
+ return ()=>binding.deactivate();
18
+ });
19
+ __rspack_external_solid_js_0ac0db99.createEffect(()=>enabled() ? [
20
+ options.target(),
21
+ options.desiredLanguage()
22
+ ] : [
23
+ void 0,
24
+ void 0
25
+ ], ([target, desiredLanguage])=>{
26
+ if (!target || !desiredLanguage) return void binding.clearRequest();
27
+ binding.request(desiredLanguage);
28
+ });
29
+ __rspack_external_solid_js_0ac0db99.createEffect(()=>enabled() && "u" > typeof window ? [
30
+ options.target(),
31
+ options.desiredLanguage()
32
+ ] : [
33
+ void 0,
34
+ void 0
35
+ ], ([target, desiredLanguage])=>{
36
+ if (!target || !desiredLanguage) return;
37
+ const retryCurrentIntent = ()=>binding.request(desiredLanguage);
38
+ const retryVisibleIntent = ()=>{
39
+ if ("visible" === document.visibilityState) retryCurrentIntent();
40
+ };
41
+ window.addEventListener("online", retryCurrentIntent);
42
+ document.addEventListener("visibilitychange", retryVisibleIntent);
43
+ return ()=>{
44
+ window.removeEventListener("online", retryCurrentIntent);
45
+ document.removeEventListener("visibilitychange", retryVisibleIntent);
46
+ };
47
+ });
48
+ return (language)=>binding.request(language);
49
+ }
50
+ export { createLatestLanguageSync };
File without changes
@@ -0,0 +1,74 @@
1
+ import { configuredLanguage, localizePath } from "@modern-js/i18n-runtime-extensions/paths";
2
+ import { languageFromPathname } from "@modern-js/i18n-runtime-extensions/request-language";
3
+ import { useRouter } from "../router.js";
4
+ import { I18nContext } from "./context.js";
5
+ import * as __rspack_external_solid_js_0ac0db99 from "solid-js";
6
+ const languageSwitches = new WeakMap();
7
+ function useI18n() {
8
+ const context = __rspack_external_solid_js_0ac0db99.useContext(I18nContext);
9
+ const { instance, languages, localisedUrls, language } = context;
10
+ const t = (key, options)=>{
11
+ language();
12
+ return instance.t(key, options);
13
+ };
14
+ const router = useRouter({
15
+ warn: false
16
+ });
17
+ const changeLanguage = (requested)=>{
18
+ let nextLanguage;
19
+ try {
20
+ nextLanguage = configuredLanguage(requested, languages);
21
+ } catch (error) {
22
+ return Promise.reject(error);
23
+ }
24
+ const state = languageSwitches.get(instance) ?? {
25
+ latest: 0,
26
+ queue: Promise.resolve()
27
+ };
28
+ languageSwitches.set(instance, state);
29
+ const generation = ++state.latest;
30
+ const run = state.queue.then(async ()=>{
31
+ if (state.latest !== generation) return;
32
+ const committed = instance.language;
33
+ const publicLanguage = ()=>router ? languageFromPathname(new URL(router.state.location.publicHref, "http://localhost").pathname, languages, router.options.basepath) : void 0;
34
+ const reconcile = async ()=>{
35
+ const language = publicLanguage() ?? committed;
36
+ if (instance.language !== language) await instance.changeLanguage?.(language);
37
+ };
38
+ try {
39
+ await instance.changeLanguage?.(nextLanguage);
40
+ } catch (error) {
41
+ await reconcile();
42
+ throw error;
43
+ }
44
+ if (!router) return;
45
+ const href = localizePath(router.state.location.href, nextLanguage, {
46
+ languages: [
47
+ ...languages
48
+ ],
49
+ localisedUrls
50
+ });
51
+ try {
52
+ await router.navigate({
53
+ to: ".",
54
+ href,
55
+ replace: true
56
+ });
57
+ } catch (error) {
58
+ await reconcile();
59
+ throw error;
60
+ }
61
+ if (publicLanguage() !== nextLanguage) await reconcile();
62
+ });
63
+ state.queue = run.catch(()=>{});
64
+ return run;
65
+ };
66
+ return {
67
+ t,
68
+ language,
69
+ languages,
70
+ instance,
71
+ changeLanguage
72
+ };
73
+ }
74
+ export { useI18n };
@@ -0,0 +1,58 @@
1
+ const SOLID_RENDERER_PROFILE = {
2
+ renderer: "solid",
3
+ solid: "2.0.0-rc.13",
4
+ web: "2.0.0-rc.13",
5
+ router: "@modern-js/renderer-solid/router@3.8.3",
6
+ routerSource: "4fbd65c5c3b40be87a6248867c22021c1c19bba8",
7
+ routerCore: "1.171.34",
8
+ history: "1.162.4",
9
+ publicRouteData: {
10
+ containers: [
11
+ "plain-record",
12
+ "null-record",
13
+ "array"
14
+ ],
15
+ values: "canonical-scalars",
16
+ deferred: "checked-top-level-native-promises",
17
+ mutation: "immutable-public-snapshot",
18
+ unsupported: [
19
+ "Date",
20
+ "RegExp",
21
+ "Map",
22
+ "Set",
23
+ "AsyncIterable"
24
+ ]
25
+ },
26
+ publicContext: {
27
+ source: "managed-constructor-route-context-and-before-load",
28
+ providerOverrides: "unsupported"
29
+ },
30
+ nativePromiseMetadata: {
31
+ runtime: "2.0.0-rc.13",
32
+ fields: [
33
+ "s",
34
+ "v"
35
+ ],
36
+ status: [
37
+ 0,
38
+ 1,
39
+ 2
40
+ ],
41
+ handle: "sealed-with-checked-metadata"
42
+ },
43
+ nativeRegistry: {
44
+ source: "managed-router-match-transfer",
45
+ rawRejectedMatchInjection: "unsupported"
46
+ },
47
+ nativeRequestContext: {
48
+ scope: "complete-native-request-handler",
49
+ event: "one-per-request-session"
50
+ },
51
+ nativeResponseHead: {
52
+ statusText: "fetch-response-status-text",
53
+ terminalOutcome: "authoritative",
54
+ cache: "intersect-with-session-policy"
55
+ },
56
+ dataHttpTransport: "renderer-core-rich-public-data"
57
+ };
58
+ export { SOLID_RENDERER_PROFILE };
@@ -0,0 +1,150 @@
1
+ import { nativeModuleManifestFilename, readRendererIdentity } from "@modern-js/renderer-core/identity";
2
+ const SOLID_COMPILER_VERSION = "2.0.0-rc.13";
3
+ function solidModuleManifestFilename(entryName) {
4
+ return nativeModuleManifestFilename("solid", entryName);
5
+ }
6
+ function requireRecord(value, description) {
7
+ if (!value || "object" != typeof value || ![
8
+ Object.prototype,
9
+ null
10
+ ].includes(Object.getPrototypeOf(value))) throw new Error(`Invalid Solid module manifest ${description}`);
11
+ for (const key of Reflect.ownKeys(value)){
12
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
13
+ if ("string" != typeof key || !descriptor || !("value" in descriptor)) throw new Error(`Invalid Solid module manifest ${description}: data properties are required`);
14
+ }
15
+ return value;
16
+ }
17
+ function requireArray(value, description) {
18
+ if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype) throw new Error(`Invalid Solid module manifest ${description}: an array is required`);
19
+ for (const key of Reflect.ownKeys(value)){
20
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
21
+ if ("string" != typeof key || "length" !== key && !/^(0|[1-9]\d*)$/.test(key) || !descriptor || !("value" in descriptor)) throw new Error(`Invalid Solid module manifest ${description}: array data properties are required`);
22
+ }
23
+ }
24
+ function requireStrings(value, description) {
25
+ requireArray(value, description);
26
+ for(let index = 0; index < value.length; index++)if ("string" != typeof value[index] || !value[index]) throw new Error(`Invalid Solid module manifest ${description}: nonempty strings are required`);
27
+ }
28
+ function validateAssetUrl(base, file) {
29
+ const prefix = base || "/";
30
+ const joined = /^(?:[a-z][a-z0-9+.-]*:)?\/\//i.test(file) ? file : `${prefix.endsWith("/") ? prefix : `${prefix}/`}${file.startsWith("/") ? file.slice(1) : file}`;
31
+ try {
32
+ new URL(joined, "https://manifest.invalid/");
33
+ } catch (cause) {
34
+ throw new Error(`Invalid Solid module manifest asset URL: ${file}`, {
35
+ cause
36
+ });
37
+ }
38
+ }
39
+ function validatePreload(value, base) {
40
+ const link = requireRecord(value, "preload");
41
+ if (![
42
+ "fetch",
43
+ "font",
44
+ "image",
45
+ "script",
46
+ "style",
47
+ "track"
48
+ ].includes(link.as)) throw new Error("Invalid Solid module manifest preload destination");
49
+ if (void 0 !== link.href) {
50
+ if ("string" != typeof link.href || !link.href) throw new Error("Invalid Solid module manifest preload href");
51
+ validateAssetUrl(base, link.href);
52
+ }
53
+ if ("image" === link.as) {
54
+ if (void 0 !== link.imagesrcset && ("string" != typeof link.imagesrcset || !link.imagesrcset)) throw new Error("Invalid Solid module manifest image preload source set");
55
+ if (void 0 === link.href && void 0 === link.imagesrcset) throw new Error("Invalid Solid module manifest image preload source");
56
+ if (void 0 !== link.imagesizes && "string" != typeof link.imagesizes) throw new Error("Invalid Solid module manifest image preload sizes");
57
+ } else if (void 0 === link.href || void 0 !== link.imagesrcset || void 0 !== link.imagesizes) throw new Error("Invalid Solid module manifest preload source");
58
+ for (const key of [
59
+ "type",
60
+ "integrity",
61
+ "media"
62
+ ])if (void 0 !== link[key] && "string" != typeof link[key]) throw new Error(`Invalid Solid module manifest preload ${key}`);
63
+ const enumerated = {
64
+ crossorigin: [
65
+ "",
66
+ true,
67
+ "anonymous",
68
+ "use-credentials"
69
+ ],
70
+ fetchpriority: [
71
+ "high",
72
+ "low",
73
+ "auto"
74
+ ],
75
+ referrerpolicy: [
76
+ "no-referrer",
77
+ "no-referrer-when-downgrade",
78
+ "origin",
79
+ "origin-when-cross-origin",
80
+ "same-origin",
81
+ "strict-origin",
82
+ "strict-origin-when-cross-origin",
83
+ "unsafe-url"
84
+ ]
85
+ };
86
+ for (const [key, values] of Object.entries(enumerated))if (void 0 !== link[key] && !values.includes(link[key])) throw new Error(`Invalid Solid module manifest preload ${key}`);
87
+ }
88
+ function assertCurrentIdentity(manifest, expectedIdentity) {
89
+ if (!manifest.rendererIdentity || "solid" !== expectedIdentity.renderer) throw new Error("Solid module manifest requires the current Solid application build identity.");
90
+ try {
91
+ readRendererIdentity(manifest.rendererIdentity, expectedIdentity);
92
+ } catch (cause) {
93
+ throw new Error("Stale Solid module manifest identity. Serve the manifest and hydration assets from the same application build.", {
94
+ cause
95
+ });
96
+ }
97
+ }
98
+ function readSolidModuleManifest(value, expectedIdentity) {
99
+ const manifest = requireRecord(value, "envelope");
100
+ if (1 !== manifest.schemaVersion || "solid" !== manifest.renderer || manifest.compilerVersion !== SOLID_COMPILER_VERSION) throw new Error(`Solid module manifest compiler ABI mismatch. Rebuild with @solidjs/compiler ${SOLID_COMPILER_VERSION}.`);
101
+ assertCurrentIdentity(manifest, expectedIdentity);
102
+ if (!manifest.modules || "object" != typeof manifest.modules || Array.isArray(manifest.modules)) throw new Error("Solid module manifest has no module inventory. Rebuild the application.");
103
+ const modules = requireRecord(manifest.modules, "module inventory");
104
+ if (void 0 !== modules._base && "string" != typeof modules._base) throw new Error("Invalid Solid module manifest asset base");
105
+ const base = modules._base;
106
+ for (const [key, value] of Object.entries(modules)){
107
+ if ("_base" === key) continue;
108
+ const chunk = requireRecord(value, `chunk ${key}`);
109
+ if ("string" != typeof chunk.file || !chunk.file) throw new Error(`Invalid Solid module manifest chunk ${key}: a nonempty file is required`);
110
+ validateAssetUrl(base, chunk.file);
111
+ for (const field of [
112
+ "css",
113
+ "imports"
114
+ ])if (void 0 !== chunk[field]) requireStrings(chunk[field], `${key}.${field}`);
115
+ for (const file of chunk.css ?? [])validateAssetUrl(base, file);
116
+ if (void 0 !== chunk.isEntry && "boolean" != typeof chunk.isEntry) throw new Error(`Invalid Solid module manifest chunk ${key}: isEntry must be boolean`);
117
+ if (void 0 !== chunk.preloads) {
118
+ requireArray(chunk.preloads, `${key}.preloads`);
119
+ for (const preload of chunk.preloads)validatePreload(preload, base);
120
+ }
121
+ }
122
+ for (const [key, value] of Object.entries(modules))if ("_base" !== key) {
123
+ for (const dependency of value.imports ?? [])if ("_base" === dependency || !Object.hasOwn(modules, dependency)) throw new Error(`Solid module manifest chunk ${key} imports missing own chunk ${dependency}`);
124
+ }
125
+ return manifest;
126
+ }
127
+ const validatedManifests = new WeakMap();
128
+ function validateSolidModuleManifest(value, expectedIdentity, requiredModuleKeys = []) {
129
+ if (!value || "object" != typeof value) throw new Error("Missing Solid module manifest. Rebuild the application before SSR or hydration.");
130
+ let manifest = validatedManifests.get(value);
131
+ if (manifest) assertCurrentIdentity(manifest, expectedIdentity);
132
+ else {
133
+ manifest = readSolidModuleManifest(value, expectedIdentity);
134
+ validatedManifests.set(value, manifest);
135
+ }
136
+ for (const key of requiredModuleKeys)if ("_base" === key || !Object.hasOwn(manifest.modules, key)) throw new Error(`Solid module manifest is missing ${key}. Rebuild the application before SSR or hydration.`);
137
+ return manifest;
138
+ }
139
+ const compilerArtifacts = {
140
+ clientManifestFile: solidModuleManifestFilename,
141
+ async validateClientManifest (value, identity) {
142
+ return {
143
+ nativeManifest: validateSolidModuleManifest(value, identity)
144
+ };
145
+ },
146
+ isMutableDevelopmentAsset (filename, entryNames) {
147
+ return entryNames.some((entry)=>filename === solidModuleManifestFilename(entry));
148
+ }
149
+ };
150
+ export { SOLID_COMPILER_VERSION, compilerArtifacts, solidModuleManifestFilename, validateSolidModuleManifest };
@@ -0,0 +1,150 @@
1
+ import { Dynamic, createComponent } from "@solidjs/web";
2
+ import { DataProtocolError } from "@modern-js/renderer-core/data";
3
+ import { createEffect, createMemo, createSignal, onCleanup } from "solid-js";
4
+ import { createRouter, preparePublicContextData, useMatch } from "./router-binding/index.js";
5
+ import { registerPublicRouteDataOwner } from "./router-binding/registryTransfer.js";
6
+ const routeScopes = new WeakMap();
7
+ const routerScopes = new WeakMap();
8
+ function assertManagedRouteData(route) {
9
+ if (!route) return;
10
+ if (route.options.loader || route.options.beforeLoad || route.options.context) throw new DataProtocolError("Custom native Solid loader/beforeLoad/context routes are unsupported by the immutable public-data profile; use createFileSystemRouteTree");
11
+ for (const child of route.children ?? [])assertManagedRouteData(child);
12
+ }
13
+ function registerRouteCompletionScope(route, scope) {
14
+ routeScopes.set(route, scope);
15
+ }
16
+ const createApplicationRouter = (options)=>{
17
+ const scope = options.routeTree ? routeScopes.get(options.routeTree) : void 0;
18
+ if (!scope) assertManagedRouteData(options.routeTree);
19
+ if (scope && options.routeTree) registerPublicRouteDataOwner(options.routeTree, scope.hydrationOwner, scope.privateRoots);
20
+ const context = preparePublicContextData(options.context, scope?.hydrationOwner);
21
+ if (void 0 !== context && (!context || "object" != typeof context || Array.isArray(context))) throw new DataProtocolError("The native Solid router context must be a public record");
22
+ const router = createRouter({
23
+ ...options,
24
+ context
25
+ });
26
+ if (scope) {
27
+ scope.attach(router);
28
+ routerScopes.set(router, scope);
29
+ }
30
+ return router;
31
+ };
32
+ function ownApplicationRouteData(router) {
33
+ const scope = routerScopes.get(router);
34
+ if (scope) onCleanup(()=>scope.dispose());
35
+ else assertManagedRouteData(router.options.routeTree);
36
+ }
37
+ function createRouteCompletionScope(privateRoots = [], session) {
38
+ const records = new WeakMap();
39
+ const pending = new Set();
40
+ const hydration = new AbortController();
41
+ let router;
42
+ function begin(signal, cancel) {
43
+ if (!router) throw new Error("Use createApplicationRouter to own progressive Solid route data");
44
+ const [failure, setFailure] = createSignal();
45
+ const native = router;
46
+ let value;
47
+ let leases = 0;
48
+ let settled = false;
49
+ let failed = false;
50
+ const stop = ()=>{
51
+ if (!settled) {
52
+ pending.delete(stop);
53
+ if (value && "object" == typeof value) native.clearCache({
54
+ filter: (match)=>match.loaderData === value
55
+ });
56
+ cancel();
57
+ }
58
+ };
59
+ const fail = (reason)=>{
60
+ if (failed) return;
61
+ failed = true;
62
+ settled = true;
63
+ pending.delete(stop);
64
+ if (value && "object" == typeof value) native.clearCache({
65
+ filter: (match)=>match.loaderData === value
66
+ });
67
+ setFailure({
68
+ reason
69
+ });
70
+ cancel();
71
+ };
72
+ const record = {
73
+ failure,
74
+ acquire () {
75
+ leases++;
76
+ let released = false;
77
+ return ()=>{
78
+ if (released) return;
79
+ released = true;
80
+ if (0 === --leases && !native.state.matches.some((match)=>match.loaderData === value)) stop();
81
+ };
82
+ }
83
+ };
84
+ return {
85
+ owner: {
86
+ signal,
87
+ fail
88
+ },
89
+ publish (publicValue, completion) {
90
+ value = publicValue;
91
+ const deferred = value && "object" == typeof value ? Reflect.ownKeys(value).flatMap((key)=>{
92
+ const entry = Object.getOwnPropertyDescriptor(value, key);
93
+ return entry && !entry.get && entry.value instanceof Promise ? [
94
+ entry.value
95
+ ] : [];
96
+ }) : [];
97
+ if (!completion && 0 === deferred.length) return;
98
+ if (value && "object" == typeof value) {
99
+ records.set(value, record);
100
+ pending.add(stop);
101
+ } else if (completion) throw new DataProtocolError("Progressive route data requires its native value object");
102
+ if (completion) completion.then(()=>{
103
+ settled = true;
104
+ pending.delete(stop);
105
+ }, fail);
106
+ else Promise.allSettled(deferred).then(()=>{
107
+ settled = true;
108
+ pending.delete(stop);
109
+ });
110
+ }
111
+ };
112
+ }
113
+ return {
114
+ privateRoots,
115
+ hydrationOwner: session ?? {
116
+ signal: hydration.signal,
117
+ fail: (error)=>hydration.abort(error)
118
+ },
119
+ attach (native) {
120
+ if (router && router !== native) throw new Error("A Solid data scope already owns its native router");
121
+ router = native;
122
+ },
123
+ begin,
124
+ component (component) {
125
+ return function() {
126
+ const record = useMatch({
127
+ strict: false,
128
+ select: (match)=>match.loaderData && "object" == typeof match.loaderData ? records.get(match.loaderData) : void 0
129
+ });
130
+ createEffect(record, (current)=>current?.acquire());
131
+ const ready = createMemo(()=>{
132
+ const failure = record()?.failure();
133
+ if (failure) throw failure.reason;
134
+ return component;
135
+ });
136
+ return createComponent(Dynamic, {
137
+ get component () {
138
+ return ready();
139
+ }
140
+ });
141
+ };
142
+ },
143
+ dispose () {
144
+ hydration.abort();
145
+ for (const stop of pending)stop();
146
+ pending.clear();
147
+ }
148
+ };
149
+ }
150
+ export { createApplicationRouter, createRouteCompletionScope, ownApplicationRouteData, registerRouteCompletionScope };